吳響軍,吳超(通信作者),江鑫富,劉森林
1 惠州市第一人民醫(yī)院醫(yī)學工程部 (廣東 惠州 516001);2 惠州市中心人民醫(yī)院醫(yī)學工程部 (廣東 惠州 516001);3 惠州市質(zhì)量計量監(jiān)督檢測所 (廣東 惠州 516001)
血壓是一項重要的人體生理參數(shù),常被用于多種疾病的臨床診斷中[1]。目前,醫(yī)療機構(gòu)最廣泛采用的血壓測量儀器是水銀血壓計和電子血壓計。2020年10月14日,國家藥品監(jiān)督管理局發(fā)文指出,自2026年1月1日起,我國將全面禁止生產(chǎn)含汞體溫計和含汞血壓計。隨著禁汞政策的逐步實施,電子血壓計將會強制替代水銀血壓計。
電子血壓計操作簡單,測量結(jié)果直觀,且具有自助血壓測量和記憶存儲等優(yōu)點。但是,有文獻和行業(yè)分析報告顯示,電子血壓計誤差偏高,需定期接受檢定或質(zhì)量檢測[2-4]。因此,如何在檢定或質(zhì)量檢測過程中自動識別電子血壓計的量值,提高工作效率,同時避免手工記錄導致的筆誤和疏漏,成了目前重點研究的方向。
計算機視覺是指采用圖像處理、模式識別、人工智能等技術(shù),代替人眼對目標進行識別、跟蹤、測量以及人眼對客觀世界的感知、識別、理解[5],最終在計算機平臺上實現(xiàn)人的視覺功能的過程。目前,計算機視覺技術(shù)已被廣泛用于需要進行人工識別判斷的領(lǐng)域,其優(yōu)點在于準確度高、速度快,且能避免人為失誤造成的記錄差錯。在此背景下,本研究設計了一種基于計算機視覺的電子血壓計數(shù)字識別算法。
在硬件平臺選型方面,應綜合考慮系統(tǒng)的功能需求、性能需求以及處理器的成本、功耗、運算能力,本設計選擇了基于ARM-Linux 操作系統(tǒng)的樹莓派(Raspberry Pi)[6-7],并通過在樹莓派上設計驅(qū)動程序和應用程序來獲取電子血壓計的圖像,實現(xiàn)了電子血壓計示值的圖像采集。整個硬件采集平臺見圖1。
圖1 基于樹莓派的系統(tǒng)硬件平臺示意圖
在軟件開發(fā)環(huán)境方面,本設計選擇了基于Python 的OpenCV 計算機視覺庫,通過安裝OpenCVPython 的依賴庫,實現(xiàn)了圖像的實時獲?。煌ㄟ^采用數(shù)字圖像處理技術(shù)和智能識別算法,實現(xiàn)了對采集的圖像進行數(shù)字字符識別。
數(shù)字圖像處理是通過對圖像進行變換、降噪等處理,減少圖像中的無用信息,去除圖像中的噪聲,凸顯出數(shù)據(jù)圖像特征,便于后期進行邊緣檢測、特征提取、圖像分割和字符識別。圖像處理與字符分割識別流程見圖2。
圖2 圖像處理與字符分割識別流程圖
圖像預處理包含尺度變換、灰度轉(zhuǎn)換、高斯平滑和邊緣檢測4個步驟。通過預處理,可降低圖像處理的計算量和去除圖像中的噪聲,為后續(xù)進行字符分割識別降低了復雜度,提供了更精準的輸入圖像[8]。
2.1.1 尺度變換
樹莓派采集圖像的分辨率為1 280×1 024,進行的是實時圖像分析處理,數(shù)據(jù)計算量大。為了降低運算量,加快識別出圖像中的字符數(shù)值,本設計將所采集到的圖像壓縮變換為640×512,其數(shù)據(jù)處理量為壓縮前的1/4,尺度變換后的圖像見圖3a。
2.1.2 灰度轉(zhuǎn)換
樹莓派采集的圖像是彩色圖像,每個像素都是由R、G、B 3個分量組成,而每個分量有255個量值,因此1個像素即有1 600多萬(255×255×255)的顏色變化范圍?;叶茸儞Q是將R、G、B 3個分量通過特殊算法映射到0~255之間,可極大地降低處理器的計算量。當前常用的灰度變換方法有分量法、最大值法、平均值法和加權(quán)平均法。本設計采用了加權(quán)平均法進行圖像灰度化處理,即cv2.cvtColor(image, cv2.COLOR_BGR2GRAY),灰度化處理后的圖像見圖3b。
2.1.3 高斯平滑
高斯平滑常被用于圖像處理中的噪聲抑制和防止干擾,其本質(zhì)是利用高斯濾波器的非線性低通濾波特性,去除圖像信號中的噪聲,從而獲得亮度平緩漸變且噪點少的圖像[9]。本設計的高斯平滑通過一個5×5的高斯濾波器完成,濾波后的效果見圖3c。
2.1.4 邊緣檢測
邊緣是圖像中局部區(qū)域與周圍像素灰度有階躍變換的像素集合。通常情況下,同一區(qū)域的灰度值分布較為均勻,而不同區(qū)域的灰度值則存在一定的差異[10]。我們可借助這一特性,來獲取血壓計的LCD 邊框線,用于后續(xù)進行分析處理。本設計選用了Canny 算子最優(yōu)化的邊緣檢測算子,有良好的抗噪聲性,并能夠準確檢測出邊緣,檢測出的邊緣見圖3d。
圖3各個階段處理后的效果圖
通過圖像預處理,我們獲取了感興趣區(qū)域,圖中最大的矩形區(qū)域,即LCD 屏幕顯示的數(shù)據(jù)區(qū)域。由于樹莓派攝像頭的拍攝角度無法做到自適應調(diào)整,因此拍攝的LCD 屏幕不一定是正視圖,對此,我們通過imutils 庫的透視變換函數(shù)four_point_transform 對圖像進行了矯正。
在上述圖像上,我們使用cv2.findContours 對LCD 區(qū)域的字符數(shù)據(jù)進行了字符輪廓檢索,并將檢索的輪廓通過imutils 庫的grab_contours 保存了輪廓信息,方便進行字符識別。
字符分割的效果見圖4。
圖4 字符分割的效果圖
電子血壓計的數(shù)值是由七段的液晶段碼組合而成。為了達到精準識別每一段的目的,我們?yōu)槠叨巫址⒘?個特殊的直角坐標系模型,并對字符的關(guān)鍵位置進行了坐標描述,見圖5。以識別a 段碼為例,a 段碼對應(0,0)至(w,dh)矩形區(qū)域,將圖像進行0和1二值化處理(黑點用0表示,白點用1表示)。
圖5 液晶段碼模型及坐標系描述
為了判讀a 段碼是否點亮,只需統(tǒng)計矩形區(qū)域的白點個數(shù)。對于a 段,其判斷準則f(a)見公式(1),考慮到圖像進行高斯模糊后會產(chǎn)生邊緣效應,我們在f(a)中加入校準因子λ,取值為0.65,即矩形區(qū)域內(nèi)的白點超過65%則認為該段段碼點亮。按照上述方法,我們可以依次完成對b、c、d、e、f、g 段碼的識別。
字符分類是判斷當前字符所代表數(shù)字含義的過程。通過判斷準則f,我們可以得出每個段對應的0或1情況;然后將段碼識別的結(jié)果與段碼數(shù)組進行匹配,當兩者完全一致時,則將字符分類為當前序號的數(shù)字,即完成字符分類。數(shù)字0~9對應的段碼亮滅關(guān)系見圖6。
圖6 七段字符與段碼編碼規(guī)則
為了驗證字符識別算法的準確性,在樹莓派4B(ARM Cortex-A72 四 核 1.5 GHz,RAM:8 GB LPDDR4)硬件平臺上,我們通過攝像頭獲取了電子血壓計的示值,并應用前文所述預處理流程和識別算法最終實現(xiàn)了自動識別2位寬度與3位寬度的字符,見圖7。由結(jié)果可知,將此種方法用于電子血壓計的示值識別,定位區(qū)域精準,字符識別準確。
圖7 自動識別結(jié)果
針對目前電子血壓計檢定校準和質(zhì)量檢測中需要手工記錄示值,不能自動化完成檢測與記錄等問題,本研究提出了一種基于圖像處理的自動識別算法,通過系統(tǒng)介紹電子血壓計數(shù)字圖像處理的示值并對其進行尺度變換、灰度轉(zhuǎn)換、高斯平滑、Canny 邊緣檢測、字符分割、段碼識別、字符分類等處理,且使用OpenCV 庫在樹莓派 4B 上實現(xiàn)整個設計,并最終經(jīng)實驗證明,該方法定位精準、識別準確。該技術(shù)的實施能夠解決目前電子血壓計檢定工作量大、人工記錄費時費力等問題,提高了檢定或質(zhì)量檢測的工作效率;同時,采用智能圖像識別算法,實現(xiàn)了對檢定結(jié)果量值的自動化判讀分析,避免了人為因素導致的誤差或錯誤。
總之,該數(shù)字識別算法的研究與設計為開發(fā)自動檢定電子血壓計的智能裝置奠定了前期技術(shù)基礎,且對于電子儀器儀表的字符識別或研制自動化的儀器示值記錄裝置具有一定的借鑒價值。