python opencv怎么创建一个cascadeobjectdetector对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python opencv怎么创建一个cascadeobjectdetector对象相关的知识,希望对你有一定的参考价值。

参考技术A OpenCV中有两个程序可以训练级联分类器: opencv_haartraining 和opencv_traincascade。opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。这二者主要的区别是 opencv_traincascade 支持 Haar、Hog和 LBP(Local Binary Patterns) 三种特征,并易于增加其他的特征。与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。训练一个与基于Haar特征同样准确度的LBP的分类器是可能的。
opencv_traincascade and opencv_haartraining 所输出的分类器文件格式并不相同。注意,新的级联检测接口(参考 objdetect 模块中的 CascadeClassifier 类)支持这两种格式。 opencv_traincascade 可以旧格式导出训练好的级联分类器。但是在训练过程被中断后再重启训练过程, opencv_traincascade and opencv_haartraining 不能装载与中断前不同的文件格式。
opencv_traincascade 程序使用TBB来处理多线程。如果希望使用多核并行运算加速,请使用TBB来编译OpenCV。还有一些与训练相关的辅助程序。

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

【中文标题】如何创建 Haar Cascade(.xml 文件)以在 OpenCV 中使用?【英文标题】:How to create Haar Cascade (.xml file) to use in OpenCV? 【发布时间】:2011-01-01 07:56:09 【问题描述】:

如果你熟悉 OpenCV 库,你就知道 Haar Cascade 图像对象检测是什么。我的意思是图像对象检测,比如人脸检测或其他东西。 我有一些用于人脸检测的 Haar Cascade XML,但我不知道如何创建自己的。 我想创建 Haar Cascade XMLs 来检测简单的明亮圆形光源(即来自电视遥控器的闪烁红外光)。

那么,如何创建一个 Haar Cascade(.xml 文件)以在 OpenCV 中使用?

【问题讨论】:

在这里查看我的答案:***.com/questions/2597302/dice-face-value-recognition/… 找到好的常见问题解答computer-vision-software.com/blog/2009/11/… 【参考方案1】:

我认为这可能会有所帮助:

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

【讨论】:

【参考方案2】:

如果您有兴趣通过 haar 级联检测简单的 IR 光斑,这样做会很奇怪。因为简单的 IR blob 没有足够的特征来像其他对象(面部、眼睛、鼻子等)一样通过 opencv 进行训练。因为在我看来,IR 只是一种简单的光,只有一个亮度特征。但是如果你想学习如何训练分类器,下面的链接会对你有很大帮助。

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

如果您只是想检测 IR blob,那么您还有两种可能性,一种是您使用 DIP 算法来检测明亮区域,另一种是我建议您使用的 IR cam 只需通过IR blob,您可以使用 opencv blob 函数轻松检测 IR blob。如果您认为 IR cam 的范围很广,您可以通过移除 IR 阻挡器(如果有)并添加可见光阻挡器(即负片、软盘材料或任何其他材料)来将简单的网络摄像头制作为 IR cam。 您可以查看以下链接将简单的网络摄像头转换为红外摄像头。

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

【讨论】:

【参考方案3】:

这可能会有所帮助

http://opencvuser.blogspot.in/2011/08/creating-haar-cascade-classifier-aka.html

【讨论】:

【参考方案4】:

如何创建 CascadeClassifier :

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

【讨论】:

以上是关于python opencv怎么创建一个cascadeobjectdetector对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 OpenCV 创建 Haar Cascade (xml) 以跟踪手或手指?

计算机视觉·OpenCV使用Haar+Cascade实现人脸检测

在使用opencv中ClassifierCascade类时,无法加载级联分类器,相对路径和绝对路径都无法加载成功,why??

Python opencv:如何使用卡尔曼滤波器

python opencv3 静态图片检测人脸

利用opencv建立一个识别手机的haar cascade分类器