🚀 視覺變換器(基礎大小模型)——使用DINOv2訓練
本項目是一個使用DINOv2方法訓練的視覺變換器(ViT)模型。該模型在論文 DINOv2: Learning Robust Visual Features without Supervision 中被提出,作者為Oquab等人,並且首次在 此倉庫 中發佈。
聲明:發佈DINOv2的團隊並未為此模型撰寫模型卡片,此模型卡片由Hugging Face團隊編寫。
🚀 快速開始
本模型是一個基於Transformer架構的視覺變換器(ViT)模型,通過自監督的方式在大量圖像數據集上進行預訓練。它能學習圖像的內在表示,可用於提取對下游任務有用的特徵。
✨ 主要特性
- 自監督預訓練:在大量圖像上以自監督方式進行預訓練,學習圖像的通用特徵。
- 特徵提取能力:可用於提取圖像特徵,為下游任務提供基礎。
- 無微調頭部:模型本身不包含任何微調頭部,具有較高的靈活性。
📚 詳細文檔
模型描述
視覺變換器(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: Learning Robust Visual Features without Supervision},
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}
}
📄 許可證
本項目採用Apache-2.0許可證。