概览
DINOv2 将图片编码为视觉特征,核心价值是利用预训练表示支持下游任务。可以先冻结骨干提取向量,再用少量标注训练分类器,或对一批图片建立相似度检索。仓库同时提供深度估计、语义分割等任务相关资源。它适合已有图像数据的开发者构建可比较的视觉基线,特征的效果仍应在实际业务图片上验证。
主要功能
- 通过自监督学习获得通用视觉表示。
- 提供 ViT-S、B、L、g 等骨干选择。
- 提供带 registers 的模型变体。
- 可通过 PyTorch Hub 加载预训练模型。
- 适用于分类、相似度与特征提取流程。
- 提供深度估计和语义分割任务资源。
要求、安装和快速入门
1. 建立 Python 与 PyTorch 环境,按设备选择兼容版本。
2. 简单特征提取可从 PyTorch Hub 入手。
3. 执行 torch.hub.load("facebookresearch/dinov2", "dinov2_vits14") 加载小型骨干。
4. 参照官方示例统一图像尺寸与归一化,把模型切换为评估模式。
5. 在关闭梯度的推理流程中提取一小批图片特征。
6. 需要训练或专用任务头时,再安装仓库对应依赖并遵循相应任务说明。
2. 简单特征提取可从 PyTorch Hub 入手。
3. 执行 torch.hub.load("facebookresearch/dinov2", "dinov2_vits14") 加载小型骨干。
4. 参照官方示例统一图像尺寸与归一化,把模型切换为评估模式。
5. 在关闭梯度的推理流程中提取一小批图片特征。
6. 需要训练或专用任务头时,再安装仓库对应依赖并遵循相应任务说明。
用法
例如建立商品图片相似检索,可为每张图片记录商品编号并提取向量,对向量做一致的归一化后建立检索索引。用同款不同角度、不同款但背景相近的图片分别测试,检查模型关注的是商品还是背景。若分类边界需要更强业务语义,可在冻结特征上训练一个小分类器,并用独立验证集比较结果。
实施要点
应记录图片裁剪、归一化、骨干版本与向量维度,避免索引和查询使用不同处理方式。医学与细胞等专用扩展拥有独立模型说明,不能直接套用通用图像模型的用途和许可。
实施要点
应记录图片裁剪、归一化、骨干版本与向量维度,避免索引和查询使用不同处理方式。医学与细胞等专用扩展拥有独立模型说明,不能直接套用通用图像模型的用途和许可。
模型兼容性与使用场景
需要 PyTorch、图片预处理和模型权重;大型骨干占用更多资源。通用视觉向量的相似度与业务语义并不完全相同,选择模型时要结合实际检索或分类指标。
许可证与风险说明
DINOv2 主仓库采用 Apache-2.0。README 中另列的 XRay-DINO 权重采用 FAIR Noncommercial Research License,不能把主仓库许可直接套用到该权重。