張婧婧, 李勇偉
(新疆農業大學,新疆烏魯木齊 830052)
新疆維吾爾自治區是我國傳統的養馬大區,馬的品種資源豐富,據國家品種資源調查顯示,目前全疆共有哈薩克馬、巴里坤馬、焉耆馬、柯爾克孜馬等4個地方品種,有伊犁馬、伊吾馬2個培育品種,為全國各省(市、自治區)馬品種資源之首。馬品種登記是由專門的登記機構依據系譜、體尺外貌、生產性能等資料來劃分馬的品種,而體尺測量技術是鑒定新疆馬品種、推進馬良種化進程中不可或缺的技術。
目前,機器視覺的動物體尺測量在國內已經取得一定進展,如利用背景減法和去除噪聲算法得到豬體體尺測點[1];利用背景差分法提取羊體輪廓[2-3];運用自動閾值分割與形態學處理進行輪廓分割[4];采用Kinect傳感器搭建的羊體尺測量系統,利用彩色、深度圖像的多元信息提取羊的體尺[5-6];基于機器視覺技術測量魚體側面積,并將面積與質量進行數據擬合建立模型,評價魚的質量等[7]。相比國內研究現狀,國外對動物體尺進行測度的設備專利較多。測度動物體型,建立結構化專用裝置,其優勢在于方便圖像采集和標定,實現對感興趣參照點進行線性測量[8-9],但不足之處在于建立結構化裝置成本較高,還必須誘導動物到指定位置。
目前,采用的自動化指標獲取方法主要基于二維圖像和結構化設施限制動物的位姿來實現獲取,對動物的位姿或環境光照和背景要求較嚴格,在實際生產中難以得到滿足,且2D機器視覺技術本身不能獲取和動物身體曲面形狀相關的指標[10]。
本研究借鑒動物體尺的研究成果,依據新疆馬業協會發布的地方標準,利用3D繪圖技術,模擬多元線性回歸算法,建立了新疆馬體尺基礎指標的采集模型,旨在完成基于機器視覺的馬體尺測量系統的初步設計。
根據新疆馬業協會發布的地方標準,測量馬體尺的基本數據,包括體高、體長、胸圍、管圍,其測量標準為體高:從鬐甲頂點到地面的垂直距離;體長:從肩端到臀端的直線距離;胸圍:在肩腳骨后緣垂直繞胸一周的長度;管圍:左前管部上1/3處的下端最細處,水平繞其一周的長度。
本設計中,首先應用CINEMA 4D軟件設計馬體的骨骼,據此建立如圖1所示的馬體3D模型。在3D圖像中,馬的體高、體長、胸圍、管圍指標均屬于體尺測量的基礎數據,如圖1中A—A線、B—B線、C—C線、D—D線所示。基于機器視覺,馬體各項指標的測量值必須與圖像像素點的坐標距離相關,才具備可測性,而馬的體高、體長測量方式符合這一標準。相反,馬體的胸圍、管圍則缺乏坐標的測量依據,因此文中定義了相關指標:胸徑、管徑如圖1中E—E線、F—F線所示(實際坐標分別與C、D點重合),旨在利用可測的體高、體長、胸徑、管徑構成馬體胸圍、管圍預測模型的重要參數。

測量系統中,馬體胸圍、管圍的預測建立在多元線性回歸模型的基礎之上。依據多元線性回歸理論,因變量與自變量的相關程度越高,回歸方程越顯著,即獲取與胸圍、管圍相關程度較高的馬體尺指標,擬合多元線性回歸方程,在方程成立的條件下,預測胸圍、管圍,即可完成馬體尺的有效測量。為此,以20匹焉耆馬的體尺數據為依據,在Matlab仿真軟件中首先獲取馬體尺各項指標間線性相關程度的數據。
根據相關系數的標準定義[11]:
r=E{(x-E{x})×(y-E{y})}/(sqrt({(x-E{x})2)×sqrt({(y-E{y})2))。
(1)
式中:E{}為期望值;|r|=1表明兩者相關,|r|=0表明兩者不相關。
調用Matlab軟件中的corrcoef()函數,得到馬體的體高、體長、胸圍、管圍、胸徑、管徑間線性關系的數據,如表1所示。
由表1可知,焉耆馬的體高、體長、胸圍、管圍、胸徑、管徑指標之間滿足兩兩線性相關條件,具有不同程度的相關性。利用體高、體長、胸徑、管徑的優化組合構成方程的自變量,通過回歸方程的檢驗參數評估方程的顯著性,即可搭建胸圍、管圍的預測模型。

表1 馬體尺指標間相關系數
在基于CINEMA 4D軟件設計的馬體骨骼中,為精準獲取像素點的坐標距離,先進行3D圖像的輪廓提取。仿真中,采用Sobel算子的邊緣檢測算法[12]提取馬體輪廓。首先將馬體圖像變為灰度圖,然后分別利用Sobel垂直方向模板和水平方向模板對轉化的灰度圖像做卷積,求得垂直方向和水平方向梯度,將2個梯度相加即可求得整個圖像的梯度,即為圖像的輪廓(圖2)。

由圖2可知,3D馬體圖像的邊緣清晰,圖像中動物體色與選取的背景色差雖不明顯,但輪廓提取依然較準確。鑒于圖像邊緣檢測的多樣化,還同時嘗試該圖像的一維Canny算子、Robinson算子以及二維Laplace算子[13]的邊緣檢測。較其他算法,Sobel算法邊緣檢測的運算速度快,對3D骨骼刻畫地較為精準,具有測量優勢。
基于上述體尺測量的設計方案,首先建立胸圍的預測模型。由表1可知,與胸圍相關性較高的指標依次為胸徑、體高、管徑;設計中以20匹焉耆馬的胸徑、體高、管徑為自變量x1、x2、x3,以胸圍為因變量y,建立多元線性回歸方程,如公式(2)所示。
y=-129.357 3+0.019 5x1+2.151 0x2-0.780 9x3。
(2)
公式(2)r2=0.998 6;F=694.097 5;P=9.259 6×10-5。由P值可知,公式(2)的回歸模型成立。
同樣地,與管圍相關性較高的指標依次為管徑、體高、胸圍;以20匹焉耆馬的管徑、體高、胸圍為自變量x1、x2、x3,以管圍為因變量y,建立多元線性回歸方程,如公式(3)所示。
y=5.916 3+1.658 6x1+0.035 0x2-0.1x3。
(3)
公式(3)r2=0.998 8;F=820.348 6;P=7.209 4×10-5。由P值可知,公式(3)的回歸模型成立。模型的仿真中,調用Matlab的線性擬合函數regress()方法[14]建立回歸方程,為了提高預測的準確度,還針對數據進行rcoplot()殘差分析,剔除異常點,并利用判定系數測定方程的擬合程度是否符合建模的條件。
鑒于系統交互式設計的需要,利用Matlab GUI工具完成系統可視化界面的設計。在GUI工具中,選擇的控件包括axes、pushbutton、edit、uitable、text等,其具體功能如表2所示。

表2 交互式界面中控件的主要功能
在機器視覺的動物體測系統中,由于動物體態各異,不可避免地為體尺測量帶來很大難度。針對馬體站姿不標準的2類情況,本設計提出了相應的修正方法,旨在加強體測系統的測量能力。應用CINEMA 4D軟件設計馬體骨骼,繪制了同一匹馬行走和傾斜站立的姿態,據此模擬2種姿態下馬體尺數據的變化規律。
在馬體站姿不標準的情況下,須要引入馬體尺的另一指標——體質量,以便替換因為站姿不準而無法準確獲取的其他參數,重構預測模型。根據建立線性回歸方程的需要,以焉耆馬為例,首先獲取體質量與馬體其他指標間相關程度的數據(表3)。

表3 馬體質量與其他指標相關程度
馬體在行走狀態下,其體高減小、體長不變、胸徑不變、管徑不變,如圖3所示。首先須要修正體高,即建立體高的預測模型。在馬體尺指標相關系數列表中,體高與體長、胸徑、管徑的相關程度高,即以焉耆馬的體長、胸徑、管徑為自變量x1、x2、x3,以體高為因變量y,建立多元線性回歸方程,如公式(4)所示。
y=0.705 6+0.959 8x1-0.489 5x2+3.386 8x3。
(4)
公式(4)r2=0.998 3;F=583.600 0;P=1.200 0×10-4。由P值可知,公式(4)的回歸模型成立。

類似地,行走姿態下,剔除體高指標,以馬的體質量、胸徑、管徑為自變量x1、x2、x3,以胸圍為因變量y,建立多元線性回歸方程,如公式(5)所示。
y=14.283 6+0.154 8x1+2.256 9x2-3.737 1x3。
(5)
公式(5)r2=0.999 0;F=954.500 0;P=5.746 0×10-5。由P值可知,公式(5)的回歸模型成立。
同樣地,由于體長與管圍的相關性較低,以馬的體質量、胸徑、管徑為自變量x1、x2、x3,以管圍為因變量y,建立多元線性回歸方程,如公式(6)所示。
y=7.228 9+0.014 9x1-0.037 8x2+0.984 9x3。
(6)
公式(6)r2=0.991 9;F=122.670 0;P=1.200 0×10-3。由P值可知,公式(6)的回歸模型成立。
綜上所述,體測系統基本實現了行走姿態下馬體尺各項指標的測量及數據修正。
馬體相對相機平面傾斜時,呈現出體質量不變、體高不變、體長變小、胸徑不變、管徑變小等體尺變化規律,如圖4所示。剔除體長、管徑指標,體尺預測模型的有效參數僅有體質量、體高、胸徑3項指標,據此預測了馬體站姿傾斜時體尺數據模型。

以馬的體質量、體高、胸徑為自變量x1、x2、x3,以體長為因變量y,建立多元線性回歸方程,如公式(7)所示。
y=4.794 0-0.060 7x1+1.246 2x2-0.232 7x3。
(7)
公式(7)r2=0.999 8;F=5 474.500 0;P=4.190 0×10-6。由P值可知,公式(7)的回歸模型成立。
同樣地,以體質量、體高、胸徑為自變量x1、x2、x3,以胸圍為因變量y,建立多元線性回歸方程,如公式(8)所示。
y=-112.923 8+0.009 8x1+1.825 8x2+0.366 2x3。
(8)
公式(8)r2=0.995 0;F=199.650 0;P=5.964 0×10-6。由P值可知,公式(8)的回歸模型成立。
再以體質量、體高、胸徑為自變量x1、x2、x3,以管圍為因變量y,建立多元線性回歸方程,如公式(9)所示。
y=7.119 5+0.028 7x1-0.020 4x2+0.069 1x3。
(9)
公式(9)r2=0.999 8;F=4 182.450 0;P=6.273 6×10-6。由P值可知,公式(9)的回歸模型成立。
綜上,本設計完成了站姿傾斜時馬體尺各項指標的測量及數據修正。然而由于馬的姿態變化不定,當馬體傾斜且行走時,呈現體質量不變、體高變小、體長變小、胸徑不變、管徑變小等規律,如圖5所示,在剔除變化的指標后,其體尺預測模型的自變量不足,體測誤差難以控制在有效范圍內,因此不再對該模型進行體尺分析。

基于Matlab開發平臺,測量馬體尺須要依次完成的輪廓提取、坐標定位、距離測量、數據修正、回歸分析、預測值顯示、數據保存等步驟,其具體流程如圖6所示。
以馬體3D圖像的體尺數據為依據,在可視化界面中進行系統的初步測試。由圖7可知,受面板尺寸的限制,測量中獲取體長、體高與胸徑、管徑數據分別置于2副圖像輪廓中操作,降低了坐標定位過程中重復操作的可能性;系統仿真中用紅色文本顯示馬體坐標,并將有效坐標用虛線連接,直觀呈現體高、體長、胸徑、管徑的測量數據,并將所有測量結果顯示于edit文本框中。
在馬體站姿不標準的情況下,還設計了數據修正按鍵,用于啟動重構的預測模型,修正體尺數據預測結果,降低模型測量的2次誤差。


基于Matlab開發平臺,依據線性相關及線性回歸理論,本系統初步完成了馬體的體長、體高、胸圍、管圍的測量。為了加強預測模型的準確性,定義了與圖像中像素點距離成比例的胸徑、管徑指標,且引入了體質量指標,使得線性回歸方程的擬合程度增強,回歸特性顯著。對于站姿不標準造成的測量誤差,討論了2種特定姿態下的修正方法,初步降低因站姿不標準造成的測量誤差,具備借鑒意義。
仿真的不足之處主要在于線性相關分析和線性回歸方程均取決于少量馬體尺的樣本數據,據此構建的模型,其測量誤差無法定量估算。