Skip to content

SuperShip(GPU 集群版)赛题说明

Note

SuperShip 赛题负责同学:张扬 yangzhan23@mails.tsinghua.edu.cn,杨雨晴 yangyuqing330@gmail.com

Important

本题对数学等价性不做要求,可以在算法层面对 DETR-V4 基本模型的进行训练 / 剪枝等等,但不可替换基本模型结构。

赛题介绍

遥感舰船目标检测广泛应用于海域监管、港口调度、航运分析和海上目标态势感知。检测程序需要从复杂海面、港口及近岸场景中定位舰船,并判断目标类别。

实际系统的处理效率不仅取决于模型前向计算速度,还受到图像读取与解码、数据预处理、主机与 GPU 之间的数据传输、结果后处理和结果写盘等环节影响。因此,本题考察的是完整推理流程的端到端性能,而非单独统计模型前向时间。

本题提供基于 RT-DETRv4-S 的三类别舰船检测基线。RT-DETRv4 是 RT-DETR 系列的实时端到端目标检测模型;本题基线使用 D-FINE 检测架构和 HGNetv2-B0 骨干网络,通过多尺度特征提取、特征编码和 Transformer 解码完成目标分类与检测框预测。官方基线将输入图像缩放至 640 × 640,并输出检测框、类别和置信度。

参赛队伍需要在单张 NVIDIA GeForce RTX 3090 上优化从访问输入数据到结果完成落盘的完整流程。在满足检测精度和输出格式要求的前提下,端到端运行时间越短,成绩越高。

检测类别

category_id 类别名称 说明
0 aircraft_carrier 航空母舰
1 warship 军舰
2 other_ship 其他船舶

类别编号从 0 开始,评测时不进行类别重映射。

相关链接

任务内容

参赛程序需要完成以下流程:

  1. 读取图像元数据和图像文件;
  2. 完成图像解码和数据预处理;
  3. 执行舰船目标检测模型推理;
  4. 完成置信度筛选、检测框坐标转换等后处理;
  5. 按规定格式将全部检测结果写入磁盘。

本题不限制批量大小、推理框架和具体实现形式。参赛队伍可以使用多线程、多进程、异步 I/O、批量推理、C/C++、CUDA、TensorRT、ONNX Runtime、混合精度、量化、模型轻量化等方法。

Important

正式评测使用 并行云 32G 内存单卡 RTX 3090 云服务器,不得使用第二张 GPU 或其他未经组委会允许的加速设备。

最终评测使用隐藏测试集

最终成绩统一在 4,300 张隐藏测试图像上评测。隐藏测试集的图像、元数据、标注、数据来源和具体构成都不对外公布,以防止测试数据泄露、针对性调参和测试集过拟合,保证评测公平反映方案的泛化能力与端到端推理性能。

数据说明

组委会提供基线模型、模型权重、训练集、验证集及 200 张公开参考测试图像。

数据划分 图像数量 用途与开放方式
训练集 2,405 张 公开图像和标注,包含 11,904 个舰船实例,用于模型训练和优化
验证集 1,030 张 公开图像和标注,包含 4,576 个舰船实例,用于精度验证和本地计时
参考测试集 200 张 赛题发布时公开图像、输入元数据和真实标注,用于验证接口、精度和推理流程,不计入最终评分
隐藏测试集 4,300 张 不公开图像、元数据和标注;初赛提交结束后由组委会用于正式评测

训练集和验证集采用 COCO Detection 格式,检测框为原始图像坐标系下的 [x, y, width, height]。

测试数据池共 4,500 张图像,其中 200 张作为公开参考测试集,其真实标注在赛题发布时一并公布;其余 4,300 张作为隐藏测试集,用于最终评测。公开参考测试集不计入最终评分。

量化数据使用建议

训练集可用于训练、微调、量化感知训练(Quantization-Aware Training,QAT)、蒸馏、训练后量化(Post-Training Quantization,PTQ)的校准。

进行 PTQ 校准时,建议从训练集中选取具有代表性的样本,不建议使用验证集。量化校准属于模型优化过程;使用验证集进行校准可能导致验证结果偏乐观。验证集应主要用于模型选择和精度评估。

运行程序

代码与数据获取

组委会将在赛题发布时提供以下材料:

  • RT-DETRv4-S 三类别检测基线权重;
  • 训练集和验证集图像及标注;
  • 200 张参考测试图像、输入元数据及真实标注;
  • 基线配置、推理脚本、计时脚本和输出检查工具。

隐藏测试数据不会下发给参赛队伍。

程序接口

参赛程序应提供统一入口:

bash run.sh --worker

程序启动后先进入不计时的 init 阶段。该阶段可以加载模型、构建推理引擎、初始化 CUDA、分配内存,并使用非评测数据预热,但不得访问评测图像、元数据或其派生内容。

初始化完成后,程序必须向标准输出打印一行并立即刷新缓冲区:

THU_RS_READY

评测系统收到该信号后开始计时,并通过标准输入发送一行 JSON:

{"image_dir":"/data/images","meta_file":"/data/images_meta.json","output_file":"/output/submission.json"}

字段含义如下:

  • image_dir:输入图像目录;
  • meta_file:COCO 格式图像元数据文件;
  • output_file:检测结果输出路径。

模型权重、推理引擎和运行依赖应包含在提交的软件包或容器中。

输入格式

图像元数据采用 COCO 格式。示例如下:

{
  "images": [
    {
      "id": 1,
      "file_name": "000001.jpg",
      "width": 1024,
      "height": 1024
    }
  ],
  "categories": [
    {"id": 0, "name": "aircraft_carrier"},
    {"id": 1, "name": "warship"},
    {"id": 2, "name": "other_ship"}
  ]
}

参赛程序根据 file_name 读取图像,并在输出中使用对应的整数 id 作为 image_id。

输出格式

输出文件为 UTF-8 编码的 COCO 检测结果 JSON 数组:

[
  {
    "image_id": 1,
    "category_id": 1,
    "bbox": [670.2, 635.8, 56.7, 350.3],
    "score": 0.92
  }
]
字段 说明
image_id 图像元数据中的整数 ID
category_id 类别编号,只能为 0、1 或 2
bbox 原始图像坐标系下的 [x, y, width, height]
score 检测置信度,范围为 [0, 1]

程序必须处理全部输入图像。结果文件必须能够被标准 JSON 解析器正确读取,不得包含日志、NaN 或无穷值。

评测指标

正确性

本题对数学等价性不做要求,可以在算法层面对DETR-V4基本模型的进行训练/剪枝等等,但不可替换基本模型结构。

检测精度采用 COCO Detection AP50 指标,即 IoU 阈值为 0.50 时的平均精度。

官方基线模型在验证集上的参考精度为:

AP50 = 0.916

参赛队伍可以使用验证集和 200 张公开参考测试集检查输出正确性,并评估量化、剪枝和模型轻量化等优化造成的精度变化。正式评测时,未达到组委会规定精度门槛的提交不参与性能排名。

端到端时间

验证集和 200 张公开参考测试集可用于本地计时;最终计时由组委会在 4,300 张隐藏测试图像上统一完成。

计时从 init 完成后,评测系统向程序发送隐藏测试集路径时开始,到以下工作全部完成时结束:

  1. 全部图像读取和解码完成;
  2. 数据预处理和模型推理完成;
  3. 检测结果后处理完成;
  4. 全部结果写入指定文件;
  5. 异步任务和 GPU 任务全部完成,结果文件关闭,参赛程序正常退出。

模型初始化和使用非评测数据进行的预热不计入正式推理时间。任何对隐藏测试数据的访问都必须发生在计时开始之后。

评分方式

本题满分 100 分,由正确性分和性能分组成。

有效性条件

参赛程序必须同时满足以下要求:

  1. 正常处理全部 4,300 张隐藏测试图像并成功退出;
  2. 输出文件格式合法并通过完整性检查;
  3. 隐藏测试集上的检测精度满足:
\[ AP50_{team}\ge 0.98\times AP50_{baseline} \]

其中,\(AP50_{baseline}\) 为官方 RT-DETRv4-S 基线在同一隐藏测试集上的精度。未满足任一条件的提交,本题得 0 分。

正确性分

正确性分占 30 分。通过上述全部有效性条件的提交获得 30 分,否则获得 0 分。

性能分

性能分占 70 分。每份提交在相同环境下独立运行 3 次,每次运行均须通过输出格式、完整性和精度检查。参赛队伍的计分时间 \(T_{team}\) 取 3 次端到端运行时间的中位数。

性能分按全部有效提交中的最快计分时间进行折算:

\[ S_{performance}=70\times\frac{T_{fastest}}{T_{team}} \]

其中,\(T_{fastest}\) 为全部有效提交中的最快计分时间。

本题总分为:

\[ S_{total}=S_{correctness}+S_{performance} \]

总分相同时,计分时间更短的队伍排名优先;计分时间仍相同时,隐藏测试集 AP50 更高的队伍排名优先。

可优化方向

  1. 数据读取与解码:并行读取、预取、JPEG 解码和内存复用;
  2. 批量推理:根据显存和图像尺寸选择合适的 batch size;
  3. 流水线并行:重叠 CPU 解码、主机到 GPU 传输、GPU 推理和结果写盘;
  4. 推理后端:使用 TensorRT、ONNX Runtime、CUDA Graph 等技术;
  5. 数值精度与量化:使用 FP16、BF16、INT8、QAT 或 PTQ;

提交要求

基本提交(计分)

初赛期间,每队通过提交脚本提交一份 SuperShip 运行日志,原样提交,不得修改。请使用 200 张公开参考测试图像运行仓库提供的计时脚本:

RUNS=3 bash benchmark_reference.sh > supership.out 2>&1

日志应包含一次完整的三轮计时测试。解析器支持以下两种计时记录:

  • 三条运行记录:run 1/3: ... s、run 2/3: ... s、run 3/3: ... s;
  • 官方计时脚本输出的 JSON 汇总,其中 runs_seconds 包含三次耗时,median_seconds 为其中位数。

官方脚本默认同时输出上述两种记录,请完整保留。两者同时存在时,必须相互一致,系统优先采用 JSON 中精度更高的计时数据。

所有耗时必须为有限的正数。日志存在运行失败信息、计时记录缺失或重复、多个计时汇总、计时数值不合法或中位数不一致等情况时,提交无效。不得将多次计时测试的日志拼接提交,也不得从不同测试中挑选三次结果。

系统提取三次端到端运行时间的中位数,单位为秒,用于后续统一计分,耗时越短越好。本环节仅依据日志提取时间,不以日志格式校验通过代替检测精度、结果完整性及优化合法性检查。

提交方式(提交脚本与题目名称以提交指南为准):

wget https://lab.cs.tsinghua.edu.cn/scc/assets/submit.sh
chmod +x submit.sh
./submit.sh SuperShip supership.out          # 计分提交
./submit.sh --dry SuperShip supership.out    # 仅校验格式,不计入成绩

样例日志:baseline_supership.log(单张 RTX 3090,200 张公开参考测试图像,三次运行,中位耗时约 4.162 秒)。

最终提交

将以下材料与其他赛题的最终材料统一打包为 一个 .tar.gz 压缩包,通过 REPORT 提交;打包命令和截止时间见提交指南。本题需包含:

  • 完整源代码及构建说明;
  • 可离线运行的软件包或容器;
  • 统一入口脚本 run.sh;
  • 模型权重和推理引擎;
  • 优化报告,说明所用方法、软件环境、精度结果和端到端耗时;
  • 组委会要求的运行日志和结果文件。

提交程序不得包含隐藏测试数据、针对隐藏测试图像预计算的特征或检测结果,也不得在正式评测期间访问网络或外部计算资源。