LEDNet

GitHub
522 80 较难 1 次阅读 3个月前MIT图像开发框架数据工具
AI 解读 由 AI 自动生成,仅供参考

LEDNet 是一款专为实时语义分割设计的轻量级深度学习网络。它主要解决了传统卷积神经网络在移动设备或资源受限环境下计算负担过重、难以兼顾速度与精度的难题,让高密度的图像理解任务也能流畅运行。

这款工具非常适合从事计算机视觉研究的学者、需要部署边缘计算应用的开发者,以及关注模型效率的算法工程师使用。其核心亮点在于采用了非对称的编码器 - 解码器架构:编码器部分以 ResNet 为骨干,创新性地引入了“通道分裂”与“通道洗牌”操作,在大幅降低计算成本的同时保持了较高的分割精度;解码器则利用注意力金字塔网络进一步简化结构。最终模型参数量不足 100 万,在单张 GTX 1080Ti 显卡上推理速度可超过 71 FPS,在 Cityscapes 数据集上实现了速度与准确率的优异平衡,是落地实时视觉任务的理想选择。

使用场景

一家自动驾驶初创团队正在为量产车型开发实时道路感知系统,需要在嵌入式设备上对摄像头画面进行毫秒级的语义分割以识别车道线和行人。

没有 LEDNet 时

  • 部署主流高精度分割模型导致计算负载过重,车载芯片无法维持实时帧率,车辆决策出现明显延迟。
  • 为了强行提升速度而简化网络结构,牺牲了太多细节识别能力,导致远处行人或模糊车道线漏检率高。
  • 模型参数量过大占用大量内存资源,挤占了其他关键驾驶辅助功能的运行空间。
  • 在移动端调试时需要反复权衡速度与精度,缺乏一种能同时兼顾两者的现成轻量级架构。

使用 LEDNet 后

  • 借助其非对称编码器 - 解码器架构,系统在单张 GPU 上推理速度突破 71 FPS,完美满足实时性要求。
  • 利用通道分裂与洗牌操作,在大幅降低计算成本的同时,依然保持了对细小物体的高精度分割效果。
  • 整体参数量压缩至 100 万以内,显著释放了嵌入式设备的内存带宽,便于多任务并行处理。
  • 解码端引入的注意力金字塔网络进一步轻量化了复杂度,让团队无需手动魔改即可直接落地高性能方案。

LEDNet 通过极致的轻量化设计,成功打破了移动端实时语义分割中速度与精度难以兼得的技术瓶颈。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU,测试环境为 GTX 1080Ti,需安装 CUDA 9.0 和 cuDNN 7.1

内存

未说明

依赖
notes代码在 Python 3.6、CUDA 9.0、PyTorch 0.4.1 环境下测试通过(也支持 PyTorch 0.4.1+ 版本)。建议使用 Anaconda 管理环境。训练数据主要支持 Cityscapes 数据集,需手动下载并转换标签格式。建议先在 ImageNet 上预训练编码器部分,再微调解码器以获得更好效果。
python3.6.x
torch>=0.4.1
visdom
torchsummary
LEDNet hero image

快速开始

LEDNet:用于实时语义分割的轻量级编码器-解码器网络

python-image pytorch-image

目录:

简介

本项目包含代码(注:代码已在 python=3.6、cuda=9.0、PyTorch-0.4.1 的环境下测试,同时也支持 PyTorch-0.4.1+),用于实现:LEDNet:用于实时语义分割的轻量级编码器-解码器网络,作者为 Yu Wang

巨大的计算负担限制了 CNN 在移动设备上进行密集估计任务(即语义分割)的应用。在本文中,我们提出了一种轻量级网络来解决这一问题,即 **LEDNet**,它采用非对称的编码器-解码器架构,用于实时语义分割任务。具体来说,编码器以 ResNet 作为骨干网络,并在每个残差块中引入两种新的操作——通道拆分和通道洗牌——以大幅降低计算成本,同时保持较高的分割精度。另一方面,解码器中采用了注意力金字塔网络(APN),进一步降低了整个网络的复杂度。我们的模型参数量不足 100 万,能够在单张 GTX 1080Ti GPU 上以超过 71 FPS 的速度运行。全面的实验表明,我们的方法在 Cityscapes 数据集上实现了速度与精度之间的最佳平衡,成为一种高效的实时语义分割方法。

项目结构

├── datasets  # 包含项目的所有数据集
|  └── cityscapes #  Cityscapes 数据集
|  |  └── gtCoarse #  Coarse Cityscapes 标注
|  |  └── gtFine #  Fine Cityscapes 标注
|  |  └── leftImg8bit #  Cityscapes 训练图像
|  └── cityscapesscripts #  Cityscapes 数据集标签转换脚本!
├── utils
|  └── dataset.py # Cityscapes 数据集的数据加载器
|  └── iouEval.py # 用于计算“平均 IoU”和“类别 IoU”
|  └── transform.py # 数据预处理
|  └── visualize.py # 使用 Visdom 可视化
|  └── loss.py # 损失函数
├── checkpoint
|  └── xxx.pth # 从 ImageNet 预训练的编码器模型
├── save
|  └── xxx.pth # 从头开始训练的模型
├── imagenet-pretrain
|  └── lednet_imagenet.py # 
|  └── main.py # 
├── train
|  └── lednet.py  # 语义分割模型定义
|  └── main.py # 训练模型的脚本
├── test
|  |  └── dataset.py 
|  |  └── lednet.py # 模型定义
|  |  └── lednet_no_bn.py # 移除模型定义中的 BN 层
|  |  └── eval_cityscapes_color.py # 测试结果并生成 RGB 图像
|  |  └── eval_cityscapes_server.py # 生成结果并上传至官方服务器
|  |  └── eval_forward_time.py # 测试模型推理时间
|  |  └── eval_iou.py 
|  |  └── iouEval.py 
|  |  └── transform.py 

安装

  • Python 3.6.x。推荐使用 Anaconda3
  • 设置 Python 环境。
pip3 install -r requirements.txt
  • 环境要求:PyTorch_0.4.1;cuda_9.0;cudnn_7.1;python_3.6。

  • 克隆本仓库。

git clone https://github.com/xiaoyufenfei/LEDNet.git
cd LEDNet-master

数据集

├── leftImg8bit
│   ├── train
│   ├──  val
│   └── test
├── gtFine
│   ├── train
│   ├──  val
│   └── test
├── gtCoarse
│   ├── train
│   ├── train_extra
│   └── val

训练 LEDNet

  • 如需了解可选参数,可以运行:python main.py -h

  • 默认情况下,我们假设您已将 Cityscapes 数据集下载到 ./data/cityscapes 目录下。

  • 要使用 train/main.py 脚本训练 LEDNet,您可以按照 main.py 中列出的参数作为命令行选项,或手动修改它们。

python main.py --savedir logs --model lednet --datadir path/root_directory/  --num-epochs xx --batch-size xx ...

恢复训练(若解码器部分损坏)

  • 如需了解可选参数,可以运行:python main.py -h
python main.py --savedir logs --name lednet --datadir path/root_directory/  --num-epochs xx --batch-size xx --decoder --state "../save/logs/model_best_enc.pth.tar"...

测试

  • 训练过程中的模型可以在 这里 找到。这可能不是最佳模型,您可以自行从头训练一个,或者使用在 ImageNet 上预训练的编码器模型对训练好的解码器进行微调。例如:
更多详情请参阅 ./test/README.md

结果

  • 更多详细信息请参考我们的论文。
方法 数据集 Fine Coarse IoU_cla IoU_cat FPS
LEDNet cityscapes 70.6​% 87.1​%​ 70​+​

定性分割结果示例:

引用

如果您发现此代码对您的研究有所帮助,请使用以下 BibTeX 条目。

 @article{wang2019lednet,
  title={LEDNet: A Lightweight Encoder-Decoder Network for Real-time Semantic Segmentation},
  author={Wang, Yu and Zhou, Quan and Liu, Jia and Xiong,Jian and Gao, Guangwei and Wu, Xiaofu, and Latecki Jan Longin},
  journal={arXiv preprint arXiv:1905.02423},
  year={2019}
}

提示

  • 受GPU资源限制,项目结果还需进一步提升……
  • 建议先在ImageNet上预训练Encoder,再对Decoder部分进行微调,这样效果会更好。

参考文献

  1. 用于图像识别的深度残差学习
  2. ENet:一种用于实时语义分割的深度神经网络架构
  3. ERFNet:用于实时语义分割的高效残差因子化卷积网络
  4. ShuffleNet:一种专为移动设备设计的极其高效的卷积神经网络

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.1k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架