跳到正文
AI 图鉴
05 计算机视觉进阶本域第 5 篇

语义分割

给每个像素上色:不是画框,而是填色本

定义

语义分割为图像中的每个像素分配一个类别标签,输出一张与原图同尺寸的类别图。它回答的是「每个像素属于什么」,从而给出物体精确的轮廓,而不只是粗略的矩形框。

直观理解

检测用矩形框圈出「那里有只猫」,分割则把猫的每一根轮廓毛边都描出来。如果说检测是在照片上画方框,分割就是给照片填色本——每个像素都要决定自己属于哪种颜色。

图 1

分割任务的层级:是否区分同类个体,是语义、实例与全景分割的分水岭

图像分割图像分割语义分割语义分割每个像素一个类别每个像素一个类别不区分同类个体不区分同类个体实例分割实例分割区分同类中的不同个体区分同类中的不同个体通常建立在检测之上通常建立在检测之上全景分割全景分割可数对象按实例可数对象按实例背景区域按语义背景区域按语义
图 2

语义分割在 PASCAL VOC 2012 上的 mIoU 演进:从全卷积的 FCN 到空洞卷积与编解码结合

工作原理

  1. 01

    三种分割的分野

    语义分割只标类别(所有「人」同色),实例分割还要区分个体(人 A 与人 B 不同色),全景分割则把两者合一——可数对象按实例、背景区域按语义。

  2. 02

    全卷积网络与上采样

    把分类网络末端的全连接换成卷积,得到保留空间结构的特征图;再用转置卷积或插值恢复到原分辨率。分割由此从「整图分类」变成「逐像素分类」。

  3. 03

    U-Net 的跳连

    编码器逐步下采样获取语义,解码器逐步上采样恢复细节;跳连把编码器的浅层高分辨率特征直接接到解码器对应层,弥补下采样丢失的边界信息——这在数据稀缺的医学分割中尤其关键。

  4. 04

    Mask R-CNN:检测 + 掩码分支

    在 Faster R-CNN 上并行增加一个逐像素掩码分支,对每个候选框输出一个二值掩码,从而顺带得到实例分割,是检测框架的一次优雅扩展。

关键公式

IoU = |A ∩ B| / |A ∪ B| , mIoU = mean over classes
IoU 衡量预测区域与真实区域的重合度;mIoU 是对所有类别取平均,分割任务的主指标。
图 3

U-Net 的对称结构:编码器一路下采样,解码器一路上采样,跳连把两端的同分辨率特征接起来

跳连是 U-Net 在边界细节上胜过纯编码-解码结构的关键。

应用场景

  • 医学影像:器官与病灶轮廓勾画
  • 自动驾驶:可行驶区域与车道线分割
  • 遥感制图:地表覆盖分类
  • 图像编辑:抠图、背景替换、人像分割

常见误区

  • 语义分割不区分同类个体。两个人紧挨在一起只会是同一块「人」区域,要分开必须用实例分割。
  • 逐像素准确率会被背景主导。当一片天空占了大半,全预测成天空也能拿到很高的准确率,因此更常用 mIoU 而非像素准确率。
  • 边界永远是最难的部分。下采样越多语义越准但边界越糊,上采样与跳连始终在语义与细节之间权衡。

关键术语

语义 / 实例 / 全景分割
类别 → 类别 + 个体 → 二者统一
转置卷积
一种上采样操作,分割解码器常用
跳连
把浅层高分辨率特征送入深层,保住边界细节
mIoU
每一类 IoU 的平均值,分割的主指标

延伸阅读