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 开始,评测时不进行类别重映射。
相关链接
- RT-DETRv4 开源代码:https://github.com/thu-scc/SuperShip
任务内容
参赛程序需要完成以下流程:
- 读取图像元数据和图像文件;
- 完成图像解码和数据预处理;
- 执行舰船目标检测模型推理;
- 完成置信度筛选、检测框坐标转换等后处理;
- 按规定格式将全部检测结果写入磁盘。
本题不限制批量大小、推理框架和具体实现形式。参赛队伍可以使用多线程、多进程、异步 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 张参考测试图像、输入元数据及真实标注;
- 基线配置、推理脚本、计时脚本和输出检查工具。
隐藏测试数据不会下发给参赛队伍。
程序接口
参赛程序应提供统一入口:
程序启动后先进入不计时的 init 阶段。该阶段可以加载模型、构建推理引擎、初始化 CUDA、分配内存,并使用非评测数据预热,但不得访问评测图像、元数据或其派生内容。
初始化完成后,程序必须向标准输出打印一行并立即刷新缓冲区:
评测系统收到该信号后开始计时,并通过标准输入发送一行 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 |
图像元数据中的整数 ID |
category_id |
类别编号,只能为 0、1 或 2 |
bbox |
原始图像坐标系下的 [x, y, width, height] |
score |
检测置信度,范围为 [0, 1] |
程序必须处理全部输入图像。结果文件必须能够被标准 JSON 解析器正确读取,不得包含日志、NaN 或无穷值。
评测指标
正确性
本题对数学等价性不做要求,可以在算法层面对DETR-V4基本模型的进行训练/剪枝等等,但不可替换基本模型结构。
检测精度采用 COCO Detection AP50 指标,即 IoU 阈值为 0.50 时的平均精度。
官方基线模型在验证集上的参考精度为:
参赛队伍可以使用验证集和 200 张公开参考测试集检查输出正确性,并评估量化、剪枝和模型轻量化等优化造成的精度变化。正式评测时,未达到组委会规定精度门槛的提交不参与性能排名。
端到端时间
验证集和 200 张公开参考测试集可用于本地计时;最终计时由组委会在 4,300 张隐藏测试图像上统一完成。
计时从 init 完成后,评测系统向程序发送隐藏测试集路径时开始,到以下工作全部完成时结束:
- 全部图像读取和解码完成;
- 数据预处理和模型推理完成;
- 检测结果后处理完成;
- 全部结果写入指定文件;
- 异步任务和 GPU 任务全部完成,结果文件关闭,参赛程序正常退出。
模型初始化和使用非评测数据进行的预热不计入正式推理时间。任何对隐藏测试数据的访问都必须发生在计时开始之后。
评分方式
本题满分 100 分,由正确性分和性能分组成。
有效性条件
参赛程序必须同时满足以下要求:
- 正常处理全部 4,300 张隐藏测试图像并成功退出;
- 输出文件格式合法并通过完整性检查;
- 隐藏测试集上的检测精度满足:
其中,\(AP50_{baseline}\) 为官方 RT-DETRv4-S 基线在同一隐藏测试集上的精度。未满足任一条件的提交,本题得 0 分。
正确性分
正确性分占 30 分。通过上述全部有效性条件的提交获得 30 分,否则获得 0 分。
性能分
性能分占 70 分。每份提交在相同环境下独立运行 3 次,每次运行均须通过输出格式、完整性和精度检查。参赛队伍的计分时间 \(T_{team}\) 取 3 次端到端运行时间的中位数。
性能分按全部有效提交中的最快计分时间进行折算:
其中,\(T_{fastest}\) 为全部有效提交中的最快计分时间。
本题总分为:
总分相同时,计分时间更短的队伍排名优先;计分时间仍相同时,隐藏测试集 AP50 更高的队伍排名优先。
可优化方向
- 数据读取与解码:并行读取、预取、JPEG 解码和内存复用;
- 批量推理:根据显存和图像尺寸选择合适的 batch size;
- 流水线并行:重叠 CPU 解码、主机到 GPU 传输、GPU 推理和结果写盘;
- 推理后端:使用 TensorRT、ONNX Runtime、CUDA Graph 等技术;
- 数值精度与量化:使用 FP16、BF16、INT8、QAT 或 PTQ;
提交要求
基本提交(计分)
初赛期间,每队通过提交脚本提交一份 SuperShip 运行日志,原样提交,不得修改。请使用 200 张公开参考测试图像运行仓库提供的计时脚本:
日志应包含一次完整的三轮计时测试。解析器支持以下两种计时记录:
- 三条运行记录:
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; - 模型权重和推理引擎;
- 优化报告,说明所用方法、软件环境、精度结果和端到端耗时;
- 组委会要求的运行日志和结果文件。
提交程序不得包含隐藏测试数据、针对隐藏测试图像预计算的特征或检测结果,也不得在正式评测期间访问网络或外部计算资源。