前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

作者头像
AI算法与图像处理
发布2019-12-23 12:35:37
9420
发布2019-12-23 12:35:37
举报
文章被收录于专栏:AI算法与图像处理

来源: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,下图更为直观:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法与图像处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 来源:https://zhuanlan.zhihu.com/p/78942216
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档