DeepTrial / Retina-VesselNet

A Simple U-net model for Retinal Blood Vessel Segmentation based on tensorflow2
303 stars 76 forks source link

关于结果 #5

Closed XiaoYangon closed 6 years ago

XiaoYangon commented 6 years ago

就是我下载你的代码和数据集,没有改动任何地方,训练准确率仅达到88%左右,然后跑的测试程序,预测结果没有出来与(VesselNet)/test/result一样的效果,可以说非常差,大神能看看是什么问题吗

DeepTrial commented 6 years ago

最近,我更新过代码,您使用的是最新版吗?

XiaoYangon commented 6 years ago

我是这周下载的,觉得您做的效果很好,想学习一下来着,所以就下载了下来,没有改动任何地方,按照您的步骤介绍的顺序跑的。。。。。。,结果出现了现在的实验结果

DeepTrial commented 6 years ago

您使用的是训练好的权重测试的,还是重新训练的?

DeepTrial commented 6 years ago

之前也有人提到过 训练后的结果不好,建议检查data_loader模块,眼底图片与血管groundtruth是否正确对应。

XiaoYangon commented 6 years ago

我是从头训练的,先执行main_train.py

XiaoYangon commented 6 years ago

图像的话是VesselNet这个文件下的dataset数据集

DeepTrial commented 6 years ago

建议检查standard_loader.py 考虑以下修改方法

如果不加上红色这段代码,就不能保证,读取origin image的顺序和groundtruth的顺序, 比如orgList里面的第一个文件是01_test.tif,而gtList里面的第一个文件是08_test.tif, 这样会导致原图片不能对应正确的groundtruth

XiaoYangon commented 6 years ago

谢谢你,结果出来了96%的训练准确率和95%的验证准确率,但是metric的代码有错误,AUC和ROC那个曲线图明显不对,值是0.6125。。。。

DeepTrial commented 6 years ago

metric模块可能也是这上面的原因:gt与原图的对应顺序有误。这个bug我会尽快修复,最近一阶段比较忙。。。见谅

XiaoYangon commented 6 years ago

好的,我去捋一遍,如若好了告诉你

XiaoYangon commented 6 years ago

好的,请问大神是专门做这个的吗

在 2018-08-14 13:40:28,"Xing ChenCong" notifications@github.com 写道:

metric模块可能也是这上面的原因:gt与原图的对应顺序有误。这个bug我会尽快修复,最近一阶段比较忙。。。见谅

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

DeepTrial commented 6 years ago

我本科阶段是做这个,研究生的方向还没确定,可能业余时间还会继续跟进吧

XiaoYangon commented 6 years ago

那个metric确实是你说的那个原因,我跑出了AUC=0.985 不知道能不能向你咨询一个问题?就是我用Unet网络想实现一个乳腺肿块的分割问题,是图片分辨率太高5k2K这种的,并且还都不一样大小,所以做了一下resize(512512)的,在keras上训练的时候每一个epoc的loss和acc,以及val-loss和val-acc的值都特别理想, 但是每一个epoc的结果都差不多一样,测试的时候使用训练集图像来测试, 分割不出来??谢谢大神了

DeepTrial commented 6 years ago

当图像分辨率缩小后势必会造成一些信息损失,需要平衡目标面积及尺度在缩放前和缩放后大小。另一个问题是训练时是否对输入图片归一化(就是将图像像素值控制在0-1之间),测试的时候有没有做相同的归一化操作。我目前能想到的问题就是这2个,祝你早日解决!

XiaoYangon commented 6 years ago

好的,谢谢。

XiaoYangon commented 6 years ago

AUC = np.round(np.sum((TPR[1:] + TPR[:-1]) * (FPR[:-1] - FPR[1:])) / 2., 4)这里为什么要这样计算啊

DeepTrial commented 6 years ago

这一步是使用复化梯形法近似的求曲线的定积分值,也就是AUC值,数学原理可以参考数值计算中的复化牛顿-科特斯公式。这里是将TPR作为梯形的低,FPR的差值作为高。

XiaoYangon commented 6 years ago

大神,你用用sklearn中的函数计算过吗?计算出来的值有区别吗?我看你说的那个orobix的代码中调用的sklearn函数

在 2018-08-28 16:59:11,"Xing ChenCong" notifications@github.com 写道:

这一步是使用复化梯形法近似的求曲线的定积分值,也就是AUC值,数学原理可以参考数值计算中的复化牛顿-科特斯公式。这里是将TPR作为梯形的低,FPR的差值作为高。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

DeepTrial commented 6 years ago

这个我对比过,差别值很小,我自己写只要是方便后续自己调试,你也可以直接使用sklearn的方法

XiaoYangon commented 6 years ago

好的,我知道了,谢谢你啊,看你的代码学了不少东西

在 2018-08-29 10:35:51,"Xing ChenCong" notifications@github.com 写道:

这个我对比过,差别值很小,我自己写只要是方便后续自己调试,你也可以直接使用sklearn的方法

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

DeepTrial commented 6 years ago

不客气:)