前言:
卷积网络:通常提取图像的主要信息(轮廓等)。这也是降噪自编码的主要思想。
一.图像分割
1.下采样方法
(1)使用池化进行下采样
(2)使用较大步长进行下采样
(3)使用Padding进行下采样
2.上采样方法
(1)转置卷积:参数较少,速度较快
(2)像素插值:信息缺失较少,速度适中
(3)像素融合:通道信息平铺,不丢失信息
3.模型
(1)FCN
- 输入图像打大小(500x500),输出图像大小(568x568),输出大于输入,存在上采样后图像大小和位置发生变化。不能用于像医学影像等类似严谨项目。
- 网络中使用了加法(add)作为跳跃连接,没有cat效果好(增加图像维度)。
- 网络中使用了池化。使用池化会导致位置变化。
(2)FCN效果图
网络越深,效果越不好。
(3)U-net
- 输入灰度图(大小:572x572,灰度图好学习);输出大小(388x388)。输入到输出,图像变小。
- 输入和输出大小不一样可以cat吗?
可以。
-
对输入的大图上截取小图;
-
对小图进行Padding。
-
与FCN对比的变化?
没有使用池化,防止像素位置变化。
- 上采样没有使用转置卷积。
转置卷积会导致输出图像出现“象棋格子效应”。(卷积核一般使用奇数,因为奇数卷积核的锚点在卷积核中心,造成中间像素点的颜色好,周围像素点的颜色不好,出现“象棋格子效应”。(奇数卷积核对分类模型好,对生成模型不好)。偶数卷积核这种效应很少)
(4)U-net应用
为医学领域而生。
-
卷积核边缘特征信息不够,要进行裁剪。
-
医学影像比较大。首先,裁剪成重叠的小图;再进行图像分割。
-
U-net为什么是4层?
-
可能是作者的实验结果。
-
卷积越多,对像素的偏移越大,对小物体不好。
-
比残差网络厉害的是稠密网络。U-net网络结构与稠密网络结构思想一样。
(5)U-net++
一文必读(周纵苇所写):https://zhuanlan.zhihu.com/p/44958351
-
deep supervision:
-
四个网络,四个损失函数。
-
训练时候,可根据需求对损失函数添加权重。如:对深的部分,权重加大,增加对大物体的分割效果。
-
深监督:deep supervision(相当于激活函数)。使用1x1的卷积,监督每一层的卷积。
-
损失函数累加计算。
-
剪枝:
训练的时候全部训练;测试的时候,选择一些希望用到的层(浅层网络对小物体效果好;深层网络对大物体效果好)。
- 其他改进模型
(6)DeepLab
- ASPP:空洞金字塔池化
- SPP:普通金字塔池化
(7)mask-Rcnn:
- 自动驾驶
- ROI Pooling:下采样时,小数取整。
- ROI Aling:下采样时,小数要保留,不然会发生位置偏移。
a. R-Cnn
b. Fast-RCNN
c. Faster-RCNN
(8)附加其他网络:
- segnet
- pspnet
二.图像分割模型评估
1.Dice系数
-
使用程度:重要
-
存在性:精度评价
-
细节:
-
是一种集合相似度量函数,通常计算两个样本的相似度(值范围为[0,1]);
-
标签为0和1;
-
计算时,首先将结果值([0,1])与标签值(0和1)相;然后逐元素相加求和。
一文读懂: https://blog.csdn.net/Biyoner/article/details/84728417
2.Dice系数和IOU的关系
一文读懂: https://blog.csdn.net/baidu_33312138/article/details/104942925
3.Dice Loss
-
使用程度:重要
-
存在性:使用Dice系数计算损失
-
细节:
-
适合样本极度不均匀的情况(如正样本少,负样本多的。如下左图)。
-
一般情况下,使用Dice Loss会对反向传播造成不利影响,容易使训练变得不稳定。如上图,从Dice 系数计算出发,正样本一会大,计算的Dice 系数大;正样本一会小,计算的Dice 系数小。就会出现损失下降不稳定。
-
很少单独使用。
-
Dice 系数越高,Dice Loss越小。
4.Soft Dice Loss
-
使用程度:重要
-
存在性:Dice Loss的改进
-
细节:
-
3点改进:Dice计算时,分母平方;值范围[-1,1];添加权重。
-
分母求平方,将值压小,使得结果变大
-
在某些数据集(如,一张图上没有正样本)当中没有正样本。正常情况下,值范围为[0,1]。如果全部为负样本时,会将值范围变为[-1,1],让负样本变得更负(负样本用负数表示)(关于Y轴对称)。如,正常情况下,负样本为0,根据Dice Loss计算公式可知,计算得到的Dice Loss为1,不符合预期结果。将1变为-1,Dice Loss为0。
- 计算时,添加权重。
5.IOU Loss
-
使用程度:重要
-
存在性:进度评价。
-
细节:
-
可用来做回归框。
6.Bce Loss
-
使用程度:非常重要
-
存在性:精度评价
-
细节:
-
在样本分布均匀的情况下(),BCE Loss优于Dis Loss
-
当样本分布不均匀时,
-
通用计算公式:
- 2分类计算公式:
- BCE Loss对正负样本的关注度一样。当正负样本分布均匀时,BCE Loss对损失的计算很好。当样本分布不太均匀的情况下,BCE Loss不能使用。如,上图 ,当正样本占整幅图像的千分之一,神经网络学习的时候,会学不到正样本(如肿瘤预测,会导致预测不到肿瘤),根据BCE Loss公式,正样本占比1,负样本占比1000,计算损失时更注重负样本,甚至损失计算过程中,损失下降不到正样本的占比(1/1000)(因为损失计算过程梯度下降不到0损失,可能当负样本损失下降到大于1/1000时,损失已经不再下降了,这会导致忽略掉正样本的损失计算),最终导致网络什么也不能预测。
7.WBE loss
-
使用程度:非常重要
-
存在性:改进BCELoss(对BCELoss加权重)
-
细节:
-
使得BCELoss使用符合样本分布不均匀的情况。
-
二分类:WBE loss
-
多分类:WCE loss
-
缺点:
-
权重为超参数,不好调节。
无敌牛逼: https://blog.csdn.net/m0_37477175/article/details/83004746
其中,
如:
8.Balanced cross entropy
-
使用程度:非常重要
-
存在性:对正负样本都加权重。
-
细节:
-
该损失函数和WCE基本一致,不同点在于该损失函数对负样本也加了权重。
一文读懂: https://blog.csdn.net/panglinzhuo/article/details/77131063
9.Focal Loss
- 使用程度:重要
- 存在性:
- 细节:
- 该损失函数降低easy examples的权重,使得模型更加关注hard examples。
- [ ]
一文读懂: https://blog.csdn.net/Biyoner/article/details/84728417
其中,γ为超参数,当γ=0的时候,我们得到标准BCE。
10.常用loss组合
好文: https://blog.csdn.net/qq_16949707/article/details/79929951
- 使用程度:无敌重要
- 存在性:BCEloss适用于样本均衡,对样本不均衡不适用;Dice Loss适用于样本不均衡。两者结合使用。
- 使用程度:最终无敌重要
- 存在性:对困难样本的关注度更高。效果最好。
11.分割精度
-
使用程度:重要
-
存在性:评价分割精度
-
细节:
-
就是分割准确的面积占GT图像中真实面积的百分比。
当,Ts=Rs时,完全分隔正确。
12.过分割率
-
使用程度:重要
-
存在性:评价分割精度
-
细节:
-
即分割在GT图像参考面积之外的像素点的比率。
13.欠分割率
-
使用程度:重要
-
存在性:评价分割精度
-
细节:
-
即,分割在GT图像参考面积之中欠缺的像素点的比率。
三.数据集
VOCdevkit