马尉腾,吕勇
(嘉兴学院机电工程学院,浙江 嘉兴 314001)
近年来由于科技的迅猛发展,人们的信息安全问题变得越来越重要,因而生物特征识别技术成为人们研究的焦点[1]。生物特征识别技术分为接触式与非接触式,静脉识别属于非接触式的生物特征识别技术。
手臂静脉识别,主要是利用静脉血管的结构来进行身份识别,由于静脉的纹路包含大量特征信息,故而可以用来作为验证对象。其原理是利用静脉血管与肌肉、骨骼之间对特定波长红外光不同的吸收特性来进行静脉血管造影,然后对得到的图像提取其骨架来识别不同的人[2],但它在临床医疗领域中的研究甚少。静脉穿刺是临床最为常见的基础护理操作,是临床工作的重要内容,然而,在日常操作过程中,护理人员会因为各种客观因素使患者静脉不易评估,从而导致穿刺失败或者反复穿刺,如患者手臂肥胖、血管较细等各种原因,甚至还造成注射室的拥挤不堪[3]。因而,我们提出一种辅助手臂静脉注射的方法,对于医疗领域具有重大的现实意义。它不但可以提高静脉穿刺输液治疗的护理质量,减轻患者痛苦,而且能对全自动静脉检测与注射系统的研制提供一定指导。
本研究结合静脉图像处理与检测的过程,对静脉每一段进行标号与分析,再根据实际静脉注射的要求选取合适的部分进行标明,主要包括图像采集、预处理、特征提取、二值化、模板匹配。整体检测流程框图见图1。
图1 手臂静脉检测与标明流程图Fig 1 Arm vein recognition and identification flow chart
图2所示是血液中氧合血红蛋白(动脉血)与还原血红蛋白(静脉血)的光吸收特性,是分子吸收系数与光谱波长之间的曲线关系。从图中可以看出,在由可见光区逐渐过渡到近红外区的过程中,在大约 760 nm 的近红外区,静脉血对红外光的吸收达到了一个峰值,分子吸收系数接近 1000,而虽然动脉血的红外吸收有上升的趋势,但曲线增长缓慢, 分子吸收系数也仅有200,是静脉血的五分之一。故采用760 nm左右的红外光源及窄带红外摄像头进行采集。采集系统见图3。
图2 血红蛋白的光谱特性Fig 2 Spectral characteristics of hemoglobin
图3 静脉图像采集系统Fig 3 Vein image acquisition system
红外摄像头采集到的图像中包含有背景与手臂边缘,不利于进行后续的处理,因此对得到的静脉图像进行以下预处理操作。
(1) 感兴趣区域的提取 :采用Sobel算子进行边缘检测,并以获得的两条边界以内的部分来代表整个手臂的图像。
(2) 归一化以及滤波去噪:将图像大小设为200×300并经行灰度归一化,然后用7×7的高斯模板进行低通滤波。
采用基于方向谷形检测的静脉纹路分割,即利用8个方向的方向算子对图像进行特征提取,然后用Niblack算法对所得图像进行二值化,由于分割后图像会存在一些噪声,所以还需对图像进行滤波[6-7]。
本研究由二值化后图像先进行一种简单的查表法来进行细化处理,然后对图像进行标号,由于细化后的图像会存在一些毛刺,因此在标号之后还要进行剪裁。
种子生长是指从某个像素出发,按照一定的灰度阈值的准则,逐步加入邻近像素,当满足一定的条件时,种子生长终止[8]。分析本研究所得静脉骨架图像可知,骨架就是由端点与端点、端点与分支点、分支点与分支点组成,利用种子生长的原理可将其中的所有端点与分支点视为“种子点”,由于在任意一段以8邻域或4邻域连续的静脉骨架中“种子点”数总比静脉段数大1,故而遍历所有“种子点”即可将每一段静脉都实现标号出来。具体步骤如下:
(1)遍历骨架图像记录所有端点以及分支点作为种子点。
(2)遍历所有种子点,每经过一个种子点编号一段静脉,并将编号值值加1。
(3)当遍历到的种子点8邻域未检测到静脉骨架时,跳过该种子点。
图4、图5为该方法的一个例子。
经过该方法对静脉骨架编号后,每一段静脉变成由不同的编号值组成的8邻域连通段,后续对最佳穿刺点的提取即对这些静脉分支进行分析并计算最佳部位。
分别对每一段被编号静脉进行多次斜率计算并取参数n作为每一次计算相隔的像素点个数,将这些斜率视为随机变量K,由于我们要选取的静脉要求具有一定长度并且弯曲度较小,因而对随机变量K求方差σ即可确定K对于均值的偏离程度,比较σ就可确定我们想要的静脉分支。
图4 骨架标记种子点Fig 4 Skeleton marker seed points
图5 骨架编号Fig 5 skeleton number K=k1,k2,k3,…ki (i=1,2,3…N)
(1)
(2)
其中式(2)中μ为随机变量K的均值,N为每一段静脉计算斜率的次数,ki为每次计算的斜率值。
由于获得的最佳静脉分支仍具有一定的长度,为了尽量减小医护人员选择的范围,故需对其进行片段的提取,基于静脉穿刺时对静脉宽度、弯曲度、长度等多方面的考虑,选择对得到的最佳静脉分支进行模板匹配的方法[9]。具体操作步骤如下:
(1)建立标准匹配模板
由于得到的最佳静脉分支的细化图像具有弯曲度较小的特点,故对其进行分段斜率的计算并以这些斜率绘制长度为30个像素的线段,然后建立结构元素对其进行膨胀操作即可得到需要的标准模版。
(2)进行模板匹配
通过模板匹配的原理,用得到的这些标准模板对最佳静脉分支经行匹配,每进行一次匹配就通过式(3)计算一次匹配度α,最后提取匹配度最大的区域作为最佳注射部位。
(3)
其中I表示待匹配图像,T表示模板图像,α表示匹配度,x、y分别表示像素点的横纵坐标。
(3)标明
记录匹配所得区域的坐标,在最原始处理前的图像中画一个矩形,标明出所得到的最佳注射部位。
本系统采用150度USB高清窄红外工业1080P电脑摄像头,采用Microsoft Visual Studio 2013软件并搭建第三方库Opencv,在PC上进行图像的采集和处理的实验。图6为所采用的摄像头示意图。
图6 高清红外摄像头Fig 6 HD Infrared camera
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,由一系列 C 函数和C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法[10]。
在上述手臂静脉检测与标明系统的软硬件平台下,分别采集30个人的手臂图像,每个人分别采集8幅图像组成个人的静脉样本。图7~图15具体给出了从样本中随机选取的一幅图像从采集到静脉穿刺部位标明的整体流程图。
图7 初始采集图像Fig 7 Initial acquisition image
图8 ROI区域提取Fig 8 ROI region extraction
图9 方向算子特征提取Fig 9 Direction operator feature extraction
图10 Niblack二值化Fig 10 Niblack binarization
图11 平滑与去噪Fig 11 Smoothing and denoising
图12 图像细化Fig 12 Image refinement
图13 最佳静脉分支提取Fig 13 Best vein branch extraction
图14 标准模板与最终标明图Fig 14 Standard template and marked diagram
图15 另外一幅原图与标明图Fig 15 Another original and markedFigure
其中由图7采集到一幅原始图像,经过边缘检测提取包含静脉信息的ROI区域,见图8。图9为经过提前设计好的方向算子进行特征提取得到的结果,图10为直接用Niblack进行二值化得到的结果,显然图中存在一些斑点,并且静脉边缘存在一些凸起的毛刺,图11为边缘平滑和去噪的结果,图12为经过查表细化算法得到的信息完整的细化图像,然后提取最佳静脉并根据相关信息建立图14左的标准模板,再对图11未细化的最佳分支进行模板匹配并在图14右中进行标明。由最终结果可以看出本研究的算法能够完成静脉的自动检测与标明。图15为对另外一人图像采样后处理结果,从图中可以看出本研究算法能够实现静脉的自动检测与较高效的标明。
通过本研究的方法对240个样本进行处理,得到的数据见表1、表2。
表1 手臂静脉检测与标明的结果
表2手臂静脉识别与标明系统所用时间
Table2Armveinidentificationandlabelingsystemtime
图像处理时间(s)检测与标明时间(s)总时间(s)0.4030.1650.568
针对经过本研究算法所提取出的最佳静脉穿刺点的位置是否准确的问题,邀请了医院具有3年静脉穿刺经验的护士对通过本研究算法处理过的并检测出穿刺位置的231个样本进行评价,得到数据见表3。
表3 评价结果
由表1可知,240个样本中,仅有9个样本未检测到合适的穿刺部位,检测率为96.25%,可见该检测系统具有较好的性能。由表2可知本算法运行一次所需时间大概在1.1 s,满足实际需求。由表3可知,在检测到穿刺位置的231个样本中不符合的只有13个,不符合率为5.628%,可见本研究算法标明出的静脉具有较高的准确性与可靠性。
对本研究算法在实验中的结果分析可知,本文方法对采集到的手臂图像经行一系列处理后,能够对静脉实现提取与标明,验证了算法的可行性与有效性,并且为真正全自动静脉穿刺提供了一定的依据,具有比较重要的现实意义。在对所标明出的图像进行分析后发现,光照的不均匀以及光线中各种波长的含量对采集到的图像质量以及标明部位有较大的影响。因此,制作理想的采集设备就能够获取更好的原始图像以及更可靠的匹配模板,进一步提高标明的准确率。