?

基于KinectV2的豬體三維點云重構與體尺測量

2024-02-21 06:00林文祉鄭志強
軟件導刊 2024年1期
關鍵詞:豬體體尺小豬

李 哲,林文祉,翁 智,鄭志強

(內蒙古大學 電子信息工程學院,內蒙古 呼和浩特 024005)

0 引言

育肥豬養殖生產過程中連續監測豬體尺參數,能有效掌握豬的生長狀態,是反映豬體健康與否的有效手段,是保證動物福利的有力工具。傳統的豬體體尺測量方法主要采用測杖、圓形觸測器、軟尺等工具進行人工接觸式測量,對豬的姿態要求較高,不僅測量效率低下還會影響動物福利[1]。通過非接觸式體尺測量方法,一方面能實現育肥豬的體況監測,選取體況表現好的豬作為種豬培養;另一方面能提升測量效率,節省大量人工成本和時間成本,降低人員進入導致豬群患病的風險。

近年來,人工智能研究與畜牧業生產相結合,在國內外已經有部分成功案例[2]。Condotta 等[3]測試了5 種深度相機在畜牧業中的適用情況,以評估相機在玉米地及養豬場測量的準確性與可重復性,證實了飛行時間(Time of Flight,TOF)技術最適合在室內應用。Wang 等[4]設計了一種由兩臺深度相機組成的便攜式豬體體尺測量裝置,通過兩個視角采集、處理點云數據,實驗平均誤差為7.72%,證實了點云數據測量體尺的可行性。Du 等[5]提出一種2D-3D 融合的體尺測量方法,利用深度學習檢測RGB 圖像上的體尺測點,并將其投影到三維點云上。該方法相較于普通二維測量而言,具有更高的準確性與魯棒性,尤其在周長測量方面優勢更為明顯。Luo 等[6]通過統計形狀模型擬合牲畜的點云數據,在重建的三維點云中提取體尺參數,解決了牲畜運動所導致的點云缺失與配準困難的問題。徐金陽等[7]架設兩臺Kinect 相機從豬體的側面、上面,利用凸包絡和最大外接輪廓測量豬在非標準姿勢下的體尺參數,提供了體尺計算的新思路。葉文帥等[8]基于深度圖像數據,通過分析肉牛骨架特征和身體輪廓特征,對不同姿態下的肉牛進行體尺測量,去除頭部后準確率達到92%,為多姿態下的牛肉體尺測量提供了技術支撐。潘泰任等[9]基于KinectV2 深度傳感器,從頂部和兩側其中一側采集點云數據計算羊的體尺數據,為羊的胸圍、管圍測量提供了切實可行的新方法。趙宇亮等[10]提出一種利用深度學習模型篩選豬自然站立時的背部圖像,然后通過主干網絡訓練、識別豬體測量關鍵點。

此外,許多研究人員提出了不同的系統,從二維圖像中提取牲畜特征以體現豬體體型或身體狀況[11-13]。Kyungkoo 等[14]利用特征組合和神經網絡,通過二維圖像估計育肥豬的體重數據,平均誤差為3.15 kg。目前,由于豬的養殖環境復雜、防疫條件嚴格、豬姿態變化較大、在復雜背景和光線等影響下豬體的關鍵部位輪廓提取難度大、精度低,這也是準確提取豬體尺測點所面臨的重要問題。為此,Ruchay 等[15]利用KinectV2 進行非剛性三維重建計算目標尺寸,測量了赫里福德牛的9 個體尺參數。Hansen等[16]證明三維圖像能提取與身體狀況相關的特征,可用于評分身體狀況。Cozler 等[17]掃描整個牛群,通過比較人工測量和掃描儀測量的結果得出,未來奶牛群能根據動物體積和表面積進行管理。

本文創新之處在于:①實驗設備為KinectV2 相機,具有價格低、精度高、易操作等優勢;②實驗工作較完整、改進較多,從點云精簡到點云配準都針對體尺度測量中的實際問題進行了改進,并且效果顯著;③搭建了用戶操作軟件,結合相機標定、點云濾波、點云精簡、點云配準體尺測量等環節搭建體尺測量平臺,實現了無人接觸、一鍵測量,實驗測量的平均誤差為2.06%,能滿足育肥豬的生產標準。

1 測量平臺設計及數據集構建

本文搭建了一種基于Kinect 深度相機的三維測量平臺,以解決農場內豬體體尺的非接觸測量問題,具體構建如圖1 所示。由于本文使用了3 臺KinectV2 相機進行平臺搭建,因此對3 臺Kinect 的左上、右上兩兩進行標定得到其三維對應關系,為后續點云處理提供支持。

Fig.1 Point cloud reconstruction volumetric measurement process圖1 點云重構體尺測量流程

如圖2 所示,KinectV2 深度相機從左、右、上3 個方向獲取不同視角的局部點云,攝像頭固定裝置設計為方向可調節框架,能在測量不同大小牲畜時調整采集視角。由于牲畜在自由運動情況下,采集局部點云并實現三維重構工作中局部點云的同步采集非常關鍵。因此,通道采用雙觸框PLC 控制同步方案,試驗模型豬放置在傳輸軌道上模擬牲畜自由通行。實驗所用數據為本文測量平臺實際采集的153組模型小豬點云數據。

Fig.2 3D data collection of pig body圖2 豬體三維數據采集

2 點云數據處理

2.1 直通濾波

在使用KinectV2 采集點云時,可比較不同濾波方式所得到的效果[18]。通常在明確目標區域的前提下,只需要采集場景中的部分區域,此時在X、Y、Z 坐標軸上設定閾值使用直通濾波去除閾值之外的噪聲點云,即可快速獲取目標區域點云。直通濾波處理目標點云的結果如圖3所示。

Fig.3 Direct filtering processing results圖3 直通濾波處理結果

2.2 點云精簡

針對初始點云數據存在噪聲、不均勻性和特征不明顯的問題[19]。本文結合加權局部最優投影算法(Weighted Local Optimal Projection Algorithm,WLOP)[20],提出了一種基于WLOP 的特征優化點云精簡算法,由高斯映射結合空間密度權重自適應地將點云數據劃分為特征部分及非特征部分。

首先,求得初始點云的法向量;然后,針對特征點的法向量增加優化環節,在保證特征點完整度的前提下,根據特征優化后的相鄰點擬合平面;最后,將優化后的法向量權重引入結合空間權重的投影算法和加權局部最優投影算法中,實現精簡點云的目的。

實驗表明,本文算法在保證點云均勻的前提下,即使精簡率較高也能與傳統方法一樣保持點云特征,有利于點云數據的后續處理[21]。

2.2.1 點云的法向量計算與特征點劃分

為了保證點云劃分的精度,本文采用基于局部表面擬合算法計算初始點云的法向量,以區分數據特征點和非特征點區,便于后續處理。假設p為點云中的各個點,設k為其鄰近點,結合最小二乘法設L為局部平面,n為平面L的法向量,d為坐標原點到L的距離,可得:

由式(1)、式(2)可知,平面L經過k個鄰近點的質心,下一步需要引入協方差矩陣M解決特征值分解問題,通過求解協方差矩陣M的最小特征值得到特征向量,即點p的法向量。

通過平面擬合計算法向量時,由于相鄰點個數k值與點云中的噪聲相關,因此選取能大致去除噪聲并保持特征的k值得出的法向量精度較高,但僅限在平滑區域。在處理類似折痕、角點等尖銳特征的空間相鄰點時,由于尖銳特征由多個曲面產生,將導致法向量估值的誤差較大[22]。

為此,本文利用高斯映射區分平滑區域和尖銳區域,具體操作為:首先,將所有的法向量映射到單位球上,平滑區域的單位球上存在聚類點,尖銳區域由曲面構成可創建多個聚類點,聚類點與獨立的點云區域一一對應,如圖4所示。

Fig.4 Gaussian mapping of normal vectors圖4 法向量的高斯映射

接下來,利用半球面處理映射。將在平滑區域與相鄰點間法向量角度夾角最小的點作為種子點,對其進行法向量重定向,然后在估計初始法向量的同時進行高斯映射[23]。最后,將球面上的各點作為一個聚類,計算聚類點的平均距離,并將平均距離進行合并。

2.2.2 特征點的法向量優化

由于同一曲面的法向量相較于多個曲面誤差更小,因此只選擇同一曲面的相鄰點法向量進行計算,則相鄰點到該平面的距離和最小。

式中:n為法向量,對應的投影距離為d;ρ(x)=1 -;相鄰點的影響由參數σω控制;離群點的影響由參數σρ控制。ρ根據不同離群點殘值大小賦予不同權重,例如為殘值大的離群點賦予的ρ值較小,以在去除噪聲的同時保留尖銳特征,但該方法無法針對非同一曲面進行計算。

由于大部分特征點分布的位置曲率變化較大,而式(4)中只包含距離函數d。此時,可能使曲率變化較大的特征區域所賦予的參數ρ出現較大誤差,導致精度下降。因此,需要引入法向量權重函數:

在引入法向量權重函數后,重新使用加權迭代最小二乘法擬合平面確定法向量。

式中:lk=(pi-p)Tnk-dk;ψ(x)=表示第k次迭代后第i個相鄰點到點p的擬合曲面的殘差。

當初值ψ()=1時,權重函數不變時對應的協方差矩陣為:

設點p有K個相鄰點,其中:

最后,求解最小特征值所對應的特征向量,即為當前擬合曲面的法向量[24]。

2.2.3 優化WLOP方法的特征保持能力

優化WLOP 方法的特征保持能力,重點在于分別處理特征點及非特征點。例如,引入法向量權重單獨處理非特征點,由投影曲面代替原始點云進行計算,具體計算公式如式(9)所示,實驗結果如圖5所示。

Fig.5 Results of the pig simplification algorithm圖5 小豬精簡算法結果

由圖5 可見,經過精簡處理后的小豬點云邊緣清晰,內部冗余點云精簡適度。在滿足體尺關鍵測點的前提下,既去除了部分無用點云,又大幅減小了整體空間占用,加快了系統運算速度。

3.3 點云分割

本文采用歐式聚類分割算法、區域增長分割算法處理小豬點云與地面點云。圖6 分別為歐式聚類算法及區域增長算法處理結果,圖6 中輪廓部分點云和部分地面點云分別表示分割算法處理后的平面點云及小豬模型的輪廓[25]。

Fig.6 Point cloud segmentation results圖6 點云分割結果

實驗表明,該步驟能剔除測量目標之外的點云數據,便于點云配準、提升測量精確度,既減少了數據空間的占用,又能提升系統運行速度。

4 實驗結果與分析

4.1 改進ICP點云配準

傳統的配準算法依靠重合區域進行匹配,因此需要兩個視角下的點云盡可能多的區域重合,重合部分越多,效果越好[26]。然而,對于重合面積較小的點云,容易出現局部收斂,配準效果差。

為了解決該問題,本文提出一種基于Super4pcs 的改進快速配準方法,以小豬點云為配準實驗對象展開實驗,實驗結果如圖7 所示。其中,從左至右依次為小豬的左側、上方、右側點云圖。

Fig.7 Partial point clouds captured by multi-view cameras圖7 多視角相機采集的部分點云

圖8 為傳統ICP 算法處理后的豬體點云數據與改進后的ICP 算法處理后的豬體點云數據。實驗統一使用基于WLOP 的特征優化點云精簡算法處理點云數據,由于粗配準算法的精確性,兩種算法在迭代次數為25 時基本收斂。實驗表明,該方法配準效果較好,配準后的兩片點云在坐標軸上的平移距離基本相同。

Fig.8 Comparison results before and after ICP registration improvement圖8 ICP配準改進前后比較結果

Fig.9 Body size key measurement points圖9 體尺關鍵測點

由此可見,傳統ICP 配準算法在豬體臀部和頭部存在明顯不重合的情況,改進的ICP 算法將多視角豬體點云數據配準結果進行三維匹配,各部位基本重合,獲得了完整的豬體三維點云。同時,改進的ICP 算法運算效率相較于傳統ICP 算法提升65.34%,配準誤差減小53.85%,證明了改進后ICP算法的精度和速度更優,具體數據如表1所示。

Table 1 Comparison results between traditional ICP algorithm and improved ICP algorithm表1 傳統ICP算法與改進后的ICP算法比較結果

4.2 體尺測點提取

本文按照傳統的卷尺測量方法,對完整的豬體點云進行體長、體寬、體高、臀寬、臀高的體尺測點估計,如9 圖所示。其中,A 點為體長關鍵測點,B 點為體高關鍵測點,C點為體寬關鍵測點,D 點為臀寬關鍵測點,E 點為臀高關鍵測點[27]。

豬體體尺測點通過豬體背部點云數據,找到體尺測點的局部極值點和凹陷點計算豬體體長、體寬和體高等體尺數據的端點[28]。其中,體長一般測量兩耳凹陷點部位的中心點到尾根部位點的距離。由于已經將小豬模型點云統一到標準坐標系(見圖10),因此豬體尾尖點為Y 軸正方向的極值點,但不同種類豬的尾根部位點與尾尖點的距離不同,而尾根部測點是確定體長數據的重要端點,因此必須按照實際情況具體分析。體寬的定義為腹部最寬點之間的距離,然而前肢和后肢的寬度會影響身體寬度的測量,因此去除頭部后沿Y 軸方向取X 的極大值,第一個極大值為前肢寬度,第二極大值為體寬,第三極大值(最大值)為臀寬(見圖11)。

Fig.10 Coordinate system correction圖10 坐標系矯正

Fig.11 Body length,body width,hip width measurement points圖11 體長、體寬、臀寬測點

實驗表明,本文方法雖然具有較好的體尺測量效果(見表2),但需要多角度的點云數據,不同豬種的點云擬合效果是否存在差異還有待驗證。同時,豬的姿勢對體型的測量存在影響,例如降低小豬的頭部會降低身高測量結果,但對體寬測量結果影響不大;C 形姿勢不影響體高測量,但會影響體寬測量;如果豬的身體扭曲,C 形姿勢也會影響臀寬的測量。此外,點云缺失也是導致測量誤差的另一個重要因素,因此多角度Kinect 相機下的三維點云重構及體尺測量還需深入研究,以期在實際測量中保持較高的精度。

Table 2 Comparison of measurement errors of body measurements at different angles表2 不同角度下的體尺測量誤差比較

5 結語

本文提出一種基于多視角深度相機下的豬體體尺測量解決方案,旨在實現其在商業農場中的應用。通過參考圓柱體的配準方法降低豬體尺寸測量的計算量,提升了計算過程的效率。

實驗表明,選取包含標準姿勢的豬輪廓的點云估計體長、體高、體寬、臀高、臀寬,平均誤差為2.65%、1.87%、1.75%、2.07%、1.96%,證實了所提方法獲得的數據在關鍵體尺測量方面具有較高的精度。同時,基于改進后的ICP點云配準的新測量方法,不僅提升了豬體側面點云配準精度,還大幅度提升了豬體背部曲線擬合的精度。

然而,豬的姿勢及點云缺失均會導致測量產生誤差,因此多角度Kinect 相機下的三維點云重構及體尺測量還需深入研究,使得所提方法在測量多種姿勢的豬體尺寸時具有較強的魯棒性。

猜你喜歡
豬體體尺小豬
家畜體尺自動測量技術研究進展
夏季養豬要做好防暑降溫
基于Kinect相機的豬彎曲體尺測量算法研究
肉羊體尺測量 用上“智慧眼”
可愛的小豬
基于單視角點云鏡像的豬只體尺測量方法
小豬家著火了
學會8招夏季養豬增膘等4則
夏季養豬增膘九招
連城白鴨與野鴨及其雜交鴨的體重體尺研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合