我收集了1000张正面(50 * 50)图像和1000张负片(50 * 50)图像,并在OpenCV中训练了Haar Cascade。我正在尝试检测手机。 培训代码:
opencv_traincascade -data data -vec crop1.vec -bg mob_neg.txt -numPos 900 -numNeg 900 -numStages 15 -w 50 -h 50 bgcolor 255 -bgthresh 100
级联无法准确检测移动设备(它正在检测移动设备以及许多其他对象,如鼠标,钥匙,钱包,手等) 你能帮我解决这个问题吗? 我使用连拍模式通过相机拍摄手机图像。通过不同的角度和不同的旋转捕获正像 负面图像来自互联网。
我该怎么做才能提高级联准确度?
我应该改变正面或负面图像的大小吗? 提前致谢
答案 0 :(得分:1)
我非常喜欢新手,但发现这篇文章很有用:
https://pythonprogramming.net/haar-cascade-object-detection-python-opencv-tutorial/
在其中,作者提到了使用两倍于负数的正面经验的经验法则。他还讨论了一种通过使用opencv_createsamples
(也为您旋转正像)将正图像叠加在负像上来生成正图像的方法。
在正面图像样本生成和训练之前,他还在缩放底片并将其转换为灰度。
我希望这有用。
答案 1 :(得分:0)
我认为你需要在训练你的haar级联时稍微压缩你的标准:
-miniHitRate
-maxFalseAlarmRate
默认设置为1,将它们压缩到0.5甚至更低,以获得更准确的级联。 尝试:
opencv_traincascade -data data -vec crop1.vec -bg mob_neg.txt -numPos 850 -numNeg 900 -numStages 15 -miniHitRate 0.5 -maxFalseAlarmRate 0.5 -w 50 -h 50 bgcolor 255 -bgthresh 100