使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记

https://www.bilibili.com/video/BV1rq4y1w7xM?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click
1.
up提到这里为了进行了BN所以把上面的bias设置成了False,这个是为啥?

2.
现在都是比较流行对于一个层内部,不对图像的长和宽进行维度的改变

3.
上采样使用双线性差值

U_Net原论文中的上采样方式,转置卷积方法

5.
U_Net原论文的框架结构图

6.

下面的代码是为了防止输入的图片的长和宽不是32的倍数,那么在进行才采样的时候,由于下采样,会导致,最后与上采样,需要与之拼接的图片的维度不一样,所以进行了padding,让上采样得到的图片的长和宽,和对应的下采样得到的图片的长和宽保持一样,这样才能够进行拼接操作。

7.


上面的1*1卷积层是通过下面这行代码实现的。

9.
4.


base_c:指的是下面的64,


5.
传统U_Net结构图中,只是对对应的特征矩阵进行简单的cat拼接操作,

但是在CVPR2022的那篇论文中,使用的是
下面这种操作,它是与它对应的阶段的特征矩阵的上一个图像特征矩阵进行cat拼接的,然后进行一个1*1卷积,把channels数减少一倍。


6.

这里传入的是进行拼接之后的channels数,

白色的像素值是255,黑色的像素值是0


8.

root是指数据集的路径。
train赋值为true,就载入training数据集,如果赋值为test,就载入test数据集

判断data_root这个路径是否存在

10.
路径的拼接

11.

将图片转化成RGB图片


12.、

转换成灰度图片


13.

把前景的像素值设置成1,因为这个人工标记的人眼球毛细血管是黑白的,白色是我们要的,所以我们把这个叫做前景,把后面我们不要的叫做背景,又由于前景都是白色,白色的像素值是255,没搞懂为什么前景的像素值要从1开始,所以我们在这里除以了255.


14.


15.


16.


17.


GT好像是背景

GT标签:应该指的是背景标签

需要为每一个类别分别计算一个dice


24.

就是下面图片的实现

在下面中,我们最终的目标是分出来那些是前景,那些是背景。
就是一个2分类任务,我们把背景编码为1 0,把前景编码成0 1

把之前找到的255区域的数值又重新填回255


这样我们在分别计算不同类别(背景和前景)的dice loss时就还是只计算非255的区域

上面一系列的操作,最终会为特征矩阵增增加channels数,但你的任务中最后需要分成多少个类别时,就需要变成多少个channels,其实无论你最终是进行几分类的,最后都是进行2分类。

又由于我们的操作,把channels放在了最后,所以我们需要把channels重新放在第2位上,所以需要对维度进行修改。

x:网络模型预测得到的类别
dice_target:我们上面一系列处理得到的
最终计算这两者的dice_loss

30.

我们这里对每一个channels进行一个softmax,而通过上面构建target矩阵可以知道,每一个channels都对应的着一个类别的判断,而我们这儿dim=1,就是判断所有的channels,而每一个channels对应着一个类别是否是的矩阵,那么对所有的channels进行softmax,就是判断这张图片,最有可能是哪个类别。

对于一个高维的矩阵,softmax是怎样计算的啊?(比如对于一个[5, 8, 9, 5]大小的张量,
上面代码中的操作怎样进行的,


33.

34.

将第i张图片变成向量的格式

把对于图片的target也变成向量的格式

找出区域中我们感兴趣的区域,也就是不是255的区域

从向量x和向量t中得到我们感兴趣的区域

对这两个向量进行内积操作,相应元素相乘,然后求和的一种操作,也就是下面分子计算的过程


37.

这就是分母的代码实现操作


38.
sets_sum=0,那么就说明x_i和t_i都是等于0的,那么就说明我们进行的预测都是对的

也就是时候下面的公式中X和Y是相同的,那么DICE=1 dice loss=0,既然dice loss=0,那么就说明没有误差,这也就反向说明了,预测全部都是对的。

这表示每张图片对于某个类别的dice_coefficient的均值

补充:

1.下面的test图片,是经过predict.py代码预测出来的图片

而下面这张是之前彩色图片通过人手工弄的,上面那个是根据彩色图骗预测出来的。


2.

使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记相关推荐

  1. FEANet——基于 RGBT的实时语义分割特征增强注意力网络

    Overview Title:FEANet: Feature-Enhanced Attention Network for RGB-Thermal Real-time Semantic Segment ...

  2. 深度学习(二十一)基于FCN的图像语义分割-CVPR 2015-未完待续

    CNN应用之基于FCN的图像语义分割 原文地址:http://blog.csdn.net/hjimce/article/details/50268555 作者:hjimce 一.相关理论     本篇 ...

  3. 【深度学习】SETR:基于视觉 Transformer 的语义分割模型

    Visual Transformer Author:louwill Machine Learning Lab 自从Transformer在视觉领域大火之后,一系列下游视觉任务应用研究也随之多了起来.基 ...

  4. 笔记:基于DCNN的图像语义分割综述

    写在前面:一篇魏云超博士的综述论文,完整题目为<基于DCNN的图像语义分割综述>,在这里选择性摘抄和理解,以加深自己印象,同时达到对近年来图像语义分割历史学习和了解的目的,博古才能通今!感 ...

  5. (pytorch-深度学习系列)pytorch实现自定义网络层,并自设定前向传播路径-学习笔记

    pytorch实现自定义网络层,并自设定前向传播路径-学习笔记 1. 不包含模型参数的自定义网络层 首先我们自定义一个网络层, 定义一个网络层,使其不包含模型参数,并在forward()函数中进行运算 ...

  6. 手把手!基于领域预训练和对比学习SimCSE的语义检索(附源码)

    之前看到有同学问,希望看一些偏实践,特别是带源码的那种,安排!今天就手把手带大家完成一个基于领域预训练和对比学习SimCSE的语义检索小系统. 所谓语义检索(也称基于向量的检索),是指检索系统不再拘泥 ...

  7. 基于MindSpore复现Deeplabv3—语义分割

    基于MindSpore复现Deeplabv3-语义分割 实验介绍 本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC2012数据集上训练Deeplabv3网络模型.本实验使用了Mi ...

  8. RFNet:基于RGB-D数据的语义分割和意外障碍物检测的实时融合网络

    目录 一.Title 二.Journal 三.Background 四.Model 五.Experiments Experiment 1 Experiment 2 Experiment 3 Exper ...

  9. PyTorch中的MIT ADE20K数据集的语义分割

    PyTorch中的MIT ADE20K数据集的语义分割 代码地址:https://github.com/CSAILVision/semantic-segmentation-pytorch Semant ...

最新文章

  1. 微课丨华为的18条军规
  2. ansible(2)——基本命令
  3. Drupal 通过API动态的添加样式文件
  4. 针对C++和Delphi的LiveBindings一瞥
  5. Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源
  6. Sightseeing Cows(POJ-3621)
  7. MATLAB安装机器人学工具箱
  8. mysql攻城掠地_【图片】攻城掠地单机版本服务端+攻城掠地GM工具【单兆权吧】_百度贴吧...
  9. linux程序ctrl c无法退出原因_「Linux」20节-在后台运行任务
  10. arduino uno r3引脚图_Arduino入门: 安装和熟悉Arduino IDE
  11. Java多线程详解(线程池)
  12. 【大数据部落】R语言GAM(广义相加模型)对物业耗电量进行预测
  13. python源码剖析_Python源码剖析的作品目录
  14. 《老路用得上的商学课》61-65学习笔记
  15. java8分组lambda_Java 8,Lambda:在分组列表中排序并将所有组合并到列表中
  16. 技术债务-坏味道、Bug、漏洞
  17. 这两天火爆全网的「蚂蚁呀嘿」App,被下架了...
  18. SM2269XT固态硬盘使用量产工具开卡成功
  19. ssh服务器配置以及密匙登录
  20. 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(一,添加扫描分区myimage)

热门文章

  1. 从外包测试到阿里巴巴,一位三本女生逆袭之路
  2. 干货!深度推荐系统的探索与实践
  3. 批量取消bilibili关注
  4. ADB命令连接逍遥模拟器并查看安卓日志
  5. 细思极恐!大数据和机器学习揭示十二星座的真实面目
  6. C语言——动态开辟内存空间的函数
  7. 能力清单:透视成功逻辑,学会清单练习
  8. ROS小车打造(12)--Arduino订阅cmd_vel实现差速控制
  9. [学习笔记-FPGA]Vivado出现信号差分问题
  10. safair中vue修改了数据,但是视图没有更新解决方案