自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啤酒兄弟

关注计算机视觉领域,交流心得体会。欢迎阅读交流,未经许可请勿转载。

  • 博客(13)
  • 收藏
  • 关注

翻译 Face Alignment at 3000 FPS via Regressing Local Binary Features-译

回归局部二值特征实现3000帧每秒人脸对齐

2014-11-02 20:50:43 2859

原创 人脸检测源码解析——6、强分类器的诞生

一切准备就绪,下面我们来看强分类器是如何训练的,该过程在CvCascadeBoost::train函数中完成,代码如下:bool CvCascadeBoost::train( const CvFeatureEvaluator* _featureEvaluator,                           int _numSamples,                   

2014-11-02 19:29:20 4531 1

原创 人脸检测源码解析——5、加载数据

前面已经准备好haar特征集,打开了正样本数据文件,也有负样本的图片列表。现在开始真正读取需要的正负样本图片,着手进行级联分类器的训练。// (4)读取正负样本数据集,统计前面i个强分类器的虚警率 tempLeafFARate       if( !updateTrainingSet( tempLeafFARate ) )       {           cout     

2014-10-31 14:21:51 1907

原创 人脸检测源码解析——4、Haar特征集

// (3)创建特征评估器CvHaarEvaluator       featureEvaluator= CvFeatureEvaluator::create(cascadeParams.featureType);       //CvHaarEvaluator 初始化,开辟内存,生成特征集       featureEvaluator->init((CvFeatureParams*)

2014-10-31 11:47:32 2444

原创 人脸检测源码解析——3、准备数据

我们来看步骤(1)创建图片读取器中完成了哪些工作。  正样本先来看一下正样本长什么样,这在前面的原理部分已经讲过。我们会收集大量的人脸图片,然后转成0-255的灰度图片,缩放到同样的尺寸比如24*24。opencv中提供工具可以把这些小图像以vec文件的格式存到一个大文件中,以加快读取的速度并方便训练程序处理。

2014-10-31 11:12:56 1482

原创 人脸检测源码解析——2、概要流程

跟进CvCascadeClassifier::train函数的代码,该函数里面包含了分类器训练的完整流程,已经在重要的位置做了注释,带有括号编号的(X)为重要步骤,后面将逐一详细解析。这里我们主要是对整体流程进行把握,不必深入细节。

2014-10-31 10:14:23 2148

原创 人脸检测源码解析——1、训练参数

在后面的章节中我们将对opencv2.4.9版本的Haar特征训练级联分类器的流程进行解析。打开OpenCV解决方案,找到applications/opencv_traincascade项目,训练的主要代码都在该项目中。1.  入口函数main打开traincascade.cpp文件,训练程序是一个命令行程序,用来设置训练的数据源和一些必要参数。二话不说先运行一把看看,编译项目运行打印如下

2014-10-31 09:58:37 2076

原创 怎样让机器学会检测人脸——6、级联分类器

前面我们已经得到了一个强分类器H(x),我们知道它是有缺陷的,它的Recall=0.995,FalseAlarmRate=0.5,也就说它能办让99.5%的人脸通过,同时也有50%的非人脸也能通过。    有了强分类器我们得到一条结论:    如果一个样本Xi,强分类器H(Xi) ,那么它不是人脸。    那如果H(Xi) > ST呢?答案是还不能确定,需要进一步观察。    就好

2014-10-27 20:51:25 1227 4

原创 怎样让机器学会检测人脸——5、强分类器

分类器性能评价上回说到为S(x)选取阈值ST,在此之前我们先引入评价一个分类器性能的指标。因为阈值的选取是与性能指标密切相关的。用C(x)表示一个分类器,对于一个样本Xi,它输出+1或者-1。输出+1表示判别为正样本,-1表示判别为负样本。测试数据有P个正样本,N个负样本,根据分类器C的输出统计出下表。其中TP表示正样本输出+1的个数,FP表示负样本输出为+1个数。  

2014-10-27 15:47:40 1363

原创 怎样让机器学会检测人脸——4、AdaBoost

前面已经得到弱分类器了,它可以给出一个样本Xi,弱分类器h(Xi)可以输出[-1,+1]之间的值,正值表示属于正样本概率高,负值表示属于负样本概率高。仅凭一个弱分类器h(Xi)就对Xi作出最终分类,底气不足,有很大的错判风险。俗话说的好,三个臭皮匠顶个诸葛亮,这里的一个弱分类器就是一个臭皮匠,它的话多数时候是对的,但是绝不能只听它一家之言。我们用同样的方法从不同的数据集上训练多个这样的弱分类器

2014-10-27 15:26:24 1073

原创 怎样让机器学会检测人脸——3、弱分类器

前面已经谈到我们收集的数据:一共收集了有P个人脸图片(正样本),N个非人脸图片(负样本),记总数为M=P+N。已经知道如何提取特征——Haar特征:假设我们使用的图像大小为W*H,全部的haar特征总数为F个(F很大,数以万计)。现在对每个样本图片提取全部特征,第i个样本图片得到F个特征值组成特征向量Xi[F],那么所有样本的Xi按行存入矩阵X[M][F],矩阵X为一个M行F列二维

2014-10-26 10:02:10 1282 1

原创 怎样让机器学会检测人脸——2、Haar特征

继续解决我们提出的问题,让机器判别一副图片是否是人脸。仔细观察一下人脸的图片可以发现一些规律,比如大部分人脸鼻尖和嘴巴处比较亮,眼睛和眉毛的位置比较暗。也就是说不同部位的亮度差异对判别人脸是有帮助的。即将登场的Haar特征正是一种这样的特征,它定义为两个块的均值之差。下面的图中有10X10共100个正样本图片,每个图片都是20X20的灰度图。因为我们的样本是从互联网上到处搜集的,拍摄环境多

2014-10-25 22:20:04 1073

原创 怎样让机器学会检测人脸——1、统计学习

让我们先从人类的学习说起,当你还是3岁孩子的时候,看到的事物都是新的,对世界充满了好奇也感到很迷惑。是你的爸爸妈妈一遍一遍的指着一个会摇尾巴汪汪叫的动物告诉你,这是一条小狗,你会睁大眼睛观察它的样子,仔细听它的叫声,还会伸手去抚摸它松软的毛,然后学着爸爸的口型说“小狗”。当你和狗狗相处了相当长的时间,你对它越来越熟悉,当你只看到它的尾巴,或者听到它的叫声,甚至闭上眼睛摸到它的毛,都能够轻松并且肯定

2014-10-25 22:01:23 1180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除