[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-facebookresearch--dinov2":3,"tool-facebookresearch--dinov2":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150720,2,"2026-04-11T11:33:10",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":32,"env_os":96,"env_gpu":97,"env_ram":96,"env_deps":98,"category_tags":102,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":103,"updated_at":104,"faqs":105,"releases":135},6676,"facebookresearch\u002Fdinov2","dinov2","PyTorch code and models for the DINOv2 self-supervised learning method.","dinov2 是由 Meta AI 研发的一套基于 PyTorch 的自监督学习框架，旨在无需任何人工标注的情况下，从海量图像中自动学习强大且通用的视觉特征。它有效解决了传统计算机视觉模型依赖昂贵标注数据、跨领域泛化能力弱的痛点。通过仅在 1.42 亿张无标签图像上进行预训练，dinov2 生成的特征极具鲁棒性，可直接配合简单的线性分类器应用于各类视觉任务，无需针对特定场景进行微调即可表现出色。\n\n该项目特别适合计算机视觉领域的研究人员和开发者使用，尤其是那些希望利用高质量预训练模型加速算法开发、或探索自监督学习潜力的团队。其核心技术亮点包括独特的“寄存器（Registers）”机制，显著提升了 Vision Transformer 处理高分辨率图像的能力；此外，生态还在不断扩展，已衍生出专为生物细胞显微成像设计的 Cell-DINO 以及面向医疗 X 光分析的 XRay-DINO 等垂直领域变体。无论是作为基础骨干网络提取特征，还是作为新研究的起点，dinov2 都提供了一个高效、灵活且性能卓越的开源解决方案。",":new: [2025-12-18] *Added support for loading XRay-DINO backbone following [Advancing human-centric AI for robust X-ray analysis through holistic self-supervised learning](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2405.01469), more details are [here](#pretrained-backbone-xray-dino)*\n\n:new: [2025-12-16] *Added Channel-Adaptive DINO code following [Scaling Channel-Adaptive Self-Supervised Learning](https:\u002F\u002Fopenreview.net\u002Fforum?id=pT8sgtRVAf), more details are [here](#dinov2-for-biology)*\n\n:new: [2025-12-16] *Added Cell-DINO code following [Cell-DINO: Self-Supervised Image-based Embeddings for Cell Fluorescent Microscopy](to appear in Plos One Computational Biology), more details are [here](#dinov2-for-biology)*\n\n[2025-08-14] *Please check out the more recent [DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3) effort continuing this line of work.*\n\n[2025-06-11] *Added dino.txt inference code, following [DINOv2 Meets Text: A Unified Framework for Image- and Pixel-Level Vision-Language Alignment](https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.16334).*\n\n[2023-10-26] *Added DINOv2 backbones with registers, following [Vision Transformers Need Registers](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588).*\n\n# DINOv2: Learning Robust Visual Features without Supervision\n\n**[Meta AI Research, FAIR](https:\u002F\u002Fai.facebook.com\u002Fresearch\u002F)**\n\nMaxime Oquab,\nTimothée Darcet,\nThéo Moutakanni,\nHuy V. Vo,\nMarc Szafraniec,\nVasil Khalidov,\nPatrick Labatut,\nArmand Joulin,\nPiotr Bojanowski\n\n[[`Paper #1`](https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.07193)] [`Paper #2`](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588)] [[`Blog`](https:\u002F\u002Fai.facebook.com\u002Fblog\u002Fdino-v2-computer-vision-self-supervised-learning\u002F)] [[`Demo`](https:\u002F\u002Fdinov2.metademolab.com)] [[`BibTeX`](#citing-dinov2)]\n\nPyTorch implementation and pretrained models for DINOv2. For details, see the papers: **[DINOv2: Learning Robust Visual Features without Supervision](https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.07193)** and **[Vision Transformers Need Registers](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588)**.\n\nDINOv2 models produce high-performance visual features that can be directly employed with classifiers as simple as linear layers on a variety of computer vision tasks; these visual features are robust and perform well across domains without any requirement for fine-tuning. The models were pretrained on a dataset of 142 M images without using any labels or annotations.\n\nhttps:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fassets\u002F60359573\u002Ff168823e-7922-415a-b429-578badf5c356\n\n\u003Cdiv align=\"center\">\n  Visualization of the three first principal components of the patch features of all frames, mapped to RGB values.\n\u003C\u002Fdiv>\n\n## Pretrained models\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>model\u003C\u002Fth>\n      \u003Cth># of\u003Cbr \u002F>params\u003C\u002Fth>\n      \u003Cth>with\u003Cbr \u002F>registers\u003C\u002Fth>\n      \u003Cth>ImageNet\u003Cbr \u002F>k-NN\u003C\u002Fth>\n      \u003Cth>ImageNet\u003Cbr \u002F>linear\u003C\u002Fth>\n      \u003Cth>download\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">21 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">79.0%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">81.1%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">21 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">79.1%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">80.9%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">82.1%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">84.5%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">82.0%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">84.6%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">300 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.5%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.3%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"right\">300 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.8%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.7%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"right\">1,100 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.5%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"right\">1,100 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.7%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">87.1%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_pretrain.pth\">backbone only\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### Pretrained backbones (via PyTorch Hub)\n\nPlease follow the instructions [here](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) to install PyTorch (the only required dependency for loading the model). Installing PyTorch with CUDA support is strongly recommended.\n\nA corresponding [model card](MODEL_CARD.md) is included in the repository.\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vits14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14')\ndinov2_vitb14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14')\ndinov2_vitl14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14')\ndinov2_vitg14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14')\n\n# DINOv2 with registers\ndinov2_vits14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_reg')\ndinov2_vitb14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_reg')\ndinov2_vitl14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg')\ndinov2_vitg14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_reg')\n```\n\n### Pretrained backbone: XRay-DINO\n\nRequest for downloading the model is here:\n\nhttps:\u002F\u002Fai.meta.com\u002Fresources\u002Fmodels-and-libraries\u002Fraydino-downloads\u002F\n\n\nAfter filling the form, you will get an email with a temporary link. You can either download it using `wget` and indicate the checkpoint path in your local filesystem, or you can directly use the URL from the email in the following code:\n\n```python\nimport torch\n\nREPO_DIR = \u003CPATH\u002FTO\u002FA\u002FLOCAL\u002FDIRECTORY\u002FWHERE\u002FTHE\u002FDINOV2\u002FREPO\u002FWAS\u002FCLONED>\n\nxray_dino_vitl16 = torch.hub.load(REPO_DIR, 'xray_dino_vitl16', source='local', weights=\u003CCHECKPOINT\u002FURL\u002FOR\u002FPATH>)\n```\n\n**License**\nModel weights are released under the FAIR Noncommercial Research License. See LICENSE_XRAY_DINO_MODEL for additional details.\n\n\n### Pretrained heads - Image classification\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">backbone\u003C\u002Fth>\n      \u003Cth rowspan=\"2\">with\u003Cbr \u002F>registers\u003C\u002Fth>\n      \u003Cth>download\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>ImageNet\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear4_head.pth\">4 layers\u003C\u002Fa>)\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear4_head.pth\">4 layers\u003C\u002Fa>)\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        linear head (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_lreg4_inear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_linear4_head.pth\">4 layers\u003C\u002Fa>)\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\nThe (full) classifier models can be loaded via PyTorch Hub:\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vits14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_lc')\ndinov2_vitb14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_lc')\ndinov2_vitl14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_lc')\ndinov2_vitg14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_lc')\n\n# DINOv2 with registers\ndinov2_vits14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_reg_lc')\ndinov2_vitb14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_reg_lc')\ndinov2_vitl14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg_lc')\ndinov2_vitg14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_reg_lc')\n```\n\n### Pretrained heads - Depth estimation\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">backbone\u003C\u002Fth>\n      \u003Cth colspan=\"2\">download head\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>NYUd\u003C\u002Fth>\n      \u003Cth>KITTI\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_nyu_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_nyu_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_nyu_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        linear (\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_linear_head.pth\">1 layer\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_linear4_head.pth\">4 layers\u003C\u002Fa>),\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### Pretrained heads - Semantic segmentation\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">backbone\u003C\u002Fth>\n      \u003Cth>download model\u003C\u002Fth>\n      \u003Cth colspan=\"2\">download head\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>ADE20K\u003C\u002Fth>\n      \u003Cth>ADE20K\u003C\u002Fth>\n      \u003Cth>VOC2012\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_ade20k_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_ade20k_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_voc2012_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_voc2012_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_ade20k_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_ade20k_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_voc2012_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_voc2012_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_ade20k_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_ade20k_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_voc2012_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_voc2012_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_m2f.pth\">Mask2Former\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_voc2012_linear_head.pth\">linear\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_voc2012_ms_head.pth\">multi-scale\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n### Pretrained heads - Zero-shot tasks with dino.txt\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">backbone\u003C\u002Fth>\n      \u003Cth rowspan=\"2\">with\u003Cbr \u002F>registers\u003C\u002Fth>\n      \u003Cth>download\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_dinotxt_tet1280d20h24l_vision_head.pth\">vision head\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_dinotxt_tet1280d20h24l_text_encoder.pth\">text model\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fthirdparty\u002Fbpe_simple_vocab_16e6.txt.gz\">vocabulary\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fthirdparty\u002FLICENSE\">vocabulary license\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\nThe (full) dino.txt model can be loaded via PyTorch Hub:\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vitl14_reg4_dinotxt_tet1280d20h24l = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg4_dinotxt_tet1280d20h24l')\n```\n\n\n## Installation\n\nThe training and evaluation code requires PyTorch 2.0 and [xFormers](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fxformers) 0.0.18 as well as a number of other 3rd party packages. Note that the code has only been tested with the specified versions and also expects a Linux environment. To setup all the required dependencies for training and evaluation, please follow the instructions below:\n\n*[conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Flatest\u002Fuser-guide\u002Fgetting-started.html)* **(Recommended)** - Clone the repository and then create and activate a `dinov2` conda environment using the provided environment definition:\n\n```shell\nconda env create -f conda.yaml\nconda activate dinov2\n```\n\n*[pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Fgetting-started\u002F)* - Clone the repository and then use the provided `requirements.txt` to install the dependencies:\n\n```shell\npip install -r requirements.txt\n```\n\nFor dense tasks (depth estimation and semantic segmentation), there are additional dependencies (specific versions of `mmcv` and `mmsegmentation`) which are captured in the `extras` dependency specifications:\n\n*[conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Flatest\u002Fuser-guide\u002Fgetting-started.html)* **(Recommended)**:\n\n```shell\nconda env create -f conda-extras.yaml\nconda activate dinov2-extras\n```\n\n*[pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Fgetting-started\u002F)*:\n\n```shell\npip install -r requirements.txt -r requirements-extras.txt\n```\n\n## Data preparation\n\n### ImageNet-1k\n\nThe root directory of the dataset should hold the following contents:\n\n- `\u003CROOT>\u002Ftest\u002FILSVRC2012_test_00000001.JPEG`\n- `\u003CROOT>\u002Ftest\u002F[..]`\n- `\u003CROOT>\u002Ftest\u002FILSVRC2012_test_00100000.JPEG`\n- `\u003CROOT>\u002Ftrain\u002Fn01440764\u002Fn01440764_10026.JPEG`\n- `\u003CROOT>\u002Ftrain\u002F[...]`\n- `\u003CROOT>\u002Ftrain\u002Fn15075141\u002Fn15075141_9993.JPEG`\n- `\u003CROOT>\u002Fval\u002Fn01440764\u002FILSVRC2012_val_00000293.JPEG`\n- `\u003CROOT>\u002Fval\u002F[...]`\n- `\u003CROOT>\u002Fval\u002Fn15075141\u002FILSVRC2012_val_00049174.JPEG`\n- `\u003CROOT>\u002Flabels.txt`\n\nThe provided dataset implementation expects a few additional metadata files to be present under the extra directory:\n\n- `\u003CEXTRA>\u002Fclass-ids-TRAIN.npy`\n- `\u003CEXTRA>\u002Fclass-ids-VAL.npy`\n- `\u003CEXTRA>\u002Fclass-names-TRAIN.npy`\n- `\u003CEXTRA>\u002Fclass-names-VAL.npy`\n- `\u003CEXTRA>\u002Fentries-TEST.npy`\n- `\u003CEXTRA>\u002Fentries-TRAIN.npy`\n- `\u003CEXTRA>\u002Fentries-VAL.npy`\n\nThese metadata files can be generated (once) with the following lines of Python code:\n\n```python\nfrom dinov2.data.datasets import ImageNet\n\nfor split in ImageNet.Split:\n    dataset = ImageNet(split=split, root=\"\u003CROOT>\", extra=\"\u003CEXTRA>\")\n    dataset.dump_extra()\n```\n\nNote that the root and extra directories do not have to be distinct directories.\n\n### ImageNet-22k\n\nPlease adapt the [dataset class](dinov2\u002Fdata\u002Fdatasets\u002Fimage_net_22k.py) to match your local setup.\n\n\u003Cbr \u002F>\n\n:warning: To execute the commands provided in the next sections for training and evaluation, the `dinov2` package should be included in the Python module search path, i.e. simply prefix the command to run with `PYTHONPATH=.`.\n\n## Training\n\n### Fast setup: training DINOv2 ViT-L\u002F16 on ImageNet-1k\n\nRun DINOv2 training on 4 A100-80GB nodes (32 GPUs) in a SLURM cluster environment with submitit:\n\n```shell\npython dinov2\u002Frun\u002Ftrain\u002Ftrain.py \\\n    --nodes 4 \\\n    --config-file dinov2\u002Fconfigs\u002Ftrain\u002Fvitl16_short.yaml \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR> \\\n    train.dataset_path=ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\nTraining time is approximately 1 day and the resulting checkpoint should reach 81.6% on k-NN eval and 82.9% on linear eval.\n\nThe training code saves the weights of the teacher in the `eval` folder every 12500 iterations for evaluation.\n\n### Long setup: training DINOv2 ViT-L\u002F14 on ImageNet-22k\n\nRun DINOv2 training on 12 A100-80GB nodes (96 GPUs) in a SLURM cluster environment with submitit:\n\n```shell\npython dinov2\u002Frun\u002Ftrain\u002Ftrain.py \\\n    --nodes 12 \\\n    --config-file dinov2\u002Fconfigs\u002Ftrain\u002Fvitl14.yaml \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR> \\\n    train.dataset_path=ImageNet22k:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\nTraining time is approximately 3.3 days and the resulting checkpoint should reach 82.0% on k-NN eval and 84.5% on linear eval.\n\nThe training code saves the weights of the teacher in the `eval` folder every 12500 iterations for evaluation.\n\n\n## Evaluation\n\nThe training code regularly saves the teacher weights. In order to evaluate the model, run the following evaluation on a single node:\n\n### k-NN classification on ImageNet-1k\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Fknn.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fknn \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n### Logistic regression classification on ImageNet-1k\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flog_regression.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Flogreg \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n### Linear classification with data augmentation on ImageNet-1k\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flinear.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Flinear \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\nWe release the weights from evaluating the different models:\n\n\u003Ctable style=\"margin: auto\">\n  \u003Ctr>\n    \u003Cth>model\u003C\u002Fth>\n    \u003Cth>with\u003Cbr \u002F>registers\u003C\u002Fth>\n    \u003Cth>ImageNet\u003Cbr \u002F>top-1\u003C\u002Fth>\n    \u003Cth>linear evaluation\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">81.1%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-S\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">80.8%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">84.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-B\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">84.4%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.3%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-L\u002F14 distilled\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">87.0%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_linear_head.pth\">linear head weights\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\nThe performance of the provided pretrained model weights can be evaluated as follows on ImageNet-1k:\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flinear.py \\\n    --config-file dinov2\u002Fconfigs\u002Feval\u002Fvitg14_pretrain.yaml \\\n    --pretrained-weights https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_pretrain.pth \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n## Notebooks\n\nA few notebooks are provided to help the community leverage the models and code:\n\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fnotebooks\u002Fdepth_estimation.ipynb\">Depth estimation\u003C\u002Fa> - How to load and use the depth heads in combination with a matching backbone via mmcv\u003C\u002Fli>\n  \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fnotebooks\u002Fsemantic_segmentation.ipynb\">Semantic segmentation\u003C\u002Fa> - How to load and use the segmentation heads in combination with a matching backbone via mmcv, and also how to load and use the Mask2Former-based segmentation model trained on ADE20K\u003C\u002Fli>\n\u003C\u002Ful>\n\n## License\n\nDINOv2 code and model weights are released under the Apache License 2.0. See [LICENSE](LICENSE) for additional details.\n\n## Contributing\n\nSee [contributing](CONTRIBUTING.md) and the [code of conduct](CODE_OF_CONDUCT.md).\n\n## Citing DINOv2\n\nIf you find this repository useful, please consider giving a star :star: and citation :t-rex::\n\n```\n@misc{oquab2023dinov2,\n  title={DINOv2: Learning Robust Visual Features without Supervision},\n  author={Oquab, Maxime and Darcet, Timothée and Moutakanni, Theo and Vo, Huy V. and Szafraniec, Marc and Khalidov, Vasil and Fernandez, Pierre and Haziza, Daniel and Massa, Francisco and El-Nouby, Alaaeldin and Howes, Russell and Huang, Po-Yao and Xu, Hu and Sharma, Vasu and Li, Shang-Wen and Galuba, Wojciech and Rabbat, Mike and Assran, Mido and Ballas, Nicolas and Synnaeve, Gabriel and Misra, Ishan and Jegou, Herve and Mairal, Julien and Labatut, Patrick and Joulin, Armand and Bojanowski, Piotr},\n  journal={arXiv:2304.07193},\n  year={2023}\n}\n```\n\n```\n@misc{darcet2023vitneedreg,\n  title={Vision Transformers Need Registers},\n  author={Darcet, Timothée and Oquab, Maxime and Mairal, Julien and Bojanowski, Piotr},\n  journal={arXiv:2309.16588},\n  year={2023}\n}\n```\n\n```\n@misc{jose2024dinov2meetstextunified,\n  title={DINOv2 Meets Text: A Unified Framework for Image- and Pixel-Level Vision-Language Alignment},\n  author={Cijo Jose and Théo Moutakanni and Dahyun Kang and Federico Baldassarre and Timothée Darcet and Hu Xu and Daniel Li and Marc Szafraniec and Michaël Ramamonjisoa and Maxime Oquab and Oriane Siméoni and Huy V. Vo and Patrick Labatut and Piotr Bojanowski},\n  journal={arXiv:2412.16334},\n  year={2024}\n}\n```\n\n\n# DINOv2 for Biology\n\nThe contents of the source code contained in the cell_dino folders, including the code and model weights, are intended for research use only. It is not for use in medical procedures, including any diagnostics, treatment, or curative applications. Do not use this model for any clinical purpose or as a substitute for professional medical judgement.\n\n\n## Scaling Channel-Adaptive Self-Supervised Learning (Channel-Adaptive DINO)\n\n [[`Paper `](https:\u002F\u002Fopenreview.net\u002Fforum?id=pT8sgtRVAf))] [[`BibTeX`](#citing-channeladaptivedino-and-dinov2)]\n\nAlice V. De Lorenci, Seungeun Yi, Théo Moutakanni, Piotr Bojanowski, Camille Couprie, Juan C. Caicedo, Wolfgang M. Pernice,\n\nwith special thanks to Elouan Gardes for his contributions to the codebase.\n\n [README](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fdocs\u002FREADME_CHANNEL_ADAPTIVE_DINO.md)\n\n\n\n## Cell-DINO: Self-Supervised Image-based Embeddings for Cell Fluorescent Microscopy (Cell-DINO)\n\nThéo Moutakanni, Camille Couprie, Seungeun Yi, Elouan Gardes, Piotr Bojanowski, Hugo Touvron, Michael Doron, Zitong S. Chen, Nikita Moshkov, Mathilde Caron, Armand Joulin,  Wolfgang M. Pernice, Juan C. Caicedo\n\nto appear soon.\n\n [README](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fdocs\u002FREADME_CELL_DINO.md)\n\n\n## Pretrained models\n\nℹ️ Please follow the link provided below to get access to all the model weights: once accepted, an e-mail will be sent with the complete list of URLs pointing to all the available model weights. These URLs can then be used to either:\n\n- download the model or adapter weights to a local filesystem and point `torch.hub.load()` to these local weights via the `pretrained_path` parameters, or\n- directly invoke `torch.hub.load()` to download and load a backbone from its URL via also the `pretrained_url` parameter.\n\n⚠️ Please use wget instead of a web browser to download the weights.\n\n**Download link:**\nhttps:\u002F\u002Fai.meta.com\u002Fresources\u002Fmodels-and-libraries\u002Fcell-dino-downloads\u002F\n\n```python\nimport torch\n\nREPO_DIR = \u003CPATH\u002FTO\u002FA\u002FLOCAL\u002FDIRECTORY\u002FWHERE\u002FTHE\u002FDINOV2\u002FREPO\u002FWAS\u002FCLONED>\n\n# You can either download the URL link first, then load:\ncell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\n# Or directly download the URL while using `torch.hub.load`:\ncell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_url=\u003CCHECKPOINT\u002FURL>)\n\n# Similarily for other models:\ncell_dino_vitl16_hpa_sc = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\ncell_dino_vitl16_hpa_fov = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\nchannel_adaptive_dino_vitl16 = torch.hub.load(REPO_DIR, 'channel_adaptive_dino_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\ncell_dino_vitl14 = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl14', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\n```\n\n\n ## Licenses\n\n Code is released under the CC BY NC License. See [LICENSE_CELL_DINO_CODE](LICENSE_CELL_DINO_CODE) for additional details.\n Model weights are released under the FAIR Noncommercial Research License. See [LICENSE_CELL_DINO_CODE_WEIGHTS](LICENSE_CELL_DINO_CODE_WEIGHTS) for additional details.\n",":new: [2025-12-18] *新增对XRay-DINO主干网络的加载支持，基于论文[通过整体自监督学习推进鲁棒的X射线分析的人本AI](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2405.01469)，更多详情请见[这里](#pretrained-backbone-xray-dino)*\n\n:new: [2025-12-16] *新增通道自适应DINO代码，基于论文[扩展通道自适应自监督学习](https:\u002F\u002Fopenreview.net\u002Fforum?id=pT8sgtRVAf)，更多详情请见[这里](#dinov2-for-biology)*\n\n:new: [2025-12-16] *新增Cell-DINO代码，基于论文[Cell-DINO：用于细胞荧光显微镜的自监督图像嵌入](即将发表于Plos One Computational Biology)，更多详情请见[这里](#dinov2-for-biology)*\n\n[2025-08-14] *请查看更近期的[DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3)项目，该项目延续了这一研究方向。*\n\n[2025-06-11] *新增dino.txt推理代码，基于论文[DINOv2遇见文本：面向图像与像素级视觉-语言对齐的统一框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.16334）。*\n\n[2023-10-26] *新增带有寄存器的DINOv2主干网络，基于论文[视觉Transformer需要寄存器](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588）。*\n\n# DINOv2：无监督学习鲁棒视觉特征\n\n**[Meta AI Research, FAIR](https:\u002F\u002Fai.facebook.com\u002Fresearch\u002F)**\n\nMaxime Oquab,\nTimothée Darcet,\nThéo Moutakanni,\nHuy V. Vo,\nMarc Szafraniec,\nVasil Khalidov,\nPatrick Labatut,\nArmand Joulin,\nPiotr Bojanowski\n\n[[`论文 #1`](https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.07193)] [`论文 #2`](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588)] [[`博客`](https:\u002F\u002Fai.facebook.com\u002Fblog\u002Fdino-v2-computer-vision-self-supervised-learning\u002F)] [[`演示`](https:\u002F\u002Fdinov2.metademolab.com)] [[`BibTeX`](#citing-dinov2)]\n\nDINOv2的PyTorch实现及预训练模型。详情请参阅以下两篇论文：**[DINOv2：无监督学习鲁棒视觉特征](https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.07193)** 和 **[视觉Transformer需要寄存器](https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.16588)**。\n\nDINOv2模型能够生成高性能的视觉特征，这些特征可以直接与诸如线性层之类的分类器结合，应用于多种计算机视觉任务；且无需任何微调即可在不同领域表现出色。该模型是在包含1.42亿张图片的数据集上进行预训练的，过程中未使用任何标签或标注信息。\n\nhttps:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fassets\u002F60359573\u002Ff168823e-7922-415a-b429-578badf5c356\n\n\u003Cdiv align=\"center\">\n  所有帧的补丁特征前三个主成分的可视化，映射为RGB值。\n\u003C\u002Fdiv>\n\n## 预训练模型\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>模型\u003C\u002Fth>\n      \u003Cth># of\u003Cbr \u002F>params\u003C\u002Fth>\n      \u003Cth>with\u003Cbr \u002F>registers\u003C\u002Fth>\n      \u003Cth>ImageNet\u003Cbr \u002F>k-NN\u003C\u002Fth>\n      \u003Cth>ImageNet\u003Cbr \u002F>linear\u003C\u002Fth>\n      \u003Cth>下载\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">21 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">79.0%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">81.1%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">21 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">79.1%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">80.9%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">82.1%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">84.5%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">82.0%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">84.6%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">300 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.5%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.3%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"right\">300 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.8%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.7%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"right\">1,100 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.5%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"right\">1,100 M\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd align=\"right\">83.7%\u003C\u002Ftd>\n      \u003Ctd align=\"right\">87.1%\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_pretrain.pth\">仅主干网络\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### 预训练主干网络（通过PyTorch Hub）\n\n请按照[此处](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)的说明安装PyTorch（加载模型所需的唯一依赖项）。强烈建议安装支持CUDA的PyTorch版本。\n\n仓库中附带相应的[模型卡片](MODEL_CARD.md)。\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vits14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14')\ndinov2_vitb14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14')\ndinov2_vitl14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14')\ndinov2_vitg14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14')\n\n# 带寄存器的DINOv2\ndinov2_vits14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_reg')\ndinov2_vitb14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_reg')\ndinov2_vitl14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg')\ndinov2_vitg14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_reg')\n```\n\n### 预训练主干网络：XRay-DINO\n\n模型下载请求链接如下：\n\nhttps:\u002F\u002Fai.meta.com\u002Fresources\u002Fmodels-and-libraries\u002Fraydino-downloads\u002F\n\n\n填写表格后，您将收到一封包含临时链接的电子邮件。您可以使用 `wget` 下载模型，并在本地文件系统中指定检查点路径；或者直接在以下代码中使用邮件中的 URL：\n\n```python\nimport torch\n\nREPO_DIR = \u003C本地目录路径，DINOV2 仓库被克隆到的位置>\n\nxray_dino_vitl16 = torch.hub.load(REPO_DIR, 'xray_dino_vitl16', source='local', weights=\u003C检查点 URL 或路径>)\n```\n\n**许可证**\n模型权重根据 FAIR 非商业研究许可证发布。更多详情请参阅 LICENSE_XRAY_DINO_MODEL 文件。\n\n\n### 预训练头部 - 图像分类\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">主干网络\u003C\u002Fth>\n      \u003Cth rowspan=\"2\">是否带有\u003Cbr \u002F>注册表\u003C\u002Fth>\n      \u003Cth>下载\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>ImageNet\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear4_head.pth\">4 层\u003C\u002Fa>)\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear4_head.pth\">4 层\u003C\u002Fa>)\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        线性头部（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_lreg4_inear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_linear4_head.pth\">4 层\u003C\u002Fa>)\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n完整的分类器模型可以通过 PyTorch Hub 加载：\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vits14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_lc')\ndinov2_vitb14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_lc')\ndinov2_vitl14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_lc')\ndinov2_vitg14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_lc')\n\n# 带有注册表的 DINOv2\ndinov2_vits14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14_reg_lc')\ndinov2_vitb14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_reg_lc')\ndinov2_vitl14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg_lc')\ndinov2_vitg14_reg_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14_reg_lc')\n```\n\n### 预训练头 - 深度估计\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">主干网络\u003C\u002Fth>\n      \u003Cth colspan=\"2\">下载头部\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>NYUd\u003C\u002Fth>\n      \u003Cth>KITTI\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_nyu_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_nyu_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_nyu_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_nyu_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        线性层（\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_linear_head.pth\">1 层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_linear4_head.pth\">4 层\u003C\u002Fa>），\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_kitti_dpt_head.pth\">DPT\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### 预训练头 - 语义分割\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">主干网络\u003C\u002Fth>\n      \u003Cth>下载模型\u003C\u002Fth>\n      \u003Cth colspan=\"2\">下载头部\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Cth>ADE20K\u003C\u002Fth>\n      \u003Cth>ADE20K\u003C\u002Fth>\n      \u003Cth>VOC2012\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_ade20k_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_ade20k_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_voc2012_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_voc2012_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_ade20k_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_ade20k_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_voc2012_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_voc2012_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd>\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_ade20k_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_ade20k_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_voc2012_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_voc2012_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_m2f.pth\">Mask2Former\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_ade20k_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_voc2012_linear_head.pth\">线性层\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_voc2012_ms_head.pth\">多尺度\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n### 预训练头 - 使用 dino.txt 的零样本任务\n\n\u003Ctable style=\"margin: auto\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth rowspan=\"2\">骨干网络\u003C\u002Fth>\n      \u003Cth rowspan=\"2\">是否带有\u003Cbr \u002F>注册表\u003C\u002Fth>\n      \u003Cth>下载\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n      \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n      \u003Ctd>\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_dinotxt_tet1280d20h24l_vision_head.pth\">视觉头\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_dinotxt_tet1280d20h24l_text_encoder.pth\">文本模型\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fthirdparty\u002Fbpe_simple_vocab_16e6.txt.gz\">词汇表\u003C\u002Fa>,\n        \u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fthirdparty\u002FLICENSE\">词汇表许可\u003C\u002Fa>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n可以通过 PyTorch Hub 加载完整的 dino.txt 模型：\n\n```python\nimport torch\n\n# DINOv2\ndinov2_vitl14_reg4_dinotxt_tet1280d20h24l = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14_reg4_dinotxt_tet1280d20h24l')\n```\n\n\n## 安装\n\n训练和评估代码需要 PyTorch 2.0 和 [xFormers](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fxformers) 0.0.18，以及一些其他的第三方包。请注意，代码仅在指定版本下进行了测试，并且要求使用 Linux 环境。要设置训练和评估所需的所有依赖项，请按照以下步骤操作：\n\n*[conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Flatest\u002Fuser-guide\u002Fgetting-started.html)* **（推荐）** - 克隆仓库，然后使用提供的环境定义创建并激活一个名为 `dinov2` 的 conda 环境：\n\n```shell\nconda env create -f conda.yaml\nconda activate dinov2\n```\n\n*[pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Fgetting-started\u002F)* - 克隆仓库，然后使用提供的 `requirements.txt` 安装依赖项：\n\n```shell\npip install -r requirements.txt\n```\n\n对于密集型任务（深度估计和语义分割），还有一些额外的依赖项（特定版本的 `mmcv` 和 `mmsegmentation`），这些依赖项被记录在 `extras` 依赖规范中：\n\n*[conda](https:\u002F\u002Fdocs.conda.io\u002Fprojects\u002Fconda\u002Fen\u002Flatest\u002Fuser-guide\u002Fgetting-started.html)* **（推荐）**：\n\n```shell\nconda env create -f conda-extras.yaml\nconda activate dinov2-extras\n```\n\n*[pip](https:\u002F\u002Fpip.pypa.io\u002Fen\u002Fstable\u002Fgetting-started\u002F)*：\n\n```shell\npip install -r requirements.txt -r requirements-extras.txt\n```\n\n## 数据准备\n\n### ImageNet-1k\n\n数据集的根目录应包含以下内容：\n\n- `\u003CROOT>\u002Ftest\u002FILSVRC2012_test_00000001.JPEG`\n- `\u003CROOT>\u002Ftest\u002F[..]`\n- `\u003CROOT>\u002Ftest\u002FILSVRC2012_test_00100000.JPEG`\n- `\u003CROOT>\u002Ftrain\u002Fn01440764\u002Fn01440764_10026.JPEG`\n- `\u003CROOT>\u002Ftrain\u002F[...]`\n- `\u003CROOT>\u002Ftrain\u002Fn15075141\u002Fn15075141_9993.JPEG`\n- `\u003CROOT>\u002Fval\u002Fn01440764\u002FILSVRC2012_val_00000293.JPEG`\n- `\u003CROOT>\u002Fval\u002F[...]`\n- `\u003CROOT>\u002Fval\u002Fn15075141\u002FILSVRC2012_val_00049174.JPEG`\n- `\u003CROOT>\u002Flabels.txt`\n\n提供的数据集实现期望在 extra 目录下存在一些额外的元数据文件：\n\n- `\u003CEXTRA>\u002Fclass-ids-TRAIN.npy`\n- `\u003CEXTRA>\u002Fclass-ids-VAL.npy`\n- `\u003CEXTRA>\u002Fclass-names-TRAIN.npy`\n- `\u003CEXTRA>\u002Fclass-names-VAL.npy`\n- `\u003CEXTRA>\u002Fentries-TEST.npy`\n- `\u003CEXTRA>\u002Fentries-TRAIN.npy`\n- `\u003CEXTRA>\u002Fentries-VAL.npy`\n\n这些元数据文件可以使用以下 Python 代码一次性生成：\n\n```python\nfrom dinov2.data.datasets import ImageNet\n\nfor split in ImageNet.Split:\n    dataset = ImageNet(split=split, root=\"\u003CROOT>\", extra=\"\u003CEXTRA>\")\n    dataset.dump_extra()\n```\n\n请注意，根目录和 extra 目录不必是独立的目录。\n\n### ImageNet-22k\n\n请根据您的本地设置调整 [数据集类](dinov2\u002Fdata\u002Fdatasets\u002Fimage_net_22k.py)。\n\n\u003Cbr \u002F>\n\n:warning: 为了执行接下来章节中提供的训练和评估命令，`dinov2` 包应包含在 Python 模块搜索路径中，即只需在运行命令前加上 `PYTHONPATH=.`。\n\n## 训练\n\n### 快速设置：在 ImageNet-1k 上训练 DINOv2 ViT-L\u002F16\n\n在 SLURM 集群环境中，使用 submitit 在 4 个 A100-80GB 节点（32 个 GPU）上运行 DINOv2 训练：\n\n```shell\npython dinov2\u002Frun\u002Ftrain\u002Ftrain.py \\\n    --nodes 4 \\\n    --config-file dinov2\u002Fconfigs\u002Ftrain\u002Fvitl16_short.yaml \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR> \\\n    train.dataset_path=ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n训练时间约为 1 天，最终检查点在 k-NN 评估中应达到 81.6%，在线性评估中应达到 82.9%。\n\n训练代码每 12500 次迭代会在 `eval` 文件夹中保存教师权重，以便进行评估。\n\n### 长期设置：在 ImageNet-22k 上训练 DINOv2 ViT-L\u002F14\n\n在 SLURM 集群环境中，使用 submitit 在 12 个 A100-80GB 节点（96 个 GPU）上运行 DINOv2 训练：\n\n```shell\npython dinov2\u002Frun\u002Ftrain\u002Ftrain.py \\\n    --nodes 12 \\\n    --config-file dinov2\u002Fconfigs\u002Ftrain\u002Fvitl14.yaml \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR> \\\n    train.dataset_path=ImageNet22k:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n训练时间约为 3.3 天，最终检查点在 k-NN 评估中应达到 82.0%，在线性评估中应达到 84.5%。\n\n训练代码每 12500 次迭代会在 `eval` 文件夹中保存教师权重，以便进行评估。\n\n\n## 评估\n\n训练代码会定期保存教师权重。为了评估模型，可以在单个节点上运行以下评估：\n\n### ImageNet-1k 上的 k-NN 分类\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Fknn.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fknn \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n### ImageNet-1k 上的逻辑回归分类\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flog_regression.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Flogreg \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n### 在 ImageNet-1k 数据集上使用数据增强的线性分类\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flinear.py \\\n    --config-file \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Fconfig.yaml \\\n    --pretrained-weights \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Fteacher_checkpoint.pth \\\n    --output-dir \u003CPATH\u002FTO\u002FOUTPUT\u002FDIR>\u002Feval\u002Ftraining_24999\u002Flinear \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n我们发布了对不同模型进行评估后的权重：\n\n\u003Ctable style=\"margin: auto\">\n  \u003Ctr>\n    \u003Cth>模型\u003C\u002Fth>\n    \u003Cth>是否使用\u003Cbr \u002F>寄存器\u003C\u002Fth>\n    \u003Cth>ImageNet\u003Cbr \u002F>top-1\u003C\u002Fth>\n    \u003Cth>线性评估\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">81.1%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-S\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">80.8%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vits14\u002Fdinov2_vits14_reg4_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">84.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-B\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">84.4%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitb14\u002Fdinov2_vitb14_reg4_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.3%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-L\u002F14 蒸馏版\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitl14\u002Fdinov2_vitl14_reg4_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:x:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">86.5%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>ViT-g\u002F14\u003C\u002Ftd>\n    \u003Ctd align=\"center\">:white_check_mark:\u003C\u002Ftd>\n    \u003Ctd align=\"right\">87.0%\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_reg4_linear_head.pth\">线性头权重\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n所提供的预训练模型权重在 ImageNet-1k 上的性能可以通过以下方式评估：\n\n```shell\npython dinov2\u002Frun\u002Feval\u002Flinear.py \\\n    --config-file dinov2\u002Fconfigs\u002Feval\u002Fvitg14_pretrain.yaml \\\n    --pretrained-weights https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fdinov2\u002Fdinov2_vitg14\u002Fdinov2_vitg14_pretrain.pth \\\n    --train-dataset ImageNet:split=TRAIN:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET> \\\n    --val-dataset ImageNet:split=VAL:root=\u003CPATH\u002FTO\u002FDATASET>:extra=\u003CPATH\u002FTO\u002FDATASET>\n```\n\n## 笔记本\n\n提供了一些笔记本，以帮助社区更好地利用这些模型和代码：\n\n\u003Cul>\n  \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fnotebooks\u002Fdepth_estimation.ipynb\">深度估计\u003C\u002Fa> - 如何通过 mmcv 加载并使用与匹配主干网络结合的深度头部\u003C\u002Fli>\n  \u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fnotebooks\u002Fsemantic_segmentation.ipynb\">语义分割\u003C\u002Fa> - 如何通过 mmcv 加载并使用与匹配主干网络结合的分割头部，以及如何加载并使用基于 Mask2Former、在 ADE20K 数据集上训练的分割模型\u003C\u002Fli>\n\u003C\u002Ful>\n\n## 许可证\n\nDINOv2 的代码和模型权重根据 Apache License 2.0 发布。更多详细信息请参阅 [LICENSE](LICENSE)。\n\n## 贡献\n\n请参阅 [contributing](CONTRIBUTING.md) 和 [code of conduct](CODE_OF_CONDUCT.md)。\n\n## 引用 DINOv2\n\n如果您觉得这个仓库有用，请考虑给它一个星标 :star: 并引用 :t-rex::\n\n```\n@misc{oquab2023dinov2,\n  title={DINOv2: Learning Robust Visual Features without Supervision},\n  author={Oquab, Maxime and Darcet, Timothée and Moutakanni, Theo and Vo, Huy V. and Szafraniec, Marc and Khalidov, Vasil and Fernandez, Pierre and Haziza, Daniel and Massa, Francisco and El-Nouby, Alaaeldin and Howes, Russell and Huang, Po-Yao and Xu, Hu and Sharma, Vasu and Li, Shang-Wen and Galuba, Wojciech and Rabbat, Mike and Assran, Mido and Ballas, Nicolas and Synnaeve, Gabriel and Misra, Ishan and Jegou, Herve and Mairal, Julien and Labatut, Patrick and Joulin, Armand and Bojanowski, Piotr},\n  journal={arXiv:2304.07193},\n  year={2023}\n}\n```\n\n```\n@misc{darcet2023vitneedreg,\n  title={Vision Transformers Need Registers},\n  author={Darcet, Timothée and Oquab, Maxime and Mairal, Julien and Bojanowski, Piotr},\n  journal={arXiv:2309.16588},\n  year={2023}\n}\n```\n\n```\n@misc{jose2024dinov2meetstextunified,\n  title={DINOv2 Meets Text: A Unified Framework for Image- and Pixel-Level Vision-Language Alignment},\n  author={Cijo Jose and Théo Moutakanni and Dahyun Kang and Federico Baldassarre and Timothée Darcet and Hu Xu and Daniel Li and Marc Szafraniec and Michaël Ramamonjisoa and Maxime Oquab and Oriane Siméoni and Huy V. Vo and Patrick Labatut and Piotr Bojanowski},\n  journal={arXiv:2412.16334},\n  year={2024}\n}\n```\n\n\n# DINOv2 用于生物学\n\ncell_dino 文件夹中包含的源代码内容，包括代码和模型权重，仅用于研究目的。不得用于任何医疗程序，包括诊断、治疗或治愈性应用。请勿将此模型用于任何临床用途，亦不可将其作为专业医疗判断的替代品。\n\n\n## 扩展通道自适应自监督学习（通道自适应 DINO）\n\n [[`论文 `](https:\u002F\u002Fopenreview.net\u002Fforum?id=pT8sgtRVAf))] [[`BibTeX`](#citing-channeladaptivedino-and-dinov2)]\n\nAlice V. De Lorenci、Seungeun Yi、Théo Moutakanni、Piotr Bojanowski、Camille Couprie、Juan C. Caicedo、Wolfgang M. Pernice，\n\n特别感谢 Elouan Gardes 对代码库的贡献。\n\n [README](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fdocs\u002FREADME_CHANNEL_ADAPTIVE_DINO.md)\n\n\n\n## Cell-DINO：用于细胞荧光显微镜的自监督图像嵌入（Cell-DINO）\n\nThéo Moutakanni、Camille Couprie、Seungeun Yi、Elouan Gardes、Piotr Bojanowski、Hugo Touvron、Michael Doron、Zitong S. Chen、Nikita Moshkov、Mathilde Caron、Armand Joulin、Wolfgang M. Pernice、Juan C. Caicedo\n\n即将发表。\n\n [README](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fblob\u002Fmain\u002Fdocs\u002FREADME_CELL_DINO.md)\n\n## 预训练模型\n\nℹ️ 请按照下方提供的链接获取所有模型权重：申请通过后，您将收到一封电子邮件，其中包含指向所有可用模型权重的完整 URL 列表。这些 URL 可用于以下两种方式之一：\n\n- 将模型或适配器权重下载到本地文件系统，并通过 `pretrained_path` 参数将 `torch.hub.load()` 指向这些本地权重；\n- 或者直接调用 `torch.hub.load()`，通过 `pretrained_url` 参数从指定 URL 下载并加载主干网络。\n\n⚠️ 请使用 `wget` 而不是网页浏览器来下载权重。\n\n**下载链接：**\nhttps:\u002F\u002Fai.meta.com\u002Fresources\u002Fmodels-and-libraries\u002Fcell-dino-downloads\u002F\n\n```python\nimport torch\n\nREPO_DIR = \u003CPATH\u002FTO\u002FA\u002FLOCAL\u002FDIRECTORY\u002FWHERE\u002FTHE\u002FDINOV2\u002FREPO\u002FWAS\u002FCLONED>\n\n# 您可以先下载 URL 链接，再进行加载：\ncell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\n# 或者在使用 `torch.hub.load` 的同时直接下载 URL：\ncell_dino_vits8 = torch.hub.load(REPO_DIR, 'cell_dino_cp_vits8', source='local', pretrained_url=\u003CCHECKPOINT\u002FURL>)\n\n# 其他模型的加载方式类似：\ncell_dino_vitl16_hpa_sc = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\ncell_dino_vitl16_hpa_fov = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\nchannel_adaptive_dino_vitl16 = torch.hub.load(REPO_DIR, 'channel_adaptive_dino_vitl16', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\ncell_dino_vitl14 = torch.hub.load(REPO_DIR, 'cell_dino_hpa_vitl14', source='local', pretrained_path=\u003CCHECKPOINT\u002FPATH>)\n```\n\n\n ## 许可证\n\n代码采用 CC BY NC 许可证发布。更多详情请参阅 [LICENSE_CELL_DINO_CODE]。\n模型权重采用 FAIR 非商业研究许可证发布。更多详情请参阅 [LICENSE_CELL_DINO_CODE_WEIGHTS]。","# DINOv2 快速上手指南\n\nDINOv2 是 Meta AI Research 推出的自监督视觉模型，无需标注即可在 1.42 亿张图像上预训练，生成鲁棒的视觉特征，可直接用于分类、深度估计等任务。\n\n## 环境准备\n\n- **操作系统**：Linux \u002F macOS \u002F Windows（推荐 Linux）\n- **Python 版本**：3.8+\n- **PyTorch 版本**：1.10+（强烈建议安装支持 CUDA 的版本以加速推理）\n- **依赖项**：仅需 PyTorch（其他依赖由 torch.hub 自动处理）\n\n安装 PyTorch（含 CUDA 支持）：\n```bash\npip install torch torchvision torchaudio --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\n```\n> 国内用户可使用清华镜像加速：\n> ```bash\n> pip install torch torchvision torchaudio --index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n无需克隆仓库或手动安装，DINOv2 支持通过 PyTorch Hub 直接加载预训练模型：\n\n```bash\n# 确保已安装 PyTorch，无需额外 pip install dinov2\n```\n\n如需使用特殊变体（如 XRay-DINO），需先克隆仓库：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2.git\ncd dinov2\n```\n\n## 基本使用\n\n### 1. 加载标准预训练骨干网络（Backbone）\n\n```python\nimport torch\n\n# 加载不同规模的 DINOv2 模型\ndinov2_vits14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vits14')  # Small\ndinov2_vitb14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14')  # Base\ndinov2_vitl14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitl14')  # Large\ndinov2_vitg14 = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitg14')  # Giant\n\n# 加载带 Registers 的变体（提升长序列建模能力）\ndinov2_vitb14_reg = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_reg')\n```\n\n### 2. 提取图像特征\n\n```python\nfrom PIL import Image\nimport torchvision.transforms as transforms\n\n# 预处理\ntransform = transforms.Compose([\n    transforms.Resize(256),\n    transforms.CenterCrop(224),\n    transforms.ToTensor(),\n    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),\n])\n\nimage = Image.open(\"your_image.jpg\").convert(\"RGB\")\ninput_tensor = transform(image).unsqueeze(0)  # [1, 3, 224, 224]\n\n# 推理\nwith torch.no_grad():\n    features = dinov2_vitb14(input_tensor)  # 输出形状：[1, 768]（全局特征）\n```\n\n### 3. 加载完整分类器（含线性头）\n\n```python\n# 直接加载端到端分类模型（已在 ImageNet 上训练好线性头）\ndinov2_vitb14_lc = torch.hub.load('facebookresearch\u002Fdinov2', 'dinov2_vitb14_lc')\npredictions = dinov2_vitb14_lc(input_tensor)\n```\n\n### 4. 使用 XRay-DINO（医学影像专用）\n\n需先申请下载链接（访问 https:\u002F\u002Fai.meta.com\u002Fresources\u002Fmodels-and-libraries\u002Fraydino-downloads\u002F），获取 checkpoint 后：\n\n```python\nimport torch\n\nREPO_DIR = \"\u002Fpath\u002Fto\u002Fcloned\u002Fdinov2\"  # 替换为本地仓库路径\nCHECKPOINT_PATH = \"\u002Fpath\u002Fto\u002Fxray_dino_checkpoint.pth\"  # 或邮件中的临时 URL\n\nxray_dino = torch.hub.load(REPO_DIR, 'xray_dino_vitl16', source='local', weights=CHECKPOINT_PATH)\nfeatures = xray_dino(input_tensor)\n```\n\n> 注意：XRay-DINO 模型权重遵循 FAIR 非商业研究许可证，仅限科研用途。\n\n---\n\n现在你可以将提取的特征接入简单分类器（如 sklearn 的 LinearSVC 或 PyTorch 线性层），即可在各类视觉任务中获得高性能结果，无需微调主干网络。","某医疗科技公司的算法团队正在开发一套自动筛查肺部 X 光片的辅助诊断系统，面临标注数据稀缺且模型泛化能力差的挑战。\n\n### 没有 dinov2 时\n- **数据标注成本高昂**：团队需要放射科医生手动标注数万张 X 光片才能训练出可用的监督模型，耗时数月且预算超支。\n- **跨医院泛化失败**：在 A 医院数据上训练的模型，一旦应用到 B 医院不同设备拍摄的影像上，准确率因分布差异急剧下降。\n- **细微病灶漏检**：传统预训练模型（如 ImageNet  pretrained）缺乏医学纹理理解，难以提取早期微小结节的鲁棒特征，导致漏诊率高。\n- **迭代周期漫长**：每次调整网络结构或增加新病种，都必须重新进行耗时的全量微调，研发效率极低。\n\n### 使用 dinov2 后\n- **零样本特征提取**：直接加载支持 X 光分析的 XRay-DINO 预训练权重，无需任何标注即可提取高质量视觉特征，将冷启动时间从数月缩短至几天。\n- **域适应能力强**：dinov2 在无监督学习中掌握了通用的解剖结构特征，模型在不同医院、不同成像设备的影像上均保持稳定的高准确率。\n- **捕捉微小异常**：得益于自监督学习对局部纹理的深刻理解，dinov2 能精准定位并编码早期微小病灶，显著提升了敏感度和召回率。\n- **轻量级快速部署**：只需在冻结的 dinov2 骨干网络上训练简单的线性分类器即可完成新任务适配，大幅降低了算力需求和迭代周期。\n\ndinov2 通过强大的自监督学习能力，让医疗 AI 在极少标注数据下也能实现高精度、强泛化的疾病筛查，彻底改变了小样本场景下的开发范式。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_dinov2_d9ab0abc.png","facebookresearch","Meta Research","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffacebookresearch_449342bd.png","",null,"https:\u002F\u002Fopensource.fb.com","https:\u002F\u002Fgithub.com\u002Ffacebookresearch",[80,84,88],{"name":81,"color":82,"percentage":83},"Jupyter Notebook","#DA5B0B",63.4,{"name":85,"color":86,"percentage":87},"Python","#3572A5",36.4,{"name":89,"color":90,"percentage":91},"Shell","#89e051",0.1,12673,1204,"2026-04-11T09:43:31","Apache-2.0","未说明","强烈建议安装支持 CUDA 的 PyTorch（具体显存和 CUDA 版本未说明，但运行 ViT-g\u002F14 等大模型通常需要高显存）",{"notes":99,"python":96,"dependencies":100},"PyTorch 是加载模型的唯一必需依赖。部分变体（如 XRay-DINO）需要单独申请下载权限并遵循非商业研究许可协议。代码支持通过 PyTorch Hub 直接加载预训练骨干网络及分类头。",[101],"torch",[15,14],"2026-03-27T02:49:30.150509","2026-04-12T00:39:04.215757",[106,111,116,121,126,131],{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},30149,"如何可视化 DINOv2 的 PCA 三通道图像（类似 README 中的展示效果）？","社区用户已创建了相关的 Hugging Face Space 演示和代码库。你可以参考以下资源获取可视化代码：\n1. GitHub 仓库：https:\u002F\u002Fgithub.com\u002Fpurnasai\u002FDino_V2\n2. Hugging Face 演示空间（包含完整代码）：https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FRoundtTble\u002Fdinov2-pca\n在 Hugging Face 空间中，点击右上角的\"Files\"即可查看生成 PCA 可视化的具体代码实现。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fissues\u002F23",{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},30150,"是否有用于语义分割（Semantic Segmentation）的示例代码或教程？","官方尚未直接提供语义分割的训练脚本，但社区提供了详细的教程。你可以使用冻结的 DINOv2 模型并在其顶部训练一个线性分类器来实现。\n推荐资源：\n1. NielsRogge 提供的详细教程笔记本：https:\u002F\u002Fgithub.com\u002FNielsRogge\u002FTransformers-Tutorials\u002Fblob\u002Fmaster\u002FDINOv2\u002FTrain_a_linear_classifier_on_top_of_DINOv2_for_semantic_segmentation.ipynb\n2. DINOv2 现已支持 Hugging Face Transformers，文档见：https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Fmain\u002Fmodel_doc\u002Fdinov2\n原理上，这相当于对 patch tokens 进行逐像素的线性分类，然后上采样到原始分辨率。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fissues\u002F25",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},30151,"如何将 DINOv2 模型导出为 ONNX 格式？遇到设备不一致报错怎么办？","在导出过程中可能会遇到 `RuntimeError: Expected all tensors to be on the same device` 错误，这是因为模型内部的 mask_token 或其他张量未正确移动到指定设备（如 CUDA）。\n解决方案：\n1. 确保输入数据和模型都在同一设备上（例如都 `.to('cuda:0')`）。\n2. 检查模型内部逻辑，特别是 `prepare_tokens_with_masks` 函数中涉及的 `self.mask_token` 和 `self.cls_token`，确保它们在导出前已正确注册并随模型移动。\n3. 目前社区已有成功导出 class token + patch tokens 的案例，可参考相关讨论获取具体修改后的导出代码。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fissues\u002F19",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},30152,"DINOv2 的正确推理（Inference）方式是什么？是否需要归一化或使用混合精度？","为了获得最佳结果并匹配训练时的设置，建议遵循以下步骤：\n1. **混合精度推理**：由于 DINOv2 是使用混合精度训练的，建议使用 `torch.autocast` 包裹推理过程，例如：`with torch.autocast('cuda', dtype=torch.float16):`。\n2. **归一化**：通常需要使用与训练时相同的图像预处理（包括归一化），具体取决于你加载的是 Torch Hub 版本还是 Hugging Face 版本。\n3. **输出差异**：Hugging Face 版本通常输出形状为 `(batch, 257, 768)` 的拼接嵌入（cls + patches），而 Torch Hub 版本可能分开输出。对于图像检索任务，通常使用 cls token 或对 patch tokens 进行 GeM 池化。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fissues\u002F2",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},30153,"如何生成论文中展示的注意力热力图（Attention Heatmap）？","生成注意力热力图需要提取模型的注意力权重并进行可视化处理。\n关键步骤：\n1. 使用 `visualize_attention.py` 脚本或类似逻辑获取注意力矩阵。\n2. 注意模型参数匹配：如果你使用的是预训练模型（如 `dinov2_vits14_pretrain`），初始化模型时必须指定正确的参数，例如：`model = vit_small(patch_size=14, img_size=518, init_values=1.0, block_chunks=0)`。\n3. 形状对齐：确保输入图像尺寸与模型期望的 patch 数量一致（例如 518x518 对应特定的 attention shape）。\n4. 处理异常值：某些实现中可能需要手动将特定高注意力值的索引设为零以优化可视化效果（如 `attentions[:, index] = 0`）。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov2\u002Fissues\u002F90",{"id":132,"question_zh":133,"answer_zh":134,"source_url":125},30154,"如何获取和分析 DINOv2 的中间层输出（Intermediate Layers）？","你可以使用 `get_intermediate_layers()` 方法来获取模型中间层的特征输出，这类似于 `linear.py` 中的做法。\n使用方法：\n1. 加载模型后，调用 `features = model.get_intermediate_layers(input_tensor, n_blocks)`，其中 `n_blocks` 指定要提取的最后几个块。\n2. 这些输出可以用于分析不同层级的特征表示，或者替代最终的 embedding 用于特定任务。\n3. 如果直接使用 `forward_features` 遇到错误，请确保输入张量的设备和类型与模型完全一致，并且图像预处理（resize, normalize）符合模型要求（如 518x518 分辨率）。",[]]