我试图训练用于卡套检测的haar级联分类器(没有旋转且图像没有失真)
例如,我有文件Clubs.png,内容俱乐部图像在白色背景20x20像素
本教程非常混乱 http://note.sonots.com/SciSoftware/haartraining.html
我的图像只有大小,没有扭曲或角度变化。
我必须输入哪些命令才能获取Clubs.xml文件?
答案 0 :(得分:6)
正如@ Neon22所提到的,很棒的教程。根据我的经验,这是一个相当漫长的过程(收集正面和负面的样本,训练,产生haar级联),但是再一次也许我做错了。
对于检测卡片,查看OpenCV SURF可能也很有用。
有趣的是你提到卡片,Eugene Zatepyakin做了一个名为ASSURF的动作脚本端口:
答案 1 :(得分:4)
如果您对制作xml文件感兴趣,那么这可能有所帮助 http://nayakamitarup.blogspot.in/2011/07/how-to-make-your-own-haar-trained-xml.html
但如果你有兴趣让它旋转不变,那么冲浪似乎是一个更好的选择。 http://nayakamitarup.blogspot.in/2011/06/2d-ar-using-surf-based-application-of.html
答案 2 :(得分:1)
请尝试使用本教程。 http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide
但您确定的教程非常好。我用它来解决我的haar分类器。 opencv 2.1发行版中包含的facedetect示例代码是检查生成的xml文件的一个很好的示例。 (我使用python)
我发现提供的帮助应用程序有几个问题。 1. createsamples不会从同一图像中读取超过8个样本的描述文件 - 手动将关系文件分成几行,每个图像不超过8个矩形。
如果我的.vec文件是用宽度和高度的图像制作的,那么haar训练就不会继续了。 24像素
haar的主要问题似乎是它不是规模不变的,你需要成千上万的测试图像 - 这就是创建样本程序将帮助你处理单个图像但如果你有一个个人描述文件则不会样本图像。因此,教程提供了额外的代码,允许多次调用creatamples,并将生成的vec文件合并到一个超级vec文件中。
答案 3 :(得分:-1)
你可以参考:
http://opencv-hub.blogspot.in/2016/03/how-to-train-your-own-opencv-haar-classifier-haar-training-train-cascade.html
制作自己的haar-cascade xml文件
这个OpenCV教程是在C ++上,他们已经详细介绍了Haar Training的方法。另请注意,Haar不是旋转不变的。
因此,只要旋转图像,就不会被检测到
您需要为此目的使用SURF
但是通过Haar进行物体检测要比SURF快得多。
如果您想学习如何使用训练有素的Haar级联文件,您可以参考:
http://opencv-hub.blogspot.in/2016/03/how-to-do-real-time-face-detection-using-haar-cascade.html
实时人脸检测代码与实时物体检测相似。