張婧婧,程蕓濤
(新疆農(nóng)業(yè)大學 計算機與信息工程學院,新疆 烏魯木齊 830052)
基于圖像信息處理方法提取動物體尺的研究領(lǐng)域,國內(nèi)相關(guān)研究始于二維圖像的分析[1]。例如,江杰等人利用背景差分法提取羊體輪廓[2-3];劉波等人運用自動閾值分割與形態(tài)學處理進行輪廓分割[4];趙忠鑫等人研究了基于Kinect傳感器搭建的羊體尺測量系統(tǒng),利用深度圖像的多元信息提取羊的體尺[5];譚鶴群等人利用機器視覺和數(shù)字圖像處理技術(shù)建立白鰱體長方向截面積分布模型[6];徐建瑜等人利用機器視覺技術(shù)測量出魚體側(cè)面積,并將面積與質(zhì)量進行數(shù)據(jù)擬合建立模型,評價魚的質(zhì)量[7]。相較于國內(nèi)研究現(xiàn)狀,國外對動物體尺進行測度的設(shè)備專利較多[8]。測度動物的體型,建立結(jié)構(gòu)化專用裝置,其優(yōu)勢在于方便圖像采集和標定,實現(xiàn)對感興趣參照點進行線性測量[9],不足之處在于建立結(jié)構(gòu)化裝置成本較高,還必須誘導動物到指定位置。此外,激光或其他點云獲取設(shè)備也適用于體尺測量[10-11],但對測量環(huán)境要求較高。
目前,依據(jù)新疆馬業(yè)協(xié)會發(fā)布的地方標準,馬體尺測量的主要指標包括馬的體長、體高、胸圍、管圍、體重等[12]。除體重外,其他四項體尺指標的測量可參考圖1的測量標準。
圖1 馬體尺測量的示意圖
體高:從鬐甲頂點到地面的垂直距離;
體長:從肩端到臀端的直線距離;
胸圍:在肩腳骨后緣垂直繞胸一周的長度;
管圍:左前管部上1/3部的下端最細處,水平繞其一周的長度。
如圖1所示,A-A線、B-B線、C-C線、D-D線分別為馬的體高、體長、胸圍、管圍。目前人工測量馬體的身高、體長過程,通常采用的工具包括卷尺、測杖、圓形測定器及測角計等,測量中需要與馬體直接接觸?;谏疃葘W習及平面測量技術(shù),本設(shè)計獲取了馬體尺的四項指標,并初步完成馬體尺測量的可視化系統(tǒng)設(shè)計,旨在探討馬體尺的信息化提取與非接觸測量的主要方法。
為了解決馬體與背景的分割問題,基于MS-COCO數(shù)據(jù)集,采用深度學習的單級目標檢測器YOLO進行馬體的目標檢測,并通過一個簡單的全卷積網(wǎng)絡(luò)YOLACT實現(xiàn)了馬體與背景實時的實例分割測試。
YOLO檢測器將目標檢測視為回歸問題,省去了region proposal過程,實現(xiàn)了端到端的網(wǎng)絡(luò),可直接得到輸入圖像的類別及位置。該算法以速度著稱,且具有更好的實時性,適合應用于實際的檢測任務。
在馬體目標檢測過程中,打開一幀馬體圖像,并使用YOLO v3進行目標檢測,將獲得帶有分類類別、位置坐標、外接邊框?qū)捀咝畔⒌鸟R體對象,如圖2(b)所示,篩選出其中類別為horse的檢測對象,并去除類別置信度較小的對象,檢測效果如圖2所示。
圖2 YOLO目標檢測的測試
快速、單階段的實例分割模型YOLACT將馬體與背景的分割過程分為兩個并行任務:
一是利用FCN來產(chǎn)生一系列與待測圖像大小一致的“prototype masks”,且不依賴于特定實例。
二是為目標檢測分支添加一個輸出,對每個anchor預測“mask coefficients”,即實例的表示編碼為prototype域的表達。
最后使用NMS對所預測的mask進行處理。
設(shè)計中采用YOLACT進行馬體與背景的分割,旨在發(fā)揮其在MS-COCO數(shù)據(jù)集上約30 mAP的快速分割表現(xiàn),對伊犁馬匹圖像進行YOLACT實例分割的效果如圖3所示。
圖3 YOLACT實例分割的效果
基于馬體的分割圖像,其體尺的測量需建立與圖像之間的準確關(guān)聯(lián),才能獲取有效數(shù)據(jù)。如體高、體長屬于平面測距,可通過像素距離獲取比例相關(guān)的體尺尺寸;而馬體的胸圍與管圍數(shù)據(jù)屬于立體指標,在單幅平面圖像中獲取該指標的技術(shù)受限,本設(shè)計中借助馬體尺各指標間的回歸特性,同時引入兩項平面參數(shù),通過擬合多元線性回歸方程,實現(xiàn)馬體三維指標的預測。
基于Matlab仿真平臺[13],借助其GUI工具,馬體尺測量系統(tǒng)的開發(fā)需要依次完成界面設(shè)計、圖像導入、坐標定位、距離測量、回歸分析、測量值篩選、數(shù)據(jù)顯示及保存等流程。
(1)界面設(shè)計。
基于線性回歸理論,設(shè)計進行了馬體尺三維預測,而隨馬體年齡變化,其體尺的回歸特性也不盡相同[14-15]。同一品種馬形體變化的年齡可細分為0~10歲的11個階段,因此系統(tǒng)登錄后的界面中首先布置了11個Matlab-GUI工具中的單選按鈕:radiobutton,用于選擇待測馬匹相應的年齡段,旨在區(qū)別不同馬體年齡的體尺特征。
系統(tǒng)主界面設(shè)計中采用了包括axes、edit、pushbutton及text等Matlab-GUI工具中提供的各類控件。鑒于系統(tǒng)面板的尺寸有限,測量馬體的體高、體長與其胸徑、管徑數(shù)據(jù)采用了不同的axes,以利于在獲取數(shù)據(jù)中降低操作的失誤率。
(2)導入圖像。
限于前期系統(tǒng)面板的設(shè)計尺寸,實驗中首先進行圖像平面測距值與馬體人工測量值的比例匹配,選取約220*186像素的伊犁馬體圖像并以.jpg、.tif等文件格式保存于Matlab工程文件中,旨在用于axes中嵌入圖像。
(3)坐標定位。
在馬的體高、體長的測量中,只需存儲鼠標點擊前后的兩次坐標并計算兩者之間距離,即可測量其相關(guān)尺寸。但受面板尺寸影響,為了準確定位鼠標,筆者為系統(tǒng)添加了圖像的局部放大功能,將關(guān)鍵特征點以2倍像素放大,加強定位精度。
(4)距離測量。
確認鼠標點擊的任意兩點A1、A2的像素坐標后,編寫dist()函數(shù),或直接調(diào)用Matlab中的pdist()函數(shù)即可獲得兩像素點間的距離,即為體高、體長數(shù)據(jù)。
(5)回歸分析。
基于線性回歸理論,獲取數(shù)量相當?shù)鸟R體尺樣本值后,挑選各自的因變量、自變量,即可建立胸圍、管圍的多元線性回歸方程,如式(1)所示:
y=b0+b1x1+…+bpxp+e
(1)
馬體尺指標中,適當選取自變量及應變量x1,x2,…,xp,y應遵循其相關(guān)性原則,調(diào)用corrcoef()函數(shù),可以得到馬體的體高、體長、胸圍、管圍、胸徑、管徑(胸徑、管徑測量指標為新引入的二維參數(shù),其實際坐標與圖1中C-C、D-D點重合)之間相關(guān)程度的數(shù)據(jù),選取相關(guān)程度高的變量即可擬合顯著性較強的回歸方程。本設(shè)計中采用Matlab提供的多元函數(shù)regress完成了胸圍、管圍的回歸分析。
根據(jù)馬體尺指標的相關(guān)度測試,首先以100匹伊犁馬的三項體尺數(shù)據(jù)(胸徑、體長、體高)為自變量x1、x2、x3,以待測體尺(胸圍)為因變量y,進行線性回歸擬合,其結(jié)果如式(2)所示:
y=-7.298 2+0.927 3*x1-0.023*x2+
0.771 3*x3
(2)
其中,r2=0.839 3,F(xiàn)=27.860 5,P=1.372 8×10-6。由P可知,式(2)的回歸模型成立。
隨后,更換馬體尺數(shù)據(jù)(管徑、體高、體長)的自變量x1、x2、x3,以管圍為因變量y,進行回歸分析,其擬合結(jié)果如式(3)所示:
y=9.564 8+0.051 7*x1-0.012 0*x2+
0.470 3*x3
(3)
其中,r2=0.948 0,F(xiàn)=97.177 6,P=1.750 2×10-10。由P可知,式(3)的回歸模型成立。
在回歸分析過程中,數(shù)據(jù)擬合還有一些不可忽視的環(huán)節(jié)。如馬體尺的預測方程將根據(jù)馬品種不同而有所變化,對同一品種的馬匹而言,其年齡不同也將影響回歸方程的擬合效果。因此為了提高回歸方程的顯著特性,只能對馬體尺樣本空間的多樣性及復雜性加以劃分,且擴大樣本容量以換回更少的測試誤差。
此外,針對馬體非標準的兩類站姿,實驗中還討論了相關(guān)回歸方程的修正方法,旨在加強體測系統(tǒng)的測量能力。其主要方式為引入體重指標,以便替換因為站姿不準而無法準確獲取的其他參數(shù),進而修正預測方程。
(6)測量值的篩選。
為了直觀驗證測試值的準確性,實驗中將已測的體尺數(shù)據(jù)代入回歸方程進行殘差分析,以便有效判斷其值是否在回歸方程的誤差范圍內(nèi)波動。如圖4(a)中第20組測量值代入方程,偏離中軸線較遠,則該值測量結(jié)果無效,不保存;對呈現(xiàn)中軸線左右波動不大的測試值,即可認定為有效數(shù)據(jù),如圖4(b)所示。在Matlab中進行殘差分析僅需調(diào)用rcoplot(r,rint)函數(shù),為系統(tǒng)逐一篩選測試值提供了便利。
(7)數(shù)據(jù)顯示及保存。
設(shè)計中,馬體四項體尺指標通過edit控件在測量界面中顯示,同時體尺數(shù)據(jù)還需發(fā)送至uitable及excel文檔保存。
圖4 Matlab中的殘差分析
根據(jù)上述設(shè)計流程,筆者完成了馬體尺測量系統(tǒng)的初步開發(fā),其測試界面如圖5所示。
圖5 體尺測量系統(tǒng)的測試效果
本設(shè)計基于MS-COCO數(shù)據(jù)集得到訓練模型,采用實例分割模型YOLACT進行馬體與背景的分割,實現(xiàn)馬體目標的檢測。將檢測獲得的馬體圖像通過Matlab仿真平臺中提供的多種方法及庫函數(shù)進行處理,在此基礎(chǔ)上完成體測系統(tǒng)的初步設(shè)計與開發(fā)。設(shè)計的不足之處在于測量過程無法自動獲取馬體尺的特征點,降低了系統(tǒng)的自動化程度,增加了誤操作的可能性。