CN112001477A - 一种基于深度学习的目标检测YOLOv3的模型优化算法 - Google Patents
一种基于深度学习的目标检测YOLOv3的模型优化算法 Download PDFInfo
- Publication number
- CN112001477A CN112001477A CN202010568883.1A CN202010568883A CN112001477A CN 112001477 A CN112001477 A CN 112001477A CN 202010568883 A CN202010568883 A CN 202010568883A CN 112001477 A CN112001477 A CN 112001477A
- Authority
- CN
- China
- Prior art keywords
- pruning
- model
- yolov3
- layer
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 59
- 238000001514 detection method Methods 0.000 title claims abstract description 48
- 238000005457 optimization Methods 0.000 title claims abstract description 42
- 238000013135 deep learning Methods 0.000 title claims abstract description 23
- 238000013138 pruning Methods 0.000 claims abstract description 158
- 238000012549 training Methods 0.000 claims abstract description 46
- 230000000694 effects Effects 0.000 claims abstract description 18
- 230000002829 reductive effect Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 6
- 230000002441 reversible effect Effects 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 235000013361 beverage Nutrition 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 238000012821 model calculation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于深度学习的目标检测YOLOv3的模型优化算法,包括:采用K‑means++聚类算法重新设置合适商品数据集的Anchor box;对目标检测YOLOv3的模型进行一般训练和稀疏化训练;将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层;对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,对得到的值再次进行评估。本发明提供的基于深度学习的目标检测YOLOv3的模型优化算法,通过K‑means++改善算法的聚类效果;采用层剪枝和通道剪枝相结合的双重剪枝来进行网络剪枝,以提高算法的性能。
Description
技术领域
本发明涉及目标检测算法技术领域,特别是涉及一种基于深度学习的目标检测YOLOv3的模型优化算法。
背景技术
传统的目标检测算法可以分为区域选择、特征提取和分类器分类三步,通过人工选择图像特征进行特征提取,特征单一且鲁棒性较差。卷积神经网络的出现改变了这种现状,它能够不依赖于人工提取特征,在图像分类领域有重大突破之后一直蓬勃发展,目前基于深度学习的目标检测算法已经成为目标检测研究的主流。
近年来,基于回归的YOLO、SSD等深度学习目标检测算法的诞生迅速占领了目标检测研究“市场”,它们降低了模型计算量的同时保持较高的精度。基于回归的YOLO深度学习目标检测算法的优点是在保持较高识别精度基础上,维持较低的参数量和计算量,以保持其快速性。其中,YOLOv3执行目标检测任务,兼备快速性和准确性,但在实际应用中的卷积神经网络系列模型的部署受限,原因有三:
第一,模型过大,CNN强大的表示能力来自其数百万个可训练的参数。这些参数以及网络结构信息需要在推理期间存储在磁盘上并加载到内存中,例如,存储经过COCO数据集训练的YOLOv3模型会消耗200MB以上的空间,这对设备来说是很大的资源负担,尤其是嵌入式等移动设备;
第二,占用运行时内存过多,在前向推理中,CNN的激活层可能比存储模型参数占用更多内存空间,不同于GPU,计算能力低的CPU设备负担过重;
第三,计算量过大,卷积操作在高分辨率图像上的计算量很大,大型的CNN可能需要几分钟才能在移动设备上处理单个图像,因此,在实际应用中采用它会因为设备受到很大局限,针对以上面临的问题,可以从缩小模型尺寸,减少运行时内存占用和在不影响准确性的情况下减少计算量出发寻找解决方案。
发明内容
本发明的目的是提供一种基于深度学习的目标检测YOLOv3的模型优化算法,设计了一种精简卷积神经网络结构的改进算法,以提高算法的性能。
为实现上述目的,本发明提供了如下方案:
一种基于深度学习的目标检测YOLOv3的模型优化算法,该算法包括以下步骤:
S1,采用K-means++聚类算法重新设置合适商品数据集的Anchor box;
S2,进行一般训练:设定YOLOv3的Darknet-53网络结构,载入数据集图片、标签和权重参数,进行前向推理,利用loss值反向求导更新权重参数,迭代一定次数,结束训练,挑选最终模型;
S3,进行稀疏化训练:对YOLOv3进行200个epoch的稀疏训练,其中使用惩罚因子值为0.001,稀疏训练的其余超参数与正常训练相同;
S4,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层;
S5,对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,对得到的值再次进行评估,如果满足优化要求,则结束优化过程,如果不满足,则需重复步骤S1-S4进一步优化,直到满足要求。
可选的,所述步骤S1中,采用K-means++聚类算法重新设置合适商品数据集的Anchor box,具体包括:
S101,随机选取一个Anchor box的宽高作为第一个聚类中心;
S102,基于第一个聚类中心开始,逐个确定第n个聚类中心,第n个聚类中心选取原则是与当前第n-1个聚类中心IoU越大的框被选取的概率越大;
S103,循环步骤S102直到所有初始聚类中心被确定;
S104,剩下其它Anchor box逐一与聚类中心计算IoU,得到两个框之间的IoU,将Anchor box划分到与其IoU最大的聚类中心所属的类中;
S105,所有Anchor box都遍历后,计算各类Anchor box宽、高的均值,作为下轮迭代的聚类中心;
S106,重复步骤S104、S105,直到大于阈值,或达到迭代次数。
可选的,所述步骤S4中,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层,具体包括:
将YOLOv3稀疏化后的最终模型作为基准,基于BN层系数进行通道剪枝,达到理想精度后进行稀疏训练,对需要剪枝的层对应的BN的系数进行大幅压缩,然后设定剪枝率,对值进行排序,根据选取的剪枝率剪除不重要的通道剪枝,修剪过程中,忽略上采样层,因为采样层没有卷积通道,忽略快捷链路层;层剪枝是在通道剪枝基础上针对每一个快捷链路前一个带BN的卷积层进行评价,对各层的γ最高值进行排序,取最小的进行层剪枝。
可选的,通过将通道修剪模块的剪枝率PR设置为0.492,0.787,0.885和0.968得到了4个通道剪枝后的模型。
可选的,通过层修剪模块的shortcut剪枝数SC设置为8,12和16得到了3个层剪枝后的模型。
可选的,对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,具体包括:
剪枝后,mAP下降比较多,对剪枝后的模型进行微调,取PR=0.885,SC=8,epoch为50,根据mAP曲线图取较好效果的值。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的基于深度学习的目标检测YOLOv3的模型优化算法,首先使用K-means++聚类算法重新设置合适商品数据集的Anchor box,使Train_loss下降更快,误差更小,精确率和召回率提升;然后使用双重剪枝方法,即将通道剪枝和层剪枝叠加使用,将其扩展为一种用于有效的深层对象检测器的神经体系结构搜索的粗粒度方法;通过修剪不太重要的特征通道和层来学习高效的深层物体检测器,优化YOLOv3网络结构,使它具有较少的训练参数和较低的计算开销。随后进行一般训练,微调剪枝后留下的重要的参数,使精度回升,微调结束后进行模型评估,如果满足要求,则结束优化过程,如果不满足,则需进一步优化,直到满足要求;通过精简卷积神经网络结构,改进目标检测算法YOLOv3,使得目标检测算法在保持较好的目标检测效果的基础上减少模型计算量,加快网络模型运算速度,精简后的YOLOv3目标检测模型,应用更加广泛,可以部署在嵌入式、安卓等性能有限的设备上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于深度学习的目标检测YOLOv3的模型优化算法流程图;
图2是本发明中K-means++聚类算法结果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于深度学习的目标检测YOLOv3的模型优化算法,通过K-means++优化初始聚类中心的选取,使得初始聚类中心之间的相似度距离尽可能大,这种方法可以有效缩短聚类时间,改善算法的聚类效果;采用模型剪枝,即层剪枝和通道剪枝相结合的双重剪枝来进行网络剪枝,将其扩展为一种用于有效的深层对象检测器的神经体系结构搜索的粗粒度方法,为了使最终模型精度、压缩大小和运行速度达到理想值;设计了一种精简卷积神经网络结构的改进算法,以提高算法的性能。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供的基于深度学习的目标检测YOLOv3的模型优化算法,包括以下步骤:
S1,采用K-means++聚类算法重新设置合适商品数据集的Anchor box;
S2,进行一般训练:设定YOLOv3的Darknet-53网络结构,载入数据集图片、标签和权重参数,进行前向推理,利用loss值反向求导更新权重参数,迭代一定次数,结束训练,挑选最终模型;
S3,进行稀疏化训练:对YOLOv3进行200个epoch的稀疏训练,其中使用惩罚因子值为0.001,稀疏训练的其余超参数与正常训练相同;
S4,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层;
S5,对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,对得到的值再次进行评估,如果满足优化要求,则结束优化过程,如果不满足,则需重复步骤S1-S4进一步优化,直到满足要求。
其中,所述步骤S1中,采用K-means++聚类算法重新设置合适商品数据集的Anchorbox,具体包括:
S101,随机选取一个Anchor box的宽高作为第一个聚类中心;
S102,基于第一个聚类中心开始,逐个确定第n个聚类中心,第n个聚类中心选取原则是与当前第n-1个聚类中心IoU越大的框被选取的概率越大;
S103,循环步骤S102直到所有初始聚类中心被确定;
S104,剩下其它Anchor box逐一与聚类中心计算IoU,得到两个框之间的IoU,将Anchor box划分到与其IoU最大的聚类中心所属的类中;
S105,所有Anchor box都遍历后,计算各类Anchor box宽、高的均值,作为下轮迭代的聚类中心;
S106,重复步骤S104、S105,直到大于阈值,或达到迭代次数。
综上,本申请为了解决基于传统聚类算法统计很难得到一个稳定的最优解的问题,使用改进的聚类算法进行统计聚类。即为在运行K-means算法前先在数据集里随机选择一个数据点,设为第一个聚类中心,然后统计所有数据点x的距离,计算与它最近的聚类中心的距离,随后尝试更新数据点,选择的标准是:包含数据较多的点,被选中作为新的聚类中心的概率应该较大。重复上述步骤,到k个聚类中心被选出来为止。最后初始化k个聚类中心,再运行K-means算法。K-means++主要优化了初始聚类中心的选取,使得初始聚类中心之间的相似度距离尽可能大,这种方法可以有效缩短聚类时间,改善算法的聚类效果。
例如:将图片宽高设置为416,K-means++聚类算法结果如图2所示。通过K-means++算法得到最终9个Anchor box是(52,146),(145,53),(67,183),(192,67),(77,221),(252,84),(94,261),(113,331)和(338,121),准确度是84.19%。由于饮料形状相似,宽高比差异不大,得出的Anchor box的宽高比率在0.34至0.37之间,为了使识别效果更好,有部分横放的饮料,增加了数据集的多样性,其宽高比在2.74到2.99之间。
其中,所述步骤S2中,一般训练是在现有的网络模型基础之上进行再训练,这样的好处是不需要进行随机初始化,避免因为初始参数选择不当,导致网络优化陷入困境。
所述步骤S3中,YOLOv3中几乎每个卷积层后面都有一个批量归一化BN层,用于加速收敛并提高泛化能力。稀疏化训练是在BN层中将γ参数作为网络瘦身所需的缩放因子,对γ施加L1正则化,通过L1正则化将BN比例因子的值逼近零,从而在后续步骤中进行通道修剪。原理如下:
假设Zin和Zout是BN层的输入和输出,B表示当前mini-batch,BN层执行以下转换:
其中,μB和σB是Zin的均值和标准偏差值,γ和β是可训练的仿射变换参数(尺度和位移),每个通道引入一个比例因子γ,该比例因子乘以该通道的输出。然后联合训练网络权重和缩放因子,对网络进行稀疏正则化,损失函数修改为:
其中,LossYOLOv3表示YOLOv3正常训练的损失,是缩放因子损失,是稀疏性训练发挥重用的关键函数,为惩罚系数,它是一个超参数λ。本申请选择为g
其中||γ||1称为L1范数,广泛用于实现稀疏性,L1正则化的加入会使得网络γ矩阵中的参数减小,从而实现稀疏化,λ越大,对γ的惩罚效果越强,稀疏程度越高,最终使得最优值中γ的一些参数接近于0,通过这一过程筛选出了选择其中重要的参数。
所述步骤S4中,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层,具体包括:
将YOLOv3稀疏化后的最终模型作为基准,基于BN层系数进行通道剪枝,达到理想精度后进行稀疏训练,对需要剪枝的层对应的BN的系数进行大幅压缩,然后设定剪枝率,对值进行排序,根据选取的剪枝率剪除不重要的通道剪枝,修剪过程中,忽略上采样层,因为采样层没有卷积通道,忽略快捷链路层;层剪枝是在通道剪枝基础上针对每一个快捷链路前一个带BN的卷积层进行评价,对各层的γ最高值进行排序,取最小的进行层剪枝。
其中,通道剪枝是基于BN层系数进行通道剪枝,达到理想精度后进行稀疏训练,对需要剪枝的层对应的BN的系数进行大幅压缩,然后设定剪枝率(pruning ratio),对值进行排序,根据选取的pruning ratio剪除对不重要的通道剪枝。修剪过程中,忽略上采样(upsample)层,因为up sample没有卷积通道,忽略快捷链路(shortcut)层,YOLOv3中的shortcut借鉴了与ResNet中的残差。层剪枝只剪主干中的shortcut,YOLOv3中有23处shortcut,每剪一个shortcut结构,会同时剪掉一个shortcut层和它前面的两个卷积层,剪掉1个shortcut相当于剪掉了3个层,总共有69个层的剪层空间。层剪枝是在通道剪枝基础上针对每一个shortcut前一个带BN的卷积层进行评价,对各层的γ最高值进行排序,取最小的进行层剪枝。
所述步骤S5中,对剪枝后的模型进行微调,使精度回升;网络优化过程中需要评估当前网络模型的快速性和准确性,具体指标有mAP、参数量、推理时间和模型大小。在剪枝过后和微调网络过后都要进行模型评估,如果满足要求,则结束优化过程,如果不满足,则需进一步优化。
由此根据网络评价结果提出了剪枝优化决策方案,如表1所示。
表1剪枝优化决策方案
表1中,“+”表示满足要求,“-”表示未达标准。当准确性和快速性都满足要求时,可以直接输出当前模型;当准确性满足但快速性欠佳,尝试增加剪枝程度,包括加大剪枝率(记为PR)和增加裁剪shortcut层数(记为SC);当快速性满足要求,但准确性欠佳,尝试减小PR和SC;当准确性和快速性都无法达到要求时,可以使用迭代式剪枝,即继续进行稀疏化训练,修剪率较小的迭代修剪比大修剪率的主动修剪更易于保持检测精度。
优化算法示例:本发明使用基于MSCOCO数据集训练好的模型,避免了因初始参数设置不当而产生的问题,设定YOLOv3的Darknet-53网络结构,载入数据集图片、标签和权重参数,进行前向推理,利用loss值反向求导更新权重参数,迭代一定次数,结束训练,挑选最终模型。训练中选用SGD优化器,初始学习率设置为0.002324,在进行到epochs的70%和90%的时候,学习率分别衰减为之前的0.1和0.01倍,最小批量大小为16,共迭代100个epoch。经过100个epoch,模型在训练集上的Loss下降至0.69,在验证集上的mAP值达到了0.833。对YOLOv3进行200个epoch的稀疏训练。在实验中使用惩罚因子值为0.001。稀疏训练的其余超参数与正常训练相同。使用YOLOv3稀疏化后的最终模型作为基准。通过将通道修剪模块的剪枝率(记为PR)设置为0.492,0.787,0.885和0.968得到了4个通道剪枝后的模型,通过在验证集上的测试,得到的通道剪枝结果如表2所示。
表2通道剪枝结果
由表2知,随着PR增加,参数量和模型大大缩减,mAP有所下降,检测时间一定程度上减少。当PR过大时,裁剪了太多通道会导致模型精度严重受损,但是模型检测时间并没有随着通道剪枝率的增加而一直减小,一是因为通道剪枝是改变卷积通道数,并没有减少模型的层,模型的深度没有改变,二可能是因为是检测速度受图片读取速度影响。值得关注的是当PR为0.885,即修剪了88.5%的通道时,参数量减少了97%,模型大小减少了97%,单张检测时间减少了32%。
层剪枝也是使用YOLOv3稀疏化后的最终模型作为基准。通过层修剪模块的shortcut剪枝数(记为SC)设置为8,12和16得到了3个层剪枝后的模型,通过在验证集上的测试,得到的层剪枝结果如表3所示。
表3层剪枝结果
由表3知,随着SC增加,参数量和模型一定程度上减小,mAP有所下降,检测时间显著减少。值得注意的是,当层剪枝数为8时,即修剪了24个层,参数量减少了43%,模型大小减少了43%,单张检测时间减少了20%,mAP几乎不变。
双重剪枝,即采用通道剪枝和层剪枝相结合的方法,取SC为0和8,PR为0.492、0.787、0.885的结果如表4所示。
表4通道剪枝加层剪枝结果
由表4知,PR为0.492、0.787和0.885时,在添加SC为8后,参数量和模型大小几乎不变,检测时间大大减少,mAP不降反升。通道剪枝已经大大减小了模型参数和计算量,降低了模型对模型资源的占用,而层剪枝可以进一步减小了计算量,并大大提高了模型推理速度。通过层剪枝和通道剪枝结合,可以压缩模型的深度和宽度,实现了针对不同数据集的小模型搜索。
由表4看出,Oxford hand数据集模型剪枝后,mAP下降比较多,对剪枝后的模型进行微调,取PR=0.885,SC=8,epoch为50,hand数据集最终mAP为0.753。
基于深度学习的目标检测YOLOv3算法中,网络结构和模型大小决定了运算速度和精度。下面首先对不同的Anchor box的性能进行对比,选择适用于本系统的Anchor box,然后对改进算法和YOLOv3算法在相同支持度下的运算性能进行对比分析,即商品数据集模型剪枝前后模型性能对比。
(1)改进Anchor Box前后对比分析
本发明用K-means++聚类算法,针对商品数据集聚类了9种Anchor box,实验分别使用COCO数据集的Anchor box(记为anchor1)和商品数据集的Anchor box(记为anchor2),验证在商品数据集上的性能。训练共迭代50个epoch,即遍历50次训练集,每遍历完一次,在测试集上进行网络评估,为了使数据有可比性,训练使用相同的超参数。修改Anchor box前后的各自最优模型的mAP和F1对比如表5所示。
表5修改Anchor box前后的mAP和F1对比
由表5可知,anchor2的mAP提高了0.015,F1提高了0.036。Anchor box预设值越精准,要学习的tw,th拟合越快,经过模型计算得到的Bounding box在误差函数的优化过程中会越来越接近Ground Truth Box,各项指标较修改anchor之前,都有提升。在epoch=0之后就已经达到了一个比较高的值,所以使用与数据集相应的Anchor box有利于模型的快速拟合,提高模型的预测精度。
(2)改进算法与YOLOv3算法对比分析
为验证改进算法的性能,首先使用YOLOv3一般训练后的最优模型作为基准。稀疏训练的惩罚因子取值0.001,在epoch为200的模型基础上,通过通道剪枝和层剪枝叠加,PR为0.885,SC为8。Oxford hand数据集模型剪枝前后模型性能对比如下表6所示。
从表6中可以看出,剪枝微调后的模型mAP为0.753,下降了0.08;参数量为166万,减少了97%;模型大小为6.7M,减小了97.3%;检测时间为4.8ms,缩短了45.5%。根据表6的剪枝优化决策方案,停止剪枝,输出模型。
表6 Oxford hand数据集模型剪枝前后性能对比
采用通道剪枝加层剪枝的剪枝方式,效果良好,在不使模型mAP下降严重的前提下,使参数量极大减少,模型极大减小,检测时间大大缩短。
然后结合Anchor box改进效果在商品数据集上进行稀疏化训练和剪枝,初始模型为改进Anchor后的mAP最佳模型。商品数据集模型剪枝前后模型性能对比如下表7所示。
表7商品模型剪枝前后性能对比
由表7知,在第一次剪枝之后,mAP、模型大小和检测时间都没有达到理想值,根据表1的剪枝优化决策方案,进行迭代式剪枝。第二次剪枝之后,剪枝微调后的模型mAP为0.889,下降了0.03;参数量为775万,减少了87.4%;模型大小为30.2M,减小了87.8%;检测时间为4.5ms,缩短了48.9%。迭代剪枝,可以在不大影响性能的基础上,使网络更加紧凑。
从hand数据集和商品数据集的模型剪枝结果可以看出,使用了本发明使用的通道剪枝和层剪枝方法以及提出的剪枝优化决策方案,都得到有效性验证。
本算法在自动售货机中应用实例:选择Ubuntu 18.04.3LTS系统,CPU是CoreTMi9-9900KF CPU@3.60GHz×16(56CPU),RAM为64GB,GPU采用一块GeForce RTX2080Ti,Pytorch作为模型的训练与测试平台,计算机配置为CPU i9,GPU 2080ti。使用Python3.7语言,安装的CUDA版本为10.0,CUDNN版本是7.6.0,深度学习框架使用PyTorch1.2.0版本,为了在训练过程中实时监控,使用了Tensorboard1.14版本。为了便于调试程序,使用专业版PyCharm的IDE工具。
运行后台图像识别程序,输入摄像头拍摄的示例照片,输入宽高为608×608,置信度阈值设为0.5,IoU阈值设置为0.5,使用微调过后的模型。检测出了箱内目前所有饮料,不仅显示坐标框,还标注了框内商品名称,坐标框的中心位置准确,宽高大小接近真实值,商品名称无误,前向推理时间为0.0047ms。商品图像测试取得了比较好的结果,模型性能优良。
自助售货机为立式柜机,货架上部有摄像头和商品选择界面,使用流程是:点击开始购物,验证开门,挑选商品,关门结算。点击开始购物,进入人脸验证。人脸解锁之后,摄像机获取当前机柜内部图片,此时的界面显示的是商品的图片、名称和价格。该自助售货机购物,在购物完成关门之后,短时间内完成内部商品识别,完成了结算,体现了“即拿即走”的购物理念。
本发明提供的基于深度学习的目标检测YOLOv3的模型优化算法,通过精简卷积神经网络结构,改进目标检测算法YOLOv3,使得目标检测算法在保持较好的目标检测效果的基础上减少模型计算量,加快网络模型运算速度。精简后的YOLOv3目标检测模型,应用更加广泛,可以部署在嵌入式、安卓等性能有限的设备上。应用了本发明的自助售货机购物,在购物完成关门之后,短时间内完成内部商品识别,完成了结算,体现了“即拿即走”的购物理念。
本申请中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,包括以下步骤:
S1,采用K-means++聚类算法重新设置合适商品数据集的Anchor box;
S2,进行一般训练:设定YOLOv3的Darknet-53网络结构,载入数据集图片、标签和权重参数,进行前向推理,利用loss值反向求导更新权重参数,迭代一定次数,结束训练,挑选最终模型;
S3,进行稀疏化训练:对YOLOv3进行200个epoch的稀疏训练,其中使用惩罚因子值为0.001,稀疏训练的其余超参数与正常训练相同;
S4,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层;
S5,对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,对得到的值再次进行评估,如果满足优化要求,则结束优化过程,如果不满足,则需重复步骤S1-S4进一步优化,直到满足要求。
2.根据权利要求1所述的基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,所述步骤S1中,采用K-means++聚类算法重新设置合适商品数据集的Anchor box,具体包括:
S101,随机选取一个Anchor box的宽高作为第一个聚类中心;
S102,基于第一个聚类中心开始,逐个确定第n个聚类中心,第n个聚类中心选取原则是与当前第n-1个聚类中心IoU越大的框被选取的概率越大;
S103,循环步骤S102直到所有初始聚类中心被确定;
S104,剩下其它Anchor box逐一与聚类中心计算IoU,得到两个框之间的IoU,将Anchorbox划分到与其IoU最大的聚类中心所属的类中;
S105,所有Anchor box都遍历后,计算各类Anchor box宽、高的均值,作为下轮迭代的聚类中心;
S106,重复步骤S104、S105,直到大于阈值,或达到迭代次数。
3.根据权利要求1所述的基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,所述步骤S4中,将YOLOv3稀疏化后的最终模型作为基准,叠加使用通道剪枝和层剪枝进行双重剪枝,修剪不重要的特征通道和层,具体包括:
将YOLOv3稀疏化后的最终模型作为基准,基于BN层系数进行通道剪枝,达到理想精度后进行稀疏训练,对需要剪枝的层对应的BN的系数进行大幅压缩,然后设定剪枝率,对值进行排序,根据选取的剪枝率剪除不重要的通道剪枝,修剪过程中,忽略上采样层,因为采样层没有卷积通道,忽略快捷链路层;层剪枝是在通道剪枝基础上针对每一个快捷链路前一个带BN的卷积层进行评价,对各层的γ最高值进行排序,取最小的进行层剪枝。
4.根据权利要求3所述的基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,通过将通道修剪模块的剪枝率PR设置为0.492,0.787,0.885和0.968得到了4个通道剪枝后的模型。
5.根据权利要求3所述的基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,通过层修剪模块的shortcut剪枝数SC设置为8,12和16得到了3个层剪枝后的模型。
6.根据权利要求1所述的基于深度学习的目标检测YOLOv3的模型优化算法,其特征在于,对剪枝后的模型进行微调,根据mAP曲线图取较好效果的值,具体包括:
剪枝后,mAP下降比较多,对剪枝后的模型进行微调,取PR=0.885,SC=8,epoch为50,根据mAP曲线图取较好效果的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568883.1A CN112001477A (zh) | 2020-06-19 | 2020-06-19 | 一种基于深度学习的目标检测YOLOv3的模型优化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568883.1A CN112001477A (zh) | 2020-06-19 | 2020-06-19 | 一种基于深度学习的目标检测YOLOv3的模型优化算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112001477A true CN112001477A (zh) | 2020-11-27 |
Family
ID=73467912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010568883.1A Pending CN112001477A (zh) | 2020-06-19 | 2020-06-19 | 一种基于深度学习的目标检测YOLOv3的模型优化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001477A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733739A (zh) * | 2021-01-14 | 2021-04-30 | 重庆中科云从科技有限公司 | 提升禁区场景下行人识别速度的方法、系统、介质及装置 |
CN112949385A (zh) * | 2021-01-24 | 2021-06-11 | 西北工业大学 | 一种基于光视觉的水面目标检测与识别方法 |
CN113554169A (zh) * | 2021-07-28 | 2021-10-26 | 杭州海康威视数字技术股份有限公司 | 模型优化方法、装置、电子设备及可读存储介质 |
CN113807466A (zh) * | 2021-10-09 | 2021-12-17 | 中山大学 | 一种基于深度学习的物流包裹自主检测方法 |
CN114120154A (zh) * | 2021-11-23 | 2022-03-01 | 宁波大学 | 一种高层建筑玻璃幕墙破损的自动检测方法 |
CN114332583A (zh) * | 2021-12-10 | 2022-04-12 | 北京航空航天大学 | 基于改进yolov3的室内目标检测方法 |
CN114528975A (zh) * | 2022-01-20 | 2022-05-24 | 珠高智能科技(深圳)有限公司 | 深度学习模型训练方法、系统及介质 |
CN114841931A (zh) * | 2022-04-18 | 2022-08-02 | 西南交通大学 | 一种基于剪枝算法的轨枕实时缺陷检测方法 |
CN115100603A (zh) * | 2022-07-08 | 2022-09-23 | 福州大学 | 基于稀疏系数通道剪枝的轻量化个人防护装备检测方法 |
WO2022186925A3 (en) * | 2021-02-08 | 2022-11-10 | Carnegie Mellon University | Method for compressing an ai-based object detection model for deployment on resource-limited devices |
WO2023273895A1 (zh) * | 2021-06-29 | 2023-01-05 | 苏州一径科技有限公司 | 一种基于聚类的目标检测模型的评估方法 |
CN115935263A (zh) * | 2023-02-22 | 2023-04-07 | 和普威视光电股份有限公司 | 基于yolov5剪枝的边端芯片检测分类方法及系统 |
CN115954102A (zh) * | 2023-03-14 | 2023-04-11 | 中山大学附属第一医院 | 一种人工关节假体周围感染诊断模型及诊断系统 |
CN116503344A (zh) * | 2023-04-21 | 2023-07-28 | 南京邮电大学 | 一种基于深度学习的裂纹实例分割方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
-
2020
- 2020-06-19 CN CN202010568883.1A patent/CN112001477A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355248A (zh) * | 2016-08-26 | 2017-01-25 | 深圳先进技术研究院 | 一种深度卷积神经网络训练方法及装置 |
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
Non-Patent Citations (1)
Title |
---|
BJMAYOR: "YOLOv3通道+层剪枝,参数压缩98%,砍掉48个层,提速2倍!", 《演道网》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733739B (zh) * | 2021-01-14 | 2021-10-15 | 重庆中科云从科技有限公司 | 提升禁区场景下行人识别速度的方法、系统、介质及装置 |
CN112733739A (zh) * | 2021-01-14 | 2021-04-30 | 重庆中科云从科技有限公司 | 提升禁区场景下行人识别速度的方法、系统、介质及装置 |
CN112949385A (zh) * | 2021-01-24 | 2021-06-11 | 西北工业大学 | 一种基于光视觉的水面目标检测与识别方法 |
WO2022186925A3 (en) * | 2021-02-08 | 2022-11-10 | Carnegie Mellon University | Method for compressing an ai-based object detection model for deployment on resource-limited devices |
WO2023273895A1 (zh) * | 2021-06-29 | 2023-01-05 | 苏州一径科技有限公司 | 一种基于聚类的目标检测模型的评估方法 |
CN113554169B (zh) * | 2021-07-28 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 模型优化方法、装置、电子设备及可读存储介质 |
CN113554169A (zh) * | 2021-07-28 | 2021-10-26 | 杭州海康威视数字技术股份有限公司 | 模型优化方法、装置、电子设备及可读存储介质 |
CN113807466A (zh) * | 2021-10-09 | 2021-12-17 | 中山大学 | 一种基于深度学习的物流包裹自主检测方法 |
CN113807466B (zh) * | 2021-10-09 | 2023-12-22 | 中山大学 | 一种基于深度学习的物流包裹自主检测方法 |
CN114120154A (zh) * | 2021-11-23 | 2022-03-01 | 宁波大学 | 一种高层建筑玻璃幕墙破损的自动检测方法 |
CN114332583A (zh) * | 2021-12-10 | 2022-04-12 | 北京航空航天大学 | 基于改进yolov3的室内目标检测方法 |
CN114528975A (zh) * | 2022-01-20 | 2022-05-24 | 珠高智能科技(深圳)有限公司 | 深度学习模型训练方法、系统及介质 |
CN114841931A (zh) * | 2022-04-18 | 2022-08-02 | 西南交通大学 | 一种基于剪枝算法的轨枕实时缺陷检测方法 |
CN115100603A (zh) * | 2022-07-08 | 2022-09-23 | 福州大学 | 基于稀疏系数通道剪枝的轻量化个人防护装备检测方法 |
CN115935263A (zh) * | 2023-02-22 | 2023-04-07 | 和普威视光电股份有限公司 | 基于yolov5剪枝的边端芯片检测分类方法及系统 |
CN115954102A (zh) * | 2023-03-14 | 2023-04-11 | 中山大学附属第一医院 | 一种人工关节假体周围感染诊断模型及诊断系统 |
CN116503344A (zh) * | 2023-04-21 | 2023-07-28 | 南京邮电大学 | 一种基于深度学习的裂纹实例分割方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112001477A (zh) | 一种基于深度学习的目标检测YOLOv3的模型优化算法 | |
US11403876B2 (en) | Image processing method and apparatus, facial recognition method and apparatus, and computer device | |
CN111882040B (zh) | 基于通道数量搜索的卷积神经网络压缩方法 | |
CN111860495B (zh) | 一种层级化网络结构搜索方法、设备及可读存储介质 | |
US20180349158A1 (en) | Bayesian optimization techniques and applications | |
CN112396179A (zh) | 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 | |
CN109634924B (zh) | 基于机器学习的文件系统参数自动调优方法及系统 | |
US20190294928A1 (en) | Image processing method and apparatus, and computer-readable storage medium | |
CN111723915B (zh) | 一种基于深度卷积神经网络的目标检测方法 | |
US20230368497A1 (en) | Image Recognition Method and System of Convolutional Neural Network Based on Global Detail Supplement | |
CN112016674A (zh) | 一种基于知识蒸馏的卷积神经网络的量化方法 | |
CN111368850B (zh) | 图像的特征提取、目标检测方法及装置、卷积装置、cnn网络装置、终端 | |
US20210073633A1 (en) | Neural network rank optimization device and optimization method | |
US11544561B2 (en) | Task-aware recommendation of hyperparameter configurations | |
CN113837376B (zh) | 基于动态编码卷积核融合的神经网络剪枝方法 | |
CN112101487A (zh) | 一种细粒度识别模型的压缩方法和设备 | |
CN113327227B (zh) | 一种基于MobilenetV3的小麦头快速检测方法 | |
CN112365335B (zh) | 处理信贷数据的方法及装置 | |
CN117217281A (zh) | 基于多视角特征的卷积神经网络轻量化剪枝方法及系统 | |
US11507782B2 (en) | Method, device, and program product for determining model compression rate | |
US11972604B2 (en) | Image feature visualization method, image feature visualization apparatus, and electronic device | |
US11875263B2 (en) | Method and apparatus for energy-aware deep neural network compression | |
CN115081580A (zh) | 一种对预训练的神经网络模型进行剪枝的方法 | |
US11080193B2 (en) | Method for improving the execution time of a computer application | |
Linglin et al. | Research on pruning algorithm of target detection model with YOLOv4 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201127 |