陸明洲 光二穎 陳子康 王 鋒 張生福 熊迎軍
(1.南京農(nóng)業(yè)大學(xué)人工智能學(xué)院, 南京 210031; 2.農(nóng)業(yè)農(nóng)村部養(yǎng)殖裝備重點(diǎn)實(shí)驗(yàn)室, 南京 210031;3.南京農(nóng)業(yè)大學(xué)動物科技學(xué)院, 南京 210095; 4.青海民族大學(xué)計(jì)算機(jī)學(xué)院, 西寧 810007)
羊的體尺參數(shù)能夠反映其生長發(fā)育狀況以及羊體各部位之間的相對發(fā)育關(guān)系,是篩選優(yōu)質(zhì)羊種質(zhì)資源的重要指標(biāo)之一[1-2]。此外,畜禽體尺參數(shù)還是無損、快速估重[3-5]的重要依據(jù),在規(guī)?;B(yǎng)殖生產(chǎn)實(shí)踐中也有一定的實(shí)用價(jià)值。傳統(tǒng)的羊體尺測量方法一般使用測杖、卷尺等工具測量獲得,測量過程中需要對羊只進(jìn)行保定,工作量大,操作繁瑣,對羊帶來較大的應(yīng)激,還可能導(dǎo)致人畜共患病的發(fā)生?,F(xiàn)階段,羊養(yǎng)殖生產(chǎn)實(shí)踐中已經(jīng)可見一種機(jī)電一體化的羊體尺自動測量裝置[6],該裝置使用檢測倉兩側(cè)擋板保定羊只,利用伸縮機(jī)構(gòu)的行程距離來測量羊體高、體斜長、胸寬參數(shù)。這套裝置提高了羊體尺測量效率,但仍屬接觸式測量方式,保定過程會使羊產(chǎn)生更大應(yīng)激反應(yīng),此外,可以測量的體尺參數(shù)數(shù)量也較為有限。
隨著傳感器[7]、機(jī)器學(xué)習(xí)[8-9]、自動控制[10]技術(shù)被越來越多地應(yīng)用于養(yǎng)殖業(yè),精準(zhǔn)畜牧成為養(yǎng)殖業(yè)的重要發(fā)展方向。利用圖像分析、點(diǎn)云處理、三維重建等技術(shù)自動、無損提取畜禽體表特征信息成為智慧養(yǎng)殖領(lǐng)域[11]的研究熱點(diǎn)之一。按照所依賴的技術(shù)手段可將現(xiàn)有畜禽體尺參數(shù)自動提取方法分為兩類:一類是基于二維圖像處理;另一類是基于三維重建。
二維圖像一般采用可見光相機(jī)采集,其數(shù)據(jù)獲取成本及相應(yīng)的RGB圖像處理算法復(fù)雜度均較為適中,被較多地應(yīng)用于畜禽體尺的自動測量[12-14]。從二維圖像中自動提取畜禽體尺的不足在于視角單一,圖像對外部光照變化較為敏感。隨著三維重建技術(shù)的發(fā)展,也出現(xiàn)了一些對畜禽軀體進(jìn)行三維建模,進(jìn)而獲取動物體尺參數(shù)并進(jìn)行體重估算的研究[15-17]。三維重建一般需要使用激光掃描儀[18]、深度相機(jī)[19-21]或手持設(shè)備[22-23]等儀器采集三維重建所需數(shù)據(jù)。與二維圖像相比,三維重建技術(shù)可獲取更豐富的信息,如表面積、總體積和圍度類的體尺,但三維重建所需數(shù)據(jù)獲取成本高,多相機(jī)位置校正、點(diǎn)云匹配融合和非剛體建模也需要較為復(fù)雜的算法開發(fā)。此外點(diǎn)云數(shù)據(jù)量與活體動物的長時(shí)間非剛性形變都對處理器的性能和模型的實(shí)時(shí)性提出了更高的要求[19,24]。
本文針對山羊體尺無接觸自動測量需求,設(shè)計(jì)一種同時(shí)采集山羊俯視、側(cè)視雙視角圖像的裝置,并開發(fā)從山羊雙視角圖像中自動提取山羊的體高、胸深、胸寬、胸圍、管圍、體斜長等體尺參數(shù)的算法。
本文設(shè)計(jì)的羊體雙視角圖像采集裝置由機(jī)電一體化圖像采集室、PLC控制器、圖像采集模塊、工控機(jī)等部分構(gòu)成,其整體結(jié)構(gòu)如圖1所示。
圖1 羊體雙視角圖像采集裝置示意圖Fig.1 Schematic of designed dual views image acquisition equipment1.俯視相機(jī) 2.側(cè)視相機(jī) 3.工控機(jī) 4.PLC控制箱 5.入口圍欄 6.出口圍欄 7、10.減速電機(jī)與限位開關(guān) 8.倉內(nèi)光電傳感器 9.出口光電傳感器
圖中,機(jī)電一體化圖像采集室包括入口通道、入口門禁、出口通道、出口門禁、出入口門禁開關(guān)控制電機(jī)、門禁位置感知限位開關(guān)、羊只位置感知光電傳感器、側(cè)視圖像采集透光玻璃。PLC控制部分的核心是西門子S7-200 SMART控制器,該控制器接收羊只位置感知光電傳感器、門禁位置感知限位開關(guān)信號并向門禁開關(guān)控制電機(jī)發(fā)出啟停命令。圖像采集模塊主要由采集室上方的俯視相機(jī)以及靠近透光玻璃一側(cè)的側(cè)視相機(jī)構(gòu)成,相機(jī)型號為??礛V-CV050-12GC,鏡頭為維視MV0850,圖像分辨率為2 448像素×2 048像素。當(dāng)光電傳感器感知到羊處于圖像采集倉中時(shí),PLC控制器向側(cè)視、俯視相機(jī)發(fā)出圖像采集命令,獲取羊只的雙視角圖像,雙視角相機(jī)采集的圖像存儲在工控機(jī)中。利用所設(shè)計(jì)的圖像采集裝置完成羊體雙視角圖像采集的流程如圖2所示。
圖2 羊體雙視角圖像采集工作流程Fig.2 Work flow chart of dual views images acquisition for individual goat
2021年7月6—13日,在江蘇省海門市南京農(nóng)業(yè)大學(xué)海門山羊產(chǎn)業(yè)研究院試驗(yàn)羊場隨機(jī)選擇1歲齡左右的母山羊40頭。使用1.1節(jié)設(shè)計(jì)的羊體雙視角圖像采集裝置在羊舍內(nèi)采集40頭母羊的雙視角圖像,圖像采集時(shí)間是08:00—11:00及16:30—18:00。側(cè)視相機(jī)、俯視相機(jī)的圖像采集頻率設(shè)置為1幅/s,每頭羊在圖像采集室內(nèi)的時(shí)長為1 min,每頭山羊采集到60組圖像。由于羊只活動導(dǎo)致圖像中存在身體缺失和扭曲等異常情況,通過人工挑選為每頭羊只保留至少一組羊體完整、站姿正常的圖像,獲取側(cè)視、俯視圖像共240組。其中200組用于本文所提算法相關(guān)模型的訓(xùn)練,剩余40組用于算法測試。一組典型的羊體側(cè)視、俯視圖像如圖3所示。
圖3 羊體側(cè)視和俯視視角圖像Fig.3 Top and side view images of goat body
羊體雙視角圖像預(yù)處理操作主要針對羊體側(cè)視圖像、俯視圖像完成前景分割及二值化操作。由于俯視圖和側(cè)視圖的拍攝光照干擾不同,羊體前景目標(biāo)分割的難度不同,故使用不同方法對兩個(gè)視角下的圖像進(jìn)行處理。
由于羊體俯視圖背景固定,使用背景減除法實(shí)現(xiàn)俯視圖的羊體前景分割。對背景減除后的圖像進(jìn)行灰度化、二值化,即得到俯視二值圖像,對二值圖像作輪廓分析、形態(tài)學(xué)處理,選擇面積最大的輪廓作為羊體區(qū)域即可得到俯視羊體前景分割結(jié)果。羊體俯視圖像前景提取及二值化處理過程如圖4所示。
圖4 羊體俯視圖像預(yù)處理Fig.4 Image pre-processing of top-view image
2.2.1超像素分割
超像素是指在紋理、顏色、亮度等特征上相似的相鄰像素構(gòu)成的有一定視覺意義的不規(guī)則像素塊。ACHANTA等[25]提出的SLIC算法將RGB圖像轉(zhuǎn)換到CIELAB顏色空間,基于由3個(gè)顏色分量和2維坐標(biāo)組成像素點(diǎn)的5維特征向量構(gòu)造距離度量標(biāo)準(zhǔn)以實(shí)現(xiàn)像素的聚類。SLIC算法在運(yùn)算速度和保持物體輪廓上都具有較好的表現(xiàn),故本文使用SLIC算法進(jìn)行羊體側(cè)視圖像超像素分割。SLIC算法利用參數(shù)K來確定最終生成的超像素個(gè)數(shù)。當(dāng)一個(gè)超像素中存在超過一類以上的目標(biāo)時(shí),會使超像素的特征模糊,分類誤差變大,影響羊體前景的分割精度。因此需要確定合適的K值,使得這類誤差最小。為尋找最合適的K值,將超像素邊緣和羊體輪廓重合度較低的超像素定義為錯(cuò)誤分割,計(jì)算不同K值下錯(cuò)誤分割的超像素?cái)?shù)量占前景超像素的比例,計(jì)算流程如圖5所示。
圖5 錯(cuò)誤超像素與前景超像素的數(shù)量比值計(jì)算流程圖Fig.5 Flow chart of ratio calculation of error superpixels to total superpixels
圖5中,將Val閾值設(shè)置為0.2~0.8,不同K值對應(yīng)的側(cè)視圖分割結(jié)果將在4.2節(jié)進(jìn)行分析。
2.2.2超像素分類
使用SLIC算法將圖像分割為若干個(gè)超像素,將超像素分類為羊體前景和背景兩類,即可實(shí)現(xiàn)羊體前景的分割。由于超像素為非規(guī)則形狀,故不使用形狀特征。前景與背景的超像素在顏色和紋理上具有較大差異,故使用顏色、紋理特征對超像素結(jié)果進(jìn)行分類。本文訓(xùn)練基于支持向量機(jī)(Support vector machine, SVM)[26]的分類器實(shí)現(xiàn)超像素分類。
按照2.2.1節(jié)中的方法生成羊體前景和背景超像素。使用顏色和紋理特征構(gòu)建超像素的特征向量,常用的顏色模型有RGB、Lab、HSV、YCbCr、YUV等。通過比較不同顏色分量下背景與前景的差異,選擇RGB、Lab和HSV顏色空間。提取超像素顏色的平均值,構(gòu)建超像素的顏色特征向量C=(S,V,L,B,G,R),其中,S和V分別是HSV顏色空間像素顏色的飽和度和明亮度,L是Lab顏色空間像素的亮度,B和R分別為RGB顏色空間像素的藍(lán)色和紅色分量,G是像素點(diǎn)灰度。由于本文生成的超像素的形狀不規(guī)則,像素間的相對位置關(guān)系特征較弱,且身體的不同區(qū)域受光程度不同導(dǎo)致不存在整體相似的排列結(jié)構(gòu),故使用基于灰度直方圖的統(tǒng)計(jì)特征描述超像素的紋理特征,具體包括均值m、方差σ2和一致性U,計(jì)算公式為
(1)
(2)
(3)
式中ri——圖像顏色級
n——圖像像素點(diǎn)數(shù)
P——某顏色級概率
i——像素點(diǎn)索引號
首先對超像素執(zhí)行灰度化操作,并求各超像素的灰度直方圖,基于直方圖利用式(1)~(3)計(jì)算3個(gè)紋理描述子組成的特征向量E=(m,σ2,U)。將顏色特征向量和紋理特征向量合并成向量FV=(S,V,L,B,G,R,m,σ2,U),對FV做歸一化處理得到超像素的特征向量,記為F′V。訓(xùn)練以徑向基函數(shù)(RBF)作為核函數(shù)的SVM分類器實(shí)現(xiàn)羊體前景超像素的分類。將羊體超像素正樣本標(biāo)記為“1”,背景超像素負(fù)樣本標(biāo)記為“0”。使用訓(xùn)練樣本訓(xùn)練SVM分類器,測試模型并得到每個(gè)超像素的預(yù)測值,若超像素預(yù)測值小于0.5,則被判定為背景超像素,分類標(biāo)簽為0,若預(yù)測值大于等于0.5,則被判定為羊身體超像素,分類標(biāo)簽為1。
表1為部分超像素及其預(yù)測值,其中正確分類的前景超像素預(yù)測值大于0.9,背景超像素預(yù)測值小于0.1,而錯(cuò)誤分類的超像素預(yù)測值介于0.1~0.9之間。
表1 超像素樣本與預(yù)測值Tab.1 Sample of superpixel and predictive value
2.2.3分類結(jié)果修正
使用SVM分類器對羊體側(cè)視圖像中所有超像素特征向量分類,將預(yù)測值大于0.5的超像素填充為白色,其余填充為黑色,得到初步分割的二值圖。錯(cuò)誤分類的超像素有兩種,一種是將背景分類為前景,在初分割的二值圖中主要表現(xiàn)為多個(gè)較小面積的連通域。另一種是前景分類為背景,表現(xiàn)為身體局部的缺失。針對第1種錯(cuò)誤類型,可通過分析圖像輪廓,將該類連通域置為背景。針對第2種錯(cuò)誤,構(gòu)建超像素區(qū)域鄰接圖[27](Region adjacency graph,RAG),分析超像素的鄰接矩陣對結(jié)果進(jìn)行修正,區(qū)域鄰接圖的原理如圖6所示。
圖6 區(qū)域鄰接圖生成過程Fig.6 Process of region adjacency graph
對前述被分類為背景的超像素,若其置信度處于0.1~0.9之間,則統(tǒng)計(jì)與該超像素相鄰的前景超像素的數(shù)量,若數(shù)量超過4個(gè),則將其修正為前景超像素。
根據(jù)山羊標(biāo)準(zhǔn)對羊體尺參數(shù)的定義[28],結(jié)合生產(chǎn)上手工測量羊體尺的方式,在側(cè)視圖和俯視圖中確定需要測量的體尺示意圖如圖7所示。
圖7 羊體尺測量方式示意圖Fig.7 Measuring method of body size in double view images
基于圖7所示雙視角體尺測量方式,設(shè)計(jì)算法自動定位各體尺參數(shù)測量所需的特征點(diǎn),基于特征點(diǎn)間歐氏距離計(jì)算獲得體斜長、體高、胸深、胸寬的體尺參數(shù)像素距離,通過曲線擬合計(jì)算得到管圍和胸圍的體尺參數(shù)像素距離。最后使用標(biāo)定板確定像素距離與真實(shí)距離之間的換算比例,將圖像中的體尺像素距離Spix轉(zhuǎn)換為真實(shí)距離Sreal的公式為
(4)
式中Lpix、Lreal——圖像中標(biāo)定板確定的像素距離與真實(shí)距離
根據(jù)圖7所示的體尺測量方式,分別在羊體側(cè)視、俯視二值圖中劃定如圖8中4個(gè)虛線框?qū)?yīng)的各體尺參數(shù)提取所需的局部感興趣區(qū)域(Region of interest, ROI),以便在局部范圍內(nèi)定位各體尺測量所需的特征點(diǎn)。
圖8 雙視角圖像中的ROI示意Fig.8 ROIs in side and top view images
為減少雙視角圖像采集過程對羊只帶來的應(yīng)激,圖1所示的圖像采集室寬度大于羊體寬度,羊體中軸線可能與透光玻璃不平行。為減少由此帶來的體尺測量誤差,使用霍夫變換[29]對俯視圖做直線檢測,將所有檢測到的直線角度的平均值作為羊體傾斜角度θ,對圖4d所示的俯視二值圖旋轉(zhuǎn)角度θ后得到圖8b所示的校正俯視圖。體尺特征點(diǎn)定位及體尺自動計(jì)算的偽代碼如圖9所示。
圖9 體尺自動測量偽代碼Fig.9 Pseudo code for body size measurement
圖9所示偽代碼行1、2用于定位圖8a中的紅色虛線區(qū)域所示的ROI-1,通過側(cè)視圖像羊體輪廓分析定位羊四肢接觸地面的點(diǎn)(對應(yīng)偽代碼中的Point1、Point2、Point3、Point4),點(diǎn)A為Point1與Point2連線的中點(diǎn)。過點(diǎn)A作垂線與羊體背部輪廓的交點(diǎn)記為點(diǎn)B,則點(diǎn)A與點(diǎn)B間的距離即為體高。關(guān)鍵點(diǎn)A確定后,利用偽代碼中行7、8定位圖8a中綠色虛線區(qū)域所示的ROI-2,其中,點(diǎn)H為Point2與Point3連線的中點(diǎn)。在ROI-2中從左向右提取每點(diǎn)的垂線上白色像素的數(shù)量并繪制變化曲線,結(jié)果如圖10a所示。定位圖10a曲線中最小值點(diǎn)(標(biāo)記為紅色點(diǎn)),該點(diǎn)對應(yīng)羊體胸深下端點(diǎn),記為點(diǎn)C。過點(diǎn)C作垂線與羊體背部輪廓的交點(diǎn)記為點(diǎn)D,則點(diǎn)C與點(diǎn)D間的距離即為胸深。
圖10 胸深、管徑、胸寬體尺計(jì)算特征點(diǎn)定位曲線Fig.10 Curve for calculation of body size parameters of chest depth, pipe diameter, and chest width
圖9所示偽代碼行18~21用于定位圖8a中的黃色虛線區(qū)域所示的ROI-3(兩個(gè)前腿中垂直度較大的一只)。按縱軸方向自上而下繪制區(qū)域內(nèi)寬度變化曲線如圖10b所示,按照管徑定義,選取所示曲線中波動較小的一段區(qū)域中的最小值點(diǎn)作為管徑,圖10b中的紅色點(diǎn)的縱坐標(biāo)即為管徑值,管徑計(jì)算方法偽代碼如圖9行24~27所示。完成管徑Pd提取后,擬合計(jì)算出管圍CCB為
(5)
圖9所示偽代碼的第30行用于確定圖8b所示的紅色虛線區(qū)域ROI-4。首先繪制羊體二值化俯視圖的寬度曲線(圖10c),然后定位曲線的極大值和極小值,取極大值中的最大值到極小值中的最小值之間的區(qū)域作為ROI-4,在圖10c中表現(xiàn)為兩個(gè)綠色點(diǎn)之間的區(qū)域,其中兩個(gè)綠點(diǎn)分別對應(yīng)羊體腹部寬度最大值點(diǎn)與脖子處最小值點(diǎn)。分析ROI-4區(qū)域內(nèi)的曲線,利用文獻(xiàn)[30]提出的方法定位曲線上的最優(yōu)拐點(diǎn),該最優(yōu)拐點(diǎn)縱坐標(biāo)值(圖10c)即為胸寬。胸深和胸寬提取完成后,以胸深為長軸,胸寬為短軸,利用橢圓周長擬合胸圍CG為
CG=2πb+4(a-b)
(6)
式中a、b——擬合橢圓長半軸和短半軸的長度
過胸深上端點(diǎn)D作傾斜角為45°的線并記其與前胸輪廓的交點(diǎn)為P,將點(diǎn)P作為體斜長的前端點(diǎn)。
根據(jù)定義,體斜長后端點(diǎn)位于羊坐骨結(jié)節(jié)后緣,在圖像中應(yīng)選擇尾巴根部所在點(diǎn)。在實(shí)際的圖像采集過程中,羊尾巴呈現(xiàn)多種姿態(tài),單一的方法難以實(shí)現(xiàn)準(zhǔn)確定位。本文根據(jù)尾巴跟羊體在側(cè)視、俯視圖像中的特征,將羊尾姿態(tài)分為圖11所示的3類,其中第1行圖像是尾巴局部區(qū)域的側(cè)視圖,第2行是其對應(yīng)的俯視圖。
圖11 體斜長后端點(diǎn)定位曲線Fig.11 Curves for locating end point of body slanting length
圖11a所示尾巴姿態(tài)的特點(diǎn)是俯視圖中尾巴與身體無重疊,在側(cè)視圖中尾巴完整露出。對于具有這一類型的尾巴姿態(tài),繪制如圖11a所示的側(cè)視圖中尾部寬度曲線,曲線的最優(yōu)拐點(diǎn)[25]即為對應(yīng)的體斜長后端點(diǎn)。圖11b所示尾巴姿態(tài)的特點(diǎn)是在俯視圖中尾巴與身體部分重疊,但俯視圖的背部寬度有明顯減小的特征點(diǎn)。對于這一類型的尾巴姿態(tài),在俯視尾部寬度變化曲線(圖11b)的尾部區(qū)域定位最優(yōu)拐點(diǎn),即為后端點(diǎn)x值,選擇側(cè)視輪廓中最右側(cè)點(diǎn)的y值,則點(diǎn)(x,y)構(gòu)成后端點(diǎn)。圖11c所示尾巴姿態(tài)的特點(diǎn)是在俯視圖中尾巴與身體完全貼合,且俯視圖中無明顯特征點(diǎn),在側(cè)視圖中尾部輪廓存在突變點(diǎn)。對于具有這一類型的尾巴姿態(tài),首先定位側(cè)視輪廓最右側(cè)端點(diǎn),對最右側(cè)端點(diǎn)的左側(cè)和上方輪廓擬合,得到如圖11c所示的輪廓曲線,則曲線上的拐點(diǎn)即為后端點(diǎn)。將體斜長的后端點(diǎn)記為點(diǎn)E,體斜長為P、E兩點(diǎn)間的距離。
當(dāng)不使用補(bǔ)光燈時(shí),俯視圖像的亮度隨室內(nèi)光線變化,需要為每只羊的俯視圖提供單獨(dú)的背景圖像,因此,在裝置上安裝補(bǔ)光燈,保證所有羊只俯視圖僅使用1幅背景圖像,即可通過背景減除法完成俯視羊體圖像二值化。選擇20幅俯視圖,手工制作模板,結(jié)果表明算法獲取的二值圖與模板圖像的交并比(IoU)為97.5%。
不同K取值條件下SLIC算法錯(cuò)誤分割的超像素占前景超像素的比例變化曲線如圖12a所示,隨著K值的增加,錯(cuò)誤率整體呈先下降后有所上升趨勢。但過高的K值也會導(dǎo)致超像素?cái)?shù)量增加,加大后續(xù)對超像素分類時(shí)的計(jì)算量。本文采用K為800的SLIC算法分割羊體側(cè)視圖像獲得的超像素如圖12b所示。
圖12 不同K時(shí)的羊體側(cè)視圖超像素分割Fig.12 Superpixel segmentation for side-view goat image in different K values
綜合利用SLIC(K=800)、SVM及RAG對羊體側(cè)視圖像進(jìn)行前景分割,部分結(jié)果如圖13所示。隨機(jī)選擇20幅圖像,手工制作其羊體前景區(qū)域二值圖,超像素分割方法獲取的羊體前景與手工制作獲得的羊體前景的IoU平均值為96.1%。
圖13 側(cè)視圖前景分割結(jié)果Fig.13 Results of side-view image segmentation
利用40組海門山羊雙視角圖像測試本文所提的體尺自動測量方法。使用軟尺人工測量體高、體斜長、胸深、胸寬、管圍和胸圍6個(gè)體尺參數(shù),使用前述方法對側(cè)視圖、俯視圖預(yù)處理,并評估側(cè)視圖的分割結(jié)果,然后由算法自動測量6個(gè)體尺參數(shù),并與人工測量值比較,得到的誤差率均值箱形圖如圖14所示。圖中,箱形框內(nèi)藍(lán)色線段和紅色圈分別為誤差中位值和均值,橫軸參數(shù)CCB、BH、CD、CW、CG及BSL分別表示管圍、體高、胸深、胸寬、胸圍和體斜長。
圖14 算法提取與手工測量體尺參數(shù)結(jié)果的相對誤差Fig.14 Errors of body sizes extracted using developed algorithm and measured manually
管圍人工測量值處于7.5~10.5 cm之間,算法的測量結(jié)果處于7.1~10.4 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為5.5%、5.4%、14.3%和1.1%。管圍誤差的主要原因是羊毛蓬松,造成算法測量值偏大,其次手工測量時(shí),測量位置靠近膝蓋,而算法測量局部最細(xì)處。同時(shí)腿部與地面不垂直的站姿也會造成誤差,且使用的擬合公式本身也會帶來一定的誤差。
體高人工測量值處于50~66 cm之間,算法的測量結(jié)果處于47~63 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為3.7%、4.1%、9.0%和0.2%。當(dāng)羊只頭部抬起時(shí),算法會測出更大的結(jié)果,因此體高測量受姿態(tài)影響較大,同時(shí)羊蹄區(qū)域是否被準(zhǔn)確分割也會影響體高的測量值。本文使用兩腳中點(diǎn)作為地平面,減小了耆甲特征點(diǎn)消失引起的誤差。
胸深人工測量值處于24~34 cm之間,算法的測量結(jié)果處于24~34.4 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為2.6%、2.5%、7.5%和0。胸深誤差是6個(gè)體尺參數(shù)中最小的,原因是胸深在非接觸的裝置中受姿態(tài)影響較小,且關(guān)鍵點(diǎn)的特征明顯,定位時(shí)的偏移很小,其主要誤差來源是胸深區(qū)域的分割精度。
胸寬人工測量值處于13.6~22.5 cm之間,算法的測量結(jié)果處于14.8~22.4 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為5.2%、4.5%、10.7%和0.4%。在人工測量羊體寬時(shí),難以貼合到羊軀體上測量,只能使用目測讀數(shù),故體寬的人工對比數(shù)據(jù)本身存在誤差。體寬誤差的主要原因是羊的軀體扭曲,在俯視圖中羊頭是否向前伸也影響體寬點(diǎn)的定位。
胸圍人工測量值處于60~92 cm之間,算法的測量結(jié)果處于62~86.3 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為4.1%、3.5%、13.6%和0.1%。本文采用橢圓擬合公式基于胸深和胸寬來擬合胸圍,由于羊胸圍不可能呈理想的橢圓形,因此該近似擬合方法存在固有誤差,且在羊只較瘦的狀態(tài)下,該誤差會進(jìn)一步擴(kuò)大。
體斜長人工測量值處于52~86 cm之間,算法的測量結(jié)果處于52.2~82 cm之間,相對誤差的平均值、中位數(shù)、最大值和最小值分別為3.9%、3.0%、11.6%和0.7%。體斜長的前端點(diǎn)定位方式較為理想,誤差的主要原因是體斜長后端點(diǎn)能否準(zhǔn)確定位,本文將羊尾姿態(tài)歸納為3類,并針對不同的羊尾姿態(tài)確定相應(yīng)的體斜長后端點(diǎn)定位方法,提升了體斜長提取精度。
使用二維相機(jī)測量羊體尺參數(shù)需要設(shè)置標(biāo)定板計(jì)算像素距離與實(shí)際距離的換算比例,但在實(shí)際使用中,羊只的體高不同造成不同羊只與俯視相機(jī)的距離不同,羊只在檢測倉內(nèi)的左右移動造成羊只與側(cè)視相機(jī)距離不同,使得總體誤差變大。本文將標(biāo)定板放置在可移動距離的中值,但仍有較大誤差。因此在使用中應(yīng)針對不同日齡或體型相近的羊群設(shè)置不同的標(biāo)定板,設(shè)置多種換算比例可近一步減小誤差。
雖然三維模型可提取更豐富的表型信息,且已有眾多與畜禽體尺相關(guān)的研究,但采用三維相機(jī)構(gòu)建羊體點(diǎn)云模型的文獻(xiàn)仍然較少,主要原因是羊的多視角三維數(shù)據(jù)難以采集:其生理習(xí)性靈活好動,難以與?;蜇i一樣,保持相對靜止的姿態(tài)或逐個(gè)低速通過設(shè)計(jì)好的通道。此外基于深度相機(jī)對活體類動物的三維建模仍處于研究階段,在實(shí)際場景下的建模精度、算法實(shí)時(shí)性、計(jì)算器性能與整體成本等因素難以滿足。本文設(shè)計(jì)了雙視角圖像采集裝置,并開發(fā)相應(yīng)的圖像分割算法和山羊體尺測量算法,可較好地滿足山羊體尺快速計(jì)算需求,較低的成本也有利于系統(tǒng)的產(chǎn)業(yè)化應(yīng)用。
本研究存在的不足之一是需要人工選擇站姿較為理想的山羊圖像進(jìn)行處理,后續(xù)可通過提取羊體骨架點(diǎn),并設(shè)計(jì)基于骨架點(diǎn)的理想站姿的羊體圖像自動篩選,實(shí)現(xiàn)體尺參數(shù)獲取的全自動化。二是對體尺參數(shù)差距較大的種群,需要分別設(shè)計(jì)標(biāo)定板的位置,得出不同的換算比例,以此降低誤差。
(1)設(shè)計(jì)了一種可自動采集山羊側(cè)視和俯視雙視角圖像的圖像采集裝置。提出了一種基于超像素分割和支持向量機(jī)的羊體側(cè)視圖像前景分割方法。首先使用SLIC算法將圖像分割為多個(gè)超像素,并構(gòu)建其特征向量,然后使用SVM對每個(gè)超像素分類,基于區(qū)域鄰接原理對結(jié)果進(jìn)一步修正,得到羊體側(cè)視圖像的二值圖。在側(cè)視圖中錯(cuò)誤分割的超像素占前景超像素的比例小于6%,交并比為96.1%。
(2)在海門山羊養(yǎng)殖場采集山羊側(cè)視圖、俯視圖數(shù)據(jù)集,并利用所提算法自動提取山羊的6個(gè)體尺數(shù)據(jù),與人工測量數(shù)據(jù)對比,結(jié)果表明:算法提取的管圍、體高、胸深、胸寬、胸圍及體斜長的平均誤差分別為5.5%、3.7%、2.6%、5.2%、4.1%和3.9%。
(3)為實(shí)現(xiàn)山羊體尺無接觸自動測量提供了一套裝置和方法,可滿足山羊體尺參數(shù)自動測量與體重自動估測的應(yīng)用需求,為研發(fā)基于體尺的山羊優(yōu)質(zhì)種質(zhì)資源高效篩選技術(shù)與平臺奠定了基礎(chǔ)。