1. 引言
随着公路建设步伐的加快,公路维护的需求也变得越来越迫切,传统的人工巡检方法开始暴露出局限性。近年来,无人机航拍技术的崛起为公路标线的自动化检测分析带来了创新。由于航拍图像通常覆盖着广阔且复杂的区域,包括非公路区域,因此,如何从这些图像中精确提取出公路区域,成为了标线识别与提取的首要问题[1] [2]。当前,公路分割技术正朝着多元化的道路发展。例如,田亮[3]通过改进C-V水平集模型,实现了图像分割的新突破;余俊辰[4]采用最大类间方差法,提高了路面分割的效率和精度。此外,当公路区域被准确识别后,如何从复杂的背景中过滤出车辆等干扰物,成为了标线提取过程中的关键步骤。传统的基于手工设计的特征检测方法,如SIFT和Harris,因其效果不佳而逐渐被淘汰[5]。深度学习技术的迅猛发展,为车辆检测提供了新的可行方案。一些研究通过结合角点特征、HOG特征与SVM分类器,航拍图像中精准识别车辆;而另一些研究则借助滑动窗口与深度神经网络的结合,进一步提升了车辆检测的准确性。
在标线提取方面,介炫惠提出一种改进概率Hough变换和特征匹配算法,在车道线检测中发挥了重要的作用。Srivastava S等人通过采用多种过滤算法,标线检测的准确性得到了较大提升。李松泽等人将深度学习网络用于车道线区域的像素级分割,取得了显著的成果,为高速公路车道线的精确检测提供了有力的技术保障。受到这些研究方法的启发,本文提出了一种新的基于公路航拍影像的标线提取方法。该方法将深度学习技术与传统图像处理技术相结合,首先通过捕捉航拍影像中的颜色和梯度特征识别并分割出路面区域。随后,利用轮廓提取技术识别路面上的标线,并借助Faster R-CNN算法以及车辆的颜色、面积等特征排除标线区域中的车辆等干扰因素。最终,基于这些经过过滤的结果,能够精确地提取出路面标线。
2. 公路区域分割
公路分割是标线检测的前提,鉴于航拍图像中公路边界的清晰度和与周围环境的显著色差,同时注意到公路区域纹理的独特性及其与周围复杂纹理的对比,本文提出一种结合了颜色和纹理特征的公路分割算法,以精准识别公路区域。首先运用滑动窗口的方式对图像中的小块区域进行逐一分析,根据固定尺寸的窗口提取这些区域的局部图像特征。在窗口内,梯度信息对于表征纹理特征具有显著效果,通过对比不同窗口区域的梯度信息能够初步筛选出可能的公路区域。接下来,为了提升识别的准确性,对初步筛选出的公路区域进行颜色特性验证。通过排除与公路典型颜色不符的区域,进一步细化公路区域的识别结果。这种结合梯度与颜色的方法,能够高效且精确地确定公路在航拍图像中的具体位置。
公路区域定位算法的具体步骤为:
(1) 计算图像的一阶偏微分,得到每个像素的梯度值,计算方法如式(1)所示,将像素在8个不同方向上的梯度最大值作为梯度值,如式(2)所示。
(2) 设定一个梯度阈值s,并统计每个窗口内梯度值超过此阈值的像素比例PT和窗口的平均梯度AT,如式(3)、式(4)所示。式(4)中,Is为指示函数,用于判断像素的梯度是否超过设定阈值,具体定义如式(5)所示。基于实验数据的分析,设定PT和AT的阈值,将PT和AT值较高的区域识别为非公路区域,反之则判定为公路区域。
(1)
(2)
(3)
(4)
(5)
(3) 计算满足梯度条件像素点R、G、B灰度最大差值Mgray和平均灰度Agray,如式(6)、式(7)所示。利用式(8)评估这些像素点是否符合公路路面的颜色特性,对于不符合的像素点,将其归类为非路面区域。
(6)
(7)
(8)
(4) 为了得到一个更加清晰、准确的公路区域图像,形态学闭运算经上述处理的公路区域,以消除小的噪声点并填补小的孔洞。
3. 提取候选目标区域
3.1. 提取连通区域
二值化处理对路面图像进行预处理变得尤为重要,首先,依据初步识别的路面区域,计算出其平均灰度值GrayLevel,随后利用Ostu算法得到一个初始的分割阈值OstuLevel。为了增强二值化的精确度,采用调整公式level = max (OstuLevel, GrayLevel × 1.5)确定最终的二值化阈值level。最后,通过二值化处理提取得到连通区域,这些区域被视为潜在的标线候选区域。
3.2. 过滤非标线区域
然而,初步识别的连通区域中往往混入了一些非标线区域的干扰。为了排除这些干扰,综合考量面积和颜色特征。计算了每个连通区域的面积,并分析了其最小外接矩形的长宽比h/w。对于面积异常(过大或过小)或长宽比h/w小于1且宽度较大的区域,均将其从标线候选列表中剔除。对于经过初步筛选的候选区域,进一步分析其R、G、B三通道灰度中值,并判断其是否确实属于标线区域,任何不符合条件的区域都将被排除。经过这些处理流程,能够初步锁定标线所在的大致范围。
(9)
4. 车辆检测
尽管通过结合面积和颜色特征成功去除了大部分的非标线区域,但仍有部分区域,特别是车辆,难以被准确识别和剔除。这是因为车辆的形状和颜色具有极高的多样性,传统的识别方法难以应对这种复杂性。为了解决该问题,引入深度学习技术,特别是Faster R-CNN算法,以增强对航拍图像中车辆的检测能力。Faster R-CNN作为一种先进的目标检测框架,摒弃了传统的Selective Search方法,转而采用了RPN网络生成目标候选区域。
4.1. RPN
RPN网络作为全卷积神经网络架构的一种,通过引入一种高效的滑动窗口方式,用于识别输入特征图中的潜在目标区域。与传统的滑动窗口方法相比,RPN在每个特征图像素点周围自动创建多个窗口,这些锚窗口拥有多样化的长宽比(如1:1、1:2和2:1)以及多种尺寸(如128、256和512像素)。
RPN内部配备的分类器会对这些窗口进行评估,判断其是否包含目标物体,并为每个窗口赋予一个可信度评分。为了增强目标定位的精度,RPN还会对每个窗口进行边界框调整。当一个窗口与真实目标区域的重叠率高于设定的阈值时,标签为1;反之,若重叠率低于设定的下阈值,标签为0。对于标签为1的区域,计算其与真实目标之间的位置差异,实现精确的目标定位。
4.2. 输出层回归
Faster R-CNN框架的关键组成部分为两个输出层:一个利用softmax函数预测感兴趣区域(ROI)的类别,另一个计算这些ROI的检测框坐标。整个模型采用了一种综合的损失函数进行训练,损失函数为:
(10)
(11)
(12)
(13)
其中,Lcls损失函数用于评估分类概率的偏离程度;Lloc损失函数用于捕捉检测框坐标,真实坐标表示为v = (vx, vy, vw, vh),而预测坐标为
。这两个损失函数协作工作,共同提升了模型在分类精度和定位准确性两方面的性能。
4.3. Faster R-CNN实验分析
在无人机航拍图像的车辆检测研究中,针对多条公路制定了图像采集计划,搜集得到相关的图像数据。考虑到航拍图像特有的大尺寸、高分辨率特性,以及车辆目标相对较小的实际情况,采用一种基于公路宽度的图像分割方法,通过精确的正方形窗口截取车辆区域,将其统一规范化为600 × 600,以匹配模型训练的需求。在数据标定方面,遵循Pascal VOC 2007数据集的标定方式,确保标定的精确度和一致性。在数据准备阶段,挑选并构建了包含10000张车辆图片的训练集,并进一步从3条不同公路补充了约3000张图像作为测试集。
通过RPN网络与分类网络的联合优化训练,并借助Nvidia GTX 1080 GPU的计算性能,训练得到高效的车辆检测模型。在测试过程中,采用滑动窗口方式,根据公路实际宽度动态调整窗口大小,对图像进行裁剪与缩放,然后将其输入到Faster R-CNN模型中进行车辆检测。最后,综合所有窗口的检测结果,得到完整的图像检测结果,整个检测流程如图1所示。在评估检测效果时,依据检测框与真实标记框的重叠度作为评价准则,当重叠度达到或超过70%时,视其为成功的检测。
Figure 1. Flowchart of the detection algorithm
图1. 检测算法流程
在初步测试阶段,观察到货车的检测结果受到装载货物后外观变化的较大影响,相比之下,正常轿车的检测表现更为出色。为了准确评估模型的性能,对多条公路的测试集进行了测试,结果如表1所示。
Table 1. Batch test results
表1. 批量测试结果
测试集 |
车辆总数/辆 |
正确识别数/辆 |
正确率/% |
平均正确率/% |
公路A-路段1 |
1713 |
1409 |
82.3 |
81.5 |
公路A-路段2 |
1746 |
1411 |
80.9 |
公路B-路段1 |
2097 |
1638 |
78.1 |
77.6 |
公路B-路段2 |
1871 |
1439 |
77.1 |
公路C-路段1 |
2745 |
2112 |
76.7 |
77.1 |
公路C-路段2 |
2820 |
2191 |
77.4 |
总和 |
12992 |
10200 |
78.5 |
78.5 |
检测正确率计算公式为:
(14)
其中,Rs为正确识别车辆数;Ts为车辆总数量。
通过对比不同公路的测试结果,得到公路A的检测效果尤为显著,而公路C的检测效果则稍显不足。这种差异可能与公路A车道较少、飞行高度较低、车辆模型较大且数量较少,而公路C车道多、飞行高度高、车辆小而多等道路条件有关,导致部分车辆被遗漏或误检。尽管如此,检测结果大部分仍然为车辆,只是未能满足70%的重叠度标准。综合评估,该模型的平均检测正确率达到了80%,满足车辆检测的实际应用需求。
5. 实验结果分析
在本次实验中,借助无人机技术从多个路段搜集了图像数据,并将其统一标准化为4000 × 3000像素的高清分辨率。基于Intel Core i7 CPU和8G内存的硬件配置,利用C++编程语言构建了核心算法体系。为了验证这一算法的性能,在多个路段进行了实地检测,还与其他算法进行了精度上的比较。将准确率P和召回率R作为精度指标,表示为:
(15)
(16)
其中,TP表示真正例,FN表示假反例,FP表示假正例,TN表示真反例。
为了验证算法的广泛适用性,利用不同区域的图像数据进行测试,并通过图2展示了部分公路航拍图像的标线检测结果如图2所示,检测结果如表2所示。
Figure 2. Partial lane marking detection results
图2. 部分标线检测结果
Table 2. Statistics of lane marking detection results
表2. 标线检测结果统计
公路 |
标线总数/个 |
准确率/% |
召回率/% |
平均每张时间/s |
公路A-路段1 |
3909 |
98.3 |
96.8 |
0.9 |
公路A-路段2 |
3993 |
98.2 |
96.6 |
1.0 |
公路B-路段1 |
4281 |
97.6 |
94.7 |
1.0 |
公路B-路段2 |
4197 |
97.9 |
93.9 |
1.0 |
公路C-路段1 |
6369 |
97.4 |
94.0 |
1.1 |
公路C-路段2 |
7283 |
97.3 |
95.5 |
0.9 |
总和 |
30032 |
97.7 |
94.9 |
1.0 |
通过表2可知,本文算法在标线检测方面表现出色,平均召回率达到了94.9%,准确率更是高达97%以上,证明了该算法的高精度。然而,由于航拍图像尺寸较大,处理每张图像大约需要1 s的时间。在错误分析过程中,发现一些公路设施如隔离护栏等,在视觉上容易与标线混淆,给算法带来了识别上的困难。此外,车辆和树木的阴影也对标线识别产生了一定程度的干扰,尤其是在车辆与标线距离较近时,标线容易被误判或遗漏。
为了进一步探究Faster R-CNN在提升检测性能方面的作用,进行了对比实验,结果如表3所示。实验结果显示,在没有使用Faster R-CNN的情况下,虽然召回率略高,但准确率却相对偏低,存在较多的误检情况。然而,在引入Faster R-CNN进行车辆滤除后,虽然召回率略有下降,但准确率得到了显著提升,充分验证了Faster R-CNN在车辆滤除方面的有效性。
Table 3. Comparison of accuracy in lane marking detection results using different methods
表3. 不同方法标线检测结果精度对比
方法 |
准确率/% |
召回率/% |
本文方法 |
97.7 |
94.9 |
未采用Faster R-CNN方法 |
88.9 |
98.0 |
文献[3] |
93.9 |
91.7 |
文献[4] |
96.3 |
89.2 |
文献[5] |
82.8 |
79.2 |
此外,对比了本实验方法与现有标线检测方法的应用效果,现有方法涵盖了图像处理技术和深度学习技术,其中文献[3] [4]侧重于传统的图像处理技术,而文献[5]则采用了深度学习模型。通过对比分析,得到本文结合图像处理和深度学习的综合方法,不仅保持了高准确率,还实现了较高的召回率,相较于单一技术,表现出了更加出色的检测性能和更广泛的适用场景。
6. 结束语
本文提出了一种新的公路标线检测方法,首先,通过集成图像的颜色和梯度特征,提出一种公路分割方法,精准地识别航拍影像中的公路。此外,为了加强算法的精度,结合深度学习中的Faster R-CNN和传统图像处理算法,有效去除了非标线目标的干扰。Faster R-CNN在车辆检测方面表现出色,显著减少了路面车辆对标线检测的影响,从而显著提高了整体检测的准确性。经过实验测试,得到本文算法在多种公路场景均表现出色,满足实际应用的要求。