返回列表

5th place solution, poisson blending,detection and tracking

476. TensorFlow - Help Protect the Great Barrier Reef | tensorflow-great-barrier-reef

开始: 2021-11-22 结束: 2022-02-14 环境监测 数据算法赛
第5名方案:泊松融合、检测与跟踪

第5名方案:泊松融合、检测与跟踪

作者: bestfitting (Grandmaster) | 排名: 第5名 | 发布日期: 2022-02-16

恭喜所有的获奖者,也感谢主办方。

以下的想法和方法帮助我在这个充满挑战的比赛中生存下来:

  1. 复制 COTS(棘冠海星)框并粘贴到背景图像中,应用泊松融合。
  2. 多个检测模型的训练和推理,使用不同的图像尺寸。
  3. 通过寻找单应性矩阵将边界框追加到检测结果中。
  4. 相信本地交叉验证。

数据

由于数据集相对较小,如果我们有更多的样本,我们可以从中受益。我们可以生成更多的海星并将它们放在不同的海底图像中。

poisson.png

最简单的方法是在训练集中裁剪海星并将其粘贴到其他图像上,但我们可以发现两个明显的问题:

  1. 边界和颜色不真实。
  2. COTS 所处的位置不合理。

我通过以下方式解决了这两个问题:

  1. 泊松融合。
  2. 训练一个分类模型来预测带有 COTS 的框是真实的还是假的。

这个想法帮助我提高了分数。

我没有停止我的实验,我尝试训练 GAN 模型来生成海星,虽然生成的样本看起来很真实,但分数并没有提高。
我认为这受到独特海星数量较少的限制,如果我们能使用更多从互联网上下载的 COTS 图片,我想我们可以提高分数。我不确定是否允许使用外部图像,所以我没有使用任何外部数据。
其他方法如图像协调并没有带来改进。
无论如何,尽管在这场比赛中花了很多时间却没有太多的收获,但我很享受这个过程。

模型训练

验证策略
按序列划分 5 折交叉验证

模型
YOLOv5-S6, YOLOv5-M6, YOLOv5-L6, YOLOX-L, YOLOR-P6 和 HRNetV2P-W18

训练细节
YOLOv5:
网络: YOLOv5-S6, YOLOv5-M6, YOLOv5-L6
训练尺寸: 3600
推理尺寸: 4800
优化器: SGD
调度器: Warm Up + Linear LR + lr=0.01 + 15 epochs
数据增强: hsv, translate, scale, flipud, fliplr, mosaic, mixup, water-augment, transpose

YOLOX:
网络: YOLOX-L
训练尺寸: 1280
推理尺寸: 1600
优化器: SGD
调度器: yoloxwarmcos + 20 epochs
数据增强: hsv, flip, degrees, translate, shear, mosaic, mixup, no_aug_epochs=5

YOLOR:
网络: YOLOR-P6
训练尺寸: 2560
推理尺寸: 2560
优化器: SGD
调度器: Warm Up + Linear LR + lr=0.005 + 15 epochs
数据增强: hsv, translate, scale, flipud, fliplr, mosaic, mixup, water-augment, transpose

HRNet:
网络: HRNetV2P-W18
训练尺寸: 3600
推理尺寸: 3600
优化器: SGD
调度器: Warm Up + linear LR + lr=0.02 + 10 epochs
数据增强: Resize, RandomFlip

跟踪

如果检测模型在前几帧中发现了一个框,我们可以通过以下方式预测当前帧中的框:

  1. 卡尔曼滤波
  2. 光流
  3. 寻找单应性矩阵,然后应用该矩阵获取当前帧中的框。

我发现第三种方法最适合这个数据集。
我们可以使用 SuperPoint/SuperGlue 获取关键点描述符,然后寻找单应性矩阵。

跟踪流程如下:

  1. 如果在第 t-10 帧检测到一个框,则使用单应性矩阵将一个框追加到第 t-9 帧,除非那里已经有一个框(IOU 大于 0.4)。然后从第 t-
同比赛其他方案