基于计算机视觉的电子血压计数字识别算法研究与设计

2022-05-26 08:23吴响军吴超通信作者江鑫富刘森林
医疗装备 2022年9期
关键词:字符识别血压计树莓

吴响军,吴超(通信作者),江鑫富,刘森林

1 惠州市第一人民医院医学工程部 (广东 惠州 516001);2 惠州市中心人民医院医学工程部 (广东 惠州 516001);3 惠州市质量计量监督检测所 (广东 惠州 516001)

血压是一项重要的人体生理参数,常被用于多种疾病的临床诊断中[1]。目前,医疗机构最广泛采用的血压测量仪器是水银血压计和电子血压计。2020年10月14日,国家药品监督管理局发文指出,自2026年1月1日起,我国将全面禁止生产含汞体温计和含汞血压计。随着禁汞政策的逐步实施,电子血压计将会强制替代水银血压计。

电子血压计操作简单,测量结果直观,且具有自助血压测量和记忆存储等优点。但是,有文献和行业分析报告显示,电子血压计误差偏高,需定期接受检定或质量检测[2-4]。因此,如何在检定或质量检测过程中自动识别电子血压计的量值,提高工作效率,同时避免手工记录导致的笔误和疏漏,成了目前重点研究的方向。

计算机视觉是指采用图像处理、模式识别、人工智能等技术,代替人眼对目标进行识别、跟踪、测量以及人眼对客观世界的感知、识别、理解[5],最终在计算机平台上实现人的视觉功能的过程。目前,计算机视觉技术已被广泛用于需要进行人工识别判断的领域,其优点在于准确度高、速度快,且能避免人为失误造成的记录差错。在此背景下,本研究设计了一种基于计算机视觉的电子血压计数字识别算法。

1 硬件平台与软件基础

在硬件平台选型方面,应综合考虑系统的功能需求、性能需求以及处理器的成本、功耗、运算能力,本设计选择了基于ARM-Linux 操作系统的树莓派(Raspberry Pi)[6-7],并通过在树莓派上设计驱动程序和应用程序来获取电子血压计的图像,实现了电子血压计示值的图像采集。整个硬件采集平台见图1。

图1 基于树莓派的系统硬件平台示意图

在软件开发环境方面,本设计选择了基于Python 的OpenCV 计算机视觉库,通过安装OpenCVPython 的依赖库,实现了图像的实时获取;通过采用数字图像处理技术和智能识别算法,实现了对采集的图像进行数字字符识别。

2 算法实现

数字图像处理是通过对图像进行变换、降噪等处理,减少图像中的无用信息,去除图像中的噪声,凸显出数据图像特征,便于后期进行边缘检测、特征提取、图像分割和字符识别。图像处理与字符分割识别流程见图2。

图2 图像处理与字符分割识别流程图

2.1 图像预处理

图像预处理包含尺度变换、灰度转换、高斯平滑和边缘检测4个步骤。通过预处理,可降低图像处理的计算量和去除图像中的噪声,为后续进行字符分割识别降低了复杂度,提供了更精准的输入图像[8]。

2.1.1 尺度变换

树莓派采集图像的分辨率为1 280×1 024,进行的是实时图像分析处理,数据计算量大。为了降低运算量,加快识别出图像中的字符数值,本设计将所采集到的图像压缩变换为640×512,其数据处理量为压缩前的1/4,尺度变换后的图像见图3a。

2.1.2 灰度转换

树莓派采集的图像是彩色图像,每个像素都是由R、G、B 3个分量组成,而每个分量有255个量值,因此1个像素即有1 600多万(255×255×255)的颜色变化范围。灰度变换是将R、G、B 3个分量通过特殊算法映射到0~255之间,可极大地降低处理器的计算量。当前常用的灰度变换方法有分量法、最大值法、平均值法和加权平均法。本设计采用了加权平均法进行图像灰度化处理,即cv2.cvtColor(image, cv2.COLOR_BGR2GRAY),灰度化处理后的图像见图3b。

2.1.3 高斯平滑

高斯平滑常被用于图像处理中的噪声抑制和防止干扰,其本质是利用高斯滤波器的非线性低通滤波特性,去除图像信号中的噪声,从而获得亮度平缓渐变且噪点少的图像[9]。本设计的高斯平滑通过一个5×5的高斯滤波器完成,滤波后的效果见图3c。

2.1.4 边缘检测

边缘是图像中局部区域与周围像素灰度有阶跃变换的像素集合。通常情况下,同一区域的灰度值分布较为均匀,而不同区域的灰度值则存在一定的差异[10]。我们可借助这一特性,来获取血压计的LCD 边框线,用于后续进行分析处理。本设计选用了Canny 算子最优化的边缘检测算子,有良好的抗噪声性,并能够准确检测出边缘,检测出的边缘见图3d。

图3各个阶段处理后的效果图

2.2 字符分割

通过图像预处理,我们获取了感兴趣区域,图中最大的矩形区域,即LCD 屏幕显示的数据区域。由于树莓派摄像头的拍摄角度无法做到自适应调整,因此拍摄的LCD 屏幕不一定是正视图,对此,我们通过imutils 库的透视变换函数four_point_transform 对图像进行了矫正。

在上述图像上,我们使用cv2.findContours 对LCD 区域的字符数据进行了字符轮廓检索,并将检索的轮廓通过imutils 库的grab_contours 保存了轮廓信息,方便进行字符识别。

字符分割的效果见图4。

图4 字符分割的效果图

2.3 段码识别

电子血压计的数值是由七段的液晶段码组合而成。为了达到精准识别每一段的目的,我们为七段字符建立了1个特殊的直角坐标系模型,并对字符的关键位置进行了坐标描述,见图5。以识别a 段码为例,a 段码对应(0,0)至(w,dh)矩形区域,将图像进行0和1二值化处理(黑点用0表示,白点用1表示)。

图5 液晶段码模型及坐标系描述

为了判读a 段码是否点亮,只需统计矩形区域的白点个数。对于a 段,其判断准则f(a)见公式(1),考虑到图像进行高斯模糊后会产生边缘效应,我们在f(a)中加入校准因子λ,取值为0.65,即矩形区域内的白点超过65%则认为该段段码点亮。按照上述方法,我们可以依次完成对b、c、d、e、f、g 段码的识别。

2.4 字符分类

字符分类是判断当前字符所代表数字含义的过程。通过判断准则f,我们可以得出每个段对应的0或1情况;然后将段码识别的结果与段码数组进行匹配,当两者完全一致时,则将字符分类为当前序号的数字,即完成字符分类。数字0~9对应的段码亮灭关系见图6。

图6 七段字符与段码编码规则

3 实际应用

为了验证字符识别算法的准确性,在树莓派4B(ARM Cortex-A72 四 核 1.5 GHz,RAM:8 GB LPDDR4)硬件平台上,我们通过摄像头获取了电子血压计的示值,并应用前文所述预处理流程和识别算法最终实现了自动识别2位宽度与3位宽度的字符,见图7。由结果可知,将此种方法用于电子血压计的示值识别,定位区域精准,字符识别准确。

图7 自动识别结果

4 小结

针对目前电子血压计检定校准和质量检测中需要手工记录示值,不能自动化完成检测与记录等问题,本研究提出了一种基于图像处理的自动识别算法,通过系统介绍电子血压计数字图像处理的示值并对其进行尺度变换、灰度转换、高斯平滑、Canny 边缘检测、字符分割、段码识别、字符分类等处理,且使用OpenCV 库在树莓派 4B 上实现整个设计,并最终经实验证明,该方法定位精准、识别准确。该技术的实施能够解决目前电子血压计检定工作量大、人工记录费时费力等问题,提高了检定或质量检测的工作效率;同时,采用智能图像识别算法,实现了对检定结果量值的自动化判读分析,避免了人为因素导致的误差或错误。

总之,该数字识别算法的研究与设计为开发自动检定电子血压计的智能装置奠定了前期技术基础,且对于电子仪器仪表的字符识别或研制自动化的仪器示值记录装置具有一定的借鉴价值。

猜你喜欢
字符识别血压计树莓
山间“小精灵”
——树莓
莫忘给血压计“体检”
莫忘给血压计“体检”
血压计的测压原理
基于树莓派的骑行智能头盔设计
血压计巧防脑中风
基于树莓派的远程家居控制系统的设计
融合字符及字符排列特征的铭牌识别方法
黄金水果红树莓
一种基于OpenCV的车牌识别方法