Swin-Transformer再次助力夺冠 | Kaggle第1名方案解读(工程人员建议必看)

简介: Swin-Transformer再次助力夺冠 | Kaggle第1名方案解读(工程人员建议必看)

1实例分割


这里作者采用了先检测后进行语义分割的Pipeline的方法。

  • 首先,训练一个目标检测器为视频的每一帧生成边界框。
  • 然后,取前100个bounding box proposals,裁剪带有这些bounding box的图像,并将调整大小后的图像块输入前景/背景分割网络,以获得Instance Mask。

1、检测网络

  • 作者采用Cascade Region Proposal Network作为Baseline,采用Focal loss和GIoU loss进行分类和边界框回归。
  • 在训练过程中,作者使用2个独立的SimOTA采样器进行正/负样本采样,其中一个用于分类,另一个用于边界框回归。与此同时作者也放宽了边界框回归采样器的选择标准,以获得更多的正样本。
  • 与分类头和边界框回归头并行增加一个IoU分支,用于预测预测边界框与ground truth之间的IoU。
  • 为了解决目标检测中分类任务和回归任务之间的冲突问题,作者采用了decoupled head算法。
  • 为了节省内存,所有金字塔的头部都有相同的权重。
  • 将decoupled head的第1卷积层替换为DCN。
  • 作者在FPN中添加了CARAFE块,并使用Swin-Transformer作为Backbone。

2、语义分割

前面使用检测网络预测的边界框来裁剪图像,并将它们的大小调整为512×512。裁剪后的图像路径被输入到分割网络以获得Instance Mask。

作者采用了Upernet架构和Swin-Transformer作为Backbone。

该分割网络是一种二值分割网络,如果像素属于目标,则被预测为前景,否则被预测为背景。


2帧间Mask匹配


图1

图1显示了本文方法的概述。

作者的想法类似于IoU-tracker。利用预测的光流将前一帧的跟踪器wrapped 到当前帧,然后通过计算被wrapped Mask与detected Mask之间的IoU将跟踪器与当前帧的detected Mask匹配。

用M表示所有帧的 mask proposals,表示帧t的mask proposal。t表示视频长度,F表示光流,其中表示帧t与帧t+1之间的光流。

  • 首先,用第1帧中的mask proposal初始化跟踪器。
  • 然后,使用光流将跟踪器的warpped mask到第2帧。
  • 然后,通过计算它们之间的IoU,将warpped mask与detected Mask 匹配。

作者认为只有当IoU大于固定阈值时匹配才会成功。如果跟踪器与detected Mask匹配,则用匹配的Mask替换跟踪器的最新Mask。如果跟踪器和中的Mask之间没有匹配,则使用warpped mask更新其最新的Mask。如果跟踪器没有连续匹配5帧,从跟踪器列表中删除这个跟踪器。对于中没有匹配跟踪器的Mask,作者用这些Mask初始化新的跟踪器,并将这些跟踪器添加到跟踪器列表中使用非最大抑制(NMS)来去除最新Mask IoU大于0.7的跟踪器。

给每个跟踪器分配一个分数,这个分数是被跟踪的帧数和检测分数之和的乘积。


3复现细节


1、检测模型

作者使用MMDetection来训练检测器。对于Backbone网络,作者通过ImageNet 22k预训练了Swin-Transformer。

这里所有的检测器都经过了Detectron ‘1x’ setting的训练。2个SimOTA采样的中心比设置为0.25,分类头的top-K数设置为10,回归头的top-K数设置为20,以获得更多的正样本。

分类分支和回归分支使用4个的卷积层,IoU分支和回归分支共享相同的卷积层。为了训练以Swin-Transformer为Backbone的检测器,作者采用AdamW作为优化器,初始学习率设置为1e-4。批量大小设置为16。在COCO上进行训练后,结合6个epoch的UVO-Sparse和UVO-Dense数据集对检测器进行微调。所有的检测器都是以 class-agnostic的方式训练的。在推理过程中增加测试时间,进一步提高网络性能。

2、语义分割

作者使用MMSegmentation来训练分割网络。这里使用与检测网络相同的Backbone。

在训练过程中,给定一幅图像和一个Instance Mask,首先生成一个bounding box,bounding box包含Instance Mask,然后在bounding box的各个方向上添加20像素的边界。

作者使用生成的边界框来裁剪图像,并调整图像补丁的大小为。随机翻转、随机光度失真和随机bounding box抖动被用作数据增强。

作者还采用多元学习率策略,初始学习率设置为6e-5。批大小被设置为32,AdamW被用作优化器。

  • 首先,在OpenImage, PASCALVOC和COCO数据集的组合上训练网络为300k iter,
  • 然后,在UVO-Density和UVO-Sparse数据集的组合上优化网络为100k迭代,初始学习率设置为6e-6。

所有的分割网络都是用class-agnostic的方式训练的,因此,分割裁剪路径中的目标成为一个前景/后景分割问题。推理过程中仅使用翻转试验增强。

3、光流估计

作者在FlyingTh-ings上训练的模型。FlyingThings是一个用于光流估计的大规模合成数据集。数据集是通过随机化从ShapeNet数据集中收集的相机的运动和合成对象生成的。先在FlyingThings上对光流估计模型进行预训练,每次迭代10万次,BS为12;然后在FlyingThings3D上进行10万次迭代,BS为6。

指标与可视化结果

表1图2

在图2中,作者展示了一些视频实例分割结果。本文的方法可以适用于不同形状的物体。

潜在的改进点

本文简单的“检测然后匹配”框架可以作为视频实例分割的Baseline。它严重依赖于每帧mask proposals的质量。该方法的性能可能受到严重遮挡、物体出现/消失/重新出现等因素的影响。通过在Mask匹配过程中考虑目标层理,可以很好地解决这些问题。


4参考


[1].1st Place Solution for the UVO Challenge on Video-based Open-World Segmentation 2021

相关文章
|
jenkins 持续交付 网络安全
Jenkins安装SSH插件
Jenkins安装SSH插件
307 0
|
传感器 并行计算 算法
多传感器感知原理解读 | BEVFusion解读(一)
多传感器感知原理解读 | BEVFusion解读(一)
1061 0
|
Ubuntu 网络协议
ubuntu配置方法DNS
ubuntu配置方法DNS
ubuntu配置方法DNS
|
传感器
多传感器感知原理解读 | BEVFusion解读(二)
多传感器感知原理解读 | BEVFusion解读(二)
910 0
|
机器学习/深度学习 编解码 算法
【论文理解】ICCV2021-视频中小目标检测Dogfight
论文地址:https://arxiv.org/abs/2108.02092目标:在无人机飞行过程中捕获的背景杂乱的画面中检测其他无人机挑战:任意的移动(相机移动,目标也移动)小尺寸,只占画面像素的0.05%~0.07%(PASCAL VOC (22.62%) and ImageNet (19.94%))形状变换(拍摄角度不同,拍摄的无人机形状不同)遮挡基于region-proposal的方法无法捕
|
测试技术 计算机视觉 网络架构
【YOLOv8改进 - 特征融合】CARAFE:轻量级新型上采样算子,助力细节提升
【YOLOv8改进 - 特征融合】CARAFE:轻量级新型上采样算子,助力细节提升
|
Oracle Java 关系型数据库
各种数据库对应的jar包、驱动类名和URL格式
各种数据库对应的jar包、驱动类名和URL格式
397 0
|
网络协议 安全 Linux
在Linux中,当一台服务器无法ping通其他主机时,可能有哪些原因?
在Linux中,当一台服务器无法ping通其他主机时,可能有哪些原因?
|
数据采集 缓存 API
淘宝商品详情数据(实时更新,缓存数据)
淘宝商品详情数据,关键用于电商业务和市场分析,包括属性、价格、库存等信息。可通过淘宝开放平台API注册获取权限,调用如`taobao.item.get`接口,或使用爬虫技术。数据可实时更新,也有缓存选项。注意API权限、数据安全和调用限制。第三方服务也是获取数据的途径,但可能非实时且成本高。有效利用数据支持决策和分析。
|
机器学习/深度学习 人工智能 数据可视化
太强!AI没有落下的腾讯出YOLO-World爆款 | 开集目标检测速度提升20倍,效果不减
太强!AI没有落下的腾讯出YOLO-World爆款 | 开集目标检测速度提升20倍,效果不减
1131 0