图像分割入门
语义分割与实例分割概述
检测任务: 框出目标
分割任务: 像抠图一样把需要的目标抠出来(每个像素判断, 逐像素做分类)
语义分割: 一类(大类别)的都标出来
实例分割: 不光区分类别, 还要区分类别的个体
损失函数

pos_weight:权重项, 正例与负例的比例
Focal loss
根据样本难易程度(像素点的难度), 给样本增加权值

MIOU(评估标准)


MIOU:计算所有类别, 求平均
卷积神经网络
-
卷积神经网络与传统网络
![]()
-
卷积神经网络整体架构:
- 输入层
- 卷积层: 给予特征
- 池化层: 压缩特征
- 全连接层: 将卷积输出的二维特征图转化成一维的一个向量
- 卷积层
对于一个通道的计算:
![]()
左边是图像的小区域, 右边是计算出的特征值 - 通道与卷积特征值计算
一个3通道的例子:
![]()
计算:
Input的每个通道的一层数据, 和Filter中对应的矩阵相乘求和, 再把每一层的数据求和加上偏置b, 最后得到output中的一个数据[这里output被称为特征图 feature map, 特征图可以得到多个再堆叠]
图中矩阵相乘计算, 最后得到第一个绿色小块的值3(步长为2)
步长与卷积核大小对结果的影响

卷积层涉及参数:
滑动窗口步长: 移动的长度
步长越小, 得到的特征越丰富(多)

- 卷积核尺寸: 3X3, 4X4这种
- 边缘填充: 加边框,
因为越在边界的点计算次数越少, 越在中间的点计算次数越多, 所以在边界点外面加几圈0, 使得边界可以被计算次数增加 - 卷积核个数: 最终得到多少个特征图
特征图尺寸计算与参数共享
- 卷积结果的计算公式:
![]()
W1, H1表示输入的宽度, 长度; W2, H2表示输出特征图的宽度, 长度; F表示卷积核长和宽的大小[3X3的FH=3, FW=3]; S表示滑动窗口的步长; P表示边界填充(外面多加了几圈); [filter就是卷积核]
e.g.![]()
H = (32-5+22)/1 + 1 = 32
W = (32-5+22)/1 + 1 = 32
所以输出规模为32X32X10 (10是因为有10个卷积核)
[这道题中卷积操作后的特征图的长度和宽度并未发生变化]
![]()
池化层的作用 (做压缩的或者称为下采样)
- 池化层不涉及矩阵运算, 只是数据筛选
e.g. 最大池化
![]()
整体网络架构
- 卷积conv和非线性激活函数relu组合
- 执行几次卷积后得到大的特征图, 然后压缩
- 卷积和池化只做特征提取
- 卷积和池化完了之后想得到结果还需全连接层FC[在此之前需要拉长/摊平]
![]()
神经网络中层的定义:带参数计算的[卷积层算, 激活层不算, 池化层不算, 全连接层算]
- 上图神经网络有7层
![]()
VCG网络架构
提升层数效果不一定提升
残差网络Resnet

- 理解为特征提取, 是一个可应用于各种情况的神经网络
感受野的作用
- 感受野定义:最后的值是由前面哪些值计算得到的(就是能感受到前面多少值)
![]()
Unet网络编码与解码的过程
- 左边编码层:把当前输入数据做成一个特征(下采样)
- 右边解码层:由当前得到的特征解码成想要的输入结果(上采样)
![]()
Unet升级版本改进
- 特征融合
![]()
中间的是特征融合[就是拼接], 每层与相邻的融合, 之后再不断融合
- deep supervision
只要输出规格满足, 就把中间的每一步也加进损失函数
![]()
后续升级版本介绍
-
剪枝:剪掉最后一层或最后几层
![]()
-
unet+++
![]()
上面得到64X5=320个图

















浙公网安备 33010602011771号