没有合适的资源?快使用搜索试试~ 我知道了~
159903D:镜面的深度细化林安琪X.西蒙弗雷泽大学https://3dlg-hcvc.github.io/mirror3d/输入图像+镜像遮罩原始深度原始点云细化深度细化点云图1:我们提出了3D镜像平面预测和深度细化的任务首先,我们用3D镜像平面注释几个流行的RGBD数据集(Matterport3D [6],ScanNet [7],NYUv2 [32我们的基准测试表明,现有的RGBD数据集“地面实况”原始深度数据,以及最先进的深度估计和深度完成方法在镜面上都表现出巨大的误差。我们提出了一种用于3D镜像平面估计的架构,该架构可以细化深度估计并产生更可靠的重建(比较来自NYUv2 [32]数据集的左右深度和点云对摘要尽管最近在深度感测和3D重建方面取得了进展,但镜面是误差的重要来源为了解决这个问题,我们创建了一个3D镜像平面数据集:一个基于三个RGBD数据集(Matterpot3D,NYUv2和ScanNet)的3D镜像平面数据集,包含7,011个镜像实例掩码和3D平面。然后,我们开发镜像3DNet:一个模块,细化原始传感器深度或估计深度,以纠正镜面上的错误。我们的关键思想是基于RGB输入和周围深度上下文来估计3D镜面平面我们的实验表明,ARM3DNet显著减轻了各种输入深度数据的错误,包括原始传感器深度和深度估计或完成方法。1. 介绍近年来,三维重建方法取得了很大进展。现在可以获得3D重建。高品质的几何形状和纹理的内部结构。然而,这些重建在使用镜子和玻璃的环境中时会非常失败,这两种环境在室内空间中都很普遍。许多重建方法的脆弱性是由于依赖于准确的主动深度感测。微软Kinect和英特尔实感等商用传感器采用主动红外或飞行时间深度传感,这需要从被感测表面返回强信号。不幸的是,高光泽和反射表面,如镜子,导致没有信号返回或高度不可靠的深度估计。虽然看起来反射器是最近,Whelan等人[34]证明,通过检测镜面,可以减轻上述干扰,并在具有许多反射器的场景中实现高质量重建然而,他们的方法依赖于使用附加到自定义相机装备的AprilTag [27]。使用这种定制硬件并不总是可行的。在这15991本文提出了一种在商品硬件采集的RGBD数据上识别镜面和估算镜面深度我们的主要思想是基于颜色信息(RGB)识别镜子区域我们的工作与最近提出的2D镜像分割任务有关[21,38]。然而,我们在3D中操作,并专注于使用3D镜像平面估计来提高深度数据的可靠性。为了估计3D环境中镜像的普遍性并了解上述镜像问题的严重性,我们首先在三个流行的RGBD数据集中注释3D镜像平面:Matterport3D [6]、ScanNet [7]和NYUv2 [32]。这些注释为观察到的镜面创建了以前无法获得的“真实”地面实况。我们发现镜像的显著性在数据集之间根据其采集过程而变化,从而导致相应范围的深度数据问题和重建失败。使用这些数据,我们介绍了从RGB和RGBD数据进行3D镜子检测的任务,并通过以下方式建立初始基准测试结果:i)应用最先进的深度估计和深度完成方法直接估计镜子深度值;ii)提出一种简单的架构,将MaskRCNN [14]模块和PlaneRCNN [23]模块相结合,以分割镜子表面,估计镜子3D平面并细化镜子表面深度估计。总的来说,我们做出了以下贡献:• 介绍了从单视图RGB和RGBD数据• 为三个RGBD数据集(Matterport3D、NYUv2和ScanNet)• 建立基于RGB和RGBD的3D镜面预测基准,并评估任务的深度• 目前的ARM3DNet,一种预测3D镜像法线和镜像分割的架构,以改进原始传感器深度或最先进的深度完成和估计方法的输出2. 相关工作我们总结了镜像检测,三维平面估计,深度估计和完成的相关工作。镜像检测和校正。在3D重建和机器人技术中处理反射和透明表面的挑战早已被认识到。Yang和Wang [37]提出了一种传感器融合技术,用于处理镜子和玻璃表面上的LiDAR传感器故障。K? shammer和N?chter[16]使用已知的镜子尺寸检测镜子并基于几何学校正激光扫描的点云镜面的一般问题通过对反射计的研究来解决重建问题早期工作集中于立体图像设置[2]、主动照明硬件设置[3]或单个图像输入,但依赖于检测参考目标对象的反射对应性[24]。近年来,人们对识别镜子、玻璃和透明物体重新产生了兴趣,以改善重建[34]和机器人操作[33]。Whelan等人[34]依靠观察附着在定制扫描仪上的AprilTag [27]的反射。使用深度学习对不受控制的RGB图像进行镜像检测的工作较少探索,最近有一些工作。Yang等人[38]介绍了一个网络和数据集,用于识别2D图像中的镜子,Lin等人。[21]通过提取镜像上下文特征来改进镜像检测,扩展了早期相比之下,我们研究了RGBD数据集中的3D镜像平面估计,而不依赖于自定义硬件或捕获设置上的其他假设。3D平面检测和平面重建。最近的工作是使用神经网络从单视图图像中检测3D平面[22,23,36,40]。与这项工作不同的是,我们的重点不是创建一个平面分割的整个观察到的场景。我们专注于识别镜像区域和相应的3D平面。识别RGB图像中的镜子是具有挑战性的,因为镜子包含环境的反射,其可能难以与非反射区域区分开。即使使用RGBD数据,镜像检测仍然具有挑战性,因为镜像深度值往往有噪声且不可靠。深度估计和深度完成。 深度估计和完井是最近流行的任务。典型地,当输入信号被输入到一个或多个处理器时,只有颜色(RGB),没有深度信息。当输入是RGBD时,使用术语深度补全,其中D(深度)通道有噪声,并且可能有缺失值。现有的单视图深度估计方法[1,4,9,10,18-[15,26,28,31,41]改进了整个图像的深度预测,依赖于重建的3D网格数据,该数据被假设为提供准确的深度。Chabra等人。[5]表明,用于反射表面等噪声区域的排除掩模可以导致更好的重建。我们利用3D镜像平面估计来提高现有深度估计和完成方法的准确性此外,我们注意到,深度估计和完成方法通常都是在地面实况数据上进行评估的,该地面实况数据不考虑由于镜子和玻璃引起的噪声。广泛使用的数据集(如NYUv2[32] 、 Matterport3D[6 , 41] 、 ScanNet [7] 和SUN3D [12,35])具有反射器的噪声或缺失深度(见图1)。因此,这些区域通常被忽略或以不正确的值作为基础事实进行评估。我们为三个RGBD数据集贡献了地面真实3D镜像注释,允许对镜像表面深度估计和完成进行正确的基准标记。15992镜像图像分类镜像遮罩标注镜像平面标注初始列车组重新训镜遮罩多边形注记RGB图像平面细化验证......按分类器得分排序的图像镜面掩模.........没有镜子镜面分级机RANSAC初始化图2:我们的人在回路镜像遮罩和3D平面注释工作流程。我们利用迭代训练的镜像分类器来帮助用户快速选择输入图像数据集中的所有镜像然后用镜面多边形遮罩对图像进行掩模及其对应的深度图像用于利用RANSAC方法初始化镜像平面估计。然后,用户细化并验证所有3D镜像平面估计。3. 三维数据集为了实现3D镜像平面预测和表面深度估计的基准测试,我们创建了RGBD 3D:RGBD图像镜像注释的第一个大规模数据集。我们设计了一个人在环工作流程,使高效的迭代注释的镜子面具和镜子3D平面。使用 此 工 作 流 程 , 我 们 在 三 个 常 见 RGBD 数 据 集(NYUv2 [32],Matterport3D [6]和ScanNet [7])中注释包含镜像的RGBD图像,以创建包含5,894个RGBD帧中的7,011个注释的3D镜像平面的聚合数据集3.1. 数据集构建我们的注释工作流程包括三个阶段:i)镜像图像分类,ii)镜像掩模注释,iii)镜像平面注释。图2显示了整个管道。我们首先在Structured 3D [ 42 ]的包含镜子,总共大约7,000个图像)。然后,我们通过使用镜像分类得分对所有输入RGBD数据集候选帧进行排序。注释器确认图像是否包含镜像,将它们分成当该验证通过每个批次进行时,分类器在新注释的“镜像”和“无镜像”图像的数据集上进行微调从单个100个图像批次添加图像。 安-记录员被指示停止寻找额外的镜像如果批处理中包含的镜像少于5%,则会出现镜像。第一阶段由一个注释器执行,总共花费了大约28个小时,超过8个批量迭代。在第二阶段,我们使用了CVAT1注释,面来定义所有镜像的镜像遮罩多边形。注释器指定了两种类型的镜像遮罩多边形:“粗糙”遮罩和“详细”遮罩。 粗第1github.com/openvinotoolkit/cvatMatterport3DScanNetNYUv2总镜平面四千六百六十二2,218131七千零一十一RGBD图像三千七百八十二一千九百八十七125五千八百九十四RGBD阿马斯二千四百六十八––二千四百六十八3D场景7928296457表1:我们的3D数据集的汇总统计数据。掩模忽略遮挡对象和小的镜面突出,而细节掩模是每个图像中可见镜面的像素精确边界。这一阶段由四名注释员在大约67小时内完成。最后一个阶段使用Open3D [43]开发的3D接口,该接口允许检查通过使用RANSAC [11]过滤反射镜掩模边界深度值获得的初始3D反射镜平面法线估计注释器可以检查平面是否正确,通过在点云上指定三个平面点并手动调整来细化3D平面在3D平面被注释后,我们从正面和自上而下的视图中生成了带有注释平面的点云的转盘视频,以进行快速验证。识别为不正确的平面被进一步调整和纠正。这最后一个阶段总共花了大约50个小时的注释工作,由同一个前,执行第一阶段的专业注释者。注释人员总共检查了大约30,000个RGBD图像,以获得最终的7,011个3D镜像平面注释。镜像分类阶段平均每个图像花费3s对于粗略掩模和详细掩模,每个镜像实例的镜像掩模注释阶段分别花费25s和57s。最后,镜像平面注释阶段平均每个镜像实例需要203.2. 数据集统计数据在注释的最后,我们总共得到7,011镜像3D平面和实例遮罩注释15993来自所有三个源数据集的RGBD图像表1显示了数据集统计数据的更详细分类。我们按照每个源数据集的标准训练、验证和测试拆分来拆分这些数据 我们注意到在roughy 22中发现了镜子。9%的Matterport3D场景( 来 自 90 个 Matterport3D 住 宅 中 的 79 个 ) 和 464 个NYUv2场景中的96个(20%),与大约1500个ScanNet场 景 中 的 282 个 ( 18. 8% ) 。 我 们 假 设 这 是 由 于ScanNet作者采用的捕获设置和方法,他们可能避免了扫描包含镜子的场景区域。补充提供了一些额外的分析注释数据方面的镜像区域位置,突出和分布的图像。4. 3DNet:优化镜像深度在构建了我们的3D镜面注释数据集之后,我们现在想要解决从单视图RGB或RGB-D图像预测3D镜面的任务因为镜子通常是平面的,所以我们做一个简化的假设,即我们可以使用镜子掩模和镜子平面来模拟镜子。我们将表明,我们可以使用预测的3D区域和平面来改进来自仅RGB图像输入的深度估计或来自RGBD图像的深度完成结果因此,我们的方法的输入是RGB图像或RGBD图像,其中缺少或不正确的镜子深度。输出是一个估计的3D镜面和一个RGBD图像与细化深度的镜子。我们的目标不是提出一种新的深度估计或深度完成方法,而是对这两种方法进行基准测试,并证明我们可以利用一个简单的镜像感知架构来提高这两种方法的深度输出为此,我们提出了一种E3DNet架构(参见图 3 ) 。 该 架 构 使 用 Mask R-CNN [14] 模 块 和 受PlaneRCNN [23]启发的3D可以首先使用深度估计或完成模块来预测给定输入RGB或RGBD图像的深度值,并且然后应用3DNet来预测镜像掩模和镜像平面。我们评估这种架构因此,整体架构由三个模块组成:镜像掩模分割、镜像平面估计和深度估计或完成。PlaneRCNN使用扭曲损失来加强来自附近视点的重建3D平面的一致性。我们的问题设置仅假设单个图像输入,因此我们用镜像平面估计模块替换翘曲损失模块,该模块细化镜像区域上的深度。4.1. 镜像掩模和平面预测在架构的这一部分中,我们解决了镜面的检测和分割。为此,我们采用了镜像分类(MC)分支和镜像边界框回归(MR)分支,以及实例分割(Seg)分支,所有这些都基于Mask R-CNN模块。我们还在ROI池化层之后添加锚正态分类(AC)分支和锚正态回归(AR)分支来预测镜像平面法线。由于直接回归镜像正常值具有挑战性,因此后两个分支遵循类似于PlaneRCNN的方法,并将回归分解为分类阶段和残差预测阶段。在分类阶段,我们获得了一个粗略的方向的镜像正常分类到一个少数锚正常方向使用AC分支。 我们用10毫米-来自所有镜像注释的Matterport3D训练集中的法线。在训练过程中,该模块为每个积极的建议预测一个锚正常。对于监督,我们将每个镜像实例分配给其最近的镜像锚法线。给定锚正态分类,然后使用AR分支回归残差以形成最终的法向量。最终的法线n是锚法线和法线残差的和。实例的地面实况镜像残差是地面实况镜像与地面实况镜像锚法线之间的距离向量。4.2. 深度估计和完成如图3所示,我们的网络架构容纳了一个深度估计或完成模块。这部分的细节取决于输入类型。也就是说,无论我们采用RGB 图像还是包含噪声深度的RGBD数据。如果输入是RGB图像,我们首先使用深度估计模块来产生初始深度图估计。然后,其余的3D架构将深度图细化为Dpred。如果输入是具有噪声深度图D噪声的RGBD图像,则我们直接将其向前推进以通过架构进行细化。为了估计3D镜像平面,我们需要将来自前一阶段的镜像掩模和镜像法线估计与平面的深度偏移d由于镜子表面本身的深度值缺失或不可靠,我们依赖于镜子边界区域,这些区域通常是非反射材料并且显著更可靠。因此,我们计算落在镜子掩模边界的小偏移内的像素上的点的平均深度给定预测的镜像分割掩码,我们通过向外扩展50个像素来创建镜像边界掩码区域。该阈值对应于平均图像尺寸的大约9%,并且我们根据经验发现它是合理的。然后,我们将该镜像掩模中所有点的平均深度作为镜像平面d的偏移。15994数据初始化RGBD输入仅RGB输入+或+输入深度完成模块噪声深度(可选)深度估计模块+D预测值 /D噪声我我我我我我我我输入图像三维模块镜像边框3DNet细化深度偏移d初始深度发生器图3:显示了如何将P2P 3DNet架构用于RGB图像或RGBD图像输入的整体图。对于RGB输入,我们细化由深度估计模块输出的预测深度图Dpred的深度。对于RGBD输入,我们细化噪声输入深度D_noisy。3DNet模块预测镜像法线n和镜像遮罩。然后,通过基于反射镜边界处的深度值计算偏移深度d,我们可以确定3D反射镜平面的位置和取向,并产生改进反射镜表面深度精度的精细输出深度值在三种类型的损失项下训练RSD3DNet模块:i)镜像分割损失,ii)镜像锚正态分类损失,以及iii)镜像锚正态回归损失。在镜像分割中,我们使用交叉熵损失进行镜像分类和镜像掩模预测.我们使用一个平滑的L1损失的镜像包围盒回归,和一个交叉熵损失的镜像锚正常分类。对于镜像锚正态回归,我们使用平滑L1损失。总损失L则为:L= CE(ai,ai)+SmoothL1(ri,ri)5. 实验5.1. 数据集我们对NYUv2和Matterport3D数据集进行了定量和定性评估。为了显示准确的镜像深度的重要性,我们对原始的“原始深度”地面实况深度和我们注释的镜像深度进行评估因此,我们在实验中使用以下深度数据集:NYUv2-raw:的 1449评论 RGBD 帧从我我+CE(ci,c)+SmoothL1(bi,b)+CE(mi,m)其中,ai和ai是预测的和真实的镜像锚点正常类,ri和ri是1×3预测的镜像回归向量和真实的镜像回归向量,ci和ci是预测的镜像建议类和真实的建议类,bi和bi是预测的和真实的镜像边界框参数,mi和m是预测的和真实的镜像掩码。4.3. 实现细节我们在PyTorch中实现了我们的网络架构[29]。我们使用Adam [17]优化器,初始学习率设置为10−4,β1= 0。9,β2= 0。第999章没有重量RestNet-50 [13]的主干是用ImageNet [8]上预训练的权重初始化的我们训练模型,50,000次迭代,批量大小为32。我们只监控地面实况深度小于10米的NYUv 2(795帧序列和654帧测试),上限-使用Kinect深度传感器拍摄,缺少镜面上的数据。NYUv 2-ref:NYUv 2-raw的修正版本,使用我们的3D镜像平面注释计算镜像表面深度。MP 3D-mesh:从Matterport 3D重建的网格渲染的深度,如Zhang和Funkhouser [41]所使用的。MP 3D-mesh-ref:使用我们的3D镜像平面注释的上述修正版本。5.2. 评估指标在这里,我们定义了用于测量反射镜掩模和平面预测以及深度估计和完成精度的度量。深度估计和完成。我们遵循Zhang和Funkhouser [41]的评估方案,并执行-convRPN RoISegBRMCARACn镜面掩模15995p∈P∗∗∗多项式均方根误差(RMSE)、相对误差(Rel)和δi。δi度量表示预测像素的百分比,其中相对误差小于阈值i。具体地,i被选择为等于1。05,1。十,一。二十五,一。252和1。253.这里,i越大,δi度量越敏感。δi值越大,预测越准确。由于深度估计方法在预测深度值时通常受到尺寸距离模糊性的限制,因此我们还计算了Eigen等人[9]引入的尺度不变均方根误差(s-RMSE)。主要论文报告了这些指标的一个子集,在补充中找到了更完整的结果。Seg-AP↑ AC-AP↑ AR-L2↓ AngErr↓3DNet(我们的)0.271 0.0720.159 9.10[23]2016年08月07日0.19411.2表2:镜掩模分割和镜正态预测的评估。PlaneRCNN[23]基线是在NYUv 2-ref数据集上训练的。我们观察到我们的Mir-ror 3DNet模块改进了掩模分割和正常估计指标。均方根误差:.Σ1个/|P|D其中D(p)和D(p)是点p处的深度和地面实况深度。s-RMSE:.Σ1个/|P|D其中s是Σ最小平方根1/nΣ∗(D− sD)2.Rel:1/|P||D (p)−D(p)|联系我们p∈PD(p)。SSIM:结构相似性指数,,(2μD<$(p)μD(p)+c1,),(2σD<$(p)D(p)+c2),其中我们有一个表3:对于包含镜子的图像,对NYUv 2-ref数据集的深度预测评估2∗D(p)2D(p)+c12∗D(p)2D(p)+C2设c1= 0。0001,c2= 0. 0009。δi:误差范围i内的像素百分比,其中误差范围由max(D(p)/D(p),D(p)/D(p))
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功