总结 | 百度Paddle轻量级目标检测挑战赛 Posted 2021-04-01 百度校园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结 | 百度Paddle轻量级目标检测挑战赛相关的知识,希望对你有一定的参考价值。
点击菜单栏“粉丝福利”
拿小度,兑手机!
竞赛任务为轻量级目标检 测,在获取准确的目标检测BBOX时,要兼顾模型推理速度。 提交形式以提交推理代码由官方进行推理,计算精度和耗时。 笔者为炮灰,只获得了挑战赛第10名,在此仅仅是总结一下比赛经验。
这是官方对于模型的评分标准,通过分析以及参考其他队伍的提交结果来看,MAdds要比精度对于评分更重要。MAdds降低较多分数,比mAP提升0.4带来的收益要高的多,而MAdds降低要比提升精度更容易。
官方给出两个Baseline
,起初用的ShuffleNet-V2,到了中后期,官方又放出了一个mAP更高的MobileNet-V3的Baseline,我们是从中后期参加的,直接用上了MobileNet。
在比赛进行的同时,官方也在不断提升Baseline的精度,也算是刺激的大家创意吧。
百度的比赛嘛,肯定离不开Paddle,官方非常友善的提供了算力,只要报名参赛的,每天登陆AI Studio签到,都会送8小时算力,Tesla V100(16G)!!心不心动!!
PS:在上面配环境跑别的代码也是可以的(狗头保命)
当然就比赛而言,每天8小时算力是不够的,所以签到5天送40小时~~hhhhh,当然除此之外我们也在自己实验室的服务器上配了Paddle环境,也方面我们改代码。
先说下AI Studio平台,平台搭建了Notebook可以在线调代码,只需要上传文件和数据就可以用在线跑比赛。此外,还可以直接从官方fork代码和数据集,免去我们下载数据的烦恼,毕竟COCO的数据量也不小。
由于本身经验不足,调参水平一般,提升mAP基本就靠运气,而且小模型的mAP确实很难提上去,所以,与其纠结于 提升0.几的AP,不如把MAdds降下来! ! baseline的MAdds就是600多,所以,先降到160再说~
模型压缩有什么好办法呢?量化训练、剪枝,还有改模型结构。首先是量化训练,我们很惊喜的发现,Paddle实现了量化训练和剪枝!!可以直接用!!
一个函数解决!降参数变为8位,一下子参数降下去了,那么问题来了,Paddle提供了这么方便的接口,那肯定大家伙都会很方便的用。这就失去了量化训练的优势了,而剪枝。。。说实话小模型本身能力就不高,剪枝可操作的空间更是小,那么只能考虑模型结构了。
改进MobileNet-V3,在看baseline的时候发现,Paddle封装的真的好,卷积函数里直接实现了分组卷积、空洞卷积、深度可分离等等,有点心动~学一手Paddle
说到改进的MobileNet-V3,那当然是MixNet,引入多种尺寸的卷积核,能增大感受野提高精度,将原本的33卷积换成四种尺寸(3*3,5*5,7*7,99)的卷积,数量分别是4:2:1:1,但是同时出现了问题,虽然能提了一点点精度,但是参数量增加了很多。所以,为了减少一部分参数,想到了SqueezeNet的Fire Module,参考一下将9*9的卷积替换成了1*1,因为9*9实在太大。参数量降了一点,精度也还没差多少!
这里直接在官方封装的卷积源码上改了一下,贴一下自己实现的Mix卷积核,写的烂求轻喷~
至此,模型改进方案也是看的文献少,没有什么点子了,而且MAdds降到了167,再低也是按160算,所以没必要了,就调参吧,硬着头皮上,得到了个第10.。。。
这次炮灰经历,最大的教训就是发现了自己调参能力差、文献阅读量差的问题,也是为之后比赛提供了经验,之后能有一个更科学合理的参赛流程,也不会胡乱搞一通。
而且!第十名有官方的1000元京东卡~嘻嘻,美滋滋,开学用它买了口罩~
最后,发自内心的想安利一波,百度的比赛值得参加一下呢
原文链接:https://zhuanlan.zhihu.com/p/147050073
以上是关于总结 | 百度Paddle轻量级目标检测挑战赛的主要内容,如果未能解决你的问题,请参考以下文章
如何基于Flutter和Paddle Lite实现实时目标检测
paddle学习赛——钢铁目标检测(yolov5ppyoloe+,Faster-RCNN)
EfficientDet : 快又准,EfficientNet作者在目标检测领域的移植 CVPR 2020
VOC数据集 目标检测
PicoDet论文译读笔记
gluoncv目标检测小结