license: apache-2.0
tags:
基于DINOv2训练的视觉Transformer(基础规模模型)
本模型是采用DINOv2方法训练的视觉Transformer(ViT)模型,由Oquab等人在论文《DINOv2:无监督学习鲁棒视觉特征》中提出,并首次发布于此代码库。
免责声明:发布DINOv2的团队未编写此模型的说明卡片,本卡片由Hugging Face团队撰写。
模型描述
视觉Transformer(ViT)是一种基于Transformer编码器架构(类似BERT)的模型,通过自监督方式在大规模图像数据上预训练而成。
图像以固定尺寸的补丁序列形式输入模型,经线性嵌入处理。序列前端会添加一个[CLS]标记用于分类任务,在输入Transformer编码器层之前还会加入绝对位置嵌入。
需注意,该模型不包含任何微调头部。
通过预训练,模型能学习图像的内在表征,进而提取适用于下游任务的特征:例如若您拥有带标注的图像数据集,可在预训练编码器顶部添加线性层来训练标准分类器。通常会在[CLS]标记的最终隐藏状态上添加线性层,因该标记的最终状态可视为整幅图像的语义表征。
预期用途与限制
您可将原始模型用于特征提取。访问模型中心查找您感兴趣任务的微调版本。
使用方法
使用方式如下:
from transformers import AutoImageProcessor, AutoModel
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained('facebook/dinov2-base')
model = AutoModel.from_pretrained('facebook/dinov2-base')
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
BibTeX引用信息
misc{oquab2023dinov2,
title={DINOv2: 无监督学习鲁棒视觉特征},
author={Maxime Oquab and Timothée Darcet and Théo Moutakanni and Huy Vo and Marc Szafraniec and Vasil Khalidov and Pierre Fernandez and Daniel Haziza and Francisco Massa and Alaaeldin El-Nouby and Mahmoud Assran and Nicolas Ballas and Wojciech Galuba and Russell Howes and Po-Yao Huang and Shang-Wen Li and Ishan Misra and Michael Rabbat and Vasu Sharma and Gabriel Synnaeve and Hu Xu and Hervé Jegou and Julien Mairal and Patrick Labatut and Armand Joulin and Piotr Bojanowski},
year={2023},
eprint={2304.07193},
archivePrefix={arXiv},
primaryClass={cs.CV}
}