DINOv3零样本跑卫星图像:SAT-493M上的分类/分割实测
【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3
过去想在卫星图像上跑一次语义分割(逐像素分类),得先人工标几万张图,再训几周的专属模型。现在这段流程可以直接跳过:Meta的DINOv3能零样本(不拿新数据再训练,直接推理)地把卫星图像分析这条链路跑通。而且它不是拿网络图像通用模型硬凑,是专门在SAT-493M卫星数据集上训出来的权重。
核心能力速览
DINOv3是Meta的一组视觉基础模型,ViT家族从2100万参数的ViT-S一直排到67亿参数的ViT-7B。对卫星图像而言,官方给了ViT-L/16和ViT-7B/16两套专用权重,在SAT-493M上训练——4.93亿张512×512、0.6米分辨率的Maxar RGB正射影像随机采样而来。卖点归纳起来就四条:
- 零样本:类别标签上挂一个k-NN(在特征空间里找最近邻)或逻辑回归分类器就能做分类和检索,不微调
- 密集特征:图里每个16×16的patch都产出一枚特征向量,分割、检索、匹配直接可用
- 高分辨率友好:图像边长是patch尺寸16的倍数就能直接喂进去,大幅面卫片不用强行切块
- 多任务复用:同一套特征覆盖分类、语义分割、目标检测、深度估计,不用逐任务重训
数据说话:DINOv3卫星图像实测(SAT-493M)
先看数据(GEO-Bench卫星图像基准,均为零样本设置):
| 任务 | DINOv3 ViT-L/16 | DINOv3 ViT-7B/16 |
|---|---|---|
| 分类平均准确率 | 79.6% | 81.1% |
| 分割平均精度 | 74.5% | 75.0% |
ViT-7B比ViT-L分类多1.5个点、分割多0.5个点,没多做任何微调,纯靠参数量堆出来。对标注数据稀缺的领域,这个80%上下的零样本均值意味着:第一版系统可以先上线,不必等标注赶进度。
它凭什么能做到
DINO自蒸馏:让同一张图的多视角"对齐"
DINO损失用学生-教师自蒸馏的框架,让模型对同一张图的多裁剪(multi-crop)、不同增强下的特征做互预测。卫星影像里同一个地物在不同视角、分辨率、季节下长得不一样,这条损失就是专门把特征训得跨这些扰动保持稳定——跨图匹配和检索的地基。
iBOT掩码建模:靠"填空"练出局部敏感度
iBOT(掩码图像建模)随机遮住部分patch,让模型从上下文里补回来。这逼着密集特征真正编码局部结构,而不是整张图糊成一团,也是同一套特征能直接做分割类任务的原因。
KoLeo+Gram锚定:特征空间不"塌成一坨"
KoLeo正则作用在[CLS]标记上,把全局特征摊开在特征球面上,让不同类别不挤到同一点;Gram锚定则约束学生模型的特征二阶结构向教师对齐,保住判别信息。这两个项解释了为什么上面的零样本k-NN数字站得住,三项损失的实现都在损失函数目录里。
跑起来有多快
实际就两步:加载模型、换预处理,k-NN分类器那部分几行就够。第一步,加载权重:
import torch # 加载SAT-493M权重 model = torch.hub.load( repo_or_dir='facebookresearch/dinov3', model='dinov3_vitl16', weights='facebook/dinov3-vitl16-pretrain-sat493m', )第二步,预处理。注意DINOv3卫星图像权重的归一化参数和网络图像权重不同,误用ImageNet的均值方差会白白掉点:
import torch from torchvision.transforms import v2 # SAT-493M权重必须配卫星专用归一化参数 def make_transform(resize_size=256): return v2.Compose([ v2.ToImage(), v2.Resize((resize_size, resize_size), antialias=True), v2.ToDtype(torch.float32, scale=True), v2.Normalize(mean=(0.430, 0.411, 0.296), std=(0.213, 0.156, 0.143)), ])patch大的场景把resize_size调大即可,唯一要求边长是16的倍数。全部权重的加载示例和配套head模型在README.md里有完整列表。
落地场景
- 农业:正射影像上做地块分类与分割,跟踪作物长势、提前标出异常区域
- 城市规划:识别城市扩张、建筑分布与路网,给规划侧一个现成的特征层
- 环境监测:大尺度影像上的灾害损毁评估与变化检测
一句话收束
如果你要的是卫星图像分析里开箱即用的特征、又不想碰训练管线,SAT-493M的DINOv3卫星图像权重是当前最省事的起点:先看零样本数字,再决定值不值得微调——这个顺序和过去完全反过来了🛰️
【免费下载链接】dinov3Reference PyTorch implementation and models for DINOv3项目地址: https://gitcode.com/GitHub_Trending/di/dinov3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考