基于机器视觉的牛体尺测量方法
阅读说明:本技术 基于机器视觉的牛体尺测量方法 (Machine vision-based cattle body ruler measurement method ) 是由 滕峰 张嘉森 王思嘉 杨晨 于 2019-12-19 设计创作,主要内容包括:本发明实施例公开了一种基于机器视觉的牛体尺测量方法,包括:步骤1:使用固定长度的标签贴于牛体侧身;步骤2:拍摄贴有标签的牛侧身图像,计算标签的像素长度,通过标签真实长度与像素比例,算出图像上单位像素对应的实际距离;步骤3:提取图像中的牛图像以及牛轮廓的数据;步骤4:对牛轮廓数据分析;步骤5:定位牛体的特征点;步骤6:根据特征点计算牛体尺。本发明使用机器视觉的方式,对牛的体尺信息进行测量,极大的减少了人工成本,且该方式属于无接触式,不会对牛造成任何应激反应,并具有较高的准确率;且无设备部署需求,只需利用随身携带的手机与标签纸,即可方便的完成对牛只的体尺测量。(The embodiment of the invention discloses a method for measuring a bovine body ruler based on machine vision, which comprises the following steps: step 1: the label with fixed length is attached to the side of the cow body; step 2: shooting a side body image of a cow with a label, calculating the pixel length of the label, and calculating the actual distance corresponding to a unit pixel on the image according to the ratio of the real length of the label to the pixel; and step 3: extracting data of a cattle image and a cattle outline in the image; and 4, step 4: analyzing the cattle contour data; and 5: positioning feature points of the cattle body; step 6: and calculating the body size of the cattle according to the characteristic points. The invention uses the machine vision mode to measure the body size information of the cattle, thereby greatly reducing the labor cost, and the mode belongs to non-contact type, does not cause any stress reaction to the cattle and has higher accuracy; and the device is not required to be deployed, and the body size of the cow can be conveniently measured only by using a portable mobile phone and label paper.)
技术领域
本发明涉及牛体尺测量技术领域,尤其涉及一种基于机器视觉的牛体尺测量方法。
背景技术
传统测量牛体尺的方法需要工作人员使用软尺、卷尺等测量工具对牛的体高、体斜长、体直长等多个指标进行测量,这种手工测量的方式存在一定测量难度,成本高,速度慢,且会造成牛的应激反应。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于机器视觉的牛体尺测量方法,以使降低测量难度。
为了解决上述技术问题,本发明实施例提出了一种基于机器视觉的牛体尺测量方法,包括:
步骤1:使用固定长度的标签贴于牛体侧身;
步骤2:拍摄贴有标签的一侧的牛侧身图像,使用匹配算法匹配牛身上的标签,计算标签的像素长度,通过标签真实长度与像素比例,算出图像上单位像素对应的实际距离,记其比例为ruler;
步骤3:去掉图像中与牛无关部分,提取图像中的牛图像以及牛轮廓的数据;
步骤4:对牛轮廓数据分析,计算得到切面数据和牛背到牛腹的距离数据;
步骤5:根据所计算得到的数据定位牛体的特征点;
步骤6:根据特征点计算牛体尺。
进一步地,所述步骤3包括:
提取牛图像子步骤:使用牛提取算法将图像中的牛提取出来,去除掉与牛无关的部分;
获取牛轮廓子步骤:使用边缘检测算法获得图像中的若干个轮廓数据,将若干个轮廓数据按从外往里的顺序排序,轮廓最外层为需要获取的牛轮廓数据,该牛轮廓数据包含若干个坐标;
,n为轮廓点的总数。
进一步地,所述步骤4包括:
归一化轮廓数据子步骤:将轮廓数据在上x轴上的数值范围缩放至
之间,为超参数,记归一化轮廓数据为;归一化公式:;
其中
为原始值,为缩放后的值,R为包含若干个实数的集合;计算切面数据子步骤:对牛的轮廓数据,从x轴左侧向右侧扫描,对于x轴的轮廓坐标,用最上边缘的坐标y值减去最下边缘的坐标y值,得到切面数据
;;
;
定位牛髻甲子步骤:使用机器学习方法分析牛髻甲在归一化轮廓数据
上的位置,得到髻甲所在x轴位置 髻甲;定位牛尻子步骤:使用机器学习方法分析得到牛尻在在归一化轮廓数据
上的位置,得到牛尻所在x轴位置 牛尻;拟合牛背方程子步骤:截取
髻甲和 牛尻之间的归一化轮廓数据,并只取最上边缘的轮廓数据,拟合数据满足以下关系:;
对该数据使用最小二乘法拟合,得到牛背拟合直线方程
back;yback=kx+b,其中,;
计算牛背到牛腹的距离子步骤:计算整体切面数据平均值
,牛腹位于和所在垂线之间,截取这之间的切面数据,并取在整体切面数据平均值 sec阈值σ以内的切面数据,计算其平均值,得到牛背到牛腹的距离 abdominal;;
。
进一步地,所述步骤5包括:
髻甲定位子步骤: 髻甲所在x轴直线与牛背拟合直线方程
相交点为髻甲,得到髻甲坐标(x髻甲,y髻甲);背部定位子步骤:截取
髻甲和 牛尻之间的切面数据,寻找所截取切面数据中的最大值所在坐标,将 max代入牛背拟合直线方程 back,得到背部坐标(x背部,y背部);牛尻定位子步骤:x牛尻所在x轴直线与牛背所在y横轴直线相交点为牛尻,得到牛尻坐标(x牛尻,y牛尻);
肩胛前端定位子步骤:在髻甲坐标基础上将y值正向偏移牛背到牛腹的长,即为肩胛前端坐标(x肩胛前端,y肩胛前端);
腹部定位子步骤:在背部上的纵轴坐标上偏移得到腹部(x腹部,y腹部);
前蹄定位子步骤:在左侧髻甲部分寻找切面的最大值坐标,定义为前蹄(x前蹄,y前蹄)。
进一步地,所述步骤6中,
体长为髻甲到牛尻的距离:
;
体斜长为牛尻到肩胛前端的距离:
;
腹深为背部到腹部的距离:
;
体高为髻甲到前蹄的距离:
。
本发明的有益效果为:本发明使用机器视觉的方式,对牛的体尺信息进行测量,极大的减少了人工成本,且该方式属于无接触式,不会对牛造成任何应激反应,并具有较高的准确率;且无设备部署需求,只需利用随身携带的手机与标签纸,即可方便的完成对牛只的体尺测量。
附图说明
图1是本发明实施例的基于机器视觉的牛体尺测量方法的流程图。
图2是本发明实施例的提取的牛图像示意图。
图3是本发明实施例的牛轮廓示意图。
图4是本发明实施例的牛关键点与牛体尺测量示意图。
附图标号说明
髻甲1
背部2
牛尻3
肩胛前端4
腹部5
前蹄6。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本发明作进一步详细说明。
本发明实施例中若有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明中若涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
请参照图1,本发明实施例的基于机器视觉的牛体尺测量方法包括步骤1~步骤6。
步骤1:布置参照物,使用固定长度的标签贴于牛体侧身。例如,使用8cm蓝色边框标签贴于牛体的侧身。
步骤2:拍摄贴有标签的一侧的牛侧身图像,使用匹配算法匹配牛身上的标签,计算标签的像素长度,通过标签真实长度与像素比例,算出图像上单位像素对应的实际距离,记其比例为ruler。
步骤3:去掉图像中与牛无关部分,提取图像中的牛图像(牛图像如图2所示)以及牛轮廓的数据(牛轮廓如图3所示)。
步骤4:对牛轮廓数据分析,计算得到切面数据和牛背到牛腹的距离数据。
步骤5:根据所计算得到的数据定位牛体的特征点。定位的牛关键点如图4所示。
步骤6:根据特征点计算牛体尺。
作为一种实施方式,假设牛面部朝向左侧,即牛的头部在牛尾的左侧。对于牛面部朝右侧的情况,则翻转图像,使牛面部朝向左侧。所述步骤3包括:
提取牛图像子步骤:使用牛提取算法将图像中的牛提取出来,去除掉与牛无关的部分,如图2所示;
获取牛轮廓子步骤:使用边缘检测算法获得图像中的若干个轮廓数据,将若干个轮廓数据按从外往里的顺序排序,轮廓最外层为需要获取的牛轮廓数据,该牛轮廓数据contour包含若干个坐标,如图3所示和下式所示;
,n为轮廓点的总数。
作为一种实施方式,所述步骤4包括:
归一化轮廓数据子步骤:将轮廓数据在x轴上的数值范围缩放至
之间,为超参数,记归一化轮廓数据为;归一化公式:
;其中为原始值,为缩放后的值,R为包含若干个实数的集合;
计算切面数据子步骤:对牛的轮廓数据,从x轴左侧向右侧扫描,对于x轴的轮廓坐标,用最上边缘的坐标
值减去最下边缘的坐标值,得到切面数据;;
;
定位牛髻甲子步骤:使用机器学习方法分析牛髻甲在归一化轮廓数据
上的位置,得到髻甲所在x轴位置 髻甲;定位牛尻子步骤:使用机器学习方法分析得到牛尻在在归一化轮廓数据
上的位置,得到牛尻所在x轴位置 牛尻;拟合牛背方程子步骤:截取
髻甲和 牛尻之间的归一化轮廓数据,并只取最上边缘的轮廓数据,拟合数据满足以下关系:;
对该数据使用最小二乘法拟合,得到牛背拟合直线方程
;,其中, ;
计算牛背到牛腹的距离子步骤:计算整体切面数据平均值
,牛腹位于 髻甲和 牛尻所在垂线之间,截取这之间的切面数据,并取在整体切面数据平均值阈值σ以内的切面数据,计算其平均值,得到牛背到牛腹的距离dabdominal;;
。
作为一种实施方式,所述步骤5包括:
髻甲1定位子步骤:
髻甲所在x轴直线与牛背拟合直线方程相交点为髻甲1,得到髻甲1坐标(x髻甲,y髻甲);背部2定位子步骤:截取
髻甲和 牛尻之间的切面数据,寻找所截取切面数据中的最大值所在坐标,将 max代入牛背拟合直线方程,得到背部2坐标(x背部,y背部);牛尻3定位子步骤:x牛尻所在x轴直线与牛背所在y横轴直线相交点为牛尻3,得到牛尻3坐标(x牛尻,y牛尻);
肩胛前端4定位子步骤:在髻甲1坐标基础上将y值正向偏移牛背到牛腹的长,即为肩胛前端4坐标(x肩胛前端,y肩胛前端);
腹部5定位子步骤:在背部2上的纵轴坐标上偏移dabdominal得到腹部5坐标(x腹部,y腹部);
前蹄6定位子步骤:在左侧髻甲1部分寻找切面的最大值坐标,定义为前蹄6(x前蹄,y前蹄)。
作为一种实施方式,图4直观展示了体尺与关键点的关系。所述步骤6中,
体长为髻甲1到牛尻3的距离:
;
体斜长为牛尻3到肩胛前端4的距离:
;
腹深为背部2到腹部5的距离:
;
体高为髻甲1到前蹄6的距离:
。
本发明是使用机器视觉的方式,对牛的体尺信息进行测量,极大的减少了人工成本,且该方式属于无接触式,不会对牛造成任何应激反应,并具有较高的准确率。本发明方法无设备部署需求,可用于手机等智能设备的系统中,用户只需利用随身携带的手机与标签纸,即可方便、快速的完成对牛只的体尺测量。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:一种基于双目视觉技术的刀闸智能识别系统及方法