NPD Face Detector
先说CPU版本的吧,最近看了几篇论文比较好的一个是Joint Cascade Face Detection and Alignment,这个把检测和对齐放在一起,速度快,性能好,应该可以用在手机上,不过看的比较久,有点忘记了,而且这篇论文作者是接着他去年的研究成果继续的,所以应该两篇文章一起看,这里先不提了。
最近看了NPD Face Detector,这篇论文提到了NORMALIZED PIXEL DIFFERENCE FEATURE SPACE这种特征,相对用到的Haar特征以及LBP特征计算简单,而且表现能力强。然后使用了Deep Quadratic Tree这种结构的树来做弱分类器,弱分类的组合使用了Adaboost方法,作者没有做级联,表示一个分类器可以达到较好的效果。论文提到的检测速度以及精度都很好,不过我下载了作者提供的demo,感觉速度比较慢,而且精度不好。最近有点急没有看代码,不知道是不是其他地方比如内存加载占用了时间。但是有点失望,作者给的model检测的准确率也不高,可能有保留吧,本来想如果性能好的话,反正是MATLAB的,直接拿出来然后改一改,连模型都不用训练了。这里验证的不够仔细,如果有哪里说的不对的请指正。
这篇论文还有一个比较好的地方就是提到了训练样本的选取方法,作者在AFLW数据库上选取人脸,做了镜像以及perturbations in positions(位置上的微小偏移?应该是这个意思吧),把正样本的数量扩大10倍,到217300个。负样本还是从AFLW数据库上取,只是将人脸部分使用非人脸图片覆盖。
Compact Convolutional Neural Network Cascade for Face Detection
下面说一下GPU版本的,看了好几篇,一般都是追求高精度的,CNN在这方面本来就有优势,比传统方法准确是应该的,这里提一篇检测速度极快的,4K分辨率下可以达到27fps,作者提到了两个配置,分别是GT640M显卡以及GTX960,算是中端显卡,即使是960达到这个速度也是很不错的。Compact Convolutional Neural Network Cascade for Face Detection,这篇文章应该是CVPR2015的一篇论文。
作者提出了新的激活函数,他认为这种激活函数性能更好。
因为是高速的卷积神经网络,所以结构也比较简单,而且去掉了参数较多的全连接层,结构图如下:
三层的级联方式如下图:
这篇论文github上有实现,不过没有提供model,所以一直没时间尝试,不过感觉是一种不错的方式,可以利用GPU加速而且使用CNN又能有不错的精度。
暂时没有时间试这些方法,只能暂时用Dlib的人脸检测,精度还是很高,缺点就是速度慢,不过加入了追踪之后在视频中使用还是不错的。