基于机器视觉的牛体尺测量方法

文档序号:1568328 发布日期:2020-01-24 浏览:13次 >En<

阅读说明:本技术 基于机器视觉的牛体尺测量方法 (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轴上的数值范围缩放至

Figure 613169DEST_PATH_IMAGE002

之间,

Figure 241727DEST_PATH_IMAGE003

为超参数,记归一化轮廓数据为

Figure 998462DEST_PATH_IMAGE004

归一化公式:

其中

Figure 880147DEST_PATH_IMAGE006

为原始值,

Figure 414028DEST_PATH_IMAGE007

为缩放后的值,R为包含若干个实数的集合;

计算切面数据子步骤:对牛的轮廓数据,从x轴左侧向右侧扫描,对于x轴的轮廓坐标,用最上边缘的坐标y值减去最下边缘的坐标y值,得到切面数据

Figure 658059DEST_PATH_IMAGE008

Figure 197941DEST_PATH_IMAGE010

定位牛髻甲子步骤:使用机器学习方法分析牛髻甲在归一化轮廓数据

Figure 914442DEST_PATH_IMAGE004

上的位置,得到髻甲所在x轴位置

Figure 645769DEST_PATH_IMAGE011

髻甲

定位牛尻子步骤:使用机器学习方法分析得到牛尻在在归一化轮廓数据

Figure 343467DEST_PATH_IMAGE004

上的位置,得到牛尻所在x轴位置

Figure 109428DEST_PATH_IMAGE011

牛尻

拟合牛背方程子步骤:截取

Figure 985112DEST_PATH_IMAGE012

髻甲

Figure 938155DEST_PATH_IMAGE012

牛尻之间的归一化轮廓数据

Figure 705123DEST_PATH_IMAGE004

,并只取最上边缘的轮廓数据,拟合数据满足以下关系:

Figure 60012DEST_PATH_IMAGE013

对该数据使用最小二乘法拟合,得到牛背拟合直线方程

Figure 106597DEST_PATH_IMAGE014

back

yback=kx+b,其中,;

计算牛背到牛腹的距离子步骤:计算整体切面数据平均值

Figure 320857DEST_PATH_IMAGE016

,牛腹位于

Figure 795832DEST_PATH_IMAGE017

Figure 13318DEST_PATH_IMAGE018

所在垂线之间,截取这之间的切面数据,并取在整体切面数据平均值

Figure 924642DEST_PATH_IMAGE019

sec阈值σ以内的切面数据,计算其平均值,得到牛背到牛腹的距离

Figure 252986DEST_PATH_IMAGE020

abdominal

Figure 220122DEST_PATH_IMAGE022

进一步地,所述步骤5包括:

髻甲定位子步骤: 髻甲所在x轴直线与牛背拟合直线方程

Figure 750778DEST_PATH_IMAGE023

相交点为髻甲,得到髻甲坐标(x髻甲,y髻甲);

背部定位子步骤:截取

Figure 934766DEST_PATH_IMAGE012

髻甲

Figure 494054DEST_PATH_IMAGE012

牛尻之间的切面数据

Figure 114391DEST_PATH_IMAGE024

,寻找所截取切面数据中的最大值所在坐标

Figure 50117DEST_PATH_IMAGE025

,将

Figure 76893DEST_PATH_IMAGE011

max代入牛背拟合直线方程 back,得到背部坐标(x背部,y背部);

牛尻定位子步骤:x牛尻所在x轴直线与牛背所在y横轴直线相交点为牛尻,得到牛尻坐标(x牛尻,y牛尻);

肩胛前端定位子步骤:在髻甲坐标基础上将y值正向偏移牛背到牛腹的长,即为肩胛前端坐标(x肩胛前端,y肩胛前端);

腹部定位子步骤:在背部上的纵轴坐标上偏移得到腹部(x腹部,y腹部);

前蹄定位子步骤:在左侧髻甲部分寻找切面的最大值坐标,定义为前蹄(x前蹄,y前蹄)。

进一步地,所述步骤6中,

体长为髻甲到牛尻的距离:

Figure 919712DEST_PATH_IMAGE027

体斜长为牛尻到肩胛前端的距离:

腹深为背部到腹部的距离:

Figure 494230DEST_PATH_IMAGE029

体高为髻甲到前蹄的距离:

Figure 839892DEST_PATH_IMAGE030

本发明的有益效果为:本发明使用机器视觉的方式,对牛的体尺信息进行测量,极大的减少了人工成本,且该方式属于无接触式,不会对牛造成任何应激反应,并具有较高的准确率;且无设备部署需求,只需利用随身携带的手机与标签纸,即可方便的完成对牛只的体尺测量。

附图说明

图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所示和下式所示;

Figure 117421DEST_PATH_IMAGE031

,n为轮廓点的总数。

作为一种实施方式,所述步骤4包括:

归一化轮廓数据子步骤:将轮廓数据在x轴上的数值范围缩放至

Figure 114196DEST_PATH_IMAGE032

之间,

Figure 717346DEST_PATH_IMAGE033

为超参数,记归一化轮廓数据为

归一化公式:

Figure 615212DEST_PATH_IMAGE035

其中为原始值,为缩放后的值,R为包含若干个实数的集合;

计算切面数据子步骤:对牛的轮廓数据,从x轴左侧向右侧扫描,对于x轴的轮廓坐标,用最上边缘的坐标

Figure 295220DEST_PATH_IMAGE038

值减去最下边缘的坐标值,得到切面数据

Figure 636651DEST_PATH_IMAGE024

Figure 565293DEST_PATH_IMAGE039

Figure 372843DEST_PATH_IMAGE040

定位牛髻甲子步骤:使用机器学习方法分析牛髻甲在归一化轮廓数据

Figure 795865DEST_PATH_IMAGE034

上的位置,得到髻甲所在x轴位置

Figure 887318DEST_PATH_IMAGE012

髻甲

定位牛尻子步骤:使用机器学习方法分析得到牛尻在在归一化轮廓数据

Figure 206435DEST_PATH_IMAGE034

上的位置,得到牛尻所在x轴位置 牛尻

拟合牛背方程子步骤:截取

Figure 242841DEST_PATH_IMAGE012

髻甲

Figure 951252DEST_PATH_IMAGE012

牛尻之间的归一化轮廓数据

Figure 706849DEST_PATH_IMAGE034

,并只取最上边缘的轮廓数据,拟合数据满足以下关系:

Figure 551308DEST_PATH_IMAGE041

对该数据使用最小二乘法拟合,得到牛背拟合直线方程

Figure 112871DEST_PATH_IMAGE042

Figure 664069DEST_PATH_IMAGE043

,其中,

Figure 105415DEST_PATH_IMAGE044

计算牛背到牛腹的距离子步骤:计算整体切面数据平均值

Figure 109274DEST_PATH_IMAGE016

,牛腹位于 髻甲 牛尻所在垂线之间,截取这之间的切面数据,并取在整体切面数据平均值阈值σ以内的切面数据,计算其平均值,得到牛背到牛腹的距离dabdominal

Figure 186897DEST_PATH_IMAGE046

Figure 559103DEST_PATH_IMAGE047

作为一种实施方式,所述步骤5包括:

髻甲1定位子步骤:

Figure 334161DEST_PATH_IMAGE012

髻甲所在x轴直线与牛背拟合直线方程

Figure 133621DEST_PATH_IMAGE023

相交点为髻甲1,得到髻甲1坐标(x髻甲,y髻甲);

背部2定位子步骤:截取

Figure 908810DEST_PATH_IMAGE012

髻甲

Figure 84708DEST_PATH_IMAGE012

牛尻之间的切面数据

Figure 465005DEST_PATH_IMAGE024

,寻找所截取切面数据中的最大值所在坐标

Figure 684633DEST_PATH_IMAGE048

,将

Figure 884802DEST_PATH_IMAGE011

max代入牛背拟合直线方程

Figure 333232DEST_PATH_IMAGE023

,得到背部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的距离:

Figure 82882DEST_PATH_IMAGE049

体斜长为牛尻3到肩胛前端4的距离:

Figure 946846DEST_PATH_IMAGE050

腹深为背部2到腹部5的距离:

Figure 634311DEST_PATH_IMAGE051

体高为髻甲1到前蹄6的距离:

Figure 135699DEST_PATH_IMAGE052

本发明是使用机器视觉的方式,对牛的体尺信息进行测量,极大的减少了人工成本,且该方式属于无接触式,不会对牛造成任何应激反应,并具有较高的准确率。本发明方法无设备部署需求,可用于手机等智能设备的系统中,用户只需利用随身携带的手机与标签纸,即可方便、快速的完成对牛只的体尺测量。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于双目视觉技术的刀闸智能识别系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!