張婧婧,李勇偉
(1.新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院, 烏魯木齊 830052; 2.新疆農(nóng)業(yè)大學(xué)機(jī)械交通學(xué)院,烏魯木齊 830052)
基于機(jī)器視覺(jué)的馬體尺測(cè)量系統(tǒng)設(shè)計(jì)與研究
張婧婧1,李勇偉2
(1.新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院, 烏魯木齊 830052; 2.新疆農(nóng)業(yè)大學(xué)機(jī)械交通學(xué)院,烏魯木齊 830052)
傳統(tǒng)馬體尺的人工測(cè)量方法工作量大且存在安全隱患,對(duì)此提出基于線性回歸理論和機(jī)器視覺(jué)技術(shù)的馬體尺測(cè)量方法,旨在測(cè)量馬體的基本數(shù)據(jù)如體高、體長(zhǎng)、胸圍、管?chē)?首先,在Matlab中利用圖像腐蝕方法得到馬體輪廓,并在2D圖像上精確定位馬體坐標(biāo),獲得體高、體長(zhǎng)指標(biāo);然后,自定義胸徑、管徑指標(biāo),代入線性回歸方程預(yù)測(cè)胸圍、管?chē)蛔詈罄肕atlab GUI工具設(shè)計(jì)系統(tǒng)可視化界面,并初步完成系統(tǒng)的仿真測(cè)試;仿真結(jié)果表明,利用線性相關(guān)及線性回歸理論解決3D指標(biāo)的預(yù)測(cè)問(wèn)題,具備測(cè)量依據(jù)和借鑒意義。
焉耆馬;體尺;線性相關(guān);多元線性回歸; Matlab GUI
馬的體尺測(cè)量指標(biāo)分為:體高、體長(zhǎng)、胸圍、管?chē)?、頭長(zhǎng)、頭寬、尻寬、尻長(zhǎng)、胸寬、胸深、胸廓寬、背高、尻高、頸長(zhǎng)、肢長(zhǎng)等,傳統(tǒng)的人工測(cè)量一般采用測(cè)杖、卷尺、圓形測(cè)定器、測(cè)角計(jì)等工具進(jìn)行,測(cè)量過(guò)程中采集數(shù)據(jù)的工作量大,且測(cè)量人員和馬的安全均缺乏必要的保障,存在安全隱患,因此基于機(jī)器視覺(jué)的非接觸測(cè)量就成為體尺測(cè)量領(lǐng)域的熱點(diǎn)技術(shù)之一。
目前,基于機(jī)器視覺(jué)的動(dòng)物體尺測(cè)量改變了接觸式的測(cè)量方法,國(guó)內(nèi)相關(guān)研究包括:劉同海、滕光輝等人利用背景減法和去除噪聲算法得到豬體體尺測(cè)點(diǎn)[1];江杰、周麗娜等人利用背景差分法提取羊體輪廓[2-3];劉波、朱興偉等人運(yùn)用自動(dòng)閾值分割與形態(tài)學(xué)處理進(jìn)行輪廓分割[4];趙建敏等人研究了基于 Kinect 傳感器搭建的羊體尺測(cè)量系統(tǒng),利用彩色、深度圖像的多元信息提取羊的體尺[5-6]等等。與此同時(shí),由于3D 機(jī)器視覺(jué)技術(shù)發(fā)展迅速[7-9],現(xiàn)有的激光或其它點(diǎn)云獲取設(shè)備也可以用于體尺測(cè)量,但其測(cè)量成本較高。
借鑒動(dòng)物體尺的研究成果,依據(jù)新疆馬業(yè)協(xié)會(huì)發(fā)布的地方標(biāo)準(zhǔn),利用2D機(jī)器視覺(jué)的技術(shù)平臺(tái),模擬多元線性回歸算法,我們建立了新疆馬體尺四項(xiàng)指標(biāo)的采集模型,旨在完成馬體尺測(cè)量系統(tǒng)的初步設(shè)計(jì)。
根據(jù)新疆馬業(yè)協(xié)會(huì)發(fā)布的地方標(biāo)準(zhǔn),測(cè)量馬體尺的基本數(shù)據(jù)包括體高、體長(zhǎng)、胸圍、管?chē)?,其測(cè)量標(biāo)準(zhǔn)如下:
體高:從鬐甲頂點(diǎn)到地面的垂直距離;
體長(zhǎng):從肩端到臀端的直線距離;
胸圍:在肩腳骨后緣垂直繞胸一周的長(zhǎng)度;
管?chē)鹤笄肮懿可?/3部的下端最細(xì)處,水平繞其一周的長(zhǎng)度。
在機(jī)器視覺(jué)的體尺測(cè)量系統(tǒng)中,我們選用馬體平面圖像進(jìn)行體尺數(shù)據(jù)的采集。在2D圖像中,馬的體高、體長(zhǎng)根據(jù)平面測(cè)量技術(shù)即可完成,如圖1中A-A線、 B-B線所示;而在測(cè)量標(biāo)準(zhǔn)中,馬的胸圍、管?chē)臏y(cè)量均屬3D指標(biāo),平面測(cè)量很難實(shí)現(xiàn),如圖1中C-C線、 D-D線所示。為此系統(tǒng)測(cè)量中定義了馬的胸徑、管徑測(cè)量指標(biāo),仍然利用平面測(cè)量技術(shù)完成數(shù)據(jù)采集,如圖1中E-E線、 F-F線所示(實(shí)際坐標(biāo)與C、D點(diǎn)重合),而該測(cè)量方法的核心在于利用2D平面中的各項(xiàng)指標(biāo)(體高、體長(zhǎng)、胸徑、管徑)實(shí)現(xiàn)3D空間胸圍、管?chē)鷶?shù)據(jù)的預(yù)測(cè)。
圖1 馬體尺測(cè)量的2D示例
利用自定義的胸徑、管徑指標(biāo)完成胸圍、管?chē)A(yù)測(cè)的依據(jù)來(lái)源于矩陣的線性相關(guān)理論。相關(guān)系數(shù)的標(biāo)準(zhǔn)定義如下[10]:
r=E{(x-E{x})*(y-E{y})}/
(1)
其中:E{}為期望值,|r|=1表明兩者相關(guān),|r|=0表明兩者不相關(guān)。
我們以20匹焉耆馬的體尺數(shù)據(jù)為依據(jù),在Matlab仿真軟件中進(jìn)行了馬體尺各指標(biāo)之間的線性相關(guān)性探討。根據(jù)公式(1),調(diào)用corrcoef()函數(shù),可以得到了馬體的體高與體長(zhǎng)、體長(zhǎng)與胸圍、胸圍與管?chē)?、胸圍與胸徑、管?chē)c管徑間線性關(guān)系的數(shù)據(jù),如表1所示。
表1 馬體尺指標(biāo)之間線性相關(guān)數(shù)據(jù)
由表1不難看出,焉耆馬的體高、體長(zhǎng)、胸圍、管?chē)⑿貜?、管徑等指?biāo)之間滿足兩兩線性相關(guān)條件,具有不同程度的相關(guān)性。根據(jù)多元線性回歸理論,馬體尺各指標(biāo)之間存在一定線性關(guān)系,據(jù)此能夠建立多元線性回歸方程,使得借助2D指標(biāo)進(jìn)行3D數(shù)值的預(yù)測(cè)成為可能。
在機(jī)器視覺(jué)的體尺測(cè)量領(lǐng)域,為了增強(qiáng)數(shù)據(jù)測(cè)量的可靠性,首先需要進(jìn)行圖像的輪廓提取。本設(shè)計(jì)中,通過(guò)調(diào)用Matlab的imerode()函數(shù)實(shí)現(xiàn)2D圖像的腐蝕,其用法為:Imerode(X,SE),其中X是待處理的圖像,SE是結(jié)構(gòu)元素對(duì)象;腐蝕后得到圖像的內(nèi)部像素點(diǎn),而原圖像減去內(nèi)部像素點(diǎn)即留下邊界點(diǎn),即:Iout=I-Ie,本設(shè)計(jì)中輪廓提取效果如圖2所示。
圖2 馬體尺的輪廓提取效果
如圖2(a)所示,仿真中采用的馬標(biāo)本與背景顏色相差較大,適于選擇簡(jiǎn)易的圖像腐蝕算法得到輪廓,如圖2(b)所示。而實(shí)測(cè)過(guò)程中,當(dāng)待測(cè)動(dòng)物與背景顏色相差不大,無(wú)法單純分割出目標(biāo)動(dòng)物輪廓時(shí),還可以采用一維Canny算子、robinson算子以及二維Laplace算子[ 11]等進(jìn)行圖像邊緣檢測(cè),以提高輪廓提取的準(zhǔn)確度。
馬體尺模型的建立主要依據(jù)多元線性回歸理論,根據(jù)多元線性回歸方程:
y=b0+b1x1+…+bpxp+e
(2)
首先,在馬體尺指標(biāo)中適當(dāng)選取自變量及應(yīng)變量x1,x2,…xp,y,根據(jù)現(xiàn)有的n組觀測(cè)值(xi1,xi2,…xip,yi)i=1,2,…,n.
建立數(shù)據(jù)回歸模型后,將系統(tǒng)中的實(shí)測(cè)值代入方程,即能預(yù)測(cè)平面測(cè)量不到的數(shù)據(jù)。依據(jù)此測(cè)量方案,我們首先以20匹焉耆馬的體高、體長(zhǎng)、胸徑為自變量x1、x2、x3,以胸圍為因變量y,建立多元線性回歸方程[13],如方程(3)所示。
y=-7.2982+0.9273*x1-0.023*x2+0.7713*x3
(3)
其中:r2=0.8393;F=27.8605;P=1.3728×10-6。由P可知,公式(3)的回歸模型成立,即馬體的胸圍預(yù)測(cè)模型建立。隨后當(dāng)我們將實(shí)測(cè)的體高、體長(zhǎng)、胸徑代入方程(3),即可預(yù)測(cè)馬體的胸圍。
同樣,我們以馬的體高、體長(zhǎng)、管徑為自變量x1、x2、x3,以管?chē)鸀橐蜃兞縴,建立多元線性回歸方程,如式(4)所示:
y=9.5648+0.0517*x1-0.0120*x2+0.4703*x3
(4)
其中:r2=0.9480;F=97.1776;P=1.7502×10-10。由P可知,公式(4)的回歸模型成立。當(dāng)我們將實(shí)測(cè)的體高、體長(zhǎng)、管徑代入式(4),即可預(yù)測(cè)馬體的管?chē)?/p>
模型的仿真中,我們調(diào)用Matlab的線性擬合函數(shù)regress()方法[14]建立回歸方程。為了提高預(yù)測(cè)數(shù)據(jù)的有效性,初步建模后還針對(duì)數(shù)據(jù)進(jìn)行rcoplot()殘差分析,剔除異常點(diǎn),以便準(zhǔn)確獲取回歸方程,從而確立預(yù)測(cè)馬體尺胸圍、管?chē)幕灸P汀?/p>
鑒于系統(tǒng)的前期設(shè)計(jì)基于Matlab仿真,后期利用Matlab GUI工具完成系統(tǒng)的可視化設(shè)計(jì)具有顯著優(yōu)勢(shì)。系統(tǒng)交互式界面中涉及的主要控件包括Matlab GUI工具中的axes、pushbutton、edit、uitable、text等控件,其具體功能如表2所示。
表2 交互式界面中控件的主要功能列表
與控件相關(guān)的核心代碼如下:
1)在axes中嵌入圖像
(a)打開(kāi)圖像
[filename, pathname] = uigetfile({'*.bmp;*.jpg;*tif', '(*.bmp), (*.jpg), (*.tif)'; ...
'*.*', 'All Files(*.*)' }, 'Select a face image to be recognized');
filepath = [pathname,filename];%指定圖像路徑
(b)將圖像顯示于axes中
axes(handles.axes2); % axes上面的坐標(biāo)軸做為當(dāng)前坐標(biāo)軸,在其上做圖。
2)獲取、顯示坐標(biāo)
(a)跟蹤鼠標(biāo)定位
test_mouse_track();%添加鼠標(biāo)響應(yīng)事件
set(gcf,'WindowButtonDownFcn',@ButttonDownFcn);
ButttonDownFcn(src,event) ; %跟蹤鼠標(biāo)按鍵的動(dòng)作
get(gca,'CurrentPoint') ;%獲得當(dāng)前坐標(biāo)
(b)顯示當(dāng)前坐標(biāo)
str = sprintf('x = %.3f, y = %.3f', x, y);
text(x, y, str,'Color',[1,0,0]);%顯示坐標(biāo)的位置,預(yù)測(cè)馬體尺測(cè)量的準(zhǔn)確性
3)計(jì)算坐標(biāo)點(diǎn)的距離并顯示
(a)計(jì)算坐標(biāo)距離
disp(t2);
E=sqrt(t1+t2) ;
(b)顯示測(cè)距結(jié)果
set(handles.edit4,'string',C); %將計(jì)算結(jié)果顯示在edit中
4)保存體尺數(shù)據(jù)到uitable及excel文檔
(1)保存數(shù)據(jù)至uitable
set(handles.uitable2,'Data',A) ; %數(shù)據(jù)輸出
(2)保存數(shù)據(jù)至excel
lswrite('tmp.xls', F, 'sheet1') ; %數(shù)據(jù)保存
5)數(shù)據(jù)從excel導(dǎo)入uitable
filename = 'tmp.xls'
B = xlsread(filename); %導(dǎo)入指定文件
set(handles.uitable1,'data',B) ; % 數(shù)據(jù)導(dǎo)入表格
6)取出數(shù)組進(jìn)行多元線性計(jì)算
[b,bint,r,rint,stats]=regress(Y,X,0.05) ;%調(diào)用regress方法
7)進(jìn)行數(shù)據(jù)殘差分析
rcoplot(r,rint)% 繪制殘差圖
8)數(shù)據(jù)顯示在edit中
set(handles.uitable4,'Data',A) ; %數(shù)據(jù)輸出
基于Matlab開(kāi)發(fā)平臺(tái),測(cè)量馬體尺需要依次完成輪廓提取、坐標(biāo)定位、距離測(cè)量、數(shù)據(jù)保存、數(shù)據(jù)傳遞、回歸分析、預(yù)測(cè)值顯示等步驟,其具體流程如圖3所示。界面設(shè)計(jì)中,圖像的尺寸與實(shí)際馬體的尺寸按照比例對(duì)應(yīng),比例值為1: 42.5。
圖3 體尺測(cè)量系統(tǒng)設(shè)計(jì)流程
如圖3所示,建立預(yù)測(cè)模型的核心思路在于首先獲取馬體的體高、體長(zhǎng)、胸徑、管徑指標(biāo),再將體高、體長(zhǎng)、胸徑向量代入已建立的回歸方程(3),預(yù)測(cè)胸圍;然后將體高、體長(zhǎng)、管徑數(shù)據(jù)代入已建立的回歸方程(4),預(yù)測(cè)管?chē)M(jìn)而完成馬體四項(xiàng)指標(biāo)的測(cè)量模型。
以馬標(biāo)本圖像的體尺數(shù)據(jù)為依據(jù),我們?cè)诳梢暬缑嬷羞M(jìn)行系統(tǒng)的設(shè)計(jì)并初步測(cè)試,測(cè)試效果如圖4、圖5所示。
圖4 馬體尺的數(shù)據(jù)測(cè)量界面
圖5 馬體尺的數(shù)據(jù)分析界面
根據(jù)圖4可知,受面板尺寸的限制,測(cè)量中獲取體長(zhǎng)、體高與胸徑、管徑數(shù)據(jù)分別置于兩副圖像輪廓中操作,降低了坐標(biāo)定位過(guò)程中重復(fù)操作、誤操作的可能性。系統(tǒng)仿真中用紅色文本顯示馬體坐標(biāo),并將有效坐標(biāo)用虛線連接,直觀呈現(xiàn)體高、體長(zhǎng)、胸徑、管徑的測(cè)量數(shù)據(jù)。同時(shí)在數(shù)據(jù)測(cè)量界面,我們選用edit文本框顯示體尺數(shù)據(jù)的運(yùn)算結(jié)果,并將結(jié)果存儲(chǔ)進(jìn)Excel表格,隨后進(jìn)入線性回歸分析階段(如圖5所示)。
根據(jù)圖5可知,模型預(yù)測(cè)的指標(biāo)為馬體的胸圍、管?chē)7抡嬷惺紫葟腅xecl中提取體高、體長(zhǎng)、胸徑、管徑數(shù)據(jù),將其傳遞到線性回歸方程中。在此之前,系統(tǒng)首先需要對(duì)其進(jìn)行異常點(diǎn)的排除,并將殘差圖顯示于界面上,以此確認(rèn)數(shù)據(jù)的有效性,從而降低坐標(biāo)定位引起的測(cè)量誤差。即在圖5的線性回歸分析區(qū),20條樣本值均在回歸方程的有效計(jì)算范圍內(nèi)波動(dòng),殘差分析圖中均呈現(xiàn)綠色的正常點(diǎn);如某一組測(cè)量值代入方程中呈現(xiàn)紅色異常點(diǎn),則需要剔除并重新測(cè)量。
總之,系統(tǒng)正常運(yùn)行后,所有預(yù)測(cè)值均建立在馬體尺線性回歸模型的基礎(chǔ)上,每測(cè)量一組平面指標(biāo)(體長(zhǎng)、體高、胸徑、管徑)即能預(yù)測(cè)兩個(gè)3D指標(biāo)(胸圍、管?chē)?。
基于matlab開(kāi)發(fā)平臺(tái),本系統(tǒng)初步實(shí)現(xiàn)了馬體的體長(zhǎng)、體高、胸圍、管?chē)臏y(cè)量方法,對(duì)相關(guān)體測(cè)系統(tǒng)的開(kāi)發(fā)具有借鑒意義;系統(tǒng)設(shè)計(jì)中應(yīng)用線性相關(guān)及線性回歸理論解決2D數(shù)據(jù)預(yù)測(cè)3D尺寸的問(wèn)題,具備測(cè)量依據(jù)和理論創(chuàng)新;此外,鑒于胸徑、管徑與胸圍、管?chē)嚓P(guān)系數(shù)較高,定義胸徑、管徑作為線性回歸方程的自變量,增強(qiáng)了胸圍、管?chē)A(yù)測(cè)的可靠性。值得注意的是,仿真中也存在很多不足之處。如線性相關(guān)分析和線性回歸方程均取決于少量馬體尺的樣本數(shù)據(jù),因此不可避免地造成體尺預(yù)測(cè)的準(zhǔn)確度不足。較之馬體尺的人工測(cè)量過(guò)程,基于機(jī)器視覺(jué)的體測(cè)系統(tǒng)對(duì)馬的站姿要求更高,對(duì)于站姿不標(biāo)準(zhǔn)造成的測(cè)量誤差,系統(tǒng)設(shè)計(jì)中尚無(wú)有效的修正方法。
目前,基于機(jī)器視覺(jué)的動(dòng)物體尺測(cè)量技術(shù)已經(jīng)全面展開(kāi)。各種測(cè)量方案中,依據(jù)機(jī)器學(xué)習(xí)、線性擬合理論實(shí)現(xiàn)的平面測(cè)量方法具備成本經(jīng)濟(jì)、操作簡(jiǎn)便的優(yōu)勢(shì),然而較之人工測(cè)量,計(jì)算過(guò)程中坐標(biāo)定位引起的測(cè)量誤差仍無(wú)法回避。
[1]劉同海,滕光輝,付為森,等.基于機(jī)器視覺(jué)的豬體體尺測(cè)點(diǎn)提取算法與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29( 2) : 161-168.
[2]江 杰,周麗娜,李 剛.基于機(jī)器視覺(jué)的羊體體尺測(cè)量[J].計(jì)算機(jī)應(yīng)用,2014,34( 3) : 846-850,887.
[3]江 杰,岳 偉,曹孟珍.基于機(jī)器視覺(jué)的羊體體尺測(cè)量方法研究[J].內(nèi)蒙古科技大學(xué)學(xué)報(bào) , 2015 , (04) : 322-327.
[4]劉 波,朱偉興,霍冠英.生豬輪廓紅外與光學(xué)圖像的融合算法[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(17) : 113-120.
[5] 趙建敏,許曉偉,賈慧媛.基于 Kinect傳感器的羊體體尺測(cè)量系統(tǒng)[J].傳感器與微系統(tǒng),2015,34( 9) : 100-103.
[6]趙建敏,趙忠鑫,李 琦.基于Kinect傳感器的羊體體尺測(cè)量方法[J].江蘇農(nóng)業(yè)科學(xué), 2015(11): 495-499.
[7]郭 浩,張勝利,馬 欽,等.基于點(diǎn)云采集設(shè)備的奶牛體尺指標(biāo)測(cè)量[J].農(nóng)業(yè)工程學(xué)報(bào),2014(05):116-122.
[8] Garlie T N, Obusek J P, Corner B D, et al. Comparison of body fat estimates using 3D digital laser scans, direct manual anthropometry, and DXA in men[J]. American Journal of Human Biology, 2010, 22(5): 695-701.
[9] Eder M, Brockmann G, Zimmermann A, et al. Evaluation of precision and accuracy assessment of different 3-D surface imaging systems for biomedical purposes[J]. Journal of Digital Imaging, 2013, 26(2): 163-172.
[10]蔣福坤,劉正春,柴惠文.多維隨機(jī)變量的線性相關(guān)性[ J] .?dāng)?shù)理統(tǒng)計(jì)與管理,2008, 27(1) : 96-99 .
[11]江笑嬋,萬(wàn)振凱,陳 利.基于matlab邊緣提取的幾種方法的比較[ J] .電腦知識(shí)與技術(shù),2006,2 : 138-141 .
[12] 魏宗舒.概率論與數(shù)理統(tǒng)計(jì)教程[ M].北京: 高等教育出版社,2008.
[13] 戴金輝,袁 靖. 單因素方差分析與多元線性回歸分析檢驗(yàn)方法的比較[J]. 統(tǒng)計(jì)與決策,2016(09):23-26.
[14]虞曉胤,楊小虎.功能性回歸測(cè)試工具分析[J]. 計(jì)算機(jī)應(yīng)用與軟件. 2007, 24(05):175-177.
Design and Research of Measurement System of Horse Body Based on Machine Vision
Zhang Jingjing1,Li Yongwei2
(1.College of Computer and Information Engineering, Xinjiang Agricultural University, Urumqi 830052,China;2.Mechanical Transportation College, Xinjiang Agricultural University , Urumqi 830052,China)
The traditional manual measuring method of horse body usually have large workload and security risks.Based on linear regression theory and machine vision technology,we put forward the new measuring method of horse body. The basic data is designed to measure the horse such as body height, body length, chest length, vessel length.Firstly, the image is used to get the horse body contour by image erosion based on Matlab, and the body coordinate is accurately located on the 2D image, so we can obtain the body height and body length index. then, diameter of the chest and diameter of the vessel were defined to predict chest length and vessel length by plugging into equation of linear regression; Finally,we use the Matlab GUI to design the visual interface of the system, and complete the simulation test of the system. The simulation results show that the linear correlation and linear regression theory which can be used to solve the prediction problem of 3D index has the basis of measurement and reference.
Yanqi horse; body size; linear correlation; Linear regression; Matlab GUI
2017-04-09;
2017-05-12。
新疆農(nóng)業(yè)大學(xué)校前期資助項(xiàng)目(XJAU201516)。
張婧婧(1981-),女,碩士,高級(jí)實(shí)驗(yàn)師,主要從事嵌入式技術(shù)與應(yīng)用方向的研究。
李勇偉(1973-),男,碩士,講師,主要從事傳感器技術(shù)與應(yīng)用方向的研究。
1671-4598(2017)12-0017-04
10.16526/j.cnki.11-4762/tp.2017.12.005
TP242. 6+2
A