原数据集中的标准肝脏和白色的肿瘤,
肝脏分割的图片,发现做窗口值等的操作,也是将非目标区域变黑,然后可以突出肝脏(肝脏变成灰白色,当然,还有其他qiguan更是白色)。
于是,我做了一个大胆的实验,将肝脏变成灰色,肿瘤变成白色,肝脏外的区域为黑色。(进行了颜色翻转)
近年来,快速发展的深度学习技术已经渗透进了各行各业,医疗方面也不例外。这篇文章我主要介绍如何使用深度学习计算机视觉方法对CT扫描中的肝脏和肝脏肿瘤进行分割。
根据2018年的统计数据[1],肝脏肿瘤是全球第7常见的肿瘤,但zhisi病例总数却在所有肿瘤类疾病中排名第二。早发现早治疗能有效提升肝脏肿瘤疾病的治愈率,但人工在大量的肝脏CT影像中寻找体积很小的肿瘤工作量极大,也很容易漏检。这个场景下,使用深度学习算法自动进行快速、准确的肝脏及肝脏肿瘤分割筛查是一个很好的解决方案。
Modified U-Net (mU-Net) With Incorporation of Object-Dependent High Level Features for Improved Liver and Liver-Tumor Segmentation in CT Images .
论文笔记
Improved Liver and Liver-Tumor Segmentation in CT Images.
肝脏自动分割的困难,肝脏和肿瘤相对于周围组织的对比度很低,它们的形状会改变。
核心想法在于更改skip connection,将一幅图的全局像素特征和细小目标(如边缘)分离。这即为文中的残差模块的构建。
学习心得:利用残差模块将图像特征分为两部分。
卷积Unet的三大问题:
1.跳跃连接,允许传递低分辨率特征图,但这会让提取的特征图模糊。
文中主要意为,pooling时候已经将低分辨率特征向后传递了,skip时候又用了一次低分辨率特征。多次使用低分辨率特征,边界平滑了,尤其是边界本身就模糊时。
这个p就是l+1层没经过卷积前。
U是反卷积
D是池化
C是卷积
2.high level特征往往不包括输入高分辨率图的边界信息,这让边界部分出现更多不确定性。不足以评估高分辨图的边界信息。即便有跳跃链接,不像低分辨率图片的边界,高分辨率边界是无法通过卷积层的
3.为了去提取high level特征,池化层数十分难以优化。这是因为池化层数由对象尺寸来决定。
为了处理这三个问题,在跳跃链接上加了带反卷积和激活的残差,用来避免复制使用低分辨率特征值信息。此外,在跳跃链接上加上一个卷积层用来提取高分辨图边界信息的high level特征
mU-net结构单元
使用数据集: (LiTS) challenge 2017
512512 机内尺寸0.980.98mm2到0.45*0.45mm2.切片范围75到987,厚度0.45到5毫米。
40个病人数据用于训练,5个用于验证,剩下35个测试
照片数22500 2550 16125
使用3d重建技术来验证性能
6 数据处理及增强我们首先将LiTS数据集中3D的CT扫描分成2D的切片。CT在拍摄和重建的过程中会引入一些噪声,因此我们只保留-1024到1024范围内的数据。经过这两步处理,可以得到大概1万张CT扫描切片及对应的分割标签,随机选择一组进行可视化结果如下
在训练深度神经网络的过程中,我们通常需要在训练集上训练多个epoch以让网络达到一个比较高的训练准确率。但是这样做又容易使网络过拟合训练集,其表现为网络在训练集上准确率很高但是测试时准确率偏低。针对这个问题有多方面的解决方案,数据增强是其中重要的一种。这个项目中我们采用的数据增强策略包括随机水平、垂直翻转、随机旋转、随机尺度缩放、随机位置裁剪和弹性形变。在项目中可以看到具体代码,图5是对图4中数据进行数据增强的结果:
深度学习算法对一组CT扫描进行分割大概耗时15S,其效率明显高于医生阅片的效率。而且从分割结果中,我们可以计算获得肝脏体积,肿瘤数量,肿瘤体积,肝脏肿瘤负担等数量化的指标,更好地辅助医生进行诊断。
参考 A Review on Deep Learning Techniques Applied to Semantic Segmentation
·Reference·
[1] https://pubmed.ncbi.nlm.nih.gov/30207593/
[2] https://aistudio.baidu.com/aistudio/datasetdetail/10273
[3] https://arxiv.org/abs/1505.04597