張澤宇,郭 斌,張?zhí)t
(新疆農(nóng)業(yè)大學(xué) 計算機(jī)與信息工程學(xué)院,新疆 烏魯木齊 830052)
隨著人工智能技術(shù)的飛速發(fā)展,人類社會正在從工業(yè)社會向智能社會邁進(jìn),信息智能化是當(dāng)今世界發(fā)展的趨勢,其將會對新世紀(jì)全球的經(jīng)濟(jì)產(chǎn)生深遠(yuǎn)的影響。新疆是國內(nèi)的養(yǎng)馬地區(qū)之一,有著悠久的養(yǎng)馬歷史及濃厚的馬文化底蘊。在馬匹登記測量檢測過程中,由于馬匹體型龐大,性格不如牛、羊等家畜溫和,使得測量工作難度加大。
隨著深度學(xué)習(xí)在計算機(jī)視覺領(lǐng)域的應(yīng)用,使得基于深度學(xué)習(xí)的圖像分析處理技術(shù)逐步深入到畜牧養(yǎng)殖的各個領(lǐng)域。
其中通過圖像來識別及測量動物的體尺數(shù)據(jù)成為當(dāng)今研究的熱點,而拍攝圖像分割結(jié)果的優(yōu)劣是一切通過圖像進(jìn)行動物行為識別、體尺數(shù)據(jù)測量、體重檢測、健康狀況分析的基礎(chǔ),圖像分割效果的優(yōu)劣決定了后續(xù)工作的可靠性。
基于深度學(xué)習(xí)的圖像分割方法是當(dāng)今計算機(jī)視覺領(lǐng)域的研究熱點。2014年Long等人[1]提出了FCN(fully convolutional networks)方法用于圖像語義分割,此算法使用反卷積進(jìn)行上采樣并將全連接網(wǎng)絡(luò)換為卷積網(wǎng)絡(luò),使得網(wǎng)絡(luò)模型可以輸入任意尺寸大小的圖片,并且輸出與原圖像相同大小的像素級分類結(jié)果。FCN開啟了利用全卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分割的熱潮。2015年Olaf Ronneberger等人[2]提出了U-Net算法,此算法廣泛應(yīng)用于生物醫(yī)學(xué)圖像分割,算法中應(yīng)用編碼層解碼層,對卷積加深處理,對數(shù)據(jù)的增強使得帶標(biāo)記數(shù)據(jù)需求量減少,使得算法在訓(xùn)練時間方面得以縮短優(yōu)化。2018年Liang-Chieh Chen等人[3-6]提出的Deeplab系列算法,引入空洞卷積(atrous convolution),在不改變圖像的全局信息下,增加了感受野,在特征圖縮小到相同倍數(shù)的情況下獲取圖像更多的全局信息,大大提高了算法的精準(zhǔn)度。使得在復(fù)雜多類圖片上的語義分割效果大幅提升。2018年He Kaiming等人[7]提出Mask R-CNN算法,此算法對物體進(jìn)行定位與分割,結(jié)合了目標(biāo)檢測與語義分割。在國內(nèi),白明月等[8]提出基于YCbCr空間改進(jìn)CV主動輪廓模型的分割方法,對具有復(fù)雜背景的羊體圖像進(jìn)行分割,此算法在分割之前需要手工勾畫,然后通過模型進(jìn)行分割,分割物體邊緣有待優(yōu)化。胡志偉等[9]提出基于VGG16與U-NET的全卷積神經(jīng)網(wǎng)絡(luò)模型,以30個視頻文件為原始數(shù)據(jù),從視頻中截取圖像作為數(shù)據(jù)集進(jìn)行訓(xùn)練驗證測試,實現(xiàn)了生豬輪廓提取,且分割像素精度(PA)達(dá)到94.32%,平均交并比(MIOU)達(dá)到86.60%。李林葳等[10]使用改進(jìn)的遺傳算法對OTSU算法進(jìn)行優(yōu)化,實現(xiàn)了生豬目標(biāo)提取,較原算法在計算時間上提升了5%。高云等[11]提出PigNet網(wǎng)絡(luò),在環(huán)境多變控制養(yǎng)殖箱中拍攝圖片作為數(shù)據(jù)集,解決粘連豬體的分割問題,實現(xiàn)豬體的實例分割。以上算法在有強光噪聲圖像中,還存在分割邊緣不清晰、輪廓模糊的問題。張新峰等[12]使用全卷積神經(jīng)網(wǎng)絡(luò)結(jié)合全連接條件場,在預(yù)訓(xùn)練Pascal voc2012數(shù)據(jù)集生成的模型參數(shù)基礎(chǔ)上,訓(xùn)練舌圖像,細(xì)化了分割舌體邊緣,由于在預(yù)訓(xùn)練數(shù)據(jù)集中并沒有舌圖像,使得模型參數(shù)過多,增加了模型文件存儲大小。
基于以上研究進(jìn)展,該文提出一種結(jié)合深度神經(jīng)網(wǎng)絡(luò)(DCCN)[13]與全連接條件隨機(jī)場[14]的分割算法,實現(xiàn)馬匹在不同光照環(huán)境下的語義分割。該模型以Xception[15]結(jié)構(gòu)為模型主干,使用兩種類型的神經(jīng)網(wǎng)絡(luò);加入空洞卷積的空間金字塔模塊(ASPP)[16]和編碼解碼架構(gòu)(encoder-decoder)[17]進(jìn)行語義分割,結(jié)合全連接條件隨機(jī)場優(yōu)化分割邊緣。通過空間金字塔模塊在不同分辨率上的圖片進(jìn)行池化操作以捕獲豐富的上下文信息,編碼解碼結(jié)構(gòu)實現(xiàn)物體的粗略邊界,高層特征提供語義信息,解碼層恢復(fù)馬匹邊界信息。全連接條件隨機(jī)場實現(xiàn)全局邊緣優(yōu)化,去除分割邊緣的噪聲,對圖像中所有的像素點建立邊緣勢能,從而實現(xiàn)細(xì)化分割效果。
傳統(tǒng)的分類網(wǎng)絡(luò)模型通過連續(xù)池化處理或其他下采樣層來整合多尺度上下文信息,這種方式會損失部分像素。該文使用空洞卷積進(jìn)行多尺度上下文信息聚合而不降低特征圖大小,并且空洞卷積支持感受野的指數(shù)增長??斩淳矸e的結(jié)構(gòu)如圖1所示,空洞卷積在二維運算中的表達(dá)式如下:
(1)
其中,y[i]為輸出特征圖,ω為卷積核,x[i]為輸入特征圖,參數(shù)r為擴(kuò)張率,用來控制空洞卷積的卷積間隔。當(dāng)參數(shù)r為1時,此時的卷積核為1×1的標(biāo)準(zhǔn)卷積核,可以通過更改擴(kuò)張率來自適應(yīng)地修改卷積的感受野。
深度分離卷積將一個完整的卷積運算分解為兩步進(jìn)行:(1)空間卷積(depthwise convolution);(2)逐點卷積(pointwise convolution)??臻g卷積針對每個輸入通道獨立執(zhí)行對空間的卷積,逐點卷積用于組合空間卷積的輸出。深度分離卷積結(jié)構(gòu)與常規(guī)卷積操作類似,可以用來提取特征,但是相比較于常規(guī)卷積操作,參數(shù)量與運算成本降低。深度分離卷積原理如圖2所示。
圖2 深度分離卷積原理
傳統(tǒng)卷積如圖2(a)所示,設(shè)輸入的特征圖大小為Df×Df×M,輸出特征圖大小為Df×Df×N,卷積核大小為Dk×Dk,則傳統(tǒng)卷積的計算量C1為:
C1=Df×Df×M×Df×Df×N
深度可分離卷積的計算量為空間卷積(depthwise convolution)與1×1卷積(pointwise convolution)的計算量之和,表示為C2:
C2=Dk×Dk×M×Df×Df+M×N×Df×Df
對應(yīng)圖2(b)、(c)。
目前流行的CNN都需要固定輸入圖片的尺寸,所以基本上都是通過剪裁(crop)和縮放(wrap)。這種處理方式存在三個弊端:①剪裁出的圖片可能不包含整個物體;②圖像的縮放會導(dǎo)致物體變形;③當(dāng)圖像中物體大小改變后,預(yù)定義的比例(scale)可能不適合物體的變化。
CNN網(wǎng)絡(luò)對于固定輸入的要求,主要在全連接的分類器層,而特征提取層可以通過控制子采樣比例和卷積核大小來調(diào)節(jié),從而接受各種比例和尺寸的輸入,得到固定的特征輸出。該文引入空間金字塔層(SPP),通過SPP來移除CNN對于固定輸入尺寸大小的要求,SPP操作類似深層的信息“融合”??臻g金字塔模型首先是輸入層,尺寸大小可以是任意的,然后進(jìn)行卷積運算,到最后一個卷積層輸出該層的特征圖(feature map),之后進(jìn)入由三個并行排列的3種不同參數(shù)的卷積核所在的SPP層,最終將3種不同參數(shù)卷積核產(chǎn)生的特征合并,形成一個固定大小的輸出。使用加入空洞卷積的空間金字塔模型,將上述三種不同參數(shù)卷積換為并行排列的4種不同擴(kuò)張率的空洞卷積,對圖像中的物體進(jìn)行多尺度特征的提取,每個通道提取到的特征進(jìn)行融合,再使用大小為1×1的卷積核進(jìn)行卷積操作,結(jié)構(gòu)如圖3所示。
圖3 加入空洞卷積的空間金字塔池化模型結(jié)構(gòu)
DCNN的固有特性包括定位的精度及目標(biāo)的分類,擁有多個最大池化層的深度網(wǎng)絡(luò)模型在目標(biāo)分類中的效果是顯著的,但是頂層節(jié)點的不變性及較大的感受野只能解決平滑的響應(yīng)。DCNN分?jǐn)?shù)圖(score maps)只能預(yù)測粗略的物體位置,卻不能精細(xì)地描繪出物體的邊緣輪廓。
條件隨機(jī)場(CRF)的作用是平滑分割圖片的噪聲。此模型通過耦合相鄰節(jié)點,以促進(jìn)空間上相鄰節(jié)點的像素獲得相同的標(biāo)簽,當(dāng)然這些短距離CRF的主要功能是消除通過人工標(biāo)記形成具有局部特征弱分類器的錯誤預(yù)測。
該文使用的深度全卷積神經(jīng)網(wǎng)絡(luò)不同于較弱的分類器,在分割預(yù)測中使用的架構(gòu)產(chǎn)生了分?jǐn)?shù)圖(score maps)以及語義標(biāo)簽的預(yù)測值。為了更好地細(xì)化邊緣輪廓,引入全連接條件隨機(jī)場,將DCNN模型與全連接條件隨機(jī)場結(jié)合,在DCNN分割的結(jié)果上進(jìn)一步優(yōu)化分割結(jié)果的邊緣。全連接條件隨機(jī)場的能量函數(shù)表達(dá)式如式(2):
(2)
其中,x是像素的標(biāo)簽,一元勢能定義為θi(xi)=-logP(xi),其中P(xi)表示由DCNN預(yù)測出的像素為i的馬匹標(biāo)簽值概率。二元勢能定義如式(3):
(3)
其中當(dāng)xi=xj時,μ(xi,xj)=0,否則為1。在波茨模型(Potts model)中,表示只懲罰具有不同標(biāo)簽值的節(jié)點。余下表達(dá)式在不同的特征空間中使用兩個高斯核,第一個核是像素位置P和RGB顏色I(xiàn)之間的雙向核,第二個核是依賴像素位置處理平滑的單核,ω為權(quán)重,超參數(shù)σα,σβ,σγ控制高斯核的尺度。
算法網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。該算法由2部分組成:(1)使用加入空洞卷積的空間金字塔池化模型和融合深度分離卷積的深度卷積網(wǎng)絡(luò);(2)全連接條件隨機(jī)場。
圖4 馬匹圖像分割算法結(jié)構(gòu)
首先將馬匹圖像輸入到深度卷積網(wǎng)絡(luò)中進(jìn)行特征提取,使用空洞卷積,在不增加參數(shù)的情況下,擴(kuò)大感受野大小,捕捉更多的尺度信息,并控制前向傳播過程中被計算的特征分辨率,加入深度分離卷積,將空洞卷積與深度分離卷積結(jié)合,構(gòu)成空洞分離卷積(atrous separable convolution),很大程度上減少了計算復(fù)雜度,利用ASPP模塊通過結(jié)合多個不同擴(kuò)張率(dilation rate)的深度分離卷積提取多尺度信息。之后利用全連接條件隨機(jī)場,對分割邊緣進(jìn)行優(yōu)化,算法模型的步驟分為:(1)圖像預(yù)處理;(2)建立馬匹圖像數(shù)據(jù)集;(3)人工標(biāo)注訓(xùn)練集、驗證集、測試集;(4)在DCNN上進(jìn)行遷移學(xué)習(xí);(5)生成語義分割模型并用測試集測試;(6)全連接條件隨機(jī)場優(yōu)化分割邊緣;(7)馬匹圖像分割結(jié)果評價。
實驗數(shù)據(jù)拍攝于新疆伊犁昭蘇縣昭蘇馬場及昭蘇種馬場,采集設(shè)備為索尼相機(jī)NEX-5T,圖像分辨率為3 658×2 000,馬匹圖像分早中晚不同時間段拍攝,按照采集的天氣條件可以分為光照充足晴天、陰天及陰雨天。景深13.3 m(±0.5),拍攝高度1.5 m,曝光率F5.6。馬匹數(shù)據(jù)集包含訓(xùn)練集2 000張、測試集100張,驗證集50張。原始圖像分別于馬匹的正面、左右前側(cè)、左右正面、左右后側(cè)面共7個方向拍攝。
預(yù)處理:原拍攝圖片使用Mac軟件Pixelmator進(jìn)行圖像翻轉(zhuǎn)用于數(shù)據(jù)集擴(kuò)充,以保證不同拍攝角度的訓(xùn)練樣本對算法準(zhǔn)確度的影響,然后使用TinyPNG進(jìn)行圖片的壓縮,之后使用MIT開源軟件Labelme[18]進(jìn)行圖像標(biāo)記,人工每標(biāo)記一匹馬的輪廓就賦予具體的馬匹標(biāo)簽,標(biāo)記完成后生成.json文件,之后使用Python腳本生成灰度圖。數(shù)據(jù)集原始圖像與標(biāo)記圖像如圖5所示。
圖5 圖像標(biāo)記標(biāo)簽圖
圖像分割模型在極客云GPU深度學(xué)習(xí)服務(wù)器上進(jìn)行訓(xùn)練,主機(jī)配置為:顯卡使用Titan RTX,顯存為24 G,處理器為英特爾E5-2680,內(nèi)存32 G。訓(xùn)練集、驗證集、測試集的所有圖像實驗前全部采用MIT開源標(biāo)記軟件Labelme進(jìn)行人工標(biāo)注。訓(xùn)練過程中網(wǎng)絡(luò)參數(shù)分別設(shè)置為:基礎(chǔ)學(xué)習(xí)率(base_lear-ning_rate)設(shè)置為0.000 1,學(xué)習(xí)率的衰減率(learning_rate_decay_rate)設(shè)置為0.1,訓(xùn)練循環(huán)次數(shù)(training_steps)設(shè)置為12 000,批處理數(shù)據(jù)量大小(batch_size)設(shè)置為4,訓(xùn)練裁剪尺寸(train_crop_size)設(shè)置為513×513。
本數(shù)據(jù)集中分割案例為馬匹圖像分割,屬于2分類問題,其中背景占了很大比例,故設(shè)置的比例為1∶10。Pascal voc圖像語義分割數(shù)據(jù)集上有21個類別,其中就包括馬、牛等動物的數(shù)據(jù)。因此該文基于DCNN在Pascal Voc上的訓(xùn)練模型,之后加入馬匹圖像數(shù)據(jù)集進(jìn)行遷移學(xué)習(xí),使得網(wǎng)絡(luò)可以更準(zhǔn)確地學(xué)習(xí)馬匹特征,大幅度減少了訓(xùn)練模型的時間。
評價分割結(jié)果指標(biāo)分別為像素精度(pixel accuracy,PA)、均像素精度(mean pixel accuracy,MPA)與均交并比(mean intersection over union,MIOU),各項指標(biāo)的定義式如下:
(6)
其中,PA表示正確標(biāo)記的像素占總像素的比,反映出分割像素的準(zhǔn)確性;MIOU表示真實值與預(yù)測像素之間的交集并集之比,能充分反映模型分割位置的準(zhǔn)確性及分割區(qū)域的完整性。上述指標(biāo)為衡量圖像語義分割的標(biāo)準(zhǔn)。
網(wǎng)絡(luò)分割效果受不同擴(kuò)張率參數(shù)的空洞卷積影響。對比結(jié)果如表1。實驗中卷積核尺寸大小為3×3,ASPP模塊中每一個分支的空洞卷積擴(kuò)張率參數(shù)r不同,其中ASPP-8代表擴(kuò)張率r分別為(1,8,16,24),ASPP-6代表擴(kuò)張率r為(1,6,12,18),ASPP-4代表擴(kuò)張率r為(1,4,8,12),ASPP-2代表擴(kuò)張率r為(1,2,4,6)。在使用加入空洞卷積的空間金字塔模塊中,ASPP-6:(1,6,12,18)的MIOU最高,在經(jīng)過全連接條件隨機(jī)場處理后,MIOU值達(dá)到92.8%DCNN在不同網(wǎng)絡(luò)基礎(chǔ)(backbone)上的分割結(jié)果對比圖,其中包括Mobilenet[19]和Xception[15],以及提出的算法的分割結(jié)果,如圖6所示。
表1 不同擴(kuò)張率參數(shù)對算法分割的影響
圖6 分割結(jié)果
提出了結(jié)合深度卷積神經(jīng)網(wǎng)絡(luò)和全連接條件隨機(jī)場算法,結(jié)合空洞卷積、深度分離卷積和空間金字塔池化模型,在深度卷積神經(jīng)網(wǎng)絡(luò)上通過自己建立的馬匹圖像數(shù)據(jù)集進(jìn)行遷移學(xué)習(xí),最后使用全連接條件隨機(jī)場完成最后的分割邊緣優(yōu)化,MIOU值達(dá)到92.8%。解決了強光照下分割效果不清晰、效果不好和分割前需要人工手動標(biāo)注分割候選區(qū)等問題。實現(xiàn)馬匹在不同光照環(huán)境下的語義分割。在原模型上分割精度提升3.8%。
該方法具有穩(wěn)定有效的特性,模型分割的馬匹個體輪廓清晰,從而為深度卷積神經(jīng)網(wǎng)絡(luò)技術(shù)在馬匹上的應(yīng)用提供了思路,為通過計算機(jī)視覺估測馬匹體尺體重提供了技術(shù)支持。