☰
遥感公开数据集盘点:语义分割、目标检测、场景分类与变化检测全攻略
2026/10/26 20:28:39 网站建设 项目流程

干过遥感图像分析的人,应该都有过这种体验:网上的开源数据看着很多,可真要动手做语义分割、目标检测、场景分类或者变化检测,搜出来的数据集要么链接失效,要么标注格式不统一,要么分辨率和自己手里的影像对不上。这几年我调数据集的时间加起来比跑模型的时间还长,这篇就把我实际翻过、用过、踩过坑的遥感公开数据集,按这四个任务重新筛一遍,顺带把每个数据集适合干什么、不适合干什么、下载之后怎么处理,一次说清楚。

首先要明确一点,遥感数据集的选型和通用视觉完全不是一个逻辑。自然图像里的目标通常很大、视角固定,而遥感影像是“上帝视角”,目标尺度可以相差好几个数量级,再加上多光谱、SAR、倾斜摄影等不同传感器,每个任务的评测口径都不一样。所以我先讲选型思路,再分别拆语义分割、目标检测、场景分类、变化检测,最后分享一套我自己的预处理和排坑流程。

1. 先搞清楚遥感数据集的底牌,再谈选型

1.1 遥感图像和普通照片到底差在哪

很多人第一次接触遥感数据集时,会下意识拿目标检测里的习惯去套,结果训练出来效果稀烂。原因很简单:遥感图像不是“俯拍的普通照片”,它有四个非常特殊的属性。

第一是视角和尺度跨度。普通照片里的物体占比通常比较稳定,比如一张猫的照片里猫至少占了几十个像素。而遥感影像里,一片足球场可能有几千个像素,一辆车却只有十几个像素,船舶、飞机、储油罐这类目标更是尺度差异巨大。同一个数据集里既可能出现占满整张图的目标,也可能出现只有几个像素的极小目标,这对模型的感受野和多尺度能力要求非常高。

第二是传感器多样性。常见的有高分辨率可见光影像(RGB)、多光谱影像(通常含近红外、红边等波段)、SAR影像(合成孔径雷达成像),还有倾斜摄影得到的三维模型数据。不同传感器的数据分布差异极大,SAR图像和光学图像之间的域差异甚至比不同数据集之间的差异还大。这就是为什么现在三维目标检测、雷达智能目标检测需要专门的遥感数据集支撑,不能拿自然图像数据集直接练。

第三是地理坐标信息。遥感影像往往自带地理参考信息,影像和标注之间存在严格的像素坐标对应关系。但很多公开数据集发布时会把坐标信息剥离掉,只保留图像和标签,这会导致后续做影像拼接、多时相分析时对不齐。我见过不少人拿到数据后不看元数据,直接切块训练,最后推理阶段才发现影像和标签之间有几十个像素的偏移。

第四是类别分布极端不均衡。自然图像数据集里的类别分布相对均匀,但遥感数据集里“道路”“水域”“裸地”这类背景类可能占据90%以上的像素,车辆、船只等目标只占很小比例。做语义分割时如果不做类别加权,模型大概率会变成背景生成器;做目标检测时不处理小目标,mAP会难看得怀疑人生。

1.2 按任务拆开看,四个方向的数据需求完全不同

遥感公开数据集虽然很多,但按任务维度看,数据结构差异非常大,选型时不能只看“哪个数据集大”。

语义分割需要的是图像加像素级掩膜,掩膜标注通常以单通道图像或RLE编码存储。这类数据对分辨率很敏感,因为掩膜是由人工勾画出来的,分辨率低了标注本身就模糊,模型学到的是“一团糊”。训练时需要考虑切块重叠率、类别权重、标签质量等因素。

目标检测的标注形式一般分两种:水平框和旋转框。自然图像检测基本都用水平框,但遥感图像里目标密集且方向任意,水平框会把大量背景框进去,因此很多遥感检测数据集默认提供旋转框标注。如果你只做水平框检测,很多数据集还要自己做格式转换。另外还有一个容易被忽略的问题:旋转框的角度定义方式在不同数据集里并不统一,有的按长边定义角度,有的按矩形参数定义,转换时很容易踩坑。

场景分类则简单很多,每个样本就是一张图像加一个类别标签,标注成本低,数据量容易做得很大。这类数据集适合验证算法骨干网络的效果,也适合做迁移学习的预训练数据。

变化检测最特殊,它的基本单元是“一对影像加一张变化掩膜”,需要同一区域不同时相的影像。很多变化检测数据集会故意加入季节差异、光照差异、传感器差异,让任务更接近真实场景。数据规模普遍比分割和目标检测小,标注成本也高得多。用这类数据集时还要特别区分“真实变化”和“伪变化”,比如房屋拆除后重建、洪水前后水位变化,都需要仔细定义哪些算“变化”。

1.3 趋势:检测与变化检测的边界正在模糊

这几年遥感领域出现了一个明显趋势:任务边界在互相渗透。开放词汇目标检测让模型能够不依赖固定类别就能检测出任意目标,开放词汇变化检测则进一步把“哪里变了”升级为“变了什么”。比如过去变化检测只输出一张二值掩膜,现在很多研究工作开始给变化区域加上语义标签,像“新增了道路”“新建了建筑”“植被覆盖减少”。这意味着选择数据集时,要考虑未来是否要做这一类语义增强,优先选带有原始影像和多个类别标注的数据集,而不是只有单一变化掩膜的数据集。

另外一个趋势是三维目标检测进入遥感主流视野。以前大家主要处理二维影像上的目标检测,但倾斜摄影、无人机激光雷达数据的普及,使得自动驾驶和智慧城市里的车辆检测、杆塔检测、地面物体检测都开始需要三维标注。目前公开的三维遥感检测数据集还不多,主流做法还是从已有的二维检测数据集扩展出第三维或者直接用点云数据生成伪激光雷达标注。如果是新人入门,我不建议一上来就碰三维数据集,先把二维数据集的流程跑通更重要。

2. 语义分割与目标检测:最常用的两批遥感数据集

2.1 语义分割数据集,我建议从这几个上手

语义分割应该是遥感任务里数据最丰富的一个方向,公开数据集多且标注质量普遍不错。下面这几个是我实际用过、觉得教学价值和实验价值都高的。

第一个是常说的全球土地覆盖类数据集,比如DeepGlobe系列。影像分辨率约0.5米左右,RGB三波段,标注类别包含城市、农业、牧场、森林、水域、荒地等。这个数据集特别适合作为入门baseline:类别数量不算多,标注质量较高,但类别分布很不均衡,道路和荒地像素占比差很多,适合检验你对loss加权、采样策略的理解。我第一次跑语义分割时,就是被这个数据集的“城市类像素膨胀”教育了一顿,后来换了加权的交叉熵才把遗忘的类别捞回来。

第二个是LoveDA数据集,特点是同时覆盖城市和乡村两种土地利用场景。分辨率约0.3米,类别包括屋顶、道路、裸地、草地、树木等。它的训练集和测试集之间存在比较明显的域偏移,城市区域的标注风格和农村区域不完全一致,是验证模型泛化能力的好选择。我个人的建议是把LoveDA当作“进阶数据”,如果你已经能把DeepGlobe类数据集跑出不错的IoU,再用LoveDA检验模型跨区域表现。

第三个是GID这类大规模土地利用数据集,标注类别更多、范围更广,覆盖大面积高分辨率影像,适合做大规模土地覆盖制图类的研究。它的问题在于某些类别样本量悬殊,少数类别不到全图像素的千分之一,训练时需要仔细做类别均衡,否则模型会直接忽略小众类别。内存占用也比较夸张,全图推理性价比低,一般都得切块。

第四个是OpenEarthMap这类全球覆盖标注数据集,优点是数据来源广,几乎覆盖全球不同地区,短板是标注质量参差不齐,少部分掩膜存在漏标错标。适合做跨区域泛化实验,不太适合用来做消融对比,因为精度波动可能更多来自数据本身而不是模型变化。

还有一个轻量级的选择是MapAI这类比赛用屋顶分割数据集。它规模不大,但包含一些域外的验证样本,特别适合快速验证某个新算法的表现。我做模型对比时经常先用这种小数据集把流程跑通,再上大规模数据集,效率能高不少。

2.2 目标检测数据集:从常规框到旋转框的跨越

遥感目标检测数据集的核心矛盾基本都集中在“小目标”和“旋转目标”上。下面这几个数据集覆盖了从基础到进阶的不同需求。

DOTA系列是遥感目标检测绕不开的基准,几乎所有旋转框检测论文都会在它上面对比。影像来源多样,目标类别多,包含飞机、船舶、车辆、储油罐、桥梁等常见地物,标注形式是四点多边形,目标尺度跨度极大,既能看到占满图像的大目标,也有只有几个像素的小目标。缺点是标注复杂,评测麻烦,类别不均衡明显。用DOTA时最重要的就是处理好旋转框转换,不同模型框架对旋转框的定义不一致,转换时角度范围、长边短边定义都要对齐。

xView是高分辨率遥感目标检测里另一个重量级选手,影像分辨率约0.3米,覆盖场景广,目标小而密。它的标注以水平框为主,类别数量非常多,涵盖建筑、交通、地物等,小目标检测难度高。我觉得xView的价值在于“密集小目标”和“类别粒度细”,非常适合测试模型在拥挤场景下的检测能力。

DIOR是一组大规模常规检测数据集,类别数适中,每类样本量比较均衡,背景复杂程度也做得比较合理。水平框标注,做通用目标检测baseline很方便。如果你想快速跑通一个YOLO系的遥感检测pipeline,用DIOR比DOTA更省心,不用处理旋转框的格式问题。

如果你关注小目标这个细分方向,AI-TOD和SODA都值得关注。AI-TOD的特点是小目标占比极高,平均目标面积很小,专门用来挑战极小目标检测算法;SODA则来自一个比较新的小目标检测benchmark,类似场景。这两个数据集我都建议在模型已经能跑通常规检测后再碰,新手直接上手容易被“目标只有四个像素”的标注搞到怀疑人生。

针对特定的物体类别,还有不少垂直数据集。HRSC2016是舰船检测常用的数据,分辨率高、目标方向任意,适合做细粒度舰船检测和旋转框识别。鸟类目标检测的数据集不那么常见,但生态监测领域有公开的群鸟遥感计数数据,从航拍影像里标注群体位置,做野生动物调查和种群统计时会用到。这类小众数据集的标注规范各不相同,用之前一定要仔细读README里的标注说明。

2.3 怎么选目标检测数据集,一张对照表看明白

使用场景推荐数据集标注类型注意点
通用检测baselineDIOR水平框类别均衡,上手简单
旋转框检测研究DOTA系列旋转框需要处理多边形转矩形框
小目标检测专项AI-TOD / SODA水平框目标极小,需要调小检测头
密集场景多类别xView水平框小目标多,显存消耗大
垂直线索检测HRSC2016旋转框类别单一,适合细粒度研究
SAR影像目标检测SARDet-100k水平框/旋转框模态特殊,需搭配SAR预处理

我个人的经验是,第一次接触遥感目标检测不要盲目追求“一上来就打DOTA”。先拿DIOR这类水平框数据把整个流程跑通,理解数据集读取、标注格式、评估脚本的工作方式,再跳到DOTA处理旋转框,最后再挑战小目标和多模态,这样每一步的变量都少,出了问题也好定位。如果你要做雷达智能目标检测,SARDet-100k这类SAR数据集难度会更高,因为SAR图像有斑点噪声,需要额外的滤波和增强,不建议入门就选它。

3. 场景分类与变化检测:容易被忽视的两个主力

3.1 场景分类数据集:做baseline和预训练的好东西

相比分割和检测,场景分类数据集经常被人低估。它结构简单、标注成本低、数据量大,但实际上它的用途远不止刷一个分类精度。

经典的路数是从一个21类航拍场景数据集开始学起,它每类几百张影像,类别包含商业区、农田、森林、河流等,数据量虽小,但类别定义清楚,非常适合快速验证一个网络能不能在遥感图像上正常工作。做实验时我建议先在它上面跑一遍,确认数据加载和训练代码没问题,再去碰大尺寸数据。

更常用的两个场景分类数据集是RESISC45和AID。前者有45类场景类别,包含大量不同来源的遥感影像,背景、尺度、分辨率变化都非常丰富,是目前遥感场景分类最常用的基准之一;后者类别数量少一些,影像来源更现代,分辨率差异明显,对跨分辨率泛化的考验更大。场景分类实验通常用总体精度和混淆矩阵来评估,但真正影响结论的是每类的准确率,特别是“游泳池”和“湖泊”、“密集住宅”和“工业区”这类容易混淆的类别,如果只看总体精度会掩盖很多问题。

场景分类还有一个容易被忽视的价值:预训练迁移。用大规模场景分类数据集做骨干网络预训练,然后把权重迁移到语义分割或目标检测任务上,往往会比用ImageNet预训练的效果更好,因为遥感图像和自然图像的底层特征差异实在太大。我做过一组对比实验,同一套分割网络,用场景分类数据预训练的权重比ImageNet权重在mIoU上高了好几个点,还不需要额外增加训练时间。这也是为什么我建议就算你不做场景分类,也可以下载一个这类数据集存着当预训练库。

3.2 变化检测数据集:双时相影像里的学问

变化检测的数据组织方式和前三个任务完全不同,它是“同一区域两幅影像 + 变化掩膜”的结构。目前主流的数据集集中在建筑变化和土地利用变化。

LEVIR-CD是我用得最多的建筑变化检测数据集,分辨率约1米,双时相影像条件控制得比较好,掩膜是二分类的变化/不变。它的变化区域主要是建筑物新造和拆除,边界清晰,训练难度适中,适合新手快速上手。

CDD数据集同样面向城市区域,包含道路和部分建筑的变化,背景更复杂,存在一些阴影和光照变化,比LEVIR-CD略难一些。OSCD是一个多光谱卫星影像变化检测数据集,影像分辨率约10米,覆盖区域广,时间跨度大,季节差异很明显。它的特点是背景变化大,很多区域虽然植物状态变了但并不是真正目标变化,这会导致纯像素级对比的模型出现大量误检,比较考验算法对时序一致性的建模能力。

S2Looking面向乡村和城郊区域,关注新增建筑物检测,背景以农田为主,变化目标小而零散。Hi-UCD则是高分辨率城市变化检测数据集,标注类别更细,包含建筑、道路、植被等多类变化。如果你未来想做开放词汇变化检测,我的建议是优先收集Hi-UCD这类多类别标注数据,因为二值变化掩膜无法支撑“变了什么”这种语义推理。

模型选型上,STANet这类基于时空注意力的方法曾经是主流,核心思想是通过注意力机制建模双时相特征之间的关系。不过实测下来,如果把两个时相分别过同一个编码器,再用差值和注意力模块融合,很多场景下就能达到不错的性能。Transformer进入变化检测之后,不少方法直接在双时相特征图上做全局上下文建模,对小目标的漏检率有明显改善。我做实验时发现,变化检测模型最怕的不是算法不够强,而是训练数据里“变化区域占比太低”,一个F1轻松被负数样本带偏,所以正负样本平衡在你的pipeline里应该是一等公民。

3.3 四个任务的评估口径,别再只看一个指标

很多初学者跑完模型只报一个总指标,这在遥感任务里很容易翻车。不同任务的盲区是不一样的。

语义分割的常用指标是mIoU和像素精度。但mIoU是逐类计算的,类别标注不均衡时整体数值会被大类别主导。我一般会额外打印每一类的IoU,看看模型是不是把“其他”和“植被”搞混了。

目标检测看mAP,但遥感目标检测一定要分尺度看AP。DOTA官方评测中就对大、中、小目标分别计算AP,很多模型总mAP看起来不错,实际上小目标AP低得可怜。旋转框检测还需要注意IoU计算方式:旋转矩形框之间的IoU和水平框的IoU计算逻辑不同,评测时会存在小概率的数值差异。

场景分类看总体精度,但更重要的是混淆矩阵。遥感场景类别之间有大量语义重叠,比如“运动场”和“网球场”、“森林”和“灌木丛”等,只有看混淆矩阵才能定位模型混淆的模式。

变化检测常用F1、IoU和漏检率/虚警率。个人经验是漏检率和虚警率需要一起看,只优化F1可能导致模型走向另一个极端。比如把阈值调低,虚警率飙升但F1变化不大,这在落地场景里会很难受,因为用户看到满屏假变化会比漏检更崩溃。

4. 数据集落地实操:下载、预处理和排坑实录

4.1 下载与文件组织:先解决“拿不到”的问题

遥感数据集的下载体验普遍比自然图像数据集差,原因在于原始文件体积大、网盘链接容易失效、部分数据需要填写使用申请。我踩过无数次“链接失效”的坑之后,总结出一套比较稳的流程。

第一步是优先找官方渠道。很多数据集发布时会有官方网站或合作平台,建议把官方页面作为第一信息来源,因为第三方转发的版本常常会出现标注被重新编码、文件缺胳膊少腿的情况。第二步是关注社区维护的数据集镜像。现在很多公开数据已经被整理到各大机器学习平台的数据集中心,直接在平台上搜索数据集名称就能找到整理好的版本。这类版本通常已经统一了目录结构和标注格式,对只想快速实验的人来说是省事的选择,但一定要确认标注内容是否与原版一致。

第三步是下载工具的选择。遥感数据单个文件经常几个GB起步,浏览器默认下载器一旦断线就只能重来。我习惯用支持断点续传和多线程的命令行下载工具,配上分块下载,一个10GB的数据集通常能稳定跑完。如果是网盘链接,也要优先选官方客户端,第三方高速下载容易导致文件损坏。

文件下载完成后,第一步永远是校验完整性,然后解压检查目录结构。我遇到过解压到一半报错、某个子目录里影像数量比标注多几百张、标注文件是空文件夹等奇怪情况,这类问题不会在报错中明显提示,只能在组织数据时发现。把数据按数据集名称/划分(train、val、test)/影像、标注的固定结构重新整理一份,后面做代码时会省很多事。尤其是影像和标注文件名如果不一致,强烈建议先做一次批量重命名对齐,否则训练时各种“找不到对应掩膜”的报错会在后面等着你。

4.2 预处理:切块、转格式、归一化的正确姿势

预处理是遥感数据上手时最容易被忽略、却又决定最终效果的一环。先说切块。遥感影像一般很大,直出模型显存完全吃不消,所以需要把影像切成小块输入。切块时一定要让影像和掩膜使用相同的坐标和裁剪逻辑,掩膜重采样必须用最近邻,绝不能为省事套用双线性插值,否则类别边缘会糊成一团。建议切块时采用带重叠的滑窗,重叠率设在0.25到0.5之间,避免目标被硬生生切在窗口边缘导致标注被“腰斩”。

然后是类别映射。不同数据集的类别编号规则经常冲突,有的从0开始,有的从1开始,还有的用255表示忽略区域。多个数据集一起训练时,最基本的操作就是建立统一的类别字典,把不同数据集里语义相同但编号不同的类别合并成一个。举个例子,一个数据集里“树木”是类别1,另一个数据集里“森林”是类别5,如果不做映射直接拼接,模型会把这同一类当成两类来学,最终的表现就是推理输出里出现两个几乎相同的类别。

旋转框转换也是重灾区。DOTA系列原始标注是多边形四点坐标,但不少模型只接受四参数旋转框,转换时要注意角度定义。常见的是长边定义法和水平轴逆时针定义法,这两者之间相差一个90度的偏移。我一开始没注意,转完格式后评测结果惨不忍睹,后来逐目标可视化才发现问题。建议转换后一定做一次可视化检查,把框画在图上随机抽查数十张,确认角度和形状正确再进训练。

多光谱数据的处理也要提前确认。很多光学遥感影像是四波段格式,顺序可能是BGRN或RGB+NIR,不同数据集并不统一。如果模型只接受三通道RGB,需要明确是从哪三个波段组合而来的。我建议在数据集读取代码中强制指定波段顺序,不要依赖默认排序。训练前的常见增强包括旋转、翻转、多尺度缩放和图像亮度的轻微扰动,遥感图像由于目标朝向任意,90度旋转增强是非常有效的手段。但对于变化检测,随机擦除类增强要格外小心,不能只擦掉一个时相的区域,否则等于人为制造伪变化。

4.3 高频问题排查速查表

现象可能原因排查思路
训练时影像和mask位置对不上切块时坐标偏移、重采样方式不一致将影像和mask叠加可视化,检查边缘位置
标签图全是黑的类别索引未对齐或标签值过大被截断输出标签数组的取值分布,确认范围
推理结果出现大量背景误检类别权重未设置、背景类样本太多打印每类损失,观察是否被背景主导
旋转框评测分数极低角度定义不一致、端点顺序错误转换后可视化矩形框,逐类核对方向
多光谱影像显示异常波段顺序错乱、未做归一化拉伸单独输出每个波段的直方图,查波段顺序
变化检测全是误报光照差异、季节差异被当作变化对比双时相影像的直方图,做辐射归一化
下载后的文件解压失败下载不完整或网络传输损坏校验文件MD5值,换下载工具重下
小目标几乎没有检出下采样倍数过高、目标像素太少降低下采样、使用更大输入尺寸、增加小目标增强

这个表里的问题我基本都遇到过。印象最深的是有一次用某个高分辨率数据集训练分割模型,连续跑了两天,结果发现是当时切块脚本里掩膜用了双线性插值,所有标注边缘都被磨花了。那次之后我给自己立了个规矩:任何预处理管线跑完,先随机抽十张图做可视化,影像和标注叠在一起看,再进训练。这个习惯帮我挡下了很多看不见的数据问题。

另外想特别提一下数据组织里的“命名对应”问题。有的数据集影像文件名带后缀,标注文件不带;有的标注文件按不同子目录存放,训练代码如果用glob去取,很容易拿到错位的样本。建议所有人拿到新数据集后先写一个精度检查脚本,统计影像数量和标注数量,逐个确认文件名匹配,再开始训练流程。这个脚本没有技术含量,但能省下好几个小时的调试时间。

最后再分享一点个人的小习惯。我的电脑里永远放着一份“数据集清单”,记录每个数据集的下载日期、文件校验值、类别定义、标注格式、常见坑,像维护代码仓库一样维护数据。遥感公开数据集越来越多,靠脑子和浏览器书签迟早会乱,有一份自己的文档记录比什么都强。希望这份整理能帮你少走几步弯路,把宝贵的时间留给真正重要的模型设计和业务分析上去。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询