联系我们
- 地 址:北京市海淀区北四环西路9号 ,主 营:人脸识别,活体检测,身份证识别,银行卡识别,名片识别,车牌识别,OCR识别等及智能识别技术。
- 电 话:13146317170 廖经理
- 传 真:
- 邮 箱:398017534@qq.com
神奇的人脸检测算法
神奇的人脸检测算法
自从anchor-based method呈现之后,物体检测根本上就离不开这个神奇的anchor了。只因有了它的辅佐,人类才在检测任务上第一次看到了real time的曙光。但是,夹杂在通用物体检测中,某些特定物体的检测任务由于应用量宏大,以及该物体的特殊性,需求单独拎出来思索。其中最有代表性的就是人脸检测。
人脸相关于其他物体来说有一个普遍的特性,就是在图像中所占像素少。比方,coco数据集中,有一个分类是“人”,但是人脸在人体中只占很少一局部,在全图像上所占比例就更少了。本文所要引见的S3FD[1](Single Shot Scale-invariant Face Detector)正是要处理这个问题。
人脸检测专用数据集—widerface
Widerface能够说是目前人脸检测数据集中最难的,放一张图大家感受一下
图片像素1024*732,均匀人脸像素10*13,难度不可思议。
当然了,这张照片只是展现了人脸的大小引发的问题,还有其他像遮挡,大角度,旋转等问题,由于不是本文的重点,不予过多讨论。
SSD简介
由于该算法是基于SSD来做的改良,首先简单引见一下SSD[2]。
如图为SSD和YOLO的网络构造,他们也是最早的一批完成了one-stage检测的算法。能够看到,SSD为全卷积网络,并且经过不同位置的layer停止预测。换句话说,用低层网络检测小物体,高层网络检测大物体。
当然了,SSD也有一些明显的问题,比方关于小物体的recall很普通。局部缘由是在应用低层网络做预测时,由于网络不够深,不能提取到有效的语义信息。
总之,SSD检测速度能够和YOLO媲美的同时,精度又能够和Faster RCNN媲美,而且很合适作为根底框架停止进一步的改良。
传统anchor机制在小人脸中遇到的问题本文作者提出了四个问题:
1.人脸区域自身就小,经过几个stride之后,特征图上就不剩什么了
2. 相比于感受野和anchor的尺寸来说,人脸的尺寸小的不幸
3. 关于现有的anchor匹配战略,我们能够看到,人脸像素小于10*10的tiny face根本上一个anchor都匹配不到。而outer face这个问题其实是anchor-based办法的通病,每级anchor间大小差距越大,中间尺寸的mismatch现象就越严重。
4. 图中每一个网格能够看成是某个特定尺寸的anchor。能够看到关于左边的小人脸,正负比例严重失衡,这在锻炼时,特别是first layer,需求特别思索。
网络构造
1. 输入大小640*640,从feature map大小为160*160开端,不断到最后5*5,共有6级预测网络,anchor scale从16*16到最后512*512,依次指数加一(看了网络构造强迫症表示很舒适)。
2. 每一个预测层,每个位置anchor只要一个(一个scale,ratio为1:1),由于在不扭曲图片的场景下,人脸的比例大约就是1:1(可能有少局部大长脸比例到达了1:2,但是太少了疏忽不计)。因而,预测conv输出的特征维度是2+4=6
3. 在作为预测的最低层的layer(即feature map大小为160*160)下面能够看到预测出来的特征维度为Ns+4,不是2+4,然后跟了一个叫Max-out Background label的东西,这个后面会讲到。
4. 中间的conv_fc6,conv_fc7是从VGG的fc层提取出来然后reshape,作为初始权重。
5. Normalization layers就是SSD_caffe中的Normalize。感兴味的能够去Github看weiliu89的SSD版本的Caffe代码[2]。
如何处理问题
1. Anchor与anchor之间堆叠区域多。比方第一级,stride是4,但是anchor scale是16,所以相邻两个anchor之间有很大一块堆叠区域,一定水平上处理了前文提到的outer face的问题。
2. 改良了anchor匹配战略。
假如依照SSD中的匹配战略,jaccard overlap高于阈值(普通取0.5),均匀每个人脸只能匹配到3个anchor,而且tiny face和outer face能匹配的anchor数量大局部为0。
作者设计了新的匹配战略:
第一步,将阈值从0.5降到0.35
第二步,关于那些依然匹配不到anchor的人脸,直接将阈值降到0.1,然后将匹配到的anchor依照jaccard overlap排序,选取top-N个。这个N作者设计为第一步中匹配到anchor的均匀值。
再来直观的比照一下新老匹配战略:
能够看到,average line和部分都有所提升。
3. 前面提到,小人脸招致正负样本比例严重失衡。特别关于最浅层的预测层,一方面anchor原本就多(像本文中的构造,第一级中anchor就占了总数的75%),另一方面由于大局部anchor是背景,招致false positive显著增高。所以为了减少这里的false positive,作者采用了max-out background。
前面我们看到第一级预测出来的特征维度是Ns+4,这里NS=Nm+1。关于不采用max-out战略的网络层,Nm能够看成是1,即只预测一个该anchor为背景的分数。但是这里取3,能够了解为反复三次预测该anchor为背景的分数,然后取这三个分数中最高的那一个。最直接的结果就是进步了该anchor被预测为背景的概率,因而可以减小false positive。
上一条:深度学习与机器学习中的正则化
下一条:文字OCR识别技术