[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-VainF--DeepLabV3Plus-Pytorch":3,"tool-VainF--DeepLabV3Plus-Pytorch":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 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":10,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":101,"github_topics":102,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":109,"updated_at":110,"faqs":111,"releases":142},8507,"VainF\u002FDeepLabV3Plus-Pytorch","DeepLabV3Plus-Pytorch","Pretrained DeepLabv3 and DeepLabv3+ for Pascal VOC & Cityscapes","DeepLabV3Plus-Pytorch 是一个基于 PyTorch 框架实现的语义分割开源项目，提供了在 Pascal VOC 和 Cityscapes 数据集上预训练好的 DeepLabV3 及 DeepLabV3+ 模型。它主要解决了开发者在复现经典分割算法时面临的架构搭建困难与训练耗时问题，让用户能够直接加载高精度权重，快速进行图像像素级分类任务或作为新研究的基准。\n\n该工具非常适合计算机视觉领域的研究人员、算法工程师以及希望快速上手语义分割的开发者使用。其核心亮点在于丰富的模型支持，不仅涵盖 ResNet、MobileNet 等主流骨干网络，还集成了 HRNet 和 Xception 等先进架构，并提供了针对不同场景的预训练权重下载。此外，项目代码结构清晰，内置了便捷的推理脚本和可视化工具，能直接将分割掩码转换为彩色图像。值得一提的是，它还支持将普通卷积转换为空洞可分离卷积（Atrous Separable Convolution），并允许用户通过简单的接口自定义数据集和添加新的骨干网络，极大地提升了实验的灵活性与效率。","# DeepLabv3Plus-Pytorch\n\nPretrained DeepLabv3, DeepLabv3+ for Pascal VOC & Cityscapes.\n\n## Quick Start \n\n### 1. Available Architectures\n| DeepLabV3    |  DeepLabV3+        |\n| :---: | :---:     |\n|deeplabv3_resnet50|deeplabv3plus_resnet50|\n|deeplabv3_resnet101|deeplabv3plus_resnet101|\n|deeplabv3_mobilenet|deeplabv3plus_mobilenet ||\n|deeplabv3_hrnetv2_48 | deeplabv3plus_hrnetv2_48 |\n|deeplabv3_hrnetv2_32 | deeplabv3plus_hrnetv2_32 |\n|deeplabv3_xception | deeplabv3plus_xception |\n\nplease refer to [network\u002Fmodeling.py](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fblob\u002Fmaster\u002Fnetwork\u002Fmodeling.py) for all model entries.\n\nDownload pretrained models: [Dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fw3z9z8lqpi8b2w7\u002FAAB0vkl4F5vy6HdIhmRCTKHSa?dl=0), [Tencent Weiyun](https:\u002F\u002Fshare.weiyun.com\u002Fqqx78Pv5)\n\nNote: The HRNet backbone was contributed by @timothylimyl. A pre-trained backbone is available at [google drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NxCK7Zgn5PmeS7W1jYLt5J9E0RRZ2oyF\u002Fview?usp=sharing).\n\n### 2. Load the pretrained model:\n```python\nmodel = network.modeling.__dict__[MODEL_NAME](num_classes=NUM_CLASSES, output_stride=OUTPUT_SRTIDE)\nmodel.load_state_dict( torch.load( PATH_TO_PTH )['model_state']  )\n```\n### 3. Visualize segmentation outputs:\n```python\noutputs = model(images)\npreds = outputs.max(1)[1].detach().cpu().numpy()\ncolorized_preds = val_dst.decode_target(preds).astype('uint8') # To RGB images, (N, H, W, 3), ranged 0~255, numpy array\n# Do whatever you like here with the colorized segmentation maps\ncolorized_preds = Image.fromarray(colorized_preds[0]) # to PIL Image\n```\n\n### 4. Atrous Separable Convolution\n\n**Note**: All pre-trained models in this repo were trained without atrous separable convolution.\n\nAtrous Separable Convolution is supported in this repo. We provide a simple tool ``network.convert_to_separable_conv`` to convert ``nn.Conv2d`` to ``AtrousSeparableConvolution``. **Please run main.py with '--separable_conv' if it is required**. See 'main.py' and 'network\u002F_deeplab.py' for more details. \n\n### 5. Prediction\nSingle image:\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen\u002Fbremen_000000_000019_leftImg8bit.png  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\nImage folder:\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\n### 6. New backbones\n\nPlease refer to [this commit (Xception)](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fcommit\u002Fc4b51e435e32b0deba5fc7c8ff106293df90590d) for more details about how to add new backbones.\n\n### 7. New datasets\n\nYou can train deeplab models on your own datasets. Your ``torch.utils.data.Dataset`` should provide a decoding method that transforms your predictions to colorized images, just like the [VOC Dataset](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fblob\u002Fbfe01d5fca5b6bb648e162d522eed1a9a8b324cb\u002Fdatasets\u002Fvoc.py#L156):\n```python\n\nclass MyDataset(data.Dataset):\n    ...\n    @classmethod\n    def decode_target(cls, mask):\n        \"\"\"decode semantic mask to RGB image\"\"\"\n        return cls.cmap[mask]\n```\n\n\n## Results\n\n### 1. Performance on Pascal VOC2012 Aug (21 classes, 513 x 513)\n\nTraining: 513x513 random crop  \nvalidation: 513x513 center crop\n\n|  Model          | Batch Size  | FLOPs  | train\u002Fval OS   |  mIoU        | Dropbox  | Tencent Weiyun  | \n| :--------        | :-------------: | :----:   | :-----------: | :--------: | :--------: | :----:   |\n| DeepLabV3-MobileNet       | 16      |  6.0G      |   16\u002F16  |  0.701     |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fuhksxwfcim3nkpo\u002Fbest_deeplabv3_mobilenet_voc_os16.pth?dl=0)       | [Download](https:\u002F\u002Fshare.weiyun.com\u002FA4ubD1DD) |\n| DeepLabV3-ResNet50         | 16      |  51.4G     |  16\u002F16   |  0.769     |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F3eag5ojccwiexkq\u002Fbest_deeplabv3_resnet50_voc_os16.pth?dl=0) | [Download](https:\u002F\u002Fshare.weiyun.com\u002F33eLjnVL) |\n| DeepLabV3-ResNet101         | 16      |  72.1G     |  16\u002F16   |  0.773     |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fvtenndnsrnh4068\u002Fbest_deeplabv3_resnet101_voc_os16.pth?dl=0)       | [Download](https:\u002F\u002Fshare.weiyun.com\u002FiCkzATAw)  |\n| DeepLabV3Plus-MobileNet   | 16      |  17.0G      |  16\u002F16   |  0.711    |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F0idrhwz6opaj7q4\u002Fbest_deeplabv3plus_mobilenet_voc_os16.pth?dl=0)   | [Download](https:\u002F\u002Fshare.weiyun.com\u002FdjX6MDwM) |\n| DeepLabV3Plus-ResNet50    | 16      |   62.7G     |  16\u002F16   |  0.772     |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fdgxyd3jkyz24voa\u002Fbest_deeplabv3plus_resnet50_voc_os16.pth?dl=0)   | [Download](https:\u002F\u002Fshare.weiyun.com\u002FuTM4i2jG) |\n| DeepLabV3Plus-ResNet101     | 16      |  83.4G     |  16\u002F16   |  0.783     |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fbm3hxe7wmakaqc5\u002Fbest_deeplabv3plus_resnet101_voc_os16.pth?dl=0)   | [Download](https:\u002F\u002Fshare.weiyun.com\u002FUNPZr3dk) |\n\n\n### 2. Performance on Cityscapes (19 classes, 1024 x 2048)\n\nTraining: 768x768 random crop  \nvalidation: 1024x2048\n\n|  Model          | Batch Size  | FLOPs  | train\u002Fval OS   |  mIoU        | Dropbox  |  Tencent Weiyun  |\n| :--------        | :-------------: | :----:   | :-----------: | :--------: | :--------: |  :----:   |\n| DeepLabV3Plus-MobileNet   | 16      |  135G      |  16\u002F16   |  0.721  |    [Download](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F753ojyvsh3vdjol\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth?dl=0) | [Download](https:\u002F\u002Fshare.weiyun.com\u002FaSKjdpbL) \n| DeepLabV3Plus-ResNet101   | 16      |  N\u002FA      |  16\u002F16   |  0.762  |    [Download](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1t7TC8mxQaFECt4jutdq_NMnWxdm6B-Nb\u002Fview?usp=sharing) | N\u002FA |\n\n\n#### Segmentation Results on Pascal VOC2012 (DeepLabv3Plus-MobileNet)\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_eead990c86c0.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_676486169965.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_0189171a0982.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_eb573dd522d9.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_d7c9e0f6cc51.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_ea4e4e7794c0.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_b4fd42bf0128.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_bf45ec4a337c.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_ace6a2b5a0e8.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_20c5aaa69bf5.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_4f6af1431316.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_c4c2e5ede2e8.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n#### Segmentation Results on Cityscapes (DeepLabv3Plus-MobileNet)\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_2ea9be25e3df.png\"   width=\"45%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_7a30432031dd.png\"  width=\"45%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_8c30462a993d.png\"   width=\"45%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_3ffab81ee2e6.png\"  width=\"45%\">\n\u003C\u002Fdiv>\n\n\n#### Visualization of training\n\n![trainvis](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_508897f428f2.png)\n\n\n## Pascal VOC\n\n### 1. Requirements\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. Prepare Datasets\n\n#### 2.1 Standard Pascal VOC\nYou can run train.py with \"--download\" option to download and extract pascal voc dataset. The defaut path is '.\u002Fdatasets\u002Fdata':\n\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002FVOCdevkit \n            \u002FVOC2012 \n                \u002FSegmentationClass\n                \u002FJPEGImages\n                ...\n            ...\n        \u002FVOCtrainval_11-May-2012.tar\n        ...\n```\n\n#### 2.2  Pascal VOC trainaug (Recommended!!)\n\nSee chapter 4 of [2]\n\n        The original dataset contains 1464 (train), 1449 (val), and 1456 (test) pixel-level annotated images. We augment the dataset by the extra annotations provided by [76], resulting in 10582 (trainaug) training images. The performance is measured in terms of pixel intersection-over-union averaged across the 21 classes (mIOU).\n\n*.\u002Fdatasets\u002Fdata\u002Ftrain_aug.txt* includes the file names of 10582 trainaug images (val images are excluded). Please to download their labels from [Dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Foeu149j8qtbs1x0\u002FSegmentationClassAug.zip?dl=0) or [Tencent Weiyun](https:\u002F\u002Fshare.weiyun.com\u002F5NmJ6Rk). Those labels come from [DrSleep's repo](https:\u002F\u002Fgithub.com\u002FDrSleep\u002Ftensorflow-deeplab-resnet).\n\nExtract trainaug labels (SegmentationClassAug) to the VOC2012 directory.\n\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002FVOCdevkit  \n            \u002FVOC2012\n                \u002FSegmentationClass\n                \u002FSegmentationClassAug  # \u003C= the trainaug labels\n                \u002FJPEGImages\n                ...\n            ...\n        \u002FVOCtrainval_11-May-2012.tar\n        ...\n```\n\n### 3. Training on Pascal VOC2012 Aug\n\n#### 3.1 Visualize training (Optional)\n\nStart visdom sever for visualization. Please remove '--enable_vis' if visualization is not needed. \n\n```bash\n# Run visdom server on port 28333\nvisdom -port 28333\n```\n\n#### 3.2 Training with OS=16\n\nRun main.py with *\"--year 2012_aug\"* to train your model on Pascal VOC2012 Aug. You can also parallel your training on 4 GPUs with '--gpu_id 0,1,2,3'\n\n**Note: There is no SyncBN in this repo, so training with *multple GPUs and small batch size* may degrades the performance. See [PyTorch-Encoding](https:\u002F\u002Fhangzhang.org\u002FPyTorch-Encoding\u002Ftutorials\u002Fsyncbn.html) for more details about SyncBN**\n\n```bash\npython main.py --model deeplabv3plus_mobilenet --enable_vis --vis_port 28333 --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16\n```\n\n#### 3.3 Continue training\n\nRun main.py with '--continue_training' to restore the state_dict of optimizer and scheduler from YOUR_CKPT.\n\n```bash\npython main.py ... --ckpt YOUR_CKPT --continue_training\n```\n\n#### 3.4. Testing\n\nResults will be saved at .\u002Fresults.\n\n```bash\npython main.py --model deeplabv3plus_mobilenet --enable_vis --vis_port 28333 --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16 --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_voc_os16.pth --test_only --save_val_results\n```\n\n## Cityscapes\n\n### 1. Download cityscapes and extract it to 'datasets\u002Fdata\u002Fcityscapes'\n\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002Fcityscapes\n            \u002FgtFine\n            \u002FleftImg8bit\n```\n\n### 2. Train your model on Cityscapes\n\n```bash\npython main.py --model deeplabv3plus_mobilenet --dataset cityscapes --enable_vis --vis_port 28333 --gpu_id 0  --lr 0.1  --crop_size 768 --batch_size 16 --output_stride 16 --data_root .\u002Fdatasets\u002Fdata\u002Fcityscapes \n```\n\n## Reference\n\n[1] [Rethinking Atrous Convolution for Semantic Image Segmentation](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.05587)\n\n[2] [Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.02611)\n","# DeepLabv3Plus-Pytorch\n\n预训练的DeepLabv3和DeepLabv3+模型，适用于Pascal VOC和Cityscapes数据集。\n\n## 快速入门\n\n### 1. 可用架构\n| DeepLabV3    |  DeepLabV3+        |\n| :---: | :---:     |\n|deeplabv3_resnet50|deeplabv3plus_resnet50|\n|deeplabv3_resnet101|deeplabv3plus_resnet101|\n|deeplabv3_mobilenet|deeplabv3plus_mobilenet ||\n|deeplabv3_hrnetv2_48 | deeplabv3plus_hrnetv2_48 |\n|deeplabv3_hrnetv2_32 | deeplabv3plus_hrnetv2_32 |\n|deeplabv3_xception | deeplabv3plus_xception |\n\n请参阅 [network\u002Fmodeling.py](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fblob\u002Fmaster\u002Fnetwork\u002Fmodeling.py) 获取所有模型条目。\n\n下载预训练模型：[Dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fw3z9z8lqpi8b2w7\u002FAAB0vkl4F5vy6HdIhmRCTKHSa?dl=0), [Tencent Weiyun](https:\u002F\u002Fshare.weiyun.com\u002Fqqx78Pv5)\n\n注意：HRNet主干网络由@timothylimyl贡献。预训练的主干网络可在[google drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NxCK7Zgn5PmeS7W1jYLt5J9E0RRZ2oyF\u002Fview?usp=sharing)获取。\n\n### 2. 加载预训练模型：\n```python\nmodel = network.modeling.__dict__[MODEL_NAME](num_classes=NUM_CLASSES, output_stride=OUTPUT_SRTIDE)\nmodel.load_state_dict( torch.load( PATH_TO_PTH )['model_state']  )\n```\n### 3. 可视化分割结果：\n```python\noutputs = model(images)\npreds = outputs.max(1)[1].detach().cpu().numpy()\ncolorized_preds = val_dst.decode_target(preds).astype('uint8') # 转换为RGB图像，(N, H, W, 3)，范围0~255，numpy数组\n# 在这里对彩色分割图进行任何操作\ncolorized_preds = Image.fromarray(colorized_preds[0]) # 转换为PIL图像\n```\n\n### 4. 空洞可分离卷积\n\n**注意**：此仓库中的所有预训练模型均未使用空洞可分离卷积进行训练。\n\n本仓库支持空洞可分离卷积。我们提供了一个简单的工具 ``network.convert_to_separable_conv``，用于将 ``nn.Conv2d`` 转换为 ``AtrousSeparableConvolution``。**如果需要，请使用 '--separable_conv' 运行 main.py**。更多详情请参阅 'main.py' 和 'network\u002F_deeplab.py'。\n\n### 5. 预测\n单张图片：\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen\u002Fbremen_000000_000019_leftImg8bit.png  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\n图片文件夹：\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen  --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\n### 6. 新的主干网络\n\n请参考[这次提交（Xception）](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fcommit\u002Fc4b51e435e32b0deba5fc7c8ff106293df90590d)，了解更多关于如何添加新主干网络的信息。\n\n### 7. 新的数据集\n\n您可以在自己的数据集上训练DeepLab模型。您的 ``torch.utils.data.Dataset`` 应该提供一种解码方法，将预测结果转换为彩色图像，就像[VOC数据集](https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fblob\u002Fbfe01d5fca5b6bb648e162d522eed1a9a8b324cb\u002Fdatasets\u002Fvoc.py#L156)一样：\n```python\n\nclass MyDataset(data.Dataset):\n    ...\n    @classmethod\n    def decode_target(cls, mask):\n        \"\"\"将语义掩码解码为RGB图像\"\"\"\n        return cls.cmap[mask]\n```\n\n\n## 结果\n\n### 1. Pascal VOC2012 Aug数据集上的性能（21类，513 x 513）\n\n训练：513x513随机裁剪  \n验证：513x513中心裁剪\n\n|  模型          | 批量大小  | FLOPs  | 训练\u002F验证OS   |  mIoU        | Dropbox  | Tencent Weiyun  | \n| :--------        | :-------------: | :----:   | :-----------: | :--------: | :--------: | :----:   |\n| DeepLabV3-MobileNet       | 16      |  6.0G      |   16\u002F16  |  0.701     |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fuhksxwfcim3nkpo\u002Fbest_deeplabv3_mobilenet_voc_os16.pth?dl=0)       | [下载](https:\u002F\u002Fshare.weiyun.com\u002FA4ubD1DD) |\n| DeepLabV3-ResNet50         | 16      |  51.4G     |  16\u002F16   |  0.769     |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F3eag5ojccwiexkq\u002Fbest_deeplabv3_resnet50_voc_os16.pth?dl=0) | [下载](https:\u002F\u002Fshare.weiyun.com\u002F33eLjnVL) |\n| DeepLabV3-ResNet101         | 16      |  72.1G     |  16\u002F16   |  0.773     |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fvtenndnsrnh4068\u002Fbest_deeplabv3_resnet101_voc_os16.pth?dl=0)       | [下载](https:\u002F\u002Fshare.weiyun.com\u002FiCkzATAw)  |\n| DeepLabV3Plus-MobileNet   | 16      |  17.0G      |  16\u002F16   |  0.711    |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F0idrhwz6opaj7q4\u002Fbest_deeplabv3plus_mobilenet_voc_os16.pth?dl=0)   | [下载](https:\u002F\u002Fshare.weiyun.com\u002FdjX6MDwM) |\n| DeepLabV3Plus-ResNet50    | 16      |   62.7G     |  16\u002F16   |  0.772     |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fdgxyd3jkyz24voa\u002Fbest_deeplabv3plus_resnet50_voc_os16.pth?dl=0)   | [下载](https:\u002F\u002Fshare.weiyun.com\u002FuTM4i2jG) |\n| DeepLabV3Plus-ResNet101     | 16      |  83.4G     |  16\u002F16   |  0.783     |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fbm3hxe7wmakaqc5\u002Fbest_deeplabv3plus_resnet101_voc_os16.pth?dl=0)   | [下载](https:\u002F\u002Fshare.weiyun.com\u002FUNPZr3dk) |\n\n\n### 2. Cityscapes数据集上的性能（19类，1024 x 2048）\n\n训练：768x768随机裁剪  \n验证：1024x2048\n\n|  模型          | 批量大小  | FLOPs  | 训练\u002F验证OS   |  mIoU        | Dropbox  |  Tencent Weiyun  |\n| :--------        | :-------------: | :----:   | :-----------: | :--------: | :--------: |  :----:   |\n| DeepLabV3Plus-MobileNet   | 16      |  135G      |  16\u002F16   |  0.721  |    [下载](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F753ojyvsh3vdjol\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth?dl=0) | [下载](https:\u002F\u002Fshare.weiyun.com\u002FaSKjdpbL) \n| DeepLabV3Plus-ResNet101   | 16      |  N\u002FA      |  16\u002F16   |  0.762  |    [下载](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1t7TC8mxQaFECt4jutdq_NMnWxdm6B-Nb\u002Fview?usp=sharing) | N\u002FA |\n\n\n#### Pascal VOC2012上的分割结果（DeepLabv3Plus-MobileNet）\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_eead990c86c0.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_676486169965.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_0189171a0982.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_eb573dd522d9.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_d7c9e0f6cc51.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_ea4e4e7794c0.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_b4fd42bf0128.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_bf45ec4a337c.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_ace6a2b5a0e8.png\"   width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_20c5aaa69bf5.png\"  width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_4f6af1431316.png\"    width=\"20%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_c4c2e5ede2e8.png\" width=\"20%\">\n\u003C\u002Fdiv>\n\n#### Cityscapes上的分割结果（DeepLabv3Plus-MobileNet）\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_2ea9be25e3df.png\"   width=\"45%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_7a30432031dd.png\"  width=\"45%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_8c30462a993d.png\"   width=\"45%\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_3ffab81ee2e6.png\"  width=\"45%\">\n\u003C\u002Fdiv>\n\n\n#### 训练过程可视化\n\n![trainvis](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_readme_508897f428f2.png)\n\n\n## Pascal VOC\n\n### 1. 需求\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. 准备数据集\n\n#### 2.1 标准 Pascal VOC\n你可以使用 `--download` 选项运行 `train.py` 来下载并解压 Pascal VOC 数据集。默认路径为 `.\u002Fdatasets\u002Fdata`：\n\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002FVOCdevkit \n            \u002FVOC2012 \n                \u002FSegmentationClass\n                \u002FJPEGImages\n                ...\n            ...\n        \u002FVOCtrainval_11-May-2012.tar\n        ...\n```\n\n#### 2.2 Pascal VOC trainaug（推荐！！）\n\n参见 [2] 的第 4 章。\n\n原始数据集包含 1464 张（训练）、1449 张（验证）和 1456 张（测试）像素级标注图像。我们通过 [76] 提供的额外标注对数据集进行了增强，最终得到 10582 张（trainaug）训练图像。性能指标采用 21 类别平均的像素交并比（mIOU）来衡量。\n\n*.\u002Fdatasets\u002Fdata\u002Ftrain_aug.txt* 包含 10582 张 trainaug 图像的文件名（不包括验证图像）。请从 [Dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Foeu149j8qtbs1x0\u002FSegmentationClassAug.zip?dl=0) 或 [腾讯微云](https:\u002F\u002Fshare.weiyun.com\u002F5NmJ6Rk) 下载其标签。这些标签来自 [DrSleep 的仓库](https:\u002F\u002Fgithub.com\u002FDrSleep\u002Ftensorflow-deeplab-resnet)。\n\n将 trainaug 标签（SegmentationClassAug）解压到 VOC2012 目录下：\n\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002FVOCdevkit  \n            \u002FVOC2012\n                \u002FSegmentationClass\n                \u002FSegmentationClassAug  # \u003C= trainaug 标签\n                \u002FJPEGImages\n                ...\n            ...\n        \u002FVOCtrainval_11-May-2012.tar\n        ...\n```\n\n### 3. 在 Pascal VOC2012 Aug 上进行训练\n\n#### 3.1 可视化训练（可选）\n启动 Visdom 服务器以进行可视化。如果不需要可视化，请移除 `--enable_vis` 参数。\n\n```bash\n# 在端口 28333 上运行 Visdom 服务器\nvisdom -port 28333\n```\n\n#### 3.2 使用 OS=16 进行训练\n运行 `main.py` 并指定 `--year 2012_aug`，即可在 Pascal VOC2012 Aug 数据集上训练模型。你还可以通过 `--gpu_id 0,1,2,3` 在 4 张 GPU 上并行训练。\n\n**注意：本仓库中没有 SyncBN，因此使用多 GPU 和较小的批量大小进行训练可能会降低性能。有关 SyncBN 的更多信息，请参阅 [PyTorch-Encoding](https:\u002F\u002Fhangzhang.org\u002FPyTorch-Encoding\u002Ftutorials\u002Fsyncbn.html)。**\n\n```bash\npython main.py --model deeplabv3plus_mobilenet --enable_vis --vis_port 28333 --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16\n```\n\n#### 3.3 继续训练\n运行 `main.py` 并添加 `--continue_training` 参数，即可从 YOUR_CKPT 恢复优化器和调度器的状态字典。\n\n```bash\npython main.py ... --ckpt YOUR_CKPT --continue_training\n```\n\n#### 3.4 测试\n结果将保存在 `.\u002Fresults` 目录中。\n\n```bash\npython main.py --model deeplabv3plus_mobilenet --enable_vis --vis_port 28333 --gpu_id 0 --year 2012_aug --crop_val --lr 0.01 --crop_size 513 --batch_size 16 --output_stride 16 --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_voc_os16.pth --test_only --save_val_results\n```\n\n## Cityscapes\n\n### 1. 下载 Cityscapes 并将其解压到 `datasets\u002Fdata\u002Fcityscapes`\n```\n\u002Fdatasets\n    \u002Fdata\n        \u002Fcityscapes\n            \u002FgtFine\n            \u002FleftImg8bit\n```\n\n### 2. 在 Cityscapes 上训练模型\n```bash\npython main.py --model deeplabv3plus_mobilenet --dataset cityscapes --enable_vis --vis_port 28333 --gpu_id 0 --lr 0.1 --crop_size 768 --batch_size 16 --output_stride 16 --data_root .\u002Fdatasets\u002Fdata\u002Fcityscapes\n```\n\n## 参考文献\n\n[1] [语义图像分割中的空洞卷积再思考](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.05587)\n\n[2] [用于语义图像分割的带空洞可分离卷积的编码器-解码器](https:\u002F\u002Farxiv.org\u002Fabs\u002F1802.02611)","# DeepLabV3Plus-Pytorch 快速上手指南\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 Windows\n*   **Python**: 3.6+\n*   **深度学习框架**: PyTorch 1.4+\n*   **硬件**: 支持 CUDA 的 NVIDIA GPU (可选，但训练和推理强烈建议使用)\n\n**前置依赖安装**:\n克隆仓库后，首先安装必要的 Python 包。国内用户推荐使用清华源或阿里源加速安装：\n\n```bash\npip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n若需可视化训练过程，还需安装 `visdom`：\n```bash\npip install visdom -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 2. 安装与模型下载\n\n本项目无需复杂的编译安装步骤，克隆代码即可使用。核心步骤是下载预训练权重。\n\n### 2.1 获取代码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch.git\ncd DeepLabV3Plus-Pytorch\n```\n\n### 2.2 下载预训练模型\n项目提供了多种骨干网络（ResNet, MobileNet, HRNet 等）在 Pascal VOC 和 Cityscapes 数据集上的预训练权重。\n\n*   **国际下载**: [Dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fw3z9z8lqpi8b2w7\u002FAAB0vkl4F5vy6HdIhmRCTKHSa?dl=0)\n*   **国内高速下载 (推荐)**: [腾讯微云](https:\u002F\u002Fshare.weiyun.com\u002Fqqx78Pv5)\n\n下载完成后，将 `.pth` 文件放置在项目根目录下的 `checkpoints` 文件夹中（若不存在请新建）。\n\n> **注意**: 如果使用 HRNet 骨干网络，需单独从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NxCK7Zgn5PmeS7W1jYLt5J9E0RRZ2oyF\u002Fview?usp=sharing) 下载对应的预训练骨干权重。\n\n## 3. 基本使用\n\n### 3.1 加载预训练模型进行推理\n以下是使用 Python 代码加载模型并进行语义分割的最简示例。本例以 `deeplabv3plus_mobilenet` 为例，类别数设为 21 (Pascal VOC)。\n\n```python\nimport torch\nfrom network import modeling\nfrom PIL import Image\nimport numpy as np\n\n# 1. 定义模型名称和参数\nMODEL_NAME = 'deeplabv3plus_mobilenet'\nNUM_CLASSES = 21  # Pascal VOC 为 21 类，Cityscapes 为 19 类\nOUTPUT_STRIDE = 16\n\n# 2. 初始化模型并加载权重\nmodel = modeling.__dict__[MODEL_NAME](num_classes=NUM_CLASSES, output_stride=OUTPUT_STRIDE)\n# 请替换为您实际下载的权重路径\ncheckpoint = torch.load('checkpoints\u002Fbest_deeplabv3plus_mobilenet_voc_os16.pth') \nmodel.load_state_dict(checkpoint['model_state'])\nmodel.eval()\nmodel.to('cuda' if torch.cuda.is_available() else 'cpu')\n\n# 3. 准备输入图像 (假设 images 是一个形状为 [N, C, H, W] 的 Tensor)\n# 此处仅为示意，实际使用时需对图片进行归一化和 ToTensor 处理\n# images = ... \n\n# 4. 执行推理\nwith torch.no_grad():\n    outputs = model(images)\n    \n# 5. 获取预测结果并可视化\npreds = outputs.max(1)[1].detach().cpu().numpy()\n\n# 假设 val_dst 是已初始化的数据集对象，用于解码颜色映射\n# colorized_preds = val_dst.decode_target(preds).astype('uint8') \n# 若无数据集对象，可手动应用调色板或将 preds 保存为灰度图查看\nresult_image = Image.fromarray(preds[0].astype('uint8')) \nresult_image.save('output_mask.png')\n```\n\n### 3.2 命令行单张图片预测\n如果您只想快速测试一张图片或一个文件夹，可以直接使用提供的 `predict.py` 脚本。\n\n**预测单张图片：**\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen\u002Fbremen_000000_000019_leftImg8bit.png --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\n**预测整个文件夹：**\n```bash\npython predict.py --input datasets\u002Fdata\u002Fcityscapes\u002FleftImg8bit\u002Ftrain\u002Fbremen --dataset cityscapes --model deeplabv3plus_mobilenet --ckpt checkpoints\u002Fbest_deeplabv3plus_mobilenet_cityscapes_os16.pth --save_val_results_to test_results\n```\n\n### 3.3 关于空洞可分离卷积 (Atrous Separable Convolution)\n仓库中所有预训练模型均**未**使用空洞可分离卷积训练。如果您希望在训练或推理中启用此特性以提升性能，请在运行 `main.py` 或相关脚本时添加 `--separable_conv` 参数。系统会自动将普通的 `nn.Conv2d` 转换为 `AtrousSeparableConvolution`。","某智慧城市交通团队需要快速构建一套路侧摄像头实时分析系统，以自动识别道路上的车辆、行人及车道线，辅助交通流量监控。\n\n### 没有 DeepLabV3Plus-Pytorch 时\n- **研发周期漫长**：团队需从零搭建复杂的语义分割网络结构，并花费数周时间在 Pascal VOC 或 Cityscapes 数据集上训练基础模型，难以应对紧急项目交付。\n- **边缘部署困难**：缺乏针对移动端优化的预训练权重（如 MobileNet 骨干），导致模型参数量过大，无法在算力有限的边缘计算盒子上流畅运行。\n- **结果可视化繁琐**：需要将模型输出的原始索引掩码手动编写代码映射为彩色语义图，开发过程容易出错且效率低下。\n- **适配新数据门槛高**：若要迁移到特定城市的道路场景，缺乏清晰的数据集接入标准，自定义数据加载和解码逻辑耗时耗力。\n\n### 使用 DeepLabV3Plus-Pytorch 后\n- **即插即用启动**：直接加载官方提供的 Cityscapes 预训练模型（如 `deeplabv3plus_mobilenet`），几分钟内即可在测试图像上获得高精度的分割效果，大幅缩短验证周期。\n- **高效边缘推理**：利用内置的轻量级 MobileNet 架构预训练权重，成功将模型部署至路侧边缘设备，在保持较高 mIoU 的同时满足实时帧率要求。\n- **一键可视化输出**：调用数据集自带的 `decode_target` 方法，直接将预测张量转换为直观的 RGB 彩色语义图，便于快速向非技术人员展示分析结果。\n- **灵活定制扩展**：参考官方提供的 `MyDataset` 模板，快速实现了本地交通数据的接入与微调，轻松适配不同光照和天气下的道路场景。\n\nDeepLabV3Plus-Pytorch 通过提供丰富的预训练架构和标准化的工具链，让团队从重复的底层建模中解放出来，专注于业务场景的快速落地与优化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVainF_DeepLabV3Plus-Pytorch_508897f4.png","VainF","Gongfan Fang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FVainF_0a06f2e8.jpg","Zzz (¦3[▓▓] | Ph.D. Student @ NUS \r\n","National University of Singapore","Singapore","gongfan@u.nus.edu",null,"https:\u002F\u002Ffangggf.github.io\u002F","https:\u002F\u002Fgithub.com\u002FVainF",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,2621,517,"2026-04-17T05:33:51","MIT","未说明","需要 NVIDIA GPU（支持多卡训练，命令示例中包含 --gpu_id），具体型号和显存未说明，但考虑到 Cityscapes 数据集训练批次大小为 16 且图像较大，建议大显存显卡；CUDA 版本未说明",{"notes":94,"python":91,"dependencies":95},"1. 该仓库不包含 SyncBN（同步批归一化），因此在多 GPU 和小批量大小下训练可能会导致性能下降。2. 支持将普通卷积转换为空洞可分离卷积（需添加 '--separable_conv' 参数）。3. 预训练模型需从 Dropbox、腾讯微云或 Google Drive 手动下载。4. 训练 Pascal VOC trainaug 数据集需额外下载增强标签文件。5. 可视化训练过程可选安装并运行 visdom 服务。",[96,97,98,99,100],"torch","torchvision","numpy","Pillow","visdom",[14,15],[103,104,105,106,107,108],"deeplabv3plus","deeplabv3","pytorch","pascal-voc","cityscapes","segmentation","2026-03-27T02:49:30.150509","2026-04-18T00:37:20.727825",[112,117,122,127,132,137],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},38081,"如何复现论文中的高分结果（mIoU > 75%）？","要复现高分结果，建议采取以下措施：1. 使用更大的裁剪尺寸（crop size），例如 768；2. 使用 RandomScale 数据增强，范围设为 [0.5, 2.0]；3. 必须使用 DistributedDataParallel 配合 PyTorch 的 SyncBatchNorm（同步批归一化），因为默认代码未同步 BatchNorm；4. 确保显存足够大以支持上述设置。参考命令参数包括：--crop_size 768 等。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F37",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},38082,"使用预训练模型进行测试时，输出结果混乱或错误怎么办？","这通常是因为数据集不匹配导致的。请确保测试命令中的 --dataset 参数与预训练模型所训练的数据集一致。例如，如果使用的是在 Cityscapes 上训练的模型（如 best_deeplabv3plus_mobilenet_cityscapes_os16.pth），则命令中必须指定 --dataset cityscapes；如果是 VOC 模型，则指定 --dataset voc。数据集类型不匹配会导致分割结果完全错误。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F77",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},38083,"训练自定义数据集时出现错误或标签问题如何解决？","训练自定义数据集时需注意两点：1. 如果修改了类别数量，记得在 voc.py 文件中更新颜色映射表（colormap\u002Fcmap）以匹配新的类别数；2. 正确设置 ignore_index 参数，该参数应设为网络不需要学习的类别标签值，通常背景或无效区域标记为 255，因此需将 ignore_index 设置为 255。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F80",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},38084,"训练时报错 'Expected more than 1 value per channel' 是什么原因？","这是因为 BatchNorm 层在训练模式下需要计算均值和方差，要求每个通道的输入值数量大于 1。当 batch_size 设置为 1 时，无法满足此条件从而报错。解决方法是将 batch_size 设置为大于 1 的值（例如 2 或更多）。不建议简单替换为 InstanceNorm，除非你明确知道其对任务的影响。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F27",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},38085,"使用 IntermediateLayerGetter 提取骨干网络特征后，参数是否丢失？","不会丢失关键参数。IntermediateLayerGetter 会保留从输入层到指定提取层之间的所有层及其参数。例如，若请求提取 ResNet 的 layer2，生成的模块将包含 conv1, bn1, layer1 和 layer2 的所有参数。中间层（如 layer1）实际上被包含在“所需层”的前置依赖中。如果不想改变架构，也可以使用 register_forward_hook 来提取中间特征。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F11",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},38086,"为什么默认设置下训练的 mIOU 低于官方提供的预训练模型？","默认设置可能未包含达到最佳性能所需的全部技巧。要达到官方模型的分数（如 0.783），建议使用 VOC12aug 数据集（而非仅 VOC12），并检查是否启用了验证集裁剪（--crop_val）。此外，确保学习率、batch size 和 output stride 等超参数与复现高分的配置一致（例如 lr 0.01, crop_size 513, batch_size 16, output_stride 16）。","https:\u002F\u002Fgithub.com\u002FVainF\u002FDeepLabV3Plus-Pytorch\u002Fissues\u002F9",[]]