技术领域
本发明涉及一种行人检测方法,尤其涉及一种基于Embedded YOLO算法的行人检测方法。
背景技术
行人是草坪环境的重要组成部分,行人检测是农业机械无人作业时环境感知的基础,快速而准确的行人检测是农业机器人实现自主避障、定位导航与农业智能化的前提条件。针对部署在嵌入式设备上行人检测研究具有十分重要的意义。
现有的Tiny YOLOV3算法采用传统的卷积方式和池化层交替堆叠形成特征检测网络,不仅计算量大,而且检测精度低,不适合部署在嵌入式设备。Yi Zhang等人在论文“Animproved tiny-yolov3 pedestrian detection algorithm”中,通过增加传统的3×3卷积层提高了对行人的检测精度,但是增加了模型复杂度和权重文件大小,并未能在提高行人检测精度的同时提高检测速度。现有技术还提出了Tiny YOLOV4算法,将Tiny YOLOV3中的部分传统卷积层替换为分组卷积,部分池化层替换为步长为2的传统3×3卷积,大大提高了检测精度,然而,检测速度和权重文件大小与Tiny YOLOV3相比并无明显优势。
发明内容
发明目的:本发明旨在提供一种检测精度高、检测速度快、具备良好的实时性和轻量化性能的基于Embedded YOLO算法的行人检测方法。
技术方案:本发明的基于Embedded YOLO算法的行人检测方法,其特征在于,包括以下步骤:
(1)提取数据集中所有的行人图像数据,将提取到的图像数据随机划分为训练集和测试集;
(2)基于深度卷积网络构建Embedded模块;
(3)用Embedded模块堆叠并结合MobileNet、SPP和YOLO层组成整个Embedded YOLO检测网络模型;
(4)利用训练集对Embedded YOLO模型的神经网络进行训练,获取最优的检测网络模型;
(5)利用步骤(4)获取的模型对测试集中的图片数据进行检测,并对测试集的检测结果进行检测精度、速度和轻量化评价。
所述步骤(1)中具体包括以下步骤:
(11)提取数据集中所有的person类别的图像数据,至少4000份图像或视频文件;
(12)按照8:2的比例划分为训练集和测试集。
所述步骤(2)中构建Embedded模块具体包括以下步骤:
(21)将输入Embedded模块的特征图采用1×1卷积层进行通道扩张,扩张为原来的n
(22)对上步输出的特征图采用3×3的深度卷积进行特征提取,保持通道数和上步一致,采用LeakyRelu激活函数;
(23)对上步输出的特征图采用1×1卷积层进行通道压缩,压缩为上步输出特征图的三分之一,Embedded模块起始输入为上步输出特征图的2倍,采用Linear激活函数;
(24)重复一次(21)~(23)步骤,其中,步骤(21)的扩张倍数改为n
(25)将步骤(24)和(23)的输出进行shortcut连接;
(26)对步骤(25)的输出采用1×1卷积进行通道融合,通道数不变,激活函数采用LeakyRelu;
(27)将上步输出与Embedded模块的输入进行shortcut连接。
所述步骤(3)中具体包括以下步骤:
(31)将输入图像尺寸归一化处理为352×352×3,采用步长为2的3×3卷积,对于输入图像2倍下采样,得到尺寸为176×176×16的特征图;
(32)堆叠方式为:对于尺寸为176×176的特征图仅采用一个步长为2的MobileNet模块实现2倍下采样同时进行特征提取,得到88×88的特征图;
(33)对于尺寸为88×88的特征图采用步长分别为1和2的MobileNet模块依次实现特征提取和2倍下采样,得到尺寸为44×44特征图;
(34)对于尺寸为44×44特征图依次采用的Embedded模块数量为3、1和1,中间得到的22×22、11×11特征图分别再采用一个步长为2的MobileNet模块进行下采样;
(35)采用SPP模块进行多重感受野融合。
所述步骤(4)中具体包括以下步骤:
(41)设置初始参数,包括图片输入尺寸、动量参数、权重衰减正则项参数、图片角度变化参数、饱和度与曝光变化参数、色调变化参数、初始学习率、训练总轮数;
(42)使用kmeans++算法在训练集上聚类出锚定框尺寸;
(43)损失函数采用CIOU指标,设置参与损失计算的IOU阈值。
所述步骤(5)中以行人类别的AP值作为检测精度的评价指标,FPS值作为速度的评价指标,所述FPS值为单位时间内检测的测试集图片数量,权重文件大小作为轻量化的评价指标。
有益效果:与现有技术相比,本发明具有如下显著优点:
(1)本发明的Embedded YOLO网络模型连接方式具有较高的检测精度、检测速度、良好的实时性和优异的轻量化性能,行人检测的AP值为69.73%,检测速度为267张/秒,权重文件大小为7.23MB。
(2)本发明通过对测试集的行人图像数据经过Embedded YOLO算法处理,即可获得图像中的行人类别、位置信息,相比较于现有的Tiny YOLOV3、Tiny YOLOV4算法,本发明所述的行人算法更加高效便捷。
附图说明
图1为本发明的Embedded模块流程图。
图2为本发明所采用的MobileNet流程图。
图3为本发明所采用的SPP流程图。
图4为本发明的总体流程图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
(1)数据集的提取:提取PASCAL VOC2007数据集中所有的person类别。共计4012张,按照8:2的比例划分为训练集和测试集,其中训练集3212张,测试集800张。
(2)提出了Embedded模块,如图1所示,采用深度卷积代替传统的卷积,并用Embedded模块堆叠并结合MobileNet(如图2)、SPP(如图3)和YOLO层组成整个检测网络。
首先,用深度卷积、1×1卷积和shortcut连接方式组成Embedded模块,其次,采用Embedded模块搭建Embedded YOLO网络,将输入图像尺寸归一化为352×352×3,并将归一化处理后的图像输入至Embedded YOLO神经网络的特征提取层,得到22×22,11×11两种不同尺度的特征图,继而,分别对两种不同尺度的特征图进行特征融合、上采样和特征融合后得到两种不同的张量数据,并通过损失函数计算张量数据与真实值之间的损失值,最后,反向传播更新权重,多轮迭代后得到基于Embedded YOLO算法的神经网络检测模型。如图4所示,具体包括以下步骤:
(21)Embedded模块首先将输入的特征图采用1×1卷积层进行通道扩张,扩张为原来的n
(22)对上步输出的扩张后的特征图采用3×3的深度卷积进行特征提取,保持通道数和上步一致,采用LeakyRelu激活函数,普通(2D)卷积和深度卷积(Dwise)运算计算量公式如下:
上式中BFLOPs(billion float operations)为浮点运算次数,表示计算量;C
(23)对上步输出的特征图采用1×1卷积层进行通道压缩,压缩为上步输出特征图的三分之一,Embedded模块起始输入的2倍以融合通道信息,采用Linear激活函数;
(24)重复一次以上三步,其中,扩张倍数改为n
(25)网络整体搭建时,将输入图像尺寸归一化为352×352×3,采用步长为2的3×3卷积,对于输入图像2倍下采样,得到尺寸为176×176×16的特征图;
采用一个步长为2的MobileNet模块实现2倍下采样同时进行特征提取,得到88×88的特征图;
对88×88的特征图采用步长为1和2的MobileNet模块依次实现特征提取和2倍下采样,最终得到尺寸为44×44的特征图;
(26)对于尺寸为44×44特征图依次采用的Embedded模块数量为3、1和1,中间得到的22×22、11×11特征图分别再采用一个步长为2的MobileNet模块进行下采样;
(27)采用SPP模块进行多重感受野融合。
(3)设置神经网络中的训练参数;使用kmeans++算法在树木训练集上聚类出锚定框尺寸;利用训练集对Embedded YOLO算法的神经网络进行训练,获取最优的检测模型;损失函数采用CIOU指标。基于CIOU指标的损失函数公式如下:
上式中,L
(4)根据精度评价指标AP、速度评价指标FPS和轻量化评价指标权重文件大小评价优化Embedded YOLO神经网络模型。评价指标AP的计算过程如下:
(41)计算person类别的AP值。首先要计算单张图像属于该类别的准确率P,计算公式如下:
上式中,N(TruePositions)代表单张图像中正确预测为person类别的目标数量,N(TotalObjects)代表测试集中含有person类别的图像总数。
上式中,∑P代表测试集所有图像的属于person类的准确率之和,N(TotalImages)代表测试集中含有person类的图像总数。
(42)通过上述对检测精度评价指标AP的计算,得出对行人类别的AP值为69.73%,比现有的Tiny YOLOV3、Tiny YOLOV4分别提高了7.89%、1.38%;
(43)采用配置i7-9700KF,RTX2070 super,CUDA10.2,OpenCV3.4.0的电脑对测试集800张图片进行检测,耗时3秒,FPS为267,比现有的Tiny YOLOV3、Tiny YOLOV4分别提高了33.50%、33.50%;
(44)权重文件大小为7.23MB,比现有的Tiny YOLOV3、Tiny YOLOV4分别降低了78.16%、67.77%,本发明提出的基于Embedded YOLO算法的行人检测方法在检测精度、速度和轻量化上对比Tiny YOLOV3、Tiny YOLOV4均有明显优势。
机译: 一种基于图像的特征和光流矢量的行人检测方法,摄像系统和机动车
机译: 使用机器学习和基于规则的算法来创建基于人为提供的专利声明的专利说明书的系统和方法,无需进行人为干预即可创建专利说明书
机译: 使用机器学习和基于规则的算法来创建基于人为提供的专利声明的专利说明书的系统和方法,无需进行人为干预即可创建专利说明书