前几天腾讯公布了一篇论文RefineDetLite: A Lightweight One-stage Object Detection Framework for CPU-only Devices,提出一种面向CPU设备的轻量级一阶段目标检测网络RefineDetLite,其在MSCOCO 上可以达到精度29.4 AP,同时在Intel 6700 @3.4G HZ 型号CPU上可以跑到130ms/图片(320X320),是目前轻量级通用目标检测网络的佼佼者。
以下是作者信息:
RefineDetLite是在RefineDet目标检测算法基础上提出的改进,其架构如下:
其最大的改进点是考虑到分类网络的骨干网并不适合目标检测,设计了轻量级的 Res2NetLite 骨干网,如下图:
其中使用的基础模块Res2Block如下图:
作者为此骨干网设计了Light-head 用于检测,在检测部分又分为粗略的loss模块和提精损失模块,如下图:
除了网络架构的改进,作者设计了几个训练策略也大幅改进了精度。
训练策略:
1. 损失函数分粗略和提精的定位和分类四部分:
2. 在这个多任务学习中,加权的权重是可训练的:
3. IOU-guided loss ,不再以交并比超过0.5对检测结果硬化分,设计soft one-hot 标签,并以此来计算损失函数。
4. 数据集感知的类别加权损失函数。消除不同类别目标样本数目不平衡问题。
下表为作者在MSCOCO test-dev 数据集上的实验结果:
其中有很多值得思考的地方:
1. RefineDetLite 达到了 AP 26.8,加上作者提出的训练策略,可以达到29.6,在轻量级目标检测网络中是最高的精度。
2. ThunderNet是之前最优秀的轻量级算法(出自旷视),但该文的训练策略也可以用于ThunderNet,单纯比算法,可能ThunderNet更优秀!希望以后会有更多的结果出来。
3. 为检测设计专门的骨干网很有必要!
4. 在RefineDet中使用MobileNetV3比使用MobileNetV2效果还差!这是不是说明神经架构搜索得到的网络迁移效果不好?
5. 作者设计的训练策略非常有效,这些都是在处理不平衡问题和IOU对损失贡献问题,看来这个很重要。强烈推荐大家看:目标检测中的不平衡问题综述
消融实验:
检测图片例子:
论文地址:
https://arxiv.org/pdf/1911.08855.pdf
加入人工智能学习微信群,跟大家一起交流学习吧。
QQ群号:709470683
微信号:geqmoon