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

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

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HYPERLINK /pakfahome/p/3611303.html 对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 typedef struct CvHaarClassifierCascade 2 { 3 int flags; /* 标志位 */ 4 int count; /* 分级分类器中强分类器的数量 */ 5 CvSize orig_window_size; /* 训练中原始目标的大小 */  6 7 /* these two parameters are set by cvSetImagesForHaarClassifierCascade */ 8 CvSize real_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 typedef struct CvHaarStageClassifier 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,叠加分类器的阈值(好吧。。这个我也不知道) 第三个c

文档评论(0)

diquefaw + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档