沈 睿,毛曉波,周 熙,路宜寧
(鄭州大學(xué)電氣工程學(xué)院,河南鄭州 450001)
脈象診斷和舌象診斷是中醫(yī)極具價(jià)值的臨床診斷方法,但是傳統(tǒng)中醫(yī)診斷主要依靠醫(yī)生的肉眼和經(jīng)驗(yàn),難以量化描述和精確診斷。目前舌脈診客觀化已有一些研究成果。脈象方面,大量中醫(yī)學(xué)者的研究表明,不同疾病病癥在脈圖參數(shù)方面有顯著的相關(guān)性[1],使脈圖能夠有效運(yùn)用于中醫(yī)診斷。通過時(shí)域方法可以直觀提取脈圖參數(shù),但脈象的識(shí)別準(zhǔn)確率較低。舌象方面,也有中醫(yī)學(xué)者驗(yàn)證了某些病癥與色彩空間的值具有相關(guān)性[2-5],但針對(duì)舌象色彩空間參數(shù)進(jìn)行舌象判別鮮有研究。
市場(chǎng)上已經(jīng)研制出多種脈診儀和舌診儀,但體積龐大,操作復(fù)雜,很難推廣給大眾。中醫(yī)辨證體系要求四診合診才能全面了解病情[6],而市場(chǎng)上的舌診儀、脈診儀往往是分開的,只能局限性地展示疾病狀況。
該文以構(gòu)建小型化舌診脈診儀為目的,設(shè)計(jì)一款智能中醫(yī)舌脈診斷手環(huán),建立舌脈象的判別模型,提高判別準(zhǔn)確率,對(duì)推動(dòng)中醫(yī)舌診客觀化、規(guī)范化提供一種模型方法。
該智能舌脈診斷手環(huán)包括采集單元和診斷單元,系統(tǒng)總體結(jié)構(gòu)圖如圖1 所示。采集單元即為智能手環(huán),內(nèi)置脈搏傳感器、舌象拍攝模塊和通信模塊。診斷單元為上位機(jī),進(jìn)行脈象和舌象的處理分析。

圖1 系統(tǒng)總體結(jié)構(gòu)圖
具體實(shí)施方案流程圖如圖2 所示,脈象處理方面:先用脈搏傳感器模塊采集脈象,使用光電容積法對(duì)淺部微動(dòng)脈進(jìn)行信息提取分析;利用通信模塊傳輸?shù)缴衔粰C(jī)保存脈搏數(shù)據(jù),同時(shí)繪制能顯示出脈搏的波形;再進(jìn)行判別模型判斷,對(duì)脈象的分析利用隨機(jī)森林bagging 決策樹算法,得出模型后回代評(píng)估模型,最終得到脈象分析結(jié)果。舌象處理方面:先用舌象拍照模塊拍照,利用通信模塊傳輸?shù)缴衔粰C(jī);之后進(jìn)行識(shí)別定位,應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)中的YOLOv3 算法檢測(cè)出人臉和舌頭的位置,定位位置后標(biāo)記,提取出坐標(biāo)。然后是舌象色素提取:定位后再對(duì)舌象重要部分進(jìn)行剪切,得到舌頭數(shù)據(jù)圖片,對(duì)其進(jìn)行像素點(diǎn)分析,提取RGB 數(shù)據(jù)后轉(zhuǎn)化為L(zhǎng)ab 數(shù)據(jù);最后判別模型進(jìn)行判斷,對(duì)Lab 數(shù)據(jù)等舌象信息進(jìn)行Fisher 線性判別,構(gòu)造二次模型并將樣本代入到模型中,計(jì)算其混淆矩陣和判對(duì)率,得到舌象判別結(jié)果。其中舌象采用Fisher 二次模型,苔色采用一次模型。

圖2 實(shí)施方案流程圖
2.1.1 光電容積法
使用光電容積法利用560 nm 波長(zhǎng)左右的光對(duì)淺部微動(dòng)脈進(jìn)行信息提取分析,其原理流程如圖3所示。在目前的智能穿戴設(shè)備上,應(yīng)用最多的就是PPG 光電容積法[7],其基本原理如下:人體的皮膚等對(duì)于光的反射是固定值,而毛細(xì)血管和動(dòng)脈、靜脈對(duì)光的反射值是波動(dòng)值,隨著脈搏容積不斷變化,這個(gè)波動(dòng)值正好與心率一致,所以通過這個(gè)波動(dòng)值就可以確定使用者的心率數(shù)據(jù)。

圖3 光電容積法原理示意圖
2.1.2 隨機(jī)森林bagging
從生物力學(xué)的角度考慮,脈象形成是橈動(dòng)脈在心臟、血液、血管相互作用下的一種運(yùn)動(dòng),通過研究參與這一運(yùn)動(dòng)的作用力,可以闡明脈象形成的機(jī)理。當(dāng)患有某種疾病時(shí),會(huì)引起某些生理參數(shù)的變化,從而改變了與此參數(shù)有關(guān)的作用力,影響了橈動(dòng)脈的正常運(yùn)動(dòng),出現(xiàn)病脈。所以一切脈象的形成都可以歸結(jié)到參數(shù)的變化[8-9]。因此,建立模型進(jìn)行參數(shù)分析,以得到脈象的客觀指標(biāo),就可以判別脈象。
建立模型前要測(cè)得不同脈象的有關(guān)參數(shù),以確定出各相應(yīng)的相似準(zhǔn)數(shù)的正常范圍及陽性指標(biāo)。這樣便可以定量區(qū)別各種不同的脈象并探討其機(jī)理。考慮到與脈形信息相關(guān)的參數(shù)較多,若將其全部引入會(huì)造成模型計(jì)算困難以及變量信息重疊度高進(jìn)而導(dǎo)致模型不顯著等,所以剔除與脈形信息關(guān)系不大的參數(shù)會(huì)提高模型精度:首先對(duì)所有自變量逐個(gè)建立判別模型,由于有些脈形樣本數(shù)較少故采用Fisher線性判別分析,以各模型判對(duì)率的上四分位點(diǎn)為閾值,選取對(duì)脈象信息有較大相關(guān)性的自變量引入模型。圖4 是隨機(jī)森林引入變量數(shù)目的選擇,當(dāng)縱軸表示的錯(cuò)誤情況達(dá)到最低時(shí)為最佳選擇,所以選擇引入4 個(gè)變量。

圖4 隨機(jī)森林引入變量數(shù)目的選擇
隨機(jī)森林就是以集成學(xué)習(xí)的思想將多棵決策樹集成的一種算法,它的基本單元是決策樹,每棵決策樹作為一個(gè)分類器,則對(duì)于一個(gè)輸入的樣本集成了所有分類投票的結(jié)果,N棵樹就會(huì)有N個(gè)分類結(jié)果,而隨機(jī)森林根據(jù)投票制指定最多的類別為最終輸出,隨機(jī)森林bagging的思想是指將若干個(gè)弱分類器組成一個(gè)強(qiáng)分類器。隨機(jī)森林算法實(shí)質(zhì)是基于決策樹的分類器集成算法,其中每棵樹都依賴于一個(gè)隨機(jī)向量。隨機(jī)森林會(huì)隨機(jī)地來生成多個(gè)分類樹,最終將分類樹結(jié)果進(jìn)行匯總。所以不僅要確定引入的變量,還要確定隨機(jī)森林所包含決策樹的數(shù)目。圖5 給出了指定隨機(jī)森林所包含決策樹數(shù)目的決策,決策樹數(shù)目為500 時(shí),模型內(nèi)誤差基本穩(wěn)定,故取數(shù)目為500。

圖5 隨機(jī)森林模型的建立
針對(duì)脈象參數(shù)眾多的特點(diǎn),隨機(jī)森林與神經(jīng)網(wǎng)絡(luò)等其他算法相比,降低了運(yùn)算量,提高了預(yù)測(cè)精度,而且該算法對(duì)多元共線性不敏感以及對(duì)缺失數(shù)據(jù)和非平衡數(shù)據(jù)都比較穩(wěn)健,所以適合于脈象數(shù)據(jù)集。在bagging 方法里,從數(shù)據(jù)里抽取出自舉樣本,由每個(gè)樣本建立一個(gè)決策樹模型,最終的模型是所有單個(gè)決策樹結(jié)果的一個(gè)平均。bagging 決策樹算法以降低方差得到穩(wěn)定的最終模型,這種方法提高了精度,最終得到判別準(zhǔn)確率為91.07%,并且不容易過擬合。在得出模型后進(jìn)行交叉驗(yàn)證來評(píng)估模型的準(zhǔn)確率。
2.2.1 YOLOv3算法
傳統(tǒng)的舌象及面象提取多用專業(yè)儀器,需要有專業(yè)人員操作,在固定攝像頭、固定位置下進(jìn)行圖像采樣以確保準(zhǔn)確性。而該產(chǎn)品為使得用戶能夠自主簡(jiǎn)便操作,真正地實(shí)現(xiàn)全自動(dòng)化健康檢測(cè),采用了基于Darknet-53 網(wǎng)絡(luò)結(jié)構(gòu)的YOLOv3 算法,通過卷積神經(jīng)網(wǎng)絡(luò)對(duì)用戶拍攝的面部位置和舌頭位置不確定的圖片進(jìn)行自動(dòng)識(shí)別并定位,高效準(zhǔn)確地確定坐標(biāo)以供后續(xù)分析處理。
Yolov3 與R-CNN、Fast R-CNN、SSD 相比,識(shí)別速度上有明顯的優(yōu)勢(shì),能夠迅速得到識(shí)別結(jié)果,以供后續(xù)分析處理。YOLOv3 在實(shí)現(xiàn)相同準(zhǔn)確度下要顯著地比其他檢測(cè)方法快。時(shí)間都是在采用M40 或Titan X 等相同GPU 下測(cè)量的。
數(shù)據(jù)集采用VOC 數(shù)據(jù)集,其中圖片采集于鄭州大學(xué)第五附屬醫(yī)院及網(wǎng)絡(luò)數(shù)據(jù)庫。使用Python 標(biāo)注程序進(jìn)行標(biāo)注,并使用縮放比例、裁剪、移位等方式來進(jìn)行數(shù)據(jù)增強(qiáng),擴(kuò)充數(shù)據(jù)集,提高各種情況下識(shí)別的準(zhǔn)確率。并確保數(shù)據(jù)集的測(cè)試集和訓(xùn)練集具有有效的區(qū)分性以保證訓(xùn)練精度。
YOLOv3 輸出了3 個(gè)不同尺度的feature map,采用了predictions across scales 改進(jìn)方法,多尺度地來對(duì)不同size 的目標(biāo)進(jìn)行檢測(cè),以確保對(duì)于不同比例尺圖像中人臉和舌頭檢測(cè)的精準(zhǔn)性。在對(duì)b-box 進(jìn)行預(yù)測(cè)時(shí),采用了logistic regression,即網(wǎng)絡(luò)每次對(duì)b-box 進(jìn)行預(yù)測(cè)時(shí),都輸出一組(tx,ty,tω,th,t0),最后通過式(1)計(jì)算出最優(yōu)的bx、by、bω、bh和置信度。

logistic 回歸用于對(duì)anchor 包圍的部分進(jìn)行一個(gè)目標(biāo)性評(píng)分(objectness score),即這塊位置是目標(biāo)的可能性有多大。因?yàn)橛脩羰褂脮r(shí),一張照片只有一個(gè)舌象位置和面部位置,故選擇輸出目標(biāo)可能性得分最高的目標(biāo)框作為實(shí)際識(shí)別坐標(biāo)。
經(jīng)對(duì)測(cè)試集檢驗(yàn),準(zhǔn)確率達(dá)到了95.8%(207/216),其中目標(biāo)在圖片中的絕對(duì)位置偏移量與其所占數(shù)量百分比坐標(biāo)圖如圖6,在確保后續(xù)處理檢驗(yàn)準(zhǔn)確性的前提下選取容忍范圍為5 mm。

圖6 YOLOv3算法目標(biāo)絕對(duì)位置偏移量與其所占數(shù)量百分比坐標(biāo)圖
故文中采用的YOLOv3 算法能夠有效地達(dá)到在定位不明確的圖片中準(zhǔn)確快速定位舌象和面象位置并提取坐標(biāo),以供后續(xù)分析處理的功能。
2.2.2 提取LAB數(shù)據(jù)
舌診是中醫(yī)診斷學(xué)的重要方法,通過辨別舌色,可診斷病癥。舌色需要借助顏色空間進(jìn)行提取和分析,目前在計(jì)算機(jī)視覺領(lǐng)域存在著較多類型的顏色空間。LAB 模型色域?qū)掗?對(duì)顏色的描述更接近中醫(yī)舌色診斷的實(shí)際過程,所以對(duì)舌色特征的分析均是基于該色彩模型進(jìn)行的。
RGB無法直接轉(zhuǎn)換成LAB[10-11],需要徑過RGB——XYZ——LAB,也就是先轉(zhuǎn)換成XYZ 再轉(zhuǎn)換成LAB,因此轉(zhuǎn)換公式如下:

2.2.3 Fisher線性判別
對(duì)舌象色彩空間參數(shù)進(jìn)行Fisher 線性判別,因?yàn)樽宰兞繉儆谌S空間,故可做出三維散點(diǎn)圖用于初步判斷不同類別的大致分布狀態(tài)(以不同顏色區(qū)分),為了更加清晰地觀測(cè)分布,采用交互繪圖方式,發(fā)現(xiàn)類間基本線性可分,故采用線性判別分析。
舌象三維散點(diǎn)圖如圖7 所示,不同顏色代表數(shù)據(jù)點(diǎn)所屬類別不同。

圖7 舌象三維散點(diǎn)圖
Fisher 判別即給定訓(xùn)練樣本集,設(shè)法將訓(xùn)練樣本投影到一條直線上,使每一類之內(nèi)的投影值所形成的類內(nèi)距離盡可能小,而不同類之間間距離差盡可能大。建模后進(jìn)行交叉驗(yàn)證,計(jì)算其混淆矩陣和判對(duì)率。若發(fā)現(xiàn)效果不明顯,則可以考慮增加一個(gè)緯度,即投影到二維空間并重新建模和檢驗(yàn)。最終可知,在苔判別中,線性模型的分類效果優(yōu)于二次模型的分類效果,而在舌的判別中,二次模型的分類效果優(yōu)于線性模型的分類效果。
用戶戴上智能舌脈診手環(huán),找到脈搏最為明顯的取脈點(diǎn),將手環(huán)上的光電反射式傳感器對(duì)準(zhǔn)采樣點(diǎn),可將采集到的模擬信號(hào)利用通信模塊傳輸給上位機(jī)[12-16],此外還可以在電腦上繪制出脈搏波形。手環(huán)自動(dòng)將數(shù)據(jù)導(dǎo)入,分析得到脈象診斷報(bào)告;其次打開舌象拍攝模塊,對(duì)面部伸舌進(jìn)行拍攝,將圖片導(dǎo)入上位機(jī)進(jìn)行舌象分析;最后得到最終的中醫(yī)舌診脈診檢測(cè)結(jié)果。
該文針對(duì)中醫(yī)舌診脈診儀小型化、標(biāo)準(zhǔn)化、客觀化的需求,設(shè)計(jì)了一款智能舌脈診斷手環(huán),作為移動(dòng)醫(yī)療可穿戴設(shè)備,該系統(tǒng)將脈搏傳感器和攝像頭都集成到手環(huán),集成度高。人工智能自動(dòng)識(shí)別舌像,改變傳統(tǒng)定位識(shí)別的固定模式,便于用戶使用,其具備便攜、診斷方便快捷等優(yōu)點(diǎn)。在算法上,建立舌脈象判別模型。針對(duì)脈象參數(shù)過多可能存在信息重疊進(jìn)而產(chǎn)生多重貢獻(xiàn)的情況,采用隨機(jī)森林方法,結(jié)果表明,與一般脈象分析方法相比,其對(duì)于多重貢獻(xiàn)更加不敏感,使模型較穩(wěn)健,提高了判別精度。為了更直觀地描述舌色分布情況及各舌色之間的差異性,選取Lab 模型得到舌象參數(shù),利用Fisher 線性判別建立了舌象與色彩空間參數(shù)的模型關(guān)系。以上為進(jìn)一步研究中醫(yī)舌脈診智能化標(biāo)準(zhǔn)化提供了新的思路。但由于數(shù)據(jù)量有限,該模型只能在特定情況下具有較高的判別概率,對(duì)比較稀少的脈象和舌象不能進(jìn)行判別,因此擴(kuò)大數(shù)據(jù)庫容量,獲取更多信息納入訓(xùn)練集是未來的改進(jìn)方向。