没有合适的资源?快使用搜索试试~ 我知道了~
基于深度图像的三维点场景修复的体积引导视图修复方法
234基于深度图像的三维点场景修复的体积引导渐进视图深度强化学习1、3韩晓光,2、3张兆轩,3、4杜东,1、3杨明代,5余景明,5潘攀2杨欣,4刘立刚,6熊子祥,1,3崔曙光1香港中文大学(深圳),2大连理工大学,3SRIBD,4中国科学技术大学,5阿里巴巴集团,6TAMU摘要我们提出了一种用于体积引导下的3D点场景修复的渐进视图修复的深度强化学习方法我们的方法是端到端的,由三个模块组成:3D场景体积重建、2D深度图修复和多视图选择完成。给定单个深度图像,我们的方法首先通过3D体积分支来获得体积场景重建,作为下一个视图修复步骤的指导,该步骤试图弥补缺失的信息;第三步涉及在输入的相同视图下投影体积、连接它们以完成当前视图深度、以及将所有深度积分到点云中。由于遮挡区域不可用,我们求助于深度Q网络来扫视周围,并逐步选择下一个最佳视图以完成大洞,直到场景在保证有效性的同时得到充分所有步骤都是共同学习的,以实现稳健和一致的结果。我们进行定性和定量的评估与广泛的实验SUNC数据,获得更好的结果比最先进的。1. 介绍从单个深度图像恢复3D场景的遮挡区域中的丢失信息是最近非常活跃的研究领域[36,56,12,23,9,47]。这是由于其在机器人和视觉任务中的重要性,例如室内导航,监控和增强现实。虽然这个问题在人类视觉系统中是温和的,但在机器视觉中,由于输入和输出信息之间的绝对不平衡,它变得严重。解决这个问题的一类流行方法[32,2,13,11]是基于分类和搜索:深度图的像素被分类为若干语义对象区域,这些语义对象区域被映射到最相似的语义对象区域。(a) 深度(b)可见表面(c)输出:两个视图图1.表面生成的场景完成。(a)作为输入的单视图深度图;(b)来自深度图的可见表面,其表示为点云。在本文中,深度和点云的颜色仅用于可视化;(c)我们的场景补全结果:直接恢复被遮挡区域的缺失点。这里我们选择两个视图以获得更好的显示效果。以构建完全3D场景。由于数据库容量有限,分类检索的结果往往与真实情况相差甚远。通过将深度图转换成不完整的点云,Song等人.[36]最近提出了第一个端到端深度网络,将其映射到完全体素化的场景,同时输出每个体素所属的类标签。体积表示的可用性使得可以利用3D卷积神经网络(3DCNN)来有效地捕获全局上下文信息,然而,从不完整的点云开始会导致输入信息的丢失以及因此的低分辨率输出。最近的几项工作[23,12,9,47]试图通过并行地235并将其传输到3DCNN数据流中。据我们所知,在解决第二个问题,即提高产出质量方面还没有做任何工作以不完整的深度图作为输入,在这项工作中,我们提倡直接重建3D点来填充缺失区域并实现高分辨率完成的方法(图1)。为此,我们建议以迭代的方式对多视图深度图进行完成,直到所有的洞都被填充,每次迭代都集中在一个视点上。在每次迭代/视点,我们渲染一个相对于当前视图的深度图像,并使用2D修复来填充产生的洞。将恢复的像素重新投影到3D点并用于下一次迭代。我们的方法有两个问题:首先,视点序列的不同选择强烈地影响最终结果的质量,因为给定部分点云,从无数视角捕获的不同可见上下文在完成任务中呈现各种程度的困难,产生不同的预测精度;此外,为了更容易修补而选择大量视图以在每次迭代中填充较小的孔,最终将导致误差累积。因此,我们需要一种策略来确定下一个最佳视图以及所选视点的适当数量。其次,尽管现有的基于深度学习的方法[28,16,20]显示出出色的图像完成性能,但直接将其应用于不同视点的深度图通常会产生不准确和不一致的重建。究其原因,是缺乏对全球环境的理解。为了解决第一个问题,我们采用了强化学习优化策略的视图路径规划。特别地,当前状态被定义为在先前迭代之后的更新的点云,并且动作空间被选择为最大化3D内容恢复的一组预采样视点所将当前状态映射到下一个动作的策略由多视图卷积神经网络(MVCNN)近似[38]进行分类。第二个问题由体积引导视图完成deepnet处理。它将一个2D修复网络[20]和另一个3D完成网络[36]结合起来,形成一个联合学习机。在其中,3D网络的低分辨率体积结果被投影并连接到2D网络的输入,从而为深度图修复提供更好的全局上下文信息。同时,来自2D网络的损失被反向传播到3D流,以有利于其优化并进一步帮助提高2D输出的质量。实验结果表明,本文提出的联合学习机在定量和定性上都明显优于现有的方法。总而言之,我们的贡献是• 第一个通过直接生成缺失点从单个深度图像完成3D场景的• 一种新的深度强化学习策略,用于确定渐进式场景完成的最佳视点序列。• 一个体积引导的视图修复网络,不仅可以产生高分辨率的输出,还可以充分利用全局上下文。2. 相关作品许多先前的作品都与场景完成有关。文献综述主要从以下几个方面进行。几何完成几何完成在3D处理中有着悠久的历史,以清理破碎的单个对象或不完整的场景而闻名小孔可以通过基元拟合[31,19],平滑度最小化[37,58,17]或结构分析[25,35,39]来填充。然而,这些方法严重依赖于先验知识。基于模板或部件的方法可以通过从数据库中检索最相似的形状,与输入匹配,使不同的部件变形并组装它们,成功地恢复然而,这些方法需要手动分割数据,并且由于数据库容量有限,当输入与模板不匹配时往往会失败最近,基于深度学习的方法在形状完成方面获得了很多关注[30,42,33,45,5,14],而由于遮挡区域中的大规模数据丢失,来自稀疏观察视图的场景完成仍然具有Song等人[36]首先提出了一种基于3DCNN的端到端网络,名为SSCNet,它以单个深度图像作为输入,同时输出相机视锥体内所有体素的占用和语义标签。ScanComplete[6]将其扩展到处理具有不同空间范围的较大场景。Wang等人[47]将其与对抗机制相结合,使结果更合理。Zhang等人[56]应用密集CRF模型,然后使用SSCNet,以进一步提高准确性。为了利用输入图像的信息,Garbade etal.[9]采用双流神经网络,利用从RGB图像中提取的深度信息和语义上下文特征。Guo等人[12]提出了一个视图体积CNN,它从2D深度图像中提取详细的几何特征,并将它们投影到3D体积中,以帮助完成场景推断。然而,所有这些基于体积表示的工作本文通过对多视点深度图像进行修复,直接预测点云,实现高分辨率修复。深度修复类似于几何完成,搜索者已经采用了各种先验或优化模型,EL完成深度图像[15,21,27,41,3,22,51,55]。基于块的图像合成思想也被应用[7,10]。近年来,国际上取得了重大进展,236我DQN点云输出深度视图视图视图视图SSCNet体素二维CNN图2.我们方法的流水线 给定单个深度图像D0,我们将其转换为点云P,这里以两个不同的视图示出。DQN用于寻找下一个最佳视图,在该下一个最佳视图下,点云被投影到新的深度图像D1,从而导致孔洞。与此同时,P也通过SSCNet在体积空间中完成,从而得到V。在D1的视图下,V被投影并使用2DCNN网络引导D1的修复。重复这个过程几次,我们就可以实现最终的高质量场景完成。年龄或视频修复领域,深度卷积网络和生成对抗网络(GAN)用于规则或自由形式的孔[16,20,54,59,46]。Zhang等人[57]使用深度内嵌绘画的端到端模型来模仿它们。与彩色图像的修复任务相比,由于深度图缺乏强的上下文特征,因此从单个深度图中恢复丢失的信息更具挑战性。为了解决这个问题,我们的论文中提供了一个额外的3D全局上下文,指导不同视图上的视景路径规划将景物或物体投影到像平面上,由于自聚焦,会严重地造成信息丢失。一个简单的解决方案是利用稠密视图来组成[38,29,40],但它会导致沉重的计算成本。Choy等人[4]提出了一种3D递归神经网络来整合多视图信息,将视图数减少到5个或更少,但多少视图才能完成,哪些视图更能提供最多的信息特征,仍然是一个悬而未决的问题。最优视点路径规划是根据当前状态预测下一个最优视点的问题它在自主机器人系统中对场景重建以及环境导航起着关键作用[24,1,60,49]。最近,这个问题也在对象级形状重建领域进行了探索在[50]中设计了一个学习框架,通过利用序列观测的空间和时间结构来预测用于地面实况拟合的视图序列。我们的工作探索的方法,视路径规划的场景完成。我们建议训练一个深度Q网络(DQN)[26]来选择强化学习框架中的最佳视图序列。3. 算法概述以深度图像D0作为输入,我们首先将其转换为点云P0,该点云遭受严重的数据丢失。我们的目标是生成3D点来完成P0。我们提出的算法的主要目的是将不完整的点云表示为多视图深度图,并对其执行2D修复任务。为了充分利用上下文信息,我们以累积的方式逐个视图执行这些修复假设D0是在视点v0下从P0渲染的,我们以新的视图v1开始我们的完成过程,并在v1下渲染P0以获得新的深度图D1,其可能具有许多孔。我们把这些D1中的孔与2D修复,将D1转换为D1。在-然后,将D中的延迟深度像素转换为3D点并与P0聚合以输出更密集的点云P1。对于新视点v2,v3,.,vn,产生点云P2,P3,...,P n,其中P n是我们的最终输出。图2描述了我们提出的算法的整体流水线。由于Pn取决于视图路径v2,v3,.,因此,我们在3.2节中描述了一个深度约束学习框架,以寻求最佳视图路径。在此之前,我们介绍我们的解决方案,以另一个关键2D修复的问题,即,将Di变换为Di,第3.1节首先。3.1. 体积引导视图修复深度卷积神经网络(CNN)已被广泛用于有效地提取图像修复任务的上下文特征,并取得了优异的性能。尽管它可以直接应用于每个视点,但由于缺乏全局上下文理解,这种过于简单的方法将导致视图之间的 我们提出了一个体积引导的视图修复框架,首先在体素空间中进行完成,将P0的体积占用网格V转换为其完成的版本Vc。将从Vc到视图vi的投影深度图表示为Dc。我们对第i个视图的修复需要Di237我我我KKK和Dc作为输入和输出Dd。如图2所示,我我使用三模块神经网络架构实现,该结构由体积完成网络、深度修补网络和连接它们的差分投影层组成每个模块的详细信息和我们的培训策略如下所述。我们采用[36]中提出的SSCNet来将V映射到Vc以进行体积完成。SSCNet不仅预测体积占用率,还预测每个体素的语义标签。这样的多任务学习计划有助于我们更好地捕获对象感知上下文特征,并有助于更高的准确性。有关如何设置此网络架构的详细信息,请参阅[36]。我们将网络训练为逐体素的二进制分类任务,深度图3.我们的DQN架构。对于点云状态,MVCNN用于预测下一次修复的最佳视图。D(x)对Vk的导数可以计算为:取输出的3D概率图为Vc。该决议输入为240×144×240,输出为60×36×60。深度修复在我们的工作中,深度图被渲染D(x)VkΣNx=I=k(di+1−di)Y1≤t≤i,t/=kVt.(三)512×512灰度图像。 在现有的各种方法,[20]的方法被选择来处理我们的带有不规则形状孔的箱子。具体地,首先将Di和Dc级联以形成具有2个通道的映射。然后将得到的映射馈送到一个U-Net结构中,该结构采用掩蔽和重新归一化的卷积操作(也称为部分卷积),然后是自动掩蔽更新步骤。输出也是512×512。我们请读者参考 [20]有关该架构设置和损失函数的设计。投影层正如我们在4.2中描述的实验中所验证的,Vc的投影极大地有利于2D深度图的修复。我们通过将2D损失传播回来以优化3D CNN的参数,进一步利用2D修复对体积完成这样做需要可区分的投影层。此层的实现有两种选择:[43]中提出的技术和[53]中的单应性扭曲方法。选择第一个是为了更准确的投影。因此,我们使用该层连接Vc和Dc。 为了便于记谱,我们用V表示Vc,用D表示Dc。具体来说,对于D中的每个像素x,我们发射一条射线,该射线从视点vi开始,穿过x,并与V中的一系列体素相交,记为l1,l2,.,l Nx.我们将V中 第k个体素的值表示为Vk,它表示该体素为空的概率。然后,我们将该像素x的深度值定义为ΣNxD(x)= Px dk(1)k=1其中dk是从视点到体素lk的距离,Px是对应于x的射线首先遇到lk体素的概率kY−1Px=(1 − V k) V j,k= 1,2,., N x (2)j=1这保证了投影层的反向传播为了加快实现速度,所有光线的处理都通过GPU并行实现。由于我们的网络由三个子网络组成,我们将整个训练过程分为三个阶段以保证收敛:1)3D卷积独立训练网络,完成场景; 2)在3D卷积网络参数固定的情况下,在3D模型的指导下训练用于深度图像修复的2D卷积网络; 3)联合训练整个网络,并使用2D和3D卷积网络中释放的所有参数对其进行微调。训练数据是基于[36]中提供的SUCG合成场景数据集生成的。 我们首先创建N个深度图像渲染随机选择的场景下,随机挑选的相机视点。每个深度图像D然后被转换为点云P。假设D是P在视点v下的投影,我们将P投影到来自v附近的m个随机采样视图的m个深度图,以避免引起大的空洞,并确保在学习过程中有足够的上下文信息可用。3.2. 渐进式场景完成给定相对于视图v 0从D 0转换的不完整点云P0,我们在本小节中描述如何获得最佳下一视图序列v1,v2,.,v;该问题被定义为一个马尔可夫决策过程(MDP)的状态,动作,奖励,并在该过程中采取行动的代理。智能体输入当前状态,输出相应的最优动作,并从环境中获得最多的奖励我们使用DQN [26]训练我们的代理,DQN是一种深度再强化学习算法拟议MDP的定义和培训程序如下。我们将状态定义为每次迭代时更新的点云,初始状态为P0。作为迭代512256CNN1CNN20CNN视图池化20点云Q值CNN238我我我继续,则在第i个视图上执行完成的状态是Pi-1,它是从所有先前的迭代更新中累积的动作空间第i迭代的动作是确定下一个最佳视图vi.为了简化训练过程并支持DQN的使用,我们均匀地对一组以场景为中心的相机视图进行采样,以形成离散的动作空间。具体地说,我们首先将P0放置在它的边界球中,并使它保持直立.然后,为赤道线和45度纬线创建两条圆路径。在我们的实验中,在这两条路径上均匀地选择20个相机视图,每圈10个。所有视图都面向边界球体的中心。我们为所有训练样本修复了这些视图。20个视图的集合被表示为C={c1,c2,..., c20}。Reward一个reward函数通常用于评估Agent执行动作的结果 在我们工作,在第i次迭代时,输入是在ac中选择的视图vi下从Pi-1渲染的不完整深度图Di空间C. 智能体动作的结果是经修复的深度图像Di。 因此,这种修复操作的准确性可以用作主要的奖励策略。它可以可以通过孔内的像素在Di和其地面真实值Dgt之间的平均误差来测量。 所有地面实况深度图都是从SUNC数据集预渲染的。因此我们将奖励函数定义为Input >DepInw/oVGDepInw/oPBPOurs图4.深度修补网络的变体比较。鉴于不完整的深度图像,我们展示了我们提出的方法的结果已修复的贴图及其错误贴图均会显示。因此,我们的最终奖励函数是Rtotal=wRacc+(1-w)Rhole,(6)我我我Racc= −1L1(D,Dgt),(4)其中w是平衡两个奖励我|Ω|阿吉岛其中,L1表示L1损失,L2表示孔内的像素集合,并且|Ω|像素内的像素数。如果我们只使用上面的奖励函数Racc,则代理倾向于在每个动作循环中稍微改变视点,因为这样做会导致小孔。然而,这在累积误差的同时导致更高的计算成本。因此,我们引入了一个新的奖励条件,以鼓励推断-环更多的缺失点在每一步。这通过测量填充的原始孔的百分比来实现。为此,我们需要计算不完整点云P中缺失区域的面积,这在3D空间中并不简单。因此,我们将所有相机视图下的P投影到动作空间C,并计算每个渲染图像中生成的孔内的像素数这些数字的总和表示为面积h(P),用于测量面积。因此,我们将新的奖励项定义为届DQN训练我们的DQN建立在MVCNN上[38]。它将从P i−1投影的多视图深度图作为输入,并输出不同动作的Q值。整个网络被训练成近似动作价值函数Q(P i−1,v i),这是智能体在状态P i−1采取动作v i时获得的预期奖励。为了确保学习过程的稳定性,我们引入了一个与[26]的体系结构分离的目标网络,其用于训练DQN的损失函数为损失(θ)=E[( r+ γmax Q( Pi,vi+1; θ′)− Q( Pi−1,vi; θ))2]。vi+1(七)其中r是奖励,γ是折扣因子,θ'是目标网络的参数。为了有效的学习,我们创建了一个经验重放缓冲区来减少数据之间的相关性。缓冲器存储与该片段一起进行的元组(Pi-1,vi,r,Pi)。 我们也-R孔=面积h(Pi−1)-面积h(Pi)面积h(P0)−1(5)采用[44]的技术来消除由以下因素引起的向上偏差:maxvi+1Q(Pi,vi+1;θ′),并将损失函数改为以避免代理选择与先前步骤中相同的动作。我们进一步定义了一个终止准则,通过面积h(Pi)/面积h(P0)5%来停止视图路径搜索,
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功