资源 | CPU实时人脸检测,各种朝向都逃不过

选自Github

机器之心编译

参与:思源

鉴于一般的 CNN 难以处理旋转的图像,中国科学院计算技术研究所的研究者采用一种渐进的方法校准人脸朝向,并精确检测其位置与角度。他们最近放出了该项研究的源代码,并表示这种人脸检测模型可以在 CPU 上快速进行实时推断。本文介绍了这种具有旋转不变性的神经网络,并展示了对应的 CPU 实时人脸检测项目。

作为 CV 重要的组成部分,人脸检测旨在利用卷积神经网络从人脸图像中抽取足够的信息。然而虽然 CNN 能高效处理图像数据,但大多数情况下它的设计都是针对一般图像处理任务。卷积网络本身并不会太考虑旋转等情况,即使考虑也只是通过数据增强稍微优化一点。在这个项目及对应的论文中,作者提出并实现了一种完全旋转平面(RIP)不变的人脸检测。如下图所示它能检测出人脸的正确朝向,并从任何 RIP 角度捕获面部检测框。

如上所示很多计算机视觉任务或目标检测需要处理不同的旋转方向,而为了解决这样的问题,Xuepeng Shi 等研究者提出了一种用于旋转不变性人脸检测的 PCN(progressive calibration networks)。这种 PCN 能逐步校准每个候选面部的 PIP 方向为垂直方向,并更好地从非面部图像中区分出面部图像。

  • 论文:Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks
  • 论文地址:https://arxiv.org/pdf/1804.06039.pdf

具体而言,PCN 会抽选识别候选面部图像块,并将朝下的图像块翻转至正向,这样就会减半 RIP 的角度范围,即从 [−180° , 180° ] 到 [−90° , 90° ]。然后旋转过的面部图像块会进一步区分朝向并校准到垂直向的 [−45° , 45° ] 范围,这样又会减半 RIP 的角度范围。最后,PCN 会分辨到底这些候选图像块是不是人脸,并预测出精确的 RIP 角度。

通过将校准过程分割为几个渐进的步骤,且在早期校准步骤只预测粗略的朝向,PCN 最后能实现精确的校准。此外,每一个校准步骤可以简单地旋转-90°、90°和 180°,因此额外的计算量非常低,这也就是为什么该检测项目能在 CPU 上实时运行的重要原因。通过在逐渐降低的 RIP 范围内执行二元分类(是人脸或不是人脸),PCN 能在 360° RIP 旋转角度内准确地检测到人脸,而本项目重点就是实现这样旋转不变的人脸检测器。

原论文图 3:uepeng Shi 等研究者提出的 PCN 概览,它会逐渐降低旋转的角度范围,并最终预测人脸及其旋转的角度。

这种能处理不同旋转方向的人脸检测器有非常高的准确率,因为它会先将候选人脸旋转至正向再预测。此外,这种方法同样有非常小的计算量,该 GitHub 项目表示它甚至可以在 CPU 上实时检测人脸。

PCN 多角度实时人脸检测项目地址:https://github.com/Jack-CV/PCN-FaceDetection

下图展示了 PCN 项目在不同情境下的检测效果,我们会发现即使面部的朝向多种多样,它也能非常准确地检测出来。

PCN 的目标是在准确地检测人脸及朝向的情况下尽可能降低计算力。Xuepeng Shi 等研究者同样在标准 VGA 图像(640x480)上对比了 PCN 与其它旋转不变的人脸检测器。这些检测器分别在带有 3.4GHz CPU 和 GTX Titan X GPU 的台式电脑上进行测试,速度测试结果与召回率都展示在下表,更详细的内容请查看原论文。值得注意的是,将方形结果转换为矩形或椭圆型有助于更好地拟合标注值,因此能实现更高的准确率,不过下表并没有做这样的转换。

项目使用方法

根据 GitHub 项目所示,目前该项目所测试的环境主要在 Linux,且需要 Caffe 和 OpenCV(2.4.10 或其它兼容版本)的支持。因为该项目采用的是 Caffe 框架,所以小编放弃测试了~

以下是一些简要的配置,首先可以设置人脸的最小检测尺寸(size >= 20):

  • detector.SetMinFaceSize(size);

配置图像金字塔的缩放因子(1.4 <= factor <= 1.6):

  • detector.SetImagePyramidScaleFactor(factor);

配置人脸检测的置信度阈值(0 <= thresh1, thresh2, thresh3 <= 1):

  • detector.SetScoreThresh(thresh1, thresh2, thresh3);

是否平滑人脸检测框(smooth = true or false),推荐在视频中使用,它可以获得更加稳定的人脸检测框。

  • detector.SetVideoSmooth(smooth);

读者可查看 picture.cpp 和 video.cpp 查看细节,如果你们想在 FDDB 上复现结果,可以直接运行 fddb.cpp。我们可以在 FDDB 中旋转图像以获得 FDDB-left、FDDB-right 和 FDDB-down,然后分别测试它们。具体而编译并运行:

cd $PCN_ROOT/code# You should set "CAFFEROOT" in lib.sh, compile.sh, and run.sh first. 
sh lib.sh
sh compile.sh picture/video/fddb
sh run.sh picture/video/fddb

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-11-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

深度学习超参数简单理解

说到这些参数就会想到Stochastic Gradient Descent (SGD)!其实这些参数在caffe.proto中 对caffe网络中出现的各项参数...

3679
来自专栏机器学习算法工程师

【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回顾图像检索任务十年探索历程(下篇)

本文是《SIFT Meets CNN: A Decade Survey of Instance Retrieval》的下篇。在上 篇中概述了图像检索任务极其发...

1623
来自专栏SIGAI学习与实践平台

轻量化神经网络综述

深度神经网络模型被广泛应用在图像分类、物体检测等机器视觉任务中,并取得了巨大成功。然而,由于存储空间和功耗的限制,神经网络模型在嵌入式设备上的存储与计算仍然是一...

1062
来自专栏大数据文摘

机器都会学习了,你的神经网络还跑不动?来看看这些建议

在很多机器学习的实验室中,机器已经进行了上万小时的训练。在这个过程中,研究者们往往会走很多弯路,也会修复很多bug,但可以肯定的是,在机器学习的研究过程中,学到...

1100
来自专栏机器人网

谁是世界上最美的人?看神经网络为每人按颜值魅力打分

「魔镜魔镜告诉我,谁是世界上最美的女人?」这句伴随童年的话也有现实版哦~神经网络可以预测人脸颜值,这方面也出现了不少研究。今年年初华南理工大学的研究者发布论文,...

1784
来自专栏自学笔记

Optimization of Machine Learning

机器学习就是需要找到模型的鞍点,也就是最优点。因为模型很多时候并不是完全的凸函数,所以如果没有好的优化方法可能会跑不到极值点,或者是局部极值,甚至是偏离。所以选...

902
来自专栏机器之心

学界 | 三维对抗样本的生成方法MeshAdv,成功欺骗真实场景中的分类器和目标检测器

作者:Dawei Yang,Chaowei Xiao,Bo Li,Jia Deng,Mingyan Liu

1084
来自专栏计算机视觉战队

深度学习超参数简单理解

首先谢谢读者的指正,现在已经把所有遮挡的都处理完毕,谢谢您们的指正,谢谢! ---- 正文: 说到这些参数就会想到Stochastic Gra...

3724
来自专栏月色的自留地

从锅炉工到AI专家(6)

1428
来自专栏大数据文摘

斯坦福CS231N深度学习与计算机视觉第八弹:神经网络训练与注意点

1223

扫码关注云+社区

领取腾讯云代金券