孟彩霞,魏榮娟
(西安郵電大學 計算機學院,陜西 西安 710000)
隨著經濟的發展及人民生活水平的提高,人們對自身健康越來越重視。當前我國人口老齡化和亞健康問題是受到廣泛關注的社會熱點問題。有報告顯示,截至2015年底,我國60歲以上老年人口已達2.22億,占總人口的16.15%[1];另一方面,中國內地城市白領中有76%處于亞健康狀態[2]。健康體檢是了解受檢者健康狀況、早期發現疾病線索和健康隱患的重要方式,對老齡化和亞健康人群是非常必要的。目前城市中體檢的理念已經深入人心,很多單位和個人每年都會進行相應的體檢,目前已經出現很多運營成功的商業化健康體檢機構,如愛康國賓體檢中心、百歲啦、普惠體檢中心等。
體檢數據的管理與應用具有重要的社會和經濟價值。體檢結果的電子數據儲存在體檢機構,交給客戶的是紙質版的打印報告。顯然紙質報告具有不易保管、易丟失和破損等缺點,常年累積的體檢報告還占用空間,不便于管理。另一方面,用戶體檢是一個長期行為,如果采用數據分析技術從用戶多年體檢數據中發掘出有用的信息用于指導個體健康極具應用價值。
移動互聯網和移動智能終端的發展與普及推動了基于移動端的個人醫療健康管理應用的開發。文中對移動端進行健康體檢報告影像識別及數據分析的方法進行了研究,將文字識別功能移植于智能手機上,利用手機便捷的照相機功能,獲取病歷報告的圖像文件并識別,快速存儲紙質介質信息;針對個人歷史體檢數據進行管理及數據分析和可視化并給用戶提供相關的建議,指導個人健康生活。該研究工作具有重要的社會意義和應用價值。
文字識別功能的主要技術為OCR(optical character recognition)[3]。目前OCR技術應用己經相當成熟,市場上出現了不少相關OCR文字識別的應用軟件,著名的有國外的Abbyy、國內的漢王等,但大部分軟件都只應用在計算機平臺上或嵌入到掃描設備中,便捷性太低,加上掃描圖像的繁瑣,不能滿足隨時識別文字并記錄的需求。OCR技術在移動醫療領域的應用更是處于探索階段,針對病歷報告識別的軟件屈指可數,僅有的幾款軟件如珍立拍、病歷夾等,均存在識別版面不全、字符識別率低、識別結果易受環境影響、軟件功能單一等問題。基于移動端的個人醫療健康管理系統可以解決傳統大型掃描設備使用步驟繁雜和移動不便等窘境,及時存儲個人醫療數據,發現潛在疾病風險,給移動生活和健康管理提供了極大的便利。
基于移動端個人醫療健康管理系統框架如圖1所示。

圖1 系統框架
系統主要分為5個模塊:影像生成模塊、圖像處理模塊、字符識別模塊、文字編輯模塊和數據分析模塊,具體如下:
(1)影像生成模塊。用戶通過注冊登錄客戶端進行圖像采集,運用打開手機上的攝像頭,對各種紙質病歷報告、體檢報告進行拍照,或是通過在已有的手機圖片庫中進行選擇,獲取需要處理的圖片。
(2)圖像處理模塊。對獲取到的圖像文件進行圖像處理,主要具有去噪、圖像增強、圖像旋轉等功能,目的是提高文字識別率。
(3)字符識別模塊。是系統的關鍵部分,對后續數據分析結果有直接影響。字符識別模塊主要對獲取的字符進行“翻譯”,根據病歷報告的分布特點首先進行行分割的字段“閱讀”,再對每個字段內的單個字符進行列切割的逐字辨認、單字“翻譯”。
(4)文字編輯模塊。主要對OCR識別后的字符進行修改和編輯。系統自動查找可疑字,對認為有誤的字符可以由用戶進行文字編輯,實現人工校正功能。
(5)數據分析模塊。使用OCR算法識別關鍵信息并儲存到數據庫中,通過識別結果對用戶歷年的個體數據進行管理和分析,給出直觀的可視化圖形,幫助用戶發現疾病潛在風險并提出健康小建議。
文中方法的第一步是移動端拍攝體檢報告的預處理。預處理步驟包括采用平均法[4]進行彩色圖像灰度化、中值濾波[5]去噪、最大類間方差法(Otsu算法[6])進行二值化。病歷報告中存在著大量表格線(見圖2(a)),影響文字識別結果。對于有表格內容的識別處理操作有兩種:一是表格線中內容先提取,再進行識別;二是對表格線進行消隱,再對純文本進行識別[7]。文中使用的體檢報告表格線和表中字符基本無粘連,字符跨表現象少,所以采用第二種方法進行處理。
要實現表格線檢測,首先要進行直線檢測,傳統的直線檢測法有Hough直線檢測算法[8]、投影法[9]等。由于Hough直線檢測過程中容易丟失某些線段的端點和長度信息,投影法又難以分割開表格線交叉處的直線,因此文中采用投影法結合經驗閾值判斷的方法進行表格線檢測,采用二值化圖像賦值法進行表格線的消隱。算法思路是首先對圖像進行行投影,得到該圖的水平投影直方圖(見圖2(b)),圖中有數個明顯的波峰分別對應了報告單中的數條橫向表格線,但由于橫豎表格線之間有交叉,造成尖峰波峰之間有較小較寬像素的連接,因此,需要找個合適的分割位置對波峰進行切斷操作,也即對表格線邊界進行判斷。

圖2 表格線及其投影
表格線邊界判斷步驟如下:
Step1:求出所有波峰(包括尖峰和較寬峰)的平均高度avgRow,尋找到最高波峰高度值maxRow;
Step2:對平均高度avgRow放大一定的倍數T1,當表格線像素點的高度大于T1倍平均高度時,即為波峰的一個極大點,記錄其位置,找到所有尖峰位置Row(i)=T1*avgRow。其中T1為經驗閾值,初始值為T1=maxRow/avgRow。實驗中可以對T1進行適當調整,直到找到所有的尖峰高度值;
Step3:根據實驗及經驗知識可知,體檢報告表格線交叉處像素點累計個數一般為個(十)位數,所以沿著每個尖峰最高位置Row(i)分別向上、向下遍歷尋找到最后一個個(十)位數為止,即為潛在表格線邊界位置topR(i)和bottomR(i);
Step4:以topR(i)和bottomR(i)為行掃描上下邊界,進行二值圖像的賦值,將所有像素賦值0,使目標像素點變為背景像素點,即實現行表格線的消除。
經過行表格線消除后的列表格線已經清晰地分開,可直接利用投影賦值法進行消除。
2.2.1 字段切割
體檢報告單中文字信息排版不規則,文字塊相隔間距較大,為了便于將識別結果的相應體檢項目、測量結果及單位存入數據分析數據庫中,首先做一個字段分割處理,步驟如下:
Step1:通過行投影法對圖像進行投影及行分割。
Step2:通過垂直投影法對每行進行列投影,以每個波峰的左右邊界為起始點,分別向左、右T2個長度進行遍歷,若T2個連續位置均無像素點,則此波峰左、右邊界即為字段左、右邊界,根據邊界進行字段列切割;若左(右)邊界T2個長度內有任意一個像素點存在,則跳到下一個波峰的左(右)邊界,繼續遍歷尋找,直到找到要求的邊界為止。這里T2為經驗值,文中取T2=15,切割結果如圖3所示。

圖3 字段切割示例圖
2.2.2 字符切割及歸一化
當前字符切分技術主要有以下幾種方法[10-11]:基于圖像分析的切分、基于識別的切分、綜合切分及整體識別切分,文中采用投影法結合經驗值的試切分方法對文字進行切割。針對切割后的每一個字段重新進行投影分割,對于少量不能被正確分割出來的字符,如圖4中的“mo”,采用基于識別的切分方法,給予1/2,2/3……一系列經驗值的切分位置進行試切分,送入模板庫進行匹配,最終找到切分位置并識別出結果。
由于切割后的字符大小不一,為了便于和字模庫中的字模進行匹配,需要進行歸一化處理。常用的歸一化方法主要有兩種:分裂合并歸一化與插值變換歸一化[12]。文中的字符經過分割后像素偏小,需要對圖像進行放大,所以選用第二種方法,采用三次卷積插值算法[13],將字符尺寸歸一化到48×48點陣,便于與字模數據庫進行比對,提高識別率。

圖4 字符歸一化結果
2.2.3 字符識別
目前,用于字符識別的算法主要有基于模板匹配的字符識別算法[14]、特征統計匹配法[15]和基于神經網絡的字符識別算法[16]。特征統計匹配法是提取待識別模式的一組統計特征,通過按一定準則確定的決策函數進行分類判別。在字符識別中常用的特征方法是網格特征匹配法。但是實際應用中,由于外部原因常會出現字符模糊、傾斜等情況,影響識別效果。因而,此方法實際應用效果不理想,魯棒性不強。模板匹配方法體現的是字符的整體特征,它比特征統計匹配法更有效。由于醫療體檢報告字體是印刷體,結構標準,所以采用模板匹配法進行識別。文中實驗方案暫時不考慮分類器方法[17],原因是分類器方法涉及到大量的訓練,針對手寫字符、變體字符及多字體識別時比較有效。
為了保證識別結果的正確性,系統做了兩方面的保證:一是識別結果提供人工校正的編輯接口;二是對比數據庫的建立。系統中預先已經建立了一個常用醫學符號單位庫,數據庫中的內容包含了所有預先識別的醫學名稱、單位、符號等字集,方便識別結果進入庫中進行字符串比對,確保識別結果的正確性及權威性。
數據分析是指用適當的統計分析方法對收集來的大量數據進行分析,提取有用信息并形成結論而對數據加以詳細研究和概括總結的過程。在實用中,數據分析可幫助人們做出判斷,以便采取適當行動。實驗中,數據分析模塊采用描述性統計方法[18]進行,對不同用戶的歷史體檢報告進行了識別,對同一用戶不同時期的體檢數據進行了統計和簡單分析,畫出不同項目的識別結果對比可視化圖形,根據分析結果給出健康建議。
(1)數據來源。
選用了某大學10位教師在某商業體檢公司中近三年體檢紙質報告作為研究對象(已獲得本人同意)。實驗中分析了體檢報告中的基本信息表、身高體重血壓表、血常規表和生化檢驗表,分不同時期(以近期5個時間段為準)共計160(10×3×5+10)張測試樣本數據集。
(2)實驗數據。
(A)圖像數據庫。
收集160張標準體檢報告單,對每張報告單采用高清像素(蘋果800w)、普通像素(華為1 300w)和劣質像素(天語800w)的三級拍照模式,在每一級模式下又采用自然光、白熾燈兩種不同的光照進行拍照,樣本總庫達到320(160×2)張樣本圖像,完成圖像數據庫的建立。
(B)字模數據庫。
采集國家標準漢字6 763個(國標一、二級字庫),英文字母52個(大、小寫),醫學特殊符號100個,數字10個(0~9),累計6 925個字符,采用自己編寫的字模提取工具軟件,構建英文、數字、漢字及醫學特殊符號字模數據庫。
(C)數據分析庫。
統計常用體檢報告醫學單位符號50個,存入標準單位庫D_Stand表中;從手機客戶端錄入用戶的ID號、姓名、密碼,從基本信息表識別后的結果中提取用戶的姓名、性別、年齡、手機號碼、工作單位、體檢日期,構建客戶信息表D_Users;從身高體重血壓表識別結果中提取身高、體重、血壓等構建身高體重血壓表D_HWB;從生化檢驗表識別結果中提取總膽紅素、血蛋白等數據,構建生化檢驗表D_Bioc;從血常規報告識別結果中提取白細胞數、淋巴細胞比值等數據,構建血常規表D_Blood,完成數據分析庫的建立。
(3)實驗環境。
所有實驗使用的系統軟硬件環境均相同。CPU為Intel(R)? Core(TM)? i5-4210M雙核(64位處理器),2.59 GHz,內存4 G;操作系統為Windows? 10中文版(64位系統);實驗程序用Matlab? R2010b編寫;原型APP系統的開發系統是Android 4.4.2版本。
實驗結果分為兩部分,一是識別正確率:計算每一幅圖像中文字和符號的識別正確率,最后求出平均值,即為體檢報告整體識別率。具體做法是:針對每幅圖像,事先編輯一個文本文件,儲存各個字符正確的識別結果,最后將經過算法識別的結果和這個文件相比較,計算出最終的識別正確率,如表1所示。二是數據分析結果,畫出不同項目的識別結果對比可視化圖形(見圖5),給出參考健康建議。

表1 體檢報告識別結果

圖5 APP部分界面展示
此外,在上述算法基礎上,文中的一個重要工作是開發了原型APP系統(圖5),系統界面簡潔、使用方便,幫助用戶及時存儲自己的疾病信息,了解自身健康狀態,使用戶的生活更健康、有質量。
基于移動端個人醫療健康管理系統,用戶只需要一款簡單的手機,就能輕松實現快速存儲病歷信息,了解健康狀況,通過系統建議引導自身健康生活。系統使用方便,應用前景廣闊。
該研究雖取得了一些有益的成果,但仍存在以下缺點和不足:針對傾斜角度太大的病歷報告識別效果不好;實驗用戶數據庫數據太少,能挖掘的信息較少。下一步的研究方向是多種因素干擾下的病歷報告識別及通過此APP累積大量用戶的數據,可以采用數據挖掘以及機器學習的算法建立用戶健康模型,對個體健康提供相應的建議與指導。
[1] 張錦莉.當前農村養老保障問題探析[J].人大建設,2016(12):48-50.
[2] 許魯平.健康類電視節目的公信力研究[D].濟南:山東師范大學,2014.
[3] SHAH P,KARAMCHANDANI S,NADKAR T,et al.OCR-based chassis-number recognition using artificial neural networks[C]//IEEE international conference on vehicular electronics and safety.[s.l.]:IEEE,2009:31-34.
[4] 張 鳳.街景影像的文字識別[D].北京:北京建筑工程學院,2012.
[5] 洪 濤,梁偉建,盧玉鳳.標牌粘連字符自適應定位分割重建與識別[J].中國圖象圖形學報,2014,19(6):886-895.
[6] OTSU N.A threshold selection method from gray level histograms[J].IEEE Transactions on Systems Man & Cybernetics,1979,9(1):62-66.
[7] 謝 亮.表格識別預處理技術與表格字符提取算法的研究[D].廣州:中山大學,2005.
[8] 滕今朝,邱 杰.利用Hough變換實現直線的快速精確檢測[J].中國圖象圖形學報,2008,13(2):234-237.
[9] 劉 昱.印刷體表格識別的研究[D].哈爾濱:哈爾濱工程大學,2013.
[10] CASEY R G,LECOLINET E.A survey of methods and strategies in character segmentation[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,1996,18(7):690-706.
[11] LU Y.On the segmentation of touching characters[C]//International conference on document analysis and recognition.[s.l.]:IEEE,1993:440-443.
[12] 萬金娥,袁保社,谷 朝,等.基于字符歸一化雙投影互相關性匹配識別算法[J].計算機應用,2013,33(3):645-647.
[13] 王 帥,馮 晉.基于三次卷積插值的貝葉斯濾波方法研究[J].系統科學與數學,2015,35(2):170-180.
[14] 陳麗芳,劉 淵,須文波.改進的歸一互相關法的灰度圖像模板匹配方法[J].計算機工程與應用,2011,47(26):181-183.
[15] 羅輝武,唐遠炎,王 翊,等.基于結構特征和灰度特征的車牌字符識別方法[J].計算機科學,2011,38(11):267-270.
[16] 楊天長.基于神經網絡的文字識別技術研究及應用[D].北京:北方工業大學,2013.
[17] 陳 文,張恩陽,趙 勇.基于多分類器協同學習的卷積神經網絡訓練算法[J].計算機科學,2016,43(9):223-226.
[18] 王 曼.醫學論文統計描述性數據審核的問題與方法[J].中國科技期刊研究,2015,26(4):359-362.