图像中的物体检测

时间:2012-05-31 13:12:01

标签: c++ c opencv image-processing object-detection

我有一些像这样的样本图片:

Example image

现在,当用户将图像上传到我的网站时,我需要检查它是否包含上述图像或其非常相似的变体。

我曾尝试过培训opencv haar分类器,但结果似乎并不乐观。不确定我是否错误地生成了分类器。

我使用以下命令生成haar分类器

opencv_createsamples -img logo.jpg -num 500 -bg negatives.dat -vec samples.vec -maxxangle 0.6 -maxyangle 0 -maxzangle 0.3 -maxidev 100 -bgcolor 0 -bgthresh 0 -w 209 -h 49

opencv_haartraining -data haarcascade -vec samples.vec -bg negatives.dat -nstages 10 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 7000 -nneg 3019 -w 83 -h 35 -nonsym -mem 1024 -mode ALL

我正在使用大约500张负面图像。

使用haar分类器对我的用例来说也是一种过度杀伤力吗?

我也尝试在opencv中使用cvMatchTemplate方法,结果令人失望。虽然,正面图像被识别出来,但假阳性异常高。

我应该尝试正确训练分类器吗?运行haar教练也需要很长时间。

这是我正在采取的正确方向吗?

1 个答案:

答案 0 :(得分:5)

在这种情况下,您可能会使用 SIFT 获得更好的结果。

这些是一些有趣的参考资料:

另一方面,OpenCV tutorials第6章展示了如何使用探测器描述符的功能点>在OpenCV中找到匹配的框架。