APP下载

基于Mask R-CNN的超声图像中胎儿头围测量方法

2021-04-25李宗桂张俊华梅礼晔

中国生物医学工程学报 2021年1期
关键词:头围测量误差头部

李宗桂 张俊华 梅礼晔

(云南大学信息学院,昆明 650500)

引言

用超声图像中的胎儿生物测量结果作为评估胎儿发育和胎龄的标准,其准确性对确保母亲和胎儿在怀孕期间和之后的持续健康至关重要。其中,头围(head circumference, HC)是妊娠中末期测量的最重要的生物特征之一,与胎儿脑重量的评估以及出生后前两年的生长发育密切相关[1]。若头围值偏低,则与胎儿的神经系统障碍和发育不良有关[2]。在临床上,头围定义为外颅骨椭圆的周长[3](见图1(a)中的红色轮廓)。在临床实践中,医生通过标记椭圆短轴和长轴的两个端点来计算椭圆周长,手动测量头围。

图1 超声胎儿头部图像。(a)红色轮廓表示头围,定义为外颅骨椭圆周长;(b)胎儿头骨边界模糊;(c)胎儿头骨边界缺失;(d) 存在与头骨相似的其他解剖结构Fig.1 Ultrasound fetal head images. (a)The red contour indicates the HC, defined as the circumference of the outer skull ellipse; (b) The boundary of fetal skull is fuzzy; (c) Fetal skull boundary is missing; (d) There are other anatomical structures similar to the skull

由于超声图像信噪比低,胎儿头骨常常出现边界模糊(见图1(b))或者边界缺失(见图1(c)中的箭头),且子宫内胎儿姿势复杂,超声图像中可能包括与头骨相似的其他解剖结构(见图1(d)中箭头所指的肢体),导致用许多方法也难以精确地提取完整的胎儿头骨进行头围测量。即使是有经验的医生,手工测量胎儿头围仍然是一项耗时的任务,而且由于存在操作者的误差,可能会导致后续的诊断误差。

近期已出现不少超声图像中自动测量胎儿头围的方法。Lu等[4]在利用K均值算法和形态学方法提取颅骨节段后,使用Hough变换拟合头部椭圆,但K均值算法难以有效地从噪声较多的图像中提取颅骨节段,导致Hough变换拟合精度降低。Carneiro等[5]利用大型数据库开发了自动检测胎儿解剖结构的系统,但由于测试图像和训练图像外观差异较大,导致20%的测量结果有较大的误差。Stebbing等[6]提出了基于随机森林边缘分类的边界片段模型,但由于存在与头骨强度相似的其他解剖结构,会导致该方法的稳定性降低。Ciurte等[7]提出将分割任务划分为连续最小切割问题,但该方法需要用户辅助标记初始化分割,使得测量过程较为繁琐。在Foi等[8]提出的方法中,损失函数基于头骨强度平均大于周围组织强度的假设,但由于存在周围组织具有高强度的情况,使得损失函数假设并不完全正确。此外,已有利用机器学习中的随机森林算法测量胎儿的头围[9-11]。其中,在胎儿头围椭圆拟合时,文献[4,9,12-13]使用了Hough变换,由于该变换的迭代过程计算量较大,导致拟合速度较慢。文献[10-11]结合随机森林算法和相位对称性定位来检测胎儿头围边缘,使用基于几何距离的ElliFit算法[14]拟合椭圆曲线。Wu等[15]使用全卷积网络(fully convolutional networks, FCN)[16]和auto-context算法[17],对胎儿头部进行自动分割,并且展示了使用级联网络结构的改进结果。

本研究根据胎儿头围的形状特征,提出了一种头围测量损失函数,与Mask R-CNN的原三分支损失函数(分类损失、边界框回归损失、掩膜分割损失)[18]进行联合训练,使得模型训练过程与胎儿头围测量任务紧密相连,从而提高测量的精度和速度。

1 方法

实验数据来自公开数据集[9],筛除部分重复图像后剩余989幅胎儿头部超声图像,每幅图像的大小为800像素×540像素,像素大小在0.052 ~0.326 mm,超声图像由超声医师使用Voluson E8或Voluson 730超声设备采集。

图2 本研究提出的模型Fig.2 The model proposed in this paper

本研究提出的胎儿头围测量模型框架如图2所示。首先将待检测的胎儿头部超声图像数据集输入模型,通过残差网络ResNet-101对图像进行特征提取,得到相应的特征图;再利用区域推荐网络(region proposal network, RPN),在特征图上快速生成胎儿头部候选区域;然后通过候选区域校准(region of interest align, RoIAlign)得到固定尺寸的特征图,在分类分支进行胎儿头部目标框的定位和分类,在分割分支通过全卷积网络描绘出胎儿头部二值掩膜,并且对掩膜拟合椭圆和测量周长,最后输出模型预测的胎儿头围。

1.1 Mask R-CNN函数

Mask R-CNN主要有两大组成分支,分别是检测分支和分割分支。其中,检测分支主要是实现对图像中目标的定位以及分类,而分割分支则是通过FCN生成二值掩膜,从而实现像素级别的区分。

RPN通过长宽比例和倍数不同的窗口(也称为锚点),在经CNN提取特征后的特征图上进行滑窗,然后快速生成候选区域。图3为RPN算法示意,背景表示特征图,RPN利用不同倍数尺寸(如图中红绿蓝3种不同倍数尺寸的窗口)和不同长宽比例的窗口在特征图上滑窗,若交并比(intersection over union, IoU)不小于0.5,则将其认为正例,并且对其进行回归。在实验中,本研究模型以及Mask R-CNN的锚点大小设置为32×32、64×64、128×128、256×256、512×512、长宽比例为1∶2、1∶1、2∶1。交并比计算如下:

(1)

式中:A为RPN网络推荐生成的候选框,B为训练集正确的目标框;SA∩B为A和B重叠部分的面积,SA∪B为A和B并集的面积。

图3 RPN算法示意Fig.3 RPN algorithm diagram

RoIAlign层的主要作用是对产生的候选区域进行池化,尺度不同的特征图经过RoIAlign层池化,可成为固定尺度的特征图,其算法示意如图4所示。Faster R-CNN候选区域池化存在两次取整操作,因而会产生量化误差,从而导致图像像素点定位准确率较低。在Mask R-CNN中,RoIAlign层采用精细量化代替粗糙量化,使用双线性插值,保留浮点型坐标。这样做能够在所提取特征和输入之间建立更好的对齐关系,从而提高掩膜正确率。

全卷积网络与传统CNN网络类似,也包含了卷积层以及池化层,不同的地方在于全卷积网络对最后一个卷积层的特征图进行上采样,使它恢复到与输入图像相同的尺寸,最后逐个像素地计算Softmax分类的损失,预测出各个像素点所属的类别。

图4 RoIAlign算法示意Fig.4 Schematic diagram of RoIAlign algorithm

1.2 拟合椭圆测量周长

本研究在分割分支后,为了提高椭圆拟合速度,使用基于几何距离的ElliFit非迭代算法[14],对胎儿头部分割掩膜进行椭圆拟合。在该算法中,将椭圆上的点序列Pi(xi,yi)拟合为最小二乘问题,拟合模型的关键参数为

(2)

式中,φ1、φ2、φ3、φ4和φ5是中间变量,可以使用该方程的最小二乘解进行优化。

椭圆的5个参数(中心坐标(xc,yc),方向角θc,长轴半径a,短轴半径b)分别计算为

(3)

拟合椭圆后,使用精度较高的Ramanujan近似公式[19]计算拟合椭圆的周长,有

(4)

(5)

式中,ypred是拟合椭圆的周长,即模型预测的头围大小,h是中间变量,S为输入图像的各向同性像素大小。

这个近似公式的误差是o(h^10),对于像胎儿头部这样的椭圆来说,该误差可以忽略[19]。

1.3 头围测量损失函数

本研究在Mask R-CNN损失函数的基础上,根据胎儿头部接近椭圆形状的特征以及Mask R-CNN联合训练损失的思想,添加了一个头围测量损失Lhc,使得模型训练过程与头围测量任务紧密结合。该研究模型完成了4个任务,即胎儿头部框的检测定位、胎儿头部与背景的分类、胎儿头部与背景的分割、胎儿头围的测量。因此,损失函数的定义包括定位损失、分类损失、分割损失以及头围测量损失4个部分,即

L=Lbox+Lcls+Lmask+Lhc

(6)

式中,Lbox表示定位损失,Lcls表示分类损失,Lmask表示分割损失,Lhc表示头围测量损失。

定位损失函数Lbox表示为

(7)

(8)

分类损失函数Lcls表示为

(9)

(10)

分割损失函数Lmask是一个用像素级Sigmoid函数定义的平均二值交叉熵损失,如果一个感兴趣区域关联的真实类别为k,那么Lmask只在第k个掩膜上有定义,不受其他掩膜输出的影响。这种定义方式解耦了掩膜和类别的预测,无须考虑类别竞争,表示为

(11)

为了使模型的预测结果更加精确,把头围测量损失Lhc定义为标签头围真实值与胎儿头部分割掩膜的拟合椭圆周长(即预测值)的均方误差(mean square error, MSE)。其梯度随着损失增大而增大,而损失趋于0时则会减少,即便使用固定的学习率也可以有效收敛,这使得在训练结束时,使用MSE的模型预测结果会更精确。

因此,本研究提出的头围测量损失函数为

(12)

式中,Nhc表示训练样本数,ytrue表示标签的头围真实值,ypred表示测量值(见式(4))。

1.4 算法验证和评价

头围测量实验数据集[9]划分为训练集:验证集∶测试集=4∶1∶1。实验环境的主要配置:CPU为Intel Core i7-9 700 K,显卡为NVIDIA GeForce RTX 2080Ti,内存为DDR4 16 GB。操作系统为Windows 10企业版,基于Keras学习框架,以Tensorflow为支持来实现。

使用基于Mask R-CNN改进的模型,对胎儿头部超声图像进行分割以及胎儿头围的测量。训练集与测试集的划分比例为4∶1。实验结果的评价指标采用医学图像分割标准Dice系数(%)以及胎儿头围测量误差(mm)表示,其中Dice系数表示分割结果与标签的像素重合程度,有

(13)

式中:|Ypred∩Ytrue|是分割结果Ypred和标签Ytrue的交集,代表Ypred和Ytrue中同一位置像素点的值相等的像素个数;|Ypred|和|Ytrue|分别是分割结果和标签的像素个数。

胎儿头围测量误差的表达式为

e=ytrue-ypred

(14)

式中,ytrue表示标签的头围真实值,ypred表示测量值。

实验环境主要配置如下:CPU为Intel Core i7-9 700 K,显卡为NVIDIA GeForce RTX 2080Ti,内存为DDR4 16 GB。操作系统为Windows 10企业版,基于Keras学习框架,以Tensorflow为支持来实现。

2 结果

将本研究模型与原网络模型Mask R-CNN在同一数据集上进行对比。作为例子,图5给出了部分测试结果:(a)和(b)分别为本研究模型测量误差最小和最大的结果,(c)和(d)分别为Mask R-CNN测量误差最小和最大的结果。其中,本研究模型和Mask R-CNN测量误差最小的结果为同一个测试样本(即(a)和(c))。从图中可以看出,本研究模型的测试结果在不同情况下都比Mask R-CNN的结果更接近标签的真实值。

图5 测试结果:红色轮廓为标签,绿色轮廓为本研究模型的结果,蓝色轮廓为Mask R-CNN的结果。(a)本研究模型误差最小的结果;(b)本研究模型误差最大的结果;(c)Mask R-CNN误差最小的结果;(d) Mask R-CNN误差最大的结果Fig.5 Testing results. The red contour is the label, and the green contour is the result of our model, and the blue contour is the result of Mask R-CNN. (a) The result with the smallest error of our model; (b) The result with the largest error of our model; (c) The result with the smallest error of Mask R-CNN; (d) The result with the largest error of Mask R-CNN

具体对比结果分别如图6(横坐标表示测试图像序号,纵坐标表示对应图像的Dice系数)和图7(横坐标表示测试图像序号,纵坐标表示对应图像的测量误差)所示。由图可见,本研究模型分割精度都在94%以上,测量误差主要集中在-4~4 mm之间,仅有3个样本点的测试误差超出这个范围;而Mask R-CNN有23个测试样本的分割精度低于94%,超出了-4~4 mm这个测量误差范围的样本点有20个以上。

图6 分割结果Dice系数散点图Fig.6 Scatter diagram of Dice’s coefficient of segmentation results

图7 头围测量结果误差散点图Fig.7 Scatter diagram of the error of head circumference measurement results

3 讨论

本研究根据超声图像中胎儿头部接近椭圆形状的特征,基于Mask R-CNN联合训练损失的思想,将标签头围真实值与拟合椭圆周长的MSE(即头围测量误差),添加到Mask R-CNN损失函数分支中,使模型训练过程与胎儿头围测量任务紧密结合。相比其他方法,本模型可端到端地直接获得胎儿头围测量的结果。其他研究方法主要分两步,即先检测胎儿头骨边界,再进行头围测量。例如,Stebbing等[6]提出的随机森林边缘分类的边界片段模型,以及Foi等[8]通过多起点多尺度Nelder-Mead算法将代价函数最小化的方法,对头骨边界的检测要求超声图像中头骨的信号强度大于周围组织的信号强度,但实际测量中可能会存在与头骨相似的其他解剖结构,从而使方法的精确度和稳定性降低。据2012年胎儿分割挑战[20]报告,最佳头围的测量结果(-2.01±3.29)mm来自Foi等[8]的方法。在基于深度学习的方法上,Wu等[15]以及Sinclair等[21]都使用了FCN模型对头部轮廓进行分割。其中,前者提出的级联FCN的分割结果中未提及误差范围,难以判断该方法的鲁棒性,且其分割的头骨轮廓并不是椭圆,这意味着模型可能学习到的是标注图像的医师的特定偏向;后者采用相似结构模型的分割精度略高于前者所获得的分割精度,其原因在于训练数据量的差异,为1 948∶900。本实验所用训练数据量与前者的数据是相近,为799幅图像。在同一数据集上,本模型在分割分支上对190幅胎儿头部超声图像的分割结果Dice系数为96.89%±1.01%,原模型的相应系数为95.47%±7.09%。在头围测量分支的结果上,本模型的头围测量误差为(0.33±1.54)mm, 原模型的头围测量误差为(1.08±3.56)mm。结果表明,分割精度及头围测量精度的鲁棒性均有所提升。

在对分割掩膜进行椭圆拟合时,使用ElliFit算法可以使拟合过程具有非迭代性、数值稳定性和计算成本低的特点,从而加快拟合速度,减少模型预测头围的时间。本模型平均预测一幅图像的胎儿头围时间为0.33 s,在Li等[11]的实验中,医生手动测量的平均时间为17.20 s。此外,拟合椭圆的周长计算公式的选择会直接影响到模型输出胎儿头围的精度。由于椭圆周长没有确定的计算公式,本模型选择精度较高的Ramanujan近似公式,从而使测量误差更小。本研究对比了所构建的模型与原网络模型Mask R-CNN的分割精度以及测量误差,从图5~7中可以看出,本模型较原模型在胎儿头部分割精度以及头围测量精度上有所提高,其中分割Dice系数平均提高了1.42、标准差降低了6.08,头围测量精度平均提高了0.75 mm、标准差降低了2.02 mm。

实验结果表明,在训练模型时,将头围误差作为头围测量损失函数加入原损失函数进行联合训练,可使模型训练过程与测量任务紧密相关,一方面能提高头围测量的准确度,另一方面可端到端地直接获得胎儿头围的测量结果。

4 结论

本研究根据胎儿头围测量的特点,基于Mask R-CNN设计了一个损失函数,并且在头围测量精度和速度上进行了优化。实验结果表明,该方法在测量精度和速度上相对原模型有所提高,可以满足临床医师在超声图像中测量胎儿头围的需要。

猜你喜欢

头围测量误差头部
密度测量误差分析
头部按摩治疗老伴失忆
火箭的头部为什么是圆钝形?
纵向数据下变系数测量误差模型的渐近估计
基于更快速的区域卷积神经网络的胎儿头围超声图像质量控制
头大的宝宝更聪明?
小囟门儿童预防性口服小剂量维生素D对头围及丹佛智能发育的作用研究
自适应统计迭代重建算法在头部低剂量CT扫描中的应用
牵引变压器功率测量误差分析
宝宝小课堂之头围有讲究