[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Intellindust-AI-Lab--DEIMv2":3,"tool-Intellindust-AI-Lab--DEIMv2":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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[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":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":76,"owner_twitter":75,"owner_website":77,"owner_url":78,"languages":79,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":10,"env_os":96,"env_gpu":97,"env_ram":96,"env_deps":98,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":144},8881,"Intellindust-AI-Lab\u002FDEIMv2","DEIMv2","[DEIMv2] Real Time Object Detection Meets DINOv3 ","DEIMv2 是一款将实时目标检测与强大视觉基础模型 DINOv3 相结合的前沿开源框架。它旨在解决传统实时检测算法在复杂场景下精度不足，而高精度模型又难以满足速度要求的痛点，成功实现了速度与准确性的双重突破。\n\n该工具特别适合计算机视觉领域的研究人员、算法工程师以及需要在边缘设备部署高性能模型的开发者使用。无论是进行学术研究，还是开发自动驾驶、智能监控等实际应用，DEIMv2 都能提供强有力的支持。\n\n其核心技术亮点在于巧妙融合了 DINOv3 丰富的特征表达能力，并设计了从超轻量级到超大尺寸（Ultra-light 至 X）的多种模型规格，以灵活适应不同算力场景。值得一提的是，其中等规模（S 版）模型在极具挑战性的 COCO 基准测试中，平均精度（AP）已突破 50%，达到了业界领先水平。此外，DEIMv2 引入的 STA 机制已被集成到主流蒸馏库中，验证了其实用价值。项目同时提供了完善的 FP16 推理优化方案，支持通过 TensorRT 高效部署，确保在真实业务场景中既能跑得快，又能测得准。","\u003Ch2 align=\"center\">\n  Real-Time Object Detection Meets DINOv3\n\u003C\u002Fh2>\n\u003Ch3 align=\"center\">\n  \n  🎉 We’re excited to introduce \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FEdgeCrafter\u002F\">EdgeCrafter\u003C\u002Fa> with SOTA performance on object detection, pose estimation as well as instance segmentation.🎉\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fblob\u002Fmaster\u002FLICENSE\">\n        \u003Cimg alt=\"license\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLICENSE-Apache%202.0-blue\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2509.20787\">\n        \u003Cimg alt=\"arXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2509.20787-red\">\n    \u003C\u002Fa>\n   \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FDEIMv2\u002F\">\n        \u003Cimg alt=\"project webpage\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWebpage-DEIMv2-purple\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fpulls\">\n        \u003Cimg alt=\"prs\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\">\n        \u003Cimg alt=\"issues\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FIntellindust-AI-Lab\u002FDEIMv2?color=olive\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n        \u003Cimg alt=\"stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n    \u003C\u002Fa>\n    \u003Ca href=\"mailto:shenxi@intellindust.com\">\n        \u003Cimg alt=\"Contact Us\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContact-Email-yellow\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    DEIMv2 is an evolution of the DEIM framework while leveraging the rich features from DINOv3. Our method is designed with various model sizes, from an ultra-light version up to S, M, L, and X, to be adaptable for a wide range of scenarios. Across these variants, DEIMv2 achieves state-of-the-art performance, with the S-sized model notably surpassing 50 AP on the challenging COCO benchmark.\n\u003C\u002Fp>\n\n---\n\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Fwww.shihuahuang.cn\">Shihua Huang\u003C\u002Fa>\u003Csup>1*\u003C\u002Fsup>,&nbsp;&nbsp;\n  Yongjie Hou\u003Csup>1,2*\u003C\u002Fsup>,&nbsp;&nbsp;\n  Longfei Liu\u003Csup>1*\u003C\u002Fsup>,&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fxuanlong-yu.github.io\u002F\">Xuanlong Yu\u003C\u002Fa>\u003Csup>1\u003C\u002Fsup>,&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fxishen0220.github.io\">Xi Shen\u003C\u002Fa>\u003Csup>1†\u003C\u002Fsup>&nbsp;&nbsp;\n\u003C\u002Fdiv>\n\n  \n\u003Cp align=\"center\">\n\u003Ci>\n1. \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\"> Intellindust AI Lab\u003C\u002Fa> &nbsp;&nbsp; 2. Xiamen University &nbsp; \u003Cbr> \n* Equal Contribution &nbsp;&nbsp; † Corresponding Author\n\u003C\u002Fi>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n\u003Cstrong>If you like our work, please give us a ⭐!\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_3a51ae12d6dd.png\" alt=\"Image 1\" width=\"49%\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_c22690a28605.png\" alt=\"Image 2\" width=\"49%\">\n\u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n \n  \n## 🚀 Updates\n- [x] **\\[2026.3.20\\]** 🔥🔥🔥Hi everyone! **We’re excited to introduce [EdgeCrafter](https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FEdgeCrafter\u002F), our latest work that achieves new state-of-the-art performance—faster, more accurate, and easier to use than ever.** It also supports multiple vision tasks, including object detection, instance segmentation, and human pose estimation!\n- [x] **\\[2026.1.7\\]** STA, introduced in DEIMv2, has been integrated into the SOTA distillation library [LightlyTrain](https:\u002F\u002Fgithub.com\u002Flightly-ai\u002Flightly-train\u002Fblob\u002F1fbe09744891727b4b494583ee62f35e7b7b1668\u002Fsrc\u002Flightly_train\u002F_task_models\u002Fdinov3_ltdetr_object_detection\u002Fdinov3_vit_wrapper.py#L15), demonstrating its practical value and impact in real-world training pipelines. \n- [x] **\\[2026.1.7\\]** FP16 Inference Fix: **Use TensorRT ≥ 10.6 to ensure stable execution and correct detection results.** For detailed deployment instructions, please refer to [Deployment](https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2?tab=readme-ov-file#4-tools).\n- [x] **\\[2025.11.3\\]** [We have uploaded our models to Hugging Face](https:\u002F\u002Fhuggingface.co\u002FIntellindust)! Thanks to NielsRogge!\n- [x] **\\[2025.10.28\\]** Optimized the attention module in ViT-Tiny, reducing memory usage by half for the S and M models.\n- [x] **\\[2025.10.2\\]** [DEIMv2 has been integrated into X-AnyLabeling!](https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F25#issue-3473960491) Many thanks to the X-AnyLabeling maintainers for making this possible.\n- [x] **\\[2025.9.26\\]** Release DEIMv2 series.\n\n## 🧭 Table of Content\n* [1. 🤖 Model Zoo](#1-model-zoo)\n* [2. ⚡ Quick Start](#2-quick-start)\n* [3. 🛠️ Usage](#3-usage)\n* [4. 🧰 Tools](#4-tools)\n* [5. 📜 Citation](#5-citation)\n* [6. 🙏 Acknowledgement](#6-acknowledgement)\n* [7. ⭐ Star History](#7-star-history)\n  \n  \n## 1. Model Zoo\n\n| Model | Dataset | AP | #Params | GFLOPs | Latency (ms) | config | Hugging Face | checkpoint | log |\n| :---: | :---: | :---: | :---: | :---: |:------------:| :---: | :---: | :---: | :---: |\n| **Atto** | COCO | **23.8** | 0.5M | 0.8 | 1.10 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_atto_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_ATTO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F18sRJXX3FBUigmGJ1y5Oo_DPC5C3JCgYc\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F04c997582fca) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1M7FLN8EeVHG02kegPN-Wxf_9BlkghZfj\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F7bf3548d3e10) |\n| **Femto** | COCO | **31.0** | 1.0M | 1.7 | 1.45 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_femto_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_FEMTO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F16hh6l9Oln9TJng4V0_HNf_Z7uYb7feds\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F169f3cefec1b) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_KWVfOr3bB5TMHTNOmDIAO-tZJmKB9-b\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F9dd5c4940199) |\n| **Pico** | COCO | **38.5** | 1.5M | 5.2 | 2.13 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_pico_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_PICO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1PXpUxYSnQO-zJHtzrCPqQZ3KKatZwzFT\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F0db5b1dff721) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GwyWotYSKmFQdVN9k2MM6atogpbh0lo1\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F5ab2a74bb867) |\n| **N** | COCO | **43.0** | 3.6M | 6.8 | 2.32 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_n_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_N_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1G_Q80EVO4T7LZVPfHwZ3sT65FX5egp9K\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F1f626f191d11) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1QhYfRrUy8HrihD3OwOMJLC-ATr97GInV\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F54e5c89675b3) |\n| **S** | COCO | **50.9** | 9.7M | 25.6 | 5.78 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_S_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1MDOh8UXD39DNSew6rDzGFp1tAVpSGJdL\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002Ff4d05c349a24) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ydA4lWiTYusV1s3WHq5jSxIq39oxy-Nf\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F277660d785d2) |\n| **M** | COCO | **53.0** | 18.1M | 52.2 | 8.80 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_m_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_M_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1nPKDHrotusQ748O1cQXJfi5wdShq6bKp\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F68a719248756) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1i05Q1-O9UH-2Vb52FpFJ4mBG523GUqJU\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F32af04f3e4b4) |\n| **L** | COCO | **56.0** | 32.2M | 96.7 | 10.47 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_l_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_L_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1dRJfVHr9HtpdvaHlnQP460yPVHynMray\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F966b7ef89bdf) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13mrQxyrf1kJ45Yd692UQwdb7lpGoqsiS\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F182bd52562a7) |\n| **X** | COCO | **57.8** | 50.3M | 151.6 | 13.75 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_x_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_X_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1pTiQaBGt8hwtO0mbYlJ8nE-HGztGafS7\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F038aa966b283) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13QV0SwJw1wHl0xHWflZj1KstBUAovSsV\u002Fview?usp=drive_link) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F333aba42b4bb) |\n\n\n\n\n## 2. Quick start\n\n### 2.0 Using Models from Hugging Face\n\nWe currently release our models on Hugging Face! Here's a simple example. You can see detailed configs and more examples in [hf_models.ipynb](.\u002Fhf_models.ipynb).\n\n\u003Cdetails>\n\u003Csummary> Simple example \u003C\u002Fsummary>\n\nCreate a .py file in the directory of DEIMv2, make sure all components are loaded successfully.\n\n```shell\nimport torch.nn as nn\nfrom huggingface_hub import PyTorchModelHubMixin\n\nfrom engine.backbone import HGNetv2, DINOv3STAs\nfrom engine.deim import HybridEncoder, LiteEncoder\nfrom engine.deim import DFINETransformer, DEIMTransformer\nfrom engine.deim.postprocessor import PostProcessor\n\n\nclass DEIMv2(nn.Module, PyTorchModelHubMixin):\n    def __init__(self, config):\n        super().__init__()\n        self.backbone = DINOv3STAs(**config[\"DINOv3STAs\"])\n        self.encoder = HybridEncoder(**config[\"HybridEncoder\"])\n        self.decoder = DEIMTransformer(**config[\"DEIMTransformer\"])\n        self.postprocessor = PostProcessor(**config[\"PostProcessor\"])\n\n    def forward(self, x, orig_target_sizes):\n        x = self.backbone(x)\n        x = self.encoder(x)\n        x = self.decoder(x)\n        x = self.postprocessor(x, orig_target_sizes)\n\n        return x\n\ndeimv2_s_config = {\n  \"DINOv3STAs\": {\n    ...\n  },\n  ...\n}\n\ndeimv2_s_hf = DEIMv2.from_pretrained(\"Intellindust\u002FDEIMv2_DINOv3_S_COCO\")\n```\n\u003C\u002Fdetails>\n\n### 2.1 Environment Setup\n\n```shell\n# You can use PyTorch 2.5.1 or 2.4.1. We have not tried other versions, but we recommend that the PyTorch version be 2.0 or higher.\n\nconda create -n deimv2 python=3.11 -y\nconda activate deimv2\npip install -r requirements.txt\n```\n\n\n### 2.2 Data Preparation\n\n\u003Cdetails open>\n\u003Csummary> 2.2.1 COCO2017 Dataset \u003C\u002Fsummary>\n\nFollow the steps below to prepare COCO dataset:\n\n1. Download COCO2017 from [OpenDataLab](https:\u002F\u002Fopendatalab.com\u002FOpenDataLab\u002FCOCO_2017) or [COCO](https:\u002F\u002Fcocodataset.org\u002F#download).\n2. Modify paths in [coco_detection.yml](.\u002Fconfigs\u002Fdataset\u002Fcoco_detection.yml)\n\n    ```yaml\n    train_dataloader:\n        img_folder: \u002Fdata\u002FCOCO2017\u002Ftrain2017\u002F\n        ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_train2017.json\n    val_dataloader:\n        img_folder: \u002Fdata\u002FCOCO2017\u002Fval2017\u002F\n        ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_val2017.json\n    ```\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>2.2.2 (Optional) Custom Dataset\u003C\u002Fsummary>\n\nTo train on your custom dataset, you need to organize it in the COCO format. Follow the steps below to prepare your dataset:\n\n1. **Set `remap_mscoco_category` to `False`:**\n\n    This prevents the automatic remapping of category IDs to match the MSCOCO categories.\n\n    ```yaml\n    remap_mscoco_category: False\n    ```\n\n2. **Organize Images:**\n\n    Structure your dataset directories as follows:\n\n    ```shell\n    dataset\u002F\n    ├── images\u002F\n    │   ├── train\u002F\n    │   │   ├── image1.jpg\n    │   │   ├── image2.jpg\n    │   │   └── ...\n    │   ├── val\u002F\n    │   │   ├── image1.jpg\n    │   │   ├── image2.jpg\n    │   │   └── ...\n    └── annotations\u002F\n        ├── instances_train.json\n        ├── instances_val.json\n        └── ...\n    ```\n\n    - **`images\u002Ftrain\u002F`**: Contains all training images.\n    - **`images\u002Fval\u002F`**: Contains all validation images.\n    - **`annotations\u002F`**: Contains COCO-formatted annotation files.\n\n3. **Convert Annotations to COCO Format:**\n\n    If your annotations are not already in COCO format, you'll need to convert them. You can use the following Python script as a reference or utilize existing tools:\n\n    ```python\n    import json\n\n    def convert_to_coco(input_annotations, output_annotations):\n        # Implement conversion logic here\n        pass\n\n    if __name__ == \"__main__\":\n        convert_to_coco('path\u002Fto\u002Fyour_annotations.json', 'dataset\u002Fannotations\u002Finstances_train.json')\n    ```\n\n4. **Update Configuration Files:**\n\n    Modify your [custom_detection.yml](.\u002Fconfigs\u002Fdataset\u002Fcustom_detection.yml).\n\n    ```yaml\n    task: detection\n\n    evaluator:\n      type: CocoEvaluator\n      iou_types: ['bbox', ]\n\n    num_classes: 777 # your dataset classes\n    remap_mscoco_category: False\n\n    train_dataloader:\n      type: DataLoader\n      dataset:\n        type: CocoDetection\n        img_folder: \u002Fdata\u002Fyourdataset\u002Ftrain\n        ann_file: \u002Fdata\u002Fyourdataset\u002Ftrain\u002Ftrain.json\n        return_masks: False\n        transforms:\n          type: Compose\n          ops: ~\n      shuffle: True\n      num_workers: 4\n      drop_last: True\n      collate_fn:\n        type: BatchImageCollateFunction\n\n    val_dataloader:\n      type: DataLoader\n      dataset:\n        type: CocoDetection\n        img_folder: \u002Fdata\u002Fyourdataset\u002Fval\n        ann_file: \u002Fdata\u002Fyourdataset\u002Fval\u002Fann.json\n        return_masks: False\n        transforms:\n          type: Compose\n          ops: ~\n      shuffle: False\n      num_workers: 4\n      drop_last: False\n      collate_fn:\n        type: BatchImageCollateFunction\n    ```\n\n\u003C\u002Fdetails>\n\n### 2.3 Backbone Preparation\n\n- **Versions based on HGNetv2**: Backbones will be downloaded automatically during training, so you don't need to worry.\n\n- **DEIMv2-L and X**: We use DINOv3-S and S+ as backbone, you can download them following the guide in [DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3).\n\n- **DEIMv2-S and M**: We use our ViT-Tiny and ViT-Tiny+ distilled from DINOv3-S, you can download them from [ViT-Tiny](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1YMTq_woOLjAcZnHSYNTsNg7f0ahj5LPs\u002Fview?usp=sharing) and [ViT-Tiny+](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1COHfjzq5KfnEaXTluVGEOMdhpuVcG6Jt\u002Fview?usp=sharing).\n\nPlace dinov3 and vits into .\u002Fckpts folder as:\n\n```shell\nckpts\u002F\n├── dinov3_vits16.pth\n├── vitt_distill.pt\n├── vittplus_distill.pt\n└── ...\n```\n\n\n## 3. Usage\n\u003Cdetails open>\n\u003Csummary> 3.1 COCO2017 \u003C\u002Fsummary>\n\n1. Training\n    ```shell\n    # for ViT-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --use-amp --seed=0\n\n    # for HGNetv2-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --use-amp --seed=0\n    ```\n\n2. Testing\n    ```shell\n    # for ViT-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --test-only -r model.pth\n\n    # for HGNetv2-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --test-only -r model.pth\n    ```\n\n3. Tuning\n    ```shell\n    # for ViT-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --use-amp --seed=0 -t model.pth\n\n    # for HGNetv2-based variants\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --use-amp --seed=0 -t model.pth\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 3.2 (Optional) Customizing Batch Size \u003C\u002Fsummary>\n\nFor example, if you want to use **DEIMv2-S** and  double the total batch size to 64 when training **DEIMv2** on COCO2017, here are the steps you should follow:\n\n1. **Modify your [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)** to increase the `total_batch_size`:\n\n    ```yaml\n    train_dataloader:\n      total_batch_size: 64 \n      dataset: \n        transforms:\n          ops:\n            ...\n    \n      collate_fn:\n        ...\n    ```\n\n2. **Modify your [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)**. Here’s how the key parameters should be adjusted:\n\n    ```yaml\n    optimizer:\n      type: AdamW\n    \n      params: \n        -\n          # except norm\u002Fbn\u002Fbias in self.dinov3\n          params: '^(?=.*.dinov3)(?!.*(?:norm|bn|bias)).*$'  \n          lr: 0.00005  # doubled, linear scaling law\n        -\n          # including all norm\u002Fbn\u002Fbias in self.dinov3\n          params: '^(?=.*.dinov3)(?=.*(?:norm|bn|bias)).*$'    \n          lr: 0.00005   # doubled, linear scaling law\n          weight_decay: 0.\n        - \n          # including all norm\u002Fbn\u002Fbias except for the self.dinov3\n          params: '^(?=.*(?:sta|encoder|decoder))(?=.*(?:norm|bn|bias)).*$'\n          weight_decay: 0.\n    \n      lr: 0.0005   # linear scaling law if needed\n      betas: [0.9, 0.999]\n      weight_decay: 0.0001\n   \n    ema:  # added EMA settings\n      decay: 0.9998  # adjusted by 1 - (1 - decay) * 2\n      warmups: 500  # halved\n   \n    lr_warmup_scheduler:\n      warmup_duration: 250  # halved\n    ```\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary> 3.3 (Optional) Customizing Input Size \u003C\u002Fsummary>\n\nIf you'd like to train **DEIMv2-S** on COCO2017 with an input size of 320x320, follow these steps:\n\n1. **Modify your  [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)**:\n\n    ```yaml\n    eval_spatial_size: [320, 320]\n   \n    train_dataloader:\n      # Here we set the total_batch_size to 64 as an example.\n      total_batch_size: 64 \n      dataset: \n        transforms:\n          ops:\n            #  Especially for Mosaic augmentation, it is recommended that output_size = input_size \u002F 2.\n            - {type: Mosaic, output_size: 160, rotation_range: 10, translation_range: [0.1, 0.1], scaling_range: [0.5, 1.5],\n               probability: 1.0, fill_value: 0, use_cache: True, max_cached_images: 50, random_pop: True}\n            ...\n            - {type: Resize, size: [320, 320], }\n            ...\n        collate_fn:\n          base_size: 320\n          ...\n\n    val_dataloader:\n      dataset:\n        transforms:\n          ops:\n            - {type: Resize, size: [320, 320], }\n            ...\n    ```\n   \n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 3.4 (Optional) Customizing Epoch \u003C\u002Fsummary>\n\nIf you want to finetune **DEIMv2-S** for **20** epochs, follow these steps (for reference only; feel free to adjust them according to your needs):\n\n```yml\nepoches: 32 #  Total epochs: 20 for training + EMA  for 4n = 12. n refers to the model size in the matched config.\n\nflat_epoch: 14    # 4 + 20 \u002F\u002F 2\nno_aug_epoch: 12  # 4n\n\ntrain_dataloader:\n  dataset: \n    transforms:\n      ops:\n        ...\n      policy:\n        epoch: [4, 14, 20]   # [start_epoch, flat_epoch, epoches - no_aug_epoch]\n\n  collate_fn:\n    ...\n    mixup_epochs: [4, 14]  # [start_epoch, flat_epoch]\n    stop_epoch: 20  # epoches - no_aug_epoch\n    copyblend_epochs: [4, 20]  # [start_epoch, epoches - no_aug_epoch]\n  \nDEIMCriterion:\n  matcher:\n    ...\n    matcher_change_epoch: 18  # ~90% of (epoches - no_aug_epoch)\n```\n\n\u003C\u002Fdetails>\n\n## 4. Tools\n\u003Cdetails>\n\u003Csummary> 4.1 Deployment \u003C\u002Fsummary>\n\n1. Setup\n    ```shell\n    pip install onnx onnxsim\n    ```\n\n2. Export onnx\n    ```shell\n    python tools\u002Fdeployment\u002Fexport_onnx.py --check -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth\n    ```\n\n3. Export [tensorrt](https:\u002F\u002Fdocs.nvidia.com\u002Fdeeplearning\u002Ftensorrt\u002Finstall-guide\u002Findex.html)\n    ```shell\n    trtexec --onnx=\"model.onnx\" --saveEngine=\"model.engine\" --fp16\n    ```\n\n⚠️ **TensorRT Version Notes**\n\n- ✅ Recommended: **Use TensorRT ≥ 10.6 for FP16 inference** to ensure stable execution and correct detection results.\n\n- ❗ Known Issue: With TensorRT 10.4, FP16 inference may produce incorrect outputs.\n\n- 🔧 Workarounds for older versions (e.g., 10.4):\n\n  - Run inference in FP32 mode, or\n\n  - Carefully validate the exported engine and end-to-end pipeline to confirm numerical correctness and detection performance.\n\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.2 Inference (Visualization) \u003C\u002Fsummary>\n\n\n1. Setup\n    ```shell\n    pip install -r tools\u002Finference\u002Frequirements.txt\n    ```\n\n\n2. Inference (onnxruntime \u002F tensorrt \u002F torch)\n\n    Inference on images and videos is now supported.\n\n    ```shell\n    python tools\u002Finference\u002Fonnx_inf.py --onnx model.onnx --input image.jpg  # video.mp4\n    python tools\u002Finference\u002Ftrt_inf.py --trt model.engine --input image.jpg\n    python tools\u002Finference\u002Ftorch_inf.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth --input image.jpg --device cuda:0\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.3 Benchmark \u003C\u002Fsummary>\n\n1. Setup\n    ```shell\n    pip install -r tools\u002Fbenchmark\u002Frequirements.txt\n    ```\n\n2. Model FLOPs, MACs, and Params\n    ```shell\n    python tools\u002Fbenchmark\u002Fget_info.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml\n    ```\n\n2. TensorRT Latency\n    ```shell\n    python tools\u002Fbenchmark\u002Ftrt_benchmark.py --COCO_dir path\u002Fto\u002FCOCO2017 --engine_dir model.engine\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.4 Fiftyone Visualization  \u003C\u002Fsummary>\n\n1. Setup\n    ```shell\n    pip install fiftyone\n    ```\n2. Voxel51 Fiftyone Visualization ([fiftyone](https:\u002F\u002Fgithub.com\u002Fvoxel51\u002Ffiftyone))\n    ```shell\n    python tools\u002Fvisualization\u002Ffiftyone_vis.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.5 Others \u003C\u002Fsummary>\n\n1. Auto Resume Training\n    ```shell\n    bash reference\u002Fsafe_training.sh\n    ```\n\n2. Converting Model Weights\n    ```shell\n    python reference\u002Fconvert_weight.py model.pth\n    ```\n\u003C\u002Fdetails>\n\n\n## 5. Citation\nIf you use `DEIMv2` or its methods in your work, please cite the following BibTeX entries:\n\n```latex\n@article{huang2025deimv2,\n  title={Real-Time Object Detection Meets DINOv3},\n  author={Huang, Shihua and Hou, Yongjie and Liu, Longfei and Yu, Xuanlong and Shen, Xi},\n  journal={arXiv},\n  year={2025}\n}\n```\n\n## 6. Acknowledgement\nOur work is built upon [LightlyTrain](https:\u002F\u002Fgithub.com\u002Flightly-ai\u002Flightly-train), [D-FINE](https:\u002F\u002Fgithub.com\u002FPeterande\u002FD-FINE), [RT-DETR](https:\u002F\u002Fgithub.com\u002Flyuwenyu\u002FRT-DETR), [DEIM](https:\u002F\u002Fgithub.com\u002FShihuaHuang95\u002FDEIM), and [DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3). Thanks for their great work!\n\n✨ Feel free to contribute and reach out if you have any questions! ✨\n\n## 7. Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_090324537b24.png)](https:\u002F\u002Fwww.star-history.com\u002F#Intellindust-AI-Lab\u002FDEIMv2&Date)\n","\u003Ch2 align=\"center\">\n  实时目标检测与 DINOv3 的结合\n\u003C\u002Fh2>\n\u003Ch3 align=\"center\">\n  \n  🎉 我们很高兴地推出 \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FEdgeCrafter\u002F\">EdgeCrafter\u003C\u002Fa>,它在目标检测、姿态估计以及实例分割任务上均达到了 SOTA 水平。🎉\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fblob\u002Fmaster\u002FLICENSE\">\n        \u003Cimg alt=\"license\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLICENSE-Apache%202.0-blue\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2509.20787\">\n        \u003Cimg alt=\"arXiv\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2509.20787-red\">\n    \u003C\u002Fa>\n   \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FDEIMv2\u002F\">\n        \u003Cimg alt=\"project webpage\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWebpage-DEIMv2-purple\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fpulls\">\n        \u003Cimg alt=\"prs\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\">\n        \u003Cimg alt=\"issues\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FIntellindust-AI-Lab\u002FDEIMv2?color=olive\">\n    \u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n        \u003Cimg alt=\"stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FIntellindust-AI-Lab\u002FDEIMv2\">\n    \u003C\u002Fa>\n    \u003Ca href=\"mailto:shenxi@intellindust.com\">\n        \u003Cimg alt=\"Contact Us\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContact-Email-yellow\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n    DEIMv2 是 DEIM 框架的演进版本，同时充分利用了 DINOv3 的丰富特征。我们的方法设计了多种模型规模，从超轻量级到 S、M、L 和 X 型号，以适应广泛的场景需求。在这些不同规模的模型中，DEIMv2 均取得了当前最先进的性能，其中 S 型号在极具挑战性的 COCO 数据集上显著超过了 50 AP。\n\u003C\u002Fp>\n\n---\n\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Fwww.shihuahuang.cn\">Shihua Huang\u003C\u002Fa>\u003Csup>1*\u003C\u002Fsup>,&nbsp;&nbsp;\n  Yongjie Hou\u003Csup>1,2*\u003C\u002Fsup>,&nbsp;&nbsp;\n  Longfei Liu\u003Csup>1*\u003C\u002Fsup>,&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fxuanlong-yu.github.io\u002F\">Xuanlong Yu\u003C\u002Fa>\u003Csup>1\u003C\u002Fsup>,&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fxishen0220.github.io\">Xi Shen\u003C\u002Fa>\u003Csup>1†\u003C\u002Fsup>&nbsp;&nbsp;\n\u003C\u002Fdiv>\n\n  \n\u003Cp align=\"center\">\n\u003Ci>\n1. \u003Ca href=\"https:\u002F\u002Fintellindust-ai-lab.github.io\"> Intellindust AI Lab\u003C\u002Fa> &nbsp;&nbsp; 2. 厦门大学 &nbsp; \u003Cbr> \n* 共同第一作者 &nbsp;&nbsp; † 通讯作者\n\u003C\u002Fi>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n\u003Cstrong>如果您喜欢我们的工作，请为我们点个 star 吧！\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_3a51ae12d6dd.png\" alt=\"图1\" width=\"49%\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_c22690a28605.png\" alt=\"图2\" width=\"49%\">\n\u003C\u002Fp>\n\n\u003C\u002Fdetails>\n\n \n  \n## 🚀 更新\n- [x] **\\[2026.3.20\\]** 🔥🔥🔥大家好！**我们很高兴地推出 [EdgeCrafter](https:\u002F\u002Fintellindust-ai-lab.github.io\u002Fprojects\u002FEdgeCrafter\u002F)，这是我们最新的研究成果，实现了全新的最先进性能——比以往更快、更准确且更易于使用。** 它还支持多项视觉任务，包括目标检测、实例分割和人体姿态估计！\n- [x] **\\[2026.1.7\\]** DEIMv2 中引入的 STA 已被集成到 SOTA 知识蒸馏库 [LightlyTrain](https:\u002F\u002Fgithub.com\u002Flightly-ai\u002Flightly-train\u002Fblob\u002F1fbe09744891727b4b494583ee62f35e7b7b1668\u002Fsrc\u002Flightly_train\u002F_task_models\u002Fdinov3_ltdetr_object_detection\u002Fdinov3_vit_wrapper.py#L15)，这充分展示了其在实际训练流程中的实用价值和影响力。 \n- [x] **\\[2026.1.7\\]** FP16 推理修复：**请使用 TensorRT ≥ 10.6 以确保稳定运行并获得正确的检测结果。** 有关详细的部署说明，请参阅 [部署](https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2?tab=readme-ov-file#4-tools)。\n- [x] **\\[2025.11.3\\]** [我们已将模型上传至 Hugging Face](https:\u002F\u002Fhuggingface.co\u002FIntellindust)! 感谢 NielsRogge!\n- [x] **\\[2025.10.28\\]** 优化了 ViT-Tiny 中的注意力模块，使 S 和 M 型号的内存占用减少了一半。\n- [x] **\\[2025.10.2\\]** [DEIMv2 已被集成到 X-AnyLabeling 中！](https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F25#issue-3473960491) 非常感谢 X-AnyLabeling 的维护者们促成此事。\n- [x] **\\[2025.9.26\\]** 发布 DEIMv2 系列。\n\n## 🧭 目录\n* [1. 🤖 模型库](#1-model-zoo)\n* [2. ⚡ 快速入门](#2-quick-start)\n* [3. 🛠️ 使用方法](#3-usage)\n* [4. 🧰 工具](#4-tools)\n* [5. 📜 引用](#5-citation)\n* [6. 🙏 致谢](#6-acknowledgement)\n* [7. ⭐ Star 历史](#7-star-history)\n\n## 1. 模型 zoo\n\n| 模型 | 数据集 | AP | 参数量 | GFLOPs | 延迟 (ms) | 配置文件 | Hugging Face | 检查点 | 日志 |\n| :---: | :---: | :---: | :---: | :---: |:------------:| :---: | :---: | :---: | :---: |\n| **Atto** | COCO | **23.8** | 0.5M | 0.8 | 1.10 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_atto_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_ATTO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F18sRJXX3FBUigmGJ1y5Oo_DPC5C3JCgYc\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F04c997582fca) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1M7FLN8EeVHG02kegPN-Wxf_9BlkghZfj\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F7bf3548d3e10) |\n| **Femto** | COCO | **31.0** | 1.0M | 1.7 | 1.45 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_femto_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_FEMTO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F16hh6l9Oln9TJng4V0_HNf_Z7uYb7feds\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F169f3cefec1b) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_KWVfOr3bB5TMHTNOmDIAO-tZJmKB9-b\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F9dd5c4940199) |\n| **Pico** | COCO | **38.5** | 1.5M | 5.2 | 2.13 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_pico_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_PICO_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1PXpUxYSnQO-zJHtzrCPqQZ3KKatZwzFT\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F0db5b1dff721) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1GwyWotYSKmFQdVN9k2MM6atogpbh0lo1\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F5ab2a74bb867) |\n| **N** | COCO | **43.0** | 3.6M | 6.8 | 2.32 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_hgnetv2_n_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_HGNetv2_N_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1G_Q80EVO4T7LZVPfHwZ3sT65FX5egp9K\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F1f626f191d11) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1QhYfRrUy8HrihD3OwOMJLC-ATr97GInV\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F54e5c89675b3) |\n| **S** | COCO | **50.9** | 9.7M | 25.6 | 5.78 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_S_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1MDOh8UXD39DNSew6rDzGFp1tAVpSGJdL\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002Ff4d05c349a24) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ydA4lWiTYusV1s3WHq5jSxIq39oxy-Nf\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F277660d785d2) |\n| **M** | COCO | **53.0** | 18.1M | 52.2 | 8.80 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_m_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_M_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1nPKDHrotusQ748O1cQXJfi5wdShq6bKp\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F68a719248756) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1i05Q1-O9UH-2Vb52FpFJ4mBG523GUqJU\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F32af04f3e4b4) |\n| **L** | COCO | **56.0** | 32.2M | 96.7 | 10.47 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_l_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_L_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1dRJfVHr9HtpdvaHlnQP460yPVHynMray\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F966b7ef89bdf) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13mrQxyrf1kJ45Yd692UQwdb7lpGoqsiS\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F182bd52562a7) |\n| **X** | COCO | **57.8** | 50.3M | 151.6 | 13.75 | [yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_x_coco.yml) | [huggingface](https:\u002F\u002Fhuggingface.co\u002FIntellindust\u002FDEIMv2_DINOv3_X_COCO) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1pTiQaBGt8hwtO0mbYlJ8nE-HGztGafS7\u002Fview?usp=sharing) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F038aa966b283) | [Google](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13QV0SwJw1wHl0xHWflZj1KstBUAovSsV\u002Fview?usp=drive_link) \u002F [Quark](https:\u002F\u002Fpan.quark.cn\u002Fs\u002F333aba42b4bb) |\n\n\n\n\n## 2. 快速入门\n\n### 2.0 使用 Hugging Face 上的模型\n\n我们目前在 Hugging Face 上发布了我们的模型！这里有一个简单的示例。你可以在 [hf_models.ipynb](.\u002Fhf_models.ipynb) 中查看详细的配置和更多示例。\n\n\u003Cdetails>\n\u003Csummary> 简单示例 \u003C\u002Fsummary>\n\n在 DEIMv2 的目录下创建一个 .py 文件，确保所有组件都成功加载。\n\n```shell\nimport torch.nn as nn\nfrom huggingface_hub import PyTorchModelHubMixin\n\nfrom engine.backbone import HGNetv2, DINOv3STAs\nfrom engine.deim import HybridEncoder, LiteEncoder\nfrom engine.deim import DFINETransformer, DEIMTransformer\nfrom engine.deim.postprocessor import PostProcessor\n\n\nclass DEIMv2(nn.Module, PyTorchModelHubMixin):\n    def __init__(self, config):\n        super().__init__()\n        self.backbone = DINOv3STAs(**config[\"DINOv3STAs\"])\n        self.encoder = HybridEncoder(**config[\"HybridEncoder\"])\n        self.decoder = DEIMTransformer(**config[\"DEIMTransformer\"])\n        self.postprocessor = PostProcessor(**config[\"PostProcessor\"])\n\n    def forward(self, x, orig_target_sizes):\n        x = self.backbone(x)\n        x = self.encoder(x)\n        x = self.decoder(x)\n        x = self.postprocessor(x, orig_target_sizes)\n\n        return x\n\ndeimv2_s_config = {\n  \"DINOv3STAs\": {\n    ...\n  },\n  ...\n}\n\ndeimv2_s_hf = DEIMv2.from_pretrained(\"Intellindust\u002FDEIMv2_DINOv3_S_COCO\")\n```\n\u003C\u002Fdetails>\n\n### 2.1 环境设置\n\n```shell\n# 你可以使用 PyTorch 2.5.1 或 2.4.1。我们尚未尝试其他版本，但建议 PyTorch 版本为 2.0 或更高。\n\nconda create -n deimv2 python=3.11 -y\nconda activate deimv2\npip install -r requirements.txt\n```\n\n### 2.2 数据准备\n\n\u003Cdetails open>\n\u003Csummary>2.2.1 COCO2017 数据集\u003C\u002Fsummary>\n\n请按照以下步骤准备 COCO 数据集：\n\n1. 从 [OpenDataLab](https:\u002F\u002Fopendatalab.com\u002FOpenDataLab\u002FCOCO_2017) 或 [COCO](https:\u002F\u002Fcocodataset.org\u002F#download) 下载 COCO2017 数据集。\n2. 修改 [coco_detection.yml](.\u002Fconfigs\u002Fdataset\u002Fcoco_detection.yml) 中的路径：\n\n    ```yaml\n    train_dataloader:\n        img_folder: \u002Fdata\u002FCOCO2017\u002Ftrain2017\u002F\n        ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_train2017.json\n    val_dataloader:\n        img_folder: \u002Fdata\u002FCOCO2017\u002Fval2017\u002F\n        ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_val2017.json\n    ```\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>2.2.2（可选）自定义数据集\u003C\u002Fsummary>\n\n若要使用自定义数据集进行训练，需将其整理为 COCO 格式。请按以下步骤准备您的数据集：\n\n1. **将 `remap_mscoco_category` 设置为 `False`：**\n\n    这将防止类别 ID 自动映射到 MSCOCO 类别。\n\n    ```yaml\n    remap_mscoco_category: False\n    ```\n\n2. **组织图像文件夹：**\n\n    按照以下目录结构整理数据集：\n\n    ```shell\n    dataset\u002F\n    ├── images\u002F\n    │   ├── train\u002F\n    │   │   ├── image1.jpg\n    │   │   ├── image2.jpg\n    │   │   └── ...\n    │   ├── val\u002F\n    │   │   ├── image1.jpg\n    │   │   ├── image2.jpg\n    │   │   └── ...\n    └── annotations\u002F\n        ├── instances_train.json\n        ├── instances_val.json\n        └── ...\n    ```\n\n    - **`images\u002Ftrain\u002F`**：包含所有训练图像。\n    - **`images\u002Fval\u002F`**：包含所有验证图像。\n    - **`annotations\u002F`**：包含 COCO 格式的标注文件。\n\n3. **将标注转换为 COCO 格式：**\n\n    如果您的标注尚未采用 COCO 格式，需要进行转换。您可以参考以下 Python 脚本或使用现有工具：\n\n    ```python\n    import json\n\n    def convert_to_coco(input_annotations, output_annotations):\n        # 在此处实现转换逻辑\n        pass\n\n    if __name__ == \"__main__\":\n        convert_to_coco('path\u002Fto\u002Fyour_annotations.json', 'dataset\u002Fannotations\u002Finstances_train.json')\n    ```\n\n4. **更新配置文件：**\n\n    修改您的 [custom_detection.yml](.\u002Fconfigs\u002Fdataset\u002Fcustom_detection.yml)。\n\n    ```yaml\n    task: detection\n\n    evaluator:\n      type: CocoEvaluator\n      iou_types: ['bbox', ]\n\n    num_classes: 777 # 您的数据集类别数\n    remap_mscoco_category: False\n\n    train_dataloader:\n      type: DataLoader\n      dataset:\n        type: CocoDetection\n        img_folder: \u002Fdata\u002Fyourdataset\u002Ftrain\n        ann_file: \u002Fdata\u002Fyourdataset\u002Ftrain\u002Ftrain.json\n        return_masks: False\n        transforms:\n          type: Compose\n          ops: ~\n      shuffle: True\n      num_workers: 4\n      drop_last: True\n      collate_fn:\n        type: BatchImageCollateFunction\n\n    val_dataloader:\n      type: DataLoader\n      dataset:\n        type: CocoDetection\n        img_folder: \u002Fdata\u002Fyourdataset\u002Fval\n        ann_file: \u002Fdata\u002Fyourdataset\u002Fval\u002Fann.json\n        return_masks: False\n        transforms:\n          type: Compose\n          ops: ~\n      shuffle: False\n      num_workers: 4\n      drop_last: False\n      collate_fn:\n        type: BatchImageCollateFunction\n    ```\n\n\u003C\u002Fdetails>\n\n### 2.3 主干网络准备\n\n- **基于 HGNetv2 的版本**：主干网络将在训练过程中自动下载，您无需操心。\n\n- **DEIMv2-L 和 X**：我们使用 DINOv3-S 和 S+ 作为主干网络，您可以按照 [DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3) 中的指南进行下载。\n\n- **DEIMv2-S 和 M**：我们使用从 DINOv3-S 精馏得到的 ViT-Tiny 和 ViT-Tiny+，您可以从以下链接下载：\n\n    - [ViT-Tiny](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1YMTq_woOLjAcZnHSYNTsNg7f0ahj5LPs\u002Fview?usp=sharing)\n    - [ViT-Tiny+](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1COHfjzq5KfnEaXTluVGEOMdhpuVcG6Jt\u002Fview?usp=sharing)\n\n请将 DINOv3 和 ViT 模型放置在 `.\u002Fckpts` 文件夹中，具体结构如下：\n\n```shell\nckpts\u002F\n├── dinov3_vits16.pth\n├── vitt_distill.pt\n├── vittplus_distill.pt\n└── ...\n```\n\n## 3. 使用方法\n\u003Cdetails open>\n\u003Csummary> 3.1 COCO2017 \u003C\u002Fsummary>\n\n1. 训练\n    ```shell\n    # 对于基于ViT的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --use-amp --seed=0\n\n    # 对于基于HGNetv2的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --use-amp --seed=0\n    ```\n\n2. 测试\n    ```shell\n    # 对于基于ViT的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --test-only -r model.pth\n\n    # 对于基于HGNetv2的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --test-only -r model.pth\n    ```\n\n3. 微调\n    ```shell\n    # 对于基于ViT的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml --use-amp --seed=0 -t model.pth\n\n    # 对于基于HGNetv2的变体\n    CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --master_port=7777 --nproc_per_node=4 train.py -c configs\u002Fdeimv2\u002Fdeimv2_hgnetv2_${model}_coco.yml --use-amp --seed=0 -t model.pth\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 3.2 (可选) 自定义批量大小 \u003C\u002Fsummary>\n\n例如，如果您想使用 **DEIMv2-S**，并在COCO2017上训练 **DEIMv2** 时将总批量大小增加一倍至64，可以按照以下步骤操作：\n\n1. **修改您的 [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)**，以增加 `total_batch_size`：\n\n    ```yaml\n    train_dataloader:\n      total_batch_size: 64 \n      dataset: \n        transforms:\n          ops:\n            ...\n    \n      collate_fn:\n        ...\n    ```\n\n2. **修改您的 [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)**。以下是关键参数应如何调整：\n\n    ```yaml\n    optimizer:\n      type: AdamW\n    \n      params: \n        -\n          # 除self.dinov3中的归一化、批归一化和偏置外的所有参数\n          params: '^(?=.*.dinov3)(?!.*(?:norm|bn|bias)).*$'  \n          lr: 0.00005  # 倍增，遵循线性缩放法则\n        -\n          # 包括self.dinov3中所有归一化、批归一化和偏置\n          params: '^(?=.*.dinov3)(?=.*(?:norm|bn|bias)).*$'    \n          lr: 0.00005   # 倍增，遵循线性缩放法则\n          weight_decay: 0.\n        - \n          # 包括除self.dinov3之外的所有归一化、批归一化和偏置\n          params: '^(?=.*(?:sta|encoder|decoder))(?=.*(?:norm|bn|bias)).*$'\n          weight_decay: 0.\n    \n      lr: 0.0005   # 如有必要，遵循线性缩放法则\n      betas: [0.9, 0.999]\n      weight_decay: 0.0001\n   \n    ema:  # 添加EMA设置\n      decay: 0.9998  # 调整为1 - (1 - decay) * 2\n      warmups: 500  # 减半\n   \n    lr_warmup_scheduler:\n      warmup_duration: 250  # 减半\n    ```\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary> 3.3 (可选) 自定义输入尺寸 \u003C\u002Fsummary>\n\n如果您希望在COCO2017上以320x320的输入尺寸训练 **DEIMv2-S**，请按照以下步骤操作：\n\n1. **修改您的  [deimv2_dinov3_s_coco.yml](.\u002Fconfigs\u002Fdeimv2\u002Fdeimv2_dinov3_s_coco.yml)**：\n\n    ```yaml\n    eval_spatial_size: [320, 320]\n   \n    train_dataloader:\n      # 这里我们以64为例设置总批量大小。\n      total_batch_size: 64 \n      dataset: \n        transforms:\n          ops:\n            # 特别是对于马赛克增强，建议输出尺寸为输入尺寸的一半。\n            - {type: Mosaic, output_size: 160, rotation_range: 10, translation_range: [0.1, 0.1], scaling_range: [0.5, 1.5],\n               probability: 1.0, fill_value: 0, use_cache: True, max_cached_images: 50, random_pop: True}\n            ...\n            - {type: Resize, size: [320, 320], }\n            ...\n        collate_fn:\n          base_size: 320\n          ...\n\n    val_dataloader:\n      dataset:\n        transforms:\n          ops:\n            - {type: Resize, size: [320, 320], }\n            ...\n    ```\n   \n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 3.4 (可选) 自定义训练轮数 \u003C\u002Fsummary>\n\n如果您想对 **DEIMv2-S** 进行微调，训练 **20** 个轮次，请按照以下步骤操作（仅供参考；可根据实际需求进行调整）：\n\n```yml\nepoches: 32 # 总轮次：20轮训练 + EMA用于4n = 12。n指匹配配置中的模型规模。\n\nflat_epoch: 14    # 4 + 20 \u002F\u002F 2\nno_aug_epoch: 12  # 4n\n\ntrain_dataloader:\n  dataset: \n    transforms:\n      ops:\n        ...\n      policy:\n        epoch: [4, 14, 20]   # [起始轮次、平稳轮次、总轮次 - 无增强轮次]\n\n  collate_fn:\n    ...\n    mixup_epochs: [4, 14]  # [起始轮次、平稳轮次]\n    stop_epoch: 20  # 总轮次 - 无增强轮次\n    copyblend_epochs: [4, 20]  # [起始轮次、总轮次 - 无增强轮次]\n  \nDEIMCriterion:\n  matcher:\n    ...\n    matcher_change_epoch: 18  # 约为(总轮次 - 无增强轮次)的90%\n```\n\n\u003C\u002Fdetails>\n\n## 4. 工具\n\u003Cdetails>\n\u003Csummary> 4.1 部署 \u003C\u002Fsummary>\n\n1. 环境准备\n    ```shell\n    pip install onnx onnxsim\n    ```\n\n2. 导出 ONNX 模型\n    ```shell\n    python tools\u002Fdeployment\u002Fexport_onnx.py --check -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth\n    ```\n\n3. 导出 TensorRT 引擎\n    ```shell\n    trtexec --onnx=\"model.onnx\" --saveEngine=\"model.engine\" --fp16\n    ```\n\n⚠️ **TensorRT 版本说明**\n\n- ✅ 推荐：**使用 TensorRT ≥ 10.6 进行 FP16 推理**，以确保运行稳定并获得正确的检测结果。\n\n- ❗ 已知问题：在 TensorRT 10.4 中，FP16 推理可能会产生错误的输出。\n\n- 🔧 旧版本（如 10.4）的解决方法：\n\n  - 以 FP32 模式运行推理，或\n\n  - 仔细验证导出的引擎及端到端流程，以确认数值正确性和检测性能。\n\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.2 推理（可视化） \u003C\u002Fsummary>\n\n\n1. 环境准备\n    ```shell\n    pip install -r tools\u002Finference\u002Frequirements.txt\n    ```\n\n\n2. 推理（onnxruntime \u002F tensorrt \u002F torch）\n\n    现已支持对图像和视频进行推理。\n\n    ```shell\n    python tools\u002Finference\u002Fonnx_inf.py --onnx model.onnx --input image.jpg  # video.mp4\n    python tools\u002Finference\u002Ftrt_inf.py --trt model.engine --input image.jpg\n    python tools\u002Finference\u002Ftorch_inf.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth --input image.jpg --device cuda:0\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.3 基准测试 \u003C\u002Fsummary>\n\n1. 环境准备\n    ```shell\n    pip install -r tools\u002Fbenchmark\u002Frequirements.txt\n    ```\n\n2. 模型 FLOPs、MACs 和参数量\n    ```shell\n    python tools\u002Fbenchmark\u002Fget_info.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml\n    ```\n\n2. TensorRT 延迟\n    ```shell\n    python tools\u002Fbenchmark\u002Ftrt_benchmark.py --COCO_dir path\u002Fto\u002FCOCO2017 --engine_dir model.engine\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.4 Fiftyone 可视化 \u003C\u002Fsummary>\n\n1. 环境准备\n    ```shell\n    pip install fiftyone\n    ```\n2. Voxel51 Fiftyone 可视化（[fiftyone](https:\u002F\u002Fgithub.com\u002Fvoxel51\u002Ffiftyone)）\n    ```shell\n    python tools\u002Fvisualization\u002Ffiftyone_vis.py -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_${model}_coco.yml -r model.pth\n    ```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary> 4.5 其他 \u003C\u002Fsummary>\n\n1. 自动恢复训练\n    ```shell\n    bash reference\u002Fsafe_training.sh\n    ```\n\n2. 转换模型权重\n    ```shell\n    python reference\u002Fconvert_weight.py model.pth\n    ```\n\u003C\u002Fdetails>\n\n\n## 5. 引用\n如果您在工作中使用了 `DEIMv2` 或其相关方法，请引用以下 BibTeX 条目：\n\n```latex\n@article{huang2025deimv2,\n  title={实时目标检测与 DINOv3 的结合},\n  author={Huang, Shihua and Hou, Yongjie and Liu, Longfei and Yu, Xuanlong and Shen, Xi},\n  journal={arXiv},\n  year={2025}\n}\n```\n\n## 6. 致谢\n我们的工作基于 [LightlyTrain](https:\u002F\u002Fgithub.com\u002Flightly-ai\u002Flightly-train)、[D-FINE](https:\u002F\u002Fgithub.com\u002FPeterande\u002FD-FINE)、[RT-DETR](https:\u002F\u002Fgithub.com\u002Flyuwenyu\u002FRT-DETR)、[DEIM](https:\u002F\u002Fgithub.com\u002FShihuaHuang95\u002FDEIM) 和 [DINOv3](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdinov3)。感谢他们的杰出贡献！\n\n✨ 欢迎大家参与贡献，如有任何问题，欢迎随时联系我们！ ✨\n\n## 7. 星标历史\n\n[![星标历史图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_readme_090324537b24.png)](https:\u002F\u002Fwww.star-history.com\u002F#Intellindust-AI-Lab\u002FDEIMv2&Date)","# DEIMv2 快速上手指南\n\nDEIMv2 是一款结合 DINOv3 强大特征的实时目标检测框架，提供从超轻量级 (Atto) 到超大模型 (X) 的多种尺寸选择，在 COCO 基准测试中实现了业界领先的性能（S 型号 AP 超过 50）。\n\n## 1. 环境准备\n\n### 系统要求\n- **Python**: 推荐 3.11\n- **PyTorch**: 推荐 2.5.1 或 2.4.1（需 ≥ 2.0）\n- **GPU**: 支持 CUDA 的 NVIDIA 显卡（用于训练和加速推理）\n\n### 前置依赖\n确保已安装 `conda` 或 `pip` 包管理工具。\n\n## 2. 安装步骤\n\n### 2.1 创建虚拟环境并安装依赖\n```shell\nconda create -n deimv2 python=3.11 -y\nconda activate deimv2\npip install -r requirements.txt\n```\n> **提示**：国内用户建议使用清华源或阿里源加速安装：\n> ```shell\n> pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 2.2 数据准备（以 COCO2017 为例）\n1. 下载数据集：从 [OpenDataLab](https:\u002F\u002Fopendatalab.com\u002FOpenDataLab\u002FCOCO_2017) 或 [COCO 官网](https:\u002F\u002Fcocodataset.org\u002F#download) 下载 COCO2017。\n2. 修改配置文件 `configs\u002Fdataset\u002Fcoco_detection.yml` 中的路径：\n   ```yaml\n   train_dataloader:\n       img_folder: \u002Fdata\u002FCOCO2017\u002Ftrain2017\u002F\n       ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_train2017.json\n   val_dataloader:\n       img_folder: \u002Fdata\u002FCOCO2017\u002Fval2017\u002F\n       ann_file: \u002Fdata\u002FCOCO2017\u002Fannotations\u002Finstances_val2017.json\n   ```\n\n## 3. 基本使用\n\n### 3.1 通过 Hugging Face 快速加载模型\nDEIMv2 已将模型上传至 Hugging Face，可直接调用。以下是最小化使用示例：\n\n```python\nimport torch.nn as nn\nfrom huggingface_hub import PyTorchModelHubMixin\n\nfrom engine.backbone import HGNetv2, DINOv3STAs\nfrom engine.deim import HybridEncoder, LiteEncoder\nfrom engine.deim import DFINETransformer, DEIMTransformer\nfrom engine.deim.postprocessor import PostProcessor\n\n\nclass DEIMv2(nn.Module, PyTorchModelHubMixin):\n    def __init__(self, config):\n        super().__init__()\n        self.backbone = DINOv3STAs(**config[\"DINOv3STAs\"])\n        self.encoder = HybridEncoder(**config[\"HybridEncoder\"])\n        self.decoder = DEIMTransformer(**config[\"DEIMTransformer\"])\n        self.postprocessor = PostProcessor(**config[\"PostProcessor\"])\n\n    def forward(self, x, orig_target_sizes):\n        x = self.backbone(x)\n        x = self.encoder(x)\n        x = self.decoder(x)\n        x = self.postprocessor(x, orig_target_sizes)\n        return x\n\n# 定义配置 (此处省略具体配置字典，请参考 hf_models.ipynb)\ndeimv2_s_config = {\n  \"DINOv3STAs\": { ... },\n  # ... 其他配置\n}\n\n# 直接从 Hugging Face 加载预训练模型 (S 型号)\ndeimv2_s_hf = DEIMv2.from_pretrained(\"Intellindust\u002FDEIMv2_DINOv3_S_COCO\")\n```\n\n### 3.2 模型选择建议\n根据算力需求选择合适的模型版本：\n\n| 模型型号 | 参数量 | GFLOPs | COCO AP | 适用场景 |\n| :--- | :--- | :--- | :--- | :--- |\n| **Atto** | 0.5M | 0.8 | 23.8 | 极端边缘设备 |\n| **Femto** | 1.0M | 1.7 | 31.0 | 移动端\u002F嵌入式 |\n| **Pico** | 1.5M | 5.2 | 38.5 | 轻量级应用 |\n| **S** | 9.7M | 25.6 | 50.9 | 通用服务器\u002F高精度边缘 |\n| **M\u002FL\u002FX** | 18M+ | 52+ | 53.0+ | 云端高精度任务 |\n\n> **注意**：若进行 FP16 推理部署，请确保使用 **TensorRT ≥ 10.6** 以保证执行稳定性和结果正确性。","某智慧物流园区的技术团队正致力于升级其自动化分拣系统，需要在高速传送带上实时识别并定位各类形状不规则的包裹及潜在破损。\n\n### 没有 DEIMv2 时\n- **检测精度不足**：传统轻量级模型在处理重叠包裹或模糊图像时漏检率高，导致分拣错误频发。\n- **实时性瓶颈**：为了满足高帧率需求被迫压缩模型，牺牲了特征提取能力，无法在边缘设备上兼顾速度与准确率。\n- **多任务部署复杂**：若需同时实现包裹检测与姿态估计（如机械臂抓取点），往往需要部署多个独立模型，占用大量显存与算力。\n- **小目标识别困难**：对于传送带远处的小型标签或异物，现有模型难以捕捉有效特征，AP 值长期停滞在较低水平。\n\n### 使用 DEIMv2 后\n- **精度显著跃升**：借助 DINOv3 的强大特征表示，DEIMv2 的 S 尺寸模型在 COCO 基准上突破 50 AP，精准识别重叠与模糊包裹。\n- **端侧实时运行**：专为边缘场景设计的 ultra-light 至 X 多种尺寸，让高精度检测能在低算力设备上流畅运行，无需妥协帧率。\n- **多任务一体化**：单一模型即可同时完成物体检测、实例分割及人体\u002F物体姿态估计，大幅简化了机械臂抓取系统的架构。\n- **小目标无所遁形**：增强的注意力机制显著提升了对细小标签和异物的感知能力，彻底解决了远距离小目标漏检难题。\n\nDEIMv2 成功打破了实时性与高精度的对立，让边缘设备也能拥有媲美大型模型的视觉感知能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FIntellindust-AI-Lab_DEIMv2_c22690a2.png","Intellindust-AI-Lab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FIntellindust-AI-Lab_387d9b45.png","INTELLINDUST INFORMATION TECHNOLOGY (SHENZHEN) CO., LTD",null,"shenxiluc@gmail.com","https:\u002F\u002Fintellindust-ai-lab.github.io\u002F","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab",[80,84,88],{"name":81,"color":82,"percentage":83},"Jupyter Notebook","#DA5B0B",50.9,{"name":85,"color":86,"percentage":87},"Python","#3572A5",48.8,{"name":89,"color":90,"percentage":91},"Shell","#89e051",0.2,1684,180,"2026-04-17T14:52:36","NOASSERTION","未说明","需要 NVIDIA GPU (隐含，因提及 TensorRT)，FP16 推理需 TensorRT ≥ 10.6",{"notes":99,"python":100,"dependencies":101},"1. PyTorch 版本建议使用 2.5.1 或 2.4.1，必须高于 2.0。2. 进行 FP16 推理时，必须使用 TensorRT 10.6 或更高版本以确保执行稳定和检测结果正确。3. 模型提供多种尺寸（Atto, Femto, Pico, N, S, M, L, X），可根据场景选择。4. 需自行准备 COCO2017 数据集或按 COCO 格式整理自定义数据集。","3.11 (推荐), >=3.8 (隐含)",[102,103],"torch>=2.4.1","requirements.txt 中列出的其他库",[15,35],[106,107,108,109,110],"detection-transformer","dinov3","object-detection","real-time","real-time-detection","2026-03-27T02:49:30.150509","2026-04-18T14:13:36.747281",[114,119,124,129,134,139],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},39832,"从 PyTorch 导出 ONNX 模型时报错 \"Sub_1_output_0 is undefined\" 如何解决？","该错误通常发生在模型简化阶段。建议不要使用默认的 onnxsim，而是改用 [onnxslim](https:\u002F\u002Fgithub.com\u002Finisis\u002FOnnxSlim) 工具来优化模型。\n具体步骤如下：\n1. 先正常导出 ONNX 模型：\n```bash\npython tools\u002Fdeployment\u002Fexport_onnx.py --check -c configs\u002Fdeimv2\u002Fdeimv2_dinov3_l_coco.yml\n```\n2. 使用 onnxslim 进行简化（设置 size-threshold）：\n```bash\nonnxslim model.onnx slim.onnx --size-threshold 100\n```\n此外，如果需要导出 FP16 模型或处理动态 Batch，可以参考项目中的详细脚本流程，结合 `--fp16`、`--dynamic_batch` 参数以及 onnxsim 的 `--overwrite-input-shape` 选项进行处理。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F17",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},39833,"使用多卡（如 8 张 GPU）训练时程序卡死或被系统杀死怎么办？","这通常是因为数据集中存在大量背景图像（无目标图像）。当某个 Batch 中的所有图像都是背景图时，会导致训练进程出错或卡死。这种情况在单类别数据集或背景图较多的自定义数据集中尤为常见。\n解决方案是调整数据加载策略，确保每个 Batch 中至少包含一张含有目标的样本。可以通过修改 DataLoader 的逻辑或检查数据集标注来避免全背景 Batch 的出现。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F6",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},39834,"修改输入图像尺寸（如改为 960）后出现维度不匹配错误（RuntimeError: size mismatch）如何解决？","修改输入尺寸时，必须同步修改配置文件中的 `collate_fn` 参数，否则会导致维度不匹配。\n请在配置文件中找到并修改以下部分：\n```yaml\ncollate_fn:\n    type: BatchImageCollateFunction\n    base_size: 960  # 将其修改为你设定的输入尺寸，默认为 640\n```\n注意：虽然前端看似支持任意尺寸输入，但网络内部某些层（如固定大小的池化层或预设感受野的模块）可能对特征图尺寸有隐式约束。如果尺寸过大，仍可能引发错误或显存溢出，需根据实际效果调整。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F13",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},39835,"TensorRT FP16 推理结果与 Torch\u002FONNX 偏差较大，精度下降严重怎么办？","这是一个已知的兼容性问题，特别是在旧版本的 TensorRT 中。用户反馈在使用 TensorRT 10.4 时会出现检测不到物体或精度大幅下降的情况。\n解决方案是将 TensorRT 升级到最新版本（如 10.6 或更高）。升级后，FP16 推理的精度问题通常能得到解决，结果可与 FP32 或其他框架对齐。如果无法升级，可暂时使用 `noTF32` 模式或坚持使用 FP32 精度进行推理。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F112",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},39836,"使用 torchrun 进行多卡训练时，初始化后挂起并报错 \"NCCL watchdog stuck\" 如何解决？","这是 NCCL 通信超时导致的常见问题，通常与 P2P 通信有关。\n解决方法是在运行训练命令前，设置环境变量禁用 NCCL P2P 通信：\n```bash\nexport NCCL_P2P_DISABLE=1\n```\n然后重新运行你的 `torchrun` 命令即可。\n关于超参数：如果切换多卡训练时保持 `total_batch_size`（总批次大小）不变，通常不需要调整学习率等其他超参数。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F137",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},39837,"DEIMv2 论文中提到的 \"distill compact backbones\"（蒸馏紧凑骨干网）具体是指什么方法？","这是指将大型模型（如 ViT-Small DINOv3）的知识迁移到小型模型（如 ViT-Tiny 或 ViT-Tiny+）的过程。\n具体做法是：保留小模型的层数深度（例如 12 层），但减小其隐藏层维度（hidden dimensions，例如减至 192 或 256），然后通过蒸馏技术让这个小模型学习大模型的特征表示能力。这种方法旨在在显著减少参数量和计算量的同时，尽可能保留大模型的性能表现，从而获得更轻量级的 S 和 M 版本模型。","https:\u002F\u002Fgithub.com\u002FIntellindust-AI-Lab\u002FDEIMv2\u002Fissues\u002F127",[]]