在萌颜sdk中,通过图像特征器技术辨别完人脸图像后,就要对图像进行分类处理了,此时就要用到另外一项技术:图像分类器。分类器是指根据不同规则对输入的数据进行分类的算法模型。其中,图像分类器又分为强分类器和弱分类器,弱和强表征的是分类器处理问题的能力,可以将一系列弱分类器集合起来形成一个强分类器。
OpenCV在物体检测上使用的是Haar-like特征的级联表,这个级联表中包含的是boost的分类器。人们采用样本的Haar-like特征进行分类器的训练,从而得到一个级联的boost分类器。下面从一个haar弱分类器出发来解析图像分类器的原理。
一、Haar弱分类器
最简单的分类器就是一个对0和1进行判断的分类器,如果满足某个条件即为1,否则为0。建立一个只有一个Haar-like特征的分类器。通过比较输入图片的特征值和弱分类器的特征决定判断的输出,所以需要一个阈值,当输入图片的特征值大于该阈值时才判定其为人脸。最优弱分类器训练的过程实际上就是在寻找合适的分类器阈值,使该分类器对所有样本的判读误差最低。
二、弱分类器构造一个强分类器
弱分类器只能解决很简单的问题。对于人脸这种信息很多的问题,一个弱分类器是完全不够的。之前提到弱分类器的组合可以得到一个强分类器,具体过程相当于让所有弱分类器进行投票,再对投票结果按照弱分类器的错误率加权求和,将投票加权求和的结果与平均投票结果比较得出最终的结果,这就构成了一个强分类器。
因此,一个强分类器的诞生需要T轮的迭代,具体操作如下:
1、给定训练样本集S,共N个样本,其中X和Y分别对应于正样本和负样本,T为训练的最大循环次数。
2、初始化样本权重为1/N,即为训练样本的初始概率分布。
3、第一次迭代训练N个样本,得到第一个最优弱分类器。
4、提高上一轮中被误判的样本权重。
5、将新的样本和上次分错的样本放在一起进行新一轮训练。
6、循环执行步骤4~5,T轮后得到T个最优弱分类器。
7、组合T个最优弱分类器得到强分类器。
以上,就是萌颜sdk背后的技术之一:图像分类器的部分介绍,由于篇幅的原因,剩余的内容将会在下篇文章中继续补充,如果您对萌颜sdk开发感兴趣,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。