在ISIC2016上实现DeepLabv3+

目录

一、准备工作

1.1数据集来源

​1.2模型来源

二、模型简介

2.1Encoder-Decoder部分

2.2Xception部分

三、建模及评估

3.1数据准备

3.2模型定义

3.3模型训练

3.4模型评估与结果可视化

四、结果展示

4.1 分割效果

 4.2 损失情况及IOU

完整代码 


一、准备工作

1.1数据集来源

利用ISIC2016数据集挑战皮肤图像分割。官网下载数据集地址为https://challenge.isic-archive.com/data/ 的第一行,如下图所示。

1.2模型来源

利用Pytorch的deeplabv3_resnet101模型进行图像分割;官网下载:模型下载地址为deeplabv3_resnet101 — Torchvision main documentation (pytorch.org)

百度网盘下载(包含ISIC2016数据集和预训练模型):链接:https://pan.baidu.com/s/1UqNNvv4WCnZUU7LcF14zlA 
提取码:jnyy

二、模型简介

DeeplabV3+被认为是语义分割的新高峰,主要是因为这个模型的效果非常的好。DeepLabv3+主要在模型的架构上作文章,为了融合多尺度信息,其引入了语义分割常用的encoder-decoder形式。在 encoder-decoder 架构中,引入可任意控制编码器提取特征的分辨率,通过空洞卷积平衡精度和耗时。

DeeplabV3+与pspnet、segnet、unet相比,其最大的特点就是引入了空洞卷积,在不损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。如下就是空洞卷积的一个示意图,所谓空洞就是特征点提取的时候会跨像素;

2.1Encoder-Decoder部分

空洞卷积(Atrous Convolution)的目的是为了在不增加参数量的情况下扩展卷积的感受野,从而提取更有效的特征,因此它位于Encoder网络中用于特征提取。在这一部分有两个核心点:

在主干DCNN(深度卷积神经网络)里使用串行的Atrous Convolution: 串行的意思是一层接一层,普通的深度卷积神经网络的结构就是串行结构。通过在主干DCNN中使用串行的Atrous Convolution,网络能够有效地扩大感受野而不增加计算成本。这样可以捕捉到更多的上下文信息,有助于更精确的特征提取。例如,传统的卷积核可能只能看到局部的小区域,而经过Atrous Convolution处理的卷积核可以看到更大的区域。

将主干DCNN输出的结果分为两部分:一部分直接传入Decoder。这样可以保证原始的特征信息不丢失,直接用于后续的分割任务。另一部分经过并行的Atrous Convolution处理。具体来说,这部分输出会通过多个不同rate(膨胀率)的Atrous Convolution进行特征提取。不同的rate可以捕捉到不同尺度的特征信息。然后将这些提取到的特征进行合并,再通过一个1x1卷积层进行特征维度的压缩。这一步的目的是整合不同尺度的信息,形成更加丰富的特征表示。

Decoder部分的输入有两部分:

DCNN的直接输出:这个部分保留了原始的特征信息,确保了分割任务所需的基本信息不丢失。

DCNN输出经过并行空洞卷积后的结果:这一部分经过不同rate的空洞卷积处理后,提供了不同尺度的上下文信息。这些信息经过整合后,可以增强分割的准确性。

这两个部分的结果经过一定的处理后进行Concat(拼接)在一起。在DeepLabv3中,Upsample(上采样)的方式是使用双线性插值(bilinear interpolation)。双线性插值是一种常见的图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值