MTCNN常见问题总结:
1、为什么不直接进行预测而要通过偏移框反算真实框的位置?
直接预测只有一个框可能会找不到真实框,而通过坐标反算可以有多个预测框只需要在多个预测框中挑出置信度最大的那个,此种方法不易出现预测框丢失的情况。
2、为什么P网络一层 池化,R网络两层池化
池化后提取的重要信息越多,p网络不进行两层池化是因为网络太浅精度达不到,池化会丢失很多重要信息
3、为什么输入的尺寸越来越大?
多次池化的前提是信息的量更多更复杂
4、 为什么不在P网络得到预测框坐标直接作NMS而要传到R网络中在R网络中做NMS?O网络存在的意义 是什么?
5、为什么必须通过坐标值的反算来计算图像的真实坐标,而不是直接利用神经网络去也可以目标人脸的真实坐标?
因为在神经网络在多次的反算过程中,每次移动步长就会输出一个预测框,在最后输出的是一系列的预测框,通过iou的计算和nms的计算就可以输出较大概率上的真实值,如果是网络直接去学习目标人脸的位置,最后输出的预测框是只有一个,很可能会出现目标预测不准确的情况。如果是反算,输出的一直是在挑选中的再进行挑选,增加了准确率。
6、为什么要做金字塔变换?
解决目标多尺度的问题,由于照片的拍摄情况各不相同,在原图上的大小位置也有很大差别,通过图形金字塔能够将不同大小的人脸缩放到合适的尺度,便于检测。同时每进行一次图像金字塔就要进行一测检测判断,相当于进行了多次检测,提高检测到目标的的可能性。
7、为什么训练时对图片的尺寸有限制,但是在检测时可以输入任意尺寸大小的图片?
在训练时各个网络是分开训练的,在使用时输入的图片依次经过P网络,R网络,O网络,在P网络中的最后一层为全连接层(输入的尺寸可以任意大小)
8、O-Net的准确度最高,为什么不直接过O-Net?或者使用比O-Net更深的网络呢?
这是因为,假如直接过O-Net网络,运行速度会非常的慢,实际上P-Net和R-Net 这两步对含人脸检测Proposal bounding box 做了一个过滤,使得最后过耗时更大的O-Net网络 的bounding box 比较少,从而减少了整体时间。
更多问题待续。。。。。。。。。