Content area
Full Text
1 引言
人体医学热红外图像由红外相机采集,相机能接收7 μm~14 μm范围内的红外辐射。根据Stefan- Boltzmann定律[1],黑体的全部光谱辐射出射度与绝对温度的四次方成正比。因此,红外相机在经过标定后,所采集的图像能够定量地反映温度分布。人体在健康情况下体表温度分布趋于平衡,并具有较好的左右对称性。如果某器官发生病变,会导致局部区域温度偏高或偏低[2]。因此,红外热图像分析可为人体健康状况提供有效的辅助诊断依据。国内外医学对人体红外图像的分析主要侧重于定性研究,所采用的方法主要有局部分析法[3]和对称性检查法[4]。实际应用中,热红外图像分辨率和对比度较低,通常通过相机在竖直方向的移动来分别采集上半身和下半身热图像。为了便于医生清晰全面地观察红外图像以及后续分析,须对红外热图像进行有效的预处理,比如全身拼接、部位划分等。
全身拼接所涉及到的图像配准技术在图像处理、计算机视觉等领域具有广泛应用,主要算法有:基于特征的图像配准算法[5-6]、基于变换域的相位相关配准算法、基于区域的图像配准算法等[7-8]。然而人体红外图像分辨率有限,对比度低,没有明显纹理,因此无法采用特征点检测方法。相位相关算法对图像重叠区域要求比较严格,对于可能存在非刚体变换的上下半身图像配准,很难保证配准的准确性。在前人研究的基础上,本文采用了一种基于二值图像和灰度信息的模板匹配算法。
人体特征点提取是人体部位划分的关键环节。邓卫燕等[9]对人体二值图像从上到下逐行扫描,统计每行白点个数,在人体正面图像提取16个特征点。这种算法计算效率高,但易受噪声影响。Lin等[10]基于轮廓向量提取特征点,检测向量变化一定角度的点为特征点,然而这种方法易受局部影响而错检。卢晨等[11]将人体轮廓分成若干个子集,将轮廓子集与特定方向的直线相切获得特征点坐标。这种方法计算精度高,但是计算量较大。考虑到上述算法的不足,本文采用基于轮廓扫描的极值点检测算法,具有更好的适应性与鲁棒性。
2 研究方案
图 1展示了实际应用的红外图像采集系统和上下半身人体红外图像。人体红外热图像一般在密闭舱体利用一个红外相机采集。由于舱体空间限制,红外相机只能通过上下移动分别采集人体的上半身和下半身图像。该密闭空间内的温度通过空调调节,环境温度控制在22 ℃~25 ℃范围内。由于人体温度高于环境温度,红外图像中人体和背景具有明显的灰度差别。系统所采集的红外图像分辨率为320 pixels ×240 pixels,图像质量不高。由于上下半身图像在相隔一定时间后采集,而且在采集过程中人体做出不同姿势,因此两个半身图像往往没有自然对齐,存在左右偏移。此外,由于舱体温度由空调调节,背景温度呈现出水平方向相似、垂直方向渐变的特性。
[Image omitted: See PDF]
根据上述图像采集条件,分析人体红外热图像的特点,本文提出了图 2所示的红外热图像处理框架。输入分别为人体上下半身热红外图像。在图像拼接环节,首先对红外图像进行水平带状区域的局部阈值分割,得到二值图像;然后根据手部和躯干区域的水平长度匹配原则,在二值图像中确定上下半身的重叠区域起始图像行;接着按照躯干配准有限原则,通过灰度模板匹配消除半身图像之间的水平偏移,通过匹配手臂边缘点对齐手臂区域,并对上下半身图像进行加权融合得到全身图像。在部位划分环节,通过对人体图像的左右人体区域扫描得到区域轮廓线,对轮廓线梯度进行极值点检测得到区域划分关键点,从而将人体分割成头部、躯干、四肢等区域。最后对这些区域进行温度统计分析,输出为划分好区域的全身图像以及各区域温度统计。
[Image omitted: See PDF]
本文的创新点包括三个方面:
1) 根据热红外图像中人体与背景温度分布特性,提出了有针对性的局部阈值人体二值化算法;
2) 提出了基于二值模板和灰度模板的重叠区域匹配算法,实现了精确的上下半身图像拼接;
3) 提出了基于人体轮廓特征的关键点计算方法,实现人体部位划分。
3 半身图像拼接
本文方法对红外图像进行局部阈值分割,通过二值和灰度模板进行上下半身图像匹配及加权融合,形成完整人体红外图像,以便于医生观察和分析。
3.1 局部阈值图像分割
人体热红外图像分割的目标是将像素划分成人体和背景两类。根据红外图像人体温度高于环境温度的特点,采用阈值分割方法,该方法计算简单、运算效率高。由于红外图像中的人体温度分布并不单一,背景温度在水平方向相似,而在垂直方向存在渐变,全局阈值并不适用,因此本文采用局部阈值分割算法。该算法的基本思路是对每行像素确定相应的阈值。为提高局部阈值估计的鲁棒性,将与当前行相邻的上下各K行像素(K取20左右)组成局部区域,根据最大类间方差算法[12]确定该行的阈值${T^*}$。本文采取的局部阈值算法能有效划分人体和背景像素,对手指和脚掌等小部位也有较好的分割效果,准确性优于全局阈值方法。
3.2 模板匹配
模板匹配算法简单且易于实现,定位较准确,在医学图像处理中应用较为广泛[13-14]。如前所述,红外相机通过移动采集人体的上下半身图像,两幅半身图像之间存在重叠区域,且不存在尺度缩放。然而在采集过程中人体姿势有调整,人体两幅半身图像中存在水平偏移,同时手臂姿态也存在一些差异。直接采用基于归一化互相关[15]的模板匹配结果如图 3中的红色箭头所示,手臂和腰部均存在一定的偏移。本文根据人体红外图像特点,分别通过二值模板匹配和灰度模板匹配进行半身图像拼接。
[Image omitted: See PDF]
二值模板匹配利用人体腰部以及手臂的宽度信息,实现上下半身图像的竖直方向对齐。设上半身红外图像为搜索图像S,截取下半身图像起始N(本文取N=10)行子图像为模板图像T。为了计算腰部和手臂的宽度,对上下半身红外图像进行3.1节所述的局部阈值分割,分别得到二值图像。如图 4(b)所示,在上半身和模板二值图像中进行逐行扫描,每一行上人体的区域都有对应宽度(记为${\mathit{\boldsymbol{S}}}_i^k$和${\mathit{\boldsymbol{T}}}_i^k$)。将上半身图像的第r行作为起始行,取N行子图像,以最小化差异度求得匹配的起始行${r^ * }$,即:
[Image omitted: See PDF]
\( {r^ * } = \arg \mathop {\min }\limits_r \sum\limits_{k = 1}^3 {\sum\limits_i {{{({\mathit{\boldsymbol{S}}}_i^k - {\mathit{\boldsymbol{T}}}_i^k)}^2}} } 。\)(1)
其中:k=1,2,3代表右手臂、腰部、左手臂所对应的线段。通过上述二值图像匹配,可使得两幅图像竖直方向对齐。考虑到上下半身图像还存在水平偏移,继续通过灰度模板匹配方法校正偏移,计算区域如图 4(c)中的红色区域所示。设${{\mathit{\boldsymbol{S}}}'_j}$是上半身图像${\mathit{\boldsymbol{S}}}$水平位移距离$j$得到的平移图像,最佳位移${j^ * }$通过最小化${{\mathit{\boldsymbol{S}}}'_j}$与灰度模板${\mathit{\boldsymbol{T}}}$之间的差异来求出:
\( {j^*} = \arg \mathop {\min }\limits_j \frac{1}{{|\mathit{\Omega} |}}\sum\limits_{m \in \mathit{\Omega} } {||{{\mathit{\boldsymbol{S}}}^\prime }_j^{(m)} - {{\mathit{\boldsymbol{T}}}^{(m)}}||_2^2} , \)(2)
式中:$\mathit{\Omega} $为平移图像与模板图像直接的重叠区域,$|\mathit{\Omega} |$为重叠区域$\mathit{\Omega} $中的像素数量,m为重叠区域中的像素位置。
进一步地,针对手臂部分可能存在的非刚体运动,通过三次样条插值和线性插值,建立下半身图像与上半身图像手臂与腰部对齐的映射变换,如图 4(d)所示。
3.3 图像融合
经过对齐的两幅图像可能存在亮度差异。差异产生的原因是红外相机上下移动后,人体同一位置的辐射在红外传感器不同位置成像,当传感器各单元响应特性存在不一致时,直接进行图像拼接可能会在匹配行引入一条明暗交界线。本文通过对重叠的M行(取M=10)像素进行加权融合方式来解决这个问题。加权矩阵W中各元素${{\mathit{\boldsymbol{W}}}_{i, j}} = \cos ({\rm{ \mathsf{ π} }}/2 \times j/M)$,每一行元素的三角函数值相等。设上下半身重叠区域图像分别为${{\mathit{\boldsymbol{I}}}_1}$和${{\mathit{\boldsymbol{I}}}_2}$,融合图像为
\( {\mathit{\boldsymbol{I}}} = {\mathit{\boldsymbol{W}}}^\circ {{\mathit{\boldsymbol{I}}}_1} + (1 - {\mathit{\boldsymbol{W}}})^\circ {{\mathit{\boldsymbol{I}}}_2}。\)(3)
式中:“$ \circ $”表示矩阵中对应元素相乘,矩阵1中所有元素值都为1。经加权融合后的上下半身图像拼接结果如图 4(e)所示。
4 区域划分
人体区域划分的目标是分离头部、躯干和四肢区域,这些区域可通过寻找几个关键点来分割。文献[9]利用轮廓向量方法计算人体部位特征点,首先将人体轮廓用八邻域链码表示,然后从头顶特征点出发遍历轮廓,检测与上一个特征点链码方向相差90°的点,即视为特征点。该算法得到的结果如图 5(b)所示,求得的脖子端点存在误差,并且算法容易在局部求得多余点。本文只需取有限的几个点进行部位划分,分别是图 5(c)所示的脖子两侧端点、左右腋窝凹陷点以及裆部点。这些关键点的连线构成人体几大部位的分割线(图 5(d))。
[Image omitted: See PDF]
本文以上半身图像为例分析关键点的位置定位。首先利用对称性计算人体的中轴线,从人体的中轴线分别向左右两边水平扫描,计算白色像素结束的边界距离曲线$d(x)$。图 6(a)给出了左侧扫描的一个示例。为消除距离曲线上的量化台阶及可能存在的毛刺,对距离数据进行高斯平滑得到${d_\sigma }(x)$,其中$\sigma $为高斯平滑的标准差,本文取$\sigma = 1$。距离曲线如图 6(b)所示,其相当于将人体的轮廓线(部分手臂除外)旋转90°。可以看到,脖子端点(横坐标为$x_1^ * $)为头部轮廓线与肩部轮廓线交界处的极小值点,腋窝点(横坐标为$x_2^ * $)为距离曲线迅速下降点。
[Image omitted: See PDF]
函数极小值点可以通过导数过零点计算,曲线迅速下降点可以通过切线斜率计算。为了计算这两个关键点位置,对距离曲线求梯度值$\nabla {d_\sigma }(x)$,梯度曲线如图 6(c)。脖子端点对应的导数(梯度)为零。另外,在该点右侧由于肩部轮廓曲线不断上升,存在一个极大值,其横坐标为${x_{\max }}$。由以上两个条件可以确定脖子端点的位置:
\( x_1^ * = \max \{ x\mid \nabla {d_\sigma }(x) = 0, \;x < {x_{\max }}\} 。\)(4)
在梯度域中确定腋窝点则较为简单,取梯度极小值对应的点:
\( x_2^ * = \mathop {\arg \min }\limits_x \;\nabla {d_\sigma }(x)。\)(5)
裆部关键点定位在通过竖直方向扫描计算得到,具体与上述过程类似,不再赘述。
关键点位置确定之后继续进行区域划分,如图 5(d)所示。脖子两侧端点通过弧线相连,该弧线为脖子端点的三次多项式曲线,分隔头部与上半身。腋窝点向上以斜率k1划线,分割手臂与上半身,本文取经验值${k_1} = 3l$,其中$l$为该侧脖子端点与腋窝点连线的斜率。裆部点向上以斜率k2划线,分割腿部与上半身,本文取${k_2} = \pm 0.5$。
接着以手腕和脚腕为分界线,进行手部和脚部的划分。由于手腕和脚腕宽度较小,采用形态学腐蚀操作,可以将手部或者脚部与人体分离。如图 7(a)所示,首先利用形态学开操作去除手指部分,保证手腕处的宽度最小。然后不断地进行腐蚀操作,其过程如图 7(b)~7(d)所示,当白色区域第一次出现断裂,手臂连通域的最上方红点即为手腕关键点。为了确定手腕分割线斜率,首先提取手臂骨架,然后通过关键点画一条与骨架垂直的线,即为区域分割线,如图 7(e)~7(g)所示。最后将人体躯干区域按传统中医的上中下“三焦”概念[16]按比例分成如图 7(h)所示的六个区域。
[Image omitted: See PDF]
5 实验和讨论
此项工作在实际红外采集系统所拍摄的大量红外人体图像上进行了实验测试,并可提供简洁的温度统计支持辅助医疗诊断。该系统的图像采集设备分辨率为320 pixels×240 pixels,在30 ℃下温度有效分辨率为0.02 ℃。下面给出部分实验结果。
5.1 结果展示
图 8是三组人体热红外图像样本的预处理结果。由图 8可以看出,三组红外图像均获得了较好的图像拼接及区域划分结果。图 8(a)上下半身图像存在手臂位置偏移的情况,拼接后获得了理想的对齐结果;图 8(b)下半身图像左手臂与身体贴合,而拼接和区域划分结果较为稳定;图 8(c)展示了一组女性红外人体图像处理结果,验证了本文提出图像处理算法同样适用于女性。
[Image omitted: See PDF]
5.2 人体温度统计分析
通过人体红外图像的区域分割,可以进行人体部位温度统计分析。图 9和图 10展示了两组图像的温度分析结果,每组从左到右依次为上下半身灰度图像、全身伪彩色图像、区域平均温度伪彩色图像、区域温度统计表。可以直观地发现,图 9中人体的左右腿部平均温度相差0.59 ℃,膝盖部分代谢热量存在问题。图 10中人体的左右区域温度差异较大,头部最高温度与平均温度相差2.17 ℃,存在明显的局部高温区域。这些区域温度统计可以为医生诊断疾病提供辅助信息。
[Image omitted: See PDF]
[Image omitted: See PDF]
如前所述,本文给出了事先定义的若干区域的温度分析方法,能为医学辅助诊断提供有效温度分布数据。下一步将进行更细致的部位划分,包括温度正常或异常区域的自适应划分,并在此基础上开展人体温度分布建模、疑似病例检索等工作,以提供更好的辅助医疗智能化分析手段。
6 结论
本文针对现有的人体红外图像数据,提出的上下半身图像拼接和人体部位划分两种预处理方法,相关技术包括局部阈值分割、二值与灰度模板匹配、图像融合、轮廓特征点提取等,并充分利用了人体红外图像的灰度特性和轮廓特性。实验结果表明,本文所提出的红外图像预处理方法能获得满意的图像拼接及部位划分结果,有效支持人体温度分布的定量及定性分析。
光电工程 2019, Vol. 46 Issue (9): 180689 DOI: 10.12086/oee.2019.180689
Citation
Chen C T, Pan Z W, Shen H L, et al. Image stitching and partitioning algorithms...