项目

一般

简介

Problems I encountered

对opencv人脸检测算法的改进

可以改进的地方就只有几个,一个是不使用Haar特征而使用别的特征;一个是改进检测的范围,比如可以检测倾斜的人脸,或者可以检测有遮盖的人脸,但应该可以通过采用适当的样本重新训练级联分类器得到,但重新训练级联分类器耗时较多;一个是改进训练级联分类器的函数opencv_traincascade,这就相当于改进adaboost算法;所以除了第一点,基本没有什么可以改进的地方。

如果采用自己的代码替代的话,如果仅仅是替代cvHaarFaceDetect,工作量已经很大了,因为cvHaarFaceDetect内还调用了各种函数,如果保留调用的函数而仅仅替代cvHaarFaceDetect那还好估计几百行可以做掉,但是还要替换调用的函数那工作量会非常大。

级联分类器的文件是xml文件,如何用c语言完成?

需要用多少haar特征?这些haar特征是手动选择的还是用程序训练的?

如果最后全部替换成自己的程序,那如何绘制图片不用到图形库呢?

训练级联分类器

迭代次数T应该取多少?

用什么样的人脸样本集?

为什么后来的stageclassifier的弱分类器个数有的比前面的还少?这是如何排序的?

每个弱分类器到底包不包含阈值数据?这和“影响因子”有何关系?

阈值的数据是如何得到的?如果是使用对特征值进行排序的话,那耗时将非常长,如何快速得到100个或以上弱分类器?特征值又是如何计算得到的?

迭代T次训练T歌弱分类器时,每一次迭代阈值都改变,怎么改?

训练级联分类器时,若未达到要求的检测率,则不断训练强分类器,那么强分类器如何确定其中的弱分类器的个数,即迭代次数?