草庐IT

DC-UNet:重新思考UNet架构和双通道高效CNN医学图像

不想敲代码的小杨 2023-12-07 原文

摘要

经典UNet的体系架构在某些方面存在着局限性。因此本文对其结构提出了改进。1)设计高效的CNN架构来取代编码器和解码器;2)在最先进的U-Net模型的基础上,应用残差模块来取代编码器和解码器之间的跳过连接来进行改进。

医学图像分割是通过一些自动和半自动的方法来最小化感兴趣区域。。有许多传统的算法被设计来分割组织或身体器官。这些方法可以分为:基于区域的聚类、基于边缘的聚类、基于阈值的聚类和基于特征的聚类。

本文提出了一种双通道UNet模型-DC-UNet

方法

MultiResUNet

在医学图像中,感兴趣的目标对象常常有所不同,因此为了更好的分割结果,网络需要具备在不同的尺度上分析不同目标的能力。基于这一思想,Szegedy[27]引入了一种革命性的架构——Inception Block。该初始块利用不同内核大小的卷积层并行从图像中提取不同尺度的特征。初始块如图2所示。在最初的版本中,初始块简单地将1 × 1,3 × 3,5 × 5卷积层和3 × 3最大池化层并行组合。然后,将不同尺度的特征进行拼接,发送到下一层。然而,这个版本的一个大问题是维数会导致计算爆炸

如图2中(b)的降维版本解决了这一问题,在计算3x3和5x5的卷积之前,使用1x1的卷积层来降维。

 

虽然可以使用1x1的卷积层来降低维度,但是使用更大的卷积核来进行卷积也是相当耗时的,因此Inception模块可以进一步简化为下图所示的结构使用两个3x3的卷积来代替一个5x5的卷积。

另外还使用了多个3x3的卷积来代替7x7的卷积,如下图所示:

整个MulitResUnet的网络结构如下图所示:

DC-UNet

 动机:MultiResUNet可以提供比U-Net更好的输出,因为它可以提供不同尺度的特征。然而,对于一些极具挑战性的医学图像情况,MultiResUNet表现不佳,例如物体模糊,背景(部分医疗设备)的干扰。MultiRes块的目标是提供不同尺度的特征来帮助将物体从整个图像中分离出来。因此,我们修改了MultiRes块以提供更有效的功能。

 改进:之前使用的MultiResUnet缺乏清晰的分割边界,本文通过设计一个更有效的CNN架构来提取更多的空间特征来解决这个问题。发现不同尺度的特征对分割有很大的帮助。因此,我们假设,如果我们能够提供更多不同规模(更有效)的特性,那么那些最具挑战性的任务将得到解决。

基于这个假设,我们注意到在MultiRes块中有一个简单的剩余连接。正如作者所提到的,这里的剩余连接只提供了一些额外的空间特征,这可能不足以完成一些最具挑战性的任务。不同尺度特征在医学图像分割中已经显示出巨大的潜力。因此,为了克服空间特征不足的问题,我们用3个3 × 3卷积层序列来代替MultiRes块中的残差连接。我们称之为DualChannel块。其结构如下图所示:

在编码器和解码器之间应用了相同的连接(Res-Path)。然后利用了Res-Path和Dual-Channel块构建了一个新的UNet架构DC-UNet,其结构如下图所示

结论

 本文设计了双通道CNN块,以更少的参数提供更有效的特征,以克服这些限制。为了将这种双通道CNN架构与Res-Path结合起来,我们开发了一种新颖的类u - net架构——DC-UNet。这个网络结构具有更强的捕捉细节的能力

有关DC-UNet:重新思考UNet架构和双通道高效CNN医学图像的更多相关文章

  1. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby - 在 Ruby 中重新分配常量时抛出异常? - 2

    我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案

  4. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  5. ruby-on-rails - 在 Ruby (on Rails) 中使用 imgur API 获取图像 - 2

    我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path

  6. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

  7. TimeSformer:抛弃CNN的Transformer视频理解框架 - 2

    Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图

  8. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  9. ruby-on-rails - 使用 Dragonfly 从 URL 分配图像 - 2

    我正在使用Dragonfly在Rails3.1应用程序上处理图像。我正在努力通过url将图像分配给模型。我有一个很好的表格:{:multipart=>true}do|f|%>RemovePicture?Dragonfly的文档指出:Dragonfly提供了一个直接从url分配的访问器:@album.cover_image_url='http://some.url/file.jpg'但是当我在控制台中尝试时:=>#ruby-1.9.2-p290>picture.image_url="http://i.imgur.com/QQiMz.jpg"=>"http://i.imgur.com/QQ

  10. ruby - 将全局 $stdout 重新分配给控制台 - ruby - 2

    我正在尝试将$stdout设置为临时写入一个文件,然后返回到一个文件。test.rb:old_stdout=$stdout$stdout.reopen("mytestfile.out",'w+')puts"thisgoesinmytestfile"$stdout=old_stdoutputs"thisshouldbeontheconsole"$stdout.reopen("mytestfile1.out",'w+')puts"thisgoesinmytestfile1:"$stdout=old_stdoutputs"thisshouldbebackontheconsole"这是输出。r

随机推荐