本文转载自机器之心。

来自 Facebook AI 和美国圣母大学的研究者提出了一种 6 自由度的实时 3D 人脸姿态估计技术,可以不依赖人脸检测和人脸关键点定位独立运行。

人脸检测是给照片中的每个人脸指定一个边界框,人脸关键点检测则需要定位特殊的人脸特征,如眼睛中心、鼻尖等。基于二者的两步走方法是很多人脸推理任务的关键所在,如 3D 重建。

这种方法的处理过程通常可以表述为:首先执行人脸检测,然后在每个检测到的人脸边界框中执行关键点检测。接下来,将检测到的关键点与参考 2D 图像或 3D 模型上对应的理想位置进行匹配,然后使用标准方法求解对齐变换。因此,「人脸对齐」和「关键点检测」这两个术语有时可以互换使用。

这种方法应用起来非常成功,但计算成本很高,尤其是那些 SOTA 模型。而且,关键点检测器通常针对由特定人脸检测器生成的边界框特性进行优化,因此一旦人脸检测器更新,关键点检测器就需要重新进行优化。最后,在下图 1 所示的密集人脸图像场景中,准确定位标准的 68 个人脸关键点会变得非常困难,进而加大了估计其姿态和人脸对齐的难度。

为了解决这些问题,来自 Facebook AI 和圣母大学的研究者提出了以下重要观察结果:

  • 首先,估计人脸的 6 自由度(6DoF)刚性变换比人脸关键点检测要简单。6DoF 指的是在人体在 3D 空间里的活动情况,在 3 自由度(上下俯仰、左右摇摆和滚动)的基础上增加了前 / 后、上 / 下、左 / 右三种移动方式。这一观察结果启发了很多研究者,促使他们提出「跳过关键点检测,直接进行姿态估计」的想法,但这些方法还是要为检测到的人脸估计姿态。相比之下,Facebook AI 和圣母大学的研究者的目标是在不假设人脸已经被检测到的情况下估计姿态。

  • 其次,6DoF 姿态标签捕获的不仅仅是边界框位置信息。与一些研究者提出的 3DoF 姿态估计不同,6DoF 姿态可以转换为一个 3D-to-2D 的投影矩阵。假设有一个已知的内在相机,姿态可以使 3D 人脸与它在照片中的位置一致。因此,姿态已经捕捉了照片中人脸的位置。然而,虽然增加了两个额外的标量(6D 姿态 vs. 每个框的四个值),6DoF 姿态还可以提供人脸的 3D 位置和方向信息。最近,有些研究用上了这一观察结果,通过提出边界框和人脸关键点的多任务学习来提高检测准确率。而本文的研究者则将两者结合在单个目标中——直接 regress 6DoF 人脸姿态。

他们提出了一个易于训练的新型实时 6DoF 3D 人脸姿态估计解决方案,可以跳过人脸检测步骤,即使在非常拥挤的图片中也不例外(如图 1)。该方法在一个基于 Faster R-CNN 的框架中 regress 6DoF 姿态。

这项研究的创新之处在于,它真正摆脱了人脸对齐和关键点检测。「我们观察到,估计人脸的 6DoF 刚性变换比人脸目标点检测要简单。此外,6DoF 提供的信息要比人脸边界框标签丰富,」研究者解释道。

新方法的 pipeline 可以描述为:给定一张包含多张人脸的图像,首先估计每张人脸的 6DoF 姿态。由于 6DoF 人脸姿态可以转换为一个外在相机矩阵,进而将 3D 人脸映射到 2D 图像平面,因此预测得到的 3D 人脸姿态也可用于获取准确的 2D 人脸边界框。因此,人脸检测将成为这个过程的副产品,计算开销达到最小。

利用 6DoF 姿态估计替代人脸边界框检测之后,输入图像中所有的 3D 人脸形状都可以得到对齐。而且,由于该姿态将具有已知几何形状的 3D 形状与图像中的面部区域对齐,因此我们可以根据大小和形状调整生成的面部边界框,匹配特定的研究需求。

研究者使用小而快的 ResNet-18 骨干网络构建 img2pose 模型,并在 WIDER FACE 训练集上进行训练(该数据集包含弱监督标签和人工标注的真值姿态标签)。他们在两个领先的基准数据集( AFLW2000-3D 和 BIWI )上测试了 img2pose 的实时推断能力,发现该模型在实时运行时性能超越当前最优的人脸姿态估计器,还在关键点检测方面超越了具备类似复杂度的模型,尽管新模型并没有在边界框标签上进行优化。

以下是论文中的一些实验结果:

论文链接:https://arxiv.org/pdf/2012.07791.pdf

项目链接:https://github.com/vitoralbiero/img2pos

END

备注:人脸

人脸技术交流群

人脸检测、识别、对齐、重建、表情识别、表情迁移等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

跳过人脸检测和关键点定位,Facebook等提出实时3D人脸姿态估计新方法相关推荐

  1. 《数字图像处理》dlib人脸检测获取关键点,delaunay三角划分,实现人脸的几何变换warpping,接着实现两幅人脸图像之间的渐变合成morphing

    这学期在上<数字图像处理>这门课程,老师布置了几个大作业,自己和同学一起讨论完成后,感觉还挺有意思的,就想着把这个作业整理一下 : 目录 1.实验任务和要求 2.实验原理 3.实验代码 3 ...

  2. Pytorch搭建Retinaface人脸检测与关键点定位平台

    学习前言 一起来看看Retinaface的Pytorch实现吧. 在这里插入图片描述 什么是Retinaface人脸检测算法 Retinaface是来自insightFace的又一力作,基于one-s ...

  3. ICLR 2022 | Facebook AI提出解决表示学习坍塌问题新方法

    Facebook AI团队在ICLR 2022发表了一篇文章,针对表示学习中的坍塌问题,提出了VICREG方法,通过variance.invariance.covariance三种loss的结合约束自 ...

  4. AI换脸-简单换脸、人脸对齐、关键点定位与画图

    ```bash简单换脸.人脸对齐.关键点定位与画图有人将其进行中文翻译也有将其进行一定改编有以下两个案例:1.<川普撞脸希拉里(基于 OpenCV 的面部特征交换)-2>变脸变脸贴图:从这 ...

  5. Tengine-Kit人脸检测及关键点

    Tengine-Kit 人脸检测及关键点 Tengine-Kit是一个在Android上的一个算法集合.目前的算法有,人脸检测及关键点,虹膜关键点,身体检测及关键点,手的检测及关键点. Tengine ...

  6. 工程详细记录:超准确人脸检测(带关键点)YOLO5Face C++

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨DefTruth 编辑丨极市平台 导读 本文主要记录一下YOLO5Face C++工程相关的问 ...

  7. AI人工智能分析-人脸识别和分析(人脸检测跟踪、获取特征长度、提取用于人脸特征、比较相似度)

             AI人工智能分析-人脸识别和分析(人脸检测跟踪.获取特征长度.提取用于人脸特征.比较相似度) 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开 ...

  8. 视频中的3D人体姿态估计(3D human pose estimation in vide)--------Facebook research: VideoPose3D

    视频中的3D人体姿态估计(3D human pose estimation in video) 解读Facebook AI Research in CVPR2019: <3D human pos ...

  9. 深度学习自学(二十一):连续保存人脸检测、关键点检测后人脸状态-循环队列实现

    整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取等过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_C ...

最新文章

  1. iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
  2. mac OS下显示.htaccess等隐藏文件
  3. 普通人学python有用吗-普通人学Python有什么用?
  4. 易语言金盾4.0登陆特征码
  5. mfc ado 链接mysql 数据_MFC用ado方法和数据库连接后,怎么取得数据?(高加分)...
  6. [业界资讯]竟不知道,计世网改版了
  7. 二叉树的锯齿形层次遍历—leetcode103
  8. PS 色调——老照片效果
  9. 5 年之后,产品经理,没了?
  10. hbase 预写日志_HBase存储结构
  11. Redis的安装过程步骤
  12. 【工具使用系列】关于 MATLAB 非线性控制,你需要知道的事
  13. HTML5学习笔记简明版(6):新增属性(1)
  14. Linux-C 文件操作
  15. 台式计算机检测不到无线网卡,台式机检测不到无线网卡怎么办
  16. Ralph and Mushrooms (tarjan+dp)
  17. 自学七天,我是如何通过软考系统架构师
  18. RK3066移动鼠标,有时会卡顿一会儿
  19. mac系统上运行c语言文件
  20. 拼多多怎么设置快捷回复

热门文章

  1. Excel VBA利用事件对图表自动更新
  2. 机器学习爬大树之决策树(ID3,C4.5)
  3. VC2008以资源形式实现多语言版本
  4. 如何制作一个塔防游戏 Cocos2d x 2 0 4
  5. CNN卷积神经网络(超详解析)
  6. php socket 多次发送,php模拟socket 多次发送数据的实现方法
  7. python中event_Python Event实现线程通信
  8. 初学python需要安装哪些-致Python初学者 Anaconda入门使用指南完整版
  9. mysql 设置时区_MySQL实战干货 | 如何处理由时区设置引发的 SQL 执行“卡顿”?...
  10. java md5加密解密_java MD5加密解密 | 学步园