1.一种基于YoloV4改进的路面障碍检测方法,其特征在于,所述方法建立神经网络模型包括如下:第一步:所述方法选用轻量级的MobileNetV3作为主干网络为模型提供特征提取操作;
在所述主干网络中使用线性瓶颈的逆残差结构,结合深度可分离卷积和SE注意力机制;这种结构在输入和输出处形成十分紧凑的表示,同时将内部扩展到更高维的特征空间,增加通道变换的表现力;同时还使用一种新的激活函数h‑swish(x),该激活函数使模型保持良好精度的同时又提升运行速度;
第二步:改进特征融合网络:在网络的特征提取阶段,层次较浅的网络所提取出的浅层特征具有更加详细的细节信息,具有清晰的纹理线条特征,得到的特征分辨率也更高;在更深层次的网络中,网络所提取出的特征具有更大的感受野,得到更加丰富的语义信息;
所述第二步中,针对小目标检测效果不佳的问题,对网络层中不同层次的特征信息进行研究,并且有效的实现信息间融合,以达到检测效果;所述第二步中改进的是在特征融合阶段提取主干网络中更浅一层的特征图,在自下向上的传播过程中使用上采样的方法将其与原PAN结构中的具有丰富语义信息的特征相互融合,使网络得到更高分辨率的特征和更加细微的信息;在自上而下的过程中使用下采样的方式使之结合,模型在获得更加充足的细节信息的同时也解决了新特征层语义信息不够充分的问题;
在原有模型基础上,加入一层新的特征,在主干网络中取出网络更浅层的特征做卷积操作,将PAN中已经融合完成的特征做上采样,并将取出的特征图卷积后进行融合;
进入CBL模块中做5次卷积后下采样,开始做自上向下的融合操作;然后,与做上采样前的的特征图做特征融合后,向下做卷积操作;
加入主干网络中更浅一层的特征图进行融合操作,在使用四层特征后,模型得到更详细的特征信息;将三个特征层的融合增加到四个,将其在通道的维度上进行融合,充分利用了四个不同尺度的特征层进行向上和向下的融合,使特征融合的更加充分,增强信息间的交流;
第三步:在模型中使用一种高效的通道注意模块,该模块避免降维并有效捕获跨通道交互的信息,在全局池化后保持通道层数,使用不降维的局部跨信道交互策略;通过波段矩阵的学习关注不同通道之间的关系,有重点的学习不同通道中的不同信息;在局部通道交互中模块既实现轻量化,又保证局部跨通道交互的有效性;
所述第三步中,为了提高模型整体精度本发明在特征融合阶段加入了ECA模块,使模型有重点的学习特征,有效的提高模型整体精度,当特征由全局平均池化层输出进入1D卷积后,1D卷积没有对其做降维操作,保持了原来的通道大小,通道的关注点通过下列公式来进行学习:其中W是C×C参数矩阵,σ是Sigmoid函数,ECA模块中使用波段矩阵 来学习通道的关注点,捕获局部的跨通道交互,并且确保了效率和有效性;y输入值, 是各个通道的权重;
具体公式如下:
的权重只需考虑 与其k个相邻的通道之间的相互作用来计算,在1D卷积中权重共享,参数量从k*C减小到k; 表示 相邻通道的集合,σ是Sigmoid函数;j是k个相邻通道中的某一个,i是不同层的通道;这种策略如下列公式通过核大小为k的快速卷积来实现:其中,C1D表示一个1D卷积;上述方法被ECA模块调用,该模块仅涉及k个参数;
所述第三步中,在局部通道交互中模块既实现了轻量化,又保证了局部跨通道交互的有效性,具体为:ECA模块中自动的确定交互的覆盖范围,自适应的调整各通道间的特征响应值;通道间的交互大小与通道的维度C是成正比的,在K与C之间存在映射φ:其中 为一个线性函数:
因为通道的大小会被设置为2的次幂,所以在ECA中通过扩展线性函数 ,将其引入到一个非线性函数中去解决这个问题:在确定C后,根据下面公式自动卷积核k的大小:
其中 表示距离t最近的奇数;并将γ和b分别设置为2和1;
第四步:提出一种新的DBR模块,该模块由DepthwiseConv2D、BatchNormalization、Relu6组成,由于深度可分离卷积中的逐通道卷积和逐点卷积操作,模型的计算参数被大大降低,减轻了模型大小;同时为了在移动设备的float16低精度情况下可以得到较好的数值分辨率以免造成精度损失,在该模块中使用relu6做激活函数;
为了使模型整体更加轻便,将特征融合阶段的CBL模块做出改进,为了使模型轻量化采用了另一种卷积方式,对LeakyRelu函数也做出改变,提出了一个新的模块:DBR模块,所述的DBR模块是由深度可分离卷积、Batch Normalization和Relu6组合而成;具体如下:
1)由于深度可分离卷积是由逐通道卷积和逐点卷积构成的,在逐通道卷积中每个通道都对应一个特定的卷积核,在逐通道卷积后通道数不发生改变;逐点卷积使用1*1卷积对逐通道卷积的输出进行融合,并随卷积核的数量改变输出的通道数量;因此在新的DBR模块中,深度可分离卷积的使用大大降低了普通卷积所带来的计算量;
2)卷积过后使用Batch Normalization以防网络过拟合、梯度消失,并且加快收敛速度;
3)最后使用Relu6做激活函数,Relu6将Relu的最大限制控制为6,公式如下:
当x的值大于6,它的导数就为0;这么做是为了在轻量化模型Float16的低精度中得到较好的数值分辨率;如果不加以限制,那么输出范围能达到正无穷,使数值无法被精确地描述。
2.根据权利要求1所述的一种基于YoloV4改进的路面障碍检测方法,其特征在于,所述第一步中,所述一种新的激活函数h‑swish(x)在H‑Swish中选择使用Relu6,消除由于近似sigmoid而造成的一些数值上的精度损失,而且Relu6的优化实现函数能够在大多数的硬软件框架中使用,具体函数为:sigmoid与Relu6是函数,x是输入值,是常量系数;
网络中bneck模块在残差结构中使用深度可分离卷积和SE通道注意力机制,模块整体先升维再降维。
3.根据权利要求2所述的一种基于YoloV4改进的路面障碍检测方法,其特征在于,所述网络中bneck模块在残差结构中使用深度可分离卷积和SE通道注意力机制,模块整体先升维再降维具体包括如下:
1)模块中使用1*1卷积,将低维空间映射到高维空间,并且在1*1的卷积后有Batch Normalization对数据格式进行处理并加上激活函数;
2)在升维处理之后是一个尺度为3*3深度可分离卷积,与之前的1*1卷积相同,深度可分离卷积后也有Batch Normalization和激活函数的处理;在经过深度可分离卷积提取到足够多的信息后,信息进入SE注意力机制学习重要特征;
3)最后在SE模块输出后,再次使用1*1卷积降维且只使用Batch Normalization而不使用非线性激活函数,但在Bneck模块中还存在另一条路线,将输入到Bneck的特征与输出的特征在相同的通道条件下进行相加,该操作减小了网络的计算量并不造成信息丢失。