无人机视觉目标检测数据集 VisDrone 详解
随着无人机技术在航拍、监控、农业及物流等领域的普及,基于无人机视角的视觉任务——如目标检测、跟踪和场景理解——已成为计算机视觉研究的热点。与传统地面视角相比,无人机图像面临高度变化剧烈、小目标密集、背景复杂等独特挑战,这对现有算法提出了更高要求。
数据集概况
VisDrone 数据集由天津大学机器学习与数据挖掘实验室推出,是一个大规模、标注精细的无人机视觉资源库。该数据集采集自中国 14 个不同城市,覆盖城市场景、交通枢纽、密集人群等多种环境,为学术界和工业界提供了极具挑战性的测试平台。
数据划分
官方提供的数据集包含以下部分:
- 训练集:6,471 张图像(含标注)
- 验证集:548 张图像(含标注)
- 测试集:1,610 张图像(含标注,test-dev 与 test-challenge 区分)
原始下载包中,VisDrone2019-DET-test-challenge 不含标注,通常用于最终评测,不在常规训练处理范围内。
官方 GitHub 仓库地址:https://github.com/VisDrone/VisDrone-Dataset
数据格式转换
官方原始数据采用 jpg + txt 格式,但其中的 txt 并非 YOLO 系列可直接使用的标注文件,需进行格式转换。处理后的数据通常包含图片文件夹及对应的 .txt 或 .xml 标注文件。
在训练前,建议准备两套图片资源:原图与经过遮挡处理的图片,以便对比实验效果。
类别定义与清洗
VisDrone 官方定义了 12 个类别,但在实际训练中,部分类别需要特殊处理:
- Ignored Regions(忽略区域):包含密集且极小的目标,难以精确标注的区域。为避免干扰模型学习,通常用白色方块遮挡这些区域。
- Others(其他):非核心关注目标,一般予以剔除。
经过清洗后,适配 YOLO 训练的类别缩减为 10 类,顺序如下:
classes = [
"pedestrian", "people", "bicycle", "car", "van",
"truck", "tricycle", "awning-tricycle", "bus", "motor"
]
这一顺序即为获取 YOLO 格式时的类别索引映射。对于被标记为 ignored regions 的区域,建议在可视化时通过白色色块覆盖,以模拟真实标注中的不可见性。
训练与评估参考
在实际训练过程中,使用原图进行训练的整体精度通常在 0.4 左右。若对遮挡处理后的图片进行测试,精度表现可能会有所差异,具体取决于模型架构与超参数设置。
下图展示了训练与验证阶段的部分图像效果(此处省略具体图片链接,建议参考官方文档查看示例):
- 训练过程中的部分图像展示
- 验证过程中的部分图像展示
通过合理的数据预处理与类别筛选,可以有效提升小目标检测的精度以及密集场景下的鲁棒性。


