基于DDPG 的三维重建模糊概率点推理
2022-05-28吴素萍
李 雷 徐 浩 吴素萍
单视图三维重建是图像理解和计算机视觉的一个基本问题,并在机器人、自动驾驶、虚拟现实和增强现实中有着广泛的应用[1-2].近年来,基于深度学习的单视图三维重建得到了广泛的应用.相比于传统的三维重建方法,学习模型能够更好地对输入信息进行编码以防止输入信息的歧义.现有基于深度学习的三维重建分为多视图和单视图重建[3-6],前者先利用深度网络提取到的特征信息进行立体匹配并预测深度图,再利用深度图融合技术构建三维模型.后者则通过使用神经网络强大的特征捕获能力从输入图像中捕获特征信息,之后结合从海量训练数据中学习到的形状先验知识信息进行三维重建.具体来说,基于深度学习的单视图三维重建根据三维形状输出表示形式可以分为以下三种:
1) 基于体素的表示形式,如图1(a)所示,现有工作[7]使用编码网络捕获输入的物体图片的形状属性信息 (物体拓扑结构以及几何、轮廓、纹理等信息) 并将这些低层级信息编码为不同尺度下的高层级表示形式,之后使用解码网络将三维几何外形表示为三维体素块上的二值概率分布S={(P1,···,Pn×n×n)},最后通过计算网络预测的二值概率分布和真实二值概率分布之间的交叉熵来约束网络学习,即利用网络学习二维图像到三维体素块上二值概率分布的映射关系来表达三维几何外形.
图1 基于深度学习的单视图三维重建中三种表示形状Fig.1 Three representation shapes for single-view 3D reconstruction based on deep learning
2) 基于点云的表示形式,如图1(b)所示,现有工作[8]使用编码网络捕获输入的物体图片的形状属性信息,之后使用解码网络将三维几何外形表示为无序点云最后通过计算预测的点云三维坐标和真实点云三维坐标之间的倒角距离等指标来约束网络学习,即利用网络学习二维图像到无序三维点集S的映射关系来表示物体三维形状.
3) 基于网格的表示形式,如图1(c)所示,现有工作[9]首先使用卷积神经网络提取输入的物体图片的特征信息,之后使用图卷积网络[10]结合提取特征和初始化的网格模板对初始化模板进行网格变形生成目标三维模型,最后通过计算预测网格的信息(点坐标、边长等) 和真实网格信息之间的误差来约束网络学习,即利用网络学习二维图像到三维网格的映射关系来表示物体三维形状.
在网络学习过程中,现有方法都使用反向传播[11]算法通过监督信息来约束编解码网络进行学习,即通过反向传播使神经网络拟合一个复杂的映射函数.本质上,基于深度学习的单视图三维重建方法使用合适的神经网络N来实现从输入图像I到输出Y的连续映射函数逼近,即对任意ε >0,x ∈I;|N(x)-Y|<ε.
大部分基于深度学习的单视图三维重建工作都使用基于卷积神经网络的编解码器架构[12],即三维重建任务通常采用2D 卷积神经网络对二维输入图像进行编码,再根据任务需要的表示形式,使用不同的解码器生成不同的表示形式.例如,如果使用体素[13]作为最终表示,则使用3D 反卷积神经网络作为解码器.
根据重建后的三维形状输出表示形式,一些工作[14-16]基于网格进行三维形状重建.因为这些方法只能通过使用同类形状模板进行变形,所以上述方法只能重建出具有简单拓扑的物体,并且容易出现网格自交叉.总的来说,由于没有明确和可靠的方法生成有效的网格,所以基于网格的三维重建工作面临着巨大的挑战.一些工作基于体素[4-5,7]和点云[8]来进行三维形状重建,但由于占用内存过高只能处理小批量数据和采用低分辨率来表示.为了解决上述问题,Mescheder 等[17]提出了由连续函数定义一个3D 空间,并通过神经网络拟合的函数来描述这样的隐式形状,并使用2D 图像X和位置P∈R3来推断对应位置P的占用情况.即使用神经网络拟合映射函数 R3×X →[0,1].该方法有效地减少了训练时占用的内存和训练时间,但由于物体三维形状是由分类器或回归模型的权值来表示,所以这些方法忽略了一些低级的形状信息.总的来说,现有的单视图三维重建方法存在以下挑战性问题:1) 难以准确地重建具有复杂拓扑结构的物体三维形状.2)难以准确地重建局部细节特征从而生成高保真输出.3) 先前的工作都是在合成数据上进行训练,但在真实数据上进行测试时,就会出现领域自适应问题.因此,一些复杂拓扑结构的连接处和局部细节的位置点占用概率往往难以准确的预测,本文称这些难以准确预测的点为模糊概率点.
为了解决上述的挑战性问题,本文通过深度强化学习算法DDPG[18]来训练智能,并不断地调整这些模糊概率点的占用概率并使其跳出概率模糊区间P ∈[0.4,0.6].具体来说,受到 Li 等[19]的启发,本文首先通过动态分支代偿网络生成了更多样化的特征表示并得到预测结果,之后通过预测结果找到模糊概率点后聚合模糊概率点周边的局部信息和全局图像信息,再通过DDPG 训练的智能体调整这些模糊概率点,使其达到到最佳的占用概率.本文给出了本文方法在真实图像上进行三维重建的结果,如图2所示.本文的主要贡献如下:
图2 本文方法和DISN 方法在真实图像上的单视图重建结果Fig.2 Single image reconstruction using a DISN,and our method on real images
1) 本文使用动态分支代偿网络来使得模型从输入图像中捕捉到更多样化的特征信息以提高模型的泛化能力.
2) 本文考虑到了局部信息对位置点占用概率预测的影响并使用了注意力机制引导的信息聚合机制聚合了局部信息和全局图像信息.
3) 本文使用深度强化学习算法DDPG 训练的智能体对模糊概率点的占用概率进行了再推理.
4) 大量定量、定性和消融实验证明了本文的方法在公开的大规模三维物体数据集ShapeNet[20]上的评估相比最先进的方法都有相应的提升.
1 相关工作综述
早期的单视图三维物体重建是通过shape-fromshading[21-22]重建物体三维形状.在早期方法下,纹理和散焦信息提供了更多有意义的重建信息.具体来说,这些工作从输入图像中捕获多条线索信息(例如:纹理、散焦等)和物体的几何结构信息来推理物体可见表面的深度信息.
近年来,随着生成对抗网络[23],可变分自编码器[24]在图像生成方面取得显著成果,Wu 等[4]将生成对抗网络从图像领域扩展到体素,并训练了3D 生成对抗网络从潜在向量生成三维体素.Kar 等[25]将相机参数和输入图像编码为3D 体素代表,之后应用3D 反卷积从多个视图重建3D 场景.先前的工作都是在合成数据上进行训练,但在真实数据上进行测试时,存在领域自适应问题.为了解决上述问题,Wu 等[7]使用全监督的方式通过学习输入图像到2.5D 草图的映射,再通过训练一个三维形状估计器得到最终的三维形状.但由于过高的内存占用,重建的三维形状通常被限制在 323分辨率的体素块内.为了解决内存限制的问题,Tatarchenko 等[26]对输出空间进行了分层分区,以提高计算和存储效率,这有助于预测更高分辨率的三维形状.Wang 等[9]使用图卷积网络[10]使椭球面模板逐渐形变成为目标对象,但结果往往是受限于球形拓扑.Wang 等[27]通过变形初始化的源网格来重建三维形状.Fan 等[8]引入了点云作为表示形式来表示物体3D 形状.然而,基于点云的表示形式需要许多复杂的后处理步骤[28-30]来生成三维网格.Choy 等[5]借鉴了长短期记忆网络和门控循环单元(Gated recurrent unit,GRU)思想构建了循环网络结构来重建三维物体.Groueix 等[14]则使用小块面片来拼接三维物体表面形状,但是拼接三维形状的小块面片之间很容易出现重叠和自交.Chen 和Zhang[31]在深度网络中使用符号距离函数来完成三维形状生成的任务.虽然他们的方法在生成任务上取得了良好的效果,但在单视图重建任务中无法实现高保真恢复三维物体的细粒度细节.
最近,一些工作[31-32]将物体三维形状表面隐式地表示为深度神经网络分类器的连续决策边界.换句话说,这些工作通过学习一个分类器来预测一个点是在封闭的形状边界内还是在边界外,并使用这个分类器作为三维形状的表示形式.但是,由于三维形状是由分类器或回归模型的权值来表示的,所以这些方法往往忽略了一些低级的形状信息.
2 方法
2.1 概述
本文的目标是使用2D 图像X和位置P ∈R3来推断对应位置P的占用情况,即使用神经网络拟合映射函数 R3×X →[0,1].对于一个封闭的形状S,该二分类神经网络等价于对每个位置P给出一个0 到1 之间的占用概率来决定P点是否在封闭形状内,如式(1)所示:
但三维物体存在着大量复杂的拓扑结构和表面细节,这些位置的占用情况往往难以准确的预测,本文称这些点为模糊概率点.因此,本文结合模糊概率点的邻域特征和全局特征并使用深度强化学习算法对模糊概率点的占用概率进行再推理.图3 显示了本文方法的整个流程.具体来说,本文首先使用编解码器将2D 图片信息和下采样点特征解码为向量V并找到模糊概率点.其次,邻域路由机制将搜索模糊概率点周围的邻域点并组合为邻域点阵块.然后,特征聚合模块提取邻域点阵块和对应的图片信息为模糊概率点集的局部特征,并与全局图像特征进行聚合.最后,DDPG 模块将聚合后的特征作为初始状态后进行动作选取并输出调整后的占用概率.
图3 MNGD 框架的整体流程图Fig.3 The workflow of the proposed MNGD framework
2.2 动态分支代偿网络模块
本小节分别介绍了动态分支代偿网络模块的整体流程、动态分支代偿网络以及分支网络的优化和代偿过程.
2.2.1 动态分支代偿网络模块整体流程
本文使用动态分支代偿网络编码输入的2D 图像与下采样后的位置点送入解码器中对各自位置的占用情况进行预测得到向量V,再从向量V中寻找模糊概率点.首先将向量V转换到0 到1 之间,再取得概率分布在P∈[0.4,0.6] 的点作为模糊概率点集.如式(2)所示,本文对模糊概率点集进行初始化.
上式中,fuzzy(.)表示对应的点是否为模糊概率点,0 代表该点不是模糊概率点,1 代表该点是模糊概率点并将其加入模糊概率点集.
2.2.2 动态分支代偿网络
如图4 所示,本文通过在神经网络的中间层中添加边分支,使得神经网络能够沿着每条边分支产生更多样化的特征表示.之后,本文通过注意力机制来动态混合多分支输出预测概率,从而得到更精确地预测占用概率,如式(3)所示:
图4 动态分支代偿网络框架图Fig.4 The framework of the dynamic branch compensation network
其中,pi;i∈M[1,3] 代表每条分支的预测的占用概率,并且根据当前处理的样本,wi代表针对该样本每一条分支的权重值.
2.2.3 动态分支网络的优化和代偿过程
在优化动态分支代偿网络时,本文不仅直接收集每个分支的分类损失来优化网络,而且关注每个分支在其各自路径中生成的不同特征.即当边分支或主分支学习并生成知识时,分支网络之间可以通过相互的公共路径实现实时的知识交互和补偿,如式(4)所示:
其中,LB代表一个小批次B条数据的训练损失,(.,.) 代表主分支的交叉熵分类损失,(.,.)代表边分支的交叉熵分类损失.i=1,···,B代表一个小批次第i条数据,n=1,···,N,N代表第n条边分支.fθ代表主分支的网络参数,代表第n条边分支的网络参数.IΘ代表主分支生成的知识补偿给边分支,Iθ代表边分支生成的知识补偿给主分支.pij代表输入的第i条数据的第j个位置点,其中pij ∈R3,j=1,···,K.oij ∈{0,1}代表pij是否在封闭形状S内的真实标签.
2.3 邻域路由模块
在本小节中,本文通过邻域路由聚合模糊概率点周围位置点形成邻域点阵.因为模糊位置点周围信息可以帮助模型对模糊位置点的占用概率进行更好的再推理,所以本文通过邻域路由来寻找模糊位置点周围的点并组合为邻域点阵,如图3(b)和图5所示.在邻域路由中,如果路由点个数过多则会导致训练速度较慢,如果路由点个数过少则会导致网络捕捉的局部特征不稳定.本文均衡了不同路由点个数在训练时间和实验效果上的表现选择了N=64 作为路由点个数.
图5 邻域路由过程Fig.5 The whole process of neighbor routing
2.4 注意力引导的特征聚合模块
以往的工作仅仅通过训练多层感知机抽取图像全局信息来对位置点的占用概率进行推理,它往往会忽视局部的细节信息,故模糊概率点再推理需要结合全局和局部信息.如图3(c)所示,本文借鉴通道注意力机制来聚合全局和局部信息.本文的目的是将邻域点阵和对应图像结合提取出对应邻域点阵含有的局部特征,之后再聚合局部特征和图像全局特征形成下一层网络的输入.然而不同的样本有着不同的特征,一些模糊概率点需要更多的全局的语义信息,相反另一些模糊概率点则需要更多的局部细节特征,所以本文在聚合特征时加入了通道注意力机制[33].如图6 所示,模糊概率点集特征被分割为N个模糊概率点特征并使用图示过程对不同的通道ci乘以对应的权重wi后形成新的单模糊点特征,最后将新的N个模糊概率点再次组成模糊概率点集特征.
图6 聚合特征时的注意力机制Fig.6 Attention mechanism when features are aggregated
2.5 DDPG 模块
在这个模块中,智能体通过分析模糊概率点附近的局部信息和全局信息后从量化后的连续动作空间选取动作来改变模糊概率点的占用概率,再根据奖励进行优化,最终学习到可以跳出模糊概率范围的策略,进而调整模糊概率点的占用概率使其跳出模糊概率区间.本文给定一个由上一个模块输出的模糊概率点集特征F,并通过DDPG 模块来调整模糊概率点的占用概率.首先,模糊概率点集特征被分割为N个单模糊概率点特征{F0,F1,···,FN},之后引出根据模糊概率点特征如何获得该模糊概率点最佳占用概率的问题,最后该问题被定义为一个马尔科夫决策过程,由状态、行为、奖励、在过程中采取行动的状态改变、学习过程和交互环境组成.智能体通过当前输入的状态信息,输出相应的最优动作,从环境中获得最大的奖励作为一个流程.本文使用一个深度强化学习算法DDPG[18]来训练智能体.本文定义的整个马尔科夫决策过程和训练过程如下:
状态:本文将状态定义为当前模糊概率点的特征信息Fi,初始状态S0为当前模糊概率点第一次进入DDPG 模块的模糊概率点特征Fi.随着每一步迭代,在第ith迭代后状态是Si-1,它累积了以前所有迭代的更新.
动作空间:本文将在连续空间T∈[0,1] 内选取一个动作Ai来调整模糊概率点特征信息用来获得最准确的占用概率,所以第ith迭代的操作是为了获得更准确的占用概率对应的模糊概率点特征信息.其次,本文量化了连续空间T∈[-1,1] 作为动作选取的连续空间,使模糊概率点可以跳出模糊概率区间P∈[0.4,0.6].
奖励函数:奖励函数通常用于评估智能体执行动作的结果.在本文中,奖励函数被设计为根据模糊概率点特征所得到的占用概率与模糊点对应的真实标签的交叉熵损失,所以这个奖励函数可以评估该模糊概率点对应的重建误差.奖励函数形式如下:
上式中,yi∈{0,1}代表周围点是否在封闭形状内的真实标签,Pi是模糊概率点的占用概率,Si代表当前状态,Ai代表基于当前状态给出的动作.
学习过程:学习阶段的目标是更新评价和动作网络的参数,初始化的评价网络Q(S,A|θQ)参数为θQ,初始化的动作网络u(S,A|θu) 参数为θu,目标评价网络Q′和目标动作网络u′.
在动作网络预测出动作后评价网络会给出Q(S,A)值作为当前状态S执行动作A后的评价,为了能使评价网络精确给出对应的Q值,最小化式(6)来更新评价网络参数:
上式中,N代表从记忆库中选择学习的样本个数,Ri代表奖励值,γ代表折扣参数.在动作网络中为了能使动作网络能够获得更大Q值,使用式(7)来更新动作网络的参数:
上式中,∇代表梯度,接下来采用式(8)(9)更新目标网络参数:
上式中τ代表软更新的参数.
交互环境:环境指的是智能体执行动作时所处的场景.本文将环境设置为当智能体对模糊概率点占用概率进行再推理后得到该模糊概率点新的占用概率.当新的占用概率处在模糊概率区间P ∈[0.4,0.6]时,环境将该模糊概率点新的占用概率替换之前的占用概率后作为下一个状态.当新的占用概率跳出了模糊概率区间P∈[0.4,0.6] 或者达到了最大调整步数时,环境将该模糊概率点新的占用概率替换之前的占用概率并给出相应的奖励值.
3 网格生成过程
本节首先可视化了卷积神经网络抽取特征的过程和特征激活图.其次,本文详细说明了整个预测三维形状网格和真实三维形状网格的生成过程.
3.1 卷积可视化
如图7(a)所示,本文可视化了每层卷积网络处理提取前层输出后得到的结果.从整个可视化后的卷积过程可以看出:1)浅层网络主要是对低级特征的提取,例如边缘特征和纹理特征等.2)深层网络则主要是对高级特征信息进行抽取,例如高级语义信息等.如图7(b)所示,本文使用Grad-CAM[34]通过抓取梯度计算量和特征图相乘来计算热力图,并在原图中进行特征激活可视化.
3.2 网格生成过程
如图7((e)~ (j))所示,本文使用多分辨率等值面提取法(Multiresolution isosurface extraction,MISE)[17]将本文框架输出的结果提取等值面,最后使用游动立方体算法(Marching cubes algorithm)[35]对每个体素以三角面片来逼近其内部的等值面(Isosurface)来生成目标网格.
图7 卷积可视化与网格生成过程Fig.7 Convolution visualization and mesh generation process
如图7(d)所示,本文首先将本文框架输出的结果fθ(p,x) 中大于阈值ε的点标记为占用点(圆形点),剩下的标记为未占用点(方形点).其中,f为网络拟合的映射函数,θ为网络的参数,p为输入的下采样点云,x为输入的2D 图像.
之后,如图7(e)所示,本文将至少两个相邻位置具有不同占用状态的点所在的体素块标记为占用体素,这些相交于网格之间的标记体素块的个数记为网格分辨率.如图7(f)所示,本文将占用体素进行精细化分解以得到更高的分辨率.如图7(g)和7(h)所示,本文使用游动立方体算法提取近似等值面并得到初始网格.
如果在当前分辨率下的初始网格包含网格内外各连通部分的点,则算法结果收敛于正确的网格.为了更好地使算法收敛于正确的网格,网格分辨率通常设置为 323.
如图7(i)所示,本文首先使用快速二次网格简化算法(Fast-quadric-mesh-simp-lification algorithm)[36]来精细化得到的初始网格.之后,本文再使用一阶和二阶梯度来进一步精细化网格.为了达到这个目标,本文从输出网格的每个面取随机采样点k个点,并最小化式(11):
上式中n(pk) 代表网格pk的法向量.本文设置λ=0.01并通过双重反向传播[37]方法来有效地使用二阶梯度信息.
4 实验
本节首先介绍了实验设置以及训练和测试的实现细节.其次,展示了本文的方法与目前最先进的方法在ShapeNet[20]数据集上定量实验的结果.之后,本文展示了本文的方法在合成数据集ShapeNet上和在线产品数据集(Online products dataset)[38]上的定性结果.最后,本文使用消融实验对模型中的各个模块的作用进行了验证并展示了本文方法在合成数据ShapeNet 中全部类别上的定性结果.
4.1 数据集
数据集:ShapeNet[20]是一个包含大量三维物体模型的合成数据集.本文使用ShapeNet 核心数据集,它包括了55 个常见的对象类别共55 300 个3D模型、13 个主要类别和一个官方分割的训练、测试数据集.本文的模型在包含全部类别的数据集上进行训练,并报告本文模型在包含全部类别的测试集上的测试结果.
真实图片数据:Online products dataset[38]是一个包含真实世界图片的数据集.本文的模型并没有在该真实图片数据集上进行训练,所以本文使用该真实图片数据集来验证训练模型的泛化能力、真实世界物体图片的三维重建能力和域可转移能力.
本文在实验中分别进行了定量评估和定性评估,对于定量评估,本文使用交并比(Intersection over union,IoU)、倒角距离(Chamfer distance,CD)和法线一致性(Normal consistency,NC)作为评估指标.为了测量IoU 等评估指标,本文使用Stutz 等[39]的代码去生成水密网格并确定位置点是否位于网格的内部或外部.
4.2 评价标准
4.2.1 交并比
本文使用基于体素化网格的交并比(IoU),体素化网格的交并比是两个体素化网格交集的体积和并集的体积的商.
如式(12)所示,G和R代表体素化网格.
4.2.2 倒角距离
倒角距离被定义为真实点云形状和重建点云形状之间完整性和准确性的度量.准确性为重建后各点与真实标签各点之间的平均距离,完整性则为真实标签各点与重建后各点的平均距离.
如式(13)所示,G和R 分别代表真实点云形状和重建点云形状.
4.2.3 法线一致性
法线一致性定义为重建网格中法线和真实网格中相对应最近的法线之间点积的绝对值的平均值.
如式(14)所示,G和R分别代表重建网格和真实网格中的法线.
4.3 实现细节
本文所有的网络结构都是使用Python3.6 和Pytorch1.0 实现的.本文使用在ImageNet 数据集上预训练的ResNet-18 来初始化编码器的参数,并使用基于条件批归一化 (Conditional batch normalization,CBN)[40]的5 个ResNet[41]块作为解码器.本文在一块CUDA 9.0、cudnn 7 的GeForce RTX 2080 Ti 上来训练动态分支代偿网络,如图3(a)所示,其中48 个样本作为一个批次,并使用初始学习率为1×10-4的优化算法Adam[42].特征聚合模块和DDPG 模块中,本文使用基于CBN 的解码器和容量为C的记忆库.强化学习过程中动作网络每次在连续空间中随机选择一个动作并且将元组(Si,Ai,Si+1,R,done)添加到记忆库.当记忆库的数据量达到C-1 时,网络通过随机从记忆库中选取一个批次N条经验来进行学习.本文设置批次样本个数N为100,容量C设置为400 000,折扣参数γ设置为0.99,最大调整步数S为3,软更新参数ε设置为0.005.
4.4 定量实验
在这一节中,本文将在单视图重建方面使用本文的方法和其他最先进的方法3D-R2N2[5]、Pix2Mesh[9]、AtlasNet[14]和ONet[17]进行定量的比较.本文的方法仅使用单张图片输入来实现三维重建.如表1 所示,本文的方法在IoU 上的评价结果均有显著的提升并优于其他最先进的方法,由于AtlasNet 不能产生水密网格,所以本文无法评估该方法的IoU 值.如表2 所示,对于法线一致性(NC),本文的方法在NC 上的评价结果均有显著的提升并优于其他最先进方法的结果.如式(13)所示,AtlasNet 通过输入信息直接回归三维点云坐标值以计算倒角距离进行训练.本文通过使用连续函数定义一个3D 空间,并通过神经网络拟合的函数来描述这样的隐式形状,不是直接回归重建物体中点云的三维坐标值,即本文利用神经网络拟合映射函数来隐式的描述3D 形状.所以,本文方法不能像PSGN和AtlasNet 一样训练倒角距离.在评估过程中,本文通过网格生成步骤(该步骤不可微分)来生成网格并与真实标签生成的真实网格中随机抽样100k 个点计算倒角距离.如表3 所示,本文在训练过程中没有像PSGN 和AtlasNet 一样训练倒角距离,但本文在定量实验中也取得了较好的结果.
表3 本文的方法在ShapeNet 数据集上与最先进方法倒角距离 (CD)的定量比较Table 3 The quantitative comparison of our method with the state-of-the-art methods for CD on ShapeNet dataset
4.5 ShapeNet 数据集上的定性结果
本文与其他方法比较的定性结果,如图8 所示.通过图8 可以看到所有的方法都对物体的基本的几何特征进行了准确的提取.本文发现3D-R2N2[5]在重建拓扑结构复杂的物体上出现了较为明显的空洞.PSGN[8]可以产生高保真的输出,但是缺乏连接性.因此,PSGN 需要额外的有损后处理步骤来生成最终的网格.Pix2Mesh[9]同样也在拓扑结构较为复杂的物体上出现了局部变形和空洞.AtlasNet[14]已经可以重建出良好的表面,但容易产生小面片之间的自交和重叠.ONet[17]则很好地捕获了拓扑结构复杂的物体的特征并且生成了更加平滑的表面,但缺失了部分局部细节.本文的方法能够捕获复杂拓扑结构和生成高保真的三维形状输出.另外,从台灯和飞机的重建结果可以看出,本文的方法有效地恢复了物体复杂拓扑结构的连接处和局部细节.
图8 ShapeNet 数据集上的定性结果Fig.8 Qualitative results on the ShapeNet dataset
4.6 真实图片数据集上的定性结果
为了检验本文的方法对真实数据的泛化能力,本文将本文方法应用于Online Products dataset[36]用于定性评价.本文的模型并没有在Online Products dataset 上进行训练.
如图9 所示,本文展示了本文方法在Online Products dataset 定性结果.本文在真实图片数据集中选择一些有代表性的图像来显示定性结果.通过结果可以看出,虽然本文的模型只是在合成数据上进行训练,但本文的模型对真实图片数据也有很好的泛化能力.
4.7 模型与最先进方法的比较
本文分别从真实图片泛化能力和模型鲁棒性以及重建复杂拓扑结构和细节表达能力方面进一步进行分析.
4.7.1 真实图片泛化能力和模型鲁棒性
为了测试本文模型对真实图片的泛化能力,本文的模型在Online Products dataset 进行了三维重建.如图2 和图9 所示,本文的模型只在ShapeNet数据集上进行了训练,但是在真实世界的图片上还是获得了不错的效果.通过这个实验验证了本文模型的域可转移性.如表1、2、3 所示,本文的方法在ShapeNet 数据集上所有的类别上都取得了最优的交并比和法线一致性,并在倒角距离上也取得了不错的效果,这证明了本文的方法在处理所有类别上更加具有鲁棒性.
图9 Online Products dataset 的定性结果Fig.9 Qualitative results on Online Products dataset
4.7.2 重建复杂拓扑结构和细节表达能力
对于拓扑结构复杂的物体(例如:飞机、椅子和桌子),本文结合了输入图像的全局特征和模糊概率点周围的局部特征进一步强化了复杂拓扑结构和细节表达能力.如图2 和图9 所示,本文的模型在真实物体连接处和凹凸处具有更强的表达力.
4.8 消融实验
在这个部分,本文对本文方法进行了消融实验,主要研究了分支代偿网络模块和DDPG 再推理模糊概率点的占用概率模块对模型整体性能的影响.本文将分支代偿网络模块、DDPG 再推理模糊概率点的占用概率模块和完整模型分别用MB、DR 和FM 表示.
如表4 所示,本文首先验证了DDPG 再推理模糊概率点的占用概率模块显著提高了IoU 指标.其次,本文验证了分支代偿网络模块明显提高了IoU、NC 和CD 等指标,另外因为分支代偿网络的加入可以生成更多样化的特征表示以更好地定位模糊概率点和提高模型的泛化能力,所以在加入分支代偿网络后模型效果有了显著的性能提升.最后,如图10 所示,本文展示了消融实验中不同模型的定性实验结果.
图10 消融实验的定性结果Fig.10 Qualitative results of ablation study
表4 消融实验Table 4 Ablation study
4.9 MNGD 调整模糊概率点的定量结果
在这个部分,本文的方法不依赖IoU 等评价指标对本文方法进行定量评估,而是展示了本文方法对模糊概率点调整能力的定量结果,如图11 所示.圆点代表一张随机图片中的模糊概率点整体调整正确个数,叉号代表一张随机图片中整体调整错误个数,虚线代表整体调整正确或错误的决策边界.
图11 MNGD 随机调整100 张图片中模糊概率点的结果Fig.11 The result of MNGD adjusting the fuzzy probability points in 100 random images
4.10 ShapeNet 中所有类别的定性实验
在这个部分,本文展示了本文方法在训练数据集ShapeNet 中所有类别的三维重建结果.如图12所示,本文的方法能够准确捕获ShapeNet 数据集上所有类别物体的基本几何特征,另外本文方法也有效的恢复了所有类别物体的复杂拓扑结构的连接处和局部细节.
图12 ShapeNet 上所有类别的定性结果Fig.12 Qualitative results on ShapeNet of all categories
4.11 进一步的工作
如图13 所示(实线圈表示本文方法与ONet 的比较,虚线圈表示本文方法与原图的比较).相比与之前的工作,本文的方法在大多数情况下能够生成高保真的三维模型,但还需要在未来工作中对以下方面进行进一步优化:1) 如图13 所示,由于本文没有引入额外的相机参数信息来定位点到图像平面的映射使得本文模型不能非常准确地恢复细小的凹凸结构(图13(a)和图13(b))和薄片结构(图13(c)).2) 如图13 所示,单视图三维重建本质上缺少多视角观测数据导致无法确定唯一的真实形状,所以学习模型经常趋于逼近光滑表面但是细节模糊的平均形状(图13(a),图13(b)和图13(c)).3)全标注三维形状公共数据集较少,如何增广或利用无标注三维形状数据集来提高模型泛化能力也十分重要.
图13 单视图三维重建中具有挑战性案例Fig.13 Challenging cases in single-view 3D reconstruction
在未来的工作中,我们计划引入相机参数对模糊概率点对应的特征图进行更进一步的精确定位以及使用自监督[43-44]来有效利用无标注的三维形状数据集,从而使深度强化学习算法训练的智能体做出更加合理的再推理.
5 结论
本文提出一个新的方法来实现对三维重建中模糊概率点进行再推理从而实现具有高保真和丰富细节的单视图三维重建.本文的方法首先通过动态分支代偿网络从输入信息中捕捉到更多样化的特征信息以提高模型的泛化能力.其次,本文通过注意力引导的聚合机制聚合了模糊概率点的局部信息和全局图像信息,之后通过深度强化学习算法DDPG训练的智能体对模糊概率点进行再推理并给出相应的结果.最后,本文通过大量的定性和定量实验表明,本文的方法在一定程度上解决了具有复杂拓扑的物体以及一些表面细节信息难以准确重建的问题.