迪力夏提·多力昆,張太紅,馮向萍
(新疆農業大學計算機與信息工程學院,新疆烏魯木齊 830052)
隨著現代馬產業的不斷發展,新疆馬產業的管理平臺中馬匹登記工作已成為最基礎的一項工作[1],馬匹外貌特征作為馬資源信息的一項重要基礎資料,是指馬匹局部的外貌特征,可作為辨別毛色相同個體的識別標志。目前在馬匹登記工作中仍需人工在系統中繪制馬匹外貌別征,存在不好畫、畫不好、畫不像、工作量大、人工成本高、效率低等問題。隨著登記馬匹數量的日益增長,這些問題迫切需要得以解決。
自2012 年以來,AlexNet[2]、VGG、Inception[3]、ResNet[4]、Mask R-CNN[5-6]等網絡模型的提出,深度學習方法在圖像識別方面取得了優異成績。該文提出一種基于Mask R-CNN 的馬匹四肢別征提取的方法,為馬品種登記工作中的馬匹外貌特征自動標記提供了技術基礎。
Mask R-CNN 框架不僅在其前身Faster R-CNN的基礎上實現了更高的性能和更快速度的目標檢測,更是為了實現實例分割引入了Mask 分支,使圖片中的目標以像素級別進行了分割。Mask R-CNN是一種通用性很強的實例分割框架,主要可以分為特征金字塔網絡、RPN[7]網絡、ROI Align、頭部網絡四部分。Mask R-CNN 網絡結構如圖1 所示。

圖1 Mask R-CNN網絡結構
該文以ResNet101 作為骨干特征提取網絡,使用FPN 網絡預測生成的不同尺度的特征圖,并使不同尺度特征圖進行融合,獲取不同分辨率、不同語義強度的特征[8]。特征金字塔網絡結構如圖2 所示。

圖2 特征金字塔網絡結構
Mask R-CNN 框架中的RPN 網絡是從FPN 生成的特征圖中創建了約兩萬個候選框(Anchor)[9]。RPN需要對FPN 生成的5 個特征圖創建不同尺寸的候選框,并對每一張特征圖的所有像素點建立3 個不同尺寸的預測框[10]。如圖3 所示,RPN 對于特征圖的每個位置進行滑窗,通過不同尺寸及不同比例的K個Anchor 產生K個256 維的向量,使每一個區域進行前景與背景的檢測,并獲得其具體位置。

圖3 RPN算法示意圖
ROI Align 是Mask R-CNN 中提出來的對ROI 區域進行標準化處理的方法,它提升了Faster R-CNN中的ROI Pool 的精度,使得標準化后的數值從整型提高到浮點型,提升了整個模型的檢測精度。ROI Align 算法示意圖如圖4 所示。

圖4 ROI Align算法示意圖
常見的實例分割是在分割完成后再進行分類,而Mask R-CNN 框架則是分類和分割同時實現[11]。但在測試時,需要先經過目標分類和回歸,之后才對目標邊框內的圖像進行Mask 回歸,決定目標的像素點分類。這意味著Mask 分支并不需要對目標類別進行分類,而僅僅需要分辨前后景,即對邊框內的圖像做一次語義分割,通過這種方式,巧妙地實現了實例分割。
與Faster R-CNN 相比,Mask R-CNN 框架的頭部網絡除了目標分類和邊界回歸外,由ROI Align 標準化的特征圖穿過兩個全連接層,以實現目標分類和回歸。該部分與RPN 網絡中的背景分類和邊界回歸基本相同,其分割任務主要通過擴展分支來實現。
該文算法運行在Python 3.6、Tensorflow 1.14.0、Keras 2.1.5 開發環境中,其具體配置如表1 所示。

表1 實驗環境配置
通過查詢馬匹外貌特征知識網站與書籍等相關資料,馬匹四肢的別征有蹄冠白、系白、球節白、1/2管白和管白共5 種類型。為了構建馬匹四肢別征的數據集,通過新疆馬業協會提供的馬匹圖像和新疆伊犁昭蘇馬場實地拍攝的圖像,篩選出擁有完整馬匹的圖像1 850 張。通過網絡爬蟲獲取的圖像,篩選出擁有完整馬匹的圖像460 張,圖像數據集共計2 310 張。并通過LabelMe 圖像標注工具標注完整馬匹數量為2 310 個,標注馬匹四肢數量總計6 551 個,別征數量總計1 823 個,具體數目如表2 所示。

表2 標注類別與數量
因無法大規模制作馬匹四肢別征的數據集,為防止出現模型過擬合或模型泛化能力差等問題,該文在模型訓練時使用Python 中常見的imgaug 庫(數據擴增庫)進行數據擴增。通過在線擴增方法在模型訓練的過程中,對每個epoch(迭代次數)的所有樣本圖像都進行一次變換。
該文在數據擴增時選用的變換方法是鏡像、裁剪、平移、旋轉、高斯模糊、對比度變換、高斯擾動、雙邊濾波、HSV 變換、飽和度變換、色調變換、灰度變換等[12-15],并通過1~3 種隨機組合的變換方式形成,使擴增數據接近測試數據,從而提高預測精度。
通過Mask R-CNN 框架在COCO 預訓練權重上訓練了單個模型、馬匹模型、四肢模型和別征模型,并做了對照實驗,針對馬匹四肢別征數據集,采用平均準確率(AP)和分割的評價標準交并比(IOU)評價模型檢測結果[16],IOU 計算公式見式(1)。4 個模型中的單個模型是使用所有的10 個類別進行訓練的模型。馬匹模型、四肢模型和別征模型是指分別用馬匹類別、四肢類別和別征類別進行訓練的模型。馬匹類別數量為一個,四肢類別為左前腿、右前腿、左后腿和右后腿共4 個,別征類別為蹄冠白、系白、球節白、1/2 管白和管白共5 個。

其中,A表示預測出來的目標區域面積,B表示手工標定的目標區域面積,IOU 指標越高,表示預測結果和標定結果的重合率越高。將IOU 從0.5 到0.95以0.05為間隔,測試10次,選取10次測試的平均值作為AP 值。AP50 是IOU 為50%情況下的精確度,AP75 是IOU 為75%情況下的精確度。模型分割精度如表3 所示。

表3 模型分割精度
通過單個模型、馬匹模型、四肢模型和別征模型的分割效果可知,單個模型的馬匹、四肢和別征的像素點出現了歧義性,無法使四肢的別征與四肢一一對應。通過馬匹模型、四肢模型和別征模型聯級的方式確定每個四肢的別征歸屬的馬腿,能夠在馬匹外貌特征圖示中精確標記四肢別征。
目前,新疆馬業協會在馬匹登記時,主要以手工方式在紙質材料、網頁登記系統和安卓應用中對馬匹外貌特征圖示進行描紅標記。為解決實際問題,使用自動化方式減少人工成本,通過馬匹模型、四肢模型和別征模型聯級的方式對馬匹圖像進行處理。
首先以馬匹模型分割圖像為基礎,過濾背景中誤拍的非完整馬匹。再以四肢模型對完整馬匹圖像中的四肢分別進行檢測與分割。然后以分割的四肢圖像為基礎,使用別征模型對四肢圖像分別進行別征的檢測與分割,確保別征與四肢能夠一一對應。
最后將別征分割圖像以馬匹外貌特征圖示中的對應馬腿寬度進行同比例縮放,再以馬匹外貌特征圖示的對應馬腿的馬蹄子的左上角(別征部位的左下角)為原點,分別將別征分割圖像繪制到馬匹外貌特征圖示中。自動標記公式見式(2)和式(3),Ax1為別征模型分割結果的左上角x軸坐標,Ax2為別征模型分割結果的右上角x軸坐標,Bx1為馬匹外貌特征圖示的對應馬腿別征部位的左下角x軸坐標,Bx2為馬匹外貌特征圖示的對應馬腿別征部位的右下角x軸坐標,P為同比例縮放的比例值。Ay1為別征模型分割結果的左上角y軸坐標,Ay2為別征模型分割結果的左下角y軸坐標,By1為馬匹外貌特征圖示的對應馬腿別征部位的左下角y軸坐標,Y為將別征分割結果同比例縮放后在馬匹外貌特征圖中繪制的別征高度。

最終將目標馬腿左下角x軸的值和計算出來的Y值作為自動標記的錨點,并進行標記。
因圖像中的馬匹站姿為非標準站姿,在繪制別征時可能會超出馬匹外貌別征圖示中的繪制范圍,為解決該問題,專門制作了馬匹外貌特征圖示的馬匹內部透明版,將透明版圖像覆蓋在已標記好的圖像中,將超出繪制范圍的標記部分進行覆蓋抹除,最終解決了馬匹四肢別征的自動標記的問題。
在馬匹四肢別征繪制完成之后,通過四肢模型與別征模型的分類結果,在馬匹外貌別征描述中將繪制結果描述出來,描述結果如下:左前腿1/2 管白,右前腿系白,右后腿1/2 管白,左后腿1/2 管白,實現馬匹外貌特征的描述部分。
該文提出一種基于Mask R-CNN 的馬匹四肢別征提取方法,通過過濾誤拍或殘缺馬匹,匹配別征與四肢之間的一一對應關系,定位分割后的別征在馬匹外貌特征圖示中的準確位置,之后進行馬匹外貌特征圖示的自動標記,最終通過自制馬匹外貌別征圖示的馬匹內部透明版,將超出繪制范圍內的標記進行了覆蓋抹除,解決了生成馬匹護照時對馬匹外貌特征圖示的自動標記問題。
由于馬匹面部圖像和馬匹軀干部位有烙印號的圖像太少,該文只研究了針對馬匹四肢的別征自動標記方法,沒有考慮其他部位。未來考慮制作馬匹外貌特征的所有別征數據集,并通過關鍵點定位等方法,解決馬匹在非標準站姿下進行馬匹外貌特征自動標記的問題。