传统的目标检测任务中,对于ground_truth(gt)和anchor的配对,都采取固定的策略(例如依赖IOU阈值--RetinaNet,对于Anchor-free类算法则往往依据anchors是否包含gt的中心点或者核心区域--FCOS)。这篇论文就提出了将anchor当作label需求方,而gt当作label提供方,而label从gt传输(匹配)至anchor的传输成本就是分类和回归的loss加权和(对于负样本只计算分类loss),这样就将gt和anchor的匹配问题变成了一个最优化传输成本的问题(Optimal Transport (OT) problem),可以使用Sinkhorn-Knopp迭代来进行问题求解。
1. 文档更新记录
1.1. 版本信息
- 当前版本:v1.0
- 论文名称:OTA: Optimal Transport Assignment for Object Detection
- 创建时间:2024-05-07
- 创建人: 钱翔
1.2. 修订历史
时间 |
版本号 |
修订人 |
修订内容 |
2024-05-07 |
v1.0 |
钱翔 |
创建 |
|
|
|
|
2. 算法介绍
2.1. 核心思想
传统的目标检测任务中,对于ground_truth(gt)和anchor的配对,都采取固定的策略(例如依赖IOU阈值--RetinaNet,对于Anchor-free类算法则往往依据anchors是否包含gt的中心点或者核心区域--FCOS)。这篇论文就提出了将anchor当作label需求方,而gt当作label提供方,而label从gt传输(匹配)至anchor的传输成本就是分类和回归的loss加权和(对于负样本只计算分类loss),这样就将gt和anchor的匹配问题变成了一个最优化传输成本的问题(Optimal Transport (OT) problem),可以使用Sinkhorn-Knopp迭代来进行问题求解。
2.2. 详细过程
- 论文首先介绍了传统最优传输问题(Optimal Transport),同时对于目标检测的标签分配场景,更新了最优化问题并进行求解。之后对于最优化问题做了进一步的优化设计,同时评估了动态k值额效果。
2.2.1. 最优传输问题(Optimal Transport)
- 有 m 个供货商,n 个需求方
- 第 i 个供货商有[MISSING IMAGE: , ]单元的货物,第 j 个需求方需要[MISSING IMAGE: , ]单元的货物
- 从供货商 i 到需求方 j 的运输成本为[MISSING IMAGE: , ]
- OT问题的目标是找到最优运输计划[MISSING IMAGE: , ],使得总成本最小
2.2.2. 标签分配的最优传输问题(OT for Label Assignment)
对于标签分配,则在基础的最优传输问题基础上,增加了以下条件:
- 每个需求方(anchor)需求一个label,即 ([MISSING IMAGE: , ])
- 每个供货商(gt)提供的货物(label)是固定的值k,即 ([MISSING IMAGE: , ]),
- 背景类[MISSING IMAGE: , ]提供[MISSING IMAGE: , ]个负标签,即 [MISSING IMAGE: , ]
- 前景运输成本(从正样本[MISSING IMAGE: , ]到[MISSING IMAGE: , ])的成本[MISSING IMAGE: , ]如下:
[MISSING IMAGE: , ]
- 背景运输成本(从bg到[MISSING IMAGE: , ])的成本[MISSING IMAGE: , ]如下([MISSING IMAGE: , ]代表背景类):
[MISSING IMAGE: , ]
2.2.3. 进一步的优化设计
- 中心优先(Center Prior):对于每一个gt,作者会选择距离最近的[MISSING IMAGE: , ]个anchors,对于其余的anchors,运输成本则会增加一个常量[MISSING IMAGE: , ]作为中心优先的惩罚项。
- 动态k值评估(Dynamic k Estimation):作者认为,不同尺寸、比例和重叠程度的gt,应该提供不同数量的标签(而不是都固定成k个),因此设计了一个依赖IOU的方法来估计[MISSING IMAGE: , ]值。具体就是对每个gt,计算其与所有anchor的IOU,然后挑选top q个IOU值相加,得到其[MISSING IMAGE: , ]值。
- 在加入中心优先和动态k值评估这两项改动后,结合之前设计的标签分配的最优传输问题,就可以通过Sinkhorn-Knopp迭代来求解最优分配[MISSING IMAGE: , ],具体步骤见下图
- OTA问题求解的迭代计算量,都是在forward和loss计算、back-propagation之间,可以认为是训练过程中loss计算步骤变得更加复杂了,通过控制T值(一般设定T=50),可以将训练时间的增加量控制在20%左右,对于推理时间则没有任何影响。
2.3. 实施参数
- 作者选取了ImageNet预训练的ResNet-50-FPN模型作为backbone,计算成本矩阵[MISSING IMAGE: , ]时[MISSING IMAGE: , ]和[MISSING IMAGE: , ]选取FocalLoss和IoULoss,平衡参数[MISSING IMAGE: , ]。在反向传播时,[MISSING IMAGE: , ]选取GIoULoss,平衡参数[MISSING IMAGE: , ]。动态k值估计里面的q选取20。
2.4. 应用场景
- OTA适用于任何目标检测类行的任务。
2.5. 消融实验
- 在第一个消融实验中,作者研究了中心优先、动态k值这两个组件的效果,可以看到两个组件都可以对模型的map有一定的提升。
- 对于中心优先这个改进项,作者对不同的r值的影响,发现r值为5时效果最好,不过整体而言OTA对r值不敏感。
- 作者对不同的混淆anchor处理技术做了比较,发现OTA这种最优化求解的处理,效果都要好于人为设定规则的处理。
- 最后,作者对不同的k值和动态k值进行了比较,发现动态k还是明显好于固定k值。
2.6. 效果评估
- 作者在COCO数据集上,对于不同的backbone,将OTA和其他label assignment方法进行比较,发现OTA基本都能取得最好的MAP值。
- 对于CrowdHuman数据集,作者对比下来,OTA也能取得最好的效果。