Project introduction

眼底血管分割是一个成熟的分割主题任务,在网络上已经有很多的解决方案这里我只是记录一下我的解决方案,眼底血管有明显的形态学特征,但是血管的粗细不等给分割造成了难度,同时也会存在其他血管结构和视神经盘的干扰提高了分割任务的难度。

目前的解决方案有很多,使用各种方法都可以做到有效的提取,我才用比较常见的三种方法:

匹配滤波、形态学、深度学习,下面详细介绍

匹配滤波

使用匹配滤波也就是卷积滤波的方式,对血管边缘进行有效的提取从而提取出整个血管结构

优点:计算速度快,可以有效提取出血管,对于细小血管的检测能力尚可

缺点:错分是神经盘,对于细小血管分割能力较差(可以尝试调整卷积核大小)

这一段是参考的了我站的一篇帖子:

https://blog.csdn.net/qq_40511157/article/details/102770108?ops_request_misc=%7B%22request%5Fid%22%3A%22162641860416780357214110%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=162641860416780357214110&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-102770108.first_rank_v2_pc_rank_v29&utm_term=眼底血管分割&spm=1018.2226.3001.4187

形态学处理

使用开包和闭包算法模糊图片然后使用减法突出血管结构

优点:简单,计算快,可解释性强

缺点:形态学操作噪点较多(中值滤波解决),二值化困难(硬搞吧)

这一段也是来源我站的一篇帖子

https://blog.csdn.net/virus1175/article/details/107126348?ops_request_misc=%7B%22request%5Fid%22%3A%22162641902416780357223650%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&request_id=162641902416780357223650&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-2-107126348.first_rank_v2_pc_rank_v29&utm_term=眼底血管分割+形态学&spm=1018.2226.3001.4187

Unet

深度学习end to end的结构就十分不讲道理,不知道计算过程但是可以得到一个较好的分割结果

但是使用的数据集较小,需要数据扩增,分割任务对于原图像和mask需要做同样的操作才能保证训练的收敛。这里采用的扩增方式为patch进行扩增

优点:分割效果好,不受干扰

缺点:计算时间长,算力大

这一部分参考了隔壁的一篇帖子

https://zhuanlan.zhihu.com/p/346583714

预处理

Green Channel or GrayScale

可以使用绿色通道或者将图片做灰度化处理,此处没有详细对比两种方法的分割差异

Gamma Correction

提升图片整体亮度和暗度,也可以区分血管与周围组织的对比度

Contrast Limited Adaptive Histogram Equalization

可以有效地进行灰度拉伸提高血管与周围组织的对比度

Median Filter & Gaussian Filter

使用高斯滤波可以消除噪声,但是形态学操作不宜使用高斯滤波,形态学要使用中值滤波

预处理的流程有很大的发挥空间,我在处理图片时没有按照代码中的处理流程,选取了自己的处理方式,得到的结果也没有相差很多

Result & Summary

最后的结果对比

匹配滤波:DICE:0.74 TPR:0.70 TFR:0.97

形态学:DICE:0.74 TPR:0.70 TFR:0.98

UNet:DICE:0.87 TPR:0.87 TFR:0.97

最后UNet没有做完整数据集的验证仅验证了6张图片,所以整个数据集的值可能还会要再低一点

总的对比,两种非深度学习方法也取得了较好的结果,但是一味的使用深度学习也失去了一些意义……

Other Methods

还尝试了分水岭,不太行,但是提取掩膜倒是很方便

尝试了graphcut和region growth,均只能分割出较粗的血管对于细小的血管分割能力不足

但是以上两种方法在其他文献中均能够使用,至少region growth的方法是很符合常识的,或许可以尝试增加每次判断的点的个数,以半径为2的球形添加需要判断的点……但是region growth需要手动操作选出种子点,不太智能……

其他的使用svm进行分割,最朴素的分割思想,pixel by pixel 对于每一个像素点进行分类,最后拼出整张图片,考虑点周围的像素的信息,如均值,方差,余弦变换值等等,使用SVM需要注意的这是一个非平衡样本的处理所以对于样本点的选取也决定了训练模型的质量和分割能力,由于时间问题并没有在我的project里面解决这个问题……不过SVM的分类方法的确值得尝试,毕竟svm还是yyds……

感谢以上博主分享的开源代码,博文中如果有任何说的不妥当地方还请大家多多指教……

图1 使用深度学习的分割结果

图2 匹配滤波的结果


图3 使用形态学分割的结果

视网膜血管分割方法整理相关推荐

  1. 编程之美-数组分割方法整理

    [试题描述] 方法一: 方法二:时间复杂度O(2^n) 方法三:时间复杂度O(n^2 * Sum)

  2. 文字符号设计方法整理1--笔画字形(体)处理方法

    文字符号设计方法1--笔画字形(体)设计方法 ---- 精思巧形   文字符号设计方法分类整理 不论是图形还是字体设计(文字符号设计)都是为了更好的传达信息,让文字的意义更好更准确的传达.      ...

  3. python 如何识别字符串中的人名 ,如何识别一串拼音字符串以及韵母的提取 (一些方法整理)

    一.识别字符串中的人名或特定名词 笔者所用的是百度智能云提供的词法分析接口,它可以对字符串分词,并且能够识别句子中的人名,地名,等等.好,接下来教你们如何使用这个接口. 官网:https://clou ...

  4. matlab视网膜血管分割,视网膜血管增强与分割算法研究

    摘要: 视网膜血管图像的研究在图像处理领域占据重要的地位,在临床医学领域更具有重大的实际意义.它不仅能及时地反映出高血压.糖尿病和血液病等全身性疾病,还可以很好地帮助医生掌握病人的情况,因此对眼底视网 ...

  5. python中string什么意思_python字符串(string)方法整理

    C C语言开发 python字符串(string)方法整理 python中字符串对象提供了很多方法来操作字符串,功能相当丰富. print(dir(str)) [..........'capitali ...

  6. ICCV 2021 | PMF: 基于视觉感知的多传感器融合点云语义分割方法

    作者丨月明星稀风萧萧@知乎 来源丨https://zhuanlan.zhihu.com/p/419187044 编辑丨3D视觉工坊 今天,我将分享一个 ICCV 2021 中的工作,基于视觉感知的多传 ...

  7. PMF: 基于视觉感知的多传感器融合点云语义分割方法(ICCV2021)

    作者丨月明星稀风萧萧 来源丨https://zhuanlan.zhihu.com/p/419187044 编辑丨3D视觉工坊 今天,我将分享一个 ICCV 2021 中的工作,基于视觉感知的多传感器融 ...

  8. 如何看待,入门学习Python必看视频?python字符串(string)方法整理

    如何看待,入门学习Python必看视频?哈佛大学教授推荐,python字符串(string)方法整理 哈佛大学推荐,Python基础入门,Python小白书籍,Python学习路线,Python进阶, ...

  9. 去毛边 叶片图像_一种复杂背景叶片图像的全自动分割方法与流程

    本发明涉及图像处理领域,更具体地,涉及一种复杂背景叶片图像的全自动分割方法. 背景技术: 药用植物,是中药材的主要来源,是中医药治病救人的物质基础.然而,近年来,由于生态环境的恶化,药用植物资源显著萎 ...

最新文章

  1. Android 三角形控件
  2. git 切换成远程分支
  3. 在任天堂Switch上倒贴30块钱“加班”,我一个程序员还觉得很刺激
  4. 谁是卧底的Android应用 (原型源码)
  5. MySQL查询的性能优化
  6. Web Form调用Windows Form的控件
  7. windows 给安装目录命令权限
  8. java 网络文件大小_java获取网络文件大小
  9. 如何从python官网下载模块-Python各种模块下载及安装配置
  10. SeaWeedFS的特性
  11. 码云的注册与使用,很简单
  12. 邮件营销和网络广告的价值
  13. 《BiLSTM with Multi-Polarity Orthogonal Attention for Implicit Sentiment Analysis》论文阅读笔记
  14. 怎么制作GIF动态图片,如何做GIF
  15. 交通信号灯课程设计(红绿灯)
  16. 《设计模式之禅》中23种设计模式demo汇总
  17. MYSQL基于三表的RBAC(可直接拿去CV)
  18. 【C++从入门到放弃】C++编译生成动态链接库*.so及如何调用*.so
  19. Android开发实用小工具九——温度转换工具
  20. Java 通过使用递归函数实现树状结构

热门文章

  1. 2022全球程序员薪资排行:中国倒数
  2. Hank的无线802.11学习笔记--part 1
  3. C语言中结构体直接赋值
  4. springCloud Alibaba seata 分布式事务
  5. Python参考手册(第4版)pdf
  6. 高中计算机应用基础知识课件,计算机应用基础(windows 7+office 2010)课件 第一章 计算机基础知识.ppt.pdf-汇文网...
  7. java中enhancer试什么_Java Enhancer類代碼示例
  8. 【LeetCode】1823. 找出游戏的获胜者 Find the Winner of the Circular Game
  9. 强类型语言与弱类型语言/面向过程与面向对象
  10. python分享会总结