APP下载

激光与视觉融合的透视平面检测与深度预测研究

2021-12-01赵宇琦连晓峰王宇龙田梓薇徐晨星

计算机测量与控制 2021年11期
关键词:像素点平面深度

赵宇琦,连晓峰,王宇龙,田梓薇,徐晨星

(1.北京工商大学 人工智能学院,北京 100048;2.中国兵器工业信息中心,北京 100089)

0 引言

透视平面通常具有广泛的实用和装饰用途,由于其透光无色的特性,通常是一种非晶态的无定形的固体,其透光无色的特性会对现有的计算机视觉系统与激光传感器系统造成严重的干扰(如深度预测[1]和激光测距[2]):视觉传感器及其算法无法分辨透视平面,且由于视觉传感器提供的图像只有二维的信息,所以通常会误判透视平面后的信息;又由于透视平面通常为无色透光平面,会对激光传感器测量的距离信息造成严重影响,使其接收错误的深度信息。通过以上影响进一步干扰机器人导航和无人机跟踪等系统的运行。为了解决这一问题,系统必须能够从输入的数据中检测透视平面。

现有的方法通常采取语义分割应对这一问题,语义分割旨在将给定图像分割并解析为不同语义类别的不同区域。近来,受益于深度神经网络的进步,在语义分割这一方面已经取得了较大的进展;一些小型透视制品如杯子等,由于拥有相对固定的形状可以用现有的方法很好的检测出来,如RCNN[3](Regions with CNN features)、YOLO[4](You only look once)、RetinaNet[5]等算法。RCNN通过生成类别独立的建议区域,为感知器提供候选区域从而提高性能;YOLO算法采用回归的方法,对整张图进行预测,学习更为通用的图像特征;RetinaNet通过提出其改造后的损失函数,提高了算法的速度与精度。然而由于透视平面不具有固定的形状,任何场景都有可能出现在透视平面的区域内,并且这些场景通常与透视平面周围的场景具有一定的相似性,这使得对透视平面的检测与深度预测从根本上不同于其他常见物体。现有的物体检测方法不适用于透视平面检测,因为不是所有透视区域都具有明确可识别的边界这使得如HED[6](Holistically-nested edge detection)、RCF[7](Richer convolutional features)、Basnet[8](Boundary-aware salient network)等算法不能很好的得到应用。此外,有些镜像分割方法通过检测镜像边界处的内容不连续性来分割镜像,如Mask RCNN[9],R3Net[10](Recurrent residual refinement network)、Picanet[11](Pixel-wise contextual attention network)等。然而这并不适用于透视检测,因为透视后面的场景是真实场景的一部分,这使得透视边界处的不连续性非常微弱,同时也加大了透视平面检测的难度。深度预测算法旨在从二维的图像中得到深度信息,而基于单目视觉传感器的深度预测算法难以得到准确的深度信息(如Monodepth[12]等算法),基于多个传感器的深度预测算法也会忽视透视平面的存在(如SFM[13](Structure from motion)、Depth-VO-Feat[14]等算法),这说明预测透视平面本身的深度是一个被忽视的问题,同时也证明了问题的难度。

为了解决透视平面的检测与深度预测这一问题,首先采用透视平面检测网络[15]独有的广域上下文特征融合模块,同时提取高级特征与低级特征,从而达到模仿人类对透视平面的辨别方式,进而检测图像输入中的透视平面,其次采用MegaDepth[16]方法进行相对深度预测,MegaDepth算法通过叠加多个沙漏模块,不断地对图像进行卷积提取高阶特征,然后结合单一图像反射去除[17](single image reflection removal——SIRR)算法,分离透视平面的背景,屏蔽背景信息对深度预测的干扰,进而对图像进行相对深度预测,最后结合激光传感器提供的深度信息,记录多个像素点在相对深度预测图中的灰度及深度信息,并以灰度值为横轴深度值为纵轴,应用随机抽样一致性算法[18](random sample consensus——RANSAC)对所得点集进行直线拟合,得到“灰度-深度”的标尺,并通过标尺完成对透视平面深度信息的预测。

1 透视平面检测网络

透视平面检测网络是一种专门针对检测透视平面的人物设计的深度神经网络,这种网络通过模仿人类对高级语义特征(例如,不同对象之间的关系)与颜色纹理等低级特征(例如,透视平面内部和外部之间的色差,反射导致的模糊、斑点、重影等)的辨识设计了广域上下文特征融合模块,以检测不同尺寸的透视平面,这种模块可以从较大的范围内,提取丰富的上下文特征以进行上下文推理和透视平面的定位。广域上下文特征融合模块基础结构图如图1所示。

图1 广域上下文特征融合模块基础结构图

其中:BN(batch normalization)代表归一化,ReLU(rectified linear unit)为线性整流函数,conv为卷积运算。广域上下文特征融合模块旨在提取大量广域特征信息,以进行上下文推断和定位透视平面。该模块使用空间可分离卷积来实现此目标:

(1)

(2)

其中:FG表示集成的广域上下文特征,conv2表示大小为3×3的卷积核,Fl为:

(3)

Fin代表广域上下文特征融合模块的输入特征。将4个该基础模块并联,并将4个基础模块输出的特征进行串联融合,即可构成完整的广域上下文特征融合模块。透视平面检测网络的流程如图2所示。

图2 透视平面检测网络算法框图

对于单个RGB图像,首先用经过预训练的ResNeXt101[19]网络对图像提取特征,以得到不同级别的特征,然后将这些特征的最后3个特征层分别输入到一个广域上下文特征融合模块,并将输出融合生成高级广域上下文特征,剩下的特征层导入另一个广域上下文特征融合模块中提取出低级特征,这些低级特征将引导算法把注意力[20]放在更多的集中在图像中的透视平面上,从而进行图像分割。

2 相对深度预测

现有的深度预测算法大多数基于双目视觉得到的视差图计算深度,或由同一个视觉传感器前后帧的时间关系以及像素点的匹配关系进行估算,而深度学习算法使用的训练集也都没有特意针对透视平面进行标注,这使得深度预测的算法在直接对含有透视平面的图像进行深度预测时,算法会将透视平面后的背景当做实景进行预测,导致预测结果错误。这种错误对于机器人、无人机等移动平台来说是致命的。

图3 错误的深度预测

为了解决这一问题,采用MegaDepth算法对图像进行深度估计。首先加入单一图像反射去除算法,用于该算法采用全卷积神经网络,经过训练后能可将透视平面后的实景与透视平面中的镜像分离,并屏蔽镜像,防止其对深度预测造成影响。但该算法直接应用在包含透视平面的图像中时,透视平面以外区域的特征信息可能会遭到抹除或模糊。

如图4所示,左图为未经SIRR算法处理的原图,可以看到,表示区域中的纹理信息是完好的,右图是经过SIRR算法整图运算后的算法,可以看到标识区域内的纹理信息在应用SIRR算法后,地板及墙面的纹理信息被模糊甚至抹除。所以首先对图像进行透视平面检测,得出透视平面所在区域,然后只对透视平面检测网络分割出的透视平面区域应用SIRR算法并屏蔽镜像。这样做可以避免纹理信息错误导致的特征提取信息的错误影响预测结果的问题。然后应用MegaDepth算法对处理后的图像进行深度预测。相对深度预测算法网络结构如图5所示。

图4 应用算法后部分纹理信息被模糊

图5 相对深度预测网络示意图

如图6所示,Conv代表卷积层,Res代表残差块,Max pool是降采样模块。由于较低的分辨率更能提取出图像的高阶特征,便于网络进行预测,所以将输入图像经由7×7的卷积层运算后,再经过一个残差块与降采样层使图像分辨率下降,使网络能更好的提取图像的特征,然后经过7个沙漏模块运算输出预测的相对深度结果。沙漏模块的结构如图6所示。

图6 沙漏模块

Max pool代表下采样,Res代表残差块,Up sample代表上采样模块。沙漏模块的上中两路都包含残差模块,能逐步提取更深层的图像特征。整个相对深度预测网络中堆叠了很多沙漏模块,这使得网络可以不断地重复的进行高阶特征的提取与预测,从而得到更精确的预测图。在得到相对深度预测图后,加入透视平面检测网络所得的分割结果,对透视平面区域进行处理,由透视平面的边界值对整个透视平面进行平面拟合得到透视平面的相对深度值。

3 透视平面深度预测

目前由深度学习算法对单目图像进行深度预测的算法中,均需要带有深度图的标定后的数据集作为训练样本,才能获得测试图像的深度图,且在包含透视平面的图像中,对深度的预测结果均不准确。MegaDepth算法的不同之处在于,其大部分图像来自互联网,泛用性很强,且对于这部分数据集的构建只需要标出图像中最近和最远的两点即可进行训练和预测,获得相对深度图。再结合深度标尺就可以完成对于透视平面的深度获取任务。

MegaDepth算法对于物体边缘的深度值估计准确程度不高,所以尽可能选取位于物体平面上的点进行深度赋值获取深度信息。在相对深度图中,随机抽选n个像素点,记录其灰度值,并结合激光传感器所提供的深度信息获取像素点对应的深度值。像素点深度值的获取方法为,以像素点为中心,l像素为边长框选邻域,计算所框选邻域中所有深度信息的平均值,所得值即为当前像素点的深度值,对于深度值丢失的像素点不计入平均值总数中,同时默认透视平面中的所有像素点深度值均有误差,不计入平均值样本中。其计算方法如式(4)所示。

(4)

其中:D代表深度值,p为随机选取的像素点,p*代表p点邻域内的像素点,x,y为p点坐标,α为邻域内拥有深度信息的像素点数量。

位于物体边界处的像素点,计算后会得到错误的深度信息,因为以边界处像素点为中心框选的邻域内,通常会包含非该像素点所在平面的其他深度信息,在求取平均值后会得出错误的深度信息。所以为了避免在这种情况,引入ORB(Oriented FAST and rotated BRIEF)特征提取[21]算法中的FAST角点检测算法[22], FAST算法可以通过像素点周围距离为3的16个像素快速判断待测点是否为角点或边界点,通过对比待测点与周围点的灰度差值来进行分类,若连续有9个点为同一类型,则确定次像素点位于物体边界处,并将此点删除。

利用FAST算法排除上述选取的n个像素点中的边界像素点,从而提高预测精度。判断方法如式(5)所示。

(5)

In为p点周围点的灰度值,Ip为p点的灰度值,t为判断阈值。当Fpn为F时,排除该像素点。

然后再从激光传感器提供的深度信息中,随机选取m个像素点(像素点同样不位于透视平面上),记录像素点本身提供的深度信息与对应的相对深度图中像素块的灰度值。将所记录的m+n个像素点的数据平铺于以灰度值为x轴,深度值为y轴平面坐标系中。并应用RANSAC算法对所得坐标点集进行直线拟合,RANSAC算法通过对离散的点集进行迭代估计其数学模型,并且能排除误差点的干扰,适合对上述记录的可能存在误差点的点集进行直线拟合得到合理的预测线。将其预测的直线作为灰度值与深度值对应的“灰度-深度”标尺,以此深度标尺对透视平面进行深度赋值,来完成对透视平面的深度预测。

4 实验结果与分析

实验平台CPU为i7-6700HQ,内存为8 GB,实验数据集为TUM数据集[23]。首先在数据集中挑选包含透视平面的图像,并确认图像分辨率并进行透视平面的标定,然后将所得数据的70%进行训练30%进行测试。先进行透视平面的分割实验,并与对比算法进行比较。其次分别进行改进MegaDepth与原算法的实验,并进行对比。最后计算深度标尺,完成透视平面深度预测实验。

4.1 透视平面分割实验

实验采用可对镜子进行分割的MirrorNet[24]与经典的Mask RCNN算法进行对比,将输入图像分别使用3种算法进行图像分割。

由图7可看出,由Mask RCNN算法对透视平面进行预测时,不能完成对透视平面的图像分割,其基本没有识别到透视平面。由于MirrorNet算法是用于对镜子平面进行目标平面检测的算法,与对透视平面进行分割具有一定的相似度,因此MirrorNet在对透视平面的平面检测上仍能有一定的精确度基本覆盖了透视平面所在区域,但仍然有未被识别的区域,效果远不如透视平面检测网络。透视平面检测网络通过大范围的学习上下文高级特征与低级纹理特征成功的检测到了整个透视平面,远优于其他两个算法。

图7 不同算法对透视平面检测的结果

4.2 相对深度预测实验

在相对深度预测的实验中,将改进算法与原MegaDepth算法进行对比,以证明改进的有效性。原算法直接对输入图像进行预测,改进算法在对透视平面区域进行背景分割并屏蔽后,再进行深度预测。结果如图8所示。

图8 相对深度预测结果

从图8(b)可以明显的看出,原算法忽略了透视平面,对透视平面的背景进行了深度预测,而加入了SIRR算法及透视平面检测网络后的改进MegaDepth算法修正了这个错误,对透视平面本身进行相对深度预测,得到了图像相对深度图。

相对深度图中只个像素的相对深度值,不能得到各像素点的绝对深度值,所以还需要使用深度标尺对相对深度图进行赋值。

4.3 透视平面深度预测实验

在该组实验中,首先统计对改进MegaDepth算法所得预测图进行深度赋值并与激光传感器提供的深度图进行比较,随机抽选像素点个数n和m均为300,邻域边长l为20个像素,FAST算法判断阈值t为7。首先随机选取像素点,并记录深度值与相对深度图上的灰度值,然后将像素点平铺于横轴为灰度值,纵轴为深度值的在坐标系内,使用RANSAC算法进行直线拟合,得到深度标尺,并使用深度标尺复原透视平面的深度值。实验结果如图9所示。

图9 透视平面深度预测结果

(其中(a)为输入图像(b)为激光传感器提供的深度图(c)为对改进MegaDepth赋值结果)

可以明显的看出,在输入图像(图9(a))显示的透视平面所在区域,激光传感器获得了错误的深度信息,这是由于透视平面的折射使得传感器不能正确接收信息,其所获得的部分深度信息为透视平面背景的深度信息。使用深度标尺对相对深度图赋值后,成功的修正了这一点(图9(c)所示),成功获得了整个透视平面的深度信息。

5 结束语

为了检测透视平面并获取透视平面本身的绝对深度信息,提出了一种融合激光传感器与视觉传感器信息的算法,算法能成功对图像中的透视平面进行平面检测,并在MegaDepth算法的基础上加入SIRR算法,结合透视平面检测网络成功的预测了透视平面本身的相对深度信息,最后应用ORB特征提取算法与RANSAC算法建立了深度标尺,成功获取了透视平面本身的绝对深度信息。并在大量含有透视平面场景的TUM数据集进行试验验证。实验结果表明,激光与视觉融合的平面检测与深度预测算法,能成功检测到透视平面并能获取其绝对深度信息,对解决实际问题具有一定的应用价值。

猜你喜欢

像素点平面深度
四增四减 深度推进
深度思考之不等式
立体几何基础训练A卷参考答案
立体几何强化训练B卷参考答案
简约教学 深度学习
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
参考答案
平面和立体等