2015 ICMR的一篇文章, 用CNN来做Fece Detection。
亮点不多或者说没有,简单地记录。
一、网络架构
采用(finetuning)AlexNet, 把fc6,fc7, fc8改成convolution layers, 最后接个soft-max layer。
最后soft-max layer是表示图片为bg, 正脸,侧脸(左右)等的可能性。
训练的时候图片是227*227输入, 测试的时候由于是全卷积网络,所以可以任意大小输入(>227*227)。
二、测试
1. 金字塔
文章设定检测最小的人脸为 227 / 5 = 45 pixels
文章尝试了4种scale 比例:
发现0.7937的效果最好。
其实这个因训练方法而异,0.7937不一定是最好的缩放比例。
2. nms
我觉得nms是这篇论文中比较好玩的一点。
(1) nms-max: 去响应值最大的boundingbox, 去除IOU大于某阈值的boundingbox
(2) nms-avg: 先去除confiendce 小于0.2的boundingbox。 对于剩下的boundingbox, 根据某iou阈值进行聚类。 对每一个boundingbox 聚簇, 只保留score大于聚簇中最大 的score 90%的boundingbox, 最后位置做平均, socre取聚簇中最大的score。
可以看到,不同的nms策略,对precision的影响还是很大的。这点可以探究一下。
3. 结果
下图的DDFD就是本文的曲线。在FDDB上的结果也不是很高。
三总结
1.优点
(1)对人脸进行multi-view的划分: 目前很多方法都采用multi-view的方法了,这样做的确有助于提高效果
(2)对nms进行探究: 不同的nms策略和阈值会产生很大的不同,启发我们在nms上也可以做文章
2.缺点
(1)网络简单,没有什么创新
(2)人脸的模板太大(224 * 224)。对于很小的人脸,图片要resize到很大,无疑会极大地增加计算负担。所以文章也只是检测大于45pixels 的人脸