高分辨率遥感影像的斑马线检测与识别算法
2022-11-04张婉莹佟喜峰
张婉莹 佟喜峰
(东北石油大学计算机与信息技术学院 黑龙江大庆 163318)
随着我国城市不断发展重建,道路结构也随之变得更加复杂,导致交通事故频频发生,因此,智能交通引起了广泛的关注。众所周知,斑马线是道路交叉口的安全标志之一。随着城市交通的发展,为致力于智慧交通,减少交通事故的发生,斑马线的检测引起了国内外学者的关注。闫利等[1]使用路面俯视投影获得街景图像,首先分块计算俯视图像生成双极系数图,经过形态学处理后对候选区域进行hough变换,实现了斑马线自动定位。文献[2]依据斑马线灰度直方图函数曲线的分布,统计出Canny算法的阈值进行了斑马线边缘检测,考虑到斑马线形状特征,利用Hough变换提取直线,解决了盲人导航系统中斑马线检测的问题,并对夜晚环境下受污染的斑马线有良好的识别效果。黄新等[3]结合斑马线自身的图像特征,以双极系数法为研究基础,改进了图像灰度化和线段检测算法,提出了EDLines(Edge Drawing Lines)算法和综合线性判别式分析LDA(Linear Discriminant Analy-sis)的检测算法,斑马线识别准确率可达90.3%,取得了良好的实验结果。熊平等[4]首先利用卷神经网络初步确定斑马线区域,然后人工提取斑马线特征,通过梯度极大值抑制法最终确定斑马线区域,实验结果表明,该算法在精度和速度上确定了良好的效果。车宁等[5]针对识别斑马线实时性差和准确率低等问题,先使用Sobel算子提取斑马线垂直方向的边缘信息,在此基础上,再使用Hough变换进一步精确地检测出斑马线,将该算法在白天和夜晚两种环境下进行实验,分别取得了97.56%和88.67%的准确率,平均耗时33ms左右,满足实际工程要求。杨冲[6]实现了高分辨率航空影像的斑马线识别与重建,使用灰度共生矩阵(GLCM)和二维Gabor滤波器提取了图像的多种特征信息,然后利用JointBoost分类器完成了斑马线的识别,采用斑马线空间重复规则建模重建斑马线,实验结果表明,该方法对破损严重的斑马线识别效果较差。黄生鹏等[7]提出一种改进的Unet模型识别斑马线方法,相比于原Une网络在分割精度上提高了1.8%。程换新等[8]为了提高传统斑马线检测算法的精度和速度,提出了改进的SegNet网络模型,使用深度可分离卷积代替了编码器的普通卷积层,并去掉了原始编码器结构中的池化层,实验结果表明,该方法较传统的斑马线检测算法在精度和速度上均有提升,为斑马线识别的机器视觉识别提供了技术支持。周豹等[9]首先对斑马线灰度图进行直方图均衡化处理,减少由于光照不均匀导致图片出现高亮的现象,然后再进行二值化操作得到较完整的斑马线结构,最后使用边缘检测算法实现了斑马线识别,实验表明,对于光照不均匀的斑马线有良好的识别效果。本文使用深度学习和图像处理相结合的方法实现了斑马线检测,实验结果表明,该方法在准确性和实时性取得了不错的效果。
一、斑马线数据集构建
使用Google高清地图截取黑龙江省大庆市萨尔图区影像作为本实验室数据集,共截取1000张512*512大小图像。使用labelme标注工具制作标签,为了提高模型的泛化能力,将原图像和标签图像通过随机旋转和镜像后扩增到4707张,最后得到训练集4607张,测试集100张。
二、图像通道合并
为了提高深度学习的网络模型的检测精度,本文通过一系列的图像处理算法得到图像的第四通道,详细的图像处理流程如图1所示。
图1 图像处理流程图
(一)图像灰度化。遥感影像在获取过程中,很容易受到天气、辐射等因素的影响,导致图像质量受到影响。为了减少在图像处理过程中图像信息的损失,采用分量法对图像进行灰度化操作,具体操作公式如(1)-(3)所示。
(二)图像去噪。本文主要采用中值滤波和高斯滤波去除图像噪声。中值滤波[10]使用非线性的图像平滑技术,能够在有效地抑制脉冲噪声和椒盐噪声的同时也更完整地保留了图像的边缘信息。与均值滤波不同,中值滤波是将所选窗口内的像素值排序后取中间值,然后替换当前像素点的值,而均值滤波像素点的取值是窗口内所有像素点的平均值。例如去3*3大小的矩阵,元素值为:{1,4,5,7,9,10,12,15,18},其中将9赋值给矩阵的中心点,然后依次使用滑窗更新所有像素值。与中值滤波不同,高斯滤波[11]是一种线性滤波器,对高斯噪声和服从动态分布的噪声有较好的平滑作用。它与均值滤波的实现原理相似,都是将被选窗口内的像素平均值作为目标像素值,不同的是使用的模板系数不同。高斯滤波最常用的实现方式是滑动窗口卷积,简单来说,就是将滑窗内的图像像素值与高斯核进行卷积操作,卷积后的结果和作为最终的输出结果,可概括为公式(4):
其中*为卷积操作;Gσ为标准差是σ的二维高斯核,定义为:
(三)图像二值化。图像二值化可以将斑马线区域和背景区分出来,为后续的图像通道合并做准备。对灰度图像最常用的二值化方法是阈值分割法,考虑到本实验数据集在获取过程中受多种因素影响,目标区域和边界的阈值无法确定,所以本文使用灰度图与去噪后图像的差值的均值作为动态阈值进行图像二值化。
(四)形态学处理。由于经过二值化处理后,图像可能会出现空洞或毛刺现象,所以使用形态学处理进一步填补图像丢失的信息。开运算和闭运算是一系列的图像腐蚀和膨胀操作,且膨胀和腐蚀是一对对偶运算。开运算是先进行腐蚀操作,使图像的轮廓向内缩小一圈,然后再进行腐蚀操作将图像的轮廓向外扩大一圈,可以断开细小的连接和去除细毛刺,起到图像平滑的作用。闭运算与开运算操作恰好相反,先对图像进行膨胀后再腐蚀,同样可以起到平滑的作用,不同的是它可以连接细小的断裂,填补小的孔洞。且开运算和闭运算的平滑程度是由结构元素决定的,结构元素是由1和0组成的矩阵,矩阵越大,则平滑程度就越强。
(五)通道合并。由于遥感影像地物复杂,在进行斑马线分割时,斑马线周围嘈杂的地物严重影响了分割准确度。图像的通道融合可以还原图像的缺失信息,提高图像信息利用率。通过观察发现,斑马线具有特殊的形状和颜色特征,斑马线的边缘处存在明显的阈值变化,可采用阈值分割方法预分割斑马线区域,并将阈值分割后的图像作为图像的第四通道。算法1给出了图像通道合并算法的详细过程,二值化结果如图2所示。
图2 二值化结果图
三、网络训练
(一)网络模型结构。使用加入SENet[12](特征压缩激活模块)的U_Net[13]网络作为实验网络,网络模型结构如图3所示。其中,将U_Net的编码器结构部分替换成了VGG16[14]的网络结构,目的是使用VGG16在ImageNet上的预训练权重初始化编码器部分的网络参数,利用迁移学习解决数据集不足的问题,降低模型的过拟合程度。
图3 网络模型结构
SENet是一种通道注意力机制,结构如图4所示。在每个编码器块和解码器块后加入SENet(Squeeze-and-Excitation),强化对有用特征的表达,抑制无用特征,通过对卷积特征的通道相关性进行建模来提高表示能力。
图4 SENet
(二)试验环境及参数。实验基于Keras深度学习框架设计,运行环境CPU为I5 10400,GPU为RTX2070显存8G,内存24G。在模型的训练过程中,根据数据情况,将batch_size设置为2,在训练前50次迭代采用学习率为10-3,并冻结前17层网络;后50次迭代将学习率降为10-5,解冻前17层网络加入网络训练,当网络损失值连续三次不下降时降低学习率,当持续不下降时则终止训练。
四、试验结果及分析
为了验证本文提出四通道的斑马线检测算法的有效性,我们将本文的方法与三通道的U_Net网络进行对比,图5给出了两个实验的效果图。从图中可以看到,本文方法对斑马线边缘处的检测效果更好。使用精确度(Precision)、召回率(Recall)、F1-score和平均交并比(Mean Intersection over Union,mIoU) 作为实验的评价指标,具体结果如图6所示。从图中可以看出,本节网路与对比网络在召回率和F-score的差别不大,但是精确度却比对比网络高了2.3%。
图5 实验效果图
图6 评价指标
五、结论
本文提出了基于遥感影像斑马线的检测算法,该方法主要是对数据集进行预处理来提高网络模型的检测精度。实验结果表明,本文提出方法在检测的准确度上有所提升。