图像中的物体检测

anf*_*fab 1 c c++ opencv image-processing object-detection

我有一些像这样的示例图像:

示例图片

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

我曾尝试训练一个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
Run Code Online (Sandbox Code Playgroud)

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

使用haar分类器对我的用例来说是否有些过分?

我也试过cvMatchTemplate在opencv中使用这个方法,结果令人失望.虽然识别出正像,但假阳性异常高.

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

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

kar*_*lip 5

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

这些是一些有趣的参考:

在一个侧面说明,第6章OpenCV的教程演示了如何使用这些特征点检测器,描述符匹配框架内的OpenCV发现.