[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-longzw1997--Open-GroundingDino":3,"tool-longzw1997--Open-GroundingDino":62},[4,18,26,35,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},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,2,"2026-04-08T11:23:26",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"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",[43,15,13,14],"语言模型",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},5646,"opencv","opencv\u002Fopencv","OpenCV 是一个功能强大的开源计算机视觉库，被誉为机器视觉领域的“瑞士军刀”。它主要解决让计算机“看懂”图像和视频的核心难题，提供了从基础的图像读取、色彩转换、边缘检测，到复杂的人脸识别、物体追踪、3D 重建及深度学习模型部署等全方位算法支持。无论是处理静态图片还是分析实时视频流，OpenCV 都能高效完成特征提取与模式识别任务。\n\n这款工具特别适合计算机视觉开发者、人工智能研究人员以及机器人工程师使用。对于希望将视觉感知能力集成到应用中的软件工程师，或是需要快速验证算法原型的学术研究者，OpenCV 都是不可或缺的基础设施。虽然普通用户通常不会直接操作代码，但日常生活中使用的扫码支付、美颜相机和自动驾驶系统，背后往往都有它的身影。\n\nOpenCV 的独特亮点在于其卓越的性能与广泛的兼容性。它采用 C++ 编写以确保高速运算，同时提供 Python、Java 等多种语言接口，极大降低了开发门槛。库中内置了数千种优化算法，并支持跨平台运行，能够无缝对接各类硬件加速器。作为社区驱动的项目，OpenCV 拥有活跃的生态系统和丰富的学习资源，持续推动着视觉技术的前沿发展。",86988,1,"2026-04-08T16:06:22",[14,15],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":76,"owner_twitter":76,"owner_website":79,"owner_url":80,"languages":81,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":102,"env_os":103,"env_gpu":104,"env_ram":103,"env_deps":105,"category_tags":112,"github_topics":113,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":118,"updated_at":119,"faqs":120,"releases":151},5644,"longzw1997\u002FOpen-GroundingDino","Open-GroundingDino","This is the third party implementation of the paper Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection.","Open-GroundingDino 是经典论文《Grounding DINO》的第三方开源实现，旨在为开放集物体检测提供灵活的训练与推理方案。它核心解决了官方版本仅支持推理、缺乏完整训练代码的痛点，让开发者能够基于自有数据集对模型进行微调，甚至从零开始预训练。\n\n这款工具特别适合人工智能研究人员和算法工程师使用，尤其是那些需要处理多模态数据（如结合图像与文本描述）或希望在特定领域定制检测模型的专业人士。与普通用户不同，使用者需要具备一定的深度学习环境配置能力，以便完成依赖安装和数据格式转换。\n\n其独特的技术亮点在于全面的支持能力：不仅兼容物体检测（OD）和视觉定位（VG）两种数据的训练，还原生支持 Slurm 多机分布式训练及多种加速策略，显著提升了大规模数据下的训练效率。此外，它设计了统一的 ODVG 数据格式，方便用户混合加载 COCO、LVIS、Objects365 等多种主流数据集。通过 Open-GroundingDino，社区得以更自由地探索 grounded pre-training 技术，推动开放集检测任务在实际场景中的落地应用。","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_2aaf45d9e0c9.png\" width=\"35%\">\n\u003C\u002Fdiv>\n\nThis is the third party implementation of the paper **[Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.05499)** by [Zuwei Long]() and [Wei Li](https:\u002F\u002Fgithub.com\u002Fbigballon).\n\n**You can use this code to fine-tune a model on your own dataset, or start pretraining a model from scratch.**\n\n- [Supported Features](#supported-features)\n- [Setup](#setup)\n- [Dataset](#dataset)\n- [Config](#config)\n- [Training](#training)\n- [Results and Models](#results-and-models)\n- [Inference](#inference)\n- [Acknowledgments](#acknowledgments)\n- [Citation](#citation)\n- [Contact](#contact)\n\n# Supported Features\n\n|                                | Official release version | The version we replicated |\n| ------------------------------ | :----------------------: | :-----------------------: |\n| Inference                      |         &#10004;         |         &#10004;          |\n| Train (Object Detection data) |         &#10006;         |         &#10004;          |\n| Train (Grounding data)         |         &#10006;         |         &#10004;          |\n| Slurm multi-machine support    |         &#10006;         |         &#10004;          |\n| Training acceleration strategy |         &#10006;         |         &#10004;          |\n\n\n\n# Setup\n\nWe conduct our model testing using the following versions: Python 3.7.11, PyTorch 1.11.0, and CUDA 11.3. It is possible that other versions are also available.\n\n1. Clone this repository.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino.git && cd Open-GroundingDino\u002F\n```\n\n2. Install the required dependencies.\n\n```bash\npip install -r requirements.txt \ncd models\u002FGroundingDINO\u002Fops\npython setup.py build install\npython test.py\ncd ..\u002F..\u002F..\n```\n\n3. Download [pre-trained model](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO\u002Freleases) and [BERT](https:\u002F\u002Fhuggingface.co\u002Fbert-base-uncased) weights, then modify the corresponding paths in the train\u002Ftest script.\n\n# Dataset\n\nFor **training**, we use the [odvg data format](data_format.md) to support **both OD data and VG data**.  \nBefore model training begins, you need to convert your dataset into odvg format, see [data_format.md](data_format.md) | [datasets_mixed_odvg.json](config\u002Fdatasets_mixed_odvg.json) | [coco2odvg.py](.\u002Ftools\u002Fcoco2odvg.py) | [grit2odvg](.\u002Ftools\u002Fgrit2odvg.py) for more details.  \n\nFor **testing**, we use [coco format](https:\u002F\u002Fcocodataset.org\u002F#format-data), which currently only supports OD datasets.\n\n\u003Cdetails>\n  \u003Csummary>mixed dataset\u003C\u002Fsummary>\n  \u003C\u002Fbr>\n\n``` json\n{\n  \"train\": [\n    {\n      \"root\": \"path\u002FV3Det\u002F\",\n      \"anno\": \"path\u002FV3Det\u002Fannotations\u002Fv3det_2023_v1_all_odvg.jsonl\",\n      \"label_map\": \"path\u002FV3Det\u002Fannotations\u002Fv3det_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FLVIS\u002Ftrain2017\u002F\",\n      \"anno\": \"path\u002FLVIS\u002Fannotations\u002Flvis_v1_train_odvg.jsonl\",\n      \"label_map\": \"path\u002FLVIS\u002Fannotations\u002Flvis_v1_train_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FObjects365\u002Ftrain\u002F\",\n      \"anno\": \"path\u002FObjects365\u002Fobjects365_train_odvg.json\",\n      \"label_map\": \"path\u002FObjects365\u002Fobjects365_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002Fcoco_2017\u002Ftrain2017\u002F\",\n      \"anno\": \"path\u002Fcoco_2017\u002Fannotations\u002Fcoco2017_train_odvg.jsonl\",\n      \"label_map\": \"path\u002Fcoco_2017\u002Fannotations\u002Fcoco2017_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FGRIT-20M\u002Fdata\u002F\",\n      \"anno\": \"path\u002FGRIT-20M\u002Fanno\u002Fgrit_odvg_620k.jsonl\",\n      \"dataset_mode\": \"odvg\"\n    }, \n    {\n      \"root\": \"path\u002Fflickr30k\u002Fimages\u002Fflickr30k_images\u002F\",\n      \"anno\": \"path\u002Fflickr30k\u002Fannotations\u002Fflickr30k_entities_odvg_158k.jsonl\",\n      \"dataset_mode\": \"odvg\"\n    }\n  ],\n  \"val\": [\n    {\n      \"root\": \"path\u002Fcoco_2017\u002Fval2017\",\n      \"anno\": \"config\u002Finstances_val2017.json\",\n      \"label_map\": null,\n      \"dataset_mode\": \"coco\"\n    }\n  ]\n}\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>example for odvg dataset\u003C\u002Fsummary>\n  \u003C\u002Fbr>\n\n``` bash\n# For OD\n{\"filename\": \"000000391895.jpg\", \"height\": 360, \"width\": 640, \"detection\": {\"instances\": [{\"bbox\": [359.17, 146.17, 471.62, 359.74], \"label\": 3, \"category\": \"motorcycle\"}, {\"bbox\": [339.88, 22.16, 493.76, 322.89], \"label\": 0, \"category\": \"person\"}, {\"bbox\": [471.64, 172.82, 507.56, 220.92], \"label\": 0, \"category\": \"person\"}, {\"bbox\": [486.01, 183.31, 516.64, 218.29], \"label\": 1, \"category\": \"bicycle\"}]}}\n{\"filename\": \"000000522418.jpg\", \"height\": 480, \"width\": 640, \"detection\": {\"instances\": [{\"bbox\": [382.48, 0.0, 639.28, 474.31], \"label\": 0, \"category\": \"person\"}, {\"bbox\": [234.06, 406.61, 454.0, 449.28], \"label\": 43, \"category\": \"knife\"}, {\"bbox\": [0.0, 316.04, 406.65, 473.53], \"label\": 55, \"category\": \"cake\"}, {\"bbox\": [305.45, 172.05, 362.81, 249.35], \"label\": 71, \"category\": \"sink\"}]}}\n\n# For VG\n{\"filename\": \"014127544.jpg\", \"height\": 400, \"width\": 600, \"grounding\": {\"caption\": \"Homemade Raw Organic Cream Cheese for less than half the price of store bought! It's super easy and only takes 2 ingredients!\", \"regions\": [{\"bbox\": [5.98, 2.91, 599.5, 396.55], \"phrase\": \"Homemade Raw Organic Cream Cheese\"}]}}\n{\"filename\": \"012378809.jpg\", \"height\": 252, \"width\": 450, \"grounding\": {\"caption\": \"naive : Heart graphics in a notebook background\", \"regions\": [{\"bbox\": [93.8, 47.59, 126.19, 77.01], \"phrase\": \"Heart graphics\"}, {\"bbox\": [2.49, 1.44, 448.74, 251.1], \"phrase\": \"a notebook background\"}]}}\n```\n\u003C\u002Fdetails>\n\n# Config\n\n```\nconfig\u002Fcfg_odvg.py                   # for backbone, batch size, LR, freeze layers, etc.\nconfig\u002Fdatasets_mixed_odvg.json      # support mixed dataset for both OD and VG\n```\n\n# Training\n\n- **Datasets:** before starting the training, you need to modify the ``config\u002Fdatasets_mixed_example.json`` according to [data_format.md](data_format.md).\n- **Configs:** defaults to using coco_val2017 for evaluation.\n    - If you are evaluating with your own test set, you need to convert the test data to coco format (not the ovdg format) and modify the config to set **use_coco_eval = False** (The COCO dataset has 80 classes used for training but 90 categories in total, so there is a built-in mapping in the code).\n    - Also, add(or update) the **label_list** in the config with your own class names like **label_list=['dog', 'cat', 'person']**.\n\n``` diff\n- use_coco_eval = True\n+ use_coco_eval = False\n+ label_list=['dog', 'cat', 'person']\n```\n- **Train\u002FEval**:\n\n```  bash\n# train\u002Feval on torch.distributed.launch:\nbash train_dist.sh  ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\nbash test_dist.sh  ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\n\n# train\u002Feval on slurm cluster：\nbash train_slurm.sh  ${PARTITION} ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\nbash test_slurm.sh  ${PARTITION} ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\n# e.g.  check train_slurm.sh for more details\n# bash train_slurm.sh v100_32g 32 config\u002Fcfg_odvg.py config\u002Fdatasets_mixed_odvg.json .\u002Flogs\n# bash train_slurm.sh v100_32g 8 config\u002Fcfg_coco.py config\u002Fdatasets_od_example.json .\u002Flogs\n```\n\n\n# Results and Models\n\n\u003Ctable style=\"font-size:11px;\" >\n  \u003Cthead>\n    \u003Ctr style=\"text-align: right;\">\n      \u003Cth>Name\u003C\u002Fth>\n      \u003Cth>Pretrain data\u003C\u002Fth>\n      \u003Cth>Task\u003C\u002Fth>\n      \u003Cth>mAP on COCO\u003C\u002Fth>\n      \u003Cth>Ckpt\u003C\u002Fth>\n      \u003Cth>Misc\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(offical)\u003C\u002Ftd>\n      \u003Ctd>O365,GoldG,Cap4M\u003C\u002Ftd>\n      \u003Ctd>zero-shot\u003C\u002Ftd>\n      \u003Ctd>48.4\u003Cbr>(zero-shot)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO\u002Freleases\u002Fdownload\u002Fv0.1.0-alpha\u002Fgroundingdino_swint_ogc.pth\">model\u003C\u002Fa> \n      \u003Ctd> - \u003C\u002Ftd>\n    \u003C\u002Ftr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(fine-tune)\u003C\u002Ftd>\n      \u003Ctd>O365,GoldG,Cap4M\u003C\u002Ftd>\n      \u003Ctd>finetune\u003Cbr>w\u002F coco\u003C\u002Ftd>\n      \u003Ctd>\u003Cb>57.3\u003C\u002Fb>\u003Cbr>(fine-tune)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Freleases\u002Fdownload\u002Fv0.1.0\u002Fgdinot-coco-ft.pth\">model\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1TJRAiBbVwj3AfxvQAoi1tmuRfXH1hLie\u002Fview?usp=drive_link\">cfg\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1u8XyvBug56SrJY85UtMZFPKUIzV3oNV6\u002Fview?usp=drive_link\">log\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(pretrain)\u003C\u002Ftd>\n      \u003Ctd>COCO,O365,LIVS,\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FV3Det\u002FV3Det\">V3Det\u003C\u002Fa>,\u003Cbr>GRIT-200K,\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBryanPlummer\u002Fflickr30k_entities\">Flickr30k\u003C\u002Fa>(total 1.8M)\u003C\u002Ftd>\n      \u003Ctd>zero-shot\u003C\u002Ftd>\n      \u003Ctd>\u003Cb>55.1\u003C\u002Fb>\u003Cbr>(zero-shot)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Freleases\u002Fdownload\u002Fv0.1.0\u002Fgdinot-1.8m-odvg.pth\">model\u003C\u002Fa>  \n      \u003Ctd>\u003Ca href='https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1LwtkvBHkP1OkErKBsVfwjcedVXkyocA5\u002Fview?usp=drive_link'>cfg\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1kBEFk14OqcYHC7DPdA_BGtk2TBQkJtrL\u002Fview?usp=drive_link\">log\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n- [GRIT](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fzzliang\u002FGRIT)-200K generated by [GLIP](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGLIP) and [spaCy](https:\u002F\u002Fspacy.io\u002F).\n\n\n# Inference\n\nBecause the model architecture has not changed, you only need to **install** [GroundingDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO) library and then run [inference_on_a_image.py](.\u002Ftools\u002Finference_on_a_image.py) to inference your images.\n\n``` bash\npython tools\u002Finference_on_a_image.py \\\n  -c tools\u002FGroundingDINO_SwinT_OGC.py \\\n  -p path\u002Fto\u002Fyour\u002Fckpt.pth \\\n  -i .\u002Ffigs\u002Fdog.jpeg \\\n  -t \"dog\" \\\n  -o output\n```\n\n| Prompt |        Official ckpt         |        COCO ckpt         |        1.8M ckpt         |\n| :----: | :--------------------------: | :----------------------: | :----------------------: |\n|  dog   | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_c950ee4e38b4.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_41c928aad2fb.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_3dda8a5ec91c.jpg) |\n|  cat   | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_3feba81d276f.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_1ba2fc6891e7.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_79a102193b2c.jpg) |\n\n# Acknowledgments\n\nProvided codes were adapted from:\n\n- [microsoft\u002FGLIP](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGLIP)\n- [IDEA-Research\u002FDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FDINO\u002F)\n- [IDEA-Research\u002FGroundingDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO)\n\n\n# Citation\n\n```\n@misc{Open Grounding Dino,\n  author = {Zuwei Long, Wei Li},\n  title = {Open Grounding Dino:The third party implementation of the paper Grounding DINO},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino}},\n  year = {2023}\n}\n```\n\n# Contact\n\n- longzuwei at sensetime.com  \n- liwei1 at sensetime.com  \n\nFeel free to contact we if you have any suggestions or questions. Bugs found are also welcome. Please create a pull request if you find any bugs or want to contribute code.\n","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_2aaf45d9e0c9.png\" width=\"35%\">\n\u003C\u002Fdiv>\n\n这是由 [Zuwei Long]() 和 [Wei Li](https:\u002F\u002Fgithub.com\u002Fbigballon) 发表的论文 **[Grounding DINO: 将 DINO 与接地预训练结合用于开放集目标检测](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.05499)** 的第三方实现。\n\n**您可以使用此代码在自己的数据集上微调模型，或从头开始进行预训练。**\n\n- [支持的功能](#supported-features)\n- [设置](#setup)\n- [数据集](#dataset)\n- [配置](#config)\n- [训练](#training)\n- [结果与模型](#results-and-models)\n- [推理](#inference)\n- [致谢](#acknowledgments)\n- [引用](#citation)\n- [联系方式](#contact)\n\n# 支持的功能\n\n|                                | 官方发布版本 | 我们复现的版本 |\n| ------------------------------ | :----------------------: | :-----------------------: |\n| 推理                      |         &#10004;         |         &#10004;          |\n| 训练（目标检测数据） |         &#10006;         |         &#10004;          |\n| 训练（接地数据）         |         &#10006;         |         &#10004;          |\n| Slurm 多机支持    |         &#10006;         |         &#10004;          |\n| 训练加速策略 |         &#10006;         |         &#10004;          |\n\n\n\n# 设置\n\n我们使用以下版本进行模型测试：Python 3.7.11、PyTorch 1.11.0 和 CUDA 11.3。其他版本也可能适用。\n\n1. 克隆本仓库。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino.git && cd Open-GroundingDino\u002F\n```\n\n2. 安装所需的依赖项。\n\n```bash\npip install -r requirements.txt \ncd models\u002FGroundingDINO\u002Fops\npython setup.py build install\npython test.py\ncd ..\u002F..\u002F..\n```\n\n3. 下载 [预训练模型](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO\u002Freleases) 和 [BERT](https:\u002F\u002Fhuggingface.co\u002Fbert-base-uncased) 权重，然后修改训练\u002F测试脚本中的相应路径。\n\n# 数据集\n\n对于 **训练**，我们使用 [odvg 数据格式](data_format.md)，以支持 **OD 数据和 VG 数据**。  \n在开始模型训练之前，您需要将数据集转换为 odvg 格式，详情请参阅 [data_format.md](data_format.md) | [datasets_mixed_odvg.json](config\u002Fdatasets_mixed_odvg.json) | [coco2odvg.py](.\u002Ftools\u002Fcoco2odvg.py) | [grit2odvg](.\u002Ftools\u002Fgrit2odvg.py)。  \n\n对于 **测试**，我们使用 [coco 格式](https:\u002F\u002Fcocodataset.org\u002F#format-data)，目前仅支持 OD 数据集。\n\n\u003Cdetails>\n  \u003Csummary>混合数据集\u003C\u002Fsummary>\n  \u003C\u002Fbr>\n\n``` json\n{\n  \"train\": [\n    {\n      \"root\": \"path\u002FV3Det\u002F\",\n      \"anno\": \"path\u002FV3Det\u002Fannotations\u002Fv3det_2023_v1_all_odvg.jsonl\",\n      \"label_map\": \"path\u002FV3Det\u002Fannotations\u002Fv3det_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FLVIS\u002Ftrain2017\u002F\",\n      \"anno\": \"path\u002FLVIS\u002Fannotations\u002Flvis_v1_train_odvg.jsonl\",\n      \"label_map\": \"path\u002FLVIS\u002Fannotations\u002Flvis_v1_train_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FObjects365\u002Ftrain\u002F\",\n      \"anno\": \"path\u002FObjects365\u002Fobjects365_train_odvg.json\",\n      \"label_map\": \"path\u002FObjects365\u002Fobjects365_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002Fcoco_2017\u002Ftrain2017\u002F\",\n      \"anno\": \"path\u002Fcoco_2017\u002Fannotations\u002Fcoco2017_train_odvg.jsonl\",\n      \"label_map\": \"path\u002Fcoco_2017\u002Fannotations\u002Fcoco2017_label_map.json\",\n      \"dataset_mode\": \"odvg\"\n    },\n    {\n      \"root\": \"path\u002FGRIT-20M\u002Fdata\u002F\",\n      \"anno\": \"path\u002FGRIT-20M\u002Fanno\u002Fgrit_odvg_620k.jsonl\",\n      \"dataset_mode\": \"odvg\"\n    }, \n    {\n      \"root\": \"path\u002Fflickr30k\u002Fimages\u002Fflickr30k_images\u002F\",\n      \"anno\": \"path\u002Fflickr30k\u002Fannotations\u002Fflickr30k_entities_odvg_158k.jsonl\",\n      \"dataset_mode\": \"odvg\"\n    }\n  ],\n  \"val\": [\n    {\n      \"root\": \"path\u002Fcoco_2017\u002Fval2017\",\n      \"anno\": \"config\u002Finstances_val2017.json\",\n      \"label_map\": null,\n      \"dataset_mode\": \"coco\"\n    }\n  ]\n}\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n  \u003Csummary>odvg 数据集示例\u003C\u002Fsummary>\n  \u003C\u002Fbr>\n\n``` bash\n# 对于 OD\n{\"filename\": \"000000391895.jpg\", \"height\": 360, \"width\": 640, \"detection\": {\"instances\": [{\"bbox\": [359.17, 146.17, 471.62, 359.74], \"label\": 3, \"category\": \"摩托车\"}, {\"bbox\": [339.88, 22.16, 493.76, 322.89], \"label\": 0, \"category\": \"人\"}, {\"bbox\": [471.64, 172.82, 507.56, 220.92], \"label\": 0, \"category\": \"人\"}, {\"bbox\": [486.01, 183.31, 516.64, 218.29], \"label\": 1, \"category\": \"自行车\"}]}}\n{\"filename\": \"000000522418.jpg\", \"height\": 480, \"width\": 640, \"detection\": {\"instances\": [{\"bbox\": [382.48, 0.0, 639.28, 474.31], \"label\": 0, \"category\": \"人\"}, {\"bbox\": [234.06, 406.61, 454.0, 449.28], \"label\": 43, \"category\": \"刀\"}, {\"bbox\": [0.0, 316.04, 406.65, 473.53], \"label\": 55, \"category\": \"蛋糕\"}, {\"bbox\": [305.45, 172.05, 362.81, 249.35], \"label\": 71, \"category\": \"水槽\"}]}}\n\n# 对于 VG\n{\"filename\": \"014127544.jpg\", \"height\": 400, \"width\": 600, \"grounding\": {\"caption\": \"自制生有机奶油芝士，价格不到商店购买的一半！制作起来超级简单，只需要两种原料！\", \"regions\": [{\"bbox\": [5.98, 2.91, 599.5, 396.55], \"phrase\": \"自制生有机奶油芝士\"}]}}\n{\"filename\": \"012378809.jpg\", \"height\": 252, \"width\": 450, \"grounding\": {\"caption\": \"天真：笔记本背景中的心形图案\", \"regions\": [{\"bbox\": [93.8, 47.59, 126.19, 77.01], \"phrase\": \"心形图案\"}, {\"bbox\": [2.49, 1.44, 448.74, 251.1], \"phrase\": \"笔记本背景\"}]}}\n```\n\u003C\u002Fdetails>\n\n# 配置\n\n```\nconfig\u002Fcfg_odvg.py                   # 用于骨干网络、批量大小、学习率、冻结层等\nconfig\u002Fdatasets_mixed_odvg.json      # 支持 OD 和 VG 的混合数据集\n```\n\n# 训练\n\n- **数据集：** 在开始训练之前，您需要根据 [data_format.md](data_format.md) 修改 ``config\u002Fdatasets_mixed_example.json``。\n- **配置：** 默认使用 coco_val2017 进行评估。\n    - 如果您使用自己的测试集进行评估，则需要将测试数据转换为 coco 格式（而非 ovdg 格式），并修改配置以设置 **use_coco_eval = False**（COCO 数据集有 80 个类别用于训练，但总共有 90 个类别，因此代码中内置了映射）。\n    - 此外，还需在配置中添加（或更新）**label_list**，写入您自己的类别名称，例如 **label_list=['狗', '猫', '人']**。\n\n``` diff\n- use_coco_eval = True\n+ use_coco_eval = False\n+ label_list=['狗', '猫', '人']\n```\n- **训练\u002F评估**：\n\n```  bash\n# 使用 torch.distributed.launch 进行训练\u002F评估：\nbash train_dist.sh  ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\nbash test_dist.sh  ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\n\n# 使用 slurm 集群进行训练\u002F评估：\nbash train_slurm.sh  ${PARTITION} ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\nbash test_slurm.sh  ${PARTITION} ${GPU_NUM} ${CFG} ${DATASETS} ${OUTPUT_DIR}\n# 例如，可查看 train_slurm.sh 以获取更多细节\n# bash train_slurm.sh v100_32g 32 config\u002Fcfg_odvg.py config\u002Fdatasets_mixed_odvg.json .\u002Flogs\n\n# bash train_slurm.sh v100_32g 8 config\u002Fcfg_coco.py config\u002Fdatasets_od_example.json .\u002Flogs\n```\n\n\n# 结果与模型\n\n\u003Ctable style=\"font-size:11px;\" >\n  \u003Cthead>\n    \u003Ctr style=\"text-align: right;\">\n      \u003Cth>名称\u003C\u002Fth>\n      \u003Cth>预训练数据\u003C\u002Fth>\n      \u003Cth>任务\u003C\u002Fth>\n      \u003Cth>COCO上的mAP\u003C\u002Fth>\n      \u003Cth>检查点\u003C\u002Fth>\n      \u003Cth>备注\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(官方)\u003C\u002Ftd>\n      \u003Ctd>O365,GoldG,Cap4M\u003C\u002Ftd>\n      \u003Ctd>零样本\u003C\u002Ftd>\n      \u003Ctd>48.4\u003Cbr>(零样本)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO\u002Freleases\u002Fdownload\u002Fv0.1.0-alpha\u002Fgroundingdino_swint_ogc.pth\">模型\u003C\u002Fa> \n      \u003Ctd> - \u003C\u002Ftd>\n    \u003C\u002Ftr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(微调)\u003C\u002Ftd>\n      \u003Ctd>O365,GoldG,Cap4M\u003C\u002Ftd>\n      \u003Ctd>微调\u003Cbr>结合COCO数据\u003C\u002Ftd>\n      \u003Ctd>\u003Cb>57.3\u003C\u002Fb>\u003Cbr>(微调)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Freleases\u002Fdownload\u002Fv0.1.0\u002Fgdinot-coco-ft.pth\">模型\u003C\u002Fa> \n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1TJRAiBbVwj3AfxvQAoi1tmuRfXH1hLie\u002Fview?usp=drive_link\">配置文件\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1u8XyvBug56SrJY85UtMZFPKUIzV3oNV6\u002Fview?usp=drive_link\">日志\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>GroundingDINO-T\u003Cbr>(预训练)\u003C\u002Ftd>\n      \u003Ctd>COCO,O365,LIVS,\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FV3Det\u002FV3Det\">V3Det\u003C\u002Fa>,\u003Cbr>GRIT-200K,\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBryanPlummer\u002Fflickr30k_entities\">Flickr30k\u003C\u002Fa>(共计180万)\u003C\u002Ftd>\n      \u003Ctd>零样本\u003C\u002Ftd>\n      \u003Ctd>\u003Cb>55.1\u003C\u002Fb>\u003Cbr>(零样本)\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Freleases\u002Fdownload\u002Fv0.1.0\u002Fgdinot-1.8m-odvg.pth\">模型\u003C\u002Fa>  \n      \u003Ctd>\u003Ca href='https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1LwtkvBHkP1OkErKBsVfwjcedVXkyocA5\u002Fview?usp=drive_link'>配置文件\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1kBEFk14OqcYHC7DPdA_BGtk2TBQkJtrL\u002Fview?usp=drive_link\">日志\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n- [GRIT](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fzzliang\u002FGRIT)-200K由[GLIP](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGLIP)和[spaCy](https:\u002F\u002Fspacy.io\u002F)生成。\n\n\n# 推理\n\n由于模型架构未发生变化，您只需**安装**[GroundingDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO)库，然后运行[inference_on_a_image.py](.\u002Ftools\u002Finference_on_a_image.py)即可对您的图像进行推理。\n\n``` bash\npython tools\u002Finference_on_a_image.py \\\n  -c tools\u002FGroundingDINO_SwinT_OGC.py \\\n  -p path\u002Fto\u002Fyour\u002Fckpt.pth \\\n  -i .\u002Ffigs\u002Fdog.jpeg \\\n  -t \"dog\" \\\n  -o output\n```\n\n| 提示词 |        官方检查点         |        COCO检查点         |        180万检查点         |\n| :----: | :--------------------------: | :----------------------: | :----------------------: |\n|  狗   | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_c950ee4e38b4.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_41c928aad2fb.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_3dda8a5ec91c.jpg) |\n|  猫   | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_3feba81d276f.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_1ba2fc6891e7.jpg) | ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_readme_79a102193b2c.jpg) |\n\n# 致谢\n\n提供的代码改编自：\n\n- [microsoft\u002FGLIP](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FGLIP)\n- [IDEA-Research\u002FDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FDINO\u002F)\n- [IDEA-Research\u002FGroundingDINO](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO)\n\n\n# 引用\n\n```\n@misc{Open Grounding Dino,\n  author = {Zuwei Long, Wei Li},\n  title = {Open Grounding Dino：论文Grounding DINO的第三方实现},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino}},\n  year = {2023}\n}\n```\n\n# 联系方式\n\n- longzuwei at sensetime.com  \n- liwei1 at sensetime.com  \n\n如果您有任何建议或问题，欢迎随时联系我们。我们也欢迎您报告发现的漏洞。如果您发现了任何错误或希望贡献代码，请创建一个拉取请求。","# Open-GroundingDino 快速上手指南\n\nOpen-GroundingDino 是论文《Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection》的第三方实现版本。该版本支持在自定义数据集上进行微调（Fine-tune）或从头开始预训练，并提供了多机训练加速策略。\n\n## 环境准备\n\n本项目测试环境如下，建议使用相同或兼容版本以确保稳定性：\n- **Python**: 3.7.11\n- **PyTorch**: 1.11.0\n- **CUDA**: 11.3\n\n**前置依赖：**\n- Git\n- pip\n- CUDA 开发工具包（需与 PyTorch 版本匹配）\n\n> **提示**：国内用户安装 Python 依赖时，建议指定清华或阿里镜像源以加速下载：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n### 1. 克隆代码库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino.git && cd Open-GroundingDino\u002F\n```\n\n### 2. 安装依赖与编译算子\n首先安装 Python 依赖，然后编译并安装 GroundingDINO 所需的自定义 CUDA 算子。\n\n```bash\n# 安装基础依赖\npip install -r requirements.txt \n\n# 编译并安装自定义算子\ncd models\u002FGroundingDINO\u002Fops\npython setup.py build install\npython test.py\ncd ..\u002F..\u002F..\n```\n\n### 3. 下载预训练权重\n你需要下载以下两个权重文件，并在后续的訓練\u002F测试脚本中修改对应的路径：\n1. **GroundingDINO 预训练模型**: [下载地址](https:\u002F\u002Fgithub.com\u002FIDEA-Research\u002FGroundingDINO\u002Freleases)\n2. **BERT 权重**: [下载地址](https:\u002F\u002Fhuggingface.co\u002Fbert-base-uncased) (国内访问困难可使用 HuggingFace 镜像或手动下载后放置本地)\n\n## 基本使用\n\n### 场景一：快速推理 (Inference)\n由于模型架构未变，你可以直接使用官方 GroundingDINO 库进行推理，或运行本项目提供的脚本。\n\n**单图推理示例：**\n检测图片中的 \"dog\" 对象。\n\n```bash\npython tools\u002Finference_on_a_image.py \\\n  -c tools\u002FGroundingDINO_SwinT_OGC.py \\\n  -p path\u002Fto\u002Fyour\u002Fckpt.pth \\\n  -i .\u002Ffigs\u002Fdog.jpeg \\\n  -t \"dog\" \\\n  -o output\n```\n*参数说明：*\n- `-c`: 配置文件路径\n- `-p`: 模型权重文件路径 (.pth)\n- `-i`: 输入图片路径\n- `-t`: 文本提示词 (Prompt)，支持自然语言描述\n- `-o`: 输出目录\n\n### 场景二：启动训练 (Training)\n在训练前，需将数据集转换为 `odvg` 格式（支持目标检测 OD 和视觉定位 VG 数据），并修改配置文件。\n\n**1. 准备数据配置**\n编辑 `config\u002Fdatasets_mixed_odvg.json`，填入你的数据集路径。参考项目中的 `data_format.md` 进行格式转换（如 COCO 转 odvg 可使用 `tools\u002Fcoco2odvg.py`）。\n\n**2. 修改训练配置**\n若使用自定义测试集（非 COCO 格式），需在配置文件 (`config\u002Fcfg_odvg.py`) 中进行如下调整：\n```python\nuse_coco_eval = False\nlabel_list=['dog', 'cat', 'person']  # 替换为你自己的类别名称\n```\n\n**3. 执行训练命令**\n支持单机多卡 (torch.distributed) 和 Slurm 集群模式。\n\n*单机多卡训练示例 (使用 8 张 GPU):*\n```bash\nbash train_dist.sh 8 config\u002Fcfg_odvg.py config\u002Fdatasets_mixed_odvg.json .\u002Flogs\n```\n\n*Slurm 集群训练示例:*\n```bash\nbash train_slurm.sh v100_32g 32 config\u002Fcfg_odvg.py config\u002Fdatasets_mixed_odvg.json .\u002Flogs\n```\n\n训练完成后，模型权重将保存在 `.\u002Flogs` 目录中。","某电商初创公司的算法团队正致力于构建一个能自动识别并标注商品图中任意长尾品类（如“复古碎花裙”或“异形抱枕”）的智能审核系统。\n\n### 没有 Open-GroundingDino 时\n- **无法识别未训练类别**：传统检测模型只能识别预定义好的固定类别，遇到新出现的商品类型必须重新收集数据并从头训练，响应周期长达数周。\n- **多源数据整合困难**：团队手头既有标准的物体检测数据（如 COCO），又有带文本描述的定位数据（如 Grounding 数据），缺乏统一框架同时利用这两类资源进行训练。\n- **训练效率低下**：官方原版代码不支持多机分布式训练和特定的加速策略，导致在大规模混合数据集上训练模型时，显存占用高且耗时极长。\n- **微调灵活性差**：难以针对公司特有的商品数据集进行高效的微调（Fine-tuning），往往需要修改大量底层代码才能适配自定义数据格式。\n\n### 使用 Open-GroundingDino 后\n- **实现开放集检测**：利用其开放集检测能力，模型仅需通过文本提示即可定位从未见过的商品类别，无需重新训练即可应对新品上架。\n- **统一混合数据训练**：借助对 ODVG 数据格式的原生支持，团队轻松将现有的检测数据集与图文定位数据集混合，显著提升了模型对复杂语义的理解力。\n- **大幅提升训练速度**：启用其独有的多机 Slurm 支持和训练加速策略，将原本需要数天的训练任务缩短至数小时，快速迭代模型版本。\n- **便捷自定义微调**：直接加载预训练权重，通过简单的配置脚本即可在公司私有数据集上完成微调，快速落地符合业务需求的专用模型。\n\nOpen-GroundingDino 通过打破封闭类别限制并优化训练流程，让电商团队能够以极低的数据成本和时间开销，构建出具备高度泛化能力的智能视觉审核系统。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flongzw1997_Open-GroundingDino_c950ee4e.jpg","longzw1997","ZHUI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flongzw1997_911cc25c.png",null,"Tencent Youtu Lab","Shanghai","lzw123@mail.ustc.edu.cn","https:\u002F\u002Fgithub.com\u002Flongzw1997",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Python","#3572A5",79.9,{"name":87,"color":88,"percentage":89},"Cuda","#3A4E3A",17.8,{"name":91,"color":92,"percentage":93},"C++","#f34b7d",1.9,{"name":95,"color":96,"percentage":97},"Shell","#89e051",0.4,813,141,"2026-04-08T03:56:39","MIT",4,"未说明","需要 NVIDIA GPU，CUDA 11.3（测试环境），具体显存需求未说明",{"notes":106,"python":107,"dependencies":108},"官方测试环境为 Python 3.7.11, PyTorch 1.11.0, CUDA 11.3。安装时需要手动编译 models\u002FGroundingDINO\u002Fops 下的算子。训练前需将数据集转换为 odvg 格式，推理支持 COCO 格式。需单独下载预训练模型权重和 BERT 权重并配置路径。支持 Slurm 多机训练。","3.7.11",[109,110,111],"torch==1.11.0","requirements.txt 中列出的依赖","GroundingDINO ops (自定义编译)",[15],[114,115,116,117],"object-detection","open-world","open-world-detection","vision-language","2026-03-27T02:49:30.150509","2026-04-09T05:25:12.382075",[121,126,131,136,141,146],{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},25610,"新训练的权重无法识别通用物体或检测不完整，应该如何解决？","这通常是因为微调导致模型过拟合而丢失了预训练模型的通用能力。解决方案是使用模型集成（Model Ensemble）技术，例如 WISE-FT，来平衡微调模型和预训练模型的权重。具体做法是在离线阶段将预训练权重和微调权重进行融合生成新模型，推理阶段无需改变。如果数据量足够大且质量高，也可以尝试从头训练以获得更高性能，但需注意选择合适的步数以避免过拟合。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F24",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},25611,"运行时报错 'Failed to load custom C++ ops. Running on CPU mode Only!' 怎么办？","这是因为未正确配置 CUDA 环境导致自定义算子加载失败，程序回退到 CPU 模式。请确保已安装 CUDA 并设置环境变量。在 .bashrc 文件中添加以下配置（以 CUDA 11.8 为例）：\nexport CUDA_HOME=\u002Fusr\u002Flocal\u002Fcuda-11.8\nexport PATH=\u002Fusr\u002Flocal\u002Fcuda-11.8\u002Fbin:$PATH\nexport LD_LIBRARY_PATH=\u002Fusr\u002Flocal\u002Fcuda-11.8\u002Flib64:$LD_LIBRARY_PATH\n设置后运行 `echo $CUDA_HOME` 确认是否有输出。如果仍未解决，可能需要重新克隆代码库并严格按照安装步骤重新编译。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F7",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},25612,"遇到 'AttributeError: Namespace object has no attribute label_list' 错误如何解决？","该错误通常与配置文件或 Colab 环境有关。首先检查配置文件中的路径设置是否正确。如果问题依旧，可以尝试在代码中将 `cat_list=args.label_list` 临时修改为具体的类别列表（如 `cat_list=['class1', 'class2']`）作为变通方案。此外，建议参考相关配置文档确保参数传递正确，或检查是否因包版本不兼容导致。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F16",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},25613,"单卡训练时出现 'ModuleNotFoundError: No module named groundingdino' 或分布式启动失败怎么办？","如果是单卡训练，可以避免使用分布式启动脚本，直接使用 python 运行主程序：\npython main.py --output_dir .\u002Flogs -c config\u002Fcfg_coco.py --datasets config\u002Fdatasets_od_example.json --pretrain_model_path groundingdino_swint_ogc.pth\n如果是多卡或必须使用分布式，请确保已从原始 GroundingDINO 仓库运行过 setup.py 进行安装，或者应用修复补丁将导入语句从 `from groundingdino import _C` 改为正确的相对导入方式。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F4",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},25614,"预训练计算 Loss 时，Box 坐标转换出现断言错误（如 wh 为负值或 softmax 后为 None）如何处理？","这个问题通常出现在 Softmax 计算过程中数值不稳定导致结果为 None 或产生非法坐标。解决方法是在进行 Softmax 运算之前给输入加上一个极小量（epsilon），以防止数值下溢或无效值。请检查代码中涉及 Softmax 的部分，确保数值稳定性。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F93",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},25615,"微调 COCO 数据集时遇到自定义 C++ 算子加载失败或代码版本过旧的问题？","请拉取最新的代码版本，维护者已经修复了大部分相关 Bug。主要修复包括：修正了 ms_deform_attn.py 中的算子导入错误（改为直接导入 MultiScaleDeformableAttention），更新了 requirements.txt 依赖版本，并在 main.py 中增加了参数使得评估阶段不再强制要求训练数据集。如果仍使用旧版本，需手动修改导入语句或重新安装。","https:\u002F\u002Fgithub.com\u002Flongzw1997\u002FOpen-GroundingDino\u002Fissues\u002F9",[152],{"id":153,"version":154,"summary_zh":155,"released_at":156},162921,"v0.1.0","发布训练好的模型（COCO微调和ODVG训练）","2023-10-26T05:57:42"]