您的位置:首页 > 运维架构

opencv haar训练样本准备(1)

2012-05-14 17:05 267 查看
OpenCV给我们提供了很多训练分类器的方法和程序。对于人脸检测的分类器训练叫做海尔训练,我们可以用这些方法创建我们自己的分类器。

(一)数据准备:

正样本(人脸)

我们需要收集只含有脸部的图像。The UMIST Face Database 有着类似Video般的连续脸部图像,不论是正脸的还是侧脸的。我以为训练这些图像能生成一个面部表情鲁棒性很好的脸部检测器。然而我想得太过美好了,事实上效果一般。后来我又用了基于CMU PIE Database的正面脸部数据库,它包含了许多不同光照条件的图像,可是效果与前面类似,都不理想。MIT CBCL Face Data是另一种选择,它囊括了2429张正脸图像,其中也有一些不同的表情与光强。原本是很适合海尔训练的,然而该库的图像原始大小只有19*19,这样,我们就无法进行检测更好尺寸的人脸的实验。

OpenCV的开发者有可能使用了FERET数据库。
负样本(背景)

我们同样需要收集一些我们不感兴趣的对象(也就是不含有人脸的图像)来生成海尔练级分类器。
测试自然状态的图像(人脸在背景中)

我们可以利用createsamples utility来综合测试图像集,不过有个专门的测试自然状态的图像集合就更好了。

OpenCV的开发者使用了CMU-MIT Frontal Face Test Set去进行他们关于这类图像的实验。这个集合有个有关范围的描述,涵盖了眼睛、鼻子和嘴唇的中心及两端的方位信息,然而并没有由矩形区域来表示的人脸定位。

但是,比如人脸区域的矩形可以由以下方法计算得出:

以鼻子的高度作为矩形的上沿,以嘴巴的高度作为矩形的下沿,以嘴巴的左端作为矩形的左边缘,以嘴巴的右端作为矩形的右边缘。

虽然此法不够完美,不过看起来还算可行。
如何手动快速生成图像

我使用的软件是imageclipper,这个软件不仅对海尔训练有帮助,而且也可应用于计算机视觉和机器学习研究等领域。它有如下特点:

自动打开同一目录下的图像序列;以帧为单位打开视频文件;通过某快捷键方便剪切图像并跳至下一幅图像;直接用鼠标左键选定并剪切图像中的区域;通过鼠标右键移动或重置图像区域;所选定的区域也可显示在下一幅图中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: