劉東華,張偉,顧旋,梁富娥,呂珊珊
(甘肅中醫藥大學信息工程學院,甘肅 蘭州 730000)
舌診是指醫生觀察病人的舌質和舌苔來進行診斷的一種方法,屬于中醫“望、聞、問、切”四診中望診的重要方法,也是中醫特色診法[1]。應用現代分析手段分析舌象,首先要從圖像中將舌體分割出來才能繼續對舌象進行分類識別和診斷,所以舌象分割是后續研究的前提和關鍵。由于舌象分割的復雜性和特殊性,人們提出了各種各樣的分割方法。閾值法[2]分割舌體,利用舌體顏色像素值的差別來進行劃分,分割速度快但精度不高;邊緣檢測算法[3],根據圖像邊緣像素值變化劇烈這一特點來進行定位,但舌體背景環境復雜,出現錯誤分割率高;以主動輪廓模型[4]為主的算法,模型算法過度依賴輪廓線的好壞,很容易進行錯誤的分割。因為這些算法都是利用的舌體的顏色,紋理等淺層的特征,以上傳統圖像處理方法在精度上很難有較大的提升,想要提高舌體的分割精度就需要利用舌象更深層次的特征信息。
近幾年深度學習在計算機視覺領域得到了廣泛的應用,這是因為卷積神經網絡可以提取圖像深層次抽象的語義特征。卷積神經網絡從R_CNN[5]發展到Faster R_CNN[6],從CNN到FCN[7],在圖像目標檢測、分類、分割領域都得到了廣泛的應用。卷積神經網絡在醫學圖像領域已經取得了不錯的成果,但應用在舌象領域還不是很成熟。本文在卷積神經網絡的基礎上改進了一個二階段舌象分割網絡模型,網絡分為粗分割(Rsnet)和精分割(Psnet)兩部分級聯組成,兩部分網絡可以單獨訓練,減輕整體網絡的復雜度,降低對計算機硬件的要求。
本算法的整體網絡結構見圖1,網絡結構主要可以分為粗分割和精分割。粗分割階段,將圖像進行卷積后提取不同尺度的特征圖融合,傳入全連接層從臉部圖像中提取出感興趣區域,定位舌體,去除無關干擾信息。精分割階段,利用深度卷積神經網絡處理上一階段提取出的感興趣區域,傳入特征增強網絡強化特征信息,然后分類器對圖像每一個像素點進行分類,實現舌體精分割。形態學優化,利用腐蝕膨脹操作對精分割后的圖像進行優化處理,進一步優化分割的結果。

圖1 舌象分割算法網絡結構
舌體分割的本質就是對舌象圖像中的每一像素點進行分類,舌象圖像中無關因素越多就會影響分類器的效率,影響分割的精度。所以減少舌象中無關因素的影響,準確地提取出感興趣區域,定位舌體區域是關鍵。
粗分割階段網絡的主干部分由帶深度可分離卷積[8]的Mobilenet_v1[9]組成,對舌象圖片進行卷積和池化操作,提取圖像深層次的抽象特征。舌象經過卷積池化后,筆者取出網絡的最后3 個有效特征層來構建特征金字塔,不同尺度的特征圖包含了不同層次的特征信息,將這些不同尺度的特征圖進行有效融合,融合舌象不同層次的特征信息,進行特征增強處理。特征增強后的圖像傳入全連接層,全連接層利用這3 個增強后的特征進一步分類回歸預測結果。
深度可分離卷積可以實現普通卷積一樣的結果,但其所需要的參數和運算量大大減少。深度可分離卷積模塊可以分為逐深度卷積和逐點卷積,逐深度卷積對輸入特征圖的每個通道分別使用一個卷積核,然后將所有卷積核的輸出再進行拼接得到它的最終輸出。逐點卷積實際為1×1卷積,在深度可分離卷積中主要起兩個方面的作用,一個作用是能夠自由改變輸出通道的數量,另一個作用是對逐深度卷積輸出的特征圖進行通道融合。
假設輸入特征圖的尺寸為Dk×Dk×M,卷積核的尺寸為DF×DF×M,數量為N。假設對應特征圖空間位置中的每一個點都會進行一次卷積操作,那么可知單個卷積共需要進行Dk×Dk×DF×DF×M次計算。這是因為特征圖空間維度共包含Dk×Dk個點,而對每個點進行卷積操作的計算量與卷積核的尺寸一致,即DF×DF×M,所以對單個卷積而言,其總計算量為Dk×Dk×DF×DF×M,對N個卷積的總計算量為Dk×Dk×DF×DF×M×N。對逐深度卷積計算量為Dk×Dk×DF×DF×M,逐點卷積計算量為Dk×Dk×M×N,所以深度可分離總計算量為Dk×Dk×DF×DF×M+Dk×Dk×M×N。對比可知深度可分離卷積的計算量與普通卷積的比為,可知深度可分離卷積計算效率遠優于普通卷積。
本文的精分割網絡模型是編碼-解碼結構,編碼部分網絡由帶空洞卷積的深度卷積神經網絡(DCNN)模塊[10]和帶空洞卷積的空間金字塔模塊[11]組成。深度卷積神經網絡模塊對粗分割網絡傳入的圖像進行下采樣特征提取,然后特征金字塔模塊對特征層利用不同rate 的空洞卷積進行特征提取,特征金字塔融合后再進行1×1 卷積壓縮特征。解碼部分主要作用就是將編碼模塊中的低維特征與空間特征金字塔融合的高維特征進行有效合并,然后進行上采樣恢復圖像大小并分割預測。
在圖像分割領域,DCNN 通常會多次使用卷積和池化操作,這樣可以提取圖像深層次的高維特征,但是經過卷積池化后特征圖會不斷變小,低層的邊界信息和語義信息會丟失,這樣就會降低分割的精度。為了解決類似問題,人們提出了空洞卷積模塊,它能代替下采樣和上采樣操作,且不會造成精度損失。
空洞卷積可以不丟棄任何信息并增大特征圖的感受野,讓每個輸出特征圖都包含大范圍信息。空洞卷積與正常的卷積相比,空洞卷積加入了一個叫作擴張率(dilation rate)的參數,該參數定義了卷積核處理數據時各值的間距。
圖2 中三幅3×3 卷積圖像中(a)為普通卷積,(b)(c)為不同擴張率的空洞卷積,圖像最外層的大框表示輸入圖像,黑色的圓點表示3×3 的卷積核,灰色框格表示的是卷積后的感受野。圖中(a)是普通的卷積過程(dilation rate= 1),卷積后的感受野為3,(b)是擴張率(dilation rate=2)的空洞卷積,卷積后的感受野為5,(c)是擴張率(dilation rate = 3)的空洞卷積,卷積后的感受野為8。從圖中可以看出,普通卷積可以看作空洞卷積的一種特殊情況,同樣一個3×3 的卷積,空洞卷積卻可以起到5×5、7×7 等卷積的效果,以上可以看出空洞卷積能夠不增加網絡的參數量,卻可以增大特征圖的感受野。

圖2 普通卷積和空洞卷積對比圖
空洞卷積感受野的計算公式如下,假設空洞卷積的卷積核大小為k,空洞數為d,則其等效卷積核大小k':
k'=k+(k-1) ×(d-1)
當前層網絡感受野計算,其中,RFi+1表示當前層的感受野,RFi表示上一層的感受野,k'表示卷積核的大小:
RFi+1=RFi+(k'-1) ×Si
Si表示之前所有層的步長的乘積(不包含本層):

形態學優化的主要作用是利用形態學圖像處理算法來進行圖像優化處理,分割后的圖像背景中會出現一些細小噪聲和小的連通域,邊緣會產生毛刺和不平整,經過形態學算法優化處理后會消除噪聲并平滑邊緣。形態學圖像優化算法常被用于圖像的預處理和后處理中,是一種不錯的圖像增強技術。
形態學優化算法過程:
(1)首先將分割后的圖像做二值化處理,然后選取適合舌體形狀大小的結構元素對二值化處理后的圖像進行多次腐蝕膨脹操作。
(2)將上一步腐蝕膨脹處理后的圖像轉換為布爾類型數組,以舌體為主要部分,消除舌體周圍小的連通區域即可以消除被誤分割的背景噪聲并平滑邊緣。
(3)將舌體分割輸入的原圖與布爾類型數組相乘就可以得到形態學優化后的分割圖像。
為了提高算法模型的泛化能力,本文的數據主要來源于兩種方式:(1)專業舌象儀在標準光源環境下對受試者進行舌象數據采集;(2)智能手機在非標準環境下對受試者進行舌象數據采集。最終通過篩選從數據庫中選取了1 025 張舌象圖片,然后隨機將這1 025 張圖片分成5等份,205張圖片作為測試集,820張圖片作為訓練集。
本文為了訓練分割網絡模型,應用tensorflow 框架搭建分割網絡,代碼實驗全在如下計算機上完成:Windows 10 系統,AMD R7 5800H Cpu,16 G Ram,NVIDIA GeForce GTX1660 4G Gpu,使用的編程語言為python。
圖像分割算法效果評價,一般是把算法網絡自動分割的圖像與實際分割圖像對比分析,計算出分割算法的好壞。本文采用像素精度(PA)、平均像素精度(MPA)和平均交并比(MIOU)3 個標準來對算法進行評判。計算公式如下:


式中:Pii為將第i類正確地分割為第i類的像素點數量,Pij為將第i類錯誤地分割為第j類的像素點數量,Pji為將第j類錯誤地分割為第i類的像素點數量,m+1 是類別個數。這三個評判指標取值都在0~1 之間,值越大說明分割精度越好。
將本文方法與Otsu算法、Grabcut算法[12]等傳統圖像分割方法以及基于深度學習思想的Segnet算法[13]進行對比分析,見圖3。第一列5 張舌象圖片中的前3 張為標準環境下舌象儀采集的數據,后2 張為智能手機在非標準環境下采集的數據,通過不同類型的數據集來驗證算法的魯棒性。
由圖3可以看出,Otsu算法根據自適應閾值來分割圖像,選取一個適當的閾值來對圖像進行像素級分類,此方法在標準環境下采集的圖像中分割效果不錯,但在非標準環境下采集的圖像中效果較差,由此可知Otsu算法在不同類型的數據集上魯棒性較差。Grabcut算法需要手動標記出分割目標區域,然后進行多次算法迭代運算分割出結果,算法不能自動進行,需要人為干預,分割效率也較低。Otsu 算法和Grabcut 算法都是傳統的圖像分割算法,利用的是舌象最底層的像素特征,顏色、形狀、紋理等。根據底層特征進行分割速度快,但精度不高,像舌體的顏色有時會和嘴唇的顏色相近,所以分割時會把嘴唇誤分割為舌體,并且算法在不同類型的舌象數據集上魯棒性較差。Segnet算法是基于深度學習的網絡模型,由圖3和表1數據可以看出其分割效率比傳統圖像分割算法要高出許多,而且可以在不同類型的舌象數據集上運行,并保持分割精度基本不變,所以其分割精度和魯棒性都較傳統的圖像分割算法精度更優。本文分割算法平均交并比達到了95.25%,比Segnet算法高3.10%,在不同類型的數據集上可以有效地避免多數像素的錯誤分類和漏分類,在大部分圖像上可以實現理想的分割效果,有較好的分割精度和魯棒性,可以滿足后續分類識別的精度要求。

表1 不同分割算法的結果(%)

圖3 不同分割算法結果對比
本文提出的分割算法網絡是二階段的,其中粗分割(Rsnet)提取感興趣區域減少背景因素干擾,精分割(Psnet)通過對舌體像素級的分類來實現精準分割,后接形態學優化算法來消除細小噪聲和平滑舌體邊緣信息,并通過實驗來驗證每部分在整體網絡中的作用大小,將各部分拆裝后再進行有效拼接,進行實驗對比分析。MIOU 越高表明像素分類正確率高,舌體分割精度高。從表2 可以看出直接使用精分割網絡,不經過粗分割網絡提取感興趣區域的分割精度有所下降,直接進入精分割網絡分割舌體,圖像中的背景因素會產生干擾,增大像素錯誤分類的概率。經過形態學優化算法處理后,舌體邊緣因背景因素引起的錯誤分割像素點被消除,減少了被錯誤分類的像素點數量,整體分割精度又得到了提升。從表2 中也可以看出經過粗分割后再精分割的算法精度比直接進行精分割的平均交并比高0.42%,說明經過粗分割提取目標區域,去除無關因素干擾對網絡整體精度的提升有很大幫助。形態學優化二階段分割出來的舌象平均交并比提升了0.05%,可以看出二階段分割網絡的整體效率高,基本不會出現較大區域的錯分像素點。

表2 不同拼接算法的結果(%)
本文針對傳統圖像分割算法需要預處理,人為干預、分割精度低等問題,提出了基于深度學習的二階段舌象分割網絡模型。首先對圖像目標進行感興趣區域提取,減少背景區域的干擾,然后利用空洞卷積在不損失信息的情況下增大特征圖感受野的方法來對圖像進行精準分割,提高分割精度,最后采用形態學優化算法對分割后的舌體圖像進行優化處理,消除細小噪聲和平滑邊緣。本文網絡采用級聯的方法來對舌象進行自動分割,分割精度高而且模型靈活并對計算機硬件要求低。與傳統圖像分割算法相比,本文網絡分割精度高、魯棒性好且自動化程度高。與其他主流分割算法相比,本文網絡在分割精度上比其有所提升,能夠滿足后續分類識別的條件要求。在接下來的研究工作中,我們可以在高精度分割網絡的基礎上,進一步研究舌象的分類識別,根據舌象識別相應病癥。