基于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则
夏季养猪增膘九招
连城白鸭与野鸭及其杂交鸭的体重体尺研究