人脸检测小江湖
点击我爱计算机视觉标星,更快获取CVML新技术
本文转载自Github,原作者为CenterFace开源贡献者ywlife,经作者授权转载。
https://github.com/Star-Clouds/centerface/blob/master/evaluation.md
图片来自CenterFace检测结果
研究进展
从mtcnn开始说起,在工业界,估计做脸的都知道mtcnn,因为模型小速度快,带关键点,方便部署,至今仍有使用在大厂的业务中。不过这种级联的网络,速度与人脸个数成反比,所以,对于人脸抓拍这种场景就不好用了。而且这种类型的网络很难再进一步刷新榜单了。
后来,学术界就出现了一批优秀的one stage的人脸检测,例如ssh,sfd,dsfd,retinaface等等,这些网络也一次又一次的刷新widerface的榜单。
然而,比较好的轻量级的网络却并不是这么多,有faceboxes,libfacedetection,retineface-mnet,LFFD和以及Ultra-Light-Fast-Generic-Face-Detector。
测试方法
为了刷榜,face detection测试也是费劲了研究者的心思。我们来仔细分析一下目前测试方法。
多尺度测试:主流的测试方法。几乎所有的文献都采用多尺度的测试方法,因为每个网络训练时输入图像的尺度不一致,因此,从学术界角度,采用多尺度测试是比较公平,公正的。简单说就是,各自拿各自最好的结果来pk。
单尺度原图测试:这是lffd提出的测试方法,也是比较严谨的测试方法,而且对工业界更具有参考意义。
单尺度缩放测试:faceboxes将图像放大三倍进行测试。放大三倍后,图像中的人脸变大了,就更容易检测了,性能自然会好一些。而Ultra-Light-Fast-Generic-Face-Detector是将图像不等比例的resize到320x240和640x480进行测试,resize后,图像变小了,人脸也会出现形变。
实验对比
几乎所有的实验对比都是严谨的,但也有把其他算法测低了的。有以下几种情况:
采用paper的数据进行比较:测试方法虽然混乱(存在着各种tricks和差异性),但都是用paper的数据进行对比。测试方法不能统一,那就用各自最好结果进行对比吧,这也是公平的。
单尺度原图进行测试比较:这种方法有些不公平,因为训练和测试的图像分辨率是不一样,例如,sfd的训练图像分辨率是640x640,而测试图像分辨率大都是1280x720,有些不公平。
单尺度640x480和320x240进行比较:Ultra-Light-Fast-Generic-Face-Detector的实验比较方法。因为这个网络使用的训练图像是缩放到640x480或320x240的,所以对这个尺度的图像比较鲁棒了,而其他算法却不行;所以,这样比较准确性不够。更好的是采用paper的数据或测试方法。
总结
针对更好的评测人脸检测的问题,本人进行了以下总结,可供参考:
多尺度测试:拿出算法在多尺度下最好结果和别的算法最好结果(一般就是paper上的数据啦)进行pk;
-
单尺度测试:拿出算法在单尺度图像下最好结果和别人单尺度最好的结果进行pk,而不是把别人的算法测低了。
一点思考,写出来与大家交流。
人脸技术交流群
关注人脸检测、识别、对齐相关技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)
(请务必注明:人脸)
喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。
(不会时时在线,如果没能及时通过验证还请见谅)
长按关注我爱计算机视觉