476. TensorFlow - Help Protect the Great Barrier Reef | tensorflow-great-barrier-reef
恭喜所有的获奖者,也感谢主办方。
以下的想法和方法帮助我在这个充满挑战的比赛中生存下来:
由于数据集相对较小,如果我们有更多的样本,我们可以从中受益。我们可以生成更多的海星并将它们放在不同的海底图像中。
最简单的方法是在训练集中裁剪海星并将其粘贴到其他图像上,但我们可以发现两个明显的问题:
我通过以下方式解决了这两个问题:
这个想法帮助我提高了分数。
我没有停止我的实验,我尝试训练 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
如果检测模型在前几帧中发现了一个框,我们可以通过以下方式预测当前帧中的框:
我发现第三种方法最适合这个数据集。
我们可以使用 SuperPoint/SuperGlue 获取关键点描述符,然后寻找单应性矩阵。
跟踪流程如下: