unet知乎_深度医疗(4) - 基于深度学习眼底毛细血管分割

深度医疗是笔者基于深度学习的医学项目应用开发实践,经过整理输出了文档和本系列课程,希望通过分享可以和大家共同讨论、相互学习,探索更好的解决方案。笔者是一名普通的大数据和人工智能领域从业者,过程中如有错误和理解不到位的地方请广大同仁不吝赐教。笔者一直坚信深度学习和医学的有机结合一定能碰撞出性能强大的深度医疗系统,服务大众。
深度医疗(4) - 眼底毛细血管分割
本文主要介绍了通过深度学习进行眼底毛细血管分割的应用,首先简单介绍了眼底病变医学背景和相关知识,接着介绍了公开的眼底毛细血管数据集,最后介绍了神经网络的实现方式和处理后的效果以及性能分析,其中涉及到了PSP网络的图像分割问题。
1.概述
背景
我们的眼球底部布满了丰富的毛细血管,在平时用眼过程中可能会出现毛细血管出血的症状,而造成这个现象的有多种眼底血管疾病,比如糖尿病性视网膜病变、视网膜静脉阻塞、高血压性视网膜病变、高度近视性视网膜病变等等。
大部分人眼底出血可能是由于劳累、外部挤压等造成,如果出血量不大可以不用处理,会自行缓解,但如果出血量大,同时难于康复,就需要进一步进行诊断,情况严重的需要进行手术,所以该诊断对于整个疾病的治疗和康复非常的重要。
眼底病变
很多眼部疾病需要通过眼球的毛细血管状况来进行判别

2.数据集
数据集包含两类图片,一类是原始的眼底医学图片;另外一类是蒙版图片,也就是我们需要的label文件。两类图片的尺寸相同,当把两张图片叠加在一起的时候血管的分布完全重合,这样便于进行对齐分割。
原始图片是.tif格式,标签文件是.png格式,图片分辨率均为720 X 720;训练图片有20张,测试图片也有20张,其中训练集包含了原始图片和标签图片,测试集只有原始图片。

下载地址1
下载地址2
4.神经网络结构
神经网络采用了PSPnet作为图像分割的网络。

因为蒙版(标签文件)是黑白图像,所以这里的分割我们认为是有两个类别组成的:1-黑色、0-白色

网络结构

5.结果分析和系统优化
误差收敛曲线

精度曲线

6.预测结果比对
左边为蒙版(标签)文件,右边为预测输出



7.存在的问题和后续优化方案
1)神经网络的输出图片分辨率较低,目前是180x180,精细度是不够的,原始图片的分辨率是720x720,相当于压缩了4倍,可以理解为原始的一个4x4的矩阵被压缩成了一个点,细节损失了16倍,这个对精准度存在比较大影响;但如果提高输出分辨率,资源占用会呈指数增长,这里如果把180修改成720,系统资源要求提高16倍,我们如果把前面的网路改成5个大的ResNet结构的话,内存或者显存要求是10G左右,16倍相当于要求160G内存和显存;
2)目前的训练集比较少,在这样的情况下精度的提高存在一定的瓶颈,可以通过翻转、裁剪等方式来增加训练集的精度,但提高的精度也是比较有限的,应该不会超过1%;
3)训练会不会出现过拟合,需不需要加入dropout,仔细看前面的网络结构会发现,这个网络都是通过cnn作为最小模块来实现的,cnn有个特点,每个channel的滤波器是一样的,都是通过这个滤波器来处理当前channel的所有像素信息,所以整个神经网络的系数并不像加入全连接层那样计算复杂度很高,而且在最后一层需要把所有特征进行加权计算,所以这里不需要加入dropout,如果加入了dropout反而会破坏整个系统性能;
