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??