王俊峰, 程勃超, 刘 彦, 张俊然
(1.四川大学 电气工程学院,四川 成都 610065; 2.四川大学 华西第二医院,四川 成都 610041)
骨龄评估是临床中用于预测儿童身高,研究儿童遗传因子、内分泌和生长障碍的一种常用手段[1]。而自动化骨龄评估一直是计算机视觉和放射学领域的一个重要研究目标[2]。基于人工评估骨龄的方法[3~6]需要医生对量化指标进行长时间的分析计算,并且极易受到评定者的主观因素影响,导致操作者误差较大。因此,自动化骨龄评估方法的研究受到相关领域专家学者的广泛关注。
2003年,文献[7]提出一种基于指骨距离提取EMROI的标准阈值分割方法,并通过模糊分类器进行TW级分配,在360张0~6岁儿童非公开X线影像图上测试,平均绝对值误差(mean absolute error,MAE)为1.93岁。文献[8]提出一种利用主动外观模型分割出手部的15块主要骨骼区,并根据这15块骨骼的纹理、密度、形状等特征通过主成分分析(PCA)方法进行评分的骨龄评估系统BoneXpert,在北美放射协会(Radiological Society of North America,RSNA)[9]儿童骨龄挑战测试集上的MAE为8.16个月。文献[10]提出一种含6个卷积层的神经网络BoNet,在网络中嵌入变形层以校准手骨的位置并进行端到端的训练,在公共数据集DHA(digital hand atlas)上测试,MAE为9.48个月。文献[11]提出一种基于ResNet—50改进的骨龄评估算法,在RSNA数据测试集上的MAE为7.2个月。2021年,文献[12]提出一种融合X线影像图和放射学报告文本数据的多模态数据融合神经网络RT—FuseNet,在RSNA数据测试集上的MAE为6.29个月。虽然上述方法实现了自动化骨龄评估,但文献[7,8]中方法需要手动设计特征,泛化能力差。文献[10~12]中方法直接将整张X线影像图送入网络进行预测骨龄,没有充分利用X线影像图的局部特征信息,骨龄评估的精确度还有进一步提升的空间。
本文提出一种多尺度特征双线性融合的骨龄自动评估方法。利用类激活映射(class activation map,CAM)机制定位提取X线影像图的全局特征区域和局部特征区域。以EfficientNet—B2为特征提取器,结合压缩双线性池化模块融合不同尺度特征,使X线影像图的全局特征和局部特征信息得到充分利用,并联合性别信息平衡不同性别间的发育差异,有效提升了骨龄评估的精确度。
CAM[13]机制用全局平均池化(global average pooling,GAP)层或全局最大池化(global maximum pooling,GMP)层替换网络的全连接层来保持图像的空间位置信息,并将SoftMax层输出的结果反向映射到最后一个卷积层输出的特征图中生成类激活图。因为类激活图表示特征图中的每个像素对决策的贡献度,所以可用来定位对决策最强响应特征区域。而结合全局特征和局部细节特征可以提升骨龄评估的准确性,因此,本文引入CAM机制实现不同尺度的感兴趣区域(region of interest,ROI)定位提取。ROI分割网络结构如图1所示。
图1 ROI分割网络
以Inception—v3为基础模型。网络输出结果与最后一个卷积层输出特征图之间有如下关系
(1)
式中H和W分别为特征图的长和宽,k为通道数,fk(i,j)为第k个通道的特征图中对应位置的元素。定义类激活图为Ac∈RH×W,且符合下式关系
(2)
将得到的类激活图通过双线性插值方式上采样到输入大小,并按照式(3)的方式进行二值化得到掩模Mc
(3)
式中τ为二值化的阈值,决定ROI分割区域的大小,阈值越大则ROI越小,本文中分割全局ROI(b)阈值设置为20,分割局部ROI(c, e)设置为50。最后根据掩模来剪切原图得到不同尺度的ROI区域切片。
ROI定位提取结果如图2所示,每行表示同一个样本,(a)列表示不同骨龄的原始X线影像图。不同尺度ROI提取步骤如下:1)将(a)列作为网络的输入,生成全局ROI的类激活图,剪切后得到全局ROI切片见(b)列;2)再以(b)列作为输入,生成局部CROI类激活图,剪切后得到CROI切片见(c)列,同时利用随机值填充对应区域见(d)列;3)最后以(d)列作为输入,得到局部指骨ROI的类激活图,剪切后得到指骨ROI切片见(e)列。
图2 ROI定位提取过程
压缩双线性池化(compact bilinear pooling,CBP)[14]是特征融合的一种方法,通过求取两个向量外积的方式来建模特征的高阶统计信息,从而捕获特征之间的关系。这种方法在计算机视觉细粒度分类任务上取得了不错的效果,其结构如图3。
图3 CBP模块
两个向量直接外积容易导致融合后特征维度过高,消耗过多的计算资源。利用Count Sketch函数ψ[15]将其从高维空间投影到低维空间,从而减少计算量。且两个向量外积的ψ投影等价于每个向量先进行投影再进行ψ卷积操作,公式如下
ψ(vx⊗vy)=ψ(vx)*ψ(vy)
(4)
式中 ⊗为外积操作,*为卷积操作。又根据卷积原理,时域内的卷积等价于频域内的乘积,上述公式可以改写为
ψ(vx⊗vy)=FFT-1(FFT(ψ(vx))⊙FFT(ψ(vy)))
(5)
式中 FFT和FFT-1分别为傅里叶变换和傅里叶逆变换,⊙为按位相乘。此外,在压缩双线性汇合之后,依次进行式(6)和式(7)表示的归一化操作
(6)
(7)
EfficientNet[16]是在2019年发布的一组基于CNN的主干特征提取网络,内部选用移动翻转卷积(mobile inverted bottleneck convolution,MBConv)模块,并通过混合系数平衡网络的宽度、深度以及分辨率,以得到更高的精度及效率。本文在此基础上构建如图4所示的骨龄回归网络,去除了EfficientNet—B2基础网络的全连接层,并嵌入两个CBP模块用于融合提取到的多尺度ROI特征,可以使模型捕获到X线影像图中更多的细节信息,从而提升模型预测骨龄的精确度。
图4 骨龄回归网络结构
图4中,将提取到的3个ROI切片作为输入,经过EfficientNet特征提取器输出得到相应特征图。在两个局部ROI特征图通过CBP融合后,利用1×1的卷积核降维到全局ROI特征图相同的维度,经过GAP作用得到全局特征向量和局部向量,再将全局特征向量与局部特征向量进行CBP融合,输出X线影像图的特征向量表达。先将多个局部ROI融合后,再与全局变量进行融合,可以降低融合后特征的冗余,使模型能够提取更深层次的语义信息。最后通过增加性别信息平衡不同性别间骨骼发育差异。
深度学习框架为Pytorch,硬件配置为Intel®CoreTMi7—8700K CPU,NVIDIA GeForce GTX 1080Ti GPU;软件配置为Ubuntu 16.04操作系统,Cuda 9.0,Cudnn 7.0,Pythorch 1.7,Python 3.7。所有特征提取器皆采用在ImageNet[17]中预训练好的权重进行初始化。训练参数设置如下:
1)ROI分割网络中,批量处理参数(batch size)设置为12,采用Adam优化器,分别以0.000 3,0.000 1和0.000 01的学习率迭代训练60,30,30个完整数据集(Epoch)。
2)骨龄回归网络中,Batch Size设置为12,采用Adam优化器,初始学习率设置为0.001,最小学习率为0.000 01,当测试集损失值连续10个Epoch没有下降时,按照10 %比例调整学习率,总共迭代300个Epoch。
本文采用了由四川大学华西第二医院提供的临床数据集,共包含753张0~18岁左手X线影像图,其中,男性382张、女性371张,其分布情况如图5。将本文方法在公共数据集RSNA上进行了测试。RSNA数据集包含12 611张X线影像图,其中,男性6 833张,女性5 778张,其分布情况如图6。
图5 临床数据集年龄段、性别分布
图6 RSNA数据集年龄段、性别分布
从图5和图6可以看出,两个数据集各骨龄组样本数量分布存在不均衡现象,因此,本文采用如图7所示的分层5折交叉验证法对数据分层采样,确保训练集和测试集中样本分布与原始数据集相同。通过5次训练测试后共得到5个结果,取平均值作为最终结果,以保证实验结果的可靠性。
图7 分层五折交叉验证法
本文引入了骨龄评估任务中常用的一系列指标来量化评价本文模型预测骨龄的性能,包括MAE(见式(8))以及真实骨龄与预测骨龄之间的差异值(分为误差在0.5岁内、1.0岁内和2.0岁内3个类别进行统计)
(8)
表1为本文方法分别在临床数据集和RSNA数据集上的验证结果与其他骨龄评估方法之间的对比。其中,文献[8]通过提取X线影像图的物理特征来预测骨龄,而文献[11,12,18,19]都是基于深度学习的方法预测骨龄。其中,文献[18]先使用U-Net分割手骨区域,在利用VGG16提取特征,将骨龄评估问题转换成二元分类子问题;文献[19]利用多个模型预测骨龄后求其平均作为最终的骨龄预测值。
表1 不同骨龄评估方法间的对比结果
从表1中的评价指标可以看出,本文方法的MAE最低,在骨龄评估方面具有明显的优越性能。误差在0.5岁和2岁以的准确率与文献[13]相比均有较明显的提升,其中0.5岁以内准确率提升了7.46 %,说明本文方法可以更有效地捕获X线影像图中的细节信息,从而提升骨龄预测的精确度。
3.4.1 不同ROI特征选择和特征融合的对比实验
在表2中,分别用O代表原图,H表示提取的全局ROI切片,R1,R2则分别代表提取的CROI切片和指骨切片。同时,我们还比较了CBP、拼接(Concat)和按位相加(Add)三种特征融合方法在骨龄评估中的表现。
表2 不同ROI特征选择和特征融合方法的对比
其中,实验1和实验2采用原始的EfficientNet—B2网络直接进行骨龄评估,经过CAM定位提取的全局特征预测骨龄的MAE比原图降低了0.42个月,表明利用CAM定位提取全局ROI可以去除原图中不必要的信息干扰,使评估网络聚焦重要的手骨区域,提升骨龄评测性能;实验3,4的结果表明和直接用完整手骨的X线影像图预测骨龄相比,融合不同尺度ROI特征可以使模型捕获到更多X线影像图中的细节信息,MAE减少了1.01个月;实验4,5的结果表明,通过关联性别信息可以使模型关注不同性别间手骨发育程度的差异,MAE降低了1.37个月;实验5,6和实验7通过对比不同特征融合方法的结果表明,按位加的方法并不能很好实现特征的最终表示,因此效果最差,而本文引入的CBP融合方法明显优于另两种,可以有效地将不同尺度特征融合起来,得到更有效的特征表达。
3.4.2 不同特征提取器之间的对比实验
本文选取了几种骨龄评估任务中常用的特征提取器进行了对比实验,结果如图8所示。
图8 不同特征提取器之间的对比
从图8中的结果可以看出,本文选取的EfficientNet—B2网络对X线影像图特征提取效果最好,比Vgg16的MAE降低了1.1个月。
本文研究通过引入CAM机制,进行多尺度ROI分割,以及基于EfficientNet结合CBP模块改进的骨龄回归网络,能够捕获到X线影像图中更多的细节信息,关联性别信息有助于模型平衡不同性别间骨骼发育程度差异,这些方法均有效提升了骨龄评估的准确率,这将有助于推进骨龄自动评估方法应用于临床中辅助医生诊疗儿童生长发育的相关疾病,具有良好的应用前景。