石 煒,張顯宇,楊晶安,趙 巖
(內(nèi)蒙古科技大學(xué)機(jī)械工程學(xué)院,內(nèi)蒙古 包頭 014010)
牛體尺數(shù)據(jù)對(duì)于養(yǎng)殖戶監(jiān)測牛的生長及健康狀態(tài)有著重要意義[1]。此外,在肉品質(zhì)評(píng)價(jià)、選種以及科學(xué)育種等方面,牛體尺數(shù)據(jù)也是重要參數(shù)之一[2]。牧場通常以人工使用皮尺直接測量的方式確定牛體尺數(shù)據(jù)。但是,這種傳統(tǒng)的方法存在著測量結(jié)果不準(zhǔn)確、工作量大、容易引起牛的應(yīng)激反應(yīng)等諸多問題,因此,亟須研究人員開發(fā)出更為精準(zhǔn)、高效、安全的牛體尺測量方法。
隨著智慧農(nóng)牧業(yè)技術(shù)的發(fā)展與應(yīng)用,在畜牧業(yè)現(xiàn)代化大背景下[3],應(yīng)用機(jī)器視覺技術(shù)提升牛體尺測量的精準(zhǔn)性和效率,成為眾多學(xué)者研究的熱點(diǎn)方向。在國內(nèi),石煒等[4]使用基于邊緣的圖像分割技術(shù)獲取牛體尺參數(shù)。然而,當(dāng)牛只的毛色與周圍環(huán)境色彩相似時(shí),該方法無法有效地將目標(biāo)牛體區(qū)分出來。朱林等[5]采用OpenCV 機(jī)器視覺庫獲取牛體尺參數(shù),雖有一定效果,但穩(wěn)定性不夠,在復(fù)雜場景下應(yīng)用受到限制。趙建敏等[6]使用Mask R-CNN 雙階段目標(biāo)檢測算法提取牛體輪廓曲線,雖然這種雙階段算法能夠?qū)崿F(xiàn)較高的精度,但需要更多的計(jì)算資源和時(shí)間來完成2 個(gè)階段的計(jì)算。此外,由于需要進(jìn)行2 個(gè)階段的計(jì)算,雙階段算法可能會(huì)受到第一階段區(qū)域生成的誤差影響,從而導(dǎo)致檢測結(jié)果不準(zhǔn)確。
在牧場采集牛體圖像時(shí),常常會(huì)受到背景噪聲的干擾,導(dǎo)致難以獲得符合測量標(biāo)準(zhǔn)的完美圖像。為了更加精確地獲取牛的身體輪廓和體尺數(shù)據(jù),筆者提出了一種基于U-Net[7]的單階段網(wǎng)絡(luò)模型,用于建立自動(dòng)測量牛體高、體長和體斜長的方法。經(jīng)典U-Net 是一種基于全卷積網(wǎng)絡(luò)分割模型的算法,由編碼階段、解碼階段以及預(yù)測網(wǎng)絡(luò)三部分構(gòu)成。它能夠利用較少的圖像進(jìn)行端到端的訓(xùn)練,實(shí)現(xiàn)牛體輪廓曲線的快速分割。然而,由于牧場采集的牛體圖像中存在較多干擾因素,U-Net算法對(duì)圖像中牛體輪廓的分割能力尚且不足。為了解決這些問題,筆者在U-Net 的基礎(chǔ)上,提出一種A-Unet(Attention-Unet)算法,在U-Net 基礎(chǔ)上引入了CBAM 注意力機(jī)制 (Convolutional Block Attention Module,CBAM)[8]來增強(qiáng)U-Net 算法對(duì)牛體輪廓曲線分割精度。利用A-Unet 算法提取牛體輪廓后,使用動(dòng)態(tài)網(wǎng)格法提取牛體尺測量點(diǎn),并通過攝像頭標(biāo)定參數(shù)計(jì)算牛體尺數(shù)據(jù),這為牧戶在養(yǎng)殖過程中有效監(jiān)測牛的健康生長狀態(tài)提供了解決方案。
該研究以內(nèi)蒙古自治區(qū)錫林郭勒盟蘇尼特左旗某牧場的牛群為研究對(duì)象,選取21 頭年齡在1~3 周歲的牛,采集站姿圖片,并進(jìn)行人工體尺測量。將選取的牛只編號(hào)為1~21,用于后續(xù)試驗(yàn)的準(zhǔn)備工作。
體尺測量系統(tǒng)試驗(yàn)平臺(tái)由攝像頭和服務(wù)器構(gòu)成,其主要用途是采集牧場牛體的圖像。該測量系統(tǒng)的算法包括圖像分割算法和體尺測量算法,通過圖像分割算法提取出牛體輪廓曲線后,再利用體尺測量算法測量出牛體的體尺數(shù)據(jù)。體尺測量系統(tǒng)的流程和原理如圖1 所示。
圖1 牛體尺測量系統(tǒng)流程
具體流程如下:
①通過在牧場使用攝像頭采集牛的站姿圖像,并結(jié)合超高頻射頻識(shí)別技術(shù)識(shí)別牛的RFID 耳標(biāo)[9],實(shí)現(xiàn)每張圖像牛只編號(hào)的標(biāo)注。
②將采集的圖像送入A-Unet 算法,用于牛體輪廓的分割,并生成帶有牛體掩模信息的圖像。
③利用邊界尋找函數(shù)findContours,從帶有掩模信息的圖像中提取牛體的輪廓曲線[10],針對(duì)提取出的牛體輪廓曲線,運(yùn)用動(dòng)態(tài)網(wǎng)格法提取輪廓曲線上的體尺測點(diǎn),并根據(jù)這些測點(diǎn)計(jì)算當(dāng)前牛的體尺數(shù)據(jù)[4]。
牛體尺測量點(diǎn)位置詳見圖2。其中,A 點(diǎn)為鬐甲點(diǎn),B 點(diǎn)為牛尻點(diǎn),C 點(diǎn)為肩胛前端點(diǎn),D 點(diǎn)為A點(diǎn)的垂點(diǎn)。體長為A、B 兩點(diǎn)的水平距離,體高為A、D 之間的垂直距離,體斜長為B、C 兩點(diǎn)的直線距離。
圖2 牛體尺測量點(diǎn)示意圖
1.3.1 A-Unet 算法整體結(jié)構(gòu)
經(jīng)典的U-Net 是一種深度神經(jīng)網(wǎng)絡(luò)架構(gòu),常用于圖像語義分割任務(wù)。該網(wǎng)絡(luò)采用編碼器-解碼器結(jié)構(gòu),能夠從原始圖像中提取出高層次的特征并進(jìn)行像素級(jí)別的預(yù)測。U-Net 還采用了跳躍式連接,將編碼器和解碼器中對(duì)應(yīng)的特征圖相連接,實(shí)現(xiàn)了多層次、多尺度的信息傳遞和融合,從而提高了模型的準(zhǔn)確性和泛化能力。該研究提出一種將CBAM 注意力機(jī)制模塊集成進(jìn)U-Net 的智能牛體尺測量算法,增強(qiáng)U-Net 神經(jīng)網(wǎng)絡(luò)的牛體輪廓曲線分割精度,提高了牛體尺測量的準(zhǔn)確性。
圖3 展示的是改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu),由于注意力機(jī)制模塊的權(quán)值是隨機(jī)初始化的,因此將其添加到加強(qiáng)特征提取部分中可以取得更佳的效果。CBAM 注意力機(jī)制,可以自適應(yīng)地控制特征圖中各個(gè)通道的權(quán)重,以提高模型的表現(xiàn)力和魯棒性。具體而言,CBAM 模塊由兩部分組成:通道注意力和空間注意力。通道注意力模塊利用全局平均池化操作對(duì)每個(gè)通道的特征圖進(jìn)行壓縮,并通過2個(gè)全連接層學(xué)習(xí)每個(gè)通道的重要性權(quán)重,從而提高通道之間的相關(guān)性和互補(bǔ)性??臻g注意力模塊通過在不同空間維度上應(yīng)用多個(gè)卷積核和池化操作,以學(xué)習(xí)每個(gè)像素的重要性權(quán)重,并提高不同空間位置的特征的互補(bǔ)性和區(qū)分性。因此,引入CBAM 注意力機(jī)制的A-Unet 算法可以提高網(wǎng)絡(luò)對(duì)不同尺度、不同位置和不同特征的適應(yīng)性,從而在牛體圖像分割任務(wù)中取得更好的性能表現(xiàn)。
圖3 融合CBAM 模塊的A-Unet 算法模型結(jié)構(gòu)
1.3.2 CBAM 注意力機(jī)制
注意力機(jī)制的核心重點(diǎn)在于引導(dǎo)網(wǎng)絡(luò)關(guān)注更加重要的地方。在U-Net 算法模型的基礎(chǔ)上嵌入CBAM 模塊,引入注意力機(jī)制可以改變資源分配的方式,使更多的資源傾斜到目標(biāo)對(duì)象上。CBAM將通道注意力機(jī)制和空間注意力機(jī)制結(jié)合,在輸入的特征層上首先使用通道注意力模塊進(jìn)行加權(quán),然后使用空間注意力模塊進(jìn)行加權(quán),既關(guān)注通道的重要性,又關(guān)注每個(gè)像素點(diǎn)的重要性。在AUnet 算法的訓(xùn)練過程中,為圖像中的牛體目標(biāo)對(duì)象分配更多的權(quán)重參數(shù),提高目標(biāo)特征提取性能,同時(shí)減少背景噪聲的影響。
CBAM 注意力機(jī)制首先使用通道注意力模塊來計(jì)算特征圖中每個(gè)通道的權(quán)重,然后將計(jì)算得到的權(quán)重乘以原始特征圖,得到一個(gè)加權(quán)后的特征圖。接著,空間注意力模塊將對(duì)加權(quán)后的特征圖進(jìn)行處理,以計(jì)算每個(gè)像素點(diǎn)的權(quán)重,最終得到一個(gè)基于通道和空間注意力的加權(quán)特征圖。
CBAM 注意力機(jī)制可以用公式(1)描述:
式中,x 是輸入特征圖,c1和s1分別表示通道數(shù)和空間大小,c2和s2分別表示通過通道注意力模塊s2空間注意力模塊處理后的特征圖的通道數(shù)和空間大小。W1和b1是通道注意力模塊中的權(quán)重和偏置項(xiàng),W2是空間注意力模塊中的權(quán)重。δ 表示ReLU 激活函數(shù)。注意力機(jī)制模塊如圖4 所示。
圖4 注意力機(jī)制模塊
①CBAM 注意力機(jī)制中的通道注意力機(jī)制,可以自適應(yīng)性地調(diào)整每個(gè)通道的權(quán)重,以提高模型在不同任務(wù)中的表現(xiàn)。圖5 是通道注意力機(jī)制的具體實(shí)現(xiàn)方式。
圖5 通道注意力機(jī)制模塊
CBAM 的通道注意力機(jī)制主要由2 個(gè)子模塊?組成:通道最大值池化(MaxPool)和通道平均池化(AvgPool)。這2 個(gè)子模塊共同構(gòu)成了一個(gè)通道注意力模塊,用于學(xué)習(xí)每個(gè)通道在不同空間位置上的重要性和相關(guān)性,并根據(jù)這些權(quán)重進(jìn)行特征融合。首先,通道最大值池化模塊可以學(xué)習(xí)每個(gè)通道在不同空間位置上的最大響應(yīng),即學(xué)習(xí)通道間的重要性。其次,通道平均池化模塊可以學(xué)習(xí)通道間的相關(guān)性,即學(xué)習(xí)每個(gè)通道在不同空間位置上的平均響應(yīng)。然后,將上述2 個(gè)模塊的輸出拼接起來,并使用一個(gè)全連接層和一個(gè)sigmoid 激活函數(shù)進(jìn)行加權(quán)平均。
CBAM 的通道注意力機(jī)制可以用公式 (2)來描述:
最終得到的MC(F)是一個(gè)通道注意力向量,它將每個(gè)通道的權(quán)重調(diào)整為適當(dāng)?shù)闹?。通過引入通道注意力機(jī)制,CBAM 可以學(xué)習(xí)每個(gè)通道在不同空間位置上的重要性和相關(guān)性,并根據(jù)這些權(quán)重進(jìn)行特征融合,從而提高模型的性能。
②CBAM 的空間注意力機(jī)制是另一個(gè)子模塊,用于學(xué)習(xí)每個(gè)空間位置上的重要性,并對(duì)輸入特征圖進(jìn)行加權(quán)平均。圖6 是空間注意力機(jī)制的具體實(shí)現(xiàn)方式。
圖6 空間注意力機(jī)制模塊
CBAM 的空間注意力機(jī)制主要由2 個(gè)子模塊組成:空間最大值池化(MaxPool)和空間平均池化(APool)。這2 個(gè)子模塊共同構(gòu)成了一個(gè)空間注意力模塊。
CBAM 的空間注意力機(jī)制可以用公式 (3)來描述:
式中,σ 表示sigmoid 函數(shù),f7×7表示濾波器大小為7×7 的卷積運(yùn)算。對(duì)經(jīng)過通道注意力機(jī)制的特征層F'=1×H×W 經(jīng)過全局平均池化和全局最大池化得到Favg'=1×H×W 和Fmax'=1×H×W,之后將這2個(gè)結(jié)果進(jìn)行一個(gè)基于通道的堆疊拼接,得到一個(gè)Favg+max'=2×H×W 的特征圖,使用通道數(shù)為1 的7×7卷積核進(jìn)行卷積運(yùn)算,壓縮成通道數(shù)為1 的特征圖。通過sigmoid 函數(shù)運(yùn)算得到空間注意力特征Ms=1×H×W。
1.3.3 訓(xùn)練參數(shù)與分割精度評(píng)估指標(biāo)
試驗(yàn)硬件平臺(tái)為AMD5600X 處理器 (主頻3.70 GHz)和一塊英偉達(dá)RTX3060 顯卡(顯存為12 GB)。訓(xùn)練數(shù)據(jù)采用開源的COCO 數(shù)據(jù)集中的2 055 張牛體圖片,并通過縮放、裁剪等預(yù)處理實(shí)現(xiàn)了數(shù)據(jù)增強(qiáng),能有效地降低由于數(shù)據(jù)量不足而導(dǎo)致的過擬合現(xiàn)象[11]。
該試驗(yàn)在顯存為12 GB 的英偉達(dá)RTX3060顯卡上運(yùn)行,使用Python 編程語言在Pytorch 框架內(nèi)實(shí)現(xiàn)。批量大小設(shè)為16。初始學(xué)習(xí)率設(shè)為0.001,迭代次數(shù)為200,并將網(wǎng)絡(luò)分類數(shù)設(shè)為2,以區(qū)分牛體區(qū)域和非牛體區(qū)域。
語義分割的評(píng)價(jià)指標(biāo)包括像素準(zhǔn)確率(Pixel Accuracy,PA)、平均像素準(zhǔn)確率(Mean Pixel Accuracy, mPA)、平均交并比(Mean Intersection over Union,mIU)??梢酝ㄟ^這些評(píng)價(jià)指標(biāo)來評(píng)估所提出的A-Unet 算法的性能[12]。這些評(píng)價(jià)指標(biāo)的計(jì)算公式如下所示:
式中,TP 表示模型正確預(yù)測為牛體的像素點(diǎn)數(shù)量,F(xiàn)P 表示模型錯(cuò)誤地將背景像素點(diǎn)預(yù)測為牛體的數(shù)量,F(xiàn)N 代表模型錯(cuò)誤地將牛體像素點(diǎn)預(yù)測為背景的數(shù)量,TN 表示模型正確預(yù)測為背景的像素點(diǎn)數(shù)量。
將U-net 與A-Unet 進(jìn)行對(duì)比試驗(yàn),所有試驗(yàn)均采用相同的損失函數(shù)與訓(xùn)練參數(shù)。最后,比較各項(xiàng)指標(biāo)的得分情況。由表1 可知,A-Unet 算法在PA、mPA 和mIoU 方面的表現(xiàn)優(yōu)于原始網(wǎng)絡(luò)。這表明,融入注意力機(jī)制模塊對(duì)提高網(wǎng)絡(luò)性能有實(shí)質(zhì)性的作用。
表1 不同的算法分割結(jié)果對(duì)比表
1.4.1 輪廓曲線的提取
牛體輪廓提取首先是通過A-Unet 算法處理原始圖像生成掩碼圖像,再對(duì)掩碼圖像進(jìn)行二值化處理[13]。然后利用帶有掩模信息的二值化圖像,使用邊緣尋找函數(shù)findContours 提取牛體輪廓曲線,最后使用函數(shù)drawContours 提取出牛的輪廓。相比于經(jīng)典的邊緣檢測方法如Sobel 算子、Canny算子、拉普拉斯算子等[14-15],使用A-Unet 算法分割牛體輪廓曲線再進(jìn)行邊緣提取的方法,不需要進(jìn)行輪廓優(yōu)化和輪廓擬合,提高了提取精度,極大地縮短了輪廓提取時(shí)間,并且更適用于復(fù)雜的背景。圖7A 為原始圖像,圖7B 為A-Unet 算法分割后的圖像,圖7C 為提取出的牛體邊緣輪廓圖像。
圖7 目標(biāo)牛體輪廓圖
1.4.2 動(dòng)態(tài)網(wǎng)格法提取牛體尺測量點(diǎn)
首先,對(duì)二值化的牛體輪廓圖像使用boundingRect 函數(shù)獲取牛體輪廓圖像的最大外接矩陣。最大外接矩陣是一個(gè)包括圖像中所有關(guān)鍵點(diǎn)的水平直角矩形。該函數(shù)返回的值中,(x,y)代表矩形的左上角坐標(biāo),(w,h)代表矩形的寬度和高度。以(x,y)為坐標(biāo)原點(diǎn)建立坐標(biāo)系,為后續(xù)體尺測量做好準(zhǔn)備(見圖8A)。
圖8 體尺測量點(diǎn)的提取過程
在牛體輪廓圖像處理中,像素點(diǎn)坐標(biāo)均值是指圖像中輪廓線像素點(diǎn)的坐標(biāo)位置的平均值。針對(duì)體型不同的牛體,動(dòng)態(tài)網(wǎng)格中各測量點(diǎn)的提取均建立在其輪廓線像素點(diǎn)的坐標(biāo)基礎(chǔ)之上[16],因此,對(duì)于不同的牛體輪廓曲線,可以提取到對(duì)應(yīng)的牛體尺測量點(diǎn)。
①體高測量點(diǎn)鬐甲點(diǎn)A 的獲取
如圖8B 所示,豎直方向的中部豎線Wm表示牛體像素點(diǎn)橫坐標(biāo)的動(dòng)態(tài)均值,計(jì)算方式為xm=x。網(wǎng)格中Wu線表示橫坐標(biāo)像素均值線Wm與其右邊界線的等分線,其公式如下:
式中,牛體水平朝左時(shí)flag=1,朝右時(shí)flag=-1。用于標(biāo)定體高的鬐甲點(diǎn)A 恰好為Wu線與牛體輪廓的相交點(diǎn)中縱坐標(biāo)較小的點(diǎn)。與此同時(shí),鬐甲點(diǎn)到最大外接矩陣下邊的垂直距離,即為牛體的體高。
②體長測量點(diǎn)肩胛前端點(diǎn)C 的獲取
如圖8C 所示,動(dòng)態(tài)網(wǎng)格中水平方向的中部橫線Hm表示牛體像素點(diǎn)縱坐標(biāo)的動(dòng)態(tài)均值,計(jì)算方式為ym=y。肩胛前端點(diǎn)C 為Hm與其輪廓交點(diǎn)中橫坐標(biāo)較小的點(diǎn)。
③體斜長測量點(diǎn)牛尻點(diǎn)B 的獲取
在獲取體長測量點(diǎn)基礎(chǔ)上,Hu表示Hm均值線以上像素縱坐標(biāo)的動(dòng)態(tài)均值,計(jì)算方式如下:
如圖8D 所示,牛尻點(diǎn)B 為Hu與其輪廓交點(diǎn)中橫坐標(biāo)較大的點(diǎn)。
規(guī)定攝像頭距離牛體200cm,采用20cm×20 cm的棋盤格在此處進(jìn)行標(biāo)定,確定相機(jī)的內(nèi)參和外參,以便將像素坐標(biāo)轉(zhuǎn)換為實(shí)際物體坐標(biāo),此處的像素比例記為P。根據(jù)上小節(jié)提取的4 個(gè)體尺測量點(diǎn),通過歐氏距離計(jì)算牛體長、體高以及體斜長的像素長度,隨后進(jìn)一步將像素長度轉(zhuǎn)換為牛的真實(shí)體尺數(shù)據(jù),采用下述公式計(jì)算:
式中,(X1,X2)、(Y1,Y2)是體尺測量點(diǎn)的坐標(biāo),L 為體尺長度。計(jì)算體高時(shí)選取鬐甲點(diǎn)A 到最大外接矩陣的下邊的垂直距離為體高的像素長度。測量體長時(shí),選取鬐甲點(diǎn)A 和牛尻點(diǎn)B 的水平距離作為體長的像素長度。計(jì)算體斜長時(shí),牛尻點(diǎn)B 到肩端點(diǎn)C 的直線距離為體斜長的像素長度。
對(duì)采集的21 頭牛體圖像分別進(jìn)行試驗(yàn),對(duì)基于A-Unet 的牛體尺測量方法進(jìn)行驗(yàn)證。首先,采用人工測量方式獲取牛只的體高、體長、體斜長3項(xiàng)數(shù)據(jù)作為試驗(yàn)樣本的參考值。接著,使用該研究提出的方法進(jìn)行輪廓提取和特征點(diǎn)提取,并計(jì)算每張圖像的體尺數(shù)據(jù),作為該方法得出的牛只體尺數(shù)據(jù)。最后,將自動(dòng)測量結(jié)果與人工測量結(jié)果進(jìn)行比較后,給出了針對(duì)牛體的測量誤差分析表,詳見表2。
表2 牛體測量實(shí)驗(yàn)結(jié)果表
經(jīng)過驗(yàn)證,該研究所提出的基于A-Unet 的牛體尺測量方法與人工測量的結(jié)果相比,體高平均相對(duì)誤差為4.16%,體長平均相對(duì)誤差為4.05%,體斜長相對(duì)誤差為4.27%。與此同時(shí),該方法測量時(shí)不需接觸牛只,從而避免了與牛只接觸所引發(fā)的其他問題。該方法在提取牛只輪廓方面,相較于傳統(tǒng)邊緣檢測處理方法,具有更加精準(zhǔn)的提取結(jié)果,并且簡化了提取步驟,更具有廣泛的適用性。結(jié)果表明,該方法能夠滿足設(shè)計(jì)的所有需求。
牛體尺數(shù)據(jù)是衡量牛只體型大小和生長發(fā)育狀況的重要指標(biāo)。通過測量牛只的身體尺寸,可以了解其體型大小、肉質(zhì)狀況、生長發(fā)育水平以及潛在的育種價(jià)值,從而為牛只的管理、飼養(yǎng)和育種提供科學(xué)依據(jù)。此外,牛體尺數(shù)據(jù)也是進(jìn)行肉牛生產(chǎn)的必要條件,是評(píng)定肉牛肉質(zhì)等級(jí)和肉牛的定級(jí)、分類的重要依據(jù)之一,因此,牛體尺數(shù)據(jù)的準(zhǔn)確性和可靠性對(duì)于農(nóng)牧業(yè)生產(chǎn)和肉牛行業(yè)的發(fā)展至關(guān)重要。
該研究設(shè)計(jì)了一套基于A-Unet 算法的牛體尺測量方法。該方法通過目標(biāo)分割、輪廓提取、體尺測量點(diǎn)提取以及體尺計(jì)算實(shí)現(xiàn)了牛體尺的自動(dòng)測量,能夠有效地替代人工測量的方式。但是,該方法也存在一些局限性,如對(duì)于牛站姿不平行于鏡頭時(shí)會(huì)存在站姿偏角,導(dǎo)致測得的體尺數(shù)據(jù)會(huì)有偏差。未來的研究可以進(jìn)一步探討如何通過改進(jìn)算法對(duì)檢測成功率與精準(zhǔn)度進(jìn)行提升,以達(dá)到準(zhǔn)確無誤的牛體尺自動(dòng)測量的目的,以及如何將該方法應(yīng)用于實(shí)際生產(chǎn)中。
與現(xiàn)有牛體尺測量方案相比,該研究提出了一種新的輪廓提取與牛體尺計(jì)算的非接觸式測量方法,通過與人工測量結(jié)果進(jìn)行對(duì)比試驗(yàn),測得的牛體高、體長和體斜長平均相對(duì)誤差分別為4.16%、4.05%、4.27%,驗(yàn)證了該方法的可行性。該方法能夠滿足牧戶對(duì)于牛體尺測量誤差在8%以內(nèi)的需求,為機(jī)器視覺在牛體尺測量方面應(yīng)用提供了新的參考。