本文就是对这几天来看opencv自带的人脸检测的一些收获。目前先是梳理这个AdaBoost算法学习人脸,训练分类器,检测人脸的这么一个过程。以期整体把握该算法。
Adaboost人脸检测分3个步骤:准备样本,训练分类器,检测
准备样本:
正样本,opencv是用的FERET 人脸库做的样本来训练的自带的分类器。Harrtraining需要的是.vec文件的样本,因此需要把整理样本。分为两步:1先生成样本描述文件,2用自带的createsamples.exe来创建样本.vec文件具体步骤为
生成样本描述文件:
本文是把样本放在f:/OpenCV/bin/positivesamples文件中的,样本生成样本描述文件.dat,即在dos中f:/OpenCV/bin/positivesamples/目录下输入dir /b>possamples.dat。然后用EditPlus3打开possamples.dat文件,在样本中加入相应的描述信息(即个数,开始位置,宽度,高度。如 1.bmp 替换为bmp 1 0 0 24 24 )
创建样本:
用自带的createsamples.exe程序完成。如该程序在f:/OpenCV/bin/目录下,则创建样本的参数可设置为如下
f:/OpenCV/bin/createsamples -info positivesamples/possamples.dat -vec positivesamples/possamples.vec -num 45 -w 24 -h 24
-info 输入的样本描述文件
-vec创建的样本文件
-num 样本个数
-w ,-h样本的宽度,高度
负样本:
负样本的准备步骤可以借鉴正样本的准备步骤,Haartraining需要的负样本的输入文件为.dat文件,即负样本描述文件。在按照正样本的步骤准备好了描述文件之后,要删除.dat文件的中negsamples.dat这一行。
训练分类器: