图像目标检测技术:识别图像中的物体

4
我想检测图片内容,需要做的是找出图片是否为衬衫或裤子。
图片1: enter image description here 图片2: enter image description here 如果我提供T恤的图片,则根据比较形状,我需要得到给定图像是T恤的结果。
我尝试过Harr级联,但它没有给出正确的输出。对于这个样本大小,需要太大了。
4个回答

2

1
假设您只想分离仅包含感兴趣对象的图像,则可以使用BOW(视觉词袋),其中图像表示为一组特征,然后使用SVM或任何其他分类器进行分类。
您还可以使用特征检测器+描述符+分类器(例如SURF + SVM)。尽管现在有更强大和更快速的特征检测器...
为了避免训练过程,您甚至可以尝试使用模板匹配(按轮廓)。其中一种算法提供在: Fast template matching - Codeproject Haar级联用于在包含其他内容的图像中进行对象检测,因为它采用滑动窗口检测+它包含性能和鲁棒性之间的权衡阶段-它们很快,但某些对象可能会被错过,因为每个阶段都容易出现误分类错误,并且这些错误会累积。

1
嗨Dajuric:这里使用模板匹配是否可行?因为它只适用于相同的图像,对吧?请参阅此处http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html - usernan
1
你能为SURF + SVM提供一些示例吗? - usernan
1
这是一种不同类型的模板匹配,您可以创建多个实例模板。请参阅文章(链接)。 - dajuric

1
我假设这两张图片来自你的数据库。 根据我的经验,在这样的图片上应用特征(局部描述符)会产生一种人工特征,因为分割或将背景设置为统一颜色。在你的情况下,第二个重要点是这些图像可能具有不同的颜色或纹理,并且大多数检测到的特征将来自于物体内部的区域。这些区域并不重要,与分类无关。 但是,拥有分割后的图像应该使问题变得更加容易。 对于你的情况,最好和最简单的解决方案: 1. 将图像转换为灰度,然后通过阈值处理将其转换为二进制。 2. 反转图像,使背景为黑色,物体为白色。 3. 填充空洞:如果物体内部的任何部分是白色的,则会导致空洞。 4. 现在只检测边界。 通过 I = dilated IBinary - IBinary 5. 采样边界: 仅选择每个4x4窗口中的一个非零像素。 6. 下一步是使用形状上下文描述符:描述你的图像。 7. 通过使用视觉词袋或稀疏编码,重新表示图像。 8. 最大池化以获得丰富的表示。 9- SVM

嗨BH85,你能给我提供任何参考链接吗? - usernan

1
如果您的图像已经包含了分割好的对象,就像您的示例所展示的那样,您可以创建一个二进制图像,其中指示了对象与背景像素。
之后,假设对象通常不会旋转或扭曲,您可以使用简单的特征进行分类。例如,在上面的情况下,只需计算出在哪些扫描线中有两个前景像素运行的百分比。对于衬衫来说,这应该是一个较低的值,而对于裤子来说,应该是一个较高的值。
显然,如果给定的示例图像并不能代表您实际要解决的问题,那么这种方法将无法奏效。
编辑:一些示例 matlab 代码:
function ratio=TwoRunFeature(I)
    g=rgb2gray(I);
    b=imdilate(g<255,ones(5));
    d=abs(imfilter(b,[-1 1]));
    runs=sum(d,2);
    ratio=sum(runs==2) / sum(runs==1);
end

function TestImage(name)
    I=imread(name);
    fprintf('%s: %f\n',name,TwoRunFeature(I));
end

TestImage('pants.jpg');
TestImage('shirt.jpg');

输出:

pants.jpg: 1.947977
shirt.jpg: 0.068627

裤子会给出高的数字,而衬衫则是低的。只需在您想要的任何阈值处进行阈值处理即可完成。

1
嗨Photon,你能给我提供任何参考链接吗? - usernan
1
这真的非常简单。我会添加一些Matlab代码来展示。 - Photon
1
谢谢Photon,但问题是如果我想检测短裤和长裤,那么现在这种方法会失败。 - usernan
1
我是说今天我不需要,但明天可能需要检测。 - usernan
当你举例时,将真实的问题图像作为示例而不是不具代表性的简单图像会很有帮助。 - Photon
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接