demo_system_algorithm/docs/deeplab_v3.md

3.5 KiB
Raw Permalink Blame History

DeepLabV3+ — 语义分割模型

概述

DeepLabV3+ 是 Google 团队提出的经典语义分割模型,采用 Encoder-Decoder 架构 并结合 空洞卷积Atrous Convolution,在保持高分辨率特征图的同时扩大感受野。

核心特性

特性 说明
模型类型 语义分割Semantic Segmentation
骨干网络 MobileNetV3轻量级
输入形式 单张 RGB 图像
输出形式 逐像素类别标签
支持类别数 21含背景

模型架构

graph LR
    A["输入图像"] --> B["MobileNetV3 骨干"]
    B --> C["ASPP 空洞空间金字塔池化"]
    C --> D["Decoder 上采样"]
    D --> E["逐像素分类"]
    E --> F["分割结果图"]
  • ASPPAtrous Spatial Pyramid Pooling — 多尺度空洞卷积并行提取特征,捕获不同尺度下的语义信息
  • Decoder 模块 — 融合低层和高层特征,逐步恢复空间分辨率
  • 输出 — 每个像素分配一个类别标签0~20共21类

目标应用场景

  • 自动驾驶 — 道路、车辆、行人区域分割
  • 工业检测 — 缺陷区域定位与分割
  • 医学影像分析 — 器官 / 病灶区域分割
  • 遥感图像分析 — 土地利用分类

参考来源


输入 / 输出规格

模型接口

方向 名称 数据类型 维度 尺寸 说明
输入 INPUT:0 UINT8 4D 1 × 1 × 512 × 1536 输入图像 (H×W=512×1536)
输出 OUTPUT:0 FP32 4D 1 × 21 × 512 × 512 各类别得分图 (21 类)

说明:输入为单通道灰度图,尺寸 1536×512输出为 21 通道特征图(对应 21 个语义类别),空间尺寸 512×512。


后处理流程

flowchart TD
    A["模型输出: 21通道得分图"] --> B["Softmax 归一化"]
    B --> C["逐像素取最大概率类别"]
    C --> D["双线性上采样至原图尺寸"]
    D --> E["类别索引 → 颜色映射"]
    E --> F["输出彩色分割结果"]

步骤说明

步骤 操作 说明
1 Softmax 将每个像素在 21 个通道上的得分转为概率分布
2 Argmax 取每个像素上概率最大的类别索引作为预测标签
3 尺寸还原 通过双线性插值上采样,恢复至原始输入图像尺寸
4 标签映射 将类别索引映射为预定义的 RGB 颜色,生成可视化结果

颜色映射示例VOC 数据集)

类别 索引 RGB 颜色
背景 0 (0, 0, 0)
飞机 1 (128, 0, 0)
自行车 2 (0, 128, 0)
15 (128, 64, 128)
... ... ...

执行与性能

运行方式

python deeplabv3.py

性能指标

指标 数值
推理平台 边缘板卡NPU
推理时间 ~365.7 ms
输出 FE 均值误差 0.006993
输出 FE 最大误差 0.100305

推理时间包含模型前向传播,不包括前后处理。


输出示例

分割结果

语义分割结果

图中不同颜色区域代表不同的语义类别。结果图保存路径:../resource/deeplab_mobilnet_v3/result.jpg