【发布时间】:2011-11-05 11:40:01
【问题描述】:
我正在尝试找到一种可以接受复杂性的有效方法
- 检测图像中的对象,以便将其与周围环境隔离
- 将该对象分段为其子部分并标记它们,以便我可以随意获取它们
我进入图像处理领域已经 3 周了,我已经阅读了很多算法(筛选、蛇、更多蛇、傅里叶相关等)和启发式算法,我不知道从哪里开始哪一个对于我想要实现的目标是“最好的”。考虑到感兴趣的图像数据集是一个非常大的数据集,我什至不知道我应该使用 OpenCV 中实现的算法还是我自己实现一个算法。
总结:
- 我应该关注哪种方法?为什么?
- 我应该使用 OpenCV 来处理这类事情还是有其他“更好”的替代方案?
提前谢谢你。
编辑 -- 有关数据集的更多信息
每个数据集由 80K 的产品图片组成,这些图片共享相同的产品
- 概念,例如T 恤、手表、鞋子
- 尺寸
- 方向(90%)
- 背景(其中 95%)
显然,除了产品本身之外,每个数据集中的所有图片看起来几乎相同。为了让事情更清楚一点,让我们只考虑“观察数据集”:
集合中的所有图片看起来几乎完全一样:
(同样,除了手表本身)。我想取出表带和表盘。问题是有很多不同的手表款式和形状。从我目前所读到的,我认为我需要一个允许弯曲和拉伸的模板算法,以便能够匹配不同风格的表带和表盘。
与其创建三个不同的模板(表带上部、表带下部、表盘),不如只创建一个并将其分成 3 个部分是合理的。这样,我就会有足够的信心,每个部分都可以按照预期的方式相互检测到,例如在表带下部下方无法检测到表盘。
在我遇到的所有算法/方法中,主动形状|外观模型似乎是最有前途的。不幸的是,我还没有设法找到一个下降的实现,我也没有足够的信心这是最好的方法,所以我自己写一个。
如果有人能指出我应该真正寻找什么(算法/启发式/库/等),我将不胜感激。如果您再次认为我的描述有点模糊,请随时要求更详细的描述。
【问题讨论】:
-
您介意描述您的图像的域,甚至是图像的一些样本。对于一般的对象检测/识别/分割,我相信或者通常认为域的良好边界会给你一个“边缘”来区分什么是分割的,什么不是。
-
@gary - 我想要实现的(许多)事情之一:拥有手表的图像,例如link,我希望能够独立处理表带和表盘的“上”和“下”部分。这就是为什么我需要某种支持分段的模板。
-
您能否从您的数据集中发布几张图片,以展示它们的多样性。例如,如果您的所有图像都是您链接的 wiki 图像,正面朝上,直接进入相机,并且没有比例、照明差异或手表品牌或类型的差异,您可以极大地简化您的算法。
标签: image image-processing opencv object-detection