
人脸检测-实现篇
文章平均质量分 80
beerbuddys
关注计算机视觉领域,交流心得体会。
博客文章未经允许请勿转载。
展开
-
人脸检测源码解析——1、训练参数
在后面的章节中我们将对opencv2.4.9版本的Haar特征训练级联分类器的流程进行解析。打开OpenCV解决方案,找到applications/opencv_traincascade项目,训练的主要代码都在该项目中。1. 入口函数main打开traincascade.cpp文件,训练程序是一个命令行程序,用来设置训练的数据源和一些必要参数。二话不说先运行一把看看,编译项目运行打印如下原创 2014-10-31 09:58:37 · 2088 阅读 · 0 评论 -
人脸检测源码解析——4、Haar特征集
// (3)创建特征评估器CvHaarEvaluator featureEvaluator= CvFeatureEvaluator::create(cascadeParams.featureType); //CvHaarEvaluator 初始化,开辟内存,生成特征集 featureEvaluator->init((CvFeatureParams*)原创 2014-10-31 11:47:32 · 2466 阅读 · 0 评论 -
人脸检测源码解析——3、准备数据
我们来看步骤(1)创建图片读取器中完成了哪些工作。 正样本先来看一下正样本长什么样,这在前面的原理部分已经讲过。我们会收集大量的人脸图片,然后转成0-255的灰度图片,缩放到同样的尺寸比如24*24。opencv中提供工具可以把这些小图像以vec文件的格式存到一个大文件中,以加快读取的速度并方便训练程序处理。原创 2014-10-31 11:12:56 · 1497 阅读 · 0 评论 -
人脸检测源码解析——6、强分类器的诞生
一切准备就绪,下面我们来看强分类器是如何训练的,该过程在CvCascadeBoost::train函数中完成,代码如下:bool CvCascadeBoost::train( const CvFeatureEvaluator* _featureEvaluator, int _numSamples,原创 2014-11-02 19:29:20 · 4562 阅读 · 1 评论 -
人脸检测源码解析——2、概要流程
跟进CvCascadeClassifier::train函数的代码,该函数里面包含了分类器训练的完整流程,已经在重要的位置做了注释,带有括号编号的(X)为重要步骤,后面将逐一详细解析。这里我们主要是对整体流程进行把握,不必深入细节。原创 2014-10-31 10:14:23 · 2162 阅读 · 0 评论 -
人脸检测源码解析——5、加载数据
前面已经准备好haar特征集,打开了正样本数据文件,也有负样本的图片列表。现在开始真正读取需要的正负样本图片,着手进行级联分类器的训练。// (4)读取正负样本数据集,统计前面i个强分类器的虚警率 tempLeafFARate if( !updateTrainingSet( tempLeafFARate ) ) { cout原创 2014-10-31 14:21:51 · 1926 阅读 · 0 评论