一、标记groundtruth
A、步骤:
1、在imageJ里,点击import,再点image_sequence,然后导入图片。注意num选择图片数目。
2、在imageJ里,点击save_as,选择rawdata,进行保存。
3、打开ITKSNAP,file->open image->browse,图的格式选择file_format。
4、点击next后,在image dimension里面选择:这里z应该是1,因为是二维。x,y为像素坐标。再点next,next。
5、点击图片右上角的A来放大需要的图到full window
6、在左边的工具栏里选择画笔刷(第四个),再选择半圆形的adaptive bursh,再调整brush size。brush size需要和细胞的size对应。adaptive algorithm那里的参数也可以调。
其实也可以用polygon mode圈边框,这也是一个好办法。
7、然后作者展示了preprocess的图,这些图更好标记一点。
8、在左边工具栏的segmentation label里可以选择不同颜色的label。在上方菜单栏的segmentation里选择label editor可以增加label。
9、分割好之后,选择workspace里的save wordkspace as,然后点save,再在弹出来的框里,选择保存的格式为nrrd格式。
在第9步的时候注意:必须要做出改变,才会跳到上面描述的框和步骤。
B、遇到的问题:
1、在imageJ中显示保存的nrrd文件不是彩色的。
解决办法:我用两种不同颜色标记,然后保存成nrrd格式,在imageJ里打开,标记的颜色是灰色的,但是灰色的深浅不同。
回看了学长的论文,也是在原图上面进行标记的,然后在原图上标记好截图的。(那就没问题了。)
2、如何保存再打开画过的图接着画?
保存成下面的格式,然后就可以用main_image打开。
![](https://img.haomeiwen.com/i13133110/29160b3a5bc081ef.png)
我尝试了一下,发现打开之后没有原图了哎。。。。。
正确步骤如下:
画好之后还是保存成上图的格式。
open main image里打开原图。
再在segemetation, open segmentaion里打开新的图。就可以接着上一次的继续画啦。画好再保存成上面的格式。
3、怎么只保存图片?
File, save image, main image
3、对比度怎么调节?
tools->image contrast
2、怎么保存彩色的图啊?即使在原图上保存也好啊!
回去看ITKsnap的主页寻求帮助!
好像PPT里用不到这个,我感觉。
3、注意:对照groundtruth去画,特别亮的区域不要画上!
二、进行object层面上的准确度计算
1、虽然自己有思路,但是先看一下两篇参考文献里面怎么说。
看了一下参考文献,我真心觉得,画图只是为了好看,我能自己写代码把object层面的准确度给算出来啊。(虽然是用matlab,但是试试看咯)
还是先把图画好吧,然后再开始写喜欢的代码,跳回第一部分。
2、放弃第一部分,直接开始第二部分的计算。
思路是用matlab,同时参考之前下载的合成图片的代码。
此外,不用GAN生成图片,就说不过去了吧。
3、先找之前的代码(好像被我删掉了,总归能找到源网址的啦。)
好像是这个主页,再仔细找找吧:https://cs.adelaide.edu.au/~zhi/isbi15_challenge/dataset.html
好的好的终于找到啦!
https://cs.adelaide.edu.au/~carneiro/isbi14_challenge/ds_synthetic.html
(发现2015ISIB里有关于cell tracking的chanllenge,有空去看)
然后再找里面关于闭合区间的代码。
在除了main之外最大的子函数的“Extract free-lying cells from Scene Segmentation”这个部分里去找。
好像是这个函数“regionprops”,但是这里用的是bounding box是长方形的,肯定不对。
所以还是得靠自己去写代码。
那句话是这样的:
sceneStats = regionprops(sceneMask, 'PixelIdxList', 'BoundingBox', 'Image', 'FilledImage');
4、个人思路:
创建cell找物体,这个cell里包含很多cell,每个cell里包含物体的横纵坐标。
同时创建一个公共的cell,存储已经遍历过的物体的横纵坐标。
自己写真的写不出来的。。。
https://blog.csdn.net/langb2014/article/details/49886787 参考这里对regionprops的理解,我用了这样一段代码:
ceneStats = regionprops(gt, 'PixelIdxList', 'ConvexImage', 'Image', 'FilledImage');
顺利提取出各个物体。
进而进行比较。好像真的不对。
谷歌的关键词不对,应该谷歌:二值化图像的连通域!!!
然后中文搜索出来是依旧是用regionprop肯定不对的。
我尝试用英文搜索这个关键词:“connected region matlab”
https://www.mathworks.com/help/images/ref/bwconncomp.html
object_gt = bwconncomp(gt)
object_pr = bwconncomp(pr)
这样就顺利解决问题了。
5、一边做PPT,一边计算object层面的准确度。
6、F1的计算
(好饿啊 好想吃东西)(6点之前晚饭就到了 (*/ω\*),先吃一点饼干)
好的,休息结束继续计算。
参考1.19的日记,有如下结论:
n_tp:groundtruth为正,预测也为正
n_tn:groundtruth为负,预测也为负
n_fp:groundtruth为负,但是预测为正
n_fn:groundtruth为正,但是预测为负
基于segmetation去找annotation,重叠超过百分之50算tp,重叠小于百分之50算fp,
基于annotation去找segmetation,重叠小于百分之50算fn,
MATLAB里object内的元素调用是用.的
matlab定义函数:
function[输出形参表: output1, ...,outptn]= 函数名(输入形参表: input1, ... , inputn)
注释说明部分、
函数体代码部分
end
找两个数组中相同元素的数目的函数:https://zhidao.baidu.com/question/457450549.html
注意:for 循环应该是这样的,如果有结果为1,跳出;如果有结果为0,继续循环,如果所有的结果都是0,fp+1。我觉得应该是这样的。
注意:continue是直接跳过余下的for循环部分,进入下一个for循环,。怪不得出bugl了。。。。
第一次计算的结果,f1是95.97%
换一幅图计算试试看:94.12%
7、Dice index的计算
组合键Ctrl+Shift+= 设置上标
下标 ctrl+=
出错的原因:此 compare cell 非 彼compaer cell
8、Hausdorff Distance
(1)参考网站:
https://www.jianshu.com/p/24ec42a61ace
真的写的蛮好的,这个网站。和论文内容配套。
Hausdorff距离可以理解成一个点集中的点到另一个点集的最短距离的最大值。
真的有个图好理解多了,秒懂!
(2)Matlab取整函数有: fix, floor, ceil, round四种,具体使用方法如下:
fix. 朝零方向取整
floor. 朝负无穷方向取整(不超过x 的最大整数.(高斯取整))
ceil. 朝正无穷方向取整(大于x 的最小整数)
round. 四舍五入到最近的整数
三、扩充Unet部分的介绍
H distance的程序还没跑完,我先做第三部分吧。
参考网站:https://www.jiqizhixin.com/articles/2018-01-21-6
然后我照着这个图画一幅自己的图吧!
![](https://img.haomeiwen.com/i13133110/8e728d96a610c8d0.png)
这篇文章对Unet结构的描写真好啊,用上!
真好啊真好啊!
终于画完了图,不知道老板会不会喜欢这个图。
剩下来就是跟GAN相关的内容了。
四、介绍GAN
首先要去找的肯定是李宏毅的PPT啊!
1、哦不,第一件事是看学长的论文,说明为什么要用GAN。
2、第二件事情是介绍GAN。
![](https://img.haomeiwen.com/i13133110/3a6c1020512f7fa2.png)
这个图摘自:http://slazebni.cs.illinois.edu/spring17/lec11_gan.pdf
真棒的图!
然后其他的参考网站有:https://zhuanlan.zhihu.com/p/24767059
https://www.jiqizhixin.com/articles/2017-08-21-14
https://www.msra.cn/zh-cn/news/features/gan-20170511
其实自己能理解,但是需要用英语表达出来而且表达好。
目标优化函数如下:
![](https://img.haomeiwen.com/i13133110/7891fc1cf6d6c92a.png)
MAX是为了图片看起来更像真实图片,MIN是为了让discriminator辨别不出来是假图片还是真图片。
这是cyclegan的loss function公式,放到手机上看:
![](https://img.haomeiwen.com/i13133110/119e83c840fb6665.png)
我真的没太看懂GAN的loss function啊。
看懂了看懂了。
最后检查一遍PPT就睡觉。
假装自己是导师在检查自己
最后把PPT发给导师把
网友评论