我有兴趣创建自己的 haar 级联 xml 文件,用于 python 来检测某个徽标(假设它是苹果徽标)。
我尝试按照 http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html 和 http://note.sonots.com/SciSoftware/haartraining.html的说明进行操作
问题是,虽然我得到了一个有效的级联文件,但它没有检测到任何东西。具体来说,当我尝试检测用于创建它的原始图像中的对象时,即使那时也没有检测到它。
我已经尝试过调整图像的大小,或者只是通过将其插入图片来将其置于更大的上下文中。
我究竟做错了什么?
在 shell 中,我运行:
opencv_createsamples -img original.jpg -bg negatives.dat -vec samples_set.vec -w 48 -h 48
opencv_traincascade -bg negatives.dat -data mycascade -vec samples_set.vec -w 48 -h 48
这似乎工作正常,创建一个级联文件。然后,在python中:
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
检测结果为空。我确实尝试使用 python 附带的“标准”xml 进行测试并且它可以工作,所以我的有问题。