使用Python+OpenCV+Tensorflow+Flask实现检测X光中的新冠病毒
免责声明:本研究是为X光图像中COVID-19的自动检测而开发的,完全是为了教育目的。由于COVID-19没有经过专业或学术评估,最终的应用并不打算成为一个准确的用于诊断人类的COVID-19诊断系统。
介绍:Covid-19是由一种病毒(SARS-CoV-2冠状病毒)引起的大流行性疾病,已经感染了数百万人,在几个月内造成数十万人死亡。据世界卫生组织(WHO)称,大多数COVID-19患者(约80%)可能无症状,约20%的患者可能因为呼吸困难而需要住院治疗。在这些病例中,大约5%可能需要支持来治疗呼吸衰竭(通气支持),这种情况可能会使重症监护设施崩溃。抗击这一流行病的关键是快速检测病毒携带者的方法。冠状病毒冠状病毒是引起呼吸道感染的病毒家族。这种新的冠状病毒病原体是在中国登记病例后于1919年底发现,它会导致一种名为冠状病毒(COVID-19)的疾病。1937年首次分离出冠状病毒,然而,直到1965年,这种病毒才被描述为冠状病毒,因为它在显微镜下的轮廓看起来像一个树冠。下面你可以看到SARS-CoV-2病毒的原子级三维模型:
X光近年来,基于计算机断层扫描(CT)的机器学习在COVID-19诊断中的应用取得了一些有希望的成果。尽管这些方法取得了成功,但事实仍然是,COVID-19传播在各种规模的社区。X光机更便宜、更简单、操作更快,因此比CT更适合在更贫困或更偏远地区工作的医疗专业人员。目标对抗Covid-19的一个重大挑战是检测病毒在人体内的存在,因此本项目的目标是使用扫描的胸部X光图像自动检测肺炎患者(甚至无症状或非病人)中Covid-19的病毒。这些图像经过预处理,用于卷积神经网络(CNN)模型的训练。CNN类型的网络通常需要一个广泛的数据集才能正常工作,但是,在这个项目中,应用了一种称为“迁移学习”的技术,在数据集很小的情况下非常有用(例如Covid-19中患者的图像)。目的是开发两种分类模型:Covid-19的检测与胸片检测正常的比较Covid-19的检测与肺炎患者检测的比较按冠状病毒相关论文定义的,所有类型的肺炎(COVID-19病毒引起的除外)仅被认为是“肺炎”,并用Pneumo标签(肺炎)分类。我们使用TensorFlow 2.0的模型、工具、库和资源,这是一个开源平台,用于机器学习,或者更准确地说,用于深度学习。最后在Flask中开发了一个web应用程序(web app),用于在接近现实的情况下进行测试。下图为我们提供了最终应用程序如何工作的基本概念:
X光扫描胸部图像(User_A.png),应用程序将图像存储在web应用程序的计算机上,决定图像是否属于受病毒污染的人(模型预测:[阳性]或[阴性])。在这两种情况下,应用程序都会输出预测的准确性(模型准确度:X%)。为了避免两者都出错,将向用户显示原始文件的名称及其图像。图像的新副本存储在本地,其名称添加一个预测标签,并且加上准确度。这项工作分为四个部分:环境设置、数据清洗和准备模型1训练(Covid/正常)模型2训练(Covid/肺炎)Web应用的开发与测试灵感该项目的灵感来源于UFRRJ(里约热内卢联邦大学)开发的X光COVID-19项目。UFRRJ的XRayCovid-19是一个正在开发的项目,在诊断过程中使用人工智能辅助健康系统处理COVID-19。该工具的特点是易用、响应时间快和结果有效性高,我希望将这些特点扩展到本教程第4部分开发的Web应用程序中。下面是诊断结果之一的打印屏幕(使用了Covid-19数据集1图像之一):
乔杜里等人在论文中阐述了该大学开展这项工作的科学依据,论文地址:https://arxiv.org/abs/2003.13145另一项工作是Chester,论文:https://arxiv.org/pdf/1901.11210.pdf,由蒙特利尔大学的研究人员开发。Chester是一个免费且简单的原型,医疗专业人员可以使用它们来了解深度学习工具的实际情况,以帮助诊断胸部X光。该系统被设计为辅助工具,用户可在其中处理图像以确认或协助诊断。当前版本的 Chester(2.0)使用DenseNet-121型卷积网络训练了超过10.6万张图像。该网络应用程序未检测到Covid-19,这是研究人员对应用程序未来版本的目标之一。下面是诊断结果之一的截图(使用了Covid-19数据集的图像)
在下面的链接中,你可以访问Chester,甚至下载应用程序供脱机使用:https://mlmed.org/tools/xray/。感谢这项工作最初是根据Adrian Rosebrock博士发表的优秀教程开发的,我强烈建议你深入阅读,此外,我要感谢Nell Trevor,他根据罗斯布鲁克博士的工作,进一步提出了如何测试结果模型的想法。第1部分-环境设置和数据准备数据集训练模型以从图像中检测任何类型信息的第一个挑战是要使用的数据量。原则上,可公开获取的图像数量越多越好,但是请记住,这种流行病只有几个月的历史,所以对于Covid-19检测项目来说,情况并非如此)但是,Hall等人的研究,论文:https://arxiv.org/pdf/2004.02060.pdf,证明使用迁移学习技术仅用几百幅图像就可以获得令人鼓舞的结果。如引言所述,因为训练两个模型,所以需要3组数据:确认Covid-19的X光图像集常规(“正常”)患者的X光图像集一组显示肺炎但不是由Covid-19引起的X光图像为此,将下载两个数据集:数据集1:COVID-19的图像集Joseph Paul Cohen和Paul Morrison和Lan Dao COVID-19图像数据收集,arXiv: 2003.11597, 2020这是一个公开的COVID-19阳性、疑似患者和其他病毒性和细菌性肺炎(MERS、SARS和ARDS)的X光和ct图像数据集。数据是从公共来源收集的,也可以从医院和医生处间接收集(项目由蒙特利尔大学伦理委员会批准,CERSES-20-058-D)。以下GitHub存储库中提供了所有图像和数据:https://github.com/ieee8023/covid-chestxray-dataset。数据集2:肺炎和正常人的胸片论文:Kermany, Daniel; Zhang, Kang; Goldbaum, Michael (2018), “Labeled Optical Coherence Tomography (OCT) and Chest X-Ray Images for Classification”通过深度学习过程,将一组经验证的图像(CT和胸片)归类为正常和某些肺炎类型。图像分为训练集和独立的患者测试集,数据可在网站上获得:https://data.mendeley.com/datasets/rscbjbr9sj/2胸片的类型从数据集中,可以找到三种类型的图像,PA、AP和Lateral(L)。L的很明显,但X光的AP和PA视图有什么区别?简单地说,在拍X光片的过程中,当X光片从身体的后部传到前部时,称为PA(后-前)视图,在AP视图中,方向相反。通常,X光片是在AP视图中拍摄的,但是一个重要的例外就是胸部X光片,在这种情况下,最好在查看PA而不是AP,但如果病人病得很重,不能保持姿势,可以拍AP型胸片。
最新活动更多
-
即日-12.26立即报名>>> 【在线会议】村田用于AR/VR设计开发解决方案
-
1月8日火热报名中>> Allegro助力汽车电气化和底盘解决方案优化在线研讨会
-
即日-1.14火热报名中>> OFweek2025中国智造CIO在线峰会
-
即日-1.24立即参与>>> 【限时免费】安森美:Treo 平台带来出色的精密模拟
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 【线下会议】OFweek 2024(第九届)物联网产业大会
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论