摘要:针对端到端深度特征提取网络的特征点数量与定位精度难以满足运动恢复结构(SFM)几何解算的问题,该文基于深度特征图的“一图两用”思想,提出联合可变形卷积与局部得分检测的端到端特征提取方法。首先,在特征图提取阶段,利用附加可变形卷积层的轻量级网络提取影像对的多尺度特征图,并在各个尺度进行特征图加权融合生成特征检测图。其次,在关键点检测与描述阶段,不再考虑特征检测图的通道极大值约束,仅由局部得分计算特征得分图,避免描述子向量的数值分布对特征点数量和定位精度的影响。最后,基于欧式距离准则及比值测试和交叉验证策略进行初始特征匹配,并结合核线约束优化匹配结果。利用多组地面近景影像和无人机影像进行特征匹配和SFM重建试验。结果表明,该文方法能够显著增加特征匹配和重建点数量,其增加比例分别达到了22.2%~41.7%和11.4%~37.7%。同时,SFM三维重建的重投影误差优于1.3像素。
引言
影像特征匹配是数字摄影测量与计算机视觉领域的经典研究问题,其目标是建立两张或多张重叠影像间的可靠特征匹配点[1-2],用于影像配准、视觉定位、三维重建等应用[1,3]。早期的特征匹配算法主要利用人工设计特征,实现关键点检测及其局部区域描述子生成,比如尺度不变特征变换(scale invariant feature transform, SIFT)[4]、加速鲁棒特征(speed-up robust feature, SURF)[5]和二进制特征(oriented FAST and rotated BRIEF,ORB)[6]等经典算法。由于具备尺度、旋转,以及一定的视角不变性,这类人工设计算法依然在研究和工程领域得到广泛关注。
近年来,以卷积神经网络(convolutional neural network, CNN)为代表的深度学习技术在影像处理领域得到了深入研究,也推动了影像匹配技术的快速发展。相比人工设计特征,深度学习网络模型利用其强表示学习能力,可获取丰富的特征信息,提升特征匹配性能。按照网络功能特点划分,现有网络模型可分为影像块特征描述网络和端到端特征检测与描述网络。由于不依赖手工关键点检测且能够抵抗强光照变化,端到端特征检测与描述网络是当前的研究热点。这类网络模型尝试如何从影像中提取更准确、可靠的特征点,同时学习特征点描述信息,生成具有更强的区分度和匹配能力的描述子。
端到端特征提取网络的目标在于实现联合关键点检测与描述子生成,提升特征对视角变化、光照差异、尺度等因素的影响,同时保证特征点的定位精度。早期代表性的端到端方法LIFT[16]采用同一模型完成特征点检测、主方向计算、特征描述子生成任务。SuperPoint[13]方法将特征点检测视为一种监督任务,通过人工生成的伪影像进行训练。D2-Net[14]网络创新地提出了使用同一网络实现同时特征检测描述。其主要特点是“一图两用”,即从输入图提取尺寸为W×H×D的特征图,这个特征图同时作为描述和检测结果:对于尺寸为W×H的特征图,每个像素点对应一个D维特征描述子;同时,D个特征图也可用于特征点检测。尽管对光照等变化具有较强的鲁棒性,D2-Net的特征点定位精度过低,导致其在运动恢复结构(structure from motion, SFM)三维重建的性能较差[7]。在D2-Net检测方法的基础上,R2D2[17]网络对特征点定位使用了重复性和可靠性约束,并为特征检测步骤设计了新的损失函数。其中,重复性得分筛选出特征明显且重复性高的特征;可靠性得分使描述符能正确匹配。同时,R2D2采用扩展卷积保持检测阶段的特征图分辨率。ASLFeat[18]网络在D2-Net和R2D2的基础上进一步改进,利用峰值测度来增强关键点检测,并使用网络内在层次结构进行多尺度检测,增加关键点定位精度。ASLFeatL利用可变形卷积(deformable convolution network, DCN)[19],增加描述子对局部几何变换的建模能力。然而,现有端到端特征提取网络依然存在检测的特征点数量少、定位精度不高的问题,导致在SFM应用中表现远差于传统方法。
针对上述问题,本文提出联合可变形卷积与局部得分检测的端到端特征提取方法。在特征图生成阶段,利用附加可变形卷积层的轻量级网络提取影像对的多尺度特征图,并通过各个尺度特征图加权融合生成特征检测图。在关键点检测与描述阶段,不再考虑特征检测图的通道极大值约束,仅由局部得分计算特征得分图,避免描述子向量的数值分布对特征点数量和定位精度的影响。利用多组地面近景影像和无人机影像进行试验,验证本文所提出方法的有效性及其在SFM三维重建中的性能。
1 本文方法
1.1 总体流程
本文提出的端到端特征提取和匹配方法流程如图1所示。对于待匹配的输入影像对,首先通过嵌入可变形卷积的轻量级网络进行特征提取,得到特征图;其次基于特征图的“一图两用”思想,分别生成得分图S和特征图D。然后从得分图S选择关键点,并根据特征图D插值得到对应的描述子。最后基于欧式距离最近原则进行描述子匹配和粗差剔除,得到最终的特征匹配结果。本文方法的核心在于特征提取,以及关键点检测与描述。
图1 本文方法基本流程
Fig.1 The Basic Workflow of the Proposed Method
1.2 端到端网络结构
深度学习网络通过卷积运算,可为影像匹配任务提供丰富的特征信息。随着地面移动测量与无人机倾斜摄影等系统的广泛利用,高分辨率、大视角差的影像成为重要的遥感数据源。但其也给深度学习网络造成高计算量、大显存消耗等问题。因此,端到端网络结构首先需要考虑特征提取效率。综合考虑,本文网络结构如图2所示。选择L2-Net[20]作为特征提取的主干网络。L2-Net网络具有轻量化的优势,主要由7个采用padding补0的卷积层组成。为了提高特征提取性能,L2-Net采用步距为2的空洞卷积实现影像的降采样。
图2 端到端网络结构与关键点检测
Fig.2 End-to-End Network Structure and Keypoint Detection
原始的L2-Net网络输入为影像块,输出对应的128D描述子。为了实现端到端的特征检测与描述,本文采用类似ASLFeat的方法,对L2-Net结构做了进一步的修改(如图3所示):将最后的局部响应归一化(local response normalization, LRN)层替换为L2归一化层,使得网络输出128D特征图;将最后一个8×8卷积替换为3个3×3的可变形卷积(见图2网络结构图的DCN7/8/9层),用于学习3种局部几何变形(相似变换、单应变换、仿射变换),以此来提高描述子对大视角变化的适应能力。网络输出128层的特征图,类似于经典的SIFT[4,21]特征算子,且每层特征图的分辨率是输入影像的1/4倍。为了同时实现关键点检测,本文进一步对多尺度特征进行逐层加权融合,生成多尺度特征检测图。然后,联合得分图S(多尺度融合特征检测图)与特征图D,实现关键点检测与特征描述。多尺度特征检测图生成与基于局部得分检测的特征提取具体实现细节参见章节1.3。
图3 特征提取和DCN模块的网络结构
Fig.3 Network Structure of Feature Extraction and DCN Modules
1.3 特征检测与描述
在端到端网络的“一图两用”思想中,网络输出特征图D中像素点对应的通道数值Dij除了作为描述符向量,也用于计算特征得分图。现有的端到端特征检测网络,比如ASLFeat和D2-Net, 利用卷积网络内在的金字塔分层特征,同时利用通道得分β ij c 和局部得分α ij c 计算特征得分图s ij c ,实现多尺度的特征点检测。但在网络训练的反向传播中,如果在检测阶段对通道得分β ij c 进行优化,则网络会对特征图D的通道数值排列进行调整,从而降低了Dij作为特征描述子的匹配能力。Dij的数值分布也会对极值点的定位产生影响。本文实验结果表明,ASLFeat等考虑通道得分β ij c 的特征检测方法的关键点数量远少于基于高斯差分函数(difference of Gaussian, DoG)的局部区域极值检测算法,也远少于取消通道值的检测方法。这说明可以通过改进特征检测算法来提高关键点的准确性和效率,从而更好地应用于实际场景。为此,本文采用金字塔多尺度加权抽样和基于局部得分的检测图计算方法。
1)金字塔多尺度加权抽样。
本文使用多尺度加权方法采集更多的网络层,使检测阶段考虑更多的潜在极值点。由于L2-Net网络结构轻量化的特点,不需要过多的计算便能充分抽象出不同尺度层级的特征。如图2所示,9层卷积层的输出图分为H×W、H/2×W/2、H/4×W/4共3个尺度。尺度越小,特征点定位越精细;尺度越大则对局部几何信息的描述越充分。为了在特征检测同时考虑到精度与局部几何信息的描述,本文设计一种多层加权的特征抽样图计算方式:分别采样不同尺度的最后两层作为一个层组,即conv1和conv2、conv3和conv4、DCN8和DCN9。对于一个层组,按照深度方向对两个采样层进行加权融合。通过消融实验,权重选择0.3和0.7结果最优,参见式(1)。
Y ij c =0.3y ij c +0.7y ij c+1 (1)
式中:c表示尺度层数。
2)基于局部得分的检测图计算。
取消通道得分的计算,通过改进的局部得分图计算结果用于特征检测。具体来说,对于从网络中抽样得到的特征图Y ij c ,仅计算深度图所有像素位置的检测得分α ij c 作为特征检测得分,参见式(2)。这种方式进行检测图的计算,能够使网络在训练过程中局部极值检测的约束和描述符匹配的约束相互独立,从而避免了检测过程中通道得分β ij c 的计算对Dij的约束,同时使得描述子Dij仅用于学习特征描述,避免了其在不同维度的数值分布对关键点检测的影响。因此,这种设计不仅能够提高关键点检测的能力,还能提高描述子的匹配能力。
α ij c =softplus[ Y ij c - 1 | Ν(i,j) | ∑ ( i ′ , j ′ )∈Ν(i,j) Y i ′ j ′ c ] (2)
基于上述步骤得到的多尺度检测得分α ij c ,首先取其通道方向的最大值得到特征检测图 s ij = max t (α ij c ) ;然后将不同尺度的检测图加权,得到最终的特征检测得分图。在本文实验中,3个特征检测图加权融合的权重值分别设置为1/6、2/6和3/6时结果最优。对于加权的得到的特征得分图S,将图中的局部极值点作为特征点坐标,网络输出的特征图中相应坐标的通道值即为对应特征点的描述子。
1.4 训练数据与模型训练
本文使用GL3D(geometric learning with 3D reconstruction)数据集[18]作为训练数据。GL3D数据集是一个用于三维重建和几何关系学习的大型数据库,共计90 590张高分辨率影像,覆盖了378个不同的场景。每个场景包含50~1 000张具有较大几何重叠的影像,其主要来源于不同尺度和角度拍摄的城市、农村和风景区等无人机影像。为了增加数据的多样性,数据集中还包含了手持相机拍摄的小目标物影像。相比用于影像块特征描述Brown数据集,GL3D数据集场景覆盖类别更广泛,且提供了丰富的几何上下文信息。
通过GL3D中的影像构造匹配对(I1,I2),图像I2是通过将图像I1进行密集变形(warping)得到的,此变形过程考虑了真实深度和相机参数影响;对应关系记为C,检测得分记为s。本文采用ASLFeat相同的损失函数,最小化检测器和描述符的训练损失,如式(3)所示。
L(Ι 1 ,Ι 2 )= 1 | C | ∑ c∈C s c (1) s c (2) ∑ q∈C s q (1) s q (2) Μ(f c (1) ,f c (2) ) (3)
式中:s c (1) 和s c (2) 表示(I1,I2)的特征检测得分图;f表示对应的描述符;M(,)表示对两个匹配描述符计算的排名损失(ranking loss),如式(4)。
Μ(f c (1) ,f c (2) )= [ D(f c (1) ,f c (2) )-m p ] + + [ m n -min( min k≠c D(f c (1) ,f k (2) ), min k≠c D(f k (1) ,f c (2) )) ] + (4)
式中:D表示描述符的欧几里得距离;mp和mn分别被设置为0.3和1.0。同时,为了避免空间上过于接近的点被当作非匹配样本,网络设置了大小为3个像素的安全半径。
基于上述训练数据和损失函数,虽然可以直接对嵌入DCN层的网络进行训练。但根据实际经验,本文采用两阶段的训练策略,即在第一阶段先训练普通卷积网络,然后在该模型的基础上将最后3层卷积替换为可变形卷积,并进行第二阶段训练。本文具体实施时,在第一轮训练中,使用普通卷积对模型进行了400 000次迭代。在第二轮训练中,只调整DCN层参数,继续进行了另外400 000次迭代。在网络实现时,本文网络模型采用TensorFlow实现。在网络训练中,设置随机梯度下降(stochastic gradient descent, SGD)优化器的动量值为0.9,学习率为0.1。单个NVIDIA GTX 1060 6 G GPU,400 000次迭代的训练时间为37 h。
1.5 特征匹配
由于无人机采集的影像数据量大,穷举匹配会带来高昂的计算代价,同时也不便于算法对比分析。本文利用Oxford 5k数据集[22]训练词汇树,基于影像检索技术生成每张影像最相似的 20 张影像作为影像对的选择结果。在检索影像对的基础上,采用描述子欧式距离最近准则(nearest neighbor, NN)进行特征匹配,并结合比值测试和交叉验证的方法剔除粗差。然后基于随机样本一致(random sample consensus, RANSAC)基本矩阵估计的核线约束进行初始匹配优化,得到最终的特征匹配结果。为了保证 SFM 的空间三维精度,本文设置RANSAC[23]粗差剔除的外点阈值为1个像素。
2 数据集与评价指标
2.1 实验数据集
本文使用4个数据集进行网络性能评估,如图4所示。第1个数据集采集自一个被低矮建筑和裸地覆盖的区域,如图4(a)所示。无人机携带一台尺寸为7 360像素×4 912像素的索尼ILCE-7R相机,在300 m飞行高度拍摄了157幅影像。第2个数据集在城市郊区拍摄采样,包含一些交叉的铁路轨道,如图4(b)所示。无人机配备一台Sony RX1R相机,尺寸为6 000像素×4 000像素,在165 m的飞行高度下,共采集影像296张高清影像。第3个是来自黎世理工大学的数据集[24],如图4(c)所示。使用一台松下DMC-TZ3相机在北卡罗纳大学教堂山分校的South Building建筑周围进行拍摄,尺寸为3 072像素×2 304像素,128张影像均为侧视图。第4个数据集采集自城市区域,包含住宅建筑、购物广场、运动场等,如图4(d)所示。该数据集的采集使用了经典的五视角倾斜摄影测量系统,其中一台相机垂直拍摄地面,另外4台相机以45°倾角同步采集信息。使用的相机型号为索尼NEX-7,所有影像的尺寸均为6 000像素×4 000像素。在高度为175 m的飞行高度下,共记录了750张影像。
图4 4组实验数据示例影像
Fig.4 Illustration Images of Four Datasets
2.2 评价指标
对于输入无人机影像,首先使用网络进行特征提取、描述,对特征点和描述符进行匹配,得到可靠同名点;然后,使用增量式SFM算法COLMAP[25]进行空三处理,生成影像位姿和三维点。为了综合评估算法在特征提取与匹配、SFM空三重建方面的处理性能,本文选择了特征匹配和SFM空三的关键技术指标作为对比方法的评价指标,在表1中列出。这些指标主要分为两类,一类与特征提取和匹配相关,另一类与SFM空三重建相关。通过使用这些评价指标,可以全面地评估算法在本文所提出的验证框架下的处理性能,包括特征提取与匹配的性能、SFM空三重建的完整性和精度。本文实验的电脑配置为:CPU 3.6 GHz Intel Core i7-7700,显卡 8 GB NVIDIA GeForce GTX 1080。
3 实验结果与分析
3.1 特征匹配结果
为了对比分析本文端到端特征提取网络的性能,选取了SuperPoint、D2-Net、ASLFeat等经典端到端网络模型进行对比评估。同时,选择RootSIFT[26]作为手工特征提取的基准算法,可评价端到端特征提取网络的性能。
实验结果如表2所示。在影像匹配对数方面,现有端到端网络均没能超过RootSIFT,ASLFeat由于其使用了可变形卷积层,增强了对局部几何形状变换的感知能力,因此在视角变化较大的数据集3和数据集4上实现了接近RootSIFT的性能。本文的端到端网络在数据集3和数据集4上表现优于手工描述子,并且在4组数据集中均实现了超过现有端到端网络的性能。在影像匹配点数方面,现有深度学习方法均未能达到手工特征点的水准,其中SuperPoint和D2-Net在深度学习方法中表现最差。本文方法仅在数据集3上表现比传统手工描述子效果更好。仅考虑深度学习方法时,本文算法表现仍是最优。相较于目前最好的端到端方法ASLFeat, 在使用本文提出的多层级局部特征计算方法后,网络模型的检测点数量与正确匹配的数量明显增加,其增加的比例分别达到38.2%、22.2%、41.7%和32.2%。另外,RootSIFT(GPU版本)单张影像特征提取的时间消耗大概为0.5 s。本文算法的时间消耗大概为1.5 s。
对4组数据集中的部分影像对的匹配结果进行可视化以及内点率的计算,如图5~图8所示。其中,绿色线段表示正确的匹配对应;蓝色表示经过RANSAC剔除的错误匹配。图7中选取的影像对均具有较大视角变化,建筑物墙面之间具有明显的透视变形,以此为例来对比网络对视角变化的匹配能力。RootSIFT在选取的第3组匹配场景中没能实现超过15对正确匹配,因此在COLMAP重建流程的匹配中没有进行保留。而在第1组和第2组的匹配中,目前最先进的ASLFeat出现了较多的误匹配。本文方法的检测策略减小了网络DCN层的检测方面的约束,增强了对局部变形的学习和感知,因此在检测到更多匹配的同时,实现了较高的内点率。在图5、图6和图8中,本文网络也都实现了更多的匹配点与更高的内点率,且在同名区域较多的影像对中实现了较RootSIFT更多的匹配,但是RootSIFT在数据集1中比本文网络实现了更高的内点率。
图5 数据1特征匹配对比结果(内点数/初始匹配数/内点率)
Fig.5 Feature Matching of Dataset 1 (Inlier Number/Initial Match Number/Inlier Ratio)
图6 数据2特征匹配对比结果(内点数/初始匹配数/内点率)
Fig.6 Feature Matching of Dataset 2(Inlier Number/Initial Match Number/Inlier Ratio)
图7 数据3特征匹配对比结果(内点数/初始匹配数/内点率)
Fig.7 Feature Matching of Dataset 3(Inlier Number/Initial Match Number/Inlier Ratio)
图8 数据4特征匹配对比结果(内点数/初始匹配数/内点率)
Fig.8 Feature Matching of Dataset 4 (Inlier Number/Initial Match Number/Inlier Ratio)
3.2 SFM重建结果
基于上述匹配结果,基于COLMAP进行稀疏三维重建。首先对基于SFM的重建精度的统计结果进行分析,然后再对重建出的三维点云模型的完整性进行分析。首先进行SFM的重建精度分析。针对稀疏重建的3D点云,继续使用3个指标度量各个端到端网络对应的三维点的连接情况与精度:Tie_pt、3D_pts和Error。重建结果如表3所示。
在对比Tie_pt和3D_pts的结果时,本文方法是所有网络中表现最佳,且相较于其他网络提升明显。D2-Net匹配结果重建出的点云中,每个3D点对应的图象数最少。SuperPoint在Tie_pt上结果尚可,但是在每张影像对应的3D点方面效果不够理想,在两组数据集上均为最低。在考虑度量误差时,本文的端到端网络取得了与ASLFeat相当的结果,4个数据集上的平均误差都控制在了1.3像素以内。但是相较于手工算法的误差表现,联合检测与描述的网络的策略尚有较大不足,表明现有深度特征算法对特征点定位的精度仍不能达到RootSIFT使用的DoG检测算法的水平,有待进一步的研究。
最终的三维点云完整性信息如表4所示,由于目前端到端检测与描述策略存在的特征定位精度低的问题,除了低空采集的数据集3以外,表中所有深度学习的特征算法在其他数据集上均未能重建出完整的场景。重建影像数方面,SuperPoint在数据集4中重建的三维模型连接了450张影像,但是其三维模型出现了错误。其他几种方法受限于特征点定位精度,D2-Net表现弱于ASLFeat与本文算法。在稀疏三维点数量方面,本文算法取得了最好的结果,相较于ASLFeat提升明显,其比例分别达到37.7%、11.4%、14.9%和29.4%。
图9和图10是3种算法在数据集2和3上的稀疏三维点云的对比。但是与RootSIFT算法的对比中,现有端到端网络均存在连接影像数量和三维点数量过少的问题,这说明端到端检测与描述策略的特征检测能力仍需进一步改进。
图9 数据2 SFM三维重建结果
Fig.9 SFM-based 3D Reconstruction of Dataset 2
图10 数据3 SFM三维重建结果
Fig.10 SFM-based 3D Reconstruction of Dataset 3
4 结束语
本文提出了一种基于深度学习的联合特征检测与描述网络模型,并利用3组无人机数据与1组地面近景数据,从特征匹配和SFM三维重建两个方面进行了实验分析。与经典手工算法和3种端到端深度学习特征提取方法的对比结果表明,本文的网络模型在实际匹配任务中能够提取更多的特征点,显著提高了特征匹配和重建点数量,其增加比例分别达到了22.2%~41.7%和11.4%~37.7%,且在SFM三维重建中的重投影误差优于1.3像素。所提出的方法可用于影像空三处理与实景三维重建。但是与手工算法相比,端到端网络的关键点检测依然存在定位精度低的问题。下一步的研究重点将关注如何提升特征点定位精度。