点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

代码地址:https://github.com/ShichenLiu/SoftRas

论文题目:Soft Rasterizer: A Differentiable Renderer for Image-based 3DReasoning(CVPR2019)

概述

渲染通过模拟图像形成的物理过程来缩小二维视觉和三维场景之间的差距,通过反转这种渲染器,人们可以得到一种从二维图像中推断三维信息的学习方法。然而,光栅化阻止了渲染过程变成一个可微操作。

与目前最先进的可微渲染器不同,作者提出了一种真正可微的渲染框架,它可以直接使用可微函数渲染着色网格,并将有效的监督信号从不同的图像表示形式(包括轮廓、阴影和彩色图像)反向传播到网格顶点及其属性。

该框架的关键是一个新的公式,它将渲染视为一个聚合函数,将所有网格三角形关于渲染像素的概率贡献融合在一起并且使得框架能够将梯度流到被遮挡的和远距离的顶点,这是以前的技术所无法实现的。结果表明,利用该渲染器可以在质量和数量上对三维无监督单视图重建进行显著的改进。

简介

从二维图像中理解和重建三维场景和结构是计算机视觉的基本目标之一。基于图像的三维推理关键在于找到从像素到三维属性的足够监督。为了获得图像到三维的相关性,先验方法主要依赖于基于二维关键点/轮廓或形状/外观的匹配损失。但是这些方法要么只适用于特定领域,要么只能提供弱监督。作者发现,通过反转渲染器,就可以获得对通用3D推理任务的密集像素级监督,这是传统方法无法实现的。

但是在传统的图形通道中,渲染过程不是可微的。尤其是标准的网格渲染器中包含一个叫做光栅化的离散采样操作,该操作阻止了梯度流入网格顶点。最近的进展只是用手工制作的函数逼近后向梯度,而在前向过程中直接使用标准图形渲染器,这会导致不受控制的优化行为和对其他三维推理任务的有限泛化能力。

作者提出了一个真正可微的渲染框架,它能够在前向过程中渲染彩色网格,如下图所示:

该框架(上)将渲染描述为一个可微的聚合过程A(·),以“软”概率的方式融合每个三角形贡献Di。这个方法还解决了标准光栅化器的核心问题,即由于离散采样操作,标准光栅化器无法将梯度从像素流到几何体(下)。

与标准光栅化器只选择观察方向上最接近的三角形的颜色不同,作者提出所有三角形对每个渲染像素都有概率贡献,这可以在屏幕空间上建模为概率图。由于其概率公式,这个框架除了能够流动梯度到所有的网格三角形,而且将监督信号从像素传播到远距离三角形。作者把这个框架叫做“Soft Rasterizer (SoftRas)”,因为它“软化”离散光栅化以实现可微性。

SoftRas能够提供高质量的梯度流,用于监督基于图像的3D推理的各种任务,下图是SoftRas的一些表现:

由SoftRas生成的各种渲染效果,通过分别调整γ和σ,可以获得不同程度的透明度和模糊度

基于单图像的三维无监督网格重建

由于SoftRas仅仅基于渲染损失向网格生成器提供强错误信号,因此可以从单个图像中实现网格重建,而无需任何3D监督。

通过流动梯度到被遮挡的三角形来拟合目标图像的三维姿势

对于基于图像的形状拟合任务,证明了该方法能够使用考虑所有三角形概率贡献的聚集机制来处理遮挡;与其他可微渲染器相比,该方法有更平滑的效果,通过使用平滑渲染避免了局部极小值。

相关工作

1.可微渲染:最近存在很多渲染器的派生物,比如Kato提出用手工函数来逼近光栅化的后向梯度,以实现可微渲染,Li引入可微光线跟踪器来实现二次渲染效果的可微性等。但是,这些渲染器通常都是为特殊目的而设计的,因此不能推广到其他应用中。

在这篇文章中,作者主要研究一个通用的可微绘制框架,它能够直接使用可微函数来绘制给定的网格,而不仅仅是逼近后向梯度。

2.基于图像的三维推理:二维图像被广泛地用作三维属性推理的媒介,特别是基于图像的重建技术受到了广泛的关注。传统的方法仅限于多视图提供的覆盖范围,随着大规模三维形状数据集的可用性,基于学习的方法能够考虑单个或少数图像,这得益于先前从数据中学习到的形状。

软光栅器

1.可微渲染通道:下图展示了标准渲染管道(上分支)与本文的渲染框架(下分支)之间的比较,作者定义了环境设置的外部变量(相机P和照明条件L)和描述模型特定属性的内部属性(三角形网格M和顶点外观A,包括颜色、材质等)。

2.概率图计算:利用概率图Dj模拟三角fj对图像平面的影响。为了估计像素Pi处Dj的概率,函数需要同时考虑Pi与Dj之间的相对位置和距离。为此,在像素Pi处定义Dj如下所示:

其中σ是控制概率分布锐度的正标量,而δij是符号指示器,δij={+1,if Pi∈fi;-1,otherwise},d(i,j)是Pi到fj边缘的最近距离。

下图用欧几里德距离表示不同σ的三角形的概率图Dj:

(a)像素到三角形距离的定义;(b)-(d)不同σ生成的概率图

3.聚合函数:对于每个网格三角形fj,通过使用重心坐标插值顶点颜色,在图像平面上的像素Pi处定义其颜色映射Cj。然后,使用聚合函数A(·)合并颜色映射Cj,以获得基于概率图Dj和相对深度Zj的渲染输出I,最后定义聚合函数如下:

其中Cb是背景色,权重wj满足=1,定义为:

其中zij表示fi上3D点的标准化反深度,其2D投影为Pi;ε是一个小常数以启用背景色,而γ控制聚合函数的锐度

作者进一步探讨了轮廓的聚合函数,其中,对象的轮廓与其颜色和深度图无关。因此,提出了一个基于二进制占有率的轮廓专用聚合函数AO:

直观地说,上述公式将轮廓建模为至少有一个三角形覆盖像素pi的概率

4.与以往工作的比较:

在梯度流方面的比较

由于OpenDR和NMR都在前向过程中使用标准图形渲染器,因此它们无法控制中间渲染过程,并且无法将梯度流到最终渲染图像中被遮挡的三角形中。与此相反,该方法完全控制了内部变量,并且能够通过聚合函数将梯度流到不可见三角形中。

由于连续概率公式,屏幕空间中像素Pj的梯度可以流向所有远处的顶点。然而,对于OpenDR,由于局部过滤操作,顶点只能从近距离内的相邻像素接收梯度。对于NMR,没有从白色区域内的像素定义相对于三角形顶点的梯度。

基于图像的三维推理

1.单视图网格重建:从图像像素到形状和颜色生成器的直接梯度使作者能够实现三维无监督网格重建,下图展示了本文的框架:

给定一个输入图像,形状和颜色生成器生成一个三角形网格M及其对应的颜色C,然后将其输入到软光栅化器中。SoftRas层同时渲染轮廓Is和彩色图像Ic,并通过与真实值的比较提供基于渲染的错误信号。

上面的框架定义了三个损失函数,分别是轮廓损失Ls,颜色损失Lc和几何损失Lg(没有提供),如下所示:

最后的损失是三项损失的加权和:

2.基于图像的形状拟合:基于图像的形状拟合在姿态估计、形状对齐、基于模型的重建等方面有着重要的作用,传统的方法必须依赖于粗糙的对应关系,例如2D关节或特征点,以获得用于优化的监控信号。

相反,SoftRas可以直接将像素级的误差反向传播到3D属性,从而实现密集的图像到3D的对应,进而实现高质量的形状拟合。然而,可微渲染器必须解决两个难题,遮挡和远距离影响,以便易于应用。

作者的方法同时处理了这些问题。这篇文章定义的聚合函数融合了所有三角形的概率图,使得梯度流到所有顶点,包括被遮挡的顶点,基于概率分布的软近似允许梯度传播到远端,同时可以很好地控制接收场的大小。

为此,作者提出的这个方法可以通过最小化下面的目标函数来准确地解决基于图像的形状拟合问题:

其中R(·)是从网格M生成渲染图像I的渲染函数,该渲染函数由其姿态θ、平移t和非刚性变形参数ρ参数化

结果展示

从单个图像重建三维网格,从左到右分别是输入图像、真实值、SoftRas、Neural Mesh Renderer和Pixel2mesh

彩色网格重建结果

13类ShapeNet数据的平均IoU与其他三维无监督重建方法的比较

训练过程中,中间网格变形的可视化

真实图像的单视图重建结果

本文仅做学术分享,如有侵权,请联系删文。

推荐阅读:

吐血整理|3D视觉系统化学习路线

那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)

超全的3D视觉数据集汇总

大盘点|6D姿态估计算法汇总(上)

大盘点|6D姿态估计算法汇总(下)

机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

汇总|3D点云目标检测算法

汇总|3D人脸重建算法

那些年,我们一起刷过的计算机视觉比赛

总结|深度学习实现缺陷检测

深度学习在3-D环境重建中的应用

汇总|医学图像分析领域论文

大盘点|OCR算法汇总

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会(ICRA/IROS/ROBIO/CVPR/ICCV/ECCV等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

基于图像的单目三维网格重建相关推荐

  1. opencv 图像上画出目标运动的轨迹_基于opencv的单目和双目标定平台手眼标定

      背景介绍 基于机器视觉引导的智能机器人,在现代社会各个领域已经得到了广泛的应用,尤其是大型工厂的自动化生产线上,视觉机器人可以和基于示教器按照预定轨迹进行作业的机器人互为补充,来共同提高生产的自动 ...

  2. 基于TransformerFusion的单目场景重构

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨贝塔 来源丨韦心雕AI 今天小伙伴贝塔来给大家分享一下关于Transformer的单目场景重构的 ...

  3. ICCV 2019 | 基于无标签单目视频序列的单帧三维人体姿态估计算法

    作者丨王璇 学校丨西安交通大学 研究方向丨人体姿态估计 我们都知道,要训练一个准确的三维人体姿态估计深度神经网络,需要大量有三维标签的数据,越多越好.而在现实生活中,我们很难得到很多有标签数据,而无标 ...

  4. 基于OpenSfM的单目三维重建实现详细步骤

    基于OpenSfM的单目三维重建实现详细步骤 任务描述: 三维重建作为物理环境感知的关键技术之一,其可用于智慧城市.虚拟旅游.数字遗产保护等诸多场景.随着自动驾驶的兴起,部分研究人员利用三维重建技术快 ...

  5. 基于OpenCV的单目相机标定与三维定位

    相机是产生图像数据的硬件,广泛应用于消费电子.汽车.安防等领域.围绕着相机衍生出一系列的研究与应用领域,包括传统的图像处理和基于深度学习的智能应用等.目前大火的自动驾驶中相机也是重要的硬件组成,如环视 ...

  6. 基于FPGA的单目内窥镜定位系统设计(上)

    今天给大侠带来基于FPGA的单目内窥镜定位系统设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,话不多说,上货. 导读 随着现科技的发展和社会的进步,信息科技迅速发展,我们可从互联网.电台等媒体获取大 ...

  7. 基于FPGA的单目内窥镜定位系统设计(中)

    今天给大侠带来基于FPGA的单目内窥镜定位系统设计,由于篇幅较长,分三篇.今天带来第二篇,中篇,话不多说,上货. 导读 随着现科技的发展和社会的进步,信息科技迅速发展,我们可从互联网.电台等媒体获取大 ...

  8. 大盘点!自动驾驶中基于Transformer的单目BEV感知

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 今天自动驾驶之心很荣幸邀请到Garfield,为大家分享自动驾驶中基于Transformer的单目BEV感知! ...

  9. 基于FPGA的单目内窥镜定位系统设计(下)

    今天给大侠带来基于FPGA的单目内窥镜定位系统设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,话不多说,上货. 导读 随着现科技的发展和社会的进步,信息科技迅速发展,我们可从互联网.电台等媒体获取大 ...

最新文章

  1. 互联网从业者平均年薪19万,程序员最高!
  2. [python]python 动态调用模块类方法
  3. 干货满满,图文详解 HDFS 的 工作机制 及其原理
  4. Ext.grid.EditorGridPanel点击单元格改变数据,动态添加列
  5. 基于python的opc读写和导入MSSQL/MYSQL的KepOPC中间件
  6. 很好用的查看PE文件的小工具---LordPE Deluxe 1.4 汉化版
  7. UVA1629 切蛋糕 Cake slicing 题解
  8. 没有自制力的人有什么资格谈努力
  9. 【软件开发规范一】《Java开发规范》
  10. svchost.exe“病毒”
  11. java 检测点击事件控件_iCheck控件ifClicked和ifChanged事件的讨论
  12. Outlook2007 打不开EXCEL?
  13. WordPress关注微信公众号回复可见和阅读更多的方法
  14. echarts 动态数据动画效果
  15. 前端程序员如何快速转型全栈工程师(基础版)
  16. tensorflow查看pb文件
  17. 严重性代码说明项目文件行禁止显示状态错误LNK2019无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (? invoke_main@@YAHX
  18. 【手绘漫画】图解LeetCode之寻找重复数(LeetCode287题),抽屉原理
  19. alpha冲刺(6/10)
  20. ​聚焦2021年‘人工智能’产业三大发展趋势有哪些?

热门文章

  1. 树——二叉搜索树的实现
  2. 大数据虚拟化:VMware正在虚拟化Hadoop
  3. Nginx的常用命令
  4. 搞懂Kafka的这个问题,你离大厂就不远了!
  5. 架构与思维:设计容量,到底有多重要 ?
  6. 20张图带你到HBase的世界遨游
  7. 阿里巴巴电商平台架构演变之路
  8. 用Spring Cloud和异步微服务进行无服务器计算
  9. “嫁”给程序媛,走上人生巅峰
  10. 国内外好用的协同办公软件有哪些?