前言
前几天浏览器突然给我推送了一个文章,是介绍加州大学圣地亚哥分校、Petuum 的研究者构建了一个开源的 COVID-CT 数据集的。我看了一下代码其开源的代码,比较适合我们这种新手学习,当做前面若干笔记内容的一个实际应用,并且新冠肺炎(coronavirus)现在依旧是一个热点,所以就下下来玩一下咯。另外,这是第一次写和我的专业有相关性的笔记,就把它当做一篇序吧。
原代码及数据地址:UCSD-AI4H/COVID-CT
新冠肺炎CT识别
- 病毒来源
病毒经过呼吸道,进入我们的肺部。我们的肺部,绝大部分都是肺泡,而肺泡里面是空气。由于空气对X射线的衰减很小,即CT数很小,所以健康肺部在CT图中基本是黑色的。新冠病毒到达肺部之后,通过肺泡孔扩散,然后附着在肺泡上皮,其间会引起我们免疫系统的反应,大量免疫细胞会去和新冠病毒大战,这些会改变肺泡的物理性质(如肺泡肿胀、肺泡间隔液体的渗出,肺泡间隔增厚等),这样就会在CT图中露出痕迹。所以我们就是通过观察肺部CT中的痕迹,以及病毒的特点来判断是否有可能感染新冠病毒。
- CT图特征
磨玻璃影
磨玻璃影形成主要是新冠病毒侵入肺部以后,沿着肺泡孔扩散,其间会导致肺泡肿胀、肺泡间隔液体的渗出,肺泡间隔增厚等,这些会使的肺部的CT数增大,即变白。病毒性感染没有粒细胞的渗出,肺泡是干净的,里面依旧是空气,所以常常没有成一个实质性变化(白块),就表现出来一个磨玻璃影(朦胧),我们透过磨玻璃影还能看到支气管,如图1所示(引自广东省人民医院放射科行政副主任赵振军做了名为《新型冠状病毒感染CT早期诊断和鉴别诊断》的主题报告)。
烟花式扩散
新冠病毒直径:60-140纳米,肺泡孔大小:10-15微米。可见肺泡孔比新冠病毒大1-2个数量级。所以新冠病毒主要是通过肺泡孔扩散的,多发并磨玻璃影表现为一个中心向四周扩散,由于较少的受到小叶的阻挡,中间是连着的,如图2所示(引自广东省人民医院放射科行政副主任赵振军做了名为《新型冠状病毒感染CT早期诊断和鉴别诊断》的主题报告)。细菌较大,主要是通过细支气管扩散,会沿着支气管分布。
细小网格或者条状影
如果有前两个特征,并且将有磨玻璃影的地方放大,如果看到了如图3所示的细小网格(引自广东省人民医院放射科行政副主任赵振军做了名为《新型冠状病毒感染CT早期诊断和鉴别诊断》的主题报告),则表明极有可能是新冠病毒感染。以上都是人读片时的特征识别,但是机器在识别的时候又会以什么特征为依据呢,或许也有类似的特征呢。
COVID-CT数据
- CT图片
我们下载的代码包里包含了数据集,其中COVID-19检测为阳性的CT图片此时有349张,COVID-19检测为阴性的CT图片有397张。这比作者公布的数据集统计数据要多,估计是后面又添加了一些图片进去。但是这数据还是太少,用如此少的数据进行训练,是训练不出好的模型的,所以需要用其他数据先预训练模型,再用迁移学习训练识别COVID-19的模型。
- 数据集划分列表
作者已经将数据集划分成了训练集,测试集和验证集。是通过路径分配来形成不同集的,并没有在物理上划分数据集。而是在读取过程中根据不同文档中的路径,来将数据信息给不同的数据集对象。
Type | NonCOVID-19 | COVID-19 | Total |
---|---|---|---|
train | 234 | 191 | 425 |
val | 58 | 60 | 118 |
test | 105 | 98 | 203 |
- 其他
其他就还有两个文件:COVID-CT-MetaInfo.xlsx
和NonCOVID-CT-MetaInfo.xlsx
。里面包含图片对应的患者的一些信息,如年龄,其中一个患者对应了多张图片。这个我们用不着,而且NonCOVID-CT-MetaInfo.xlsx
还打不开,所以不予考虑。
模型表现
图5是作者在数据集介绍文档中给出的模型表现,可见其准确率很高,但是召回率没有那么理想。不知道最后我们用作者给的代码训练出来的模型能有什么表现,这就在下一篇笔记中讨论吧。
参考
https://v.qq.com/x/page/t3068am79y7.html
https://www.jiqizhixin.com/articles/2020-04-03
https://github.com/UCSD-AI4H/COVID-CT