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

一种应用于自动驾驶的目标检测方法及系统

文献发布时间:2024-04-18 19:59:31


一种应用于自动驾驶的目标检测方法及系统

技术领域

本发明属于自动驾驶技术领域,具体涉及一种应用于自动驾驶的目标检测方法及系统。

背景技术

随着计算机视觉和硬件设备的飞速发展,深度学习领域下的道路目标检测算法正成为自动驾驶技术的重要组成部分。然而,目前的道路目标检测算法虽然在大目标的检测方面取得了显著进展,但对于道路中的小目标,检测过程中仍然存在一系列挑战。小目标之所以成为目标检测算法的难题,是因为小目标的信息量有限,很难通过传统的卷积操作提取足够的特征信息,并且随着网络深度的增加,小目标的浅层信息往往会逐渐丢失,甚至完全消失,这导致小目标会出现比大目标更严重的漏检和误检问题。

因此,亟需研发一种针对小目标检测的方法。

发明内容

本发明的目的在于克服现有技术之缺陷,本发明提供了一种应用于自动驾驶的目标检测方法及系统,本发明通过增强小目标的浅层信息的提取能力、保留能力以及小目标的定位能力,从而改善自动驾驶的道路场景中小目标存在的严重漏检和误检问题。

为了实现预期效果,本发明采用了以下技术方案:

本发明公开了一种应用于自动驾驶的目标检测方法,该方法包括:

采集自动驾驶过程中识别到的原始目标图像;

将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;

所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;

所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;

所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

进一步地,所述C3PRO模块包括若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层。

进一步地,将第一目标图像输入所述C3PRO模块后,所述第一目标图像经过若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层的特征拼接后,得到1×1卷积层的第二目标图像并由所述C3PRO模块输出。

进一步地,所述C3PRO-SE模块由所述C3PRO模块和SE通道注意力模型组合而成。

进一步地,将第三目标图像输入所述C3PRO-SE模块后,所述第三目标图像首先在C3PRO模块中经过若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层的特征拼接后,得到1×1卷积层的第四目标图像,再将该第四目标图像送入SE通道注意力模型进行通道注意力向量映射得到第五目标图像,最后将第五目标图像和第四目标图像进行逐通道相乘得到第六目标图像并由所述C3PRO-SE模块输出。

进一步地,所述改进的YOLOv5s算法还包括SIoU损失函数,所述SIoU损失函数为:

式中,IoU为真实框与预测框的交并比,

进一步地,所述距离损失

式中,

进一步地,所述角度损失函数为:

式中,

进一步地,所述形状损失

式中,

本发明还公开了一种应用于自动驾驶的目标检测系统,所述系统能够实现上述任一所述方法,所述系统包括:

采集模块,用于采集自动驾驶过程中识别到的原始目标图像;

检测模块,用于将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

与现有技术相比,本发明的有益效果是:本发明提供了一种应用于自动驾驶的目标检测方法及系统,首先,本发明提出一种基于提取分流思想设计的C3PRO模块,将其应用于网络的浅层部分,该模块通过更多并行的梯度流分支,以及更多的卷积运算和可以用来学习的参数,增强网络对于小目标的浅层特征的提取能力;其次,本发明增加一条特征提取分支通道,该通道独立于原算法的骨干网络,层数更少,解决了在前向传播过程中因为网络过深,导致的小目标浅层信息丢失问题,并在通道末端加入通道注意力,避免了特征冗余;最后,本发明针对YOLOv5s定位损失函数惩罚不全面的问题,引入更先进的SIoU损失函数,以更精确的定位小目标。本发明通过增强小目标的浅层信息的提取能力、保留能力以及小目标的定位能力,从而改善自动驾驶的道路场景中小目标存在的严重漏检和误检问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种改进的YOLOv5s算法的网络结构示意图。

图2是本发明实施例提供的一种C3模块示意图。

图3是本发明实施例提供的一种C3PRO模块示意图。

图4是本发明实施例提供的一种C3PRO-SE模块示意图。

图5是本发明实施例提供的一种角度损失示意图。

图6是本发明实施例提供的一种针对小目标的PR曲线示意图。

图7是本发明实施例提供的一种针对整体数据集的PR曲线示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

参见图1至图7,本发明公开了一种应用于自动驾驶的目标检测方法,该方法包括:

采集自动驾驶过程中识别到的原始目标图像;

将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;

所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;

具体地,现有的YOLOv5s算法包括骨干网络、颈部网络、头部网络,其中骨干网络主要用于特征提取,颈部网络主要用于特征融合(将浅层特征与深层特征进行融合),头部网络主要负责将提取得到的特征转化为最终的检测结果。一般只包括一个骨干网络,而本发明包括两个骨干网络。此外,还包括卷积核的尺寸k,步长大小s,以控制输出特征图的大小和形状的边缘填充p,输出通道数c。

所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;

可选的,所述C3PRO模块包括若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层。

具体地,一般的YOLOv5s算法使用C3模块(如图2所示)作为主要的特征提取模块,C3模块是基于提取分流的思想进行设计的,然而C3模块结构简单,参数量少,在捕获小目标所需要的浅层信息的能力上有限。本发明进一步发展提取分流思想,提出C3PRO模块(如图3所示)。C3PRO模块仍然沿用卷积模块和瓶颈层(Bottleeck)模块组合的方式进行设计,可以通过参数n来控制瓶颈层的数量。同时为了解决梯度弥散以及网络退化的问题,C3PRO模块依然保留了C3模块的残差通道。

示例性的,位于梯度通道中的卷积层CBS共有四个,其中两个CBS中的卷积部分使用的是1×1卷积核,另外两个卷积部分采用的是3×3卷积核,为的是获得更多不同感受野下的特征图,小感受野下的特征图能够专注于小目标本身的特征信息,而大的感受野下的特征图能够能够得到目标周围环境的上下文信息,最后将不同感受野下的特征图在模块的末端进行通道拼接,能够得到更丰富全面的特征信息。在模块的使用方面,本发明考虑到小目标缺少的主要是浅层的细粒度信息,同时为了避免大量使用C3PRO模块会带来的参数大量增加的问题,仅将C3PRO模块用于代替网络浅层的两个C3模块,以提升网络的浅层特征提取能力。

可选的,将第一目标图像输入所述C3PRO模块后,所述第一目标图像经过若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层的特征拼接后,得到1×1卷积层的第二目标图像并由所述C3PRO模块输出。

所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

具体地,YOLOv5s算法的骨干网络Backbone部分层数较多,在网络的加深过程中,虽然能够得到越来越丰富的深层语义信息,但浅层细粒度信息却会不断消失,这不利于小目标的检测。针对于此问题,本发明提出第一骨干网络Backbone的分支通道第二骨干网络Backbone2,这增强了网络保留浅层信息的能力。可选的,所述第二骨干网络包括两个卷积模块和一个C3PRO-SE模块。

可选的实施例中,所述C3PRO-SE模块由所述C3PRO模块和SE通道注意力模型组合而成。

进一步地,将第三目标图像输入所述C3PRO-SE模块后,所述第三目标图像首先在C3PRO模块中经过若干个1×1卷积层、若干个3×3卷积层、若干个瓶颈层的特征拼接后,得到1×1卷积层的第四目标图像,再将该第四目标图像送入SE通道注意力模型进行通道注意力向量映射得到第五目标图像,最后将第五目标图像和第四目标图像进行逐通道相乘得到第六目标图像并由所述C3PRO-SE模块输出。

示例性的,第二骨干网络Backbone2的输入端接受来自第一骨干网络Backbone浅层部分的320×320×64维度的特征图,经过两个步长为2的CBS层后,实现四倍下采样,并完成通道维度的扩张,得到80×80×256的特征图。为了进一步增强浅层特征提取能力,在两个CBS层后加入了C3PRO-SE模块,C3PRO-SE模块结构示意图如图4所示,该模块是用所述C3PRO模块与通道注意力机制SE(Squeeze-and-Excitation)组合而成。由于第二骨干网络Backbone2独立于第一骨干网络,单独进行下采样和特征提取,解决了浅层信息因为网络过深而消失的问题,同时,引入通道注意力机制避免了可能出现的特征冗余问题,有利于自动驾驶过程中道路小目标的检测。

现有的YOLOv5s算法所采用的CIoU损失函数没有考虑预测框回归真实框位置时的角度问题,这可能会导致自动驾驶过程中道路小目标的预测框沿着不合适的方向进行回归,从而出现预测准确度低等问题。本发明基于上述问题,提出在网络中引入更为先进的SIoU损失函数,如图5所示,B为预测框,

一方面,所述改进的YOLOv5s算法还包括SIoU损失函数,所述SIoU损失函数为:

式中,IoU为真实框与预测框的交并比,

具体地,SIoU损失函数考虑到了回归所需的向量角度问题,新增了角度损失计算,使预测框可以朝着更准确的方向进行回归,从而实现小目标定位精度上的提升。

另一方面,所述距离损失

式中,

可选的,

可选的,

可选的,

式中,

又一方面,所述角度损失函数为:

式中,

进一步地,所述形状损失

式中,

可选的,

可选的,

式中,w和h分别是预测框的宽和高,

值得注意的是,为了验证本发明提出的自动驾驶的小目标检测方法的优越性,本发明选取实验数据为SODA10M数据集中已经标注的两万张图像进行验证。SODA10M数据集是由华为联合中山大学联合发布的二维自动驾驶数据集,图像是不同光照条件下的真实道路状况,共有行人(Pedestrian)、骑手(Cyclist)、普通车辆(Car)、卡车(Truck),有轨电车(Tram),三轮车(Tricycle)六个类别,该数据集的图像中含有丰富的小目标。本发明首先观察训练出来的模型对于数据集道路图像的检测效果,然后采用基于绝对像素点的小目标定义方式对小目标进行定义。目前最常用的标准来自于MS COCO数据集,该数据集将小目标明确定义为分辨率小于1024个像素点的目标,本发明同样采用该定义,并筛选出符合要求的小目标,计算出小目标的性能指标。本发明使用1.7.1版本的Pytorch深度学习框架,选用的CUDA版本为10.1,GPU选择RTX 2080TI,CPU选择i7 9700K,内存为4根16G内存条,训练周期epoch设置为200进行模型的训练。

经过实验发现,本发明引入第二骨干网络Backbone2之后,不光有效地提升了远距离小目标的识别能力,对于以局部信息出现的近距离卡车的检测能力也同样有着明显的提升。SIoU损失函数提升了由于距离较远而产生的小目标的检测能力的同时,还提升了对马路另一侧由遮挡局部信息而产生的小目标的检测能力。本发明所提出的C3PRO模块、第二骨干网络Backbone2以及SIoU损失函数均有效的提升了自动驾驶过程中道路上小目标的检测能力。

本发明根据MS COCO数据集对于小目标的定义,将小于1024个像素点的目标定义为小目标,提出一种直接计算六类道路小目标平均精度均值(mAP),以及每个类别单独的小目标精度均值(AP)的方式,首先通过计算真实框面积的方式,将小于1024个像素点的目标,也就是非小目标的标注信息全部删除,之后性能指标的计算将不会再考虑非小目标的标注信息。在删除非小目标的标注信息后,会将小目标以外的其它目标都归类为背景,而算法在检测过程中依然会对已经归为背景的目标进行检测,产生预测信息,这样会计算出错误的性能指标,因此本发明在预测结果参与计算之前,将已经被归类为背景的非小目标的预测信息进行剔除。本发明的算法仅将小目标的预测信息进行保留并参与性能指标的计算。通过将非小目标的真实框和预测框进行剔除,相当于实现了一个只对小目标进行检测的算法,从而能够得到与小目标检测直接相关的性能指标。如图6所述,以mAP性能指标为例,本发明针对小目标的mAP提升了3.7个百分点。如图7所述,以mAP性能指标为例,本发明针对整体数据集的mAP提升了3个百分点。

综上所述,本发明针对自动驾驶场景的道路场景中小目标检测难的问题,提出了一种改进的YOLOv5s算法,能够显著的提升道路中小目标的检测精度。在有关自动驾驶的深度学习领域,具有一定的推广价值。

基于同一发明思路,本发明还公开了一种应用于自动驾驶的目标检测系统,所述系统能够实现上述任一所述方法,所述系统包括:

采集模块,用于采集自动驾驶过程中识别到的原始目标图像;

检测模块,用于将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

所述系统实施例可与前述方法实施例一一对应实现,在此不再赘述。

本发明将基于提取分流思想设计的C3PRO模块应用于网络的浅层部分,通过更多并行的梯度流分支以及更多的卷积运算和可以用来学习的参数,增强网络对于小目标的浅层特征的提取能力;本发明还增加了一条特征提取分支通道,该通道独立于原算法的骨干网络,层数更少,解决了在前向传播过程中因网络过深导致的小目标浅层信息丢失问题,并在通道末端加入通道注意力机制,避免了特征冗余;本发明针对YOLOv5s定位损失函数惩罚不全面的问题,引入更先进的SIoU损失函数,以更精确的定位小目标。本发明增强了自动驾驶的道路场景中小目标的浅层信息的提取能力、保留能力以及小目标的定位能力。

基于同一发明思路,本发明还公开了一种电子设备,该电子设备可以包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信。处理器可以调用存储器中的逻辑指令,以执行一种应用于自动驾驶的目标检测方法,该方法包括:

采集自动驾驶过程中识别到的原始目标图像;

将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;

所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;

所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;

所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的一种应用于自动驾驶的目标检测方法,该方法包括:

采集自动驾驶过程中识别到的原始目标图像;

将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;

所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;

所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;

所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的一种应用于自动驾驶的目标检测方法,该方法包括:

采集自动驾驶过程中识别到的原始目标图像;

将原始目标图像输入改进的YOLOv5s算法中检测目标得到最终检测目标图像;

所述改进的YOLOv5s算法包括第一骨干网络、第二骨干网络;

所述第一骨干网络包括至少一个C3PRO模块;所述C3PRO模块用于提取原始目标图像的浅层特征得到第一特征图,并将第一特征图发送至第二骨干网络或者颈部网络;

所述第二骨干网络为所述第一骨干网络与所述颈部网络中间的独立的分支通道;所述第二骨干网络包括至少一个C3PRO-SE模块;所述C3PRO-SE模块用于对所述第一骨干网络发送来的特征图进行特征提取得到第二特征图,并将第二特征图发送至所述颈部网络。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 侧边有洞口的钢筋混凝土梁和箱形型钢混凝土柱连接节点
  • 钢筋混凝土梁与大截面箱形型钢混凝土柱正交连接节点
技术分类

06120116516723