本发明属于无人驾驶目标检测的技术领域,具体涉及一种基于神经网络的无人驾驶专用车辆检测方法。
背景技术:
在很多道路及园区场景中,行人是与汽车分开的,而且在行人众多的场景下考虑到安全因素,无人驾驶还不太容易投入使用。而无人驾驶汽车的目标检测系统考虑了太多行人的因素,这就导致了检测性能的下降。在行人不多的场景中,实际上不需要实时检测行人的位置,因为其在人行路上是相对安全的,遇到突发情况,无人车可以依靠紧急避障雷达躲避行人。而和无人驾驶汽车处在同一条道路上的汽车就必须要实时检测其位置,这样才能安全行驶。所以,设计一种专门检测汽车的目标检测网络是有必要的。无人驾驶汽车行驶在路上,需要感知周围复杂的环境和物体,其中发生交互最多的对象当然就是临近的车辆了,因此对前方车辆进行及时准确的检测是保障无人驾驶汽车安全行驶的关键。
现有技术中,用于环境感知的不同传感器各有其特点。激光雷达的精度非常高,可用来产生高精度地图并针对高精地图完成移动车辆的定位。但是,激光雷达的价格较高,难以实现大规模应用,而且点云数据具有很强的稀疏性。相比之下,摄像头的成本低,可以在车辆上大规模安装,并且,图像或视频数据能提供比点云数据更丰富的信息。基于人类驾驶的经验,通过设计合适的算法,理论上只用摄像头这一种传感器即可满足无人驾驶对环境感知的需求。因此基于视觉的目标检测是无人驾驶技术不可替代的一部分。近些年,硬件计算能力的提高以及大量数据集的产生,推动了深度学习的快速发展,从中受益最多的领域之一就是图像处理。传统的特征提取和分类算法逐渐被深度学习取代。正是深度学习,大数据等技术的发展,使得基于视觉的无人驾驶有了实现的可能。
然而,发明人发现了现有的无人驾驶专用车辆检测方法通用性差,检测算法复杂度高,运行速度慢,难以实际应用。因此,亟需一种新型的检测方法以解决上述问题。
技术实现要素:
本发明的目的在于:针对现有技术的不足,提供一种基于神经网络的无人驾驶专用车辆检测方法,其通用性强,提高了检测的效率和检测的精度,满足了对车辆检测的准确性和实时性的要求。
为了实现上述目的,本发明采用如下技术方案:
一种基于神经网络的无人驾驶专用车辆检测方法,包括:
步骤一:构建特征提取网络、堆叠特征图和锚框生成网络,并对数据集的汽车长宽数据进行聚类运算;
步骤二:对所述锚框生成网络输出的边界框进行坐标调整,去除冗余的边界框,获得检测结果。
进一步地,所述步骤一中,构建特征提取网络的过程包括:构建fire模块和池化层,每三个fire模块和一个池化层构成所述特征提取网络的一个组成单元,并在前一个fire模块和后一个fire模块之间加入残差连接,残差连接解决了梯度消失和梯度爆炸的问题,使神经网络更深而且不会出现退化问题,所述特征提取网络由三个组成单元串联构成,所述特征提取网络包含九个fire模块和三个池化层。
进一步地,所述堆叠特征图由所述特征提取网络的前两个组成单元输出的特征图向后传递、并与所述特征提取网络的第三个组成单元输出的特征图组合而成,这样的组合得到包含丰富语义信息的堆叠特征图,有利于提高小物体的检测精度。
进一步地,所述fire模块的构建过程包括:先设置压缩层,再设置扩展层,所述fire模块包括所述压缩层和所述扩展层,所述压缩层为1×1的卷积层,所述扩展层包含1×1的卷积层和3×3的卷积层,所述压缩层的卷积核数目为s1×1,所述扩展层的1×1的卷积层的卷积核数目为e1×1,所述扩展层的3×3的卷积层的卷积核数目为e3×3,满足关系式:s1×1=sr×(e1×1 e3×3),sr表示缩减系数,所述fire模块可以在确保检测性能的前提下有效减少网络模型的参数量,进而提高检测的效率。
进一步地,对数据集的汽车长宽数据进行聚类运算的过程包括:从数据集的汽车长宽数据中选取k个样本点形成k个聚类中心,计算k个样本点中的每个样本点到各个聚类中心的距离dij,满足关系式:
进一步地,对数据集的汽车长宽数据进行聚类运算的过程还包括:依据样本点到各个聚类中心的距离dij的不同,将样本点划分到不同的簇,每个簇的聚类中心和属于这个簇的样本点之间满足关系式:
进一步地,所述步骤二中,对所述锚框生成网络输出的边界框进行坐标调整的过程包括:所述锚框生成网络的锚框数据为
其中,
进一步地,所述步骤二中,去除冗余的边界框的过程包括:去掉分数低于阈值的所有边界框,对剩下的边界框用非极大值抑制过滤掉多余的部分,每个边界框分数的公式为:
进一步地,所述步骤二中,去除冗余的边界框后,还采用随机梯度下降算法对所述数据集进行训练。
本发明的有益效果在于:本发明的步骤一先构建特征提取网络提取特征图,再用锚框生成网络生成很多候选边界框,并对数据集的汽车长宽数据进行聚类运算,以获得锚框的最佳长宽比,然后,步骤二中对锚框生成网络输出的边界框进行坐标调整,去除冗余的边界框,从而有效地提高车辆检测的精度,本发明的车辆检测方法通用性强,能够满足对车辆检测的准确性和实时性的要求。
附图说明
图1为本发明的流程示意图。
图2为本发明fire模块的结构示意图。
图3为本发明sse曲线的示意图。
图4为本发明聚类得到的锚框。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件,本领域技术人员应可理解,制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决技术问题,基本达到技术效果。
在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
以下结合附图和具体实施例对本发明作进一步详细说明,但不作为对本发明的限定。
如图1所示,一种基于神经网络的无人驾驶专用车辆检测方法,包括:步骤一:构建特征提取网络、堆叠特征图和锚框生成网络,并对数据集的汽车长宽数据进行聚类运算;步骤二:对锚框生成网络输出的边界框进行坐标调整,去除冗余的边界框,获得检测结果。
步骤一中,构建特征提取网络的过程包括:构建fire模块和池化层,每三个fire模块和一个池化层构成特征提取网络的一个组成单元,并在前一个fire模块和后一个fire模块之间加入残差连接,残差连接解决了梯度消失和梯度爆炸的问题,使神经网络更深而且不会出现退化问题,特征提取网络由三个组成单元串联构成,特征提取网络包含九个fire模块和三个池化层。此外,在硬件允许的情况下还可以对特征提取网络多加几个组成单元。
并且,fire模块的构建过程包括:先设置压缩层,再设置扩展层,fire模块包括压缩层和扩展层,如图2所示,压缩层为1×1的卷积层,压缩层用于将输入此模块的通道数进行缩减,扩展层包含1×1的卷积层以及3×3的卷积层,扩展层用于真正的特征图的特征再融合,压缩层的卷积核数目为s1×1,扩展层的1×1的卷积层的卷积核数目为e1×1,扩展层的3×3的卷积层的卷积核数目为e3×3,满足关系式:s1×1=sr×(e1×1 e3×3),sr表示缩减系数。fire模块可以在确保检测性能的前提下有效减少网络模型的参数量,进而提高检测的效率。sr取0.25左右能较好地平衡准确率和参数量。扩展层内部1×1卷积核与3×3卷积核的比例为0.5时,网络模型精度达到最大。
其中,构建fire模块的策略有:将3×3的卷积核替换为1×1的卷积核;减少输入至3×3卷积层的特征图的通道数;将网络中所需的池化层操作向后推迟。
步骤一中,堆叠特征图由特征提取网络的前两个组成单元输出的特征图向后传递、并与特征提取网络的第三个组成单元输出的特征图组合而成,这样的组合得到包含丰富语义信息的堆叠特征图,能让最后用于目标检测的特征图同时具有浅层、中层和深层的语义信息,有利于提高小物体的检测精度。
步骤一中,对数据集的汽车长宽数据进行聚类运算的过程包括:从kitti数据集的汽车长宽数据中选取k个样本点形成k个聚类中心,计算k个样本点中的每个样本点到各个聚类中心的距离dij,满足关系式:
并且,依据样本点到各个聚类中心的距离dij的不同,将样本点划分到不同的簇,每个簇的聚类中心和属于这个簇的样本点之间满足关系式:
如图3所示,随着k值的增加,每个簇中的样本点越来越少,距离也越来越近,因此,随着聚类中心数量的增加,sse肯定减小,因此重点放在斜率的变化上,当sse缓慢降低时,认为此时进一步增加聚类中心数量已经不能明显改善聚类效果,将sse曲线看做一个手臂,那么“肘部”的位置对应的k值为3就是聚类中心的最佳数量。
如图4所示,最终得到的三种锚框由大到小的长宽比分别是1:1.79、1:1.75、1:1.46,可以看出与图中汽车的形状相似,这样自动选择的锚框是合理的。
步骤二中,对锚框生成网络输出的边界框进行坐标调整的过程包括:锚框生成网络的锚框数据为
其中,
步骤二中,去除冗余的边界框的过程包括:去掉分数低于阈值的所有边界框,对剩下的边界框用非极大值抑制过滤掉多余的部分,每个边界框分数的公式为:
步骤二中,去除冗余的边界框后,还采用随机梯度下降算法对数据集进行训练。在kitti数据集中选取尺寸为1242×375的7481张图片,随机抽取3740张图片作为训练集,其余为测试集,训练和测试时均只考虑汽车这一个对象。在训练时,初始学习率选择为0.01,并随着训练的进行逐渐减小。为了缓解过拟合,采用数据扩增技术,如翻转,平移,剪切等技术。经过100步训练,损失函数迅速降至2.8。经过2万步后,损失函数小于0.5,训练完成,整个训练过程仅需1小时51分钟。该训练过程很快,这是得益于较小的网络模型和经过了优化的锚框选择。
因此,本发明的车辆检测方法检测精度高,满足实时性的要求。而且,本发明的车辆检测方法通用性强,适合于部署在车载嵌入式平台上,其检测的准确度高,即使是远处的车辆也能较好地检测出来。
根据上述说明书的揭示和教导,本发明所属领域的技术人员还能够对上述实施方式进行变更和修改。因此,本发明并不局限于上述的具体实施方式,凡是本领域技术人员在本发明的基础上所作出的任何显而易见的改进、替换或变型均属于本发明的保护范围。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。
1.一种基于神经网络的无人驾驶专用车辆检测方法,其特征在于,包括:
步骤一:构建特征提取网络、堆叠特征图和锚框生成网络,并对数据集的汽车长宽数据进行聚类运算;
步骤二:对所述锚框生成网络输出的边界框进行坐标调整,去除冗余的边界框,获得检测结果。
2.如权利要求1所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,所述步骤一中,构建特征提取网络的过程包括:
构建fire模块和池化层,每三个fire模块和一个池化层构成所述特征提取网络的一个组成单元,并在前一个fire模块和后一个fire模块之间加入残差连接。
3.如权利要求2所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,所述fire模块的构建过程包括:
先设置压缩层,再设置扩展层,所述压缩层为1×1的卷积层,所述扩展层包含1×1的卷积层和3×3的卷积层,所述压缩层的卷积核数目为s1×1,所述扩展层的1×1的卷积层的卷积核数目为e1×1,所述扩展层的3×3的卷积层的卷积核数目为e3×3,满足关系式:s1×1=sr×(e1×1 e3×3),sr表示缩减系数。
4.如权利要求1所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,对数据集的汽车长宽数据进行聚类运算的过程包括:
从数据集的汽车长宽数据中选取k个样本点形成k个聚类中心,计算k个样本点中的每个样本点到各个聚类中心的距离dij,满足关系式:
5.如权利要求4所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,对数据集的汽车长宽数据进行聚类运算的过程还包括:
依据样本点到各个聚类中心的距离dij的不同,将样本点划分到不同的簇,每个簇的聚类中心和属于这个簇的样本点之间满足关系式:
6.如权利要求1所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,所述步骤二中,对所述锚框生成网络输出的边界框进行坐标调整的过程包括:
所述锚框生成网络的锚框数据为
其中,
7.如权利要求1所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于,所述步骤二中,去除冗余的边界框的过程包括:
去掉分数低于阈值的所有边界框,对剩下的边界框用非极大值抑制过滤掉多余的部分,每个边界框分数的公式为:
其中,
8.如权利要求1所述的基于神经网络的无人驾驶专用车辆检测方法,其特征在于:所述步骤二中,去除冗余的边界框后,还采用随机梯度下降算法对所述数据集进行训练。
技术总结