一种基于通道剪枝yolov5s的检测行人方法技术

技术编号:36127471 阅读:9 留言:0更新日期:2022-12-28 14:35
本发明专利技术是一种基于通道剪枝yolov5s的检测行人方法,所述的方法包括如下步骤:解开网络融合层、稀疏化训练模型、模型剪枝、微调训练、目标模型,涉及计算机视觉算法的相关领域。目的目的是在于解决现有针对yolov5s的5.0版本的剪枝,减少神经网络参数的同时对神经网络进行加速推理,让yolov5算法能在低算力的平台上达到加速推理效果,而提供一种基于通道剪枝yolov5s的检测行人方法。yolov5s的检测行人方法。yolov5s的检测行人方法。

【技术实现步骤摘要】
一种基于通道剪枝yolov5s的检测行人方法


[0001]本专利技术涉及一种涉及计算机视觉算法的相关领域,特别是一种基于通道剪枝yolov5s(单阶段目标检测算法)的检测行人方法。

技术介绍

[0002]近些年,随着人工智能浪潮的兴起,AI算法得到了迅猛的发展,随着算法在不断的优化,yolo(目标检测)算法所产出的模型的参数和体积也越来越大,导致部署到硬件上的模型并没有达到预期中的状态,在低算力的硬件芯片上难以达到实时检测或识别的效果,对算法的应用带来了极大的影响。
[0003]为了解决这些问题,当前主要的方法是通过对算法进行量化的方式对神经网络进行压缩。针对torch的量化又分为训练后量化(ptq)和感知训练量化(qat),该方法的缺点主要有三个方面,首先是qat对资源的占用非常大而且耗时,ptq得到的模型和原始模型对比精度下降比较大,具体表现在实际应用上检测的效果比较差,其次是不管是ptq还是qat,会存在某些平台上不支持其中某些算子的问题,给部署阶段带来较大的难度。最后是代价高昂,需要为图像学习配备性能较高的显卡。
[0004]另一类方法是通过对神经网络进行剪枝的方式,该方法主要有两个缺点。首先是剪枝时候不好把控剪枝率,对于置信度高的特征和置信度低的特征难以把控容易造成误剪。其次是剪枝后出现的精度掉落严重的问题。
[0005]本专利技术主要针对现存技术中的以下几个缺陷提出:
[0006]1、模型参数量大的问题。现在的yolov5(单阶段目标检测算法)大多都是直接训练出模型导出对应的onnx后移植到平台上,用对应平台工具进行量化部署。量化过后的模型确实也起到了加速效果,其体积也缩小为fp32模型大小的1/4,其方式是大多数的做法,更甚则是直接使用导出来的onnx进行部署,巨大的参数量会导致模型部署成功之后难以达到实时检测的效果。
[0007]2、剪枝率的把控问题。如何把控剪枝率让剪枝后的模型达到我们预期的想法一直是令人头痛的事,甚至是把整个网络层的通道与参数都剪到零,过度的剪枝会导致剪枝出来的模型检测效果不佳,而过轻微的剪枝又难以达到减少参数量的目的。
[0008]3、剪枝之后精度损失严重的问题。精度与速度一直是我们所追求的目标,在减少模型参数的同时确保模型精度不变或者精度损失较少是现有技术的一大挑战。
[0009]本专利技术对模型进行量化之外的一种剪枝方式,首先对yolov5s的5.0版本进行打开BN和Conv的融合层,取到单独的BN层,添加L1正则进行约束BN层系数,使系数稀疏化,稀疏化后的参数符合拉普拉斯分布,拉普拉斯分布是中间高两边低的一条曲线。其次再根据参数在拉普拉斯分布中概率密度的情况进行剪枝,起到把控剪枝率的效果,裁剪掉稀疏很小的层,对应激活也很小,所以对与后面的影响也会很小,起到了确保精度损失在可控范围内的作用,根据剪枝得到的模型进行重新训练恢复精度和召回率等模型指标,如果把没剪枝之前的模型比作一个完整无暇的人,那么剪枝过后的模型就相当于是一个残疾人,其内部
的算子已经被打乱了,故而需要重新拿剪枝之后的模型进行训练。

技术实现思路

[0010]本专利技术的目的是在于解决现有针对yolov5s的5.0版本的剪枝,减少神经网络参数的同时对神经网络进行加速推理,让yolov5算法能在低算力的平台上达到加速推理效果。而提供一种基于通道剪枝yolov5s的检测行人方法。
[0011]一种基于通道剪枝yolov5s的检测行人方法,所述的方法包括如下步骤:
[0012]1.1、解开网络融合层;
[0013]1.2、稀疏化训练模型:
[0014]1.3、模型剪枝;
[0015]1.4、微调训练;
[0016]1.5、目标模型。
[0017]进一步的,所述的解开网络融合层是指,把神经网络中BN和Conv的融合层解开,获取单独的bn层,作为后续操作的目标。
[0018]进一步的,所述的稀疏化训练模型是指,在训练过程中向网络中的BN层添加L1正则,进行约束BN层系数,使系数稀疏化,虚线表示多次迭代。
[0019]更进一步的,添加L1正则的步骤如下:
[0020]1、首先是尺度因子与稀疏性惩罚,在通道相关的缩放因子上施加简单的L1稀疏;为每个通道引入一个缩放因子γ,它乘以该通道的输出,使其稀疏化,计算方式如下:
[0021][0022]其中(x,y)表示训练输入和目标,W表示可训练权重,第一个和项对应于CNN的正常训练损失,g(γ)是缩放因子上的稀疏诱导惩罚,λ平衡了这两个项;
[0023]2、其次是利用BN层中的缩放因子,BN层使用小批统计数据规范内部激活。设Zin和Zout是BN层B的输入和输出,B表示当前的小批,BN层进行以下转换:
[0024][0025]其中,μB和σB是输入激活比B的均值和标准差值,γ和β是可训练的仿射变换参数(尺度和位移)。
[0026]进一步的,所述的模型剪枝在通道稀疏诱导正则化下进行训练后,得到了一个许多尺度因子接近零的模型。
[0027]进一步的,所述微调训练是在加载剪枝得到的紧凑的模型后,训练模型步骤基本的原生的模型没有任何区别,训练完成后所保存下来的模型就是我们的目标模型了。
[0028]采用上述技术方案的有益效果是:
[0029]1、模型参数减少;
[0030]2、有效把控剪枝率;
[0031]3、精度损失较少;
[0032]4、低算力平台下有效加速两倍。
附图说明
[0033]图1算法流程框图;
[0034]图2为BN层的γ参数概率密度变化图;
[0035]图3为剪枝前后BN层的channel数量图;
[0036]图4为剪枝前后模型各项指标图;
[0037]图5为基于RK3566板子上模型剪枝前后速度对比图。
具体实施方式
[0038]以下结合附图和本专利技术优选的具体实施例对本专利技术的内容作进一步地说明。所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。
[0039]如图1至5中所示,本方案中所述的一种基于通道剪枝yolov5s的检测行人方法,所述的方法包括如下步骤:
[0040]1、解开网络融合层;所述的解开网络融合层是指,把神经网络中BN和Conv的融合层解开,获取单独的bn层,作为后续操作的目标;为了减少模型推理时间,yolov5在模型训练完后,代码在推理阶段和导出模型时,将卷积层和BN层进行融合。为了单独获取到BN层的参数,我们选择解开它们之间的融合,仅需要把fuse_conv_and_bn功能关闭就能得到所需要的操作对象BN层。
[0041]2、稀疏化训练模型:所述的稀疏化训练模型是指,在训练过程中向网络中的BN层添加L1正则,进行约束BN层系数,使系数稀疏化,虚线表示多次迭代。
[0042]添加L1正则有以下几个过程:
[0043]1、首先是尺度因子与稀疏性惩罚,在通道相关的缩本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于通道剪枝yolov5s的检测行人方法,其特征在于,所述的方法包括如下步骤:1.1、解开网络融合层;1.2、稀疏化训练模型:1.3、模型剪枝;1.4、微调训练;1.5、目标模型。2.根据权利要求1所述的基于通道剪枝yolov5s的检测行人方法,其特征在于:所述的解开网络融合层是指,把神经网络中BN和Conv的融合层解开,获取单独的bn层,作为后续操作的目标。3.根据权利要求1所述的基于通道剪枝yolov5s的检测行人方法,其特征在于:所述的稀疏化训练模型是指,在训练过程中向网络中的BN层添加L1正则,进行约束BN层系数,使系数稀疏化,虚线表示多次迭代。4.根据权利要求3所述的基于通道剪枝yolov5s的检测行人方法,其特征在于,添加L1正则的步骤如下:4.1、首先是尺度因子与稀疏性惩罚,在通道相关的缩放因子上施加简单的L1稀疏;为每个通道引入一个缩放因子γ,它乘以该通道的输出,使...

【专利技术属性】
技术研发人员:唐忠林韦赛
申请(专利权)人:深圳市天双科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1