加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
作者:张佳程
https://zhuanlan.zhihu.com/p/78942216
来源:知乎,已获作者授权转载,禁止二次转载。
《SlimYOLOv3: Narrower, Faster and Better for Real-Time UAV Applications》是arXiv, 25 Jul 2019的论文,作者全部来自北理,论文链接为arxiv.org/abs/1907.1109。
作者对YOLOv3的卷积层通道剪枝(以通道级稀疏化),大幅削减了模型的计算量(~90.8% decrease of FLOPs)和参数量( ~92.0% decline of parameter size),剪枝后的模型运行速度约为原来的两倍,并基本保持了原模型的检测精度。
具体是怎么做的?通过稀疏训练和通道剪枝获得SlimYOLOv3的程式可用下图概括:
首先来介绍下YOLOv3-SPP3,它是作者在YOLOv3基础上做了一点改进得到的。YOLOv3分别在三个不同尺寸的特征图上构建detection header,作者将spatial pyramid pooling (SPP) module引入YOLOv3中。SPP module由四个并行的分支构成,分别是kernel size为1×1, 5×5, 9×9, 13×13的最大池化。如下图所示,作者在每个检测头前面的第5和第6卷积层之间集成SPP模块来获得YOLOv3-SPP3。作者实际上后续以YOLOv3-SPP3作为baseline来进行稀疏训练和通道剪枝等。
稀疏训练。在YOLOv3每个卷积层后跟着的BN layer起到加速模型收敛、提高泛化能力的作用,批量标准化公式为:(其中和分别是输入特征的均值和方差,γ和β是可训练的比例因子和偏差)
自然地,作者直接采用 γ的绝对值(L1 regularization)来表征通道的重要程度。稀疏训练的损失函数是:(其,是惩罚因子—— balances the two loss terms,作者在实验中设置为0.0001)
通道剪枝,其实就是去除那些尺度因子小的通道、减少模型通道数,“更窄”。作者引入一个全局阈值来决定某通道是否被剪掉, 被设置为所有 的n-th percentile,它即是剪枝率。此外,为了防止over-pruning、保持网络连接的完整性,作者引入了一个局部安全阈值,是逐层级设置的,被设置为当前卷积层中所有 的k-th percentile。作者将比例因子 γ同时小于和的通道去除。当然,YOLOv3中有一些特殊层需要特殊处理:maxpool layer和upsample layer(与通道数无关直接忽略)、route layer(concatenate其incoming layers对应的pruning masks来获得route layer的pruning mask)、shortcut layer(所有与shortcut layer连接的layers需要有相同的channel number,为了匹配这些feature channels,遍历这些层的pruning masks并执行OR操作来为这些层生成最终的pruning masks)。
接下来就是Fine-tuning(重训SlimYOLOv3)和Iteratively pruning(迭代修剪直到满足一定的条件,比如模型剪枝率达到一定要求,首选上图所示的增量修剪策略,以防止过度修剪)。
模型:YOLOv3、YOLOv3-tiny(YOLOv3的tiny版本)、YOLOv3-SPP1(仅在第一个检测头前集成SPP模块)、YOLOv3-SPP3、SlimYOLOv3-SPP3-50(n=50, k=90, 迭代剪枝2次)、SlimYOLOv3-SPP3-90(n=90, k=90)、SlimYOLOv3-SPP3-95(n=95, k=90)。
在VisDrone2018-Det dataset的验证集上进行评估,各模型测试结果如下:
SlimYOLOv3-SPP3-50、SlimYOLOv3-SPP3-90、SlimYOLOv3-SPP3-95相比YOLOv3-SPP3而言,实际上reduces FLOPs (when input size is 832×832) by 57.1%, 85.9% and 90.8%, decreases parameters size by 67.4%, 87.5% and 92.0%, shrinks model volume by 67.5%, 87.4 and 92.0%, and reduces the inference time by 38.8%, 42.6% and 49.5%.
至于检测精度,上面的柱状图表示很直观了。
至于Billion floating point operations(BFLOPs) and accuracy (mAP) trade-off,下图更为直观:
-End-
*延伸阅读
添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
△长按添加极市小助手
△长按关注极市平台
觉得有用麻烦给个在看啦~