【持续更新中…】

算法概括

FCN将传统卷积网络后面的全连接层换成了卷积层,这样网络输出不再是类别而是 heatmap;同时为了解决因为卷积和池化对图像尺寸的影响,提出使用上采样(upsampling)的方式恢复。

上采样-反卷积(deconvolution)

经过多次卷积和pooling以后,将得到尺寸越来越小、分辨率越来越低的图像,最终得到高维特征图(heatmap);接着我们需要对其进行upsampling,将图像一步步放大至原图像尺寸。最后的输出是n(类别数)个通道heatmap经过upsampling变为原图大小的图片,为了对每个像素进行分类预测label成最后已经进行语义分割的图像,通过逐个像素地求其在n个通道上该像素位置的最大数值描述(概率)作为该像素的分类依据,由此得到一张完成分类的图片。

FCN优点

  • 不含全连接层(fc)的全卷积(fully conv)网络。可适应任意尺寸输入。
  • 增大数据尺寸的反卷积(deconv)层。能够输出精细的结果。
  • 结合不同深度层结果的跳级(skip)结构。同时确保鲁棒性和精确性。
    FCNs的结构如下图所示:

Sunnybrook数据集

The dataset consists of 16-bit MRI images in DICOM format and expert-drawn contours in text format (coordinates of contour polylines). A sample image/label pair may look like:
数据集包含16位的核磁共振图像(DICOM格式),下面是一对图像和标签的例子:

使用Visdom实现DL训练可视化

简介

Visdom是Facebook在2017年发布的一款针对PyTorch的可视化工具。visdom由于其功能简单,一般被定义为“网页版的matplot”,我们可以直接利用python的控制台模式进行开发并在服务器上执行,并通过向Visdom服务端传输可视化数据进行可视化。

示例

下图便是神经网络训练过程中,Visdom客户端的界面,展示的内容包括训练loss曲线、测试loss曲线、训练结果、测试结果等等,直观明了。

实验结果

实验相关信息

  • 数据集大小:原图像、标签图像各800余幅
  • 运行轮次(epochs):25轮
  • batch size:4
  • 耗时:2h
  • 运行设备:CPU【11th Gen Intel® Core™ i5-11320H @ 3.20GHz 3.19 GHz】

Visdom结果可视化

下图中左侧三幅图从上往下分别表示原图像(MRI图像),模型的预测结果,测试集标签;
右侧的图表为测试过程中的Dice Loss曲线,其原理将在【补充知识】模块中作简要讲解。

补充知识

医学图像分割的Dice Loss

  1. Dice系数
    Dice系数, 是一种集合相似度度量函数,通常用于计算两个样本的相似度(值范围为 [0, 1]):
    s=2∣X∩Y∣∣X∣+∣Y∣s = \frac{2|X \cap Y|}{|X|+|Y|}s=∣X∣+∣Y∣2∣X∩Y∣​
    其中∣X∩Y∣|X \cap Y|∣X∩Y∣表示X与Y的交集;∣X∣|X|∣X∣和∣Y∣|Y|∣Y∣分别表示X与Y 的元素个数;分子乘上2是考虑到分母重复计算X、Y共同元素。
  2. Dice 系数差异函数(Dice loss):
    s=1−2∣X∩Y∣∣X∣+∣Y∣s=1-\frac{2|X \cap Y|}{|X|+|Y|}s=1−∣X∣+∣Y∣2∣X∩Y∣​

图像里的“Ground Truth”

在有监督学习中,数据是有标注的,以(x, t)的形式出现,其中x是输入数据,t是标注.正确的t标注是ground truth, 错误的标记则不是。(也有人将所有标注数据都叫做ground truth)由模型函数的数据则是由(x, y)的形式出现的。
其中x为之前的输入数据,y为模型预测的值。标注会和模型预测的结果作比较。在损耗函数(loss function / error function)中会将y 和 t 作比较,从而计算损耗(loss / error)。

总结成一句话:
Ground Truth: 就是指正确打标签的训练数据 或 简单来说就是有效的正确的数据。

训练网络时CPU或GPU的使用

  • 明确使用CPU:device=torch.device(“cpu”)
  • 明确使用GPU:device=torch.device(“cuda”)
  • 优先使用GPU(如果有):device = torch.device(‘cuda’ if torch.cuda.is_available() else ‘cpu’)

VGG网络简介

(FCNs将VGG作为预训练网络,即在其基础上搭建网络结构)

  • 意义:证明增加小卷积核个数增加网络深度以提升图像分类能力的有效性
  • 预处理:各通道减去RGB在训练集上的均值
  • 特点:网络深度大;使用小尺寸卷积核(3*3)替代大尺寸卷积核
  • 优点:网络结构简洁,网络表达能力更强
  • 缺点:网络参数数量多,存储所需容量大,且需要的训练时间较长

【Pytorch】复现FCN for Left Ventricle(LV) segmentation记录相关推荐

  1. Pytorch复现FCN网络

    Pytorch复现FCN网络详解(可复现) 1.环境配置 windows10,pytorch=1.3,python=3.6 参考博客:https://github.com/wkentaro/pytor ...

  2. pytorch 复现 FCN模型详细代码教程

  3. 我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!

    大家好,我是红色石头! 在上三篇文章: 这可能是神经网络 LeNet-5 最详细的解释了! 我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)! 我用 PyTorch ...

  4. 我用 PyTorch 复现了 LeNet-5 神经网络(CIFAR10 数据集篇)!

    大家好,我是红色石头! 在上两篇文章: 这可能是神经网络 LeNet-5 最详细的解释了! 我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)! 详细介绍了卷积神经网络 ...

  5. 【深度学习】我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!

    在上三篇文章: 这可能是神经网络 LeNet-5 最详细的解释了! 我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)! 我用 PyTorch 复现了 LeNet-5 ...

  6. NVIDIA新作解读:用GAN生成前所未有的高清图像(附PyTorch复现) | PaperDaily #15

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  7. pytorch写FCN进行手提包的图像分割,有数据集

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx 一,手提包数据集 数据集下载:用pytorch写FCN进行手提包的语义分割. trainin ...

  8. 亚像素卷积网络(ESPCN)学习与Pytorch复现

    论文内容 论文地址:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolution ...

  9. pytorch用FCN语义分割手提包数据集(训练+预测单张输入图片代码)

    一,手提包数据集 数据集下载:用pytorch写FCN进行手提包的语义分割. training data(https://github.com/yunlongdong/FCN-pytorch-easi ...

最新文章

  1. Fast and accurate short read alignment with Burrows-Wheeler transform
  2. 只花5-10分钟评审,还不提供拒稿理由,IJCAI就“枪毙”42%论文,网友:一脸懵逼...
  3. 2012.3.17庆祝我的博客创建!名字是web-sheena
  4. 如何用面对对象来做一个躁动的小球?
  5. Magicodes.IE 2.5版本发布
  6. 6000字说透,如何做好产品「适老化」!
  7. iPhone SplitViewController
  8. 笔记:Gitlab-CI部署流程
  9. 暗黑2魔电西格玛攻略_听说你想刷爆怪物的狗头?或许可以试试《暗黑破坏神》类单机手游...
  10. 这 10 个 Python 可视化工具,你用过哪些?
  11. PLC编程语言入门,常用指令集汇总分享
  12. Swift 在UILabel前面或者后面插入图标
  13. JavaScript_第一天
  14. 新考纲 PMP 备考精讲
  15. 一看就懂的i++和++i详解
  16. Java中使用jedis操作redis(使用maven)
  17. 终于鼓起勇气,辞掉了第一份工作
  18. 2022年5月15日小记
  19. Android仿人人客户端(v5.7.1)——采用RelativeLayout做父容器,实现左侧滑动菜单(二)
  20. python index out of bounds_错误:索引2超出大小为1的轴0的界限

热门文章

  1. NTC热敏电阻温度采集与adc转换
  2. 千里马若有人赏识--不论对错,不为输赢,我就是认真。
  3. 如何理解所谓的压力与红利
  4. SpringBoot中405异常
  5. 【洛谷 P1240】诸侯安置
  6. 简单开发的android阅读器源码,包含了读取数据库和文件流处理功能
  7. Java随笔——逻辑运算符和(|和||)之间的区别
  8. python加密规则ascii码值加5_Python使用编码加密输入数据
  9. Python入门-基础语法笔记
  10. esp32语音控制_【动态】乐鑫发布 AI 语音麦克风阵列开发板 ESP32Korvo