OpenCV 人脸检测自学(4)_opencv_trainCascade输出的xml格式总结

opencv_trainCascade输出的xml格式总结


在CvCascadeClassifier::save(const String filename, bool baseFormat)里当baseFormat为0时,选择输出本文档格式,否则还是输出opencv_haartraining的格式

1.      StageClassifier


以上为opencv_trainCascade测试人脸检测的时候出来的第一层的xml文件内容。个人理解含义如下:

<maxWeakCount>表示这一层有几个弱分类器

<stageThreshold>表示这一层的threshold,这个threshold要跟下面所有弱分类器的输出之和比较后然后决定这层的输出时0还是1

<internalNodes> 表示的是这个弱分类器,以第一个internalNodes为例,

0 和 -1表示的是叶节点的索引(leafindex),

后面的那个167 表示的是Node->split->var_idx,即这个节点表示的是哪个feature,即feature的索引,可利用这个索引跟输入图像的序号快速定位输入图像的积分图然后求得这个索引对应的特征值

后面那8个数是CvDTreeSplit的subset的内容,上面算出来的那个特征值会跟这个subset里的特定子集比较来看是不是属于这个子集。

<leafValues>表示左右child的值,即上面属于子集的话output -7.792,否则7.984

2.      CascadeClassifier

总的级联分类器分为两部分,

一部分是把各个stageClassifier给合到一起了,见下图,但是有个区别是split->var_index改变了,它把当前这个CascadeClassifier实际用到的feature统计个数,(我这个例子里是302个),然后按照顺序给重新安排var_index.

第二部分是把上面按顺序排列的feature实际用到的rect的位置,宽高进行记录,估计这样在调用的时候可以直接算特征值比较快吧。具体见下下图。



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值