APP下载

基于超像素和光流引导的正射影像拼接方法

2022-03-12婕,周

计算机工程 2022年3期
关键词:光流射影缝线

李 婕,周 顺

(湖北工业大学电气与电子工程学院,武汉 430068)

0 概述

正射影像拼接技术是摄影测量和遥感领域中的重要研究课题之一,但用于生成正射影像的数字地形模型不包含明显的地面物体,例如建筑物等,若拼接线穿过这些区域,则拼接线区域会出现明显的鬼影。因此,如何从重叠区域中检测出明显的地物信息,避免拼接线穿过,是创建无缝大规模文档对象模型(Document Object Model,DOM)的关键问题。

国内外研究人员对图像拼接过程中的最优拼接线搜索方法有较为深入的研究,所提出的拼接线检测方法[1]主要分为以下2 个步骤:构建成本代价函数[1-3],如文献[4-5]采用待拼接影像重叠区域的颜色、边缘、纹理等信息来定义该函数;利用snake 模型[2]、Dijkstra[3]、动态规划[4,6-7]、图割[5,8]等优化算法获得最优拼接线。文献[2]提出一种利用颜色信息和纹理相似性构成的成本函数,采用snake 分层策略自动检测拼接线方法。CHON 等[3]利用归一化互相关评估像素间的差异,使用Dijkstra 算法获得最优拼接线。LI 等[9]定义了一种边缘增强的成本函数,采用图割优化获得最优拼接线。上述方法利用像素差异信息来指导最佳拼接线的检测取得了较好的效果。但由于成本函数只考虑了影像像素信息,拼接线优化时易穿过弱纹理区域的建筑物墙面、屋顶等区域,会形成明显的鬼影现象。

为解决上述问题,基于辅助数据的方法逐渐被关注。MA 等[10]提出借助点云信息,将明显地物标记为障碍物,使用A*算法使拼接线绕过这些区域。文献[11]采用道路矢量的方法确保拼接线沿着街道中心线。文献[12]提出从数字地面模型(Digital Surface Model,DSM)中提取海拔信息,并在低海拔地区引导拼接线检测。文献[13]关注矢量建筑物之间的中心线,基于矢量建筑物地图生成候选拼接区域,再通过最小化视觉过渡得到精细化拼接线。文献[14]提出基于DSM 的边缘图来细化初始接缝线的方法。文献[15]基于DSM 结合阈值分割、数学形态学和跳跃点搜索检测最佳拼接线。文献[16]利用色差、梯度、及从DSM 中获得的物体高度进行接缝线搜索。这些基于辅助数据的方法能获得高质量的拼接线,但均需要额外的辅助信息。

因此,研究人员开展了基于对象的最优拼接线搜索方法研究。例如PAN 等[17]提出利用图像分割结果确定拼接线是否可以通过区域,再将Dijkstra 算法用于拼接线的像素级检测的方法。文献[18]提出对地物进行分类,并对每个类别分配不同的权重,在此基础上优化成本函数获得最佳拼接线。文献[19-20]采用半全局匹配(Semi-Global Matching,SGM)方法获得深度图,从而获得非地面区域的分割结果,指导拼接线搜索。文献[21]引入卷积神经网络(Convolutional Neural Network,CNN)得到语义分割结果,并以此作为约束利用图割优化方法获得最优拼接线。文献[22]采用一种基于梯度的超像素最优拼接线搜索方法。文献[23]基于前景分割结果得到最优接缝线,在精度和效率上都有所提高。YUAN等[24]构建了一个超像素能量函数,该函数融合了色差、梯度差和纹理复杂度信息获得位于高度相似的连续区域中的最佳拼接线。以上这些拼接方法的基本思想是借助分割、深度图等对象信息,先确定拼接线路径的区域,再进行拼接线搜索。与基于像素的方法相比,基于对象的方法提高了接缝线的质量,但由于节点数量众多,优化效率低。

光流作为传统的视觉任务[25],是由观察者和场景之间的相对运动引起影像中目标、边缘等的相对运动。大光流对应于影像间的变化区域,可用于检测正射影像间明显地面区域。本文提出一种基于光流的影像拼接方法,以有效避免接缝穿过明显的地面物体。通过采用从粗到细的接缝线优化策略,提高接缝线检测的效率。此外,在超像素级别和像素级别分别进行优化,以获得最优的接缝线。

1 本文方法

本节将详细介绍基于光流的障碍物区域检测方法以及由粗到精的接缝线搜索策略。在本文实验中,仅考虑2 张影像的拼接。如图1 所示,本文所提方法的整体框架由4 个部分组成,流程如下:1)使用正射影像的几何信息确定相邻影像的重叠区域;2)采用超像素分割和密集光流的方法获得大光流区域,并以此区分出明显地物,例如建筑物等;3)结合地物信息和归一化相关的成本函数,采用超像素和像素级的Dijkstra 算法,由粗到精地获得最优接缝线;4)将输入的两幅正射影像沿拼接线缝合成一幅影像。

图1 本文方法整体框架Fig.1 Overall framework of the method in this paper

1.1 基于密集光流的明显地物提取

由于生成正射影像的数字地形模型中没有包含明显地物信息,导致在不同的正射影像中,不同高度的地面物体会产生相对位移。经过实验发现,具有大位移的对象如建筑物等,对应较高的光流值,可用于检测障碍物区域。

近几年,光流算法有了较大的进展。如边缘保持插值光流法(EpicFlow)[26]和鲁棒插值法(RicFlow)[27]可以有效地获得图像对的像素位移。RicFlow 在遮挡、大位移情况下可获得更好的性能,该方法通过构建一个超像素图模型,使用传播优化机制既保证了光流运算效率也提高了计算精度。因此本文采用此方法获取重叠区域的密集光流。首先,给定图像对I1、I2和相应的匹配集M,并使用线性迭代聚类[28](Simple Linear Iterative Clustering,SLIC)算法从I2生成超像素{Sk},从匹配集M中求出初始光流。然后,利用RicFlow 算法及加权最小二乘法确定最终密集的光流模型。本文匹配集M通过CPM 方法[29]获得,该方法被证明比其他类似的匹配方法如深度匹配[30]、快速引导的全局插值匹配(FGI)[31]等更有效。

图2(a)和图2(b)分别为待拼接正射影像及红色方框放大后的子图像(彩色效果见《计算机工程》官网HTML版),白色虚线框表示重叠区域。从放大的子图像中可以看出明显地物在不同影像上的差异。如果拼接线穿过这些目标,则会产生明显的接缝鬼影现象。图2(c)给出了左影像的超像素分割结果,采用RicFlow 获得的密集光流如图2(d)所示,反映了相邻影像间的位移,较高的灰度值表示较大的光流,本文将此区域标记为障碍物区,即拼接线不能穿过区域。相反,深色区域表示拼接线可通过区域,例如道路、停车场和草地。从图2(e)可以看出,密集光流方法可以检测出大多数地物区域。

图2 地物检测结果Fig.2 Object detection results

1.2 基于光流和NCC 的成本函数构建

如果仅利用光流便可精确检测到明显的地物,就只需使用光流结果便可指导获得最优拼接线。但由于光流生成过程中不可避免的匹配噪声,因此很难准确地描述物体边界,尤其是小目标物体如小型、静态汽车等。因此,最终获取的接缝线存在不平滑、易穿过小物体的现象,如图3 所示穿过汽车、栅栏等。

图3 基于光流的拼接线检测结果Fig.3 Splicing line detection results based on optical flow

归一化互相关(NCC)算法[3]是描述像素差异的传统方法。NCC 的值表示两像素间的差异。在本文中,光流信息和NCC 均被用来指导接缝线搜索过程。假设通过光流获得了明显的物体集合{O},代价函数的表示如式(1)所示:

其中:x表示I2中的像素点;NCC(x)表示待拼接影像重叠区域的两像素的相异性。当点x具有有效的光流时,赋于一较大的常数C。该常数值用于扩大障碍物区域与非障碍物区域的差异。

本文采用的匹配代价图如图4 所示,成本函数中的小目标和边缘凸显出来,视觉上显得更加合理。

图4 匹配代价图Fig.4 Matching cost map

1.3 由粗到细的接缝检测策略

在给定拼接线起点和终点的情况下,检测拼接线的常用方法是在构建的成本图中找一条成本最小的路径,但待拼接的重叠区域中的像素数量巨大,影响优化效率。为改善此问题,本文引入一种简单有效的方案来降低接缝检测中的计算成本。采用Dijkstra 的算法在已获得的超像素区域中找到最短的超像素路径。超像素成本函数定义为:

其中:C(Si)代表超像素Si的成本代价;|Si|表示超像素块Si中的像素个数。

Dijkstra 算法是一种全局优化方法,其通过在每个节点上进行最少的本地操作来确定成本空间上的最佳路径,该算法用于确定超像素级的最短成本路径。极大减少优化节点的数量,从而提高了路径检测效率。在获得超像素最优路径后,再次使用Dijkstra 算法在像素级别上精细化拼接线。图5 所示为拼接线检测结果(彩色效果见《计算机工程》官网HTML 版),紫色区域为超像素级的最佳拼接区域。尽管在超像素级别检测到的粗接缝区域可以避免与大多数明显地物信息相交,但拼接区域并不平滑,并且穿过了很多地面小目标。

图5 由粗到精策略的拼接视觉结果Fig.5 Splicing visual result of coarse to fine strategy

在精细化拼接线前,对拼接线区域进行扩展,以确保拼接线的平滑度。本文实验过程中采用膨胀的方法建立一个扩展缓冲区U。图5 中的蓝色区域表示扩展区域,黄线表示扩展区域中的精细化后的拼接线(彩色效果见《计算机工程》官网HTML 版)。此时的拼接线光滑度高,且避免穿过了小目标。在此基础上,将待拼接的2 张正射影像沿着最佳拼接线合成1 幅影像。图6 展示了拼接后的效果(彩色效果见《计算机工程》官网HTML 版)。

图6 本文方法拼接后的结果Fig.6 The mosaicking result of the method in this paper

2 实验与结果分析

本节将用实验来评估所提出方法的有效性。所有实验均在Core i7 3.4 GHz 和8 GB RAM 在CPU 上利用C ++实现。表1 列出了本文实验采用的3 个数据集的详细信息。

表1 实验数据集Table 1 Experimental data set

实验影像已根据数字地形模型对齐。文献[32]指出:主观上理想的拼接线应避免穿过明显的地面物体,如建造或移动汽车,应该穿过质地平滑的区域,例如道路、河流、草丛或空地。同时,为更好地评估检测到的拼接线质量,应该具有一个客观、公正、定量的评价指标。本文应用结构相似性(Structural Similarity,SSIM)指数[19]来定量地评估。根据文献[19]的描述,SSIM 的值越高,表示所检测到的拼接线质量越好,SSIM 的最大值为1。

本文实验由3 部分组成:第1 部分讨论实验的参数设置;第2 部分使用数据集1 中的正射影像验证了本文方法的有效性;第3 部分将所提方法从视觉和客观指标上与传统方法、最新方法、商业软件进行比较。

2.1 参数设置

为探究超像素个数的选择对拼接线检测结果的影响,本文在实验中选取不同的超像素个数M,通过SSIM评价指标衡量拼接结果。

如表1 所示,由于正射影像分辨率较大,本文在处理重叠区域的光流时,对重叠区进行缩小处理。图7 所示为影像缩放因子设置为0.5 和0.25 时拼接结果质量的变化。从图7 可知,随着超像素个数的增加,SSIM 值下降,运算时间相应减少。这说明了超像素分割时,选择的像素数量过多,会降低最终的拼接质量,但运算效率得到了提高。此外,缩放因子设置的越小,计算时间减少,但拼接质量也降低。这说明了重叠区域的缩放比例影响了光流的获取精度,进而降低了地物区域提取的准确性。考虑本文方法的运算效率和精度,后面的实验过程中,将超像素大小M设置为100,重叠区域按比例因子0.5 进行缩小处理。

图7 超像素个数和缩放尺度的评价结果Fig.7 Evaluation results using different mean superpixel sizes and scale factors

2.2 基于光流的由粗到细的拼接线检测方法

图8展示了使用和不使用光流情况下的拼接结果。从视觉结果来看,2 种算法的拼接线走向相同,并均避免穿过明显的建筑物和车辆。但对于特定的局部区域,如图8 中箭头所示,检测结果有所不同(彩色效果见《计算机工程》官网HTML 版)。在图8(a)中,由于街道树木、车辆等小目标的影响,拼接线选择穿过建筑物边缘,导致最终的拼接效果中出现了可见的不连续性。但如图8(b)所示,由于本文采用了光流检测,剔除了建筑物区域,因此拼接线选择经过平坦的街道。

图8 拼接视觉结果Fig.8 Visual splicing results

另外,为证明基于光流的障碍物检测方法的有效性,本文对2 种方法生成的拼接结果进行客观评估。对于分辨率为6 040×2 856 的重叠区域,光流方法的拼接结果SSIM 值为0.893 1,比非光流方法获得的检测结果0.863 9 高3%。相应地,因为需要在接缝线检测之前计算光流,运算时间从25.66 s 增加到43.07 s。

在超像素级别检测到接缝线后,本文采用由粗到细的精细化策略,在像素级上进行进一步优化。通过构造1 个以粗糙接缝线为中心,采用膨胀操作的缓冲区,该方法需要3.48 s 来获得缓冲区域。本文对不使用由粗到细的精细化策略和使用此策略时的缝合结果进行对比,视觉结果如图9所示(彩色效果见《计算机工程》官网HTML 版)。从图9(a)可以看到接缝线穿过了地面的小目标。图9(b)为考虑到粗略方案后,拼接线按预期的方式环绕了汽车,并选择穿越附近的平坦区域的场景,SSIM 值 从0.898 5 增加到 了0.909 9,质量评价指标提高了1%。

图9 拼接的视觉结果对比Fig.9 Comparison of visual splicing results

2.3 与不同方法的对比分析

为验证所提方法的有效性,将本文方法与领域内的最新方法以及传统Dijkstra 算法进行对比。其中,最新方法采用文献[23]提出的利用图割优化获得最佳拼接线的方法;传统Dijkstra 算法采用文献[3]提出的利用NCC 构建能量函数,并限制最大差异程度的方法。此外,本文还与目前使用广泛的正射影像拼接软件OrthoVista 进行对比,该软件可从其官方网站获得。不同方法在3 个数据集的拼接结果如图10~图12 所示。其中,白色虚线框表示重叠区域,拼接线用黄色线段表示,彩色矩形及其相应的放大区域展示了局部穿过建筑物的情况(彩色效果见《计算机工程官网HTML 版》)。

图10 在数据集1 上的拼接线检测结果Fig.10 Seamline detection results on data set 1

图11 数据集2 上的拼接线检测结果Fig.11 Seamline detection results on data set 2

图12 在数据集3 上的拼接线检测结果Fig.12 Seamline detection results on data set 3

从视觉效果上看,OrthoVista 软件在3 个不同数据集中穿过的建筑物最多,尤其在建筑密集的数据集2。与OrthoVista 相比,文献[3]的方法、文献[23]方法和本文所提方法通过的目标较少,但文献[3]方法选择了较长且不光滑的接缝线,导致运算时间较长。本文所提方法成功绕过了明显的目标,尽管也跨越了几栋建筑物,但由于这些建筑物位于起点或终点区域,本文方法未对起点和终点区域进行筛选,因此很难绕开这些建筑物。

除从主观视觉比较外,本文对所有方法进行了定量评估,结果如表2 所示。由表2 可知,在所有实验中,本文的接缝线检测方法具有最高的SSIM 值,精度比OrthoVista 商业软件提高5%以上、比文献[23]的方法提高约3%、比文献[3]的方法提高约1%,如表2的第4列所示。在运算效率上,比文献[3]方法提高了1 倍、与目前运算效率高的文献[23]的方法保持在1 个数量级别,如表2 的最后1 列所示。

表2 不同方法的对比结果Table 2 Comparison results with different method

3 结束语

本文提出一种基于光流的从粗到细的正射影像图像拼接方法。通过采用超像素的RicFlow 密集光流算法来区分明显的地物信息,并结合光流和NCC的成本函数来约束接缝的检测过程。在此基础上,使用Dijkstra 算法在超像素级别和像素级别上分别进行优化,获得最优的接缝线,实现两幅正射影像的拼接。实验结果表明,本文所提方法优于图割方法、Dijkstra 方法和商业软件OrthoVista。但本文实验仅考虑了两幅影像的拼接,下一步将对多幅影像拼接、光照环境变化等情况下的鲁棒性及拼接质量这2 个方面对算法进行优化,以获得更高质量的拼接效果。

猜你喜欢

光流射影缝线
利用掩膜和单应矩阵提高LK光流追踪效果
剖腹产横切口两种缝线缝合的对比探讨
基于物理学的改善粒子图像测速稳健光流方法研究
三参数射影平坦芬斯勒度量的构造
缝线抗议
基于已有控制资料的正射影像自动更新
捆扎钢丝结合缝线引导指屈肌腱断端回缩的临床应用
锯齿状缝线皮下埋置面部提升术临床应用(附140例)
基于改进射影控制的柔性直流输电广域阻尼控制
融合光流速度场与背景差分的自适应背景更新方法