对OpenCV中Haar特征CvHaarClassifierCascade等结构理解.docxVIP

对OpenCV中Haar特征CvHaarClassifierCascade等结构理解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对OpenCV中Haar特征CvHaarClassifierCascade等结构理解

对OpenCV中Haar特征CvHaarClassifierCascade等结构理解首先说一下这个级联分类器,OpenCV中级联分类器是根据VJ 04年的那篇论文(Robust Real-Time Face Detection)编写的,查看那篇论文,知道构建分类器的步骤如下:1、根据haar-like特征训练多个弱分类器2、使用adaboost算法将多个弱分类器组合成一个强分类器3、最终的分类器是由多个强分类器级联而成下面这幅图是弱分类器组合成强分类器的示意图(图片来源于网络):下面这张是多个强分类器级联的示意图(图片来源于网络):在了解了级联分类器是怎么一回事后,我们来看一看OpenCV里面级联分类器的结构在调用OpenCV中的级联分类器对目标进行分类时,都会将一个训练好的分类器(一个训练好的.xml文件)读入到一个CvHaarClassifierCascade结构中,如下:?1?CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad(?haarcascade_frontalface_alt.xml,?0,?0,?0?);??那么这个CvHaarClassifierCascade结构体里面的内容都有哪些呢? 1 typedefstructCvHaarClassifierCascade 2 { 3 int flags; /* 标志位 */ 4 int count; /* 分级分类器中强分类器的数量 */ 5 CvSizeorig_window_size; /* 训练中原始目标的大小 */  6 7 /* these two parameters are set by cvSetImagesForHaarClassifierCascade */ 8 CvSizereal_window_size; /* 待检测物体的大小 */ 9 double scale; /* Haar块缩放的尺寸 */10 11 CvHaarStageClassifier* stage_classifier; /* 定义强分类器数组 */ 12 CvHidHaarClassifierCascade* hid_cascade;13 }CvHaarClassifierCascade;第一个flags,还不是很清楚,在debug模式下,flags=1112539136(好吧,这个值很诡异),我也不是很清楚第二个count,表示整个分级分类器中强分类器的数量,即最后参与级联的强分类器的个数第三个orig_window_size,表示的是在训练时用的正样本的尺寸,OpenCV中的尺寸是20x20第四个和第五个,注释中说了,这两个参数需要自己设置,具体每个参数看注释第六个stage_classifier,是强分类器指针,指向一个强分类器数组,之前的count是多少,那么此处的强分类器就有多少最后一个hid_cascade,还不是很清楚下面来看上面第六个参数的强分类器结构体 1 typedefstructCvHaarStageClassifier 2 { 3 int count; /* number of classifiers in the battery 构成强分类器的弱分类器的数量*/ 4 float threshold; /* threshold for the boosted classifier 叠加分类器的阈值*/ 5 CvHaarClassifier* classifier; /* array of classifiers 定义分类器数组*/ 6 /* these fields are used for organizing trees of stage classifiers, 7 rather than just stright cascades */ 8 int next; 9 int child;10 int parent;11 }CvHaarStageClassifier;第一个count,表示该强分类器中,弱分类器的数量,即该强分类器由多少个弱分类器组成第二个threshold,叠加分类器的阈值(好吧。。这个我也不知道)第三个classifier,是一个指针,指向的是一个弱分类器数组,之前的count是多少,此处的弱分类器就有多少后面3个都不清楚。。。(望知道的网友给予帮助)下面是弱分类器的结构 1

文档评论(0)

abf4675328 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档