本发明属于整猪测量技术领域,具体是涉及一种基于点云的猪只体尺参数测量方法。
背景技术:
目前,猪的饲养业是一项与人们生活密切相关的民生产业,在猪饲养的过程中,猪的体型、重量是评判一头猪品质的重要指标,而对于猪体型的量测却多为不便;人们往往采用摄像头采集测量,使用单目或双面摄像头匹配得到视差图像,较为依赖额外光源;使用的摄像头组数过多,对数据的采集不能做到精简、准确;采集数据过程较为繁琐。
经检索,中国专利申请号为cn200710119509.8的专利,公开了一种利用双目视觉技术监测猪生长的方法,其包括如下步骤:建立与标定系统;获取猪体图像;传输猪体图像;处理猪体图像;测量猪体高和猪体背部面积;预估猪体重。中国专利申请号为cn201910361651.6公开了一种基于深度学习和特征部位检测的牛体尺算法,采用侧身摄像头、尾部摄像头采集牛的图像,通过图像服务器处理图像数据计算牛的体尺数据;中国专利申请号为cn201611213819.1的专利,公开了一种基于立体视觉的生猪体尺检测方法,用双目立体相机,直接地测量生猪深度信息用于计算生猪体尺参数,并用立体匹配得到视差图像。
本发明提出了一种猪只体重估测技术,通过重构猪只的三维点云,测量猪只的体尺参数。这种测量方法具有高灵敏度,高精度,低人工等优点,具有十分重大的意义。
技术实现要素:
本发明要解决的问题是提供一种高灵敏度,高精度,低人工的基于点云的猪只体尺参数测量方法。
为解决上述技术问题,本发明采用的技术方案是:一种基于点云的猪只体尺参数测量方法,包括如下步骤:
步骤一:标定测量系统;使用张定友标定法,通过对不同角度棋盘的角点特征角点进行获取,对深度摄像头进行标定,求出内参与外参;
步骤二:建立测量系统;猪舍顶部架设两个kinect摄像头,两个kinect摄像头之间距离为2000~6000mm;
步骤三:kinect摄像头拍摄待测整猪;在待测整猪完全暴露于摄像头内时,对其进行拍摄,并通过两个kinect采集猪的点云;
步骤四:点云去噪算法:通过条件滤波、统计滤波、体素滤波去噪算法进行去噪,并通过多元高斯分布的异常点检测进行去除离群点;
步骤五:通过fpfh算法进行点云的关键点以及点特征直方图的获取,获得点云的信息;
步骤六:将去噪好的点云通过sac-ia进行点云的粗配准;通过icp算法进行点云的精配准,得到猪只的整体点云;
步骤七:计算体尺参数;使用基于几何特征的提取算法,提取配准出的猪只点云关键点,通过计算相关几何数据得到猪只的体尺参数;
步骤八:返回步骤三依次执行步骤四至步骤八;多次测量,直至获取5组数据后转入步骤九;
步骤九:计算最终结果。
优选地,在步骤一中,拟采用张正友标定法对深度摄像头进行标定,求出内参,即参数矩阵(fx,fy,cx,cy)和畸变系数(三个径向k1,k2,k3,两个切向p1,p2),与外参,即旋转向量r(大小为1×3的矢量或3×3旋转矩阵)和平移向量t(tx,ty,tz)。
优选地,在步骤二中,猪舍顶部架设两个kinect摄像头,两个kinect摄像头之间距离为3000~4000mm,kinect摄像头相对被测猪只角度设置为0°~45°。
优选地,在步骤四中,处理拍摄点云中点云的去噪,采用的是条件滤波器、统计滤波器和体素滤波器,其步骤如下:
(1)条件滤波器通过预设的滤波条件进行点云的初步降噪;
(2)统计滤波器通过计算每个点到其最近的k个点的平均距离,并使点云中所有点的距离应构成高斯分布;对于给定均值与方差,剔除3σ之外的点;
(3)体素滤波器使用aabb包围盒将点云数据体素化,噪音点及离群点可通过体素网格去除。
优选地,在步骤四中,通过多元高斯分布的异常点检测离群点,计算点云的均值向量:
和协方差矩阵:
σ=|cov(xi,xj)|i,j∈{1,…n}(2)
得到离散点的概率值:
根据概率值判断某点是否是异常值。
优选地,在步骤五中,通过使用一个点周围的多维直方图的平均曲率来编码一个点的k个最近邻的四几何属性,即
α=v·ns(4)
θ=arctan(w·nt,u·nt)(6)
d=||pt-ps||(7)
其中,u,v,w为其中一个点上定义了一个固定坐标系:
u=ns(8)
w=u×v(10)
优选地,在步骤六中,通过sac-ia进行点云的粗配准,其步骤如下:
(1)采用采样一致性方法,从源点云中选择n个样本点,尽量保证所采样的点具有不同的fpfh特征,并在目标点云中找到满足fpfh相似的点来建立对应关系;
(2)使用levenberg-marquardt算法进行非线性局部优化。
优选地,在步骤六中,通过icp算法进行点云的精配准,其步骤如下:
(1)对源点云中的每一点,在目标点云中寻找距离最近的对应点;
(2)通过计算与迭代旋转矩阵r和平移向量t,使对应点集之间的均方误差最小;
(3)如果两次迭代的误差小于阈值e或者当前的迭代次数大于n,则迭代结束,否则满足收敛条件,输出配准点云。
优选地,在步骤七中,基于几何特征的提取算法,其步骤如下:
(1)采集猪只5处关键点,即体深上端点a(xa,ya,za),猪肩端点b(xb,yb,zb),体深下端点c(xc,yc,zc),坐骨结节点d(xd,yd,zd),猪腹部最大点e(xe,ye,ze);
(2)通过采集猪只的关键点,得到4项体尺参数,即体尺长(l):
l=|xb-xd|(11)
肩宽(ws):
腹宽(wa):
体深(wd):
优选地,在步骤九中,计算最终结果的步骤具体为:将得出的5组数据删除最大值和最小值,然后取平均数,从而得到最终各项体尺参数。
与现有技术相比,本发明的有益效果在于:
使用kinect深度摄像头,能够快速构造被测猪只的点云,用于计算生猪体尺参数,既不需要其他额外机械机构辅助,也不需要目标物体保持静止。此外,使用kinect摄像头得到猪只点云,无需依赖额外光源,自然光照即可满足检测需要。本发明具有高灵敏度,高精度,低人工的优点,具有十分重大的意义。
附图说明
下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:
图1是本发明kinect摄像头拍摄待测整猪设备安装图;
图2是本发明猪只体尺参数测量方法工作流程示意图;
图3是本发明处理拍摄结果的点云配准流程图;
图4是本发明点云配准后猪的三维点云
图5是本发明点云取点位置
具体实施方式
下面结合实施例及其附图进一步叙述本发明:
一种基于点云的猪只体尺参数测量方法,其中相机坐标系映射图像坐标系的过程中,因为光线在远离透镜中心的地方偏折更大,且透镜不完全平行于图像平面,考虑到坐标轴的尺度因子,故拟采用张正友标定法对深度摄像头进行标定,求出内参,即参数矩阵(fx,fy,cx,cy)和畸变系数(三个径向k1,k2,k3,两个切向p1,p2),与外参,即旋转向量r(大小为1×3的矢量或3×3旋转矩阵)和平移向量t(tx,ty,tz),这样可使采集点云较为准确。
根据本实施例所述的一种基于点云的猪只体尺参数测量方法,猪舍顶部架设两个kinect摄像头如图1所示,两个kinect摄像头之间距离为4000mm,kinect摄像头与地面夹角设置为45°。整体测量方法流程如图2所示。
在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,以及电磁波衍射特性、被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中将不可避免地出现一些噪声点。处理拍摄点云中点云的去噪,采用的是条件滤波器、统计滤波器和体素滤波器,其步骤如下:
(1)条件滤波器通过预设的滤波条件进行点云的初步降噪;
(2)统计滤波器通过计算每个点到其最近的k个点的平均距离,并使点云中所有点的距离应构成高斯分布;对于给定均值与方差,剔除3σ之外的点;
(3)体素滤波器使用aabb包围盒将点云数据体素化,噪音点及离群点可通过体素网格去除。
由于受到外界干扰如视线遮挡,障碍物等因素的影响,点云数据中往往存在着一些距离主题点云较远的离散点,即离群点。本实施例通过多元高斯分布的异常点检测离群点,计算点云的均值向量:
和协方差矩阵:
σ=|cov(xi,xj)|i,j∈{1,…n}(2)
得到离散点的概率值:
根据概率值判断某点是否是异常值。
通过fpfh进行点云的点特征直方图获取。通过使用一个点周围的多维直方图的平均曲率来编码一个点的k个最近邻的四几何属性,即
α=v·ns(4)
θ=arctan(w·nt,u·nt)(6)
d=||pt-ps||(7)
其中,u,v,w为其中一个点上定义了一个固定坐标系:
u=ns(8)
w=u×v(10)
通过sac-ia进行点云的粗配准,其步骤如下:
(1)采用采样一致性方法,从源点云中选择n个样本点,尽量保证所采样的点具有不同的fpfh特征,并在目标点云中找到满足fpfh相似的点来建立对应关系;
(2)使用levenberg-marquardt算法进行非线性局部优化。
通过icp算法进行点云的精配准,其步骤如下:
(1)对源点云中的每一点,在目标点云中寻找距离最近的对应点;
(2)通过计算与迭代旋转矩阵r和平移向量t,使对应点集之间的均方误差最小;
(3)如果两次迭代的误差小于阈值e或者当前的迭代次数大于n,则迭代结束,否则满足收敛条件,输出配准点云,其中配准结果如图3所示,配准流程如图4所示。
基于几何特征的提取算法,其步骤如下:
(1)采集猪只5处关键点,即体深上端点a(xa,ya,za),猪肩端点b(xb,yb,zb),体深下端点c(xc,yc,zc),坐骨结节点d(xd,yd,zd),猪腹部最大点e(xe,ye,ze),采点位置如图4所示;
(2)通过采集猪只的关键点,得到4项体尺参数,即体尺长(l):
l=|xb-xd|(11)
肩宽(ws):
腹宽(wa):
体深(wd):
所述计算最终结果的步骤具体为:将得出的5组数据删除最大值和最小值,然后取平均数,从而得到最终各项体尺参数。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。其各步骤的实现方式是可以有所变化的,凡依本发明范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。