license: apache-2.0
tags:
使用DINOv2训练的视觉Transformer(小尺寸模型)
该视觉Transformer(ViT)模型采用DINOv2方法训练,由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-small')
model = AutoModel.from_pretrained('facebook/dinov2-small')
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}
}