迪力夏提·多力昆,張?zhí)t,馮向萍
(新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,新疆烏魯木齊 830052)
隨著現(xiàn)代馬產(chǎn)業(yè)的不斷發(fā)展,新疆馬產(chǎn)業(yè)的管理平臺中馬匹登記工作已成為最基礎(chǔ)的一項工作[1],馬匹外貌特征作為馬資源信息的一項重要基礎(chǔ)資料,是指馬匹局部的外貌特征,可作為辨別毛色相同個體的識別標(biāo)志。目前在馬匹登記工作中仍需人工在系統(tǒng)中繪制馬匹外貌別征,存在不好畫、畫不好、畫不像、工作量大、人工成本高、效率低等問題。隨著登記馬匹數(shù)量的日益增長,這些問題迫切需要得以解決。
自2012 年以來,AlexNet[2]、VGG、Inception[3]、ResNet[4]、Mask R-CNN[5-6]等網(wǎng)絡(luò)模型的提出,深度學(xué)習(xí)方法在圖像識別方面取得了優(yōu)異成績。該文提出一種基于Mask R-CNN 的馬匹四肢別征提取的方法,為馬品種登記工作中的馬匹外貌特征自動標(biāo)記提供了技術(shù)基礎(chǔ)。
Mask R-CNN 框架不僅在其前身Faster R-CNN的基礎(chǔ)上實現(xiàn)了更高的性能和更快速度的目標(biāo)檢測,更是為了實現(xiàn)實例分割引入了Mask 分支,使圖片中的目標(biāo)以像素級別進行了分割。Mask R-CNN是一種通用性很強的實例分割框架,主要可以分為特征金字塔網(wǎng)絡(luò)、RPN[7]網(wǎng)絡(luò)、ROI Align、頭部網(wǎng)絡(luò)四部分。Mask R-CNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
該文以ResNet101 作為骨干特征提取網(wǎng)絡(luò),使用FPN 網(wǎng)絡(luò)預(yù)測生成的不同尺度的特征圖,并使不同尺度特征圖進行融合,獲取不同分辨率、不同語義強度的特征[8]。特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)
Mask R-CNN 框架中的RPN 網(wǎng)絡(luò)是從FPN 生成的特征圖中創(chuàng)建了約兩萬個候選框(Anchor)[9]。RPN需要對FPN 生成的5 個特征圖創(chuàng)建不同尺寸的候選框,并對每一張?zhí)卣鲌D的所有像素點建立3 個不同尺寸的預(yù)測框[10]。如圖3 所示,RPN 對于特征圖的每個位置進行滑窗,通過不同尺寸及不同比例的K個Anchor 產(chǎn)生K個256 維的向量,使每一個區(qū)域進行前景與背景的檢測,并獲得其具體位置。
圖3 RPN算法示意圖
ROI Align 是Mask R-CNN 中提出來的對ROI 區(qū)域進行標(biāo)準(zhǔn)化處理的方法,它提升了Faster R-CNN中的ROI Pool 的精度,使得標(biāo)準(zhǔn)化后的數(shù)值從整型提高到浮點型,提升了整個模型的檢測精度。ROI Align 算法示意圖如圖4 所示。
圖4 ROI Align算法示意圖
常見的實例分割是在分割完成后再進行分類,而Mask R-CNN 框架則是分類和分割同時實現(xiàn)[11]。但在測試時,需要先經(jīng)過目標(biāo)分類和回歸,之后才對目標(biāo)邊框內(nèi)的圖像進行Mask 回歸,決定目標(biāo)的像素點分類。這意味著Mask 分支并不需要對目標(biāo)類別進行分類,而僅僅需要分辨前后景,即對邊框內(nèi)的圖像做一次語義分割,通過這種方式,巧妙地實現(xiàn)了實例分割。
與Faster R-CNN 相比,Mask R-CNN 框架的頭部網(wǎng)絡(luò)除了目標(biāo)分類和邊界回歸外,由ROI Align 標(biāo)準(zhǔn)化的特征圖穿過兩個全連接層,以實現(xiàn)目標(biāo)分類和回歸。該部分與RPN 網(wǎng)絡(luò)中的背景分類和邊界回歸基本相同,其分割任務(wù)主要通過擴展分支來實現(xiàn)。
該文算法運行在Python 3.6、Tensorflow 1.14.0、Keras 2.1.5 開發(fā)環(huán)境中,其具體配置如表1 所示。
表1 實驗環(huán)境配置
通過查詢馬匹外貌特征知識網(wǎng)站與書籍等相關(guān)資料,馬匹四肢的別征有蹄冠白、系白、球節(jié)白、1/2管白和管白共5 種類型。為了構(gòu)建馬匹四肢別征的數(shù)據(jù)集,通過新疆馬業(yè)協(xié)會提供的馬匹圖像和新疆伊犁昭蘇馬場實地拍攝的圖像,篩選出擁有完整馬匹的圖像1 850 張。通過網(wǎng)絡(luò)爬蟲獲取的圖像,篩選出擁有完整馬匹的圖像460 張,圖像數(shù)據(jù)集共計2 310 張。并通過LabelMe 圖像標(biāo)注工具標(biāo)注完整馬匹數(shù)量為2 310 個,標(biāo)注馬匹四肢數(shù)量總計6 551 個,別征數(shù)量總計1 823 個,具體數(shù)目如表2 所示。
表2 標(biāo)注類別與數(shù)量
因無法大規(guī)模制作馬匹四肢別征的數(shù)據(jù)集,為防止出現(xiàn)模型過擬合或模型泛化能力差等問題,該文在模型訓(xùn)練時使用Python 中常見的imgaug 庫(數(shù)據(jù)擴增庫)進行數(shù)據(jù)擴增。通過在線擴增方法在模型訓(xùn)練的過程中,對每個epoch(迭代次數(shù))的所有樣本圖像都進行一次變換。
該文在數(shù)據(jù)擴增時選用的變換方法是鏡像、裁剪、平移、旋轉(zhuǎn)、高斯模糊、對比度變換、高斯擾動、雙邊濾波、HSV 變換、飽和度變換、色調(diào)變換、灰度變換等[12-15],并通過1~3 種隨機組合的變換方式形成,使擴增數(shù)據(jù)接近測試數(shù)據(jù),從而提高預(yù)測精度。
通過Mask R-CNN 框架在COCO 預(yù)訓(xùn)練權(quán)重上訓(xùn)練了單個模型、馬匹模型、四肢模型和別征模型,并做了對照實驗,針對馬匹四肢別征數(shù)據(jù)集,采用平均準(zhǔn)確率(AP)和分割的評價標(biāo)準(zhǔn)交并比(IOU)評價模型檢測結(jié)果[16],IOU 計算公式見式(1)。4 個模型中的單個模型是使用所有的10 個類別進行訓(xùn)練的模型。馬匹模型、四肢模型和別征模型是指分別用馬匹類別、四肢類別和別征類別進行訓(xùn)練的模型。馬匹類別數(shù)量為一個,四肢類別為左前腿、右前腿、左后腿和右后腿共4 個,別征類別為蹄冠白、系白、球節(jié)白、1/2 管白和管白共5 個。
其中,A表示預(yù)測出來的目標(biāo)區(qū)域面積,B表示手工標(biāo)定的目標(biāo)區(qū)域面積,IOU 指標(biāo)越高,表示預(yù)測結(jié)果和標(biāo)定結(jié)果的重合率越高。將IOU 從0.5 到0.95以0.05為間隔,測試10次,選取10次測試的平均值作為AP 值。AP50 是IOU 為50%情況下的精確度,AP75 是IOU 為75%情況下的精確度。模型分割精度如表3 所示。
表3 模型分割精度
通過單個模型、馬匹模型、四肢模型和別征模型的分割效果可知,單個模型的馬匹、四肢和別征的像素點出現(xiàn)了歧義性,無法使四肢的別征與四肢一一對應(yīng)。通過馬匹模型、四肢模型和別征模型聯(lián)級的方式確定每個四肢的別征歸屬的馬腿,能夠在馬匹外貌特征圖示中精確標(biāo)記四肢別征。
目前,新疆馬業(yè)協(xié)會在馬匹登記時,主要以手工方式在紙質(zhì)材料、網(wǎng)頁登記系統(tǒng)和安卓應(yīng)用中對馬匹外貌特征圖示進行描紅標(biāo)記。為解決實際問題,使用自動化方式減少人工成本,通過馬匹模型、四肢模型和別征模型聯(lián)級的方式對馬匹圖像進行處理。
首先以馬匹模型分割圖像為基礎(chǔ),過濾背景中誤拍的非完整馬匹。再以四肢模型對完整馬匹圖像中的四肢分別進行檢測與分割。然后以分割的四肢圖像為基礎(chǔ),使用別征模型對四肢圖像分別進行別征的檢測與分割,確保別征與四肢能夠一一對應(yīng)。
最后將別征分割圖像以馬匹外貌特征圖示中的對應(yīng)馬腿寬度進行同比例縮放,再以馬匹外貌特征圖示的對應(yīng)馬腿的馬蹄子的左上角(別征部位的左下角)為原點,分別將別征分割圖像繪制到馬匹外貌特征圖示中。自動標(biāo)記公式見式(2)和式(3),Ax1為別征模型分割結(jié)果的左上角x軸坐標(biāo),Ax2為別征模型分割結(jié)果的右上角x軸坐標(biāo),Bx1為馬匹外貌特征圖示的對應(yīng)馬腿別征部位的左下角x軸坐標(biāo),Bx2為馬匹外貌特征圖示的對應(yīng)馬腿別征部位的右下角x軸坐標(biāo),P為同比例縮放的比例值。Ay1為別征模型分割結(jié)果的左上角y軸坐標(biāo),Ay2為別征模型分割結(jié)果的左下角y軸坐標(biāo),By1為馬匹外貌特征圖示的對應(yīng)馬腿別征部位的左下角y軸坐標(biāo),Y為將別征分割結(jié)果同比例縮放后在馬匹外貌特征圖中繪制的別征高度。
最終將目標(biāo)馬腿左下角x軸的值和計算出來的Y值作為自動標(biāo)記的錨點,并進行標(biāo)記。
因圖像中的馬匹站姿為非標(biāo)準(zhǔn)站姿,在繪制別征時可能會超出馬匹外貌別征圖示中的繪制范圍,為解決該問題,專門制作了馬匹外貌特征圖示的馬匹內(nèi)部透明版,將透明版圖像覆蓋在已標(biāo)記好的圖像中,將超出繪制范圍的標(biāo)記部分進行覆蓋抹除,最終解決了馬匹四肢別征的自動標(biāo)記的問題。
在馬匹四肢別征繪制完成之后,通過四肢模型與別征模型的分類結(jié)果,在馬匹外貌別征描述中將繪制結(jié)果描述出來,描述結(jié)果如下:左前腿1/2 管白,右前腿系白,右后腿1/2 管白,左后腿1/2 管白,實現(xiàn)馬匹外貌特征的描述部分。
該文提出一種基于Mask R-CNN 的馬匹四肢別征提取方法,通過過濾誤拍或殘缺馬匹,匹配別征與四肢之間的一一對應(yīng)關(guān)系,定位分割后的別征在馬匹外貌特征圖示中的準(zhǔn)確位置,之后進行馬匹外貌特征圖示的自動標(biāo)記,最終通過自制馬匹外貌別征圖示的馬匹內(nèi)部透明版,將超出繪制范圍內(nèi)的標(biāo)記進行了覆蓋抹除,解決了生成馬匹護照時對馬匹外貌特征圖示的自動標(biāo)記問題。
由于馬匹面部圖像和馬匹軀干部位有烙印號的圖像太少,該文只研究了針對馬匹四肢的別征自動標(biāo)記方法,沒有考慮其他部位。未來考慮制作馬匹外貌特征的所有別征數(shù)據(jù)集,并通過關(guān)鍵點定位等方法,解決馬匹在非標(biāo)準(zhǔn)站姿下進行馬匹外貌特征自動標(biāo)記的問題。