1. 引言
检测作为病原学证据被公认为新冠肺炎诊断的主要参考标准。随着临床诊断数据的积累,冠状肺炎的影像学大数据特征变得逐渐清晰,CT影像诊断结果变得更加重要。在国家卫生健康委员会公布的诊疗方案第五版中表明,临床诊断无需依赖核酸检测结果,CT影像临床诊断结果可作为新冠肺炎病例判断的标准。而新冠肺炎患者的CT胸片的影像特征表现为单肺或双肺多发、斑片状或节段性磨玻璃密度影等细微变化 [1] 。一位新冠肺炎病人的CT影像大概在300张左右,这给医生临床诊断带来巨大压力,医生对一个病例的CT影像肉眼分析耗时大约为5~15分钟。因此有必要进行CT图像识别的研究,自动识别CT图像,提示肺部可疑病灶,能够帮助医生快速筛查疑似患肺炎的病人,从而提高诊断质量和诊断效率。
目前,胸部X线X光是确诊肺炎的最主要手段,对患者的治疗和疾病的调查具有十分重要的意义。X射线检查是一种极具挑战的工作,对医师的医学图像处理水平提出了更高的要求。计算机辅助诊断(Computer-Aided Diagnosis, CAD)是近几年发展起来的一种新的医学手段。在此基础上,结合计算机辅助诊断,对提高医师鉴别准确率,减少漏诊和误诊,提高工作效率具有重要意义。
随着图像处理,模式识别,科学计算可视化等学科的发展,国际上对肺炎图像进行了大量的研究。上海交通大学李阳等利用图像处理技术将肺炎图像的局部二值模式(Local Binary Pattern, LBP) [2] 特征信息作为识别特征,然后用支持向量机(Support Vector Machine, SVM)算法进行肺炎图像识别。虽然SVM算法对于处理高维度、非线性问题有较大优势,但是当训练样本较大时,计算量会呈指数增长,导致模型最终的效率偏低 [3] 。近年来,以卷积神经网络(Convolutional Neural Network, CNN) [4] 为代表的深度学习(Deep Learning)算法在计算机视觉领域的成功应用,为CNN在医疗图像处理领域的应用奠定了基础。刘长征等 [5] 利用卷积神经网络实现了肺炎影像的判别。实验结果表明,基于卷积神经网络的特征提取与手工提取的特征相比,其特征表达能力更强。然而,目前大多数人使用的卷积神经网络结构较为单一,其特征学习能力较弱,因此,其识别精度仍有待提高。目前,在图像识别领域,多采用基于深度卷积神经网络(ImageNet)的学习方法,但深度神经网络存在训练难度大等问题。因此,对已有的网络结构进行优化是非常必要的。
2. 原理分析
2.1. 人工智能与卷积神经网络
2.1.1. 卷积神经网络介绍
在机器学习领域,有一个研究方向就是利用神经网络学习复杂的抽象逻辑,即神经网络。神经网络是一种以神经网络为基础,对数据进行学习的一种算法。由于受到运算容量及数据规模的限制,早期神经网络的学习深度通常只有1到4层,且网络的表示能力受到限制。伴随着计算资源的不断增长以及大数据时代的来临,GPU的高速并行性以及海量数据的出现,使得大规模神经网络的训练变得更加容易。
2006年,美国学者GeoffreyHinton等首次提出了一种基于分层预训练的多层神经网络模型,并在MNIST手写体图像上获得了比支持向量机更高的准确率,开创了“第三代人工智能”时代。在论文 [6] 中,Geoffrey Hinton首次提出了Deep Learning的概念,这也是(深层)神经网络被叫作深度学习的由来。2011年,Xavier Glorot等人首次提出了一种基于ReLU的激励函数,它是目前应用最多的一种激励功能。2012年,Alex Krizhevsky提出了8层的深层神经网络AlexNet [7] ,它采用了ReLU激活函数,并使用Dropout技术来防止过拟合,同时抛弃了逐层预训练的方式,直接在两块NVIDIA GTX580GPU上训练网络。在ILSVRC-2012图像识别竞赛中,AlexNet名列第一,其错误率为10.9%,较第二名下降了10.9%。
自从AlexNet模型被提出以来,已经有很多的方法被发布出来,包括VGG系列,GoogLeNet系列,ResNet系列;DenseNet等。该系列的ResNet模式在保证相同的性能或更好的情况下,将一个网络的层次扩展到几百个,甚至上千个层次。该方法思路简洁、通用性强、收敛速度快,是目前最有代表性的深度学习方法。
2.1.2. 卷积网络模型
图像分类是一个普遍存在的问题。该神经网络以图像资料作为输入,以各分类中各样本的概率分布作为其输出。在实际应用中,一般选择具有较大可能性的分类来进行分类。图像识别是当前最早将深度学习方法运用到图像分类中的一个问题,其典型代表包括VGG系列,DenseNet系列,ResNet系列等。他们三者的差别如下图1~3所示。
VGG模型:VGG模型是一种简单的网络,它采用相同的卷积核大小(3 × 3),并采用最大的池化大小(2 × 2)。另外,VGG算法的运算代价很大,因为它所用的参数太多,对内存的要求也很高。这些参数中的绝大部分都来源于首个完全连通层。
DenseNet模型:又称为稠密卷积网络(DenseNet)。它引入了具有相同特征图大小的任意两个层之间的直接连接。DenseNet可以自然地扩展到数百层,同时没有优化的困难。实验测试中,随着参数的增加,Densenet趋向于在准确性上取得一致的提高,而没有任何性能下降或过拟合的迹象。此外,较之于VGG模型,Densenet需要更少的参数和更少的计算,且具有最先进的性能。
Resnet (深度残差网络):AlexNet、VGG、GoogLeNet等网络模型的出现将神经网络的发展带入了几十层的阶段,研究人员发现网络的层数越深,越有可能获得更好的泛化能力。但是当模型加深以后,网络变得越来越难训练,这主要是由于梯度弥散和梯度爆炸现象造成的。为了解决深层神经网络的梯度弥散和梯度爆炸现象,2015年,微软亚洲研究院何凯明等人发表了基于Skip Connection的深度残差网络(Residual Neural Network,简称ResNet)算法 [8] ,并提出了18层、34层、50层、101层、152层的ResNet-18、ResNet-34、ResNet-50、ResNet-101和ResNet-152等模型,ResNet在ILSVRC 2015挑战赛ImageNet数据集上的分类、检测等任务上面均获得了最好性能,截止目前,ResNet仍是受欢迎的主流模型。本论文以ResNet-34模式为研究对象。

Figure 2. DenseNet model structure diagram
图2. DenseNet模型结构图

Figure 3. Structure diagram of the Resnet model
图3. Resnet模型结构图
2.1.3. ResNet网络原理
ResNet短路连接卷积层的输入、输出,并插入Skip Connection形成残差网络,实现残差连接,如图4所示,输入x经过两层卷积,获得特征转换后的输出F(x),再将输出F(x)与输入x进行对应的加法运算,获得最后的输出H(x):
(1)
Residual mapping指的是“差”,也就是输出H(x)-输入x,所以残差指的就是F(x)部分。
为残差映射,其优化比H(x)更简单,所以使用残差网络相当于学习的目标不是最优解H(x)和全等映射x,而是他们的差。
为了使输入x与输出F(x)能够进行相加运算,需要输入x的shape与输出F(x)的shape完全一致。当输入、输出的shape不一致时,通常情况下在Skip Connection上对输入x进行卷积操作,使其shape与输出F(x)的shape大小一致,如下图4中identity(x)函数所示,其中identity(x)绝大多数是1 × 1的卷积运算,主要在height和width不变的情况下,调节输入的通道数。
图5对比了34层的深度残差网络、34层的普通深度网络以及19层的VGG网络结构。可以看到,ResNet通过短路连接插入形成残差网络,达到了较深的网络层数,解决了深层神经网络的梯度弥散和梯度爆炸现象。

Figure 5. Comparison of network structures
图5. 网络结构比较
2.2. 基于深度学习的肺部CT识别
影像辨识功能:影像辨识模式的作用,在于侦测使用者所上传之肺部CT影像,并判定其罹患肺炎的机率,协助医师初筛可疑肺炎病人。
2.2.1. 数据集来源
本项目采用Kaggle开放源码数据库,共6000例CT图像,共分为3类,即正常、病毒性肺炎和细菌性肺炎,每一类大约2000例。
2.2.2. 数据集处理
本论文参照ResNet模式,在Windows 10 x64,版本的tensorflow2.0的基础上建立了一个以ResNet为基础的图像识别网络。tensorflow是由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护的面向科学研究和谷歌产品开发的大规模深度学习应用框架。首先CT扫描结果是DICOM格式,神经网络则是3通道JPEG压缩,并且每一张照片的长度和宽度都是固定的,最后得到的CT样本见图6。
2.2.3. 模型搭建及训练
本项目以面向深度学习的python语言为基础,借助tensorflow构建好神经网络框架,并配置GPU环境,项目所采用的GPU为NVIDIA RTX3070,模型训练超参数配置如表1所示。

Table 1. Model training hyperparameter configuration
表1. 模型训练超参数配置
3. CT图像识别及检测预估
3.1. CT图像识别准确率
本项目选择kaggle库中自带的检验集作为CT影像试验的检验样本。CT检查的一个重要指标就是要将患者与正常人区别开来,一旦确诊为肺炎,就需要区分是病毒性肺炎还是细菌性肺炎。实际验证的结果表明训练的模型分辨肺炎和正常的准确率达到99.98%,满足实际应用需求(图7)。

Figure 7. Image recognition model accuracy
图7. 图像识别模型准确率
3.2. CT图像检测预估
对CT影像进行辨识后,应将其信息反馈给使用者。以CT图像为载体,同时包含正常、病毒及细菌三种形态的鉴别预估价,并在使用者界面上进行显示,其详细样本见图8。
从图8可以看出,CT图象识别样片被划分为三个类别,分别是(a)正常的肺鉴别样片、(b)细菌肺炎鉴别样片、(c)病毒肺炎鉴别样片,每种都有两张样片供分析。从(a)中可以看出,这两张样本都是正常的肺部CT影像,它们的鉴别预估值都是0.99,而细菌(几率)和病毒(几率)都是0.01,在有一定误差的情况下,它们的检测结果与现实相符。从(b)中可以看出,这两张样本都是细菌肺炎的CT图像,它们的鉴别预估值都是0.01,细菌的概率都是0.99,病毒的概率是0.01,在有一定误差的情况下,它们的检测结果与现实相符。从(c)中可以看出,这两张样本都是病毒肺炎的CT图像,它们的鉴别预估值都是以0.01为标准(概率)、0.01、0.38的细菌(概率)、以及病毒(概率)都是0.99,在有一定误差的情况下,它们的检测结果与现实是一致的。

(a) 正常的肺鉴别样片
(b) 细菌肺炎鉴别样片
(c) 病毒肺炎识别样片
Figure 8. CT identification detection prediction
图8. CT识别检测预估
4. 结论
本文采用人工智能领域较为成熟的深度残差网络,利用具有推理、规划和学习能力的深度学习算法,构建一套基于深度学习的CT病毒自动辨识平台。具有很强的适应性,学习性,全局最优等能力,在CT识别中表现出较好的性能。将用户的初始CT图像进行处理,变换成固定长度、宽度的3通道JPEG图像,再用训练好的深度残差网络模型对处理后的CT样片进行图像识别分类,判断样片的实际情况,将患者与正常人区别开来,并且还能区分是病毒性肺炎还是细菌性肺炎。这一整个流程能够在20秒左右就能出具智能分析结果,实际验证的结果表明训练的模型分辨肺炎和正常的准确率达到99.98%,满足实际应用需求。