如何创建Haar Cascade(.xml文件)以在OpenCV中使用?

55
如果你熟悉OpenCV库,那么你就知道什么是Haar级联图像对象检测。在这里,图像对象检测指的是人脸识别或其他类型的识别。我有一些用于人脸检测的Haar级联XML文件,但我不知道如何创建自己的文件。我想创建一个用于检测简单明亮圆形光源(即电视遥控器闪烁的红外线光源)的Haar级联XML文件。那么,我应该如何创建一个Haar级联(.xml)文件并在OpenCV中使用呢?

1
请查看我的答案:https://dev59.com/_3E85IYBdhLWcg3w02_z#2756179 - ubiquibacon
找到了好的常见问题解答:http://www.computer-vision-software.com/blog/2009/11/faq-opencv-haartraining/ - some_engineer
2个回答

12

如果你有兴趣通过Haar Cascade检测简单的红外线(IR)光斑,那么这将非常困难。因为简单的IR光斑没有足够的特征可以像其他物体(如面部、眼睛、鼻子等)一样在OpenCV中进行训练。因为在我看来,IR只是一种简单的光线,只有亮度这一个特征。但如果你想学习如何训练分类器,则以下链接将对你有所帮助。

http://note.sonots.com/SciSoftware/haartraining.html

如果你只想检测IR光斑,那么你有两个更多的选择,一个是使用数字图像处理(DIP)算法来检测明亮的区域,另一个则是我推荐的方法,使用一个仅传递IR光斑的IR摄像头,然后通过OpenCV blob函数轻松地检测IR光斑。如果你认为IR相机价格昂贵,你可以通过去掉IR阻挡器(如果有的话)并添加可见光阻挡器,如底片、软盘材料或其他任何材料,将简单的网络摄像头转换成IR相机。你可以查看以下链接了解如何将简单的网络摄像头转换成IR相机。

http://www.metacafe.com/watch/385098/transform_your_webcam_into_an_infrared_cam/


3
这里的两个链接都已失效。 - Suraj Rao

-4

如何创建CascadeClassifier:

  1. 打开此链接:https://github.com/opencv/opencv/tree/master/data/haarcascades
  2. 右键单击“haarcascade_frontalface_default.xml”所在位置
  3. 点击“另存为”
  4. 将其保存到与您的文件相同的文件夹中。
  5. 在您的文件中包含以下行:face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接