翟鵬博,楊 浩,宋婷婷,余 亢,馬龍祥,黃向生
(1.中國科學(xué)院微電子所 健康電子研發(fā)中心,北京 100029; 2.中國科學(xué)院大學(xué) 電子電氣與通信工程學(xué)院,北京 100049; 3.中國科學(xué)院自動化研究所 軍民融合中心,北京 100190)
傳統(tǒng)中醫(yī)舌診往往依靠醫(yī)生的個人經(jīng)驗(yàn),并且容易受到光照、溫度等環(huán)境因素的影響。隨著電子技術(shù)的發(fā)展,部分科研人員將圖像處理技術(shù)應(yīng)用到中醫(yī)舌診當(dāng)中,試圖來解決以上問題。
張藝凡等[1]利用舌象的RGB圖,從中提取特征,然后借助支持向量機(jī),成功實(shí)現(xiàn)了對于舌色和舌苔的分類。張靜等[2]提取舌質(zhì)和舌苔的顏色特征與紋理特征,借助多標(biāo)記學(xué)習(xí)算法,對舌象進(jìn)行分類。尚文文等[3]借助RGB和CLE Lab色彩空間之間的關(guān)系,提取相應(yīng)的色彩離散特征,對舌象進(jìn)行分類。由于以上算法大多采用手動設(shè)計的方法提取特征,提取的特征較為簡單,無法深層次挖掘不同類別舌象的特征差異,不能很好表征舌體特性,因而分類的準(zhǔn)確率有待提高。
近幾年,隨著深度卷積神經(jīng)網(wǎng)絡(luò)的飛速發(fā)展,計算機(jī)視覺領(lǐng)域也獲得了巨大的進(jìn)步[4]。Hou等[5]首先將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到舌象分類當(dāng)中,實(shí)現(xiàn)了通過深度學(xué)習(xí)網(wǎng)絡(luò)對舌象進(jìn)行分類。胡繼禮等[6]采用MobileNet[7]網(wǎng)絡(luò)對舌象進(jìn)行分類,提高了分類的精度,并且提高了分類速度。楊晶東等[8]采用Inception-V3[9]網(wǎng)絡(luò),借助遷移學(xué)習(xí)訓(xùn)練數(shù)據(jù),減少了訓(xùn)練所需的樣本,提高了訓(xùn)練速度。Huo等[10]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的舌形識別方法,采用邊界檢測方法識別齒痕舌。但是由于以上算法大多直接將成熟完整的深度學(xué)習(xí)框架移植到舌診領(lǐng)域,缺乏對于舌診問題的針對性考慮,沒有對網(wǎng)絡(luò)框架做出改進(jìn),因而無論從速度上還是精度上都有待提高。
由于實(shí)際環(huán)境的限制,研究人員往往獲得的是帶有面部干擾信息的舌象圖,這樣在對舌象進(jìn)行分類的時候,容易受到面部嘴唇、臉頰等部位的干擾。例如,由于嘴唇顏色偏紅,干擾舌色的判斷;臉頰的皺紋干擾裂紋舌的判斷等等。另外,舌部也存在著一些雜質(zhì)信息,對舌象的分類產(chǎn)生影響。例如,在判斷舌象是否為齒痕舌時,舌中凸起部分也會產(chǎn)生干擾。無論是基于機(jī)器學(xué)習(xí)還是深度學(xué)習(xí)的算法,都很難消除這些干擾,進(jìn)而造成產(chǎn)生誤差。
針對以上問題,本文設(shè)計了一種融合注意力機(jī)制的多階段舌象分類算法,本文算法流程如圖1所示。在舌部定位階段,通過采集不同感受視野的特征,融合不同特征信息,獲得舌部區(qū)域。在舌象分類階段,通過注意力機(jī)制模塊,自適應(yīng)學(xué)習(xí)權(quán)重,獲得精準(zhǔn)的舌象特征。然后利用卷積層和池化層進(jìn)一步提取與對應(yīng)標(biāo)簽相關(guān)的特征信息。最后通過全連接層,將得到的特征信息進(jìn)行分類,得到最后的結(jié)果。
圖1 整體方案
因?yàn)槿梭w舌部周圍的嘴唇、下巴等位置顏色與舌體相近,并且不同患者的舌部顏色形狀等差異較大,所以僅僅依靠簡單的顏色、紋理、形狀等特征并不能很好將舌體與背景區(qū)分,需要提取舌體復(fù)雜特征,對舌象整體建模。為此,本文采用了卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取。深度卷積網(wǎng)絡(luò)通過模擬人類大腦的結(jié)構(gòu),根據(jù)訓(xùn)練數(shù)據(jù)借助卷積神經(jīng)網(wǎng)絡(luò),自適應(yīng)學(xué)習(xí)圖像特征,并通過反向傳播算法優(yōu)化網(wǎng)絡(luò)權(quán)重。深度卷積網(wǎng)絡(luò)的出現(xiàn)打破了傳統(tǒng)手動設(shè)計特征的局限性,使得提取的特征具有更強(qiáng)的表征能力,因而在很多問題上取得了進(jìn)步。
本文設(shè)計的舌部定位階段網(wǎng)絡(luò)如圖2所示。為提取舌部深層次的特征信息,增強(qiáng)算法對于不同患者舌體的魯棒性,我們設(shè)計了兩條路徑采集舌象不同感受視野的特征信息。路徑一采用ResNet[11]網(wǎng)絡(luò)。ResNet網(wǎng)絡(luò)采用殘差結(jié)構(gòu),能夠較好將淺層特征與深層特征融合,并且方便訓(xùn)練,容易收斂。本文采用從ResNet網(wǎng)絡(luò)中輸出的16倍下采樣與32倍下采樣大小的特征圖,以獲取較大的感受視野特征。路徑二首先進(jìn)行4倍快速下采樣,然后采用膨脹卷積[12],保持一定感受視野的同時,又獲得了較高的分辨率。最后將獲得的兩條路徑的特征進(jìn)行融合,這樣最后的特征圖就包含了舌象在不同感受視野下的特征信息,進(jìn)而根據(jù)提取的特征,得到舌部的區(qū)域。
圖2 舌部定位階段
注意力機(jī)制模塊是借鑒人類的視覺行為設(shè)計。人的眼睛每時每刻都會接收到大量的信息,人腦不會對這些信息逐一處理,而是通過視覺的注意力機(jī)制進(jìn)行處理。人的視網(wǎng)膜的每一位置都有處理信息的能力,但是不同位置對于不同的特征敏銳度不同,其中視網(wǎng)膜中央地區(qū)的凹陷部分就有著最強(qiáng)的敏銳度。人的大腦在處理這些信息時,會有意地集中關(guān)注這些敏銳度更高的地方,而這些地方也恰恰包含著更多的視覺信息。因而人在對物體進(jìn)行分類時,會抓住關(guān)鍵部位,給予顯著特征更大的權(quán)重。例如,人類在區(qū)分啄木鳥與麻雀時,會更加關(guān)注嘴巴位置的特征;在區(qū)分黑熊和棕熊時,顏色特征會更加重要。深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與大腦類似,同樣面對海量的數(shù)據(jù)需要處理,因此同樣需要注意力機(jī)制來過濾其中無效或者低效的特征信息,增強(qiáng)關(guān)鍵特征的顯著性。本文設(shè)計的注意力機(jī)制分為通道注意力機(jī)制與位置注意力機(jī)制,具體結(jié)構(gòu)如圖3所示。
圖3 注意力機(jī)制
1.3.1 通道注意力機(jī)制
在舌象分類任務(wù)中,不同類別舌象判定依據(jù)的特征不同。例如舌象舌色的判定取決于顏色特征;裂紋舌的判定取決于紋理特征。因而,提取的舌象特征依據(jù)判定任務(wù)的不同,重要性也不應(yīng)相同。在卷積神經(jīng)網(wǎng)絡(luò)當(dāng)中,特征圖的每一個通道代表著一種特征。為了提取更精準(zhǔn)的特征,抑制無關(guān)特征信息,本文設(shè)計了通道注意力機(jī)制,使得網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)每一個通道的特征權(quán)重。通道注意力機(jī)制表達(dá)式為
Oc=Ic*ac
(1)
式中:Ic代表輸入特征圖I的第c個通道,ac代表產(chǎn)生的第c個自適應(yīng)權(quán)重,Oc代表經(jīng)過通道注意力機(jī)制后輸出的特征圖。具體位置注意力機(jī)制權(quán)重產(chǎn)生的設(shè)計框架如圖4所示。
圖4 通道注意力機(jī)制
為提取特征圖每個通道的特征信息,更好的對不同種類的特征進(jìn)行建模,我們首先對原始的特征圖每一通道采用最大值池化和平均值池化。設(shè)原始特征圖的維度為N×C×H×W,在通過最大值池化和平均值池化后變?yōu)镹×C×1×1,這就是初始的通道注意力權(quán)重。但是初始的注意力權(quán)重僅僅代表了各自通道的特征信息,無法體現(xiàn)不同通道的重要性差異。為了更好地適應(yīng)分類任務(wù),使得網(wǎng)絡(luò)可以自適應(yīng)學(xué)習(xí)每一通道的權(quán)重,將初始權(quán)重通過全連接層進(jìn)行細(xì)化,得到更加精細(xì)的權(quán)重。最后將初始的特征圖與通道注意力權(quán)重相乘,為每一種特征分配權(quán)重。
由于通道注意力機(jī)制使用了最大值池化與均值池化這兩種操作,所以模型的參數(shù)并不會增大很多,網(wǎng)絡(luò)的計算開銷也沒有顯著增大。通過通道注意力機(jī)制,使得對于舌象類別貢獻(xiàn)度大的特征獲得了更高的關(guān)注度,從而能夠更好的針對不同的舌象類別,提取更加精準(zhǔn)的特征。
1.3.2 位置注意力機(jī)制
在對舌象進(jìn)行分類時,不同種類的舌象依據(jù)特征的位置也不相同。例如,在判斷齒痕舌時,邊緣位置的特征信息應(yīng)當(dāng)給予更多的關(guān)注;在判斷裂紋舌時,舌中位置的特征信息更加重要。因此舌象的不同位置的特征重要性不同。本文設(shè)計了一種位置注意力機(jī)制,具體表達(dá)式為
P(x,y)=J(x,y)*b(x,y)
(2)
式中:J(x,y)代表輸入特征圖J的坐標(biāo)為(x,y)處的特征值,b(x,y)代表產(chǎn)生的位置注意力權(quán)重在(x,y)處的值,P(x,y)代表特征圖經(jīng)過位置注意力機(jī)制后的輸出。具體框架如圖5所示。
圖5 位置注意力機(jī)制
首先將特征圖通過最大值池化和平均值池化,通過這兩次池化操作,我們提取特征圖上每一個位置的特征信息。設(shè)初始特征圖的維度為N×C×H×W,在通過池化操作后變?yōu)镹×1×H×W。然后將得到的特征圖作為位置注意力機(jī)制的初始權(quán)重,通過3*3大小的卷積核,這樣做是為了將通過兩種池化方式提取到的特征信息進(jìn)行融合,并進(jìn)一步自適應(yīng)學(xué)習(xí)權(quán)重。最后將得到的權(quán)重與初始特征圖相乘,為特征圖不同位置分配不同的權(quán)重。
通過位置注意力模塊,我們針對不同的舌象類別為每一位置的特征分配權(quán)重,使得顯著位置的特征獲得更大的關(guān)注,更加有效地處理特征信息,提高分類準(zhǔn)確率。
舌象分類算法大多是單標(biāo)簽分類,一般只是針對顏色、形狀或者紋理其中一種考慮分類問題并沒有考慮到多標(biāo)簽分類。如果要實(shí)現(xiàn)舌象的多標(biāo)簽分類,常規(guī)的做法是針對多標(biāo)簽訓(xùn)練多個單標(biāo)簽分類模型,這樣做不僅極大增大了算法的復(fù)雜度,而且忽略了各個類別之間潛在的關(guān)系。這與中醫(yī)考慮患者整體的思想不相符合,沒有對多個標(biāo)簽整體建模。
為實(shí)現(xiàn)舌象的多標(biāo)簽分類,本文設(shè)計了舌象分類階段網(wǎng)絡(luò)如圖6所示。為了使網(wǎng)絡(luò)可以從整體對舌象進(jìn)行建模,挖掘各個類別之間存在的隱形聯(lián)系,我們令分類階段各個標(biāo)簽共享舌象定位階段獲得的舌象特征圖。然后我們針對不同的類別,將特征圖均通過注意力機(jī)制模塊,以根據(jù)不同的類別進(jìn)一步挖掘與該類別相關(guān)的特征信息。最后將獲得的特征信息送入全連接網(wǎng)絡(luò)層,得到最后的分類結(jié)果。
圖6 分類階段
由于舌象分割與分類本質(zhì)上都屬于分類問題,故網(wǎng)絡(luò)的舌部定位與分類階段均采用交叉熵?fù)p失函數(shù)。交叉熵?fù)p失函數(shù)是常見的分類損失函數(shù),在很多算法中都有使用,其具體公式如下
(3)
由于現(xiàn)階段深度卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練仍然需要大量的樣本,但是對于舌象圖來說,如果數(shù)據(jù)量不夠,在訓(xùn)練網(wǎng)絡(luò)時容易出現(xiàn)網(wǎng)絡(luò)不容易收斂或者過擬合的問題,導(dǎo)致訓(xùn)練結(jié)果變差。
為解決以上問題,我們采用遷移訓(xùn)練和數(shù)據(jù)增強(qiáng)的方法。一般來說,卷積神經(jīng)網(wǎng)絡(luò)不同層級具有不同的特點(diǎn),淺層網(wǎng)絡(luò)提取的特征共性很大,在不同的數(shù)據(jù)集上表現(xiàn)比較相似,因此將網(wǎng)絡(luò)的淺層部分通過參數(shù)的遷移進(jìn)行學(xué)習(xí)是可行的。我們將在ImagNet上預(yù)訓(xùn)練得到的權(quán)重作為網(wǎng)絡(luò)的初始權(quán)重,大大提高了網(wǎng)絡(luò)的收斂速度。另外,我們通過對采集到的舌象樣本進(jìn)行隨機(jī)的平移、旋轉(zhuǎn)、鏡像變換等操作,增加了樣本的豐富性,解決了樣本量不足的問題。
舌象采集過程容易受到光照等環(huán)境因素的影響,同一舌象在不同光照情況下可能會呈現(xiàn)出完全不同的狀態(tài)。為解決這一問題,我們設(shè)計了專業(yè)的舌象采集系統(tǒng)使得采集舌象圖片的環(huán)境保持穩(wěn)定。采集系統(tǒng)內(nèi)置了積分球裝置,內(nèi)壁涂有漫反射材料,可以使得光照均勻分布在積分球內(nèi)空間。采集時,患者將舌部伸入到腔體當(dāng)中即可完成拍攝采集。下圖為采集到圖片的實(shí)例。從示例圖片中我們可以看出,通過我們設(shè)計的采集設(shè)備采集的舌象圖片,舌面部分獲得了均勻穩(wěn)定的光照,從而消除了由于光照不穩(wěn)定帶來了分類誤差。具體示例圖如圖7所示。
圖7 采集圖片
本實(shí)驗(yàn)采集到的舌象圖片共有2300張,均由上文舌象采集系統(tǒng)采集,圖片的大小為2300*1944,選取其中的2000張作為訓(xùn)練集,300張作為測試集。舌象特征分為裂紋舌、齒痕舌、舌苔、舌色,其中舌苔又分為無苔、白苔、黃苔,舌色分為淡白舌、淡紅舌、絳紅舌、紅舌、紫舌。每種標(biāo)簽的圖片數(shù)目見表1。
表1 實(shí)驗(yàn)樣本數(shù)據(jù)
本文具體的實(shí)驗(yàn)環(huán)境見表2。
表2 實(shí)驗(yàn)環(huán)境參數(shù)
由于本文網(wǎng)絡(luò)的任務(wù)為分類任務(wù),故選取了精確度P、召回率R、F值作為本文的評價標(biāo)準(zhǔn)。其中
(4)
(5)
(6)
其中,TP為預(yù)測為正值實(shí)際結(jié)果也為正值的數(shù)目,F(xiàn)P為預(yù)測為正值實(shí)際結(jié)果為負(fù)值的數(shù)目,F(xiàn)N為預(yù)測為負(fù)值實(shí)際為正值的數(shù)目。P為精確度,反映的是預(yù)測結(jié)果為正并且預(yù)測正確的樣本占所有預(yù)測結(jié)果為正樣本的比例,即為查準(zhǔn)率,與錯分率相對應(yīng)。R為召回率,反應(yīng)的是預(yù)測結(jié)果為正并且預(yù)測正確的樣本占所有樣本實(shí)際為正值的比例,即為查全率。F是綜合精確度P和召回率R考慮得到的參數(shù),反映了整體的準(zhǔn)確率情況。3個參數(shù)都是分布在0-1之間,且越接近1效果越好。
舌體的定位結(jié)果對于后續(xù)的分類的結(jié)果有著極大的影響,如果定位階段不能很好地提取舌部輪廓,消除背景,在分類階段就會引入額外的誤差,導(dǎo)致分類結(jié)果變差。為此,我們將本文網(wǎng)絡(luò)得到的舌部定位結(jié)果輸出如圖8(b)所示。
圖8 舌象定位結(jié)果
從圖8中我們可以看出本文算法提取了舌象深層次特征,能夠更好對舌象部分建模分析,得到完整的不含干擾信息的舌象輪廓。
為了驗(yàn)證本文的舌象定位模塊相較于其它算法能獲得更加精準(zhǔn)的舌象輪廓,我們將本文網(wǎng)絡(luò)得到的結(jié)果與幾種算法的結(jié)果作比較如圖9所示。
圖9 舌象定位結(jié)果對比
從圖9(b)我們可以看出,由于Otsu算法采用自動閾值分割方法,與舌部顏色較為相近的某些臉部區(qū)域尤其是嘴唇和牙齒等無法得到很好的區(qū)別,仍然保留在最后的定位圖上,導(dǎo)致最后的定位結(jié)果引入了額外的誤差。從圖9(c)可以看出,種子增長法相較于Otsu算法有了很大的效果提升,但是仍然存在一些區(qū)域定位效果不好的現(xiàn)象,且最后的舌象定位結(jié)果出現(xiàn)了明顯的矩形邊界,邊緣分割結(jié)果差。從圖9(d)可以看出,基于深度卷積神經(jīng)網(wǎng)絡(luò)的全卷積(FCN[13])算法相較于以上兩種算法,舌體輪廓提取更加完整,而且邊緣部分更加精準(zhǔn),但是仍然存在一些干擾信息,導(dǎo)致邊緣部位定位不準(zhǔn)。而圖9(e)顯示本文舌象定位階段算法融合了不同感受視野的舌象特征,并通過專用的特征融合模塊進(jìn)行特征融合,因而算法整體更加具有魯棒性,得到的效果更好。
本文以類別為基礎(chǔ),分別計算了算法在舌質(zhì)、舌苔、裂紋、齒痕等類別上的P、R、F值,具體結(jié)果見表3。
表3 本文算法結(jié)果
從表中可以看出,所有類別的P、R、F指標(biāo)均超過了0.9,其中裂紋舌的P、R、F已經(jīng)達(dá)到0.99,說明本文的算法能夠?qū)ι嘞笳_的分類。但是其中齒痕舌的指標(biāo)相對于其它類別偏低,一方面是由于齒痕位于舌部的邊緣,而舌象的定位階段對于邊緣的劃分仍然存在不足,導(dǎo)致邊緣部分引入噪聲,造成算法對于舌象是否包含齒痕產(chǎn)生誤判。另一方面,由于某些樣本的齒痕并不明顯,齒痕部位與周圍舌象較為接近,差異度較小,從而導(dǎo)致算法產(chǎn)生誤判。
為了驗(yàn)證本文注意力機(jī)制的有效性,將未添加注意力機(jī)制網(wǎng)絡(luò)得到結(jié)果的P、R、F值與添加注意力機(jī)制相比較得到結(jié)果如圖10~圖12所示。
圖10 是否添加注意力機(jī)制P值比較
圖11 是否添加注意力機(jī)制R值比較
圖12 是否添加注意力機(jī)制F值比較
從圖10~圖12可以看出,添加了注意力機(jī)制的P、R、F值均優(yōu)于未添加。由此可以看出,通過注意力機(jī)制模塊,網(wǎng)絡(luò)抑制了無關(guān)特征的干擾,學(xué)到了更加精準(zhǔn)的特征信息,改善了最后的分類結(jié)果。
為了驗(yàn)證本文算法相較于其它算法的優(yōu)越性,本文選取了幾種常見的舌象分類算法進(jìn)行對比。首先選取文獻(xiàn)[14]中的改進(jìn)KNN算法,通過多次實(shí)驗(yàn)選取最優(yōu)的實(shí)驗(yàn)結(jié)果。然后選取SVM算法,采用核函數(shù)技巧,并通過多次實(shí)驗(yàn)確定最優(yōu)的C值。最后采用深度卷積網(wǎng)絡(luò)Inception-V4[15],使用遷移學(xué)習(xí)訓(xùn)練網(wǎng)絡(luò),通過多次實(shí)驗(yàn)選取最優(yōu)結(jié)果。具體的實(shí)驗(yàn)結(jié)果如圖13~圖15所示。
圖13 不同算法的P值
圖14 不同算法的R值
圖15 不同算法的F值
從圖13~圖15可以看出,基于人工提取特征的KNN和SVM表現(xiàn)較差,因?yàn)槿斯ぬ崛〉奶卣鬏^為簡單,表達(dá)能力欠缺,不能很好地體現(xiàn)類別的差異。另一方面KNN算法基于舌象整體的差異度,不能體現(xiàn)每個類別獨(dú)特的特征差異,SVM基于線性分類器,不能適應(yīng)復(fù)雜的舌象特征。而基于深度卷積神經(jīng)網(wǎng)絡(luò)的Inception-V4相較于傳統(tǒng)算法,采用了自動提取特征的方法,能夠獲得更加深層次的特征,但是由于Inception-V4同時也提取了包含面部干擾信息的特征,造成誤差。本文的算法排除面部干擾信息,融合多種層次特征,并且多標(biāo)簽聯(lián)合學(xué)習(xí)增強(qiáng)了特征的表達(dá)能力,并且借助注意力機(jī)制,精準(zhǔn)提取了每一類舌象的獨(dú)有的特征,獲得了最優(yōu)的結(jié)果。
為了驗(yàn)證本文算法效率的優(yōu)越性,將上面算法的運(yùn)行時間與本文算法作比較,得到結(jié)果見表4。
表4 不同算法的運(yùn)行時間
由于以上算法多為二分類算法,進(jìn)行多標(biāo)簽任務(wù)時需要訓(xùn)練多個模型,因而導(dǎo)致算法效率低下。而本文模型屬于多標(biāo)簽分類模型,只需一個模型即可完成多分類任務(wù),因而效率大幅提高。
本文設(shè)計了一種融合注意力機(jī)制的多階段舌象分類算法。在舌部區(qū)域定位階段,通過融合不同感受視野的舌象特征,改善了舌象定位效果,提高了算法的魯棒性。在分類任務(wù)階段,通過多標(biāo)簽樣本聯(lián)合學(xué)習(xí),提取各個標(biāo)簽的共同特征。另外借助注意力機(jī)制,抑制了舌體內(nèi)部的干擾信息,同時學(xué)習(xí)每個類別的獨(dú)立特征,實(shí)現(xiàn)了舌象類別的多標(biāo)簽分類,并且提高了精度。
由于齒痕信息位于舌體的邊緣,而在舌體定位過程中邊緣信息容易引來誤差,另外,由于有些患者的齒痕并不明顯,且與周圍舌體較為接近,所以導(dǎo)致齒痕舌的分類效果不如其它類別準(zhǔn)確率高。接下來會進(jìn)一步優(yōu)化注意力模塊算法,提升齒痕舌的識別精度。