tensorflow2实现unet, 完成眼底血管分割任务
共 2431字,需浏览 5分钟
·
2021-05-20 10:35
向AI转型的程序员都关注了这个号👇👇👇
人工智能大数据与深度学习 公众号:datayx
retina-unet
该项目使用U-Net完成眼底血管分割任务, 主要包括以下内容:
视网膜图像预处理(参考orobix/retina-unet)
U-Net模型(tf2)
数据pipeline(tf.data.Dataset)
模型训练与训练过程可视化(distribute)
模型评估与结果可视化
下面是可视化结果, 绿色代表正确分割, 红色代表错误分割, 蓝色代表漏分割.
0 运行环境(主要)
absl-py >= 0.9.0
numpy >= 1.18.5
opencv-python >= 4.5.1.48
scikit-image >= 0.17.2
tensorflow-gpu >= 2.3.0
1 视网膜图像预处理
1.1 数据集
该项目的数据集有两个: DRIVE, CHASEDB. 数据集的具体参数与样例如下.
1.2 数据集准备与预处理
DRIVE和CHASEDB两个数据集的下载地址和提取码: data, 3vnk. 下载数据集并解压后, 运行preprocess.py进行预处理:
python preprocess.py --data_dir {data_dir}
数据集的预处理过程包括4步: 1) 彩色图像转灰度图像; 2) 数据标准化; 3) 直方图均衡化; 4) 伽马变换. 预处理过程的可视化结果如下, 可以发现,预处理可以增强图像的对比度、细节纹理等方面. 而后续实验表明, 预处理可以显著提高分割性能.
代码 获取方式:
分享本文到朋友圈
关注微信公众号 datayx 然后回复 图像分割 即可获取。
AI项目体验地址 https://loveai.tech
店铺地址:
https://shop585613237.taobao.com
2 U-Net模型(tf2)
论文链接: U-Net: Convolutional Networks for Biomedical Image Segmentation
相对论文中的网络结构, 项目中实现的模型进行了以下调整:
通道数减少为原来的1/2.
卷积层使用边界填充, 跳跃连接时不用crop.
上采样可以选择使用转置卷积替代最近邻插值+1x1卷积.
3 模型训练与训练过程可视化
运行train.py训练模型:
训练过程中的训练速度、学习率和模型损失可以通过tensorboard查看:
4 结果评估与可视化
运行evaluate.py评估模型并可视化分割结果:
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx