欢迎光临
我们一直在努力

鲁鹏教授《计算机视觉与深度学习》课程笔记与思考 ——11. 视觉识别核心任务实战:语义分割、目标检测与实例分割

        上一篇笔记完成经典 CNN 架构收尾(ResNet 破解深层瓶颈),并初步接触图像分割与目标检测基础。本节课聚焦视觉识别四大核心任务(分类、语义分割、目标检测、实例分割),深入拆解 语义分割技术演进(滑动窗口→全卷积)、目标检测方案迭代(R-CNN→一阶段方法) 及 实例分割实现逻辑(Mask R-CNN),核心回答 “如何让 CNN 从‘分类’走向‘像素级 / 目标级精细识别’”。

课程链接:https://www.bilibili.com/video/BV1V54y1B7K3/?spm_id_from=333.788.player.switch&vd_source=a42184218f2a2585e044c7563e890c29&p=11

一、视觉识别四大任务:从 “整体分类” 到 “精细区分”

四大核心任务的区别是视觉识别基础框架,具体对比如下:

任务类型核心目标输出结果示例关键特点
分类(Classification) 判断图像整体类别 “猫”(1 个类别标签) 不考虑空间位置

语义分割

(Semantic Segmentation)

逐像素分配类别标签 “草、猫、树、天空”(像素级) 不区分同类实例

目标检测

(Object Detection)

定位目标 + 判断类别 “狗(x1,y1,w1,h1)、猫(x2,y2,w2,h2)” 输出边界框

实例分割

(Instance Segmentation)

定位目标 + 判类别 + 区分同类实例 “狗 1(像素区 A)、狗 2(像素区 B)” 兼具检测与分割能力

视觉识别四大任务

二、语义分割:逐像素分类的技术演进

1. 核心定义

        为图像每个像素分配类别标签(如 “天空”“牛”“草地”),不区分同一类别的不同实例,最终输出与原图像尺寸一致的类别掩码图。

配图建议:文档第 3 页 —— 展示像素级类别标注示例。

2. 早期思路:滑动窗口(效率痛点)

  • 操作逻辑:滑动固定尺寸窗口,以窗口中心点像素为预测对象,遍历全图生成分割结果。
  • 核心问题:重叠区域特征反复计算,效率极低(如 512×512 图像需处理数十万窗口)。

滑动窗口

3. 关键突破:全卷积网络(FCN)设计

  • 核心创新:用卷积层替代传统 CNN 的全连接层,可接受任意尺寸输入,一次性输出像素级预测。
  • 流程:输入(3×H×W)→多轮卷积(输出 D×H×W)→1×1 卷积(转通道数为类别数 C,输出 C×H×W)→argmax(输出 H×W 分割图)。
  • 总的来说,全卷积网络解决了:1.早期滑动窗口方法的效率极低问题;2.传统 CNN 输入尺寸固定、无法输出像素级预测的局限

全卷积网络

4. 核心难题:下采样与上采样协同

(1)下采样:解决显存危机

        通过最大池化或步长>1 的卷积缩小特征图尺寸(如 H×W→H/2×W/2),减少显存占用,同时扩大感受野。

(2)上采样:恢复像素尺寸
  • 反池化(Unpooling):非可学习操作,包括最近邻反池化(像素复制扩展)、最大反池化(记录池化时最大值位置并恢复)。

    反池化

  • 转置卷积(Transpose Convolution):可学习操作,通过卷积核反向滑动扩大尺寸,需处理重叠区域求和,是主流方案。

可学习操作的转置卷积

 

三、目标检测:“定位 + 分类” 的方案迭代

1. 任务本质:单目标 vs 多目标

  • 单目标:图像含 1 个目标,输出 “类别 + 1 个边界框(x,y,w,h)”。

    单目标检测

  • 多目标:图像含多个目标,输出 “每个目标的类别 + 边界框”。

    多目标检测

2. 单目标检测:回归建模与多任务损失

  • 网络设计:分类网络(如 AlexNet)基础上,全连接层后增两个分支:分类分支(Softmax 激活,交叉熵损失)、回归分支(无激活,L2 损失)。

    两个分支

  • 总损失:分类损失 + λ× 回归损失(λ 平衡系数)。

3. 多目标检测困境

  • 输出维度不固定:目标数量不同导致输出参数数量变化。
  • 计算量爆炸:遍历所有可能区域(不同位置 / 尺寸 / 长宽比)成本极高。

多目标检测:输出维度不固定

多目标检测:计算量爆炸

4. 方案演进:两阶段与一阶段

(1)两阶段检测(精度优先)
  • R-CNN(痛点:效率低):Selective Search 生成~2000 候选区域→逐区域提特征→SVM 分类 + 回归器修正,效率低(单图数十秒)。

    区域建议(Selective Search)

    R-CNN

  • Fast R-CNN:全图提特征→RoI Pool 统一区域尺寸→多任务输出,效率提升(单图 2-3 秒),但 RoI Pool 存在对齐误差。

Fast R-CNN对比R-CNN的优化

RoI Pool 统一区域尺寸

  • Faster R-CNN:RPN(区域建议网络)生成候选区域(替代 Selective Search)→RoI Align(修正对齐误差)→端到端训练,速度近实时(单图~0.2 秒)。

Faster R-CNN的两阶段网络结构

(2)一阶段检测(速度优先)
  • YOLO:图像划分为 S×S 网格,每个网格预测 B 个边界框 + 类别概率,速度快(~45 帧 / 秒),小目标精度低。
  • SSD:多尺度特征图预测目标,平衡速度与精度。
  • RetinaNet:用 focal loss 解决正负样本不平衡,提升精度。

一阶段检测

5. 精度影响因素

  • 主干网络:深层宽网络(如 ResNet-101)优于浅层窄网络。
  • 基础架构:两阶段精度高于一阶段。
  • 图像尺寸:尺寸越大,小目标精度越高。
  • 区域建议个数:个数越多,漏检率越低(两阶段)。

精度影响因素

四、实例分割:Mask R-CNN 的 “检测 + 分割” 融合

1. 与语义分割的区别

语义分割仅区分类别,实例分割需同时区分类别与同类实例。

2. 核心设计:Faster R-CNN 加掩码分支

  • 流程:全图特征提取→RPN 生成候选区域→RoI Align 处理→三分支输出(分类、回归、掩码)。

    基于Faster R-CNN

  • 掩码分支:预测 28×28 二进制掩码(1 属该实例,0 不属),再上采样至原区域尺寸。

区域建议——RPN

Mask R-CNN结构示意图

3. 训练与效果

  • 损失:分类损失 + 回归损失 + 掩码损失(交叉熵)。
  • 功能:同时完成目标检测、实例分割、人体姿态估计。

Mask R-CNN训练阶段使用的Mask样例

Mask R-CNN实例分割结果

Mask R-CNN检测姿态

 

五、开源框架:实战工具支持

  • TensorFlow Detection API:支持 Faster R-CNN、SSD、Mask R-CNN,文档完善。
  • Caffe2 Detectron(Detectron2):支持 Mask R-CNN、RetinaNet,性能优。
  • 优势:提供预训练模型,支持自定义数据集微调。

六、学习感悟:技术演进核心逻辑

  • 效率优化:从逐区域计算到全图计算,减少重复操作(如 FCN、Faster R-CNN)。
  • 精度与速度权衡:两阶段精度高,一阶段速度快,需按需选型。
  • 任务融合:实例分割是检测与分割的融合,未来更多任务将基于现有框架扩展。
  • 七、结语

            本节课覆盖视觉识别核心任务的技术演进:语义分割解决像素级分类,目标检测解决定位 + 分类,实例分割实现实例级精细区分。

    赞(0)
    未经允许不得转载:171主机测评 » 鲁鹏教授《计算机视觉与深度学习》课程笔记与思考 ——11. 视觉识别核心任务实战:语义分割、目标检测与实例分割
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址