↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

Datawhale干货

作者:宋志龙、王威,啄云智能GOAT战队

大家好,我们是来自浙江啄云智能科技有限公司的GOAT算法团队,团队多年来专注于X光安检领域算法研究。今天给大家分享的是我们团队在2021科大讯飞--X光安检图像识别挑战赛中所做的一些工作,在讯飞2021年的赛事中,这个比赛可以说是竞争最激烈了,前后历时三个多月,我们团队进行了大量实验,最终拿到了复赛第一、决赛第一的成绩

下面我将从赛题背景、赛题内容分析、解决方案和总结这四个方面进行介绍,欢迎大家在评论区进行交流。

一、赛题背景

X光安检机是目前我国使用最广泛的安检技术手段,广泛应用于城市轨交、铁路、机场、重点场馆、物流寄递等场景。使用人工智能技术,辅助一线安检员进行X光安检判图,可以有效降低因为人员疲劳或注意力不集中带来的漏报等问题。但在实际场景中,因物品的多样性、成像角度、遮挡等问题,为算法的开发带来了一定的挑战。

赛题链接:

http://challenge.xfyun.cn/topic/info?type=Xray-2021

二、赛题内容及分析

1. 赛题内容

赛题数据组成

  • 初赛:

    1)带标注的训练数据,即待识别物品在包裹中的X光图像及其标注文件;

    2)不带标注的测试数据;

  • 复赛:

    1)无标注训练数据即包裹X光图像(其中有的包裹包含待识别物品);

    2)部分待识别物品X光图像(无背景);

  • 目标类别:

    刀、剪刀、尖锐工具、甩棍、小玻璃瓶、电棍、塑料饮料瓶、带喷嘴塑料瓶、电子设备、电池、公章、伞, 共12类。

模型评价指标

wAP50,即各个类别的AP50按照权重进行加权的结果。

其中各类别权重为:

刀1、剪刀1、尖锐工具1、甩棍1、小玻璃瓶1、电棍1、塑料饮料瓶0.7、带喷嘴塑料瓶0.7、电子设备0.7、电池0.7、公章0.7、伞0.7。

模型大小

600M以内

2. 赛题分析

  • 赛题数据中,提供了大量的无标注数据,利用好这些无标注数据进行半监督学习是关键。

  • 数据可视化发现数据背景较复杂且差异较大,设计合适的数据增强方法是关键。

  • 模型评价指标为AP50,因此更关注于模型的分类效果。

  • 在模型大小范围内,允许进行一定的模型融合。

三、方案介绍

基本方案从数据增强、模型训练、半监督学习、模型融合三个角度进行介绍。

数据增强

1. 数据均衡

首先对数据进行分析,如图所示,经统计发现,数据存在严重的不平衡问题,需要进行数据平衡操作。

数据平衡策略

  • 统计每个类别bbox数量,做归一化得到n

  • 类别采样次数= max(1,oversample_thr/n)

  • 图片实际的采样次数等于图片中最大的类别采样次数

均衡化之后的数据分布:

可以看到,经过数据均衡化操作之后,极端分布的类别样本得到了缓和,各个类别分别相对均衡。

2. 基本数据增强

随机反转RandomFlip、随机90°旋转RandomRotate。

几何层面的数据增强一般都能提升模型性能,比较稳定。X光图像对于色彩比较敏感,因此常见的color层面的数据增强经测试基本没什么效果。

3. MixUpObject

初赛阶段:可供训练的数据只有带标签的训练数据,为了提升模型对前景的识别能力,在训练期间,从训练集中随机选取一张图片的目标bbox,通过mixup的方式粘贴到正在训练的样本上。

复赛阶段:官方提供了一些目标的patch,因此训练时可以直接将目标patch给mixup到正在训练的样本上。

mixup效果如图所示(看起来贴的一般,但训起来好啊):

4. FixScaleResize

结合X光安检图像的成像特点,由于设备限制,其光源到物品的目标的距离是在一定范围内的,因此同一类别的目标的尺寸差异不会特别大。这一点和自然场景下的目标有较大不同,自然场景下的目标是有近大远小的情况的,也就是同一目标在不同距离的成像上,尺度可能会有非常大的差异。

因此,在进行多尺度训练时,首先需要统计数据集中同一类别目标的面积差异分布,然后据此设计出大致的缩放范围,再进行消融实验找到最佳的缩放尺度。

基本步骤:

首先,以图片原始大小为基准,设置缩放比例范围为(1.5, 3.5)进行图片和目标的缩放;

然后,设置最大缩放面积,对于缩放后超出最大面积的图片,使用最大面积进行截断处理。

5. StackImage

在比赛后期,由于提供了大量的无标签数据,因此自然想到为无标签数据生成伪标签来进行半监督学习,为此我们开发了StackImage数据增强方法,其目的在于:

a. 增强样本多样性

b. 学习无标签数据上的前景和背景信息

c. 通过拼接强监督信息和弱监督信息,达到弱化伪标签中噪音数据的目的。

基本步骤:

a. 同时取一张带标签的图片和一张无标签的图片,无标注图片使用半监督标注信息

b. 将两张图像以水平或垂直的方式进行stack,方向按照面积最小的原则

c. 无法完全对齐的地方用255填充

可视化效果:

模型选择和训练

1. 模型选择

检测框架:mmdetection

检测模型:

虽然目前swin-transformer很火,但是由于对其不是非常熟悉,另外transformer系列模型训练一般都需要较长时间和较大的GPU显存,因此选用二阶段经典网络faster-rcnn作为基线模型。

这里没有使用去年冠军方案使用的cascade-rcnn作为检测模型基线,主要是考虑到以下几点:

a. cascade-rcnn主要是对与gt的iou大于0.5的bbox的进一步优化坐标,对AP50的提升贡献较小。

b. cascade-rcnn模型较大,不利于后期模型融合策略的使用。

c. cascade-rcnn模型占用显存较大,且需要更长的训练时间。

backbone选择:

res2net101,不解释了,又强又快。

模型选择小技巧:根据经验,coco检测模型预训练相比于imagenet分类预训练有更好的效果,因此优先选择mmdetection中有coco检测预训练权重的模型。

2. Tricks

基本调参,根据对赛题的分析和对赛题的理解,对模型内相关参数尽量调整,比如学习率、rcnn正负样本采样数量、学习率衰减策略等。

模型组件--FPN,增强对小目标的识别能力,一般mmdetection实现的fasterrcnn有自带。

模型组件--DCN,DCN一般都会有比较好的效果,但是也会增加较长训练时间,可以考虑在比赛的后期再加上

模型组件--GC,有类似于空间注意力机制的作用。

训练策略--Class Loss Weight,由于AP50的指标更看重模型的分类性能,因此可以适当调大分类损失的权重,经过实验由1调整至1.25效果较好。

预训练权重--CocoPretrain,相比较于仅使用ImageNet的分类模型预训练,使用COCO的检测模型预训练能稳定涨点。

模型压缩--FP16,本次比赛有模型大小限制,因此在模型训练之后将其权重由FP32转变为FP16,其大小能降低一半。

半监督学习

本次比赛提供了大量的无标签数据,如表所示,可以看到有四批数据共15000张无标签数据,仅4000张有标签数据,因此如何使用半监督学习的方式利用好这15000张半监督数据样本,也是本次比赛的关键。

数据 数量 说明 划分
train1 4000 初赛A榜训练 with_label
test1_A 3000 初赛A榜测试 without_label
test1_B 4000 初赛B榜测试 without_label
domain5 4000 官方提供未标注数据 without_label
domain6 4000 官方提供未标注数据 without_label
patch 422 只包含单个物体的图片 patch

基本流程有以下步骤:

a. 首先使用有标签数据,训练出一个较好的模型,然后在无标签数据上推理,得到伪标签,并使用阈值进行过滤掉分数低的目标框。

b. 然后重新训练模型,将有标签的样本和伪标签的样本使用StackImage的方式进行拼接,然后送入到模型进行训练。

c. 训练后的模型,在测试集上效果变的更好了,再使用这个模型重新生成无标注数据的伪标签并进行阈值过滤,然后再重复上述训练过程。

d. 直至模型在测试集上的分数不再上升为止。

由于这些无标签数据的获取顺序是,初赛A榜时有test1_A,初赛B榜时有test1_B,复赛时有domain5, domain6,因此整个半监督学习的过程如下图所示:

模型融合

1. 模型内部融合

模型内部融合我们采取的策略是结合图像尺度和数据增强,其实也就是TTA。

在尺度方面,在训练时设置的(1.5, 3.5)范围内选择多个尺度进行消融实验,最终确定使用2.0, 2.5, 3.0的缩放比例,然后分别进行模型推理。

在数据增强方面,在不同的尺度下,进行verticalFlip、Rotate90、Horizontal Flip数据增强,然后进行模型推理。

最终将得到的多尺度多数据增强的推理结果进行融合。

2. 模型之间的融合

比赛最后发现,仅使用res2net101-fasterrcnn单模型TTA就已经能够稳坐第一的位置,但是为了能有更好的成绩,我们选择在比赛限制内,融合更多的模型。

由于比赛限制模型大小600M,因此在这个范围内,经过了FP16的压缩,可以进行以下三个模型的融合:

a. res2net101-fasterrcnn

b. resnext101_32x4d-fasterrcnn

c. resnext101_64x4d-fasterrcnn

使用这个三个模型,分别完成上述的模型训练过程,然后各自进行模型内部融合,将各自的融合结果进行模型之间的融合。

3. 模型融合方法

模型融合采用WBF融合策略,如下图所示。

注意:针对不同的任务,WBF的过程需要一定程度的调参实验,可得到较好的效果。

四、总结和思考

总结

  1. 模型选择

    基线模型:Faster-RCNN

    BackBone:Res2Net101、Resnext101_32×4d、Resnext101_64×4d

    检测框架:MMDetection

  2. 主要技术

    数据增强:数据平衡、StackImage、 MixupObject、FixScale

    Tricks:半监督学习、DCN、 Global Context、COCO预训练、TTA、 WBF、ClsLossWeight

思考

  1. 充分理解赛题和评价指标,充分理解经典模型的原理及其适用场景,以便更好地进行模型选型。

  2. 关注新技术,决赛时发现大部分选手都使用了swin-transformer,说明应该还是很强的。

  3. 充分理解数据,决赛时才知道domain5、domain6是来自两个不同X光机器的图片,如果更细致去分析其中的特点进行相关工作,可能会有更好的效果。

  4. 充分理解评价指标,可以看到计算AP50时,不同类别的权重是不一样的,这一点暂时没想好更好的办法利用这一点得到更好的结果。

以上就是我们的分享,希望有兴趣的同学一起交流,啄云智能算法团队常年招收优秀算法工程师(邮箱:renshi@peckerai.com),谢谢大家。

宋志龙

啄云智能算法工程师

王威

啄云智能算法工程师

整理不易,三连

2021科大讯飞-X光安检图像识别赛Top1方案!相关推荐

  1. 2021科大讯飞-车辆贷款违约预测赛事 Top1方案!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:望尼玛,浙江大学,Datawhale优秀选手 知乎|https:/ ...

  2. 【深度学习】从0学习YOLOV5:科大讯飞X光安检检测

    赛事背景 X光安检是目前在城市轨交.铁路.机场.物流业广泛使用的物检手段.使用人工智能技术,辅助一线安检员进行X光安检判图,可以有效降低因为安检员经验.能力或工作状态造成的错漏检问题.在实际场景中,因 ...

  3. X光安检图像识别方案总结

    文章目录 1. 方案一 1.1 比赛介绍 1.2 模型方案设计 1.2.1 数据分析 1.2.2 模型选择 1.2.3 模型调优 1.3 主要提分点 1.3.1 mixup 1.3.2 AutoAug ...

  4. ICCV 2021|复杂场景目标检测——科大讯飞等提出X光安检场景下危险品检测基准(已开源)...

    关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 复杂视觉场景下的目标识别任务有很 ...

  5. 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。

    这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...

  6. 光安检场景下危险品检测

    搬来了 之前东家的东西哦~~ 复杂视觉场景下的目标识别任务有很多亟待解决的问题,也一直是学术界研究的焦点.计算机视觉顶会ICCV 2021接收了一篇由北京航空航天大学刘祥龙教授团队.中国科学院软件研究 ...

  7. 2021科大讯飞全球1024开发者节盛大开幕

    以人工智能为代表的前沿创新,正深刻影响着世界.作为数字经济转型与抢占科技创新制高点的重要抓手,人工智能建设事关国家竞争力和产业未来.背后,是每一位开发者孜孜努力将AI应用于千行百业,让城市变得智慧,教 ...

  8. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FF ...

  9. 2021/4/24团队设计天梯赛L1题目集及题解

    2021/4/24团队设计天梯赛L1题目集及题解: 以下题解都是通过PTA测试的,大致保证正确性: 查看题目戳此::PTA题目集 L1题目集 L1-01 人与神(5分) L1-02 #两小时学完C语言 ...

最新文章

  1. python基础-------迭代器,生成器,协程函数
  2. git 创建新分支,合并分支等问题
  3. 2018年秋计算机基础在线作业,《计算机应用基础》2017年的秋学期在线作业三.doc...
  4. 3.20学习内容,字符串与列表
  5. portainer 启动mysql_docker 安装portainer容器后,启动/Portainer 安装MySQL并开启远程访问...
  6. Python安装(一)-Linux下安装Python
  7. 移动磁盘此卷不包含可识别的文件系统要怎么找到数据
  8. 断言(Assert)与异常(Exception)
  9. bzoj 4522: [Cqoi2016]密钥破解
  10. Winform开发框架之终极应用 - 伍华聪 - 博客园
  11. 3、NC系统接口集(持续更新)
  12. 如何下载最新电影高清资源?
  13. scheme Android
  14. WDK学习笔记_区块链项目实现_MAE
  15. 搜索网页显示找不到服务器,显示:DNS 查找失败,因此找不到 x 的服务器。DNS 是将网站名称解析为互联网地址的网络服务...
  16. 鼠标滑过显示红色禁用符号
  17. [Revit教程]斑马:分享一个用Revit自适应构件做安全疏散距离分析的方法#S007
  18. PMP有没有必要续证?
  19. 计算机毕业设计选题\开题\项目\论文\答辩一套玩转毕业设计
  20. 【iOS】裁剪出环形图片并旋转制作碟片效果

热门文章

  1. 用计算机设计软件,平面设计中计算机设计软件的作用
  2. [转载]將 DVD-9 影片備份成 DVD-5 的教學資料介紹與整理
  3. (17)三维图形几何变换
  4. 将沁园春长沙写出来使用html css,高一语文新教材教案全集 第一课 沁园春 长沙...
  5. 最全的android图片加密
  6. CSS3引入外部字体(苹方字体下载链接)
  7. cocos2d-luajit文件还原
  8. encodeURI javascript
  9. android播放器 慢速,能慢放视频的手机软件 安卓手机视频慢放,把视频速度调整为1/2X...
  10. spring boot vue java工作流引擎j-roadflow测试环境搭建