https://baijiahao.baidu.com/s?id=1591987712899539583

选自arXiv

作者:Rza Alp Güler, Natalia Neverova, Iasonas Kokkinos

机器之心编译

参与:Panda

实现从 2D 图像到 3D 表面的对应在很多方面都有极具价值的应用前景。近日,FAIR 发布了一篇研究论文,介绍了他们通过人工方式标注的图像到表面密集对应数据集 DensePose-COCO 以及基于此训练的 DensePose-RCNN 架构,得到了一个能实时地得到高准确度结果的系统。该研究发布后得到了广泛的关注,机器之心在此对该论文进行了摘要介绍,更多详情请参阅原论文和项目网站。

论文地址:https://arxiv.org/abs/1802.00434项目网站:http://densepose.org

 
03:49

本研究的目标是通过建立从人体的 2D 图像到基于表面的 3D 表征的密集对应(dense correspondence)来进一步推进人类对图像的理解。我们可以认为这个任务涉及到一些其它问题,比如物体检测、姿态估计、作为特例或前提的部位和实例分割。在图形处理、增强现实或人机交互等不只需要平面关键特征位置标记的问题中,这一任务的解决将能实现很多应用,并且还能助力实现通用型的基于 3D 的物体理解。

建立从图像到基于表面的模型的密集对应的任务已经在可使用深度传感器的设置中基本得到了解决,比如在 [41] 的 Vitruvian 流形中、指标回归森林 [33] 或最近 [44] 提出的密集点云对应。相对而言,我们的情况则是考虑使用单张 RGB 图像作为输入,然后我们基于此来构建表面点和图像像素之间的对应。

最近也有一些其它研究想要以无监督的方式恢复 RGB 图像配对 [3] 或集合 [48,10] 之间的密集对应。最近,[42] 使用了同变性原理(equivariance principle)来将图像集对齐到一个共同坐标系,同时也遵循了分组图像对齐的一般思想,比如 [23,21]。

尽管这些研究都针对的是一般类别,但我们的研究关注的可以说是最重要的视觉类别——人类。对于人类而言,可以通过使用参数可变形表面模型(parametric deformable surface model)来简化这一任务,比如 [2] 的 Skinned Multi-Person Linear(SMPL)模型或最近的 [14] 中通过精心控制 3D 表面获取而得到的 Adam 模型。对于图像到表面映射的任务,[2] 中的作者提出了一种两阶段方法:首先通过一个 CNN 检测人类关键特征位置,然后通过迭代式最小化为该图像拟合一个参数可变形表面模型。与我们的研究同时进行的 [20] 对 [2] 的方法进行了发展,使之能以端到端的方式工作,其在用于恢复 3D 相机姿态和低维身体参数化的深度网络中整合了一个模块——迭代式重投射误差最小化(iterative reprojection error minimization)。

我们的方法与这些研究都不一样,我们采用了一种全面的监督学习方法并收集了人体的图像与详细准确的参数表面模型 [27] 之间的真实对应数据:我们没有在测试时间使用 SMPL 模型,而是将其用作在训练阶段定义我们的问题的一种方法。我们的方法可以被理解成是 [26, 1, 19, 7, 40, 18, 28] 中用于人类的标准的下一步延伸工作。Fashionista [46]、PASCAL-Parts [6] 和 Look-Into-People (LIP) [12] 数据集中已经提供了人体部位分割掩码;这些可以被看作是提供了图像到表面对应的粗糙版本,其中没有连续的坐标,而是可以预测离散的部位标签。在表面层面的监督直到最近才被 [43] 引入合成图像,同时 [22] 中一个包含 8515 张图像的数据集标注上了 3D 模型到图像的关键点和半自动拟合。本研究没有损伤我们的训练集的范围和真实性,而是引入了一种全新的标注流程,让我们可以为 COCO 数据集的 5 万张图像收集真实的对应,进而得到了我们新的 DensePose-COCO 数据集。

我们的工作在思想上最接近于近期的 DenseReg 框架 [13],其中训练的 CNN 能成功构建自然场景中的 3D 模型和图像之间的密集对应关系。那项工作主要关注的是人脸,并且只在姿态变化适中的数据集上评估了他们的结果。但是,由于人体具有更高的复杂度和灵活性,同时姿态也存在更大的变化,所以我们这里还面临着新的难题。我们采用了合适的架构设计来解决这些难题,详见第 3 节;该架构相比于 DenseReg 类型的全卷积架构有显著的提升。通过将我们的方法与近期的 Mask-RCNN 系统 [15] 相结合,我们表明通过鉴别式方法训练的模型能实时地为涉及数十人的复杂场景恢复高准确度的对应场:我们的系统在一个 GTX 1080 GPU 上能以每秒 20-26 帧的速度处理 240×320 图像或以每秒 4-5 帧的速度处理 800×1100 图像。

我们的贡献可以总结为三点。首先,如第 2 节所述,我们通过收集 SMPL 模型 [27] 和 COCO 数据集中的人物外观之间的密集对应而为该任务引入了第一个人工收集的真实数据集。这是通过在标注过程中使用一种利用了 3D 表面信息的全新标注流程实现的。

第二,如第 3 节所述,通过在任何图像像素对人体表面坐标进行回归,我们使用所得到的数据集训练了可以得到自然环境中密集对应的基于 CNN 的系统。我们实验了依赖于 Deeplab [4] 的全卷积架构和依赖于 Mask-RCNN [15] 的基于区域的系统,并观察到了基于区域的模型相比于全卷积网络的优越性。我们还考虑了我们的方法的级联变体,并在已有的架构上实现了进一步提升。

我们探索了利用我们构建的真实信息的不同方法。我们的监督信号是在每个训练样本中随机选择的图像像素子集上定义的。我们使用了这些稀疏对应来训练一个「教师(teacher)」网络,其可以「修补(inpaint)」图像其余区域的监督信号。不管是与稀疏点相比还是与其它任何已有的数据集相比,使用这种修复后的信号能够得到明显更好的表现,第 4 节通过实验证明了这一点。

我们的实验表明密集的人体姿态估计在很大程度上是可以实现的,但仍还有改善的空间。我们使用一些定性结果和表明该方法发展潜力的方向而对我们的论文进行了总结。我们将通过我们的项目网站公开提供代码和数据:http://densepose.org。

COCO-DensePose 数据集

图 1:密集姿态估计的目标是将 RGB 图像上的所有人类像素映射成 3D 的人体表面。我们引入了一个大规模真实数据集 DensePose-COCO,其中包含人工标注的 5 万张 COCO 图像的图像到表面对应数据;我们还训练了 DensePose-RCNN,能以每秒多帧的速度在每个人体区域内密集回归特定部位的 UV 坐标。左图:图像及通过 DensePose-RCNN 所得到的回归后的对应。中图:DensePose-COCO 数据集标注。右图:身体表面的分割和 UV 参数化。

图 2:通过让标注者将图像分割成形义区域然后再在任何渲染的部位图像上为每个被采样的点定位其对应的表面点,我们标注了图像和 3D 表面模型的密集对应关系。红色叉号表示当前被标注的点。渲染后视图的表面坐标在 3D 模型上定位收集到的 2D 点。

图 3:用于收集每个部位的对应标注的用户界面:我们向标注者提供了人体部位的 6 个预渲染的视角,这样整个部位表面都是可见的。一旦标注了目标点,该点就会同时显示在所有渲染过的图像上。

图 4:标注的可视化:图像(左)、收集到的点的 U 值(中)和 V 值(右)

学习密集人体姿态估计

图 7:DensePose-RCNN 架构:我们使用了区域提议生成和特征池化的级联,之后跟着一个全卷积网络,用于密集地预测离散部位标签和连续表面坐标。

图 8:交叉级联架构:图 7 中 RoIAlign 模块的输出送入 DensePose 网络以及用于其它任务(掩码、关键点)的辅助网络。一旦从所有任务获得了第一阶段的预测,它们就将被组合起来送入每个分支的第二阶段细化。

图 9:我们首先使用我们的稀疏的、人工收集的监督信号训练一个「教师网络」,然后使用该网络来「修补」用于训练我们的基于区域的系统的密集监督信号。

实验

图 10:SMPLify [2] 的基于模型的单人姿态估计和我们的基于 FCN 的结果的定性比较,包含了具有遮挡(「All images」)和不含遮挡(「Full-body images」)的情况。

图 11:使用不同类型的监督信号进行训练的单人表现:DensePose 得到了比其它数据集显著更准确的结果。DensePose在训练和测试时都使用了 figure-ground oracle

图 12:多人密集对应标注的结果。这里我们在包含多人的真实 COCO 数据集图像上比较了我们提出的 DensePose-RCNN 系统与全卷积方法的表现,其中这些图像在尺寸、姿态和背景上具有较高的多样性。

图 14:用于纹理迁移的定性结果:在上面一行中所提供的纹理根据估计的对应映射成了图像像素。完整视频请访问:http://densepose.org。

论文:DensePose:自然环境中的密集人体姿态估计(DensePose: Dense Human Pose Estimation In The Wild)

摘要:在本研究中,我们构建了人体的 RGB 图像与基于表面的表征之间的密集对应,我们将这个任务称为密集人体姿态估计。首先,我们通过引入一种有效的标注流程而收集了 COCO 数据集中 5 万张人类外观的密集对应。然后我们使用我们的数据集训练了能够在自然环境中(in the wild)得到密集对应的基于 CNN 系统,也就是说环境中存在背景、遮挡和尺度变化等情况。通过训练一个可以填补缺失真实值的「修补」网络,我们提升了我们的训练集的有效性;并且相比于过去所能实现的最好结果有明显的提升。我们使用全卷积网络和基于区域的模型进行了实验,并观察到了后者的优越性;我们通过级联进一步提升了准确度,得到了一个能实时地得到高准确度结果的系统。我们的项目网站还提供了补充材料和视频:http: //densepose.org。

Facebook提出DensePose数据集和网络架构:可实现实时的人体姿态估计的更多相关文章

  1. 数据中心网络架构的问题与演进 — SDN

    目录 文章目录 目录 前文列表 OpenFlow 源起 从 OpenFlow 衍生 SDN 前文列表 <数据中心网络架构的问题与演进 - 传统路由交换技术与三层网络架构> <数据中心 ...

  2. 数据中心网络架构的问题与演进 — NFV

    目录 文章目录 目录 前文列表 前言 NFV NFV 的最终目标 NFV 的抽象框架 基础架构层与虚拟基础设施管理层 资源管理与业务流程编排层 OSS 层 SDN 控制层 NFV 的生态合作 NFV ...

  3. 数据中心网络架构的问题与演进 — 云网融合与 SD-WAN

    目录 文章目录 目录 前文列表 云网融合 云网融合的应用场景 SD-WAN SD-WAN 的应用场景 企业组网互联 SD-EN 数据中心互联 SD-DCI 云间互联 SD-CX 企业用户接入云 数据中 ...

  4. 数据中心网络架构的问题与演进 — 混合云与 VPC 专有网络

    目录 文章目录 目录 前文列表 历史背景 混合云 Why hybrid cloud? 混合云市场 混合云的逻辑架构 混合云应用场景 灾难恢复 数据备份 负载扩容 应用部署 开发测试生产部署 混合云产品 ...

  5. 数据中心网络架构的问题与演进 — Overlay 网络

    目录 文章目录 目录 前文列表 数据中心网络架构演进回顾 Overlay 网络 Overlay 网络的优势 基于 VxLAN Overlay 的 Spine-Leaf 网络架构 参考文章 前文列表 & ...

  6. 数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构

    目录 文章目录 目录 前文列表 CLOS Networking Switch Fabric 胖树(Fat-Tree)型网络架构 Fat-Tree 拓扑示例 Fat-Tree 的缺陷 叶脊(Spine- ...

  7. openpose-opencv 的body数据多人体姿态估计

    介绍 opencv除了支持常用的物体检测模型和分类模型之外,还支持openpose模型,同样是线下训练和线上调用.这里不做特别多的介绍,先把源代码和数据放出来- 实验模型获取地址:https://gi ...

  8. openpose-opencv 的coco数据多人体姿态估计

    介绍 opencv除了支持常用的物体检测模型和分类模型之外,还支持openpose模型,同样是线下训练和线上调用.这里不做特别多的介绍,先把源代码和数据放出来- 实验模型获取地址:https://gi ...

  9. [转]漫谈数据中心CLOS网络架构

    http://djt.qq.com/article/view/238 1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚 ...

随机推荐

  1. 算法笔记_184:历届试题 约数倍数选卡片(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 闲暇时,福尔摩斯和华生玩一个游戏: 在N张卡片上写有N个整数.两人轮流拿走一张卡片.要求下一个人拿的数字一定是前一个人拿的数字的约数或倍数 ...

  2. PHP $_GET

    $_GET 变量用于收集来自 method="get" 的表单中的值. $_GET 变量 $_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值. $_GE ...

  3. 从最简单的实例学习ARM 指令集(三)

    上一篇讲到赋值运算,这篇讲讲子函数调用.先看最简单范例:test4.c #include <stdio.h> void f1() { } void main() { int d = 4; ...

  4. Oracle 12c CDB PDB

    先说基本用法: 先按11G之前进行 conn / as sysdba; create user test identifed by test; ORA-65096: 公用用户名或角色名无效. 查官方文 ...

  5. SQL Server死锁排查经历 -基于SqlProfiler

     提到sql server,想必最让人头疼的当属锁机制了.在默认的read committed隔离模式下,连最基本的select操作都要申请各种粒度的锁,而且在读取数据过程中会不断有锁升级.转化.在非 ...

  6. shell随机读取一行

    使用shell随机读取文件的一行数据 shuf -n1 file_name

  7. 禁用root登录以及使用sudo分配权限

    前言 最近一段时间服务器有受到一些挖比特币的人的攻击,这里就简要说明一下提升服务器安全度的做法 禁用root登录 root权限可以说是linux服务器的最高权限,如果我们平常都是直接使用root用户来 ...

  8. NYOJ-------三角形

    Problem A 三角形 时间限制:1000 ms  |  内存限制:65535 KB   描述 在数学中,如果知道了三个点的坐标,我们就可以判断这三个点能否组成一个三角形:如果可以组成三角形,那么 ...

  9. laravel-v5.1分页并带参数

    控制器的代码中

  10. RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange

    1.topic类型的Exchange 我们之前说过Topic类型的Exchange是direct类型的模糊查询模式,可以通过routkey来实现模糊消费message,topic的模糊匹配有两种模式: ...