FCN语义分割算法原理与实战

FCN语义分割算法原理与实战

本文若有舛误,尚祈诸君不吝斧正,感激不尽。

前提概要:所使用的材料来源

对应视频材料:FCN语义分割
虽然可能比较简单但是奠定了使用卷积神经网络做语义分割任务的基础。
语义分割:输入图片,经过网络模型,输出原始图片对应像素的类别。

FCN语义分割算法原理

主流常见的计算机视觉任务
  • 图像分类
  • 目标检测
  • 语义分割
  • 实例分割
  • and so on


FCN模型如何进行语义分割

语义分割任务:输出的是矩阵与输入图像大小一致,输出后的每个像素有对应类别的概率,映射原图中对应位置的类别。

FCN模型输出结果解析

假设标注20个类别,则最终输出结果是21个类别,因为还有一个背景类别。

输入HxW -->net --> HxWxC 注意:C(通道数)=分类个数+背景

转置卷积先导
转置卷积的计算过程

输入特征 * 卷积核 = 输出特征


FCN网络版本解析

采取了很多跳转连接方法

全卷积网络为什么可以接收任意大小的输入?
FCN网络的损失函数

损失函数是像素级的分类交叉熵(Pixel-wise Softmax + Cross-Entropy Loss)

语义分割算法模型的评价指标(import!)

常用的包含以下四个:

  • Pixel Accuracy 像素准确率

    • 所有被正确分类的像素所占的比例
    • 特点:直观简单,但对于类分布极度不均衡的数据(如++背景占比很大++)会有"准确率虚高"的问题

  • Mean Accuracy 平均类别准确率

    • 每个类别的像素准确率的平均值
    • 特点:可以平衡类间分布不均的问题,但是++对于小类极为敏感++

  • Mean IoU 平均交并比

    • 每个类别的交并比(IoU)的平均值 (语义分割中最常用的评价指标之一!)
    • 特点:++对每一类都很公平++,能反映模型在小类上的表现

  • Frequency Weighted IoU 频率加权交并比
    • 考虑类别在数据中出现频率的IoU加权平均
    • 特点:类似Mean IU,但考虑了每类像素的数量,更贴近数据真实分布。++避免了某些稀有类对平均结果的影响++

像素准确率和平均类别准确率的案例:

平均交并比案例:

FCN语义分割网络结构讲解

背景:标准的 FCN 论文(Fully Convolutional Networks for Semantic Segmentation, 2015)本身是基于 VGG 构建的,并没有显式使用 bottleneck 结构,但后续很多工作(比如 DeepLab 系列、FCN-ResNet 等)将 FCN 与 ResNet 等网络结合。所有FCN有一些不同结构的版本。

右侧的图片为整体的流程图,最后输出的大小是480 x 480 x 21,其中的21(通道数)表示21个类别。
Bottleneck:

结构图中的Bottleneck构建了四个基本的层,这四个层就是resnet的主干网络。

核心代码:

膨胀卷积:

亦称为空洞卷积,可以增加卷积核的感受野,同时不增加计算量。核心思想是通过插入空洞卷积扩展卷积核的有效感受野,使其捕获更大范围的上下文信息。

注意:代码中的dilation默认为1则表示普通卷积,大于1的情况下表示膨胀卷积。

原版的Resnet中没有使用膨胀卷积。
FCNHead:

头部层对应代码

相关推荐
Aaron - Wistron2 分钟前
Python基础教程2/4(复合数据结构)
python
数据智研3 分钟前
【数据分享】陕西区域统计年鉴(2012-2018)
大数据·人工智能·信息可视化·数据分析
小柯南敲键盘5 分钟前
跨境电商图片翻译与视频字幕翻译工具推荐
python·音视频
ZJU_统一阿萨姆8 分钟前
【推理优化进阶】通信关键路径:NCCL、RDMA 与计算通信重叠
开发语言·人工智能·语言模型·架构·系统架构
AI大法师11 分钟前
品牌焕新不只换 Logo:捷豹案例里的触点重构方法
大数据·人工智能·设计模式·新媒体运营
ZC跨境爬虫28 分钟前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
.道阻且长.33 分钟前
10.LeetCode算法习题讲解--滑动窗口--最大连续为一的个数
算法·leetcode·职场和发展
tuanxiang34 分钟前
在线AI生成率检测:平台投稿内容合规排查踩坑实录
人工智能
machnerrn41 分钟前
智慧交通系列(一)-十字路口车辆闯红灯检测告警抓拍系统(附含数据+源码+模型)
人工智能·python·深度学习
现代野蛮人42 分钟前
【深度学习实验】—— 利用 RNN 模型进行心脏病预测
pytorch·python·tensorflow·ml