人脸检測中几种框框大小的选择~

人脸检測应用极为广泛,内部细节也偏多,尤其是涉及到几种类型的框,这几种框的大小之前有着千丝万缕的联系,对检測性能的好坏影响程度大小不一。本篇文章基于自己在人脸检測方面的经验,说说对这些框之间关系的一些理解。

如今大部分人脸检測效果都已adaboost+LBP(各种改进)的方式实现,adaboost由N个强分类器组成,每一个强分类器由M个弱分类器组成,而每一个弱分类器事实上就是一个特征。

本文以LBP特征为例,人脸检測共涉及到例如以下几类框:

1. LBP特征矩形框大小(极为重要)

2. 检測框大小(重要)

3. 检測目标大小(次要)

4. 原始训练样本大小(重要)

5. 图像大小(不重要)

当中,LBP特征矩形框大小一般由四个量组成,它们是:矩形框相对于模板的位置(x, y)。矩形框的大小(w, h)。这四个变量均能够自由改变,仅仅是有一个约束。那就是原始训练样本的大小(这也是我说的联系1)。

联系1:如果原始训练样本大小为28*28。那么LBP特征矩形框四个变量的取值均在[0-28]之内。

这点是由于,LBP特征都是在训练阶段确定下来的,位置和大小均是相对于原始训练样本而定。自然要在此范围之内。

进一步,由于測试阶段,LBP特征的计算过程是在检測框中进行,于是能够引出第二个联系(联系2

联系2:检測框大小和原始训练样本大小之间一定具有明白的比例关系,且原始训练样本长宽比例最好为1:1。

说白了,检測框是正方形的,它在图像中一步一步(step)的遍历。对每一个检測框内的图像都要进行adaboost检測(想想看,算法时间还是比較恐怖的)。

进一步,检測目标大小一般由人为设定,比方我看到一个视频,我认为里面的人脸可能是80*80。那么我就设定检測目标大小为80*80,这个设置的影响就是,限制了检測框的大小,也就是联系3

联系3:检測目标大小由用户设置,其大小约束了检測框大小。假设检測框大小小于检測目标大小,则该检測框无用。

连锁反应,大家能够依据以上几种联系自己想想检測目标大小对特征矩形框的影响。

以下举个样例。用于说明人脸检測中特征矩形框的变化策略。

如果原始训练样本大小为28*28,此时检測框大小为56*56,即为前者的两倍。对于这样的情况,理论上,应该是将整幅图像下採样2倍,检測框的位置和长宽也就随之缩小两倍,LBP特征矩形框大小和位置保持不变。可是。在实际应用中。对整幅图像下採样时间较多。更加经济实惠的策略是保持检測框位置和大小不变。更改LBP特征矩形框位置和大小,比如,都扩大两倍。这两种方式显然存在差别,可是效果不会有太大的差距。所以常常被採用。

联系4:图像大小随意,对其余大小没有不论什么约束。

之前做这方面的研究,一点一直没理解,就是为什么训练的时候把目标图像裁剪为指定大小(比方说28*28),可是在測试过程中,却对不论什么大小的图像都能够。

如今想想看,自己当时挺傻的,训练阶段採用的图像,都是仅仅包括目标的,然后再规格化为28*28,在測试阶段,实际上也是这样。仅仅只是这个时候。针对的是检測框,而不是整幅图像了,adaboost是在检測框中的图像进行,和图像真心没啥关系,自然就不要求图像为指定大小(联系4)。

我弄了两幅图,左面是训练样本。右边是測试图像。大家看看吧,别和我一样犯傻。

其中,右图其中的绿色框就是检測框,不同大小的绿框代表着检測框的大小变化。

总结起来一句话,原始训练样本大小约束LBP特征矩形框大小,检測框大小必须为原始训练样本大小的倍数。检測目标大小约束了检測框大小。图像大小对其余大小没有不论什么约束。

(转载请注明:http://blog.csdn.net/wsj998689aa/article/details/41243117)

时间: 2024-12-07 19:00:14

人脸检測中几种框框大小的选择~的相关文章

利用opencv中的级联分类器进行人脸检測-opencv学习(1)

OpenCV支持的目标检測的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本号的C++接口除了Haar特征以外也能够使用LBP特征. 先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包含读操作read.复制clone.获得特征类型getFeatureType,分配图片分配窗体的操作setImage.setWindow,计算有序特征calcOrd,计算绝对特征calc

OpenCV人脸检測(完整源代码+思路)

本博文IDE为vs2013 OpenCV2.49 话不多说,先看视频演示(20S演示): 例如以下: https://v.youku.com/v_show/id_XMjYzMzkxMTYyMA==.html?spm=a2h0w.8278793.2736843.4#paction 程序截图例如以下: 怎样来用OpenCV来实现能. 以下给出OpenCV实现人脸检測的一般步骤: 1.载入人脸检測器 2.开启摄像头 3.对图片进行灰度处理(事实上能够不处理,上图中原图的标题栏就是未进行灰度处理进行的检

人脸检測流程及正负样本下载

人脸检測做训练当然能够用OpenCV训练好的xml.可是岂止于此.我们也要动手做! ~ 首先是样本的选取. 样本的选取非常重要.找了非常久才发现几个靠谱的. 人脸样本:http://www.vision.caltech.edu/Image_Datasets/Caltech_10K_WebFaces/   网上抓取的逾10,000个人脸样本 http://vis-www.cs.umass.edu/lfw/  13.000个人脸 负样本(背景环境衣服动物乱七八糟的):http://groups.cs

基于QT和OpenCV的人脸检測识别系统(1)

人脸识别分为两大步骤 1.人脸检測 这个是首要实现的.你得实现人脸显示的时候把人脸框出来,当然算法非常多,另一些人眼检測鼻子检測什么的 主要用的是这个 const char *faceCascadeFilename = "haarcascade_frontalface_alt.xml"; detect_and_draw(IplImageBuffer,storage,cascade); 这个函数就是检測人脸的并画框效果例如以下 watermark/2/text/aHR0cDovL2Jsb

cocos2d-html5 碰撞检測的几种方法

游戏中的碰撞还是比較多的,比方角色与角色的碰撞,角色与墙壁的碰撞,角色与怪物的碰撞等,都须要 进行碰撞的检測,来触发一定的事件 近期在尝试制作一个小游戏的时候须要用到碰撞检測,然后就查了下资料,并在论坛进行提问等算是找到了比較惬意的碰撞检測方法,这里记录下来 如今自己知道的方法算是有了三种了,以下一一记录并分析下他们各自的优缺点 1.就是官方提供的,依据getBoundingBox();方法获取要检測的碰撞物体的范围,然后再依据rectIntersectsRect();方法进行推断须要检測的两个

Cocos2d-x 3.0中 物理碰撞检測中onContactBegin回调函数不响应问题

好吧,事实上这篇也是暂时冒出来的,近期朋友要做个物理游戏,曾经做物理还是用box2d,呃.确实要花些功夫才干搞懂当中的精髓,可是听讲这套引擎又一次封装了一次.要easy非常多,所以就简单尝试了一下,感觉确实要简单不少,只是在这当中还是遇到了些问题,首先就来说说onContactBegin这个回调函数响应问题. 先说说情况.简单做了一个打砖块的游戏.前面一切都非常顺利,仅仅是做到碰撞检測的时候,发现回调函数弄死都不调用.開始我以为函数写错了,后来查了api.testCpp都没有错,在3.0的api

毕业课题之------------车辆阴影特征检測的两种方法

A      依据阴影底部边缘确定阴影位置 B    通过阴影的形状(类似矩形)特征找出阴影

目标检測的图像特征提取之(一)HOG特征

1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检測的特征描写叙述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检測中获得了极大的成功.须要提醒的是,HOG+SVM进行行人检測的方法是法国研究人员Dalal在2005的CVPR上提出的,而现在尽管有非常多行人检測算法不断提出,但基本都是以HOG+SVM的思路为主. (

HDFS怎样检測并删除多余副本块

前言 在HDFS中,每时每刻都在进行着大量block块的创建和删除操作,这些庞大的block块构建起了这套复杂的分布式系统.普通block的读写删除操作一般人都或多或少了解过一些,可是过量的副本清理机制是否有人知道呢,就是overReplicatedBlock的处理,针对过量的副本块,HDFS怎么处理,何时处理,处理的策略机制怎样,本文就给大家分享HDFS在这方面的知识. 过量副本块以及发生的场景 过量副本块的意思通俗解释就是集群中有A副本3个,满足标准的3副本策略,可是此时发生了某种场景后,A