遥感影像道路断线修复方法研究
2024-05-07陈奕州韦春桃
陈奕州,韦春桃*
(1. 重庆交通大学重庆智慧城市学院,重庆 400014)
路是人类活动中的关键基础设施之一,无论是在日常生活中的驾车导航,还是在地学研究中作为关键地物数据,均需要准确完善的数字化道路成果作为数据支撑。而卫星遥感影像因其可视范围广、重访周期短,能够快速获取大范围区域的信息,因此常通过遥感影像的解译获取区域内的道路信息。
随着计算机视觉技术和深度学习技术的快速发展,遥感也从人工解译逐步走向了智能解译。因此在遥感影像提取道路方面,也经历了从手工勾画道路,到采取机器学习或深度学习的方法自动获取道路。但由于建筑物阴影或树木遮挡等原因,自动获取的道路数据通常存在或多或少的不连续,即一条道路被分成了若干段,称为道路断线。在模型层面,Zhou[1]等提出可以通过顾及图谱表征道路上下文信息的潜在能力,通过构建一个分层可分离卷积图神经网络提高被遮挡的道路提取精度;Mei[2]等根据相邻像素之间的关系提出了一种连接性的注意模块,该模块通过利用成对相邻像素之间的依赖关系并结合图形信息来提高道路的连通性,而更加通用的做法则是通过后处理的方法对模型提取的道路断线进行修复。关于道路断线的修复方法主要分为三类,即人工修复、半自动修复和全自动修复。本文主要探讨全自动修复,潘励[3]等提出了一种基于概率松弛法的道路拐点自动连接算法,通过考虑周围点的影响来过滤不符合常理的连接现象,提高了图像连接的可靠性,主要应用于多岔路口的断线修复;于艳超[4]等直接采用遍历最小距离点进行连接的方式,主要针对于CAD数据转为Shapefile时候的断线问题;阳春花[5]等通过位置相关性选择出备选道路,然后根据光谱、形状、位置等关系选择最终道路,该方法主要在模板道路识别后进行连接。上述3 种方法都对应着特定的情况,而对于机器学习或深度学习方法所得的结果,王超[6-7]等提出的修复方法更加通用,即首先寻找道路断点,然后根据道路断点的坐标进行k-means聚类[8],最后将聚类得到的符合要求的点两两之间进行三次曲线拟合。该方法得到的结果相比原始结果具有一定优势。但仅使用断点的坐标值进行聚类,其效果与寻找距离最近的2 点相似,使用中仍然存在以下问题:
1)易将被另一条道路分开的道路断点或平行道路断点聚为一类从而进行错误连接,如图1a与1b所示。
图1 易错误匹配或无法匹配的道路情况
2)多个断点距离较近,容易被聚类算法视为同一类别,此时连接方法无法正常工作,如1c所示。
3)当仅有2个断点时,距离较远的2个断点会被分为两类而无法进行连接,如图1d所示。
针对上述情况,对断点匹配的方法进行了改进,通过在断点位置的基础上引入了断线指向、断点区域光谱以及断点所在联通区是否孤立等作为道路断点的附加特性,同时在两两断点对中引入指向角度差、光谱相似度等点间特征,根据加权综合得分和条件限制的方法替代k-means 聚类来得到匹配的断点对。最后自动计算道路宽度后进行3 次拟合修复道路断线,能够有效解决上述情况无法修复或错误修改的问题。
1 多特征联合的道路断线修复
道路断线修复可分为3 个部分,一是查找疑似道路断线的端点,即道路断点;二是筛选和匹配所有的道路断点,找到连接性最好的一对道路断点;三是遍历匹配好的道路断点进行连接修复断线。其流程如图2所示。
图2 道路断线修复流程图
1.1 断点查找
道路断点的查找方法较为成熟,可以通过结合骨架法[9]和八领域检测算法[10-12]进行查找。首先通过骨架法对道路进行细化,提取道路中线,在保留其连通性和结构的基础上简化形状;再以道路骨架为基础,使用八领域检测算法对骨架图中的像素点进行分类。类别包括孤立点、断点以及道路内部点/交叉点3类,其具体方法为如下。
记当前点为B1,1,获取当前点周围的8 个像素点,记为Bi,j(i=0,1,2;j=0,1,2;i≠j≠1),有:
1)当仅中心像素有值时,即仅有B1,1≠0,则中心点为孤立点,如图3a所示。
图3 八领域检测算法结果
2)当除中心像素外,八领域内有其他任意一个像素有值时,则表示中心点为断点,如图3b所示,其中B1,2≠0。
3)当除中心像素外,八领域内有大于等于2个像素有值时,则表示中心点为道路内部点或道路交叉点,如图3c 和3d 所示,其中有B1,j≠0(j=0,2)以及额外的Bi,1≠0(i=0,2)。
需要注意的是,在进行道路骨架提取前,通常需要设定一个联通区面积阈值Tarea用于去除小的联通区域,此处设置为Tarea=64。通过过滤小联通区可以避免因为分割结果中的噪声提取出错误的断点参与计算和匹配,从而减少计算量和提高结果精度。
1.2 断点匹配
1.2.1 点内特征提取
在文献[6] 中,使用k-means 聚类的断点特征仅有其在图像上的像素坐标位置,因此聚类的结果可以视为对点间距离阈值的判定,而忽视了其他特征。因此在像素坐标的基础上,增加了道路断线的指向、断点区域光谱和断线所在联通区是否孤立3 个特征来提高算法的普适性。
其中道路断线的指向是避免同向断线错误连接的关键,可以通过八领域算法向后回溯得到。其具体方法为:
1)记当前断点为B0,完成状态为Flag=0,在B0处进行八领域搜索,找到一个非零的像素点,该点位置即为道路断点的上一位置,记做B1。
2)移动八领域窗口到Bi(i=1,2,3,…),如果找到2 个有值的像素点,则其中一个为下一位置Bi-1,另一个为上一位置Bi+1。保留Bi+1作为下一步移动的位置;如果找到3个及以上的非零像素点,则Bi为分叉路的交点或道路内部点,此时无法继续向上回溯,设置完成状态Flag=1。
3)若Flag=0,则可以继续回溯,重复2)步骤n次后停止;若Flag=1,则完成查找,跳出2)步骤。记找到的坐标点的总数为m。
4)对m个点的坐标进行直线拟合,方向由Bm-1指向B0,则得到该断点B0沿道路断线指向的方向。
当n=4 时的指向结果的查找示意如图4所示。
图4 n=4 时道路断点指向示意图
其中关于n大小的确定可通过实验对比确认。过大的n值会导致过于平滑方向,而过小的n值则可能会使道路断线指向受到端点形状对骨架法简化的影响。通过实验后发现取n=5 可以取得较好的效果。
影像光谱的相似可以表示出2 个区域的相似性,而特征相似的2 个区域通常在图中距离较近且关系密切,因此可以用于提高道路断点匹配的准确性。道路断点区域的光谱以该断点坐标为中点,以d为边长,构建矩形,通过该矩形的范围裁剪原始遥感影像从而得到断点处周围的影像光谱信息,其中默认d=49。
而最后的联通区是否孤立的特征可以用于离体道路与主体道路的连接关系修复。由于一条道路必定与其他某条道路相连,因此孤立的道路则需要考虑修复其连通性。而道路断线所在联通区是否孤立则可通过以下方式进行判别:
1)对原始道路提取结果进行联通区划分,找到所有与图像边缘相接的联通区,记为Si,新建与结果等大的空图像qimg,将Si对应的区域赋值为1。
2)通过断点的坐标反查qimg中对应像素的值,若值为1,则表明该断点在主要道路联通区中;反之则表示该断点所在的道路断线没有与主要道路联通区相连,为孤立道路。
1.2.2 点间特征组合
当得到每个断点的特征后,需要将两两断点之间组成点对,并通过计算点对的特征判断点对是否匹配。有关点对间的特征有距离、指向角度差和光谱相似度,可通过下列方法计算得到:
首先是两断点之间距离。当两断点的距离越小,两断点是匹配断点的可能性越大。记2 个断点分别为A和B,则两点之间的距离可用公式(1)进行计算。
其次是2 条道路断线的指向角度差。当指向角度差等于180°,则表明2 条断线互相指向对方断线的内部方向,相连可能性最大;而当指向角度差等于0°,则表明2 条断线指向同一方向,相连可能最低。两断线之间的指向角度差指标可用公式(2)计算,其中sgn 表示符号函数,而angAB越趋近1 表示2 条断线的指向角度差越接近180°。
最后是2 个断点的区域光谱相似度。当2 个断点周围的光谱相似性高时,则表明2 个断点处于同一种环境中,则匹配概率较大。通过从训练数据集中截取固定大小的道路区域图像块,使用自监督对比学习网络SimCLR[13]训练了一个判断相似性的网络,将2个断点的区域影像对输入网络,从而得到2 个图像的光谱相似程度,即下列公式(3)所示。其中f表示训练好的SimCLR模型。
1.2.3 断点匹配
最后的匹配则是根据上述3 条点间特征综合得分进行筛选,对所有点对的点间特征按公式(4)进行线性归一化,然后根据公式(5)计算结果,所得的scoreAB值在0 到1 之间。其中a、b和c为权重系数,此处分别取值为2、2和1。
同时在距离和指向角度差上进行限制,具体规则如下:
1) 设定分数阈值Tscore,对于任意scoreAB>Tscore的点对AB加入备选点对,此处Tscore=0.5。
2) 设定距离阈值Tdis,对备选点对中任意disAB>Tdis的点对AB进行排除,此处Tdis=256。
3)设定角度差阈值Tang,对备选点对中任意angAB 4)若点对AB间的连线与另一条道路相交,则对该点对进行排除。 对找到的所有匹配断点对,按1.2.1中寻找道路断线指向的方法向后回溯t次,每次步长为s,则可找到包括2 个断点在内的2(t+1) 个点,此处取值为t=1,s=max(1,dis/4)。按照公式(6)对上述点进行3 次拟合,得到拟合函数g(x)。并在上述点范围内密集采样,使用g(x)计算拟合结果,并将所有结果点进行连接,得到修复完成的道路结果。 式中,ki(i=1,2,3)为多项式系数;b为偏置。 而对于孤立的联通区,若该区域的所有断点都未能匹配到其他位于主要联通区上的断点,则循环该联通区所有断点向其断线指向方向查找最近的交点。并在所有的交点中找到距离最低的交点进行连接。 修复绘制中的道路宽度问题,按断点在与其对应的断线指向的垂直方法的直线与原始道路边缘的2 个交点之间的距离计算,若为点对间的道路宽度,则将2个结果进行平均取值。 以文献[6] 中示例的Massachusetts Roads 数据集[14]图像为例,执行完成上述全部算法后,得到的结果及其处理的中间过程可视化如图5所示。其中Massachusetts Roads 数据集包含马萨诸塞州1171 张航拍影像,每张影像的长宽均为1500 像素,道路掩码来自对OpenStreetMap 的道路中心线栅格化生成,并扩展为7像素线宽。 图5 可视化结果 图5d为该图像断点位置、断线指向、区域光谱和联通区情况可视化。图上T表示该断点所在的联通区与图像边界相接,反之F表示该断点所在的联通区为孤立联通区。后方所接的数字为该联通区内共有断点的个数。 为了定量评估道路断线修复结果的效果,使用PP-LiteSeg网络[15]在DeepGlobe Road数据集[16]上进行了道路提取的训练,该数据集的训练集包含803 个遥感图像,图像长宽均为1024 像素,包含了来自全球不同地区的道路图像,该数据集提供了精确标注的道路掩码。通过将预测结果与经过k-means 聚类修复后和经过本文方法修复后的结果进行对比,分别在查准率P,查全率R和平衡F分数F1-Score上进行计算。其中上述评价指标的表达式如下公式(7-9)所示。 式中,TP为正样本被正确识别的数量;FP为误报的负样本数量;FN为漏报的正样本数量。 数据、标签及最终结果如图6所示。 图6 道路断线修复结果对比 由图6 可知,对于第一行数据,当断点间的位置分布有明显聚类中点时,K-means 可以比较好的匹配效果。而第二行数据中断点仅有2 个且距离较远,因此在聚类中被分为了2 个类别从而无法修复;而指向和光谱的协同克服了距离的阻碍,使得本文方法可以对该类型的道路断线进行修复。最后在第3 行的数据中,左下方的区域内点数较多,聚类时聚为一类,因此对于该区域的断点匹配无法提供指导;而同样基于有指向性的匹配可以较好地发现需要连接的断点;左上方由于2 点距离较近,因此容易聚类为一类,而相互的指向也趋近相反,容易识别为一对断点从而进行错误的连接修复。但由于本文方法还限制了2 点间的连线不能切割任意其他道路路线,因为能够正确的避免此类情况。 在40张图像的测试基准中,3种情况的定量统计结果如下表1所示。 表1 指标统计表/(%) 由表1 所示,由于断线连接的方法不可避免地都会出现错误连接,且修复部分不是按照真实影像上的道路提取要素而是生成的,因此检测的准确度有所下降。但查全率上升明显,表明最终的道路提取结果的漏检情况减少。且从F1-Score来看,综合查准率和查全率的结果均优于模型直接预测的结果,表明了修复后处理的有效性。而本文方法由于使用了更多的断点特征及点间特征来匹配断点,相比仅依靠距离进行聚类的方法能够有效减少错误连接,但由于未像K-means 聚类一样对断点间的距离进行限制,一些错误的连接造成了较高的FP,因此在查准率上可能反而有所下降;而正确连接和修复的结果又较多,因此在查全率上取得了较好结果。综合F1-Score来看,本文方法相比直接预测和K-means聚类修复的结果能够在道路的断线修复中起到更好的效果。 深度学习在计算机视觉领域的兴起使得遥感影像的智能解译也进入了快速发展,但由于遥感影像相比自然图像更加复杂,因此仅使用神经网络对遥感影像进行处理还达不到应用标准。针对在遥感道路检测中因为阴影等原因存在的道路断线问题,提出了一种综合多种道路断线端点特征和点间特征的道路断线修复方法,通过综合道路断线的指向、位置以及光谱等信息匹配近似的另一条断线,并使用三次曲线拟合的方法进行等宽度修复。通过实验,该方法将原始结果的F1-Score 提高了1.27%,达到了77.04%。表明该方法具有一定的有效性和鲁棒性,并对其他线性地物的断裂修复有一定参考价值。但当图上断点数量急剧增加时,该方法的运算时间也会增加较多。因此后续需要优化计算性能,以及将更多情况的道路断线纳入考虑,进一步提高算法的实用性和泛化能力。1.3 断线修复
2 实验结果与分析
3 结语