Paper reading: MTCNN的一些理解

原始论文名称很长:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks,是深研院16年出的文章,论文短而精,还是非常值得一读的。

单纯的翻译过来应该是:多任务级联卷积网络的联合人脸检测与校准。

既然是多任务,网络结构通常情况下也不止一个了,所以整篇文章的framework如下图所示:Paper reading: MTCNN的一些理解

主要分为三个步骤,首先将输入的图片resize成不同的size,形成图片金子塔的方式,当然建议使用OpenCV或者其他方式的resize操作,为什么呢?LZ曾经将目标检测网络中每个模块都测试了对应的时间,发现Tensorflow的resize操作奇慢,会导致整个网络的时间效率下降,如果用OpenCV将1920x1080的图片resize成320x320或者其他更小,在LZ的电脑上大概只需要0.6ms左右,在视频处理中,对实时性要求很高,所以请各取所需。

Stage one: Proposal Network (P-Net)
这个网络主要是为了获得人脸区域的候选窗口和边界框的回归向量,并使用候选的边界框做回归,对候选的窗口进行校准,最后通过NMS删除重叠度较高的候选边界框。

因为P-Net在网络中是全卷积操作,不含全连接层,所以并不限制网络输入

Stage two: Refine Network (R-Net)
将P-Net最后输出的候选边界框24x24x3,进一步删除大量false positive的区域,在进行边界框的回归和NMS的操作,相当于对P-Net结果的一个优化。

Stage three: Output Network (O-Net)
将R-Net的输出Resize到48x48x3后输入到O-Net中,最后会输出5个人脸的关键点,分别为左右眼睛,鼻子,左嘴角和右嘴角,共10维的向量。如果要产生68个关键点呢?136维向量!

参考地址
http://www.sfinst.com/?p=1683
https://blog.****.net/emma1222/article/details/90664832
为什么要进行边界回归:https://blog.****.net/zijin0802034/article/details/77685438

为啥最近连arxiv都上不去。。。我很忧桑
Paper reading: MTCNN的一些理解