范才虎 程曼 袁洪波 王媛 蔡振江 Summary:羊只的体尺参数是衡量其生长发育状况、生产性能和遗传特性的关键指标。重建羊只的三维模型可以为自动化获取多种羊只体尺参数提供数据基 础,因此提出一种基于多角度Kinect v2的羊只三维模型重构方法。该方法通过放置在羊只顶部和左右两个侧面的Kinect v2设备,获取羊只的三维点云数据;利用这些数据中的点云之间的相对位置关系,进行点云坐标的转换和初始配准;采用ICP算法进行精确配准建立三维模型。结果表明:当Kinect v2深度相机高度为120 cm、俯视角为30°时,获取的点云质量较高, cm, s。根据模型计算出的羊只体高、体斜长、十字部高和腰脚宽等体尺参数与实际测量平均误差均在5%以内。 Key:羊只;Kinect v2;点云配准;三维重建;体尺计算 :S24 :A :2095-5553 (2024) 03-0189-09 Reconstruction method of the 3D model for sheep based on multi-angle Kinect v2 Fan Caihu1, Cheng Man1, Yuan Hongbo1, Wang Yuan2, Cai Zhenjiang1 (1. College of Mechanical and Electrical Engineering, Hebei Agricultural University, Baoding, 071001, China;2. Hengshui Zhihao Animal Husbandry Technology Co., Ltd., Hengshui, 053400, China) Abstract: The body size parameters of sheep are the key indicators to assess the growth, performance and genetic characteristics. The reconstruction of the 3D model can provide data basis for automatic acquisition of various body size parameters for sheep. In this paper, a reconstruction method is designed for the 3D model of sheep based on multi-angle Kinect v2. By placing Kinect v2 devices on the top and both sides of the sheep, three-dimensional point cloud data of the sheep can be captured. Then, by utilizing the relative positional relationships between the point clouds in the data, coordinate transformation and initial alignment of the point clouds are performed. Finally, the Iterative Closest Point (ICP) algorithm is used for precise registration to establish the three-dimensional model. The results show that when the height of Kinect v2 depth camera is 120 cm and the overlooking angle is 30°, the quality of the obtained point cloud is higher. The average error of automatic registration is cm, and the average time of automatic registration is s. The average error of body size parameters such as body height, body oblique length, cross height and waist and foot width calculated by the model and the actual measurement are within 5%. Keywords:sheep; Kinect v2; point cloud registration; three-dimensional reconstruction; body size calculation 0 引言 羊的養殖是畜牧业的重要组成部分[13],截至2023年,世界绵羊养殖数量已经超过13亿只,主要集中在亚洲和非洲地区,[4]。羊的体尺参数可以反映其体型、结构和发育状况,也可以反映其生 理功能、生产性能、抗病能力和对外界生活条件的适应性等[5]。因此,进行羊只体尺的监测对提高精准养殖水平具有重要的现实意义[6]。 传统的动物体尺测量方法是人工利用标尺、卷尺等工具对其进行直接测量[7]。这种方式不但工作量大,而且获取的结果受主观性影响。此外,这种测量方法需要固定住动物并与之直接接触,这易使动物产生应激反应,导致生产性能下降、疾病增加,甚至死亡,严重影响动物个体的生长发育[8]。这种传统的接触式体尺测量方法降低动物的福利化饲养水平[9],并增加人畜共患病传播的风险[10]。随着信息感知技术和精准养殖水平的提高,家畜体尺获取方式逐渐向非接触式转变[11, 12],在猪、牛和羊的体尺获取方面,非接触式测量都得到了研究[1316]。非接触式测量一般利用图像的方法进行体尺的估计[17, 18],通过图像处理方法寻找图像中动物体尺的关键点,计算关键点之间的距离从而得到动物的体尺数据[1922]。图像是平面而非立体的,无法一次性得到更多的体尺参数,比如体高、体长、体宽等无法通过同一个平面得到。动物的三维模型能够反映出其更多的体尺特征,便于从不同的角度对体尺参数进行评估。 立体视觉技术在动物三维模型重建中得到了较早的应用,利用两个或者多个相机从不同视角对目标进行拍摄,通过提取多幅图像中对应特征点重构目标的三维结构[23, 24]。然而,现有的图像获取技术仍有一定的局限性,如光照、阴影和背景噪声的变化会影响图像的质量,这会增加图像处理的难度[25]。为了更好地寻找更多的对应特征点,SfM(Structure from motion)方法被提出[26, 27]。SfM可以从更多的角度获取目标的图像,但这并没有从本质上解决获取的图像质量会直接影响模型重构的精度这一问题。随着传感器的发 展,TOF(Time of flight)技术逐渐被应用在三维重建中[2830],该方法通过向目标投射光源然后根据ToF原理计算出设备到目标的距离,并以此获得目标的三维点云。Le Cozler等[31]利用Morpho3D获取奶牛的三维点云,重建出奶牛的三维模型在测量出奶牛的体尺数据。单线激光雷达是早期使用较多的ToF设备。Huang等[32]利用单线雷达重建出秦川牛的三维模型,再测量出秦川牛的体尺数。但使用单线雷达需要设计运动机构。多线激光雷达的出现从一定程度解决了上述问题,但多线雷达的价格过于昂贵,这给实际应用带来了障碍。而且ToF技术丢失了颜色信息,不利于后期数据处理。近年来,利用RGB-D相机进行动物的三维建模得到了发展,它可以同时获取目标的RGB和深度信息,而且成本较低。以Kinect为代表的RGB-D相机已经在动物三维建模及体尺测量中得到了较多的应用。如Pezzuolo[33]、Shi[34]等分别利用Kinect v1、Kinect v2测量了猪的体尺数据。利用Kinect进行动物三维模型的构建已经被证明是一种有效的方法。但是,只利用一台Kinect也是难以准确的构建完整动物的三维模型,因為它同样难以扫描和拍摄到动物体的背面,因此需要利用多个Kinect从不同角度采集数据。 针对羊只体尺测量的需求,本文设计一种羊只三维模型重构系统,能够从三个方向获取羊只躯体的三维点云,利用多角度点云的坐标转化和配准方法,得到完整的羊只三维模型,获取羊只的体尺参数。 1 材料和方法 试验方法 为获取羊只点云信息,构建一个信息获取系统,如图1所示,该系统由一个金属框架,三台Kinect v2和一台笔记本电脑组成,2台Kinect v2分别被安装 在框架的左右两侧,且其高度和角度可以调整,第3台Kinect v2被安装在框架顶部的中间,面向地面。三台Kinect v2通过USB数据线与笔记本电脑相连,并由笔记本电脑控制其工作状态。 采用正交试验寻找Kinect v2的合适位置。一个羊只模型被放置在框架正下方,框架两侧安装的Kinect v2分别在70 cm、95 cm、120 cm三个高度,从20°、30°、45°、50°、55°的俯视角度进行数据获取试验。试验采用2个不同的羊只模型,共获取92片有效点云。三台Kinect v2获取的点云分别被命名为P_left,P_right和P_top。 基于Microsoft Visual Studio 2017、PCL(point cloud library),利用C++编程,开发数据获取和分析软件,用于点云数据的处理和羊只的三维建模。 数据获取 利用Kinect v2获取的点云数据包括大量的背景点云和少量的噪声,在生成羊只个体点云之前需要进行滤波处理。背景点云可以通过直通滤波法进行处理,直通滤波通过构建约束条件并把不满足条件的点云消除来实现的,约束条件如式(1)所示,所有不满足这个约束条件的点云被认为是背景噪声而被过滤掉。 Xmin<x<XmaxYmin<y<YmaxZmin<z<Zmax(1) 式中:(x,y,z)——点云在坐标系中的位置。 其中(Xmin,Xmax)、(Ymin,Ymax)、(Zmin,Zmax)为坐标系三个坐标方向的滤波范围,其值通过系统结构确定。 经过直通滤波后,大部分的背景噪声被消除,但是少量的离群点噪声仍然存在,其中离群点噪声是指在整个点云结构中距离密集点云的中心较远的点云,这些噪声点云大部分是在测量过程中受到环境干扰造成的。离群点噪声可以通过统计滤波进行清除,统计滤波是根据整个点云分布的结构特点,清除远离聚集中心的较为稀疏的点来实现的。统计滤波原理是点云中所有的点与其k个临近点的平均距离值满足高斯分布。统计滤波的实施过程中,对于点云中任意一个点,先利用式(2)计算该点到附近k个临近点的平均距离 d-,再利用式(3)计算点云中每个点对应的平均距离的均值μ和标准差σ,最后确定有效点云的范围为(μ-σ×std, μ+σ×std),其中std为系数。如果点云中某个点到k个近邻点的平均距离不在这个范围之内,则认为该点属于噪声。 d-=1k∑kj=1(xi-xj)2+(yi-yj)2+(zi-zj)2(2) 式中:(xi,yi,zi)——目标点在三个坐标轴上的坐标值;(xj,yj,zj)——目标点的近邻点在三个坐标轴上的坐标值。 μ=∑ki=11kd-σ=1k∑ki=1(d--μ)2(3) 基于点云的三维模型重构方法 一个Kinect v2只能获取某个角度下的羊只部分点云信息,所以本文使用了三个Kinect v2相机分别从顶部和两个侧面进行点云数据的获取。为获取完整的羊只点云,将三片点云进行融合是必要的。点云融合的目的是将不同坐标系的点云数据统一到同一个坐标系下,即找到一对或者几对旋转矩阵和平移向量,以恢复出完整的目标三维结构,这一过程被称为点云的配准。目前应用最广泛 的点云配准的方法是最近迭代法(Iterative Closest Point, ICP)[35],ICP算法原理简单、易于理解和实现,同时配准精度较高,但也存在一些弊端,如该算法在对重叠度较大的点云进行配准时具有良好的配准效果,但是当重叠度较小时或者初始位置估计不准确,无法得出较好的配准结果。因此,在利用最近点迭代算法之前,对待配准的点云进行初始配准是避免最近点迭代算法陷入局部优化的关键。 不同角度点云坐标转换及初次配准 为了减少ICP算法过程中的不足,本文利用相机的位置关系计算出点云之间的转换关系,并以此对点云进行初始配准。图2为三个Kinect v2的各自的坐标系方向以及三个Kinect v2之间的相对位置关系。其中θ为Kinect v2的倾斜角度,Δh为侧面两个Kinect v2与顶部Kinect v2之间的高度,Δl为侧面两个Kinect v2与顶部Kinect v2之间的水平距离。 本文以顶部Kinect v2坐标系为基准坐标系,两个侧面的Kinect v2获取的点云分别被转换到基准坐标系中以完成点云的拼接,两侧Kinect v2坐标系向基准坐标系转换的过程如图3所示,需要经过4个步骤。 步骤一:左右两侧的Kinect v2坐标系分别围绕各自x轴向右和左旋转,直到y轴处于水平位置,此时z轴竖直向下。经过坐标系旋转,则Kinect v2获取的点云坐标位置如式(4)所示。 (xL′,yL′,zL′)=(xL,yL,zL)1000cosθ-sinθ0sinθcosθ(xR′,yR′,zR′)=(xR,yR,zR)1000cosθ-sinθ0sinθcosθ(4)