基于U-Net的颅内出血识别算法
张天麒1, 康波2,1, 孟祥飞1, 刘奕琳3, 周颖3    
1. 国家超级计算天津中心, 天津 300457;
2. 天津大学 智能与计算学部, 天津 300350;
3. 北京大学滨海医院, 天津 300450
摘要

针对颅脑计算机断层成像(CT)影像中脑出血的分析和识别,提出采用神经网络模型U-Net与轮廓识别相结合的方法提取脑实质区域,通过阈值分割算法分析血块的图像纹理特征,并过滤软组织、脑组织和脑脊液等无关生理组织结构,实现对颅内出血点的精确定位,最后采用插值方法将出血区域进行三维重建,对血块的三维形态作出评估.在天津市某医疗机构提供的500例颅脑CT数据上进行了验证测试,实验结果表明,该算法达到97.4%的目标识别准确率,能够为脑出血诊断提供参考.

关键词: 深度学习     图像分割     脑出血     颅脑计算机断层成像    
中图分类号:TN319 文献标志码:A 文章编号:1007-5321(2020)03-0092-07 DOI:10.13190/j.jbupt.2019-146
U-Net Based Intracranial Hemorrhage Recognition
ZHANG Tian-qi1, KANG Bo2,1, MENG Xiang-fei1, LIU Yi-lin3, ZHOU Ying3    
1. National Supercomputer Center in Tianjin, Tianjin 300457, China;
2. College of Intelligence and Computing, Tianjin University, Tianjin 300350, China;
3. Peking University Binhai Hospital, Tianjin 300450, China
Abstract

Aiming at analysis and recognition of cerebral hemorrhage from craniocerebral computed tomography (CT) images, a method combining neural network model U-Net with contour recognition is proposed to extract brain parenchymal regions. The image texture features of hemorrhagic area are firstly extracted by adaptive threshold segmentation algorithm, the precise location of hemorrhagic area is thereafter obtained through filtering the irrelevant physiological tissues such as soft tissue, brain tissue and cerebrospinal fluid. Finally, a three-dimensional structure of the hemorrhagic area is reconstructed based on interpolation to evaluate the amount of hemorrhage. A validation test with 500 patients from medical institution in Tianjin shows that the algorithm achieves a target recognition accuracy of 97.4% and could provide reference for the diagnosis of cerebral hemorrhage.

Key words: deep learning     image segmentation     cerebral hemorrhage     craniocerebral computed tomography    

近年来脑血管疾病的发病率逐年增高,其中脑出血属于最为常见的症状之一.脑出血病情危急,多发生于中老年群体,具有致残、病死率高和预后效果差等特点,对患者的生命健康形成严重威胁[1].随着现代医学检测方法的不断发展和进步,计算机断层成像(CT)影像以其快速、准确和无创的特点,在检查和治疗脑出血疾病中起到了越来越重要的作用[2-3].

然而,CT影像检查的广泛应用,为治疗患者提供便利的同时,也为医生带来了负担.目前,针对脑出血的诊断尚未提出一种机器测量和计算模式,只能由医生根据经验来做定性分析.分析和阅读大量的二维断层扫描图像数据,将耗费医生大量的时间和精力,而且不同年资的医生诊疗水平有所差异,导致人工诊断存在漏诊和误诊的可能性.因此,设计并实现一个有效的脑出血识别算法,准确定位颅内出血位置,计算出血量,对辅助诊疗有着非常积极的意义.

人工智能特别是深度学习作为大数据处理的有效手段,在医疗影像研究中得到了非常广泛的应用.以卷积神经网络和对抗生成网络为代表的相关深度学习算法广泛应用于医学图像标注、特征分类、诊断预测、病灶定位、医学图像分割、医学图像合成、医学图像超分辨率重构等方向,并在肺结节监测、糖尿病视网膜病变分类、胎儿超声检测定位、界标分析、乳腺器官分割、皮肤损伤检测等方面取得了较好的效果[4-7],处理的医学影像类型主要包括放射医学影像(CT、核磁、超声)与病理医学图像两大类.

脑实质是指大脑半球外面覆盖的灰质、白质和脑膜等脑组织,是所有脑组织的统称[8].要实现脑出血的自动识别,必须对颅骨内的脑实质进行图像分割,在提取出血区域的同时,还要剔除其他无关的脑部组织结构.许多研究者在这方面作出了探索.杨滨等[9]使用模糊C均值(FCM,fuzzy C-means)扩展算法提取到了颅骨和脑室区域的边界轮廓,但未对脑实质做进一步识别.孙涛[10]提出了一种基于特征向量的脑实质分割算法,能够分割颅内的脑白质、脑灰质和脑脊液区域,但该算法仅适用于健康的脑部结构,未考虑发生病变时的图像特征.周平[11]建立了颅脑CT图像的纹理层析向量图谱,实现了对脑部病灶的识别,但该算法不能对识别出的病灶进行分类,无法区分脑出血与钙化、密度异常等其他病变.王海波[12]基于FCM聚类算法实现了针对脑出血病灶的分割功能,但其所采用的实验数据全部来自疑似脑出血患者,未考虑其算法在健康脑组织上可能存在的假阳性识别情况,因而具有一定的局限性.于杰夫[13]利用机器学习算法分析了颅内出血的图像特征,能够识别颅内有无血肿和脑出血,但识别准确率有待提升.

笔者基于神经网络模型U-Net[14]和显式轮廓识别算法相结合的方法提取脑实质区域,通过设计多层筛查方法实现脑出血点的识别,利用插值方法对出血区域进行三维重建,从而对患者的出血量作出评估.通过上述工作,可以获得一个有效的脑出血识别算法,为脑出血疾病诊断提供辅助和参考.

1 算法设计 1.1 脑实质提取

脑实质即全部脑组织,颅脑CT影像所呈现的内容除脑实质外,一般还包括颅骨以及头颅外部的空气、支撑头架和头垫等其他物体.

通过训练一个U-Net神经网络[14],提取图像特征,对脑实质区域进行分割. U-Net神经网络结构输入图像依次通过左侧的收缩路径和右侧的扩张路径.在收缩路径中,重复进行4次收缩操作,每次操作首先经过2次卷积层,激活函数使用线性整流函数,然后通过最大池化层,提取图像特征.在扩张路径中同样重复4次扩张操作,每次操作首先进行反卷积,使特征通道数量减半,图像尺寸加倍,将结果与收缩路径中的特征图拼接,并剪裁,再进行2次卷积,最后得到二值化图像作为输出的分割结果.

为了解决二值化分割图像边界模糊的问题,对已标记的脑实质区域采用局部差分法计算灰度梯度的近似值,对边缘轮廓进行修正[15-19].记像素点(x, y)处的灰度值为hx, y,则该点的对角灰度梯度定义为gx, y,计算公式为

$ {g_{x,y}} = {(\sqrt {{h_{x,y}}} - \sqrt {{h_{x + 1,y + 1}}} )^2} + {(\sqrt {{h_{x + 1,y}}} - \sqrt {{h_{x,y + 1}}} )^2} $ (1)

遍历二值化分割结果的边界点,在边界点附近寻找灰度梯度值更大的点对边界轮廓进行修正.经过修正得到的脑实质分割结果如图 1所示.

图 1 脑实质边缘轮廓识别效果图

图 1(a)为一例颅脑CT影像切片,各像素点上的CT值等比转化为灰度值;图 1(b)为基于U-Net分割得到的脑实质区域的初步轮廓,用二值化图像表示;最后经过局部差分轮廓修补得到准确的脑实质区域,如图 1(c)所示.将边界轮廓内部的像素点标记为脑实质区域,作为二值化图像蒙板,如式(2)所示.

$ {M_{x,y}} = \left\{ {\begin{array}{*{20}{l}} {1,}&{{\rm{脑实质区域}}}\\ {0,}&{{\rm{无关区域}}} \end{array}} \right. $ (2)

其中Mx, y表示蒙板图像的像素值,将其与原始图像的像素值Ox, y进行乘法操作,得到脑实质区域的分割图像:

$ {S_{x,y}} = {O_{x,y}}{M_{x,y}} $ (3)

Sx, y生成脑实质分割图像,保留了全部脑实质区域像素点信息,其他无关区域的像素值为0,显示为黑色背景,如图 2所示.

图 2 脑实质提取操作示意图
1.2 脑出血识别

颅内发生出血时,血块的标准CT值在60~80之间,单位是亨氏单位HU.由于拍摄CT影像受到血流、呼吸等人体内在因素影响,而且与CT装置、X线管电压、室内温度等外部因素有关,所以实际拍摄得到的CT值通常存在一定的波动.

为了确定实际CT值的波动范围,采用300例脑出血患者的颅脑影像数据,经过统计得出了血块CT值分布情况,如表 1所示.可以看出,血块的CT值下界和上界分别是40和100,且在60~80之间呈现出明显的集中趋势.根据这一分布特征,选取3个特征量:均值μ、标准差σ和变异系数c,来描述血块区域,建立脑出血阈值分割算法[20-23].

表 1 脑出血300例患者颅脑血块CT值分布

表 1所示的300例患者CT影像中,取已标注的全部血块区域设为集合RR中的像素点数记为n,各点上的CT值记为hi,则3个特征量的标准值分别表示为

$ {{\mu _{{\rm{st}}}} = \frac{{\sum\limits_{i = 1}^n {{h_i}} }}{n}} $ (4)
$ {{\sigma _{{\rm{st}}}} = \sqrt {\frac{1}{n}\sum\limits_{i = 1}^n {({h_i} - {\mu _{{\rm{st}}}})} } } $ (5)
$ {{c_{{\rm{st}}}} = \frac{{{\sigma _{{\rm{st}}}}}}{{{\mu _{{\rm{st}}}}}}} $ (6)

对于一个待识别的像素点i,计算其CT值与标准均值的偏差,偏差量定义为

$ {r_i} = {k_{{\rm{st}}}}(1 - {c_{{\rm{st}}}})|{h_i} - {\mu _{{\rm{st}}}}| $ (7)

其中:kst表示筛选条件的苛刻程度,取值范围是[0, 1],当偏差量ri小于阈值时,则将像素点i识别为血块区域.

对于CT影像切片而言,将式(4)~式(7)进行合并简化,第ij列点的差值为ri, j,可得到

$ {r_{i,j}} = l|{h_{i,j}} - {\mu _{{\rm{st}}}}| $ (8)

其中:l为滤值尺度,一般在0~1之间,现取1,作为初筛的条件.根据表 1统计情况,样本均值为70,阈值设定为20,则CT值在50~90范围内满足初筛条件,记为Li, j=1;否则记为Li, j=0. U-Net分割得到的颅脑区域为H,则H之外区域记为Li, j=0.

在初筛基础上,需要对所有初筛点进行空间关系统计,以保证出血区域的面积和聚集分布特点,设定边长为n像素的矩形窗口,则窗口内初筛出血点HU平均强度Xi, j可以表示为

$ {X_{i,j}} = \frac{{\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{h_{i - \frac{n}{2},j - \frac{n}{2}}}} } {L_{ij}}}}{{{n^2}{\mu _{{\rm{st}}}}}} $ (9)

Xi, j大于0.2时,则记为满足筛查条件,即Li, j=1;否则记为Li, j=0.

在初筛基础上,需要对筛查点密度进行统计,设定边长为n像素的矩形窗口,则窗口内初筛出血点HU平均密度Di, j可以表示为

$ {D_{i,j}} = \frac{{\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{L_{i - \frac{n}{2},j - \frac{n}{2}}}} } }}{{{n^2}}} $ (10)

Di, j大于0.2时,则记为满足筛查条件,即Li, j=1,否则记为Li, j=0.

最后对Li, j区域进行膨胀溶蚀操作,以形成一定面积的连通域,去除孤立点,最终得到脑出血区域.

1.3 血块区域三维重建

一组CT影像是对人体不同的水平面扫描得到的断层图像,两个相邻断层之间的距离称为层厚.实验选取的颅脑CT数据层厚为4.5 mm,与像素间距0.5 mm相比几乎相差了一个数量级,这说明在断层之间存在着较大的空间间隔,缺失了较多的扫描信息.为了更准确地描述血块的三维形态,需要将断层之间的CT数据补全.

采用基于单连通域边界的插值方法,将CT切片上的血块区域划分为若干个单连通区域,提取相邻两层切片上单连通区域的边界轮廓进行插值,构造出新的单连通区域边界,作为血块中间断层轮廓的估计值.计算过程如下:

记第z张CT切片上像素点(x, y)处的血块标记值为bx, y, z,则有

$ {b_{x,y,z}} = \left\{ {\begin{array}{*{20}{l}} {1,}&{{\rm{血块区域}}}\\ {0,}&{{\rm{其他区域}}} \end{array}} \right. $ (11)

记第z张切片上方断层区域的标记值为px, y, z,首先标记相邻两张切片上血块区域的重叠部分,如式(12)所示;然后标记边界交错区域,记为dx, y, z,如式(13)所示.

$ {{p_{x,y,z}} = {b_{x,y,z}}{b_{x,y,z + 1}}} $ (12)
$ {{d_{x,y,z}} = |{b_{x,y,z}} - {b_{x,y,z + 1}}|} $ (13)

由式(13)得到若干个单连通区域,将每个单连通区域沿边界方向平均分割为两部分,保留分割线,将每张切片上所有单连通区域的分割线顺次连接,即得到断层血块的插值轮廓线.

以正交六面体网格对血块区域进行三维建模,采用惠普图形语言格式(PLT,HP graphic language)网格数据结构.血块体积V可表示为

$ V = \sum\limits_{z = 1}^{{z_{{\rm{max}}}}} {{d_x}} {d_y}\frac{{\Delta h}}{2}{N_z} $ (14)

其中:dxdy和Δh分别为切片在xy方向上的像素间距和层厚,单位均为m;Nz为第z张切片上标记为血块的像素数量.根据式(14)得到血块三维模型的体积,以此对患者的出血量进行评估.

2 实验结果与评价 2.1 脑实质提取

U-Net模型基于少量数据即可得到稳定的分割效果.笔者选取了100张颅脑CT切片作为训练与验证数据,并转化为图片格式作为输入数据.训练样本集组成为:70张用于训练,30张用于验证.训练初始学习率为0.2,采用逐轮次递减的策略.训练进行了30轮,每轮200步.训练结果显示从20轮开始,训练结果基本保持稳定,如图 3所示.

图 3 U-Net训练过程曲线

实验采用了天津市某医疗机构提供的500例颅脑CT数据,从每一例中随机抽取2张切片,组成1 000张切片的样本集合.将针对该集合的脑实质提取结果与专业放射科医生对脑实质的标注结果相比较,得到误差直方图如图 4所示.

图 4 脑实质1 000切片分割误差直方图

图 4中的横轴表示分割相对误差δ的区间范围,纵轴表示每个区间内的样本数量.为了更好地跟医师进行结果沟通,δ的计算公式如式(15)所示.其中,Wr表示由专业医生标注得到的脑实质区域的像素点数量,Win表示在专业医生标注的范围内未被程序识别的像素数量,Wout表示在专业医生标注的范围之外被程序识别为脑实质区域的像素数量. Dice指标亦可以通过这些参数获取.

$ \delta = \frac{{{W_{{\rm{in}}}} + {W_{{\rm{out}}}}}}{{{W_{\rm{r}}}}} \times 100\% $ (15)

图 4可见,脑实质分割的最大相对误差小于5%,90%以上的测试样本具有1%以下的相对误差,说明脑实质提取算法具有较高的精确度.

2.2 脑出血识别

在500例颅脑CT数据中,有412例被诊断为颅内出血,并由专业的放射科医生对出血位置进行了标注,其余88例未发生脑出血,作为负样本进行测试.

采用准确率度量方法评估脑出血识别结果,同时也计算召回率和精确率作为参考. 表 2所示为对500例颅脑CT数据进行识别的结果,TP表示被模型正确识别的脑出血样本,TN表示被模型正确识别的负样本,FP表示被模型识别为脑出血的负样本,FN表示未被模型识别的正样本.经过计算得出,该模型对于颅内出血达到97.4%的识别准确率、99.0%的召回率和97.8%的精确率,具有较好的综合识别效果.假阳性率和假阴性率分别为10.2%和1.0%,说明该模型有一定概率出现误诊,但发生漏诊的可能性较低,能够为脑出血疾病诊断提供较为有效的参考.

表 2 脑出血500例患者测试结果
2.3 出血区域三维建模效果

本节展示一个血块区域三维建模示例.选取一例正确识别脑出血的CT样本,抽取CT影像中相邻8张切片上的血块区域做高亮度处理,标记为白色区域,对其他脑部组织结构做暗化处理,显示效果如图 5所示.

图 5 脑出血识别结果

根据CT影像显示,该患者在左额叶及基底节区出现片状密度增高影,经由专业的放射科医生诊断为脑出血症状.

取切片所在的平面为xOy平面,垂直于切片方向为z方向建立三维直角坐标系,以长方体单元表示一个像素点,长方体的各边长等于各方向上的像素间距,以此对识别出的血块区域进行三维建模.

图 6以同样的4个视角展示了经过插值之后的血块模型.在z方向上每两层切片之间嵌入了一个插值切片,作为中间断层血块形状的估计值,因此层厚由原来的4.5 mm减小为2.25 mm,使相邻两层的边缘过渡更加平滑.

图 6 血块插值切片三维建模

对血块进行三维建模能够为医生的诊疗过程提供辅助,使医生能够更加准确、清晰地判断出血块的大小和形状等病理特征,同时对于出血量的计算也有一定的指导意义.

3 结束语

提出了一种基于深度学习的颅内出血综合识别算法.首先在脑实质分割上引入了U-Net神经网络和边缘检测算法,然后在脑出血识别上采用了阈值分割算法,最后采用线性插值方法对识别出的血块区域进行三维建模,同时对患者的出血量作出评估,为医生诊断过程提供参考.该算法达到了97.4%的目标识别准确率,具有较低的漏诊率,在识别准确性和功能实用性上具有一定的优势.不足之处一是识别结果中的假阳性识别率偏高,对于如钙化灶等其他病灶未能作出准确的区分;二是三维建模插值算法尚不完善,断层信息补全不够准确.下一步将在降低假阳性率方面继续优化模型,在三维建模上尝试采用更多的插值算法,不断提升插值效果,从而为医生的诊疗过程提供更加准确、可靠的辅助工具.

参考文献
[1]
陈旭, 耿翔. 脑出血的研究现状和治疗进展[J]. 中华老年心脑血管病杂志, 2009, 11(12): 947-949.
Chen Xu, Geng Xiang. Research status and treatment progress of cerebral hemorrhage[J]. Chinese Journal of Geriatric Cardiovascular and Cerebrovascular Diseases, 2009, 11(12): 947-949.
[2]
高明, 秦立国. 颅脑CT在脑出血诊断中应用体会[J]. 医学理论与实践, 2016, 29(20): 3529-3530.
Gao Ming, Qin Liguo. Application experience of cranial CT in the diagnosis of cerebral hemorrhage[J]. The Journal of Medical Theory and Practice, 2016, 29(20): 3529-3530.
[3]
刘丰伟, 李汉军, 张逸鹤, 等. 人工智能在医学影像诊断中的应用[J]. 北京生物医学工程, 2019, 38(2): 206-211.
Liu Fengwei, Li Hanjun, Zhang Yihe, et al. Application of artificial intelligence in medical imaging diagnosis[J]. Beijing Biomedical Engineering, 2019, 38(2): 206-211.
[4]
Dou Q, Chen H, Yu Lequan, et al. Automatic detection of cerebral microbleeds from MR images via 3D convolutional neural networks[J]. IEEE Transactions on Medical Imaging, 2016, 35(5): 1182-1195. DOI:10.1109/TMI.2016.2528129
[5]
Payer C, Štern D, Bischof H, et al. Regressing heatmaps for multiple landmark localization using CNNs[J]. Medical Image Computing and Computer-Assisted Intervention-MICCAI 2016, 2016, 230-238.
[6]
Zhu Wentao, Xiang Xiang, Tran T D, et al. Adversarial deep structured nets for mass segmentation from mammograms[C]//2018 IEEE 15th International Symposium on Biomedical Imaging (ISBI 2018).[S.l.]: IEEE Press, 2018: 847-850.
[7]
Sarker M M K, Rashwan H A, Akram F, et al. SLSdeep: skin lesion segmentation based on dilated residual and pyramid pooling networks[C]//Medical Image Computing and Computer Assisted Intervention-MICCAI 2018. Cham: Springer International Publishing, 2018: 21-29.
[8]
李七渝, 张绍祥, 王平安, 等. 人体大脑数字化解剖模型的构建及可视化[J]. 解剖学报, 2005, 36(6): 638-641.
Li Qiyu, Zhang Shaoxiang, Wang Ping'an, et al. Construction of digitized anatomical model and visualization of human cerebrum[J]. Acta Anatomica Sinica, 2005, 36(6): 638-641.
[9]
杨滨, 付峰, 董秀珍.颅脑CT图像的自动分割和轮廓提取[C]//中国生物医学工程学会成立30周年纪念大会暨2010中国生物医学工程学会学术大会论文集.北京: [s.n.], 2010: 151-156.
[10]
孙涛.基于特征向量的二维颅脑CT图像配准与分割[D].合肥: 中国科学技术大学, 2009. http://cdmd.cnki.com.cn/Article/CDMD-10358-2010019161.htm
[11]
周平.基于纹理特征的颅脑CT图像病变自动化检出算法研究[D].合肥: 中国科学技术大学, 2007. http://cdmd.cnki.com.cn/Article/CDMD-10358-2007097216.htm
[12]
王海波.颅脑CT图像分割算法研究[D].哈尔滨: 哈尔滨工程大学, 2009. http://www.cdmd.cnki.com.cn/Article/CDMD-10217-2009060691.htm
[13]
于杰夫.人工智能识别CT颅内血肿影像及脑出血混合征相关算法的研究[D].沈阳: 中国医科大学, 2018. http://cdmd.cnki.com.cn/Article/CDMD-10159-1018840437.htm
[14]
Ronneberger O, Fischer P, Brox T. U-net: convolutional networks for biomedical image segmentation[C]//Lecture Notes in Computer Science. Cham: Springer International Publishing, 2015: 234-241.
[15]
段瑞玲, 李庆祥, 李玉和. 图像边缘检测方法研究综述[J]. 光学技术, 2005, 31(03): 415-419.
Duan Ruiling, Li Qingxiang, Li Yuhe. Summary of image edge detection[J]. Optical Technique, 2005, 31(3): 415-419.
[16]
马艳, 张治辉. 几种边缘检测算子的比较[J]. 工矿自动化, 2004, 30(1): 54-56.
Ma Yan, Zhang Zhihui. Comparison of some operators of edge detection[J]. Industry and Automation, 2004, 30(1): 54-56.
[17]
唐阳山, 徐忠帅, 黄贤丞, 等. 基于Roberts算子的车道线图像的边缘检测研究[J]. 辽宁工业大学学报(自然科学版), 2017, 37(6): 383-386, 390.
Tang Yangshan, Xu Zhongshuai, Huang Xiancheng, et al. Research on edge detection for the lane line image based on Roberts operator[J]. Journal of Liaoning University of Technology (Natural Science Edition), 2017, 37(6): 383-386, 390.
[18]
罗文村. 基于阈值法与区域生长法综合集成的图像分割法[J]. 现代计算机, 2001(5): 43-46.
Luo Wencun. A new image segmentation approach by integration of thresholding and regiongrowing[J]. Modern Computer, 2001(5): 43-46.
[19]
Arbeláez P, Maire M, Fowlkes C, et al. Contour detection and hierarchical image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(5): 898-916. DOI:10.1109/TPAMI.2010.161
[20]
Brusseau E, de Korte C L, Mastik F, et al. Fully automatic luminal contour segmentation in intracoronary ultrasound imaging-a statistical approach[J]. IEEE Transactions on Medical Imaging, 2004, 23(5): 554-566. DOI:10.1109/TMI.2004.825602
[21]
Pohle R, Toennies K D. Segmentation of medical images using adaptive region growing[C]//Medical Imaging 2001. Proc SPIE 4322, Medical Imaging 2001: Image Processing. San Diego: [s.n.], 2001: 1337-1346.
[22]
Cui Lingling, Zhang Hui. Study on threshold segmentation of multi-resolution 3D human brain CT image[J]. Journal of Innovative Optical Health Sciences, 2018, 11(6): 1850037. DOI:10.1142/S1793545818500372
[23]
Abbood A A, Sulong G, Razzaq A A A, et al. Segmentation and enhancement of fingerprint images based on automatic threshold calculations[C]//Recent Trends in Information and Communication Technology-IRICT 2017. Cham: Springer International Publishing, 2017: 400-411.