韓立博 胡廣芹 張新峰 張艷陽(yáng)
痧療在臨床應(yīng)用中有著很好的效果,醫(yī)生通過(guò)刮痧工具刮拭皮膚,刺激穴位區(qū)域,治療各種疾病。刮痧過(guò)后,皮膚的表面往往會(huì)出現(xiàn)一些鮮紅或者暗紅或者紫紅等顏色的斑塊或紅點(diǎn),其被稱為痧象。背部五臟六腑穴位區(qū)域的痧象對(duì)臟腑功能失調(diào)具有預(yù)警作用,刮拭的背部臟腑穴位區(qū)域若出現(xiàn)痧塊、痧斑等現(xiàn)象,需要重點(diǎn)觀察該區(qū)域?qū)?yīng)的臟腑,其功能可能出現(xiàn)了變化[1-2]。
傳統(tǒng)的痧象識(shí)別方法存在一些缺陷:目前主要基于醫(yī)生對(duì)背部臟腑穴位各個(gè)區(qū)域模糊定位來(lái)實(shí)現(xiàn),面對(duì)較多的區(qū)域,無(wú)論是定位還是識(shí)別都需要花費(fèi)很多時(shí)間,影響工作效率。
利用相機(jī)采集的圖像有一些雜亂的背景,影響?zhàn)鹣髨D像在電子病歷中的規(guī)范化存儲(chǔ)。信息技術(shù)的快速發(fā)展,對(duì)解決上述問(wèn)題提供了一條道路。武文強(qiáng)等[3]基于痧象利用支持向量機(jī)(support vector machine,SVM)實(shí)現(xiàn)了痤瘡證型自動(dòng)分類,出痧區(qū)域與不出痧區(qū)域相比,其表面更加粗糙,紋理具有一定的差異性,Tamura紋理特征中的粗糙度以及對(duì)比度在表達(dá)痧象的紋理特征上具有很好的效果。但其研究也存在一些不足之處,運(yùn)用顏色直方圖法提取痧象的顏色特征,顏色直方圖法量化處理容易影響最后的識(shí)別結(jié)果[4]。本文在前人的基礎(chǔ)上,進(jìn)行基于痧象的臟腑功能失調(diào)預(yù)警方法研究。
在采集圖像時(shí),患者體位若傾斜,背部臟腑穴位區(qū)域的定位以及識(shí)別都會(huì)有很大的影響。由于大椎穴以及長(zhǎng)強(qiáng)穴都在背部的中間位置,所以二者的橫坐標(biāo)是相同的,故通過(guò)該特性對(duì)采集的圖像作校正處理。首先根據(jù)手動(dòng)得到的大椎穴以及長(zhǎng)強(qiáng)穴具體坐標(biāo)值計(jì)算傾斜的具體角度:
(1)
式中,(m1,n1)為大椎穴位置坐標(biāo);(m2,n2)為長(zhǎng)強(qiáng)穴位置坐標(biāo)。根據(jù)(m1,n1)、(m2,n2)得到圖像的旋轉(zhuǎn)中心(m5,n5),見(jiàn)式(2)、式(3),將原始圖像繞旋轉(zhuǎn)中心順時(shí)針旋轉(zhuǎn)α,計(jì)算旋轉(zhuǎn)后的大椎穴坐標(biāo)值(m3,n3)以及長(zhǎng)強(qiáng)穴坐標(biāo)值(m4,n4),見(jiàn)式(4)、式(5),式(6)、式(7),詳情見(jiàn)圖1。
圖1 校正示例
(2)
(3)
(4)
(5)
(6)
(7)
Grabcut[5]是一種分割算法,其僅通過(guò)少量的人工輔助就可以獲得理想的結(jié)果,故圖像校正后,利用Grabcut算法對(duì)校正后的圖像進(jìn)行分割,去除雜亂的背景。對(duì)分割結(jié)果做二值化處理,依據(jù)二值圖像連通域最大面積區(qū)域的左上角坐標(biāo)值和右下角坐標(biāo)值、校正后的大椎穴坐標(biāo)值、校正后的長(zhǎng)強(qiáng)穴坐標(biāo)值截取圖像,見(jiàn)圖2,紅框區(qū)域內(nèi)的圖像為截取的圖像,將其稱為圖像A。
圖 2 待處理區(qū)域
五臟六腑對(duì)應(yīng)的穴位在背部的分布存在一定的規(guī)律[6]。對(duì)標(biāo)準(zhǔn)的人體背部穴位圖進(jìn)行分析,若大椎穴的縱坐標(biāo)為0,長(zhǎng)強(qiáng)穴的縱坐標(biāo)為1526,則臟腑穴位從上到下肺俞、心俞、肝俞、膽俞、脾俞、胃俞、三焦俞、腎俞、大腸俞、小腸俞、膀胱俞縱坐標(biāo)分別為168、316、612、691、746、802、854、919、1 051、1 160、1 210,橫坐標(biāo)為大椎穴的橫坐標(biāo)加減87,根據(jù)已知的標(biāo)準(zhǔn)人體背部穴位圖臟腑穴位坐標(biāo)獲取圖像A臟腑穴位的坐標(biāo)。在現(xiàn)實(shí)情況中,人體背部長(zhǎng)寬是存在一定差異的,故首先用圖像A的大椎穴和長(zhǎng)強(qiáng)穴縱坐標(biāo)差值除以標(biāo)準(zhǔn)人體背部穴位圖的大椎穴和長(zhǎng)強(qiáng)穴縱坐標(biāo)差值,得到二者比值,然后用標(biāo)準(zhǔn)人體背部穴位圖的臟腑穴位縱坐標(biāo)乘以二者比值作為圖像A臟腑穴位的縱坐標(biāo),用圖像A大椎穴的橫坐標(biāo)加減二者比值與87的乘積作為圖像A臟腑穴位橫坐標(biāo)。將以臟腑穴位為中心大小為60×60的區(qū)域作為臟腑穴位區(qū)域,用紅色方框在圖像A上標(biāo)定,截取膀胱俞縱坐標(biāo)+100以上的區(qū)域作為最終的結(jié)果。
本研究的樣本比較少,由于SVM[7-8]在處理小樣本時(shí)性能比較好,故首先采用SVM結(jié)合提取的特征進(jìn)行臟腑穴位區(qū)域痧象自動(dòng)識(shí)別。
出痧區(qū)域一般為鮮紅、暗紅等顏色,不出痧區(qū)域一般為正常皮膚顏色或者潮紅色,二者具有很大差異,故本文提取顏色特征用于后續(xù)的痧象識(shí)別。顏色矩法[9-10]不僅能很好地用來(lái)提取顏色特征,而且可避免顏色特征量化對(duì)識(shí)別結(jié)果造成的影響,故采用顏色矩法來(lái)提取圖像的顏色特征。顏色矩法表達(dá)式如下:
(9)
(10)
(11)
式中,gi、pi、qi、Fij、N分別表示第i顏色空間的一階矩、二階矩、三階矩、第j個(gè)像素值、像素總個(gè)數(shù)。
出痧區(qū)域與不出痧區(qū)域相比,其表面更加粗糙,紋理具有一定的差異性。Tamura紋理[11]特征中的粗糙度以及對(duì)比度在表達(dá)痧象的紋理特征上具有很好的效果[3],故本文采用該方法進(jìn)行紋理特征提取。
徑向基核函數(shù)作為SVM的核函數(shù)泛化能力比較強(qiáng),故本文選用徑向基核函數(shù)對(duì)痧象的有無(wú)進(jìn)行自動(dòng)識(shí)別,并采用網(wǎng)格法[12]進(jìn)行參數(shù)尋優(yōu)。由于數(shù)據(jù)相差很大容易影響最終的識(shí)別結(jié)果,故采用最大最小歸一化方法對(duì)顏色特征、紋理特征進(jìn)行歸一化。
相比SVM,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)不需要手動(dòng)提取特征就可很好地對(duì)圖像進(jìn)行識(shí)別,由于研究的是一個(gè)數(shù)據(jù)集比較小的二分類問(wèn)題,故本文選用較淺層的CNN對(duì)痧象進(jìn)行識(shí)別。由于Alexnet[13-15]是CNN的突破算法且未發(fā)現(xiàn)識(shí)別痧象的CNN,本文根據(jù)需求對(duì)Alexnet進(jìn)行修改,用來(lái)識(shí)別臟腑穴位區(qū)域的痧象。
由于ReLu激活函數(shù)的負(fù)區(qū)間神經(jīng)元不學(xué)習(xí),本文將ReLu激活函數(shù)改為L(zhǎng)eaky ReLu激活函數(shù)[16]。Alexnet輸入圖像一般為224×224,圖像越大,識(shí)別速度越慢,對(duì)出痧區(qū)域和不出痧區(qū)域進(jìn)行分析,出痧區(qū)域一般為鮮紅、暗紅、紫紅等顏色且表面比較粗糙,與不出痧區(qū)域全局信息存在很大的差別,針對(duì)該特性,本文選擇盡可能的縮小輸入圖像,在兼顧圖像細(xì)節(jié)信息的基礎(chǔ)上,更加考慮圖像的全局信息,提高識(shí)別速度以及準(zhǔn)確率,最終把輸入圖像縮小為15×15,修改后的CNN搭建詳情見(jiàn)表1。
表1 CNN搭建
首先用基于兩點(diǎn)的Grabcut算法實(shí)現(xiàn)背部提取及背部臟腑穴位區(qū)域自動(dòng)定位;然后用SVM和CNN實(shí)現(xiàn)痧象自動(dòng)識(shí)別,對(duì)比實(shí)驗(yàn)結(jié)果,得到最佳分類模型;最后用最佳分類模型對(duì)臟腑穴位區(qū)域痧象識(shí)別,從而實(shí)現(xiàn)臟腑功能失調(diào)預(yù)警。
本研究的數(shù)據(jù)集來(lái)自北京工業(yè)大學(xué)生命學(xué)院中醫(yī)藥健康工程研究室痧象數(shù)據(jù)庫(kù)。傳統(tǒng)痧療醫(yī)生用牛角、玉石、砭石等形狀不規(guī)則的器具,因?yàn)槠骶卟唤y(tǒng)一易造成痧象形狀各異,本文選取的圖像都是在統(tǒng)一痧療器具和操作手法進(jìn)行規(guī)范后保存的圖像。痧療手法:鍉圓針系統(tǒng)痧療;痧療器具:胡廣芹發(fā)明的鍉圓針定量痧療器(山東明醫(yī)明藥生物醫(yī)藥有限公司,魯淄械備20180038號(hào))。在痧象數(shù)據(jù)庫(kù)中截取大小為60×60的小塊圖像作為訓(xùn)練集和測(cè)試集,將表面存在痧斑/血皰/痧塊,或者交叉存在的圖像命名為類型A,將表面不出痧或者具有少量痧點(diǎn)的圖像命名為類型B,見(jiàn)圖3。類型A、類型B的訓(xùn)練集以及測(cè)試集數(shù)量分別為640幅、300幅。SVM算法基于Matlab、LibSVM實(shí)現(xiàn),深度學(xué)習(xí)算法基于Tensorflow實(shí)現(xiàn),實(shí)驗(yàn)環(huán)境為GPU 1080Ti、Ubuntu 14.04.1、CPU i7-7700HQ、Win10、64位,為了后續(xù)統(tǒng)計(jì)的時(shí)間具有統(tǒng)一性,統(tǒng)計(jì)算法在CPU下花費(fèi)的時(shí)間。
圖3 不同類型的圖像
手動(dòng)獲取大椎穴和長(zhǎng)強(qiáng)穴位置信息對(duì)原始圖像[圖4(a)]進(jìn)行校正,校正結(jié)果見(jiàn)圖4(b)。用基于兩點(diǎn)的Grabcut算法實(shí)現(xiàn)背部提取及臟腑穴位區(qū)域自動(dòng)定位,并用紅框標(biāo)定臟腑穴位區(qū)域。該區(qū)域分左右兩部分,從上到下的臟腑穴位區(qū)域依次為肺俞區(qū)域、心俞區(qū)域、肝俞區(qū)域、膽俞區(qū)域、脾俞區(qū)域、胃俞區(qū)域、三焦俞區(qū)域、腎俞區(qū)域、大腸俞區(qū)域、小腸俞區(qū)域、膀胱俞區(qū)域,最終結(jié)果見(jiàn)圖4(c)。該方法在圖像校正、背部圖像提取、背部臟腑穴位區(qū)域自動(dòng)定位上取得很好的效果。
圖4 基于兩點(diǎn)的Grabcut處理結(jié)果
首先用SVM對(duì)小塊數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,然后用搭建好的CNN進(jìn)行訓(xùn)練和測(cè)試。由于背部臟腑穴位區(qū)域共有11個(gè),各區(qū)域分左右兩部分,故每幅背部圖像需要對(duì)22幅小圖像進(jìn)行自動(dòng)識(shí)別,所以本文統(tǒng)計(jì)每次識(shí)別22幅圖像花費(fèi)的時(shí)間,識(shí)別結(jié)果和花費(fèi)時(shí)間見(jiàn)表2。Alexnet算法基礎(chǔ)上修改的CNN相比于Alexnet、SVM識(shí)別速度更快,識(shí)別速度為每22幅0.42 s,識(shí)別準(zhǔn)確率更高,識(shí)別準(zhǔn)確率為99.83%。其中,類型A圖像1幅識(shí)別錯(cuò)誤,類型B圖像全部識(shí)別正確。后續(xù)采用Alexnet算法基礎(chǔ)上修改的CNN模型進(jìn)行識(shí)別。
表2 花費(fèi)時(shí)間和識(shí)別準(zhǔn)確率
為了驗(yàn)證該算法是否可行,對(duì)10幅圖像,即對(duì)110個(gè)臟腑穴位區(qū)域自動(dòng)識(shí)別,判斷每個(gè)區(qū)域的左右兩部分中的一處或者兩處是否是類型A,如果是則判定該區(qū)域?qū)?yīng)的臟腑可能出現(xiàn)異常。對(duì)其判定結(jié)果進(jìn)行統(tǒng)計(jì)分析,識(shí)別準(zhǔn)確率為98.18%(識(shí)別正確108個(gè),識(shí)別錯(cuò)誤2個(gè)),可用來(lái)進(jìn)行臟腑功能失調(diào)預(yù)警。
痧療過(guò)程中,常通過(guò)背部臟腑穴位區(qū)域痧象及時(shí)發(fā)現(xiàn)臟腑功能失調(diào)的問(wèn)題所在,對(duì)后續(xù)的保健與治療具有重要的作用。傳統(tǒng)的臟腑功能失調(diào)預(yù)警主要基于醫(yī)生對(duì)背部臟腑穴位各個(gè)區(qū)域模糊定位來(lái)實(shí)現(xiàn),面對(duì)較多的區(qū)域,無(wú)論是定位還是識(shí)別都需要花費(fèi)很多時(shí)間,影響工作效率。使用相機(jī)采集的圖像有一些雜亂的背景,影響?zhàn)鹣髨D像在電子病歷中的規(guī)范化存儲(chǔ)。
本文提出一種基于圖像處理與模式識(shí)別技術(shù)的痧象分析方法,用基于兩點(diǎn)的Grabcut算法實(shí)現(xiàn)背部提取及臟腑穴位區(qū)域定位,并用SVM、Alexnet、Alexnet基礎(chǔ)上修改的CNN對(duì)臟腑穴位區(qū)域進(jìn)行識(shí)別,對(duì)比實(shí)驗(yàn)結(jié)果確定最優(yōu)模型,實(shí)現(xiàn)各個(gè)臟腑穴位區(qū)域痧象的自動(dòng)識(shí)別,從而實(shí)現(xiàn)臟腑功能失調(diào)預(yù)警。本算法的研發(fā),為中醫(yī)痧診提供一種輔助手段,對(duì)提高醫(yī)生工作效率、規(guī)范化存儲(chǔ)痧象圖像具有重要的作用。但由于數(shù)據(jù)集有限,在制作數(shù)據(jù)集的時(shí)候各種典型樣本數(shù)量還不是很多,造成現(xiàn)在訓(xùn)練好的模型雖然在測(cè)試集上識(shí)別率很高,但當(dāng)用10幅圖像總共110個(gè)臟腑穴位區(qū)域驗(yàn)證算法可行性時(shí),準(zhǔn)確率下降,以后會(huì)繼續(xù)采集樣本,增加數(shù)據(jù)集,提高模型泛化能力。