基于位置数据融合的道路提取方法和***
技术领域
本发明涉及图像处理技术,具体涉及基于位置数据融合的道路提取方法和***。
背景技术
基于遥感影像的道路区域分割数字化地图、道路网络更新、城市规划、自动驾驶、路径规划、道路导航、道路破损检测、应急救援等领域有广泛的应用场景。道路的语义分割有其独特性和困难性,具体表现:(1)道路细长,虽占据整张影像比例偏小,但往往整体跨度覆盖整张影像;(2)拓扑关系复杂,体现在多条道路相互交叉连通的情况;(3)纹理特征容易混淆于周边背景环境;(4)因树木、阴影、建筑物等遮挡造成提取的道路不连通;(5)几何特征与河流、铁路、沟壑等相似,专业人员也难以判别。
后面三点(3)-(5)可以统一为道路特征和非道路特征可区分性差的问题,是影响道路提取精度提高的几个主要问题。本申请直面上述问题给道路对象提取带来的困难性,期望改善道路的连通性道路特征可区分性对提高道路区域分割的影响,全面提高道路提取的精度。
发明内容
本发明所要解决的技术问题是现有技术中对于道路的语义分割存在很多困难,目的在于提供基于位置数据融合的道路提取方法和***,解决上述问题。
本发明通过下述技术方案实现:
基于位置数据融合的道路提取方法,包括以下步骤:
S1:使用直方图均衡化对原始遥感影像数据进行加强处理;
S2:将GNSS位置数据和经加强处理的遥感影像在通道方向进行叠加生成通道数加一的输入数据M1;
S3:将所述输入数据M1输入神经网络,进行多层卷积编解码学习并在网络倒数第二层输出多维度数据F10;
S4:将所述神经网络倒数第二层的多通道输出数据F10与所述原始输入图像M1沿通道拼接生成第一输入数据F20;将所述网络输出的最后一层数据作为第二输入数据F30;
S5:将所述第一输入数据F20和第二输入数据F30输入迭代强化模块IteRe(IteRe具有t层基础块)生成第一次预测特征图,并将经迭代强化模块输出的所述预测数据进行sigmoid非线性变换层后生成道路预测数据pred1;将所述上一个基础块生成的第一次预测特征图作为下一个基础块的输入数据,反复迭代执行,直至所述t层基础块全部执行完毕;
S6:将每次经迭代强化基础块输出的所述道路预测数据predt与原始标签数据计算损失值losst,并计算t个losst的和loss;直到收敛,结束训练。
本发明应用时,首先本发明创造性的使用了GNSS数据和遥感图像数据叠加的方式进行道路预测,解决了因树木、阴影、建筑物等遮挡造成提取的道路不连通的问题;然后进行正常的卷积处理,卷积处理本身会生成多层的特征输出数据,而本发明在主干网络后加入了一个通用的多层预测模型就是迭代强化模块,该迭代强化模块的第一层输入的两个数据第一输入数据和第二输入数据由主干网络输出获得,主干网络最后一层输出的数据则作为下一层多层预测模型的第二输入数据。本发明通过设置上述步骤,充分发挥其在捕获结构依赖性方面的作用,为空间信息上下文语义推理提供了另一种方法。
进一步的,步骤S5包括以下子步骤:
根据下式获取第t层basic block的输入数据:
所述F3t为所述多层预测模型第t层的第二输入数据;F5t-1为所述多层预测模型第t-1层输出的所述预测特征图,t表示所述多层预测模型的索引。
进一步的,步骤S5还包括以下子步骤:
所述多层预测模型中根据下式获取预测特征图:
F4t=conc(F20,F3t)
F5t=conv(F4t)
predt=sigmoid(F5t)
所述conc为沿通道拼接,conv为卷积操作,predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图,t=1,…,n。
进一步的,步骤S6包括以下步骤:
所述含n个基础块的迭代加强模块,每一个基础块均生成一个损失函数losst,将每一个基础块所述损失函数叠加后生成总的损失函数loss:
losst=BCELoss(predt,label)
所述BCELoss(predt,label)为predt与标签label的损失值;t表示所述多层预测模型的索引,n为所述多层预测模型基础块的层数。
基于位置数据融合的道路提取***,包括:
预处理单元:用于使用直方图均衡化对原始遥感影像数据进行加强处理;
叠加单元:用于GNSS位置数据和经加强处理的遥感影像在通道方向进行叠加生成通道数加一的输入数据M1;
卷积学习单元:用于将所述输入数据M1输入神经网络,进行多层卷积编解码学习并在网络倒数第二层输出多维度数据F10;
拼接单元:用于将所述神经网络倒数第二层的多通道输出数据F10与所述原始输入图像M1沿通道拼接生成第一输入数据F20;将所述网络输出的最后一层数据作为第二输入数据F30;
迭代强化模块IteRe:用于输入所述第一输入数据F20和第二输入数据F30生成第一次预测特征图,并将经迭代强化模块输出的所述预测数据进行sigmoid非线性变换层后生成道路预测数据pred1;将所述上一个基础块生成的第一次预测特征图作为下一个基础块的输入数据,反复迭代执行,直至所述t层基础块全部执行完毕;
损失计算单元:用于将每次经迭代强化基础块输出的所述道路预测数据predt与原始标签数据计算损失值losst,并计算t个losst的和loss;直到收敛,结束训练。
进一步的,根据下式获取第t层basic block的输入数据:
所述F3t为所述多层预测模型第t层的第二输入数据;F5t-1为所述多层预测模型第t-1层输出的所述预测特征图,t表示所述多层预测模型的索引。
进一步的,所述多层预测模型中根据下式获取预测特征图:
F4t=conc(F20,F3t)
F5t=conv(F4t)
predt=sigmoid(F5t)
所述conc为沿通道拼接,conv为卷积操作,predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图,t=1,…,n。
进一步的,所述含n个基础块的迭代加强模块,每一个基础块均生成一个损失函数losst,将每一个基础块所述损失函数叠加后生成总的损失函数loss:
losst=BCELoss(predt,label)
所述BCELoss(predt,label)为predt与标签label的损失值;t表示所述多层预测模型的索引,n为所述多层预测模型基础块的层数。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明基于位置数据融合的道路提取方法和***,在主干网络输出末端加入具备后处理功能的迭代加强模块(Iteration Reinforcement,IteRe),将原始输入数据的全部信息和网络输出结果拼接融合再训练。发明的迭代加强模块IteRe由n个基础块(basicblock)组成。通过引入多次迭代调优技术,使得预测结果在经过多次调优后,能够达到一个最优的稳定结果,在提升模型道路整体识别率的情况下也改善了道路的连通性识别。引入多basic block结构提升模型性能,该模块具有通用性。使用直方图均衡化算法对遥感影像进行增强处理,提高影像对比度,该方法具有通用性。通过实验,本发明不仅提高了道路提取的mIoU,道路连通指标APLS表现优秀,有效改善了道路语义分割领域道路连通性难的问题。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例
如图1所示,本发明基于位置数据融合的道路提取方法,包括以下步骤:
S1:使用直方图均衡化对原始遥感影像数据进行加强处理;
S2:将GNSS位置数据和经加强处理的遥感影像在通道方向进行叠加生成通道数加一的输入数据M1;
S3:将所述输入数据M1输入神经网络,进行多层卷积编解码学习并在网络倒数第二层输出多维度数据F10;
S4:将所述神经网络倒数第二层的多通道输出数据F10与所述原始输入图像M1沿通道拼接生成第一输入数据F20;将所述网络输出的最后一层数据作为第二输入数据F30;
S5:将所述第一输入数据F20和第二输入数据F30输入迭代强化模块IteRe(IteRe具有t层基础块)生成第一次预测特征图,并将经迭代强化模块输出的所述预测数据进行sigmoid非线性变换层后生成道路预测数据pred1;将所述上一个基础块生成的第一次预测特征图作为下一个基础块的输入数据,反复迭代执行,直至所述t层基础块全部执行完毕;
S6:将每次经迭代强化基础块输出的所述道路预测数据predt与原始标签数据计算损失值losst,并计算t个losst的和loss;直到收敛,结束训练。
本实施例实施时,首先本发明创造性的使用了GNSS数据和遥感图像数据叠加的方式进行道路预测,解决了因树木、阴影、建筑物等遮挡造成提取的道路不连通的问题,然后进行正常的卷积处理,卷积处理本身会生成多层的卷积数据,而本发明在普通的卷积处理技术后加入了一个多层预测模型,该多层预测模型的第一层输入的两个数据第一输入数据和第二输入数据可以初始即获得,而输出的数据则作为下一层多层预测模型的第二输入数据。本发明通过设置上述步骤,以图卷积和注意力机制为基本块构建模型,充分发挥其在捕获结构依赖性方面的作用,为空间信息上下文语义推理提供了另一种方法,同时注意力机制的弥补了图。
在本实施例中,多层卷积处理采用D-LinkNet结构为例进行说明,其他更换主干网络的方式也都在本申请保护范围之内。在D-LinkNet末尾输出的地方添加basic block的模块,模块的个数n,basic block即为多层预测模型,当前head block网络分支的输出特征图会作为下一个basic block的输入,如下式所示:
D-LinkNet(X)→F10,F30. (1)
其中,F10,F30分别为D-LinkNet的倒数第二层和最后一层的输出。
F20=concate(F10,input) (2)
如公式(2),F20是F10与原始输入图像沿通道拼接后得到的结果,conc(.)表示按通道拼接。F3t为第t个basic block模块的输入。当t=1时,F3t=F30,当t>1时,F3t=F5t-1,其中t=1,…,n,而n是basic block的个数,F5t-1是第t-1个head bock的输出特征图。
如公式(4),F4t为第t个head block中F20与F3t沿通道拼接的结果。
F4t=conc(F20,F3t) t=1,…,n (4)
如公式(5),F4t最后送入一个kernel size is 3,dilation is 1的卷积中得到预测特征图F5t,conv(.)代表对输入特征图进行卷积操作。
F5t=conv(F4t) t=1,…,n (5)
如公式(3),当前head block不为最后一个时,F5t沿虚线箭头的方向传递给下一个headblock的F3t+1,然后重复(3-5)。如果当前head block为最后一个时,F5t经过sigmoid非线性变换层后得到预测的predt。
predt=sigmoid(F5t) t=1,…,n (6)
为了进一步的说明本实施例的工作过程,还包括以下步骤:
为了进一步的说明本实施例的工作过程,步骤S5包括以下子步骤:
根据下式获取第t个basicblock输入数据:
其中,F3t为所述多层预测模型第t层的第二输入数据;F5t-1为所述多层预测模型第t-1层输出的所述预测特征图,t表示所述多层预测模型的索引。
为了进一步的说明本实施例的工作过程,步骤S5还包括以下子步骤:
所述多层预测模型中根据下式获取预测特征图:
F4t=conc(F20,F3t)
F5t=conv(F4t)
predt=sigmoid(F5t)
其中,predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图,conc为沿通道拼接,conv为卷积操作。
为了进一步的说明本实施例的工作过程,步骤S6包括以下子步骤:
根据下式获取所述多层预测模型的总损失值:
predt=sigmoid(F5t)
losst=BCELoss(predt,label)
其中,F5t为所述多层预测模型中第t层输出的预测特征图;predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图;BCELoss(predt,label)为predt与标签label的损失值;t表示所述多层预测模型的索引,n为所述多层预测模型的层数。
基于位置数据融合的道路提取***,包括:
预处理单元:用于使用直方图均衡化对原始遥感影像数据进行加强处理;
叠加单元:用于GNSS位置数据和经加强处理的遥感影像在通道方向进行叠加生成通道数加一的输入数据M1;
卷积学习单元:用于将所述输入数据M1输入神经网络,进行多层卷积编解码学习并在网络倒数第二层输出多维度数据F10;
拼接单元:用于将所述神经网络倒数第二层的多通道输出数据F10与所述原始输入图像M1沿通道拼接生成第一输入数据F20;将所述网络输出的最后一层数据作为第二输入数据F30;
迭代强化模块IteRe:用于输入所述第一输入数据F20和第二输入数据F30生成第一次预测特征图,并将经迭代强化模块输出的所述预测数据进行sigmoid非线性变换层后生成道路预测数据pred1;将所述上一个基础块生成的第一次预测特征图作为下一个基础块的输入数据,反复迭代执行,直至所述t层基础块全部执行完毕;
损失计算单元:用于将每次经迭代强化基础块输出的所述道路预测数据predt与原始标签数据计算损失值losst,并计算t个losst的和loss;直到收敛,结束训练。
为了进一步的说明本实施例的工作过程,所述头处理单元根据下式获取第t个basicblock输入数据:
其中,F3t为所述多层预测模型第t层的第二输入数据;F5t-1为所述多层预测模型第t-1层输出的所述预测特征图,t表示所述多层预测模型的索引。
为了进一步的说明本实施例的工作过程,所述多层预测模型中根据下式获取预测特征图:
F4t=conc(F20,F3t)
F5t=conv(F4t)
predt=sigmoid(F5t)
其中,predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图,conc为沿通道拼接,conv为卷积操作。
为了进一步的说明本实施例的工作过程,所述损失单元根据下式获取所述多层预测模型的总损失值:
predt=sigmoid(F5t)
losst=BCELoss(predt,label)
其中,F5t为所述多层预测模型中第t层输出的预测特征图;predt为经过sigmoid非线性变换层处理的第t层输出的预测特征图;BCELoss(predt,label)为predt与标签label的损失值;t表示所述多层预测模型的索引,n为所述多层预测模型的层数。
为了进一步的说明本实施例的工作过程,本实施例采用的训练、验证、测试数据集来自公开数据集BeiJingDataSet。数据种类包括遥感影像和GPS数据。
RS数据来自公开数据集BeiJingDataSet。总共使用348张遥感影像,图片尺寸为1024x1024,像素分辨率为0.5m/pixel。278张用于训练验证集,70张用于测试,每张RS数据都对应一张GPS数据。训练过程中训练集和验证集从训练验证集中按照9:1随机划分。
GPS数据来自BeiJingDataSet。GPS数据来自北京28000出租车一周的8100000次采样。经过筛选,只保留与遥感影像对应区域GPS点。BeiJing数据集中GPS数据包含的字段有纬度、经度、速度及采样间隔,GPS数据可表示为,Point=<Lat,Lon>。在使用时,生成一张与原始图片大小相同的空白图片,将经纬度坐标同图片像素位置进行对应,有GPS点对应的像素点的值设为255,没有GPS点对应的像素点的值设置为零。和原始图像进行对照可以发现,GPS点集中在主干道路区域,而一些在遥感影像上被树木遮挡的地方也出现了明显的GPS点聚集的情况,因此可以通过GPS点出现的位置和密集程度可以推断是否存在道路。
使用BeiJing数据集进行实验,所有实验在一张NVIDIAV100 32G显卡上进行。使用adma作为优化器,batchsize设置为16,初始学习率为1e-4,如果连续出现6个epoch验证集损失值没有下降到低于历史最低值,学习率乘以0.5。训练过程中对数据进行随机增强。训练周期超过60epoch或者学习率低于1e-7时停止训练。
实验结果使用平均交并比(meanintersection over union,mIoU)来进行评价。对单独输入的遥感影像及遥感影像与GPS融合后两种数据输入后的输出结果进行对比。另外,对比多种先进模型。
实验结果表明:(1)所有的参与实验的模型中的测试结果均显示,在输入部分加入GPS数据能够提升模型的性能。因此,GPS作为附加输入数据能够提升模型在识别道路时的性能,(2)对比不同模型的测试结果发现,本发明的结果明显优于其它几个网络结果。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。具体的,本发明“融合位置数据”“迭代强化模块”“直方图数据预处理”,特别是“迭代强化模块”的设计可以嵌入到任何主干神经网络的输出末端,可以用在图像分割领域和其他智能应用领域;可以嵌入到有关的智能应用***中,均受本专利保护。