掌桥专利:专业的专利平台
掌桥专利
首页

交通非现场的基于AI技术的斑马线区域自动检测方法

文献发布时间:2023-06-19 11:57:35


交通非现场的基于AI技术的斑马线区域自动检测方法

技术领域

本发明属于图像识别领域,具体涉及一种交通非现场的基于AI技术的斑马线自动检测方法。

背景技术

斑马线检测技术早有人研究,但现有技术大多都是基于传统图像处理方法,比如通过Canny算法进行边缘检测,然后使用Hough变换提取直线,最后根据提取到的直线来进行斑马线的识别。但这种方法对图像要求较高,光照、行人、车辆、恶劣天气都会对其造成影响,局限性较强,无法应付复杂的交通场景。近些年来,随着交通设施和违法抓拍系统的健全,在一定程度上减少了交通事故的发生。但是其违法数据都是由人工筛选,分类出违法、不违法数据。其数据量庞大,人工效率低,因此需要交通违法行为的二次检测方法来帮助人工缓解压力。而要进行礼让行人的违法检测,斑马线的检测是必不可少的。本文针对的场景是交通执法二次违法检测中的斑马线检测。由于实际交通场景复杂多变,传统图像方法无法有效处理,因此亟需一种即使在复杂多变的场景中也可以有效准确的识别出斑马线的检测方法。

发明内容

本发明的目的在于解决现有技术中存在的问题,并提供一种交通非现场的基于AI技术的斑马线自动检测方法。

本发明所采用的具体技术方案如下:

一种交通非现场的基于AI技术的斑马线区域自动检测方法,其步骤如下:

S1、获取由包含斑马线的图片样本组成的训练数据集,每一张图片样本均包含标注,所述标注包括图片中每一条斑马线的中心线两端端点坐标以及目标类别;以每一条斑马线的中心线两端端点作为对角顶点形成一个标注框;

S2、以Darknet-53网络作为骨架网络构建斑马线识别模型,模型输入为包含斑马线的图片,Darknet-53网络从输入的图片中提取3种尺寸的特征图,并通过9个不同尺寸的锚框进行多尺度目标检测,输出图片中每条斑马线的边界框数据,所述边界框数据包括边界框中心点坐标、边界框宽度、边界框高度、第一斜率、第二斜率、目标类别和置信度;所述第一斜率和第一斜率均以设定阈值为基准二值化为0或1,第一斜率为1且第二斜率为0表示该边界框中的斑马线位于边界框的主对角线上,第一斜率为0且第二斜率为1表示该边界框中的斑马线位于边界框的副对角线上;

S3、利用所述训练数据集,通过最小化总损失函数对斑马线识别模型进行训练,所有样本的标注预先通过维度聚类,获得所述9个不同尺寸的锚框;所述总损失函数为边界框损失、置信度和类别损失的加权和,且所述边界框损失包含边界框中心坐标误差、边界框宽度误差、边界框高度误差、第一斜率误差和第二斜率误差;

S4、将含有斑马线的待识别图片输入训练后的所述斑马线识别模型中,得到待识别图片中每条斑马线的边界框数据;

S5、针对S4中得到的待识别图片内每条斑马线的边界框数据,根据其中的第一斜率和第二斜率确定斑马线所在的边界框对角线,然后将边界框的中心点坐标、宽度和高度进行坐标变换,得到斑马线所在的边界框对角线的两个顶点坐标,作为边界框中斑马线的两个端点坐标;

S6、对待识别图片中所有斑马线每一侧的端点进行多项式拟合,得到分别贴合斑马线区域上边缘和下边缘的两条横线,然后将两条横线与待识别图片中位于最左侧和最右侧的两条斑马线所在直线进行围合,得到一个四边形区域作为待识别图片中的斑马线区域。

作为优选,所述维度聚类采用改进k-means聚类,通过计算标注框之间的距离d来找到9个聚类中心,以获取最佳覆盖锚框:

d(box,centroid)=1-IOU(box,centroid)

其中:d表示后面二者之间的距离,box代表标注框,centroid代表聚类中心,IOU是计算标注框和聚类中心的交并比。

作为优选,所述斑马线识别模型中,Darknet-53网络从输入的图片中提取的3种尺寸的特征图大小分别为:(13*13),(26*26),(52*52),每个特征图都有N*N个网格,N对应每个特征图的大小,N=13或26或52;所述9个不同尺寸的锚框按大小排序后分为三组,最大的三个锚框为一组,最小的三个锚框为一组,中间的三个锚框为一组,每一组锚框分别对应一个特征图,分别用于预测大、中、小三种尺寸的斑马线。

作为优选,在模型训练过程中,单个图片样本的所述总损失函数为:

loss=lbox+lobj+lcls

其中lbox代表边界框带来的损失,lobj代表置信度带来的损失,lcls代表类别带来的损失;且

式中,λ

式中,λ

式中,λ

作为优选,所述图片样本为路口监控摄像头拍摄到的车辆不礼让行人违章时的包含斑马线的图片。

作为优选,每个图片样本的标注内容为(c,x1,y1,x2,y2),c代表线的类别,(x1,y1)代表一条斑马线中位于中心点左侧的端点坐标,(x2,y2)代表一条斑马线中位于中心点右侧的端点坐标。

作为优选,所述权重系数λ

作为优选,所述斑马线识别模型中,用于二值化第一斜率和第一斜率值的设定阈值为0.5,高于0.5的斜率置为1,不高于0.5的斜率置为0。

作为优选,所述S5中,若斑马线位于边界框的主对角线上,坐标变换由以下公式实现:

若斑马线位于边界框的副对角线上,坐标变换由以下公式实现:

其中,(x,y)为边界框中心点坐标,w为边界框宽度,h为边界框高度。

作为优选,所述多项式拟合时,端点拟合公式如下:

y=kx+b

其中,k为直线的斜率,b为截距。

本发明相对于现有技术而言,具有以下有益效果:

1.抗干扰能力强。现有的图像处理方法提取斑马线,要求天气好,干扰少,斑马线要明显,极易受复杂的交通环境干扰。本发明方法即使在复杂的交通场景下,也可以有效又准确的提取出斑马线。

2.速度快,准确率高。本方法训练集1000张,在测试集500张图片中,预测准确率达到490张,准确率高达98%,检测速度达到30FPS,可以进行实时检测。

3.节省人力,提高效率。使用本方法,可以省去不必要的人力标注,节省人工费用,还可以提高效率。原本人工标注若是1分钟一张,用了本方法后每秒可以检测30张,速度是原来的一千多倍,大大节省时间。

4.适用范围广。除斑马线检测外,本方法还可以用于其他场景,用于检测其他类型的道路交通标线。

附图说明

图1为原始的图片样本;

图2为标注后的图片样本;

图3为网络模型结构图;

图4为模型输出格式含义示意图;

图5为模型输出的斑马线预测结果图;

图6为斑马线区域的两条横线边界拟合结果图;

图7为斑马线区域的四边形边界结果图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步阐述和说明。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。

如图1所示,在本发明的一个较佳实施例中,提供了一种交通非现场的基于AI技术的斑马线区域自动检测方法,该方法基于一个改进的YOLO v3网络进行斑马线区域检测,YOLO v3中的骨干网络为Darknet-53,该网络通过输出调整能够较好地识别本发明的斑马线区域。本实施例中,检测方法的具体步骤如下:

1、数据集制作

获取由包含斑马线的图片样本组成的训练数据集。本发明中的图片样本可根据实际需要识别斑马线的场景而定,只要其中含有斑马线即可。本实施例中,所用数据为实际的路口监控摄像头拍摄到的车辆不礼让行人时的违图片。其中一张原始图像如图1,图中含有一系列平行的斑马线组成的斑马线区域。识别出斑马线区域,即可用于后续判定车辆是否出现不礼让行人的违法行为。

在本实施例中,为了进行后续的模型训练,每一张图片样本均需要使用Labelme标注工具进行标注,标注包括图片中每一条斑马线的中心线两端端点坐标以及目标类别,标注后的图像如图2。每个图片样本的标注内容为(c,x1,y1,x2,y2),c代表线的类别,(x1,y1)代表一条斑马线中位于中心点左侧的端点坐标,(x2,y2)代表一条斑马线中位于中心点右侧的端点坐标。

需注意的是,在上述标注中,仅含有每一条斑马线的中心线两端端点,但是由于后续的Darknet-53网络无法识别一条线,只能识别出外包的边界框,因此本发明中可以以每一条斑马线的中心线两端端点作为对角顶点,形成一个标注框。这个标注框可以作为后续模型训练时的真值标签。但是由于一个标注框中存在两条对角线,因此为了使模型能够通过训练识别哪一条对角线才是真正的斑马线,本发明中还需要设置两个斜率值作为辅助,分别记为第一斜率和第一斜率。第一斜率和第一斜率取值均为0或1,而且两者之中仅有一个1,另一个必须为0。由此,两个斜率值存在第一斜率为1且第二斜率为0、第一斜率为0且第二斜率为1两种形式,用第一斜率为1且第二斜率为0表示该边界框中的斑马线位于边界框的主对角线上,用第一斜率为0且第二斜率为1表示该边界框中的斑马线位于边界框的副对角线上。由于本发明中仅有一种类别的斑马线,因此所有的目标类别均设置为默认值1。

2、数据预处理

2.1维度聚类

对标注的训练数据集进行聚类,获取9个便于检测人行道的锚框,修改过的聚类方法,可以更好的训练模型,使模型更易于学习和拟合。该聚类过程与YOLO v3中的维度聚类一致,实际是一种改进的k-means聚类,与k-means聚类的区别在于选择的距离不同。在该维度聚类过程中,其距离值计算公式如下:

d(box,centroid)=1-IOU(box,centroid)

其中,d表示box和centroid二者之间的距离,box代表标注框,centroid是聚类中心,IOU是计算标注框和聚类中心的交并比。

交并比IOU的计算公式为:

其中,A表示标注框,B表示聚类中心,area表示计算面积。

因此,这9个不同尺寸的锚框能够更好地适应数据的自身特点和要求,提高检测的准确性。

2.2数据增强

对数据进行随机裁剪,旋转,色调、饱和度、曝光偏移。扩充数据集,提高模型的泛化性,同时增加噪声数据,提升模型的鲁棒性。

2.3数据归一化

将原始图像等比放缩到(416,416),多余部分进行边缘填充,标注数据进行同等变化,最终得到输入模型的训练数据集。

3、斑马线识别模型构建

以YOLO v3中的Darknet-53网络作为骨架网络构建斑马线识别模型,Darknet-53网络结构如图3所示,属于现有技术,下面对其进行简单描述以辅助理解。

如图3所示,Darknet-53中,首先是1层包含32个卷积核的卷积层,然后是5组重复的残差单元resblock_body(这5组残差单元,每个单元由1个单独的卷积层与一组重复执行的卷积层构成,重复执行的卷积层分别重复1次、2次、8次、8次、4次;在每个重复执行的卷积层中,先执行1x1的卷积操作,再执行3x3的卷积操作,卷积核数量先减半,再恢复),一共是52层。最后一层为连接层,不适用于斑马线识别,将其去除。每组残差单元的第一个单独的卷积层操作均是一次步长为2的卷积操作,会对图像进行降维,共降维5次,会将416*416的图像转为32*32。网络会输出3个不同尺度的特征图,用于检测不同大小的物体。将Darknet-53网络的输出进行一次联合卷积操作(2次交替的1*1卷积操作和3*3卷积操作,卷积核数量先减半再恢复,最后再进行一次1*1卷积操作)得到x1,再对x1做一次1*1卷积,得到第一张特征图y1。然后对x1进行一次上采样,并与第4组残差单位的输出拼接(避免网络太深导致的梯度弥散问题),再次进行联合卷积操作,得到第二张特征图y2。最后再对x2进行一次上采样,并与第3组残差单位的输出拼接,再次进行联合卷积操作,得到第三张特征图y3。三个特征图y1,y2,y3,每个特征图对应3个锚框,y1对应最大的三个锚框,y2对应中等大小的三个锚框,y3对应最小的三个锚框,分别用于检测大,中,小三种型号的斑马线,特征图越大,感受野就越大,对大目标就敏感些,反之,则对小目标敏感。

整个斑马线识别模型的输入为包含斑马线的图片。,为更好的提取斑马线特征,Darknet-53网络采取多尺度预测,可从输入的图片中提取3种尺寸的特征图,本实施例中特征图大小分别为(13*13),(26*26),(52*52),每个特征图都有N*N个网格,N对应每个特征图的大小,N=13或26或52。然后,Darknet-53网络通过前述维度聚类得到的9个不同尺寸的锚框进行多尺度目标检测,将聚类得到的9个锚框也按大小排序后分为三组,最大的三个锚框为一组,最小的三个锚框为一组,中间的三个锚框为一组,每一组锚框分别对应一个特征图,分别用于预测大、中、小三种尺寸的斑马线,每个特征图都融合了浅层特征和深层特征,防止梯度消失,同时大大提高了检测率。整个斑马线识别模型的最终输出为图片中每条斑马线的边界框数据,其中边界框数据包括边界框中心点坐标、边界框宽度、边界框高度、第一斜率、第二斜率、目标类别和置信度。

因此,上述斑马线识别模型内各网络层的参数如下:

darknet-53的输入图片大小为416*416*3,输出结果大小为13*13*1024。

第一种尺寸特征图大小为13*13*(3*(C+7));C为斑马线的类别数。

第二种尺寸特征图大小为26*26*(3*(C+7))。

第三种尺寸特征图大小为52*52*(3*(C+7))。

如前所述,由于第一斜率和第一斜率均是二值化的0和1,但在实际的网络中其预测往往是一个小数,因此需要以设定阈值为基准二值化为0或1。本实施例中,用于二值化第一斜率和第一斜率值的设定阈值为0.5,高于0.5的斜率二值化为1,不高于0.5的斜率二值化为0。因此,第一斜率为1且第二斜率为0表示该边界框中的斑马线位于边界框的主对角线上,第一斜率为0且第二斜率为1表示该边界框中的斑马线位于边界框的副对角线上。

S3、利用前述的训练数据集,通过最小化总损失函数对斑马线识别模型进行训练。

本发明中,总损失函数设置为边界框损失、置信度和类别损失的加权和,以便于模型能够准确识别斑马线目标以及其边界框。而且,为了保证边界框的识别准确性以及区分斑马线在边界框的哪一条对角线上,此处的边界框损失应当包含边界框中心坐标误差、边界框宽度误差、边界框高度误差、第一斜率误差和第二斜率误差。具体的误差形式以及各损失的加权和可以适当调整优化。

本实施例中,单个图片样本的所述总损失函数设置为:

loss=lbox+lobj+lcls

其中lbox代表边界框带来的损失,lobj代表置信度带来的损失,lcls代表类别带来的损失;且三种损失的具体形式如下:

式中,λ

式中,λ

式中,λ

本实施例中,权重系数λ

上述lbox、lobj、lcls且三种损失的形式与YOLO v3基本一致,但其在边界框损失中增加了斜率误差,使其能够区分斑马线的方向。

网络的具体训练方式属于现有技术,可采用梯度下降方法对参数进行优化,对此不再赘述。预测后的结果和真实标签值对比,计算损失,然后根据损失来调整模型权重,不断迭代,直到模型满足停止要求。本实施例中,模型训练时可以使用验证集来判断网络模型的训练效果,根据模型在验证集上的损失来判断模型是否训练得当,有无过拟合。当训练集和验证集的损失都低于1时,我们认为模型效果符合要求,停止训练,并保存模型。本实施例模型在训练500个epoch后,损失达到0.786,达到最优模型,可进行使用。

S4、在实际使用时,可将含有斑马线的待识别图片输入训练后的斑马线识别模型中,得到待识别图片中每条斑马线的边界框数据,其中边界框数据包括边界框中心点坐标、边界框宽度、边界框高度、第一斜率、第二斜率、目标类别和置信度。模型输出的格式可以表示为(x,y,w,h,t1,t2,class,confidence)。如图5所示,若以图形来表示x,y,h,w,t的意义,(x,y)为边界框中心点坐标,w为边界框宽度,h为边界框高度,t是边界框的斜率(实际包含第一斜率t1和第二斜率t2,图中仅示出了主对角线的斜率,副对角线类同),class表示目标类别,confidence表示置信度。

S5、针对S4中得到的待识别图片内每条斑马线的边界框数据,由于最终本发明并不需要斑马线的边界框,而是需要斑马线的端点,因此需要将边界框的中心点坐标、宽度和高度进行坐标变换,得到斑马线所在的边界框对角线的两个顶点坐标,作为边界框中斑马线的两个端点。本实施例中,格式需要将转换成(x1,y1,x2,y2,t,class,confidence)。坐标转换过程需要根据第一斜率t1和第二斜率t2值来判定斑马线位于边界框的主对角线还是副对角线上,因此分为两种情况:

若斑马线位于边界框的主对角线上,坐标变换由以下公式实现:

若斑马线位于边界框的副对角线上,坐标变换由以下公式实现:

如图5所示,为原始图片中识别得到的所有斑马线。

S6、对待识别图片中所有斑马线每一侧的端点进行多项式拟合,得到分别贴合斑马线区域上边缘和下边缘的两条横线。需注意的是,此时所谓所有斑马线每一侧的端点是指所有斑马线的顶部端点或者所有斑马线的底部端点,所有顶部端点进行拟合,所有底部端点也进行拟合。本实施例在进行多项式拟合时,端点拟合公式如下:

y=kx+b

其中,k为直线的斜率,b为截距。

因此,上述贴合斑马线区域上边缘和下边缘的两条横线各自是一条直线,如图6所示。然后将两条横线与待识别图片中位于最左侧和最右侧的两条斑马线所在直线进行围合,就可以得到一个四边形区域,该四边形区域在待识别图片中的映射即为图片中的斑马线区域,如图7所示。

本实施例中,利用包含1000张图片的训练集对网络进行训练,在测试集500张图片中预测准确率达到490张,准确率高达98%,检测速度达到30FPS,可以进行实时检测。而且使用本方法,可以省去不必要的人力标注,节省人工费用,还可以提高效率。原本人工标注若是1分钟一张,用了本方法后每秒可以检测30张,速度是原来的一千多倍,大大节省时间。

以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

相关技术
  • 交通非现场的基于AI技术的斑马线区域自动检测方法
  • 基于AI识别技术道路交通事故现场草图绘制方法
技术分类

06120113116025