[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rstrudel--segmenter":3,"tool-rstrudel--segmenter":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":77,"owner_twitter":77,"owner_website":82,"owner_url":83,"languages":84,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":23,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":103,"github_topics":104,"view_count":10,"oss_zip_url":77,"oss_zip_packed_at":77,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":139},3982,"rstrudel\u002Fsegmenter","segmenter","[ICCV2021] Official PyTorch implementation of Segmenter: Transformer for Semantic Segmentation","Segmenter 是一款基于 Transformer 架构的语义分割开源工具，由 ICCV 2021 论文作者官方发布。它致力于解决传统卷积神经网络在处理复杂场景理解时的局限性，通过将图像划分为独立的图像块（Patch）并利用 Transformer 强大的全局上下文建模能力，实现对图像中每个像素的精准分类。\n\n与以往依赖复杂解码器的方法不同，Segmenter 的核心亮点在于其简洁高效的设计：它直接利用 Transformer 编码器输出的特征进行掩码（Mask）预测或线性分类，显著简化了模型结构，同时在 ADE20K 等权威数据集上取得了领先的精度表现。项目提供了从轻量级到大型等多种预训练模型，兼顾了推理速度与分割效果，并已成功集成至 MMSegmentation 框架，方便开发者调用。\n\nSegmenter 非常适合计算机视觉领域的研究人员、算法工程师以及希望探索 Transformer 在底层视觉任务中应用效果的开发者使用。无论是用于学术研究复现、新算法对比，还是作为高精度分割任务的基础模型进行二次开发，Segmenter 都能提供坚实的技术支撑和便捷的 PyTorch 实现","Segmenter 是一款基于 Transformer 架构的语义分割开源工具，由 ICCV 2021 论文作者官方发布。它致力于解决传统卷积神经网络在处理复杂场景理解时的局限性，通过将图像划分为独立的图像块（Patch）并利用 Transformer 强大的全局上下文建模能力，实现对图像中每个像素的精准分类。\n\n与以往依赖复杂解码器的方法不同，Segmenter 的核心亮点在于其简洁高效的设计：它直接利用 Transformer 编码器输出的特征进行掩码（Mask）预测或线性分类，显著简化了模型结构，同时在 ADE20K 等权威数据集上取得了领先的精度表现。项目提供了从轻量级到大型等多种预训练模型，兼顾了推理速度与分割效果，并已成功集成至 MMSegmentation 框架，方便开发者调用。\n\nSegmenter 非常适合计算机视觉领域的研究人员、算法工程师以及希望探索 Transformer 在底层视觉任务中应用效果的开发者使用。无论是用于学术研究复现、新算法对比，还是作为高精度分割任务的基础模型进行二次开发，Segmenter 都能提供坚实的技术支撑和便捷的 PyTorch 实现环境。","# Segmenter: Transformer for Semantic Segmentation\n\n![Figure 1 from paper](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_b348b1a2f183.png)\n\n[Segmenter: Transformer for Semantic Segmentation](https:\u002F\u002Farxiv.org\u002Fabs\u002F2105.05633)\nby Robin Strudel*, Ricardo Garcia*, Ivan Laptev and Cordelia Schmid, ICCV 2021.\n\n*Equal Contribution\n\n🔥 **Segmenter is now available on [MMSegmentation](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation\u002Ftree\u002Fmaster\u002Fconfigs\u002Fsegmenter).**\n\n## Installation\n\nDefine os environment variables pointing to your checkpoint and dataset directory, put in your `.bashrc`:\n```sh\nexport DATASET=\u002Fpath\u002Fto\u002Fdataset\u002Fdir\n```\n\nInstall [PyTorch 1.9](https:\u002F\u002Fpytorch.org\u002F) then `pip install .` at the root of this repository.\n\nTo download ADE20K, use the following command:\n```python\npython -m segm.scripts.prepare_ade20k $DATASET\n```\n\n## Model Zoo\nWe release models with a Vision Transformer backbone initialized from the [improved ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.10270) models.\n\n### ADE20K\n\nSegmenter models with ViT backbone:\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>Name\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># params\u003C\u002Fth>\n    \u003Cth>Resolution\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">Download\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-T-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>38.1 \u002F 38.8\u003C\u002Ftd>\n    \u003Ctd>7M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>52.4\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-S-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>45.3 \u002F 46.9\u003C\u002Ftd>\n    \u003Ctd>27M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>34.8\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>48.5 \u002F 50.0\u003C\u002Ftd>\n    \u003Ctd>106M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>24.1\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u002F8\u003C\u002Ftd>\n    \u003Ctd>49.5 \u002F 50.5\u003C\u002Ftd>\n    \u003Ctd>89M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>4.2\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>51.8 \u002F 53.6\u003C\u002Ftd>\n    \u003Ctd>334M\u003C\u002Ftd>\n    \u003Ctd>640x640\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\nSegmenter models with DeiT backbone:\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>Name\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># params\u003C\u002Fth>\n    \u003Cth>Resolution\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">Download\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u003Cspan>&#8224;\u003C\u002Fspan>\u002F16\u003C\u002Ftd>\n    \u003Ctd>47.1 \u002F 48.1\u003C\u002Ftd>\n    \u003Ctd>87M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>27.3\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u003Cspan>&#8224;\u003C\u002Fspan>-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>48.7 \u002F 50.1\u003C\u002Ftd>\n    \u003Ctd>106M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>24.1\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Pascal Context\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>Name\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># params\u003C\u002Fth>\n    \u003Cth>Resolution\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">Download\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>58.1 \u002F 59.0\u003C\u002Ftd>\n    \u003Ctd>334M\u003C\u002Ftd>\n    \u003Ctd>480x480\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Cityscapes\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>Name\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># params\u003C\u002Fth>\n    \u003Cth>Resolution\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">Download\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>79.1 \u002F 81.3\u003C\u002Ftd>\n    \u003Ctd>322M\u003C\u002Ftd>\n    \u003Ctd>768x768\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Fcheckpoint.pth\">model\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Fvariant.yml\">config\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Flog.txt\">log\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Inference\n\nDownload one checkpoint with its configuration in a common folder, for example `seg_tiny_mask`.\n\nYou can generate segmentation maps from your own data with:\n```python\npython -m segm.inference --model-path seg_tiny_mask\u002Fcheckpoint.pth -i images\u002F -o segmaps\u002F \n```\n\nTo evaluate on ADE20K, run the command:\n```python\n# single-scale evaluation:\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --singlescale\n# multi-scale evaluation:\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --multiscale\n```\n\n## Train\n\nTrain `Seg-T-Mask\u002F16` on ADE20K on a single GPU:\n```python\npython -m segm.train --log-dir seg_tiny_mask --dataset ade20k \\\n  --backbone vit_tiny_patch16_384 --decoder mask_transformer\n```\n\nTo train `Seg-B-Mask\u002F16`, simply set `vit_base_patch16_384` as backbone and launch the above command using a minimum of 4 V100 GPUs (~12 minutes per epoch) and up to 8 V100 GPUs (~7 minutes per epoch). The code uses [SLURM](https:\u002F\u002Fslurm.schedmd.com\u002Fdocumentation.html) environment variables.\n\n## Logs\n\nTo plot the logs of your experiments, you can use\n```python\npython -m segm.utils.logs logs.yml\n```\n\nwith `logs.yml` located in `utils\u002F` with the path to your experiments logs:\n```yaml\nroot: \u002Fpath\u002Fto\u002Fcheckpoints\u002F\nlogs:\n  seg-t: seg_tiny_mask\u002Flog.txt\n  seg-b: seg_base_mask\u002Flog.txt\n```\n\n## Attention Maps\n\nTo visualize the attention maps for `Seg-T-Mask\u002F16` encoder layer 0 and patch `(0, 21)`, you can use:\n\n```python\npython -m segm.scripts.show_attn_map seg_tiny_mask\u002Fcheckpoint.pth \\ \nimages\u002Fim0.jpg output_dir\u002F --layer-id 0 --x-patch 0 --y-patch 21 --enc\n```\n\nDifferent options are provided to select the generated attention maps:\n* `--enc` or `--dec`: Select encoder or decoder attention maps respectively.\n* `--patch` or `--cls`: `--patch` generates attention maps for the patch with coordinates `(x_patch, y_patch)`. `--cls` combined with `--enc` generates attention maps for the CLS token of the encoder. `--cls` combined with `--dec` generates maps for each class embedding of the decoder.\n* `--x-patch` and `--y-patch`: Coordinates of the patch to draw attention maps from. This flag is ignored when `--cls` is used.\n* `--layer-id`: Select the layer for which the attention maps are generated.\n\nFor example, to generate attention maps for the decoder class embeddings, you can use:\n\n```python\npython -m segm.scripts.show_attn_map seg_tiny_mask\u002Fcheckpoint.pth \\\nimages\u002Fim0.jpg output_dir\u002F --layer-id 0 --dec --cls\n```\n\nAttention maps for patch `(0, 21)` in `Seg-L-Mask\u002F16` encoder layers 1, 4, 8, 12 and 16: \n\n![Attention maps of patch x=8 and y=21 and encoder layers 1, 4, 8, 12 and 16](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_acd847e729fa.png)\n\nAttention maps for the class embeddings in `Seg-L-Mask\u002F16` decoder layer 0: \n\n![Attention maps of cls tokens 7, 15, 18, 22, 36 and 57 and Mask decoder layer 0](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_31fe6da03a6b.png)\n\n## Video Segmentation\n\nZero shot video segmentation on [DAVIS](https:\u002F\u002Fdavischallenge.org\u002F) video dataset with Seg-B-Mask\u002F16 model trained on [ADE20K](https:\u002F\u002Fgroups.csail.mit.edu\u002Fvision\u002Fdatasets\u002FADE20K\u002F).\n\n\u003Cp align=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_aefc0fc47eb3.gif\" width=\"350\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_158ef14775b9.gif\" width=\"350\">\n\u003C\u002Fp>\n\u003Cp align=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_e00aa7f0dffd.gif\" width=\"350\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_4dd132820d61.gif\" width=\"350\">\n\u003C\u002Fp>\n\n## BibTex\n\n```\n@article{strudel2021,\n  title={Segmenter: Transformer for Semantic Segmentation},\n  author={Strudel, Robin and Garcia, Ricardo and Laptev, Ivan and Schmid, Cordelia},\n  journal={arXiv preprint arXiv:2105.05633},\n  year={2021}\n}\n```\n\n\n## Acknowledgements\n\nThe Vision Transformer code is based on [timm](https:\u002F\u002Fgithub.com\u002Frwightman\u002Fpytorch-image-models) library and the semantic segmentation training and evaluation pipeline \nis using [mmsegmentation](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation).\n","# Segmenter：用于语义分割的Transformer\n\n![论文中的图1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_b348b1a2f183.png)\n\n[Segmenter：用于语义分割的Transformer](https:\u002F\u002Farxiv.org\u002Fabs\u002F2105.05633)  \n作者：Robin Strudel*、Ricardo Garcia*、Ivan Laptev 和 Cordelia Schmid，ICCV 2021。\n\n*贡献相等\n\n🔥 **Segmenter 现已在 [MMSegmentation](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation\u002Ftree\u002Fmaster\u002Fconfigs\u002Fsegmenter) 中可用。**\n\n## 安装\n\n在你的 `.bashrc` 文件中定义指向检查点和数据集目录的环境变量：\n```sh\nexport DATASET=\u002Fpath\u002Fto\u002Fdataset\u002Fdir\n```\n\n安装 [PyTorch 1.9](https:\u002F\u002Fpytorch.org\u002F)，然后在本仓库的根目录下运行 `pip install .`。\n\n要下载 ADE20K 数据集，使用以下命令：\n```python\npython -m segm.scripts.prepare_ade20k $DATASET\n```\n\n## 模型库\n我们发布了以 Vision Transformer 为骨干网络的模型，其权重初始化自 [改进版 ViT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.10270) 模型。\n\n### ADE20K\n\n带有 ViT 骨干网络的 Segmenter 模型：\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>名称\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># 参数\u003C\u002Fth>\n    \u003Cth>分辨率\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">下载\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-T-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>38.1 \u002F 38.8\u003C\u002Ftd>\n    \u003Ctd>7M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>52.4\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-S-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>45.3 \u002F 46.9\u003C\u002Ftd>\n    \u003Ctd>27M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>34.8\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_small_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>48.5 \u002F 50.0\u003C\u002Ftd>\n    \u003Ctd>106M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>24.1\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u002F8\u003C\u002Ftd>\n    \u003Ctd>49.5 \u002F 50.5\u003C\u002Ftd>\n    \u003Ctd>89M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>4.2\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_patch8\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>51.8 \u002F 53.6\u003C\u002Ftd>\n    \u003Ctd>334M\u003C\u002Ftd>\n    \u003Ctd>640x640\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_large_mask_640\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n带有 DeiT 骨干网络的 Segmenter 模型：\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>名称\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># 参数\u003C\u002Fth>\n    \u003Cth>分辨率\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">下载\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u003Cspan>&#8224;\u003C\u002Fspan>\u002F16\u003C\u002Ftd>\n    \u003Ctd>47.1 \u002F 48.1\u003C\u002Ftd>\n    \u003Ctd>87M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>27.3\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_linear\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-B\u003Cspan>&#8224;\u003C\u002Fspan>-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>48.7 \u002F 50.1\u003C\u002Ftd>\n    \u003Ctd>106M\u003C\u002Ftd>\n    \u003Ctd>512x512\u003C\u002Ftd>\n    \u003Ctd>24.1\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_base_deit_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Pascal Context\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>名称\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># 参数\u003C\u002Fth>\n    \u003Cth>分辨率\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">下载\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>58.1 \u002F 59.0\u003C\u002Ftd>\n    \u003Ctd>334M\u003C\u002Ftd>\n    \u003Ctd>480x480\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fpascal_context\u002Fseg_large_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Cityscapes\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth>名称\u003C\u002Fth>\n    \u003Cth>mIoU (SS\u002FMS)\u003C\u002Fth>\n    \u003Cth># 参数\u003C\u002Fth>\n    \u003Cth>分辨率\u003C\u002Fth>\n    \u003Cth>FPS\u003C\u002Fth>\n    \u003Cth colspan=\"3\">下载\u003C\u002Fth>\n  \u003C\u002Ftr>\n\u003Ctr>\n    \u003Ctd>Seg-L-Mask\u002F16\u003C\u002Ftd>\n    \u003Ctd>79.1 \u002F 81.3\u003C\u002Ftd>\n    \u003Ctd>322M\u003C\u002Ftd>\n    \u003Ctd>768x768\u003C\u002Ftd>\n    \u003Ctd>-\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Fcheckpoint.pth\">模型\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Fvariant.yml\">配置文件\u003C\u002Fa>\u003C\u002Ftd>\n    \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fcityscapes\u002Fseg_large_mask\u002Flog.txt\">日志\u003C\u002Fa>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 推理\n\n将一个检查点及其配置文件下载到同一个文件夹中，例如 `seg_tiny_mask`。\n\n你可以使用以下命令从自己的数据生成分割图：\n```python\npython -m segm.inference --model-path seg_tiny_mask\u002Fcheckpoint.pth -i images\u002F -o segmaps\u002F \n```\n\n要在 ADE20K 上进行评估，运行以下命令：\n```python\n\n# 单尺度评估：\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --singlescale\n# 多尺度评估：\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --multiscale\n```\n\n## 训练\n\n在单个 GPU 上对 ADE20K 数据集训练 `Seg-T-Mask\u002F16`：\n```python\npython -m segm.train --log-dir seg_tiny_mask --dataset ade20k \\\n  --backbone vit_tiny_patch16_384 --decoder mask_transformer\n```\n\n要训练 `Seg-B-Mask\u002F16`，只需将骨干网络设置为 `vit_base_patch16_384`，并使用至少 4 张 V100 GPU（每轮大约 12 分钟）或最多 8 张 V100 GPU（每轮大约 7 分钟）运行上述命令。代码使用 [SLURM](https:\u002F\u002Fslurm.schedmd.com\u002Fdocumentation.html) 环境变量。\n\n## 日志\n\n要绘制实验日志，可以使用以下命令：\n```python\npython -m segm.utils.logs logs.yml\n```\n\n其中 `logs.yml` 位于 `utils\u002F` 目录下，内容如下，指定了您的实验日志路径：\n```yaml\nroot: \u002Fpath\u002Fto\u002Fcheckpoints\u002F\nlogs:\n  seg-t: seg_tiny_mask\u002Flog.txt\n  seg-b: seg_base_mask\u002Flog.txt\n```\n\n## 注意力图\n\n要可视化 `Seg-T-Mask\u002F16` 编码器第 0 层中位置为 `(0, 21)` 的 patch 的注意力图，可以使用以下命令：\n\n```python\npython -m segm.scripts.show_attn_map seg_tiny_mask\u002Fcheckpoint.pth \\ \nimages\u002Fim0.jpg output_dir\u002F --layer-id 0 --x-patch 0 --y-patch 21 --enc\n```\n\n提供了不同的选项来选择生成的注意力图：\n* `--enc` 或 `--dec`：分别选择编码器或解码器的注意力图。\n* `--patch` 或 `--cls`：`--patch` 会生成对应坐标为 `(x_patch, y_patch)` 的 patch 的注意力图。`--cls` 结合 `--enc` 可以生成编码器 CLS token 的注意力图，而结合 `--dec` 则会生成解码器每个类别嵌入的注意力图。\n* `--x-patch` 和 `--y-patch`：用于指定绘制注意力图的 patch 坐标。当使用 `--cls` 时，此参数将被忽略。\n* `--layer-id`：选择生成注意力图的层号。\n\n例如，要生成解码器类别嵌入的注意力图，可以使用以下命令：\n\n```python\npython -m segm.scripts.show_attn_map seg_tiny_mask\u002Fcheckpoint.pth \\\nimages\u002Fim0.jpg output_dir\u002F --layer-id 0 --dec --cls\n```\n\n`Seg-L-Mask\u002F16` 编码器第 1、4、8、12 和 16 层中位置为 `(0, 21)` 的 patch 的注意力图：\n\n![编码器第 1、4、8、12 和 16 层中 x=8，y=21 的 patch 的注意力图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_acd847e729fa.png)\n\n`Seg-L-Mask\u002F16` 解码器第 0 层中类别嵌入的注意力图：\n\n![解码器第 0 层中编号为 7、15、18、22、36 和 57 的 CLS token 的注意力图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_31fe6da03a6b.png)\n\n## 视频分割\n\n使用在 [ADE20K](https:\u002F\u002Fgroups.csail.mit.edu\u002Fvision\u002Fdatasets\u002FADE20K\u002F) 上训练的 `Seg-B-Mask\u002F16` 模型，对 [DAVIS](https:\u002F\u002Fdavischallenge.org\u002F) 视频数据集进行零样本视频分割。\n\n\u003Cp align=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_aefc0fc47eb3.gif\" width=\"350\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_158ef14775b9.gif\" width=\"350\">\n\u003C\u002Fp>\n\u003Cp align=\"middle\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_e00aa7f0dffd.gif\" width=\"350\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_readme_4dd132820d61.gif\" width=\"350\">\n\u003C\u002Fp>\n\n## BibTex\n\n```\n@article{strudel2021,\n  title={Segmenter: Transformer for Semantic Segmentation},\n  author={Strudel, Robin and Garcia, Ricardo and Laptev, Ivan and Schmid, Cordelia},\n  journal={arXiv preprint arXiv:2105.05633},\n  year={2021}\n}\n```\n\n\n## 致谢\n\nVision Transformer 的代码基于 [timm](https:\u002F\u002Fgithub.com\u002Frwightman\u002Fpytorch-image-models) 库，语义分割的训练和评估流程则使用了 [mmsegmentation](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation)。","# Segmenter 快速上手指南\n\nSegmenter 是一个基于 Transformer 的语义分割模型，由 INRIA 团队提出。本指南将帮助你快速在本地环境中部署并运行该工具。\n\n## 1. 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python**: 3.x\n*   **深度学习框架**: PyTorch 1.9+\n*   **硬件**: 支持 CUDA 的 NVIDIA GPU（训练大模型建议多卡环境）\n*   **依赖库**: `timm` (用于 Vision Transformer 骨干网络)\n\n> **注意**：本项目代码基于 [timm](https:\u002F\u002Fgithub.com\u002Frwightman\u002Fpytorch-image-models) 和 [MMSegmentation](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmsegmentation) 的部分逻辑构建。\n\n## 2. 安装步骤\n\n### 2.1 配置环境变量\n首先，定义数据集和检查点（模型权重）的存放路径。请将以下命令添加到你的 `~\u002F.bashrc` 文件中，或直接并在当前终端执行：\n\n```sh\nexport DATASET=\u002Fpath\u002Fto\u002Fdataset\u002Fdir\n```\n*(请将 `\u002Fpath\u002Fto\u002Fdataset\u002Fdir` 替换为你实际的磁盘路径)*\n\n### 2.2 安装 PyTorch\n访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002F) 获取适合你环境的安装命令。例如，使用 pip 安装 PyTorch 1.9：\n\n```sh\npip install torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 -f https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Ftorch_stable.html\n```\n*(国内用户可使用清华源加速：`pip install ... -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`)*\n\n### 2.3 安装 Segmenter\n克隆仓库或在仓库根目录下执行以下命令进行安装：\n\n```sh\npip install .\n```\n\n### 2.4 准备数据集 (以 ADE20K 为例)\n运行以下脚本自动下载并预处理 ADE20K 数据集：\n\n```python\npython -m segm.scripts.prepare_ade20k $DATASET\n```\n\n## 3. 基本使用\n\n### 3.1 下载预训练模型\n从 Model Zoo 中选择一个模型（例如 `Seg-T-Mask\u002F16`），下载其 `checkpoint.pth` 和 `variant.yml` 配置文件到同一文件夹（例如 `seg_tiny_mask`）。\n\n*   **模型权重**: [下载链接](https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fcheckpoint.pth)\n*   **配置文件**: [下载链接](https:\u002F\u002Fwww.rocq.inria.fr\u002Fcluster-willow\u002Frstrudel\u002Fsegmenter\u002Fcheckpoints\u002Fade20k\u002Fseg_tiny_mask\u002Fvariant.yml)\n\n### 3.2 图像推理 (Inference)\n使用下载的模型对你的图片进行语义分割。假设你的输入图片在 `images\u002F` 目录，输出结果保存到 `segmaps\u002F`：\n\n```python\npython -m segm.inference --model-path seg_tiny_mask\u002Fcheckpoint.pth -i images\u002F -o segmaps\u002F \n```\n\n### 3.3 模型评估 (Evaluation)\n如果你已准备好 ADE20K 验证集，可以运行以下命令评估模型的 mIoU 指标：\n\n**单尺度评估：**\n```python\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --singlescale\n```\n\n**多尺度评估：**\n```python\npython -m segm.eval.miou seg_tiny_mask\u002Fcheckpoint.pth ade20k --multiscale\n```\n\n### 3.4 开始训练 (Training)\n在单张 GPU 上训练 `Seg-T-Mask\u002F16` 模型：\n\n```python\npython -m segm.train --log-dir seg_tiny_mask --dataset ade20k \\\n  --backbone vit_tiny_patch16_384 --decoder mask_transformer\n```\n\n> **提示**：若训练更大的模型（如 `Seg-B-Mask\u002F16`），建议修改 `--backbone` 为 `vit_base_patch16_384`，并使用至少 4 张 V100 GPU 进行分布式训练。","某自动驾驶感知团队正在开发城市道路场景的实时语义分割系统，需要将摄像头画面中的车道线、行人、车辆及交通标志精确分类以辅助决策。\n\n### 没有 segmenter 时\n- **复杂边界识别模糊**：传统 CNN 模型受限于局部感受野，难以处理远处小物体（如交通标志）或细长结构（如车道线），导致边缘分割破碎且不连贯。\n- **全局上下文缺失**：模型无法有效理解整张图像的语义关联，常将阴影误判为障碍物，或在遮挡严重时丢失目标类别信息。\n- **精度与速度难平衡**：为了提升 mIoU（平均交并比）指标，不得不堆叠深层网络，导致推理帧率（FPS）大幅下降，无法满足车载芯片的实时性要求。\n- **多尺度适配困难**：面对分辨率变化较大的输入图像，原有架构需要繁琐的多尺度测试融合才能勉强提升精度，增加了工程部署复杂度。\n\n### 使用 segmenter 后\n- **像素级分类更精准**：借助 Vision Transformer 的全局注意力机制，segmenter 能清晰勾勒出不规则物体的完整轮廓，显著提升了细小目标和复杂边界的分割质量。\n- **语义理解更鲁棒**：模型能够捕捉图像长距离依赖关系，有效区分相似纹理背景下的不同物体，大幅降低了因光照变化或遮挡产生的误检率。\n- **高效能比表现优异**：在 ADE20K 数据集上，Seg-B-Mask\u002F16 等变体在保持 50.0% mIoU 高精度的同时，推理速度可达 24.1 FPS，实现了精度与速度的最佳平衡。\n- **部署流程简化**：凭借强大的单尺度预测能力，直接去除了复杂的多尺度测试环节，使得模型更容易移植到边缘计算设备上运行。\n\nsegmenter 通过引入 Transformer 架构，从根本上解决了传统方法在全局语义理解和细节保留上的矛盾，为高精度实时视觉感知提供了可靠方案。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frstrudel_segmenter_31fe6da0.png","rstrudel",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frstrudel_d38ce6f0.jpg","PhD student at Ecole Normale Supérieure and INRIA Paris","INRIA","Paris","https:\u002F\u002Frstrudel.github.io","https:\u002F\u002Fgithub.com\u002Frstrudel",[85],{"name":86,"color":87,"percentage":88},"Python","#3572A5",100,900,184,"2026-03-29T17:43:12","MIT","Linux","必需。训练 Seg-B-Mask\u002F16 建议至少 4 块 NVIDIA V100 GPU；推理需求视模型大小而定，大型模型（如 Seg-L）需要高显存。","未说明",{"notes":97,"python":98,"dependencies":99},"1. 项目基于 PyTorch 1.9 构建。2. 代码依赖 timm 库作为 Vision Transformer 主干，并使用 mmsegmentation 进行评估流水线。3. 训练大型模型（如 Seg-B 及以上）强烈建议使用多卡环境（4-8 张 V100）。4. 训练脚本支持 SLURM 调度环境变量。5. 需手动配置数据集路径环境变量 (DATASET)。","未说明 (需兼容 PyTorch 1.9)",[100,101,102],"torch==1.9","timm","mmsegmentation",[26,14],[105,106],"transformer","segmentation","2026-03-27T02:49:30.150509","2026-04-06T08:09:02.647502",[110,115,120,125,130,135],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},18179,"如何在 Segmenter 中使用自定义数据集？","要使用自定义数据集，需要创建类似的配置文件和 Python 文件。关键步骤包括：\n1. 注册数据集类：使用 `@DATASETS.register_module` 装饰器。\n2. 配置类别描述文件 (.yml)：确保背景类的 id 为 0，前景类从 1 开始。\n3. 初始化参数设置：注意 `reduce_zero_label` 的设置。如果标签从 0 开始连续，通常设为 `False`；如果需要忽略特定标签（如 255），设置 `ignore_label = 255`。\n4. 示例配置：\n```python\nself.names, self.colors = utils.dataset_cat_description(CATS_PATH)\nself.n_cls = 3  # 类别数量\nself.ignore_label = 255\nself.reduce_zero_label = False\n```\n如果 mIOU 不提升但 Loss 下降，可能需要调整损失函数或添加类别权重。","https:\u002F\u002Fgithub.com\u002Frstrudel\u002Fsegmenter\u002Fissues\u002F56",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},18180,"如何获取或复现论文中报告的 images\u002Fsec (吞吐量) 数据？","复现吞吐量数据需要注意以下几点：\n1. 硬件环境：使用 V100 GPU，固定图像分辨率为 512。\n2. 混合精度推理：必须启用 `torch.cuda.amp.autocast()`，这是达到高性能的关键。\n3. 预热迭代：在正式计时前进行几次 warmup 迭代以稳定性能。\n4. 参考代码片段：\n```python\n@torch.no_grad()\ndef compute_throughput(model, batch_size, resolution):\n    torch.cuda.empty_cache()\n    x = torch.randn(batch_size, 3, resolution, resolution, device=device)\n    # Warmup\n    for _ in range(3):\n        with torch.cuda.amp.autocast():\n            y = model(x)\n    torch.cuda.synchronize()\n    # Timing\n    start = time.time()\n    for i in range(30):\n        with torch.cuda.amp.autocast():\n            y = model(x)\n    torch.cuda.synchronize()\n    elapsed = time.time() - start\n    return (batch_size * 30) \u002F elapsed\n```","https:\u002F\u002Fgithub.com\u002Frstrudel\u002Fsegmenter\u002Fissues\u002F44",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},18181,"Seg-B\u002F8 模型使用的 ViT-B\u002F8 预训练权重在哪里下载？","维护者已发布基于 Steiner 等人工作的 ViT-B\u002F8 backbone 微调后的 Seg-B\u002F8 检查点。需要注意的是，timm 库中可能没有直接提供 patch-size 为 8 的 ViT 预训练模型。较小的 patch size (如 4x4) 会导致序列过长，训练成本极高，通常不建议使用标准的 Transformer 块进行训练。用户应直接使用项目发布的 Seg-B\u002F8 检查点，而不是尝试寻找基础的 ViT-B\u002F8 权重自行微调。","https:\u002F\u002Fgithub.com\u002Frstrudel\u002Fsegmenter\u002Fissues\u002F3",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},18182,"如何运行脚本来生成注意力图 (Attention Maps)？","生成注意力图需要使用特定的命令行脚本。确保图像路径正确，并指定输出目录。\n常用命令格式如下：\n```bash\npython -m segm.scripts.show_attn_map .\u002Fmodels\u002Fsegm\u002Fcheckpoint.pth \u003C图像绝对路径> \u003C输出目录> --layer-id 0 --dec --cls\n```\n示例（使用 ADE20K 验证集图片）：\n```bash\npython -m segm.scripts.show_attn_map .\u002Fmodels\u002Fsegm\u002Fcheckpoint.pth $DATASET\u002Fade20k\u002FADEChallengeData2016\u002Fimages\u002Fvalidation\u002FADE_val_00000321.jpg output_dir\u002F --layer-id 0 --dec --cls\n```\n如果遇到 'Provided image path ... is not a valid image file' 错误，请检查路径是否存在以及是否为有效图片文件。","https:\u002F\u002Fgithub.com\u002Frstrudel\u002Fsegmenter\u002Fissues\u002F39",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},18183,"在 Windows 上运行时遇到 'KeyError: '' ' 错误怎么办？","该错误通常与配置文件解析或路径设置有关，但在 Windows 环境下可能涉及路径分隔符或环境变量问题。维护者指出该项目主要在 Linux 环境下开发和测试，不直接支持 Windows 的环境配置调试。\n建议解决方案：\n1. 检查传入的配置文件路径是否正确，确保没有空字符串键。\n2. 确认 `backbone` 变量在配置字典中正确加载。\n3. 强烈建议使用 WSL (Windows Subsystem for Linux) 或 Docker 容器在 Linux 环境中运行此项目，以避免操作系统兼容性问题。","https:\u002F\u002Fgithub.com\u002Frstrudel\u002Fsegmenter\u002Fissues\u002F40",{"id":136,"question_zh":137,"answer_zh":138,"source_url":114},18184,"自定义数据集训练时 mIOU 不提升但 Loss 持续下降是什么原因？","这种情况通常由以下原因导致：\n1. 类别标签配置错误：确保背景类 id 为 0，前景类 id 从 1 开始连续编号。\n2. `reduce_zero_label` 设置不当：如果数据集标签本身已经连续且包含 0，应设置为 `False`。\n3. 类别不平衡：如果前景像素很少，模型可能倾向于预测背景。建议在损失函数中添加类别权重 (class weights) 或使用 Focal Loss。\n4. 检查 `.yml` 配置文件中的颜色映射和名称是否与代码中的 `n_cls` 一致。",[]]