一.项目概述及上采样技术
1.概述
1.数据处理-模型搭建-训练框架搭建-模型评估-模型部署
卷积输出特征图大小计算公式
O=(I+2P-K)/S+1 P padding填充 K 卷积核 S 步长
卷积层
卷积参数量 in_c*k*k*out_c+out_c
池化层
激活函数
批量归一化
对每个channel进行bn,
增加自由度 让模型自己选择batch的程度
每个batch的均值方差不同 更新移动平均均值和方差
2.pytorch
2.上采样
1.unpooling反池化
2.interpolation插值
3.transposed convolution转置卷积
把卷积转换为相乘的结果
只恢复形状,不恢复数值
KB是KA的转置 保持连接关系
转置卷积等价于卷积反向传播
卷积特征图大小计算公式
O=(I+2P-K)/S+1
I=(O-1)*S+K-2P
转置卷积特征图大小计算公式
O=(I-1)*S+K-2P
二.FCN实战(全卷积神经网络)语义分割
网络做降采样,用更少信息表征高维特征,比如狗17*17 卷积层为7*7,但是有信息损失,所以channel增加
512*7*7输入到fc--4096, 输入必须是512*7*7 不然fc失效 避免这种情况 使用卷积化
把fc改成conv
对原图padding100:为了防止网络后信息太少,不能很好地上采样
对输出结果进行上采样
FCN就是先cov pool 后进行de_cov上采样
利用双线性插值初始化转置卷积的初始值
三.U-Net模型详解
1.详解
u-net上采样 通道数减半,feature map变大,之后copy and crop后 通道数增加*2
u-net使用镜像padding
2.网络结构修改
更换Backbone主干网络
Resnet
3.扩展学习:U-Net++
四.DeepLab模型详解
1.膨胀卷积
感受野扩大 参数量不变
Dilation Rate膨胀率是中间空的格子数+1
Conv2dConvTranspose2d
使用pooling就是提高速度
利用膨胀卷积替代pooling,达到同样效果 ,感受野更大,计算量不变
2.DeepLab详解
1.DeepLab V1
pool存在平移不变性 但是对分割可能会导致位置信息损失
如果用staide=n的conv代替pool 参数量增加 感受野提升但是分辨率下降 可以增加skip跳层
VGG模型改成分割模型 空洞卷积膨胀率根据感受野调整
V1:使用VGG改进模型 双线性上采样 后进行CRF
CRF条件随机场 x每个像素的类别,i是位置 E(x)每一种分割情况的概率
概率函数 分割结果有m*n*类别数,想让E(x)最小,来优化dcnn后的一些参数p(x)
2.DeepLab V2
ASPP 空洞金字塔卷积 多个尺寸并行---多尺度感受野
学习率策略 poly:iter迭代次数
3.DeepLab V3
block就是resnet的block out stride表示感受野 rate
并联模式采用了ASPP
串联:multi_grid resnet一个block有三个cov,多次叠加相同rate kernel不连续会产生栅格化,所以三个cov膨胀率不同
3.DeepLab V3+
backbone由resnet变为xception
卷积变为各通道分别膨胀深度卷积 + 1*1普通point卷积