基于深度学习图像特征匹配的双目测距方法

2022-03-25 04:45尧,张
软件导刊 2022年3期
关键词:描述符双目检测器

姚 尧,张 生

(上海理工大学光电信息与计算机工程学院,上海 200093)

0 引言

随着计算机视觉技术的飞速发展,双目视觉系统成为一大研究热点,在机器人视觉、军事技术、三维重建等领域发挥着重要作用[1]。基于超声波、雷达、红外等技术的测距方法很早就应用在移动机器人领域中,与这些主动测距技术相比,双目视觉测距具有成本低、鲁棒性强、抗干扰性能强的优点。

双目测距的原理是基于物体在双目相机左右成像平面上的视差,通过相似三角形原理计算物体的真实深度。因此,对物体在左右相机成像平面的投影进行正确匹配是双目测距系统精度的重要保证。目前,传统的双目图像匹配技术包括基于全局特征匹配的GC(Garbage Collection)算法、基于半全局匹配的SGBM(Semi-global Block Matching)算 法[2]、基于局部特征的SIFT(Scale-invariant Feature Transform)算 法[3]、SURF(Speeded Up Robust Features)算法[4]以及ORB(Oriented FAST and Rotated BRIEF)算法[5]。虽然全局与半全局匹配算法能构建出完整的视差图像,但运行速度较慢且精度较差。基于局部特征的ORB 算法运行快,但提取特征点匹配性能较差,存在大量误匹配现象。

近年来,深度学习方法因其对深层特征有优越的学习和表达能力而被广泛应用于计算机视觉的各个领域。例如,基于卷积神经网络(Convolutional Neural Network,CNN)的图像处理方法已经在图像匹配领域崭露头角并取得了成效。深度学习在图像匹配中最合理的应用便是直接从包含相同或相似结构内容的图像对中学习到像素级别的匹配关系,其主要形式是以深度学习的方法替换传统匹配算法中的一个或多个环节,或直接设计一个端到端的匹配网络,从图像中学习每个特征点的主要方向、尺度以及更具有匹配能力的描述符,代表方法包 括LIFT[6]、UCN[7]、LF-Net[8]、R2D2[9]、Superpoint[10]等。

针对双目图像的特征匹配,本文提出一种自监督学习的图像特征提取网络模型,该模型由一个编码层与两个解码层构成。从双目相机获得的两张图像分别进入模型提取特征点,随后根据特征点的描述符进行匹配并计算视差,进而获得目标深度。实验结果表明,本文提出的特征提取网络具有良好性能,在双目测距实验中精度较高。

1 相关研究

目前,基于深度学习的图像特征匹配方法已经逐渐取代传统方法。例如,Detone 等[10]基于全卷积神经网络建立了Superpoint 模型,主要功能为提取图像的特征点并获得对应的特征点描述符。该模型的训练分为两个部分,第一部分是采用监督学习方法在一个几何模型数据集中训练特征点检测器;第二部分是采用预训练完的检测器对训练集进行标注,获得伪真值点标签,再以自监督方法训练检测器并同时学习描述符;Truong 等[11]提出一种采用单应性变化方法训练的特征点检测器GLAMpoint,运用非极大值抑制方法提取图形特征点,并结合SURF的描述符实现了特征点匹配功能;Jakab 等[12]提出一种自监督学习的特征点检测器,利用图像生成的方法获得同一物体不同视角或不同相机位姿的图片对,分别输入神经网络提取特征并计算损失;宋超群等[13]对ORB 算法进行了改进,在测量阶段采用二维二次函数拟合的方法获得特征点的亚像素坐标,通过三角测量原理获得对应特征点的空间三维坐标,从而得到被测物体的尺寸;杨洁等[14]对SURF 算法进行了优化,运用FLANN 算法与PROSAC 算法进行匹配与去误,再应用于目标测距系统中。上述研究中均是改进的传统匹配方法,虽然运行速度较快,但提取特征点质量不高、测距精度较低。在立体匹配领域,Godard 等[15]提出的AnyNet 网络利用U-net 特征提取4 个尺寸的特征图,可直接通过网络输出图像的视差图,不过该类方法往往需要耗费较长的运行时间才能获取可靠的深度数据。

基于以上分析,双目测距特征匹配方法需要具备检测性能强、特征点覆盖全面、特征点匹配可靠、运行速度适宜等特性。受Superpoint 启发,本文网络模型也选用类似的自监督学习方法,不过训练过程比Superpoint 简化许多,去除了预训练和对训练集进行标注两个步骤,模型直接采用真实图像进行训练。

2 自监督学习的图像特征提取网络

2.1 网络模型

本文建立的图像特征提取网络包括一个共享的类VGG 卷积网络编码层[16]与两个解码层,分别为特征点检测器解码层和描述符解码层。参考Superpoint的网络模型结构,保留了编码层与描述符的部分,对激活函数进行了改进,检测器解码层、训练过程与损失函数亦不相同。整体网络框架如图1 所示。

2.1.1 编码层

使用一个类VGG的卷积骨干网络作为编码器,作用是使图片降维,便于提取特征。编码层包括卷积网络层、池化层与非线性激活函数。编码层使用3 个最大池化(maxpooling)层,使原图片的尺寸H×W变为Hc=H/8 和Wc=W/8。激活函数选用leaky ReLU[17]的激活函数。

Fig.1 Architecture of the feature extraction network图1 特征提取网络框架

2.1.2 特征点检测器解码层

特征点检测器解码层对共享的特征图进行两层卷积操作,将特征图变为H/8 ×W/8 × 64。经过Softmax的操作使特征图取值介于0~1 之间,特征点取值接近于1 说明该位置是真实的特征点。然后经过维度变换,输出与原图像尺寸一致的特征点图,用于计算特征点检测层的损失函数。

2.1.3 描述符解码层

描述符解码层对描述符的特征图进行3 次插值上采样,再使用L2 范数将特征图取值规范为单位长度,输出H/8 ×W/8 × 256的稠密描述符,配合特征点检测器输出的特征图进行描述符的损失计算。

2.2 模型训练

模型的训练基于图片的单应性变换以及噪声添加进行。单应性变化即一个平面到另一个平面的映射关系,包括仿射变化、透视变换等。对原图I进行随机单应性变化得到Ih,再对两者计算损失函数,达到自监督学习的效果。损失函数表示为:

式中,λ1、λ2为权重参数,P、Ph为原图I和变换后Ih的特征图,D、Dh为两图的描述符,Ld、Lp分别为描述符及检测器的损失函数。经过变换后,对I和Ih增加随机噪声,包括高斯噪声、随机亮度变化、椒盐噪声、模糊处理,以增强模型性能。

特征点的训练原理来自于最大期望(Expectation Maximization,EM)算法,主要步骤如图2 所示。训练过程中需要对目标特征点进行以下处理:①在原图I中检测到点K,根据施加的单应性变换,将点K投射到Ih上,形成Kproj;②采用两种方式对经过变换的点Kproj与Ih上检测到的点Kh进行匹配,分别为2D 坐标和描述符,均采用最邻近匹配的方式形成两对匹配点集;③通过匹配好的点集形成目标点K′h,再根据单应性变换的逆变换投射到原图I形成K′,与K′h组成一对点集,用于计算损失函数。

Fig.2 Feature training procedures图2 特征点训练步骤

2.3 检测器损失函数

检测器部分的损失函数应用负对数似然的方法,表示为:

式中,P[K′]、Ph[K′h]分别表示I与Ih上检测到的特征点分布。

给定待训练的I与Ih两幅图片,通过以下步骤提取出真实特征点K′、K′h:

(1)通过两种不同的池化操作从图中提取出特征点集合K与Kh,分别表示为:

采用32×32、16×16 两种不同大小的区域选择特征点,可使特征点分布覆盖全图但不会过于稠密。图像经过池化操作返回特征点的坐标数组(xi,yi)。

(2)对K进行单应性变换,超出图像边界的点则被舍弃,Dproj、Dh为Kproj与Kh的描述符。

(3)在Ih上分别根据描述符和坐标关系进行匹配,表示为:

式中,matchgeom的作用是根据欧氏距离对Kproj和Kh进行最邻近匹配,返回匹配点之间的距离以及点的索引。idxdesc给出了Kproj在描述符上最匹配点的索引。

(4)Ih上可能的真实特征点坐标表示为:

从上式可以看出,可能的真实特征点K′h由Kproj与相匹配的Kh取均值获得,再对此进行单应性变换的逆变换,投射回原图上,获得K′。经过上述步骤后得到的K′、K′h用于计算损失函数式(2)。

2.4 描述符损失函数

描述符部分的损失函数包括两个部分,表示为:

Lwrong的作用恰好相反,目的是使错误匹配特征点描述符的相似度最小,表示为:

3 双目视觉原理

双目相机由放置在同一水平线上的两个单目相机组成,根据物体在左右成像平面上的像素差进行深度距离测量。图3 为双目相机测距模型,其中b 为双目相机的基线,f为相机焦距。假设物体的真实深度为z,距离左相机光学中心的距离为x,物体在左右相机成像平面上投影后的距离XL、XR 分别表示为:

获得XL、XR 后即可计算视差,进而计算深度,表示为:

式中,disp=XL-XR。通过式(13)即可得到物体与相机平面间的距离z。

Fig.3 Binocular camera ranging model图3 双目相机测距模型

4 实验方法与结果分析

4.1 特征提取网络实验搭建

使用PyTorch 框架搭建本文网络模型,训练时采用的优化算法为AdamW[18],学习率为0.000 5,数据集为MSCOCO[19]。将训练集转换为灰度图,图片大小缩放为256×256,同时将尺度变换、旋转变换和透视变换相结合,构成随机的单应性变换。实验硬件平台为Intel Core i7-8700 3.2GHz CPU,NVIDIA RTX 2080 GPU,操作系统为64 位Windows10。评价数据集为KITTI 双目数据集[20],包括stereo2012 和stereo2015 两部分。评价指标为重复性(Repeatability)和匹配度(Matching Score)。评价时需要设置正确匹配阈值ϵ,ϵ 越小表示对特征点是否匹配的判断越严格,本次实验将ϵ 设为1px。

4.2 特征提取网络评价

选取两个传统图像特征提取方法SIFT 和ORB,以及基于深度学习的Superpoint 算法,与本文模型进行性能比较,结果如图4(彩图扫OSID 码可见,下同)所示。

Fig.4 Matching result图4 匹配结果

通过重复性指标评价各模型在相同条件下图像特征提取结果的相似程度,结果如表1 所示。本文算法在重复性的表现上优于Superpoint,与SIFT 持平,但不及ORB 算法。原因可能是ORB 算法提取的特征点往往十分稀疏,但在提高可重复性的同时降低了挖掘特征点的能力,这点在图4 中可以看出。

使用匹配度评价各模型的特征点不变性和辨别力,结果如表2 所示。可以看出,本文算法的匹配性能优于其余3种算法,提取到的特征点十分可靠,具有良好的不变性,为后续计算视差与深度奠定了基础。

Table 1 Repeatability compaison of different methods表1 不同算法重复性比较

Table 2 Matching score comparison of different methods表2 不同算法匹配度比较

4.3 双目视觉测距实验搭建

双目视觉测距实验流程包括相机标定、图像预处理、特征匹配、计算视差等。实验选用的双目相机型号为HBV-1780-2,设备与实验环境如图5 所示,白色的点即为提取出的可用于计算视差的特征点。

Fig.5 Instrument and measuring environment图5 设备与实验环境

相机的标定至关重要,目的是建立相机的像素坐标与空间真实坐标之间的关系,确定相机内参(焦距、扭曲因子、主点位置)和外参(平移矩阵、旋转矩阵)。本文使用张正友标定法进行标定[21],标定板使用11×8的黑白棋盘格,单元格边长为15mm。使用MATLAB 完成相机标定,基线距离为117.645 2mm,其余参数如表3、表4 所示。

Table 3 Internal parameters of the binocular camera表3 双目相机内参

Table 4 External parameters of the binocular camera表4 双目相机外参

4.4 双目视觉测距算法评价

设计试验比较本文方法与其余两种方法的性能:方法一为基于优化SURF 特征点的深度测距法,采用FLANN 算法与PROSAC 算法对提取到的SURF 特征点进行去误;方法二为基于AnyNet的立体匹配网络。硬件环境准备完成后,在真实距离20~150cm的范围内,通过测量目标物体与相机间的距离,得到3 种方法的精度。其中,AnyNet 算法从生成的视差图中直接读取深度信息,本文方法和SURF 需要对匹配完成的特征点计算视差,并通过相机标定得到的参数将视差转换为真实深度值。表5 为3 种算法的测距精度比较。

Table 5 Measuring accuracy comparison表5 测距精度比较

从表5 可以看出,在20~150cm的范围内,本文方法的平均绝对误差为0.58%,SURF 为1.22%,AnyNet 为1.46%。实验过程中发现,在50cm 以内的距离,采用SURF 方法提取到的特征点数量较少,再经过一系列去误后导致可用于计算的特征点数量不足,误差较大。AnyNet 方法在近距离内的表现优秀,但随着测量距离增大,误差变化明显,在大于120cm的距离上已经无法满足测距要求。相比之下,本文特征提取网络能够提供稳定的特征点数量,且误匹配现象较少。结果表明,本文方法在双目测距中有较好的精度与鲁棒性。

5 结语

本文提出一种自监督学习的图像特征提取网络模型,并将其应用于双目视觉测距中。该模型以编码—解码的构造以及单应性变化的方式从图片集中学习特征点提取的功能,其在KITTI 数据集上的表现优于一些常用测距方法。同时,在双目测距实验中,本文方法具有较高的精度与鲁棒性,在20~150cm的范围内平均误差为0.58%。后续将考虑优化整个网络模型性能以提高训练效率,并在保证特征点匹配精度的同时减少网络参数量,以提高模型运行速度。

猜你喜欢
描述符双目检测器
基于结构信息的异源遥感图像局部特征描述符研究
基于AKAZE的BOLD掩码描述符的匹配算法的研究
基于双目测距的卡尔曼滤波船舶轨迹跟踪
Linux单线程并发服务器探索
车道微波车辆检测器的应用
利用CNN的无人机遥感影像特征描述符学习
基于双目视觉图像的长度测量方法
基于双目视觉的接触线几何参数测量方法
一体化火焰检测器常见故障分析
3种HPLC检测器测定单甘酯含量的方法比较