一种通用的嵌入式平台的行人检测模型训练方法

文档序号:26529028发布日期:2021-09-04 11:21阅读:108来源:国知局
一种通用的嵌入式平台的行人检测模型训练方法

1.本发明属于人工智能领域,具体涉及一种将计算机图像视觉技术中的行人检测应用于嵌入式平台的方法。


背景技术:

2.目标检测是当前计算机视觉所研究的重要领域之一,其目的是能够对图像或视频中的特定目标进行定位,并在原始图像中标定出目标的具体位置。行人检测是其中应用范围很广的一个具体实例,在许多重要场合都有非常重要的应用。传统的行人检测方法是通过设计和提取人工设计的分辨率较强的特征,如梯度直方图特征,haar特征等,接着使用支持向量机等机器学习中的分类模型对所提取得到的特征进行分类,从而分别出是否是行人目标。然而,在实际场景下,行人容易受到光照、姿势、比例和拍摄角度等诸多因素的限制和影响,这些存在的因素严重影响了使用传统方法进行行人检测的准确度。自从深度学习被广泛应用于各种计算机视觉任务以来,各个领域都得到了飞速的发展。在目标检测领域,深度学习的出现大幅度提高了检测的准确度和鲁棒性,但是卷积神经网络所存在的最大的问题是模型参数量大,预测时计算量大使得模型的实时性并不高,mobilenet使用深度可分离卷积虽然减少了参数的数量,但是效果仍比不上同等规模的vgg等网络模型。


技术实现要素:

3.针对上述不足,本发明提供了一种通用的基于嵌入式平台的行人检测模型的训练方法,其特征在于,包括:(1)数据集的准备,进行图像标准化;(2)训练浮点模型,采用降低浮点数位数进行深度学习模型训练;(3)微调量化卷积层,使用上一步骤(2)得到的浮点模型,并将模型的路径添加到微调量化卷积脚本中进行微调,得到微调量化卷积层;(4)应用步骤(3)线性变换微调的模型,利用标注的样本对预训练参数进行调整,以针对行人检测任务来修正模型网络;(5)模型效果测试,利用测试集测试行人检测模型的准确率和召回率。
4.本发明创造的优点:针对嵌入式设备,利用特征提取与回归相分离的思路,并对ssd网络模型进行改进,实现了在嵌入式设备上对行人的实时检测。本发明提出的方法对采集图像的角度和环境亮度无严苛要求,使用灵活方便,检测的实时性好,精度高,可以很好地解决目前已有方法存在的问题。本方法与其它现有的在嵌入式设备上应用的行人检测训练方法相比,在实时性和检测的灵活性上有较大的提高,同时具有高准确率和召回率等良好性能。
附图说明
5.图1是训练流程示意图。
具体实施方式
6.下面结合附图对本发明作进一步描述,应当理解,此处所描述的内容仅用于说明和解释本发明,并不用于限定本发明。
7.行人检测在嵌入式设备上的应用是一项极具工程挑战的问题,嵌入式设备的优点在于使用方便体积小,结构简单,但其最大的缺点在于计算能力差,针对部分现有的神经网络模型难以达到实时的效果,且精度损失较大。以往的方法大多针对于某种特定的嵌入式平台进行设计,本发明旨在构建一种通用的基于嵌入式平台的行人检测模型的训练方法,通过如下步骤来解决:(1)数据集的准备本发明所使用的数据集为caltech数据集,该数据集是由加州理工学院所提供的一个目前规模最大的行人数据集,其使用车载摄像头拍摄。图像的标准化是将图像中像素值减去各个通道的均值再除以各个通道的标准差,输入图像的标准化减少了网络输入数据的分布,使得网络更容易训练。在训练之前仍需对图像进行预处理,将图像的宽高分别更改尺寸(resize)到448像素。
8.(2)训练浮点模型深度学习模型的计算任务分为训练和推理,训练过程往往是利用gpu强大的浮点计算能力来完成网络模型参数的学习过程。相对于训练过程而言,推理过程往往被应用于嵌入式终端设备,计算资源和功耗都受到了严格的限制。为了解决这样的问题,提出了很多不同的方法来减少模型的大小以及所需的计算资源。模型压缩除了剪枝以外,还有一个方法就是降低模型参数的精度。大多数的深度学习模型使用的是32位单精度浮点数来进行训练,本申请方法则通过降低到16位浮点数进行深度学习模型训练,从而减小了训练深度学习模型所需要的内存,在不损失大量精度的情况下加快了模型推理速度,从而也进一步提高了硬件效率。
9.本申请方法在caffe框架下进行训练,使用gpu进行模型训练。训练所使用的solver.prototxt,配置文件设置的参数内容如下所示。
10.在这一步骤,最终会得到snapshot_iter_150.caffemodel和snapshot_iter_150.solverstate两个文件。
11.(3)微调量化卷积层通过实验结果表明,将浮点模型直接量化为12位的模型所造成的精度损失是可以忽略不计的。在该步骤中使用上一步骤得到的浮点模型,推理计算出对应的量化模型,量化
模型中的卷积层为微调量化卷积层。
12.对于目标检测问题而言,通过持续的反向传播来微调经预训练后的模型权重,或者固定前面一些层以防止模型过拟合。通过实验可以观察到,模型的一些早期特征中所包含的特征更一般化,可以在许多任务中发挥作用,而模型更靠后的层会越来越特定于该目标任务所包含的分类的细节。
13.在将模型迁移到嵌入式设备时,由于参数共享的关系,可以在不同空间尺寸的图像上运行一个网络。这类似与于传统图像处理中的图像金字塔。图像金字塔是图像多尺度表达的一种方式,是一种以多分辨率来解释图像特征的典型结构。使用多特征尺度学习的方法可以提高模型的泛化效果。
14.本申请在开始时预先在caltech数据集上训练得到了行人检测的模型。在后续的任务和处理中,均以此行人检测的模型为基础进行训练。数据集经过gpu训练计算后得到的模型只是针对gpu版本的浮点模型,这也是步骤(2)中所说明的浮点模型。当其应用在神经网络加速芯片时,需对其进行量化处理,其所用到的方法就是微调量化卷积层。微调量化卷积层需要将原来的浮点运算进行量化处理,降低数据所占用的存储空间,以较低的计算量去计算和预测所需要完成的任务。这也就是微调量化卷积层的内容,具体而言,通过截断预先训练好的网络的卷积层,并用经微调量化处理后的微调量化卷积层替换原有的卷积层。
15.普通预训练模型的特点是使用了大型数据集做训练,已经具备了提取浅层基础特征和深层抽象特征的能力。如果不做微调,模型需要重新训练,需要大量的数据、计算时间和资源,同时存在模型不收敛,参数不够优化,准确率低等风险。微调卷积层需要使用较小的学习率,通常使用比初始学习率小10倍的学习率。
16.(4)微调量化激活层在卷积层对应微调量化后,对应的非线性激活层也需要微调量化。需要注意的是,这一步中将浮点模型直接在激活层上量化到12位时,也会相应的造成精度的损失。但是在实际实验验证的过程中发现,这些精度损失对最终的结果是可以忽略不计的。
17.对于目标检测问题而言,通过持续的反向传播来修改激活层中的非线性参数,以提高神经网络对数据的拟合效果。通过实验也可以观察到,神经网络能够起到强大的作用主要在于其非线性的学习能力。相应的,量化激活层是非常必要的。
18.(5)应用线性变换微调的模型神经网络能发挥强大的学习能力主要是因为其包含非线性激活函数决定的。经过非线性激活层学习后,数据在对非线性问题上具有较好的拟合效果。但仅有此是不够的,每个神经网络包含若干个非线性单元。在经过非线性激活层激活后,需要应用全连接线性变换将各个微调后的量化激活层联系起来。
19.在做实际应用时,微调模型旨在利用已经标注的样本对参数进行调整,以针对当前的行人检测任务来修正网络。已标注的样本是步骤(1)中所说明的caltech数据集中的图像数据。在该步骤中学习速率可以设置为较小的值,如0.00001。然后可以将得到的模型直接应用到嵌入式设备上。
20.(6)模型效果测试利用测试集测试行人检测模型的准确率和召回率,其中准确率的计算公式为:
召回率的计算公式为:其中,p表示准确率,tp表示行人检测模型将包含行人的窗口预测为真的数量,fp表示行人检测模型将不包含行人的窗口预测为真的数量,fn表示行人检测模型将包含行人的窗口预测为假的数量。本申请的平均准确率为87%,平均召回率为91%。在所使用的特定嵌入式设备上同其他模型在速度和精度的比较如表1所示。
21.表1 在该应用场景下不同模型检测的速度和精度 mobilenet+ncnnvgg16+ncnn本申请速度(fps)3.32.910.1精度(map)0.5650.5420.681最后应说明的是:以上所述仅为本发明的解释,并不用于限制本发明,尽管对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1