![]()
大赛主页:
水下目标检测算法赛(光学图像赛项)www.kesci.com
赛题任务
在真实海底图片数据中检测出不同海产品(海参、海胆、扇贝、海星)的位置,评测指标:0.5 *精度(mAP) + 0.5 * 速度
团队信息
团队:科学炼丹
该团队在初赛A榜位列第6,B榜位列第8,经过组委会复现,获得了精度排名6,速度排名6的成绩,最终通过主观评审确认,取得了rank3的成绩。
以下是该团队的方案分享。
比赛的理解
比赛目标较为清晰,即在水下复杂环境下高精度检测出四种水产品。考虑到给出的数据集(5543幅训练图像,1920*1080,jpg格式),此次任务难点有如下3点:
1.目标尺度分布跨度大,小目标多
2.水下样本图片质量较差
3.数据量较少,容易产生过拟合
方法框架和亮点
整体训练流程分为如下6步:
- 数据处理: 转化原始数据为训练格式
- 数据增强: 数据增强改变数据分布提高性能
- 分尺度训练:更好的训练不同尺度的目标
- 训练tricks:提高模型精度
- 分尺度测试:提高不同尺度的精度
- 多尺度融合:提升整体的精度
亮点一
使用了CVPR 2020其中一篇论文提出的ATSS方法,不引入其它额外的开销,在MS COCO上达到SOTA
论文地址:
https://
arxiv.org/abs/1912.0242
4代码地址:
https://
github.com/sfzhang15/AT
SS论文指出one-stage anchor-based和center-based anchor-free检测算法间的差异主要来自于正负样本的选择,基于此提出ATSS(Adaptive Training Sample Selection)方法,该方法能够自动根据GT的相关统计特征选择合适的anchor box作为正样本,在不带来额外计算量和参数的情况下,能够大幅提升模型的性能,十分有用
来源:晓飞的算法工程笔记 公众号
亮点二
我们将同一张图片进行了分尺度训练,训练了多个模型
亮点三
用了如下5个步骤进行数据增强
- 图像扰动:颜色抖动,对比度调整
- 图像扩充:扩充图像样本,增加小尺度目标
- 图像裁剪:基于目标位置的裁剪,增加大尺度目标
- resize:进一步改变,尺度分布
- 训练:分尺度训练
亮点四
训练技巧
1.Synchronized Batch Normalization,可以充分利用BN统计量信息
为什么要做Sync BN
在一般的视觉问题上,单卡的batchsize其实已经够大,没必要把所有卡上的都统计一遍。然而到了现在的检测或者分割问题上,有些大模型单卡只能bz=1,这样的话BN完全无法发挥作用,所以我们需要在更多的卡上同步bn。
知乎:All About Batch Normalization
https://
zhuanlan.zhihu.com/p/58
187020
2.使用coco预训练,加快模型收敛,提升整体的精度
网络细节与实现路径
分析现有数据集,目标长宽比与尺度分布如下
大部分的目标的长宽比比较集中固定,1: 1即可达到比较好的效果
目标的整体尺度偏小,大部分集中在中小尺度目标上
ATSS 超参数
数据处理与参数量
图片增强
以上列出了一些图像增强方式,作为扰动减少过拟合,经过验验证我们最终选择了 Distort 和对比度调整去作为扰动方式
尺度增强
数据增强每次随机以一半的概率进行操作,理论上可以产生各种尺度的目标
多尺度、多模型融合
模型融合一般会使用BBox-vote,将多个尺度检测结果位置和分数信息做平均处理。而我们用了Soft-vote,类似soft-nms 不直接去除结果,只降低得分
创新点效果
我们分步对每个trick进行了精度提升的跟踪,最终可以发现,在baseline的基础上,获得了3.2%提升
方案整体总结
本方案的优势总结为如下三点:
1.训练完全端到端,不同的任务只需要更换数据,训练方便,且支持更换小网络,如MobileNetV2,ShuffleNet V2,训练框架不变
2.不同应用场景使用不同模型,单尺度单模型速度快,多尺度多模型精度高
3.训练提升大部分不需要额外增加运算负担,大部分的速度损耗来着于大尺度的输入(为了更好的检测小目标)
版权声明:本文为CSDN博主「孟婵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35564059/article/details/112493586
![]()

暂无评论