1.本发明涉及肉鸽饲养技术领域,具体涉及一种用于笼养肉鸽料槽剩料的判别方法。
背景技术:2.近年来,我国畜禽养殖业、尤其是肉鸽养殖产业的规模与产值不断增加;然而,随着畜禽养殖集约化程度不断提高、熟练肉鸽养殖技术的劳动力不断减少、高密度养殖对肉鸽养殖场的劳动力需求不断加大,目前,急需智能化养殖、管理的方式来克服肉鸽养殖过程中劳动力短缺、养殖效率低下的问题。
3.目前,肉鸽饲养大多以纯人工喂养及半自动机械喂养为主:纯人工喂养浪费大量的劳动生产力、增加养殖成本且耗费大量的时间进行饲料喂养环节、降低喂养效率,此外,纯人工喂养喂料用量大多根据人为主观判断,对于饲养人员的经验要求较高、人为主观因素高;半自动化机械喂养一般为无差别加料,即无论料槽中是否存在剩料、均是进行一次定量加料,例如中国专利文献cn110326554a、一种自动喂鸽子装置,其通过设置的喂料装置、振动装置、行走架装置,能自动完成为鸽子定量添加饲料,然而,其缺乏饲料喂养的精确性与适应性(即根据各个料槽中的不同剩料进行饲料不同用量的添加),易造成饲料的大量浪费、增加养殖成本。
技术实现要素:4.针对以上现有技术存在的问题,本发明的目的在于提供一种用于笼养肉鸽料槽剩料的判别方法,该方法能够有效判断鸽子各个料槽中的饲料剩余情况,从而针对不同料槽提供精确、适量的饲料投喂,确保投喂的饲料保证肉鸽正常生长的同时、避免过量投喂饲料而造成的饲料浪费,从而实现智能、科学的肉鸽养殖。
5.本发明的目的通过以下技术方案实现:
6.一种用于笼养肉鸽料槽剩料的判别方法,其特征在于:由移动机器人与两个检测机构组成的装置实现,其中,两个检测机构分别安装在移动机器人的左、右两侧,包括深度相机与超声波测距传感器;移动机器人中部设置一个深度相机;具体方法为:
7.步骤a:基于移动机器人的深度相机,获得深度神经网络的第一数据集;
8.步骤b:将第一数据集放入深度神经网络进行模型迭代训练后,获得第一目标检测框,通过第一目标检测框并结合实地测量数据值,确定鸽笼两侧边缘;采用区域像素特征算法去除伪边缘点,获得道路中点与左、右边缘点,进而拟合得到移动机器人的导航线;
9.步骤c:基于移动机器人的深度相机,获得深度神经网络的第二数据集;
10.步骤d:将第二数据集放入深度神经网络中进行模型迭代训练后,获得第二目标检测框;通过第二目标检测框中心点的坐标信息,获得料槽侧面中心点与深度相机坐标系的相对位置;
11.步骤e:基于两个检测机构的深度相机,分别获取两侧料槽图像;对料槽图像进行
预处理、阈值分割处理后,结合超声波测距传感器数据并进行不同补偿权重分配,判断料槽剩料情况。
12.作进一步优化,所述步骤a获得第一数据集的具体步骤为:首先,通过深度相机获取鸽场实地环境、多种真实光照条件下的640*360的养殖道路图片n张;然后,经图像预处理后,将采集到的图像采用labelimg工具进行标注,标注出其鸽笼边缘的支撑杆,从而获得第一数据集。
13.作进一步优化,所述步骤b中基于yolov5s作为基础框架搭建目标识别网络模型;迭代训练的过程具体为:读取已加载第一数据集到yolov5s的输入端,采用mosaic数据增强、自适应锚框计算和图片尺寸处理等方式,其中,mosaic数据增强是对4张图片按照随机缩放、随机裁剪、随机排布的方式进行拼接,丰富了数据集样本,使网络具有更好的鲁棒性;通过骨干网络进行特征提取,骨干特征提取网络主要包括切片结构(focus)、卷积模块(cbl)、瓶颈层(csp)以及spp模块;输出端以giou_loss作为目标边界框回归的损失函数,采用非极大值抑制(nms),提高对多目标框重叠现象的检测能力,输出包含预测图像中的缺陷位置和分类信息向量。
14.作进一步优化,所述步骤b中采用区域像素特征算法去除伪边缘点,获得道路中点与左、右边缘点具体为:
15.步骤b1、伪边缘点的去除:当前检测处的目标识别点为n个(n大于2),且每个识别点的图像像素位置为(xi,yi),i=1,2,
…
,n;根据像素值对x进行目标识别点的排序,获取最小值、即x
min
与最大值、即x
max
对应的目标识别点,判断x
min
是否小于预设阈值x
limit-l
,同时判断x
min
对应的y值、即y
xmin
与x
max
对应的y值、即y
xmax
之间的差值(即|y
xmax-y
xmin
|)是否大于预设阈值y
limit
;
16.若x
min
<x
limit-l
且|y
xmax-y
xmin
|>y
limit
,则剔除x
min
所对应的目标识别点,剩余目标识别点为(n-1)个;
17.若上述条件不成立,则判断x
max
是否大于预设阈值x
limit-h
,同时判断同时判断x
min
对应的y值、即y
xmin
与x
max
对应的y值、即y
xmax
之间的差值(即|y
xmax-y
xmin
|)是否大于预设阈值y
limit
;
18.若x
max
>x
limit-h
且|y
xmax-y
xmin
|>y
limit
,则剔除x
max
所对应的目标识别点,剩余目标识别点为(n-1)个;
19.若上述条件均不成立,则表示无需进行目标识别点的剔除,即无伪边缘点;
20.步骤b2、道路中点与左、右边缘点的获得:
21.伪边缘点去除处理后,获得目标识别点矩阵[(x1,y1),(x2,y2),
…
,(xn,yn)];计算目标识别点矩阵第1个到第n个点之间的均值,获得道路中点xm;目标识别矩阵内x值大于xm的点为右侧边缘点,否则为左侧边缘点。
[0022]
作进一步优化,所述步骤b中拟合得到移动机器人的导航线y为:
[0023]
y=ax+b;
[0024]
其中:
[0025][0026][0027]
式中:表示目标识别矩阵中识别点的所有x点的平均值、即xm;表示目标识别矩阵中识别点的所有y点的平均值。
[0028]
作进一步优化,所述步骤c获得第二数据集的具体步骤为:对步骤a中获得的n张640*360的养殖道路图片,经图像预处理后与清洗后,挑选出n0张图片,进行图像增强处理;然后采用labelimg工具进行标注,标注出料槽,从而获得第二数据集。
[0029]
作进一步优化,所述步骤d中基于yolov5s作为基础框架搭建目标识别网络模型。
[0030]
作进一步优化,所述步骤d中通过第二目标检测框中心点的坐标信息,获得料槽侧面中心点与深度相机坐标系的相对位置具体为:
[0031][0032]
式中:z
p
表示深度信息;u、v表示图像的像素坐标,即第二目标检测框的中心点坐标;d
x
、dy表示像素尺寸大小;f
x
、fy表示相机在x轴、y轴的成像焦距;(x
p
,y
p
,z
p
)表示实际料槽侧面中心点在相机坐标系的三维位置。
[0033]
作进一步优化,所述步骤e中对料槽图像进行预处理、阈值分割处理具体为:
[0034]
首先,将进行降噪处理后的料槽图像转换为hsv格式,从而获取到料槽图像的每一个像素点的hsv颜色空间值;然后,根据v分量颜色空间对每一列的每一个像素对应的v分量值,获得x
i-col
的一维矩阵[v
1i
,v
2i
,
…
,v
ni
];之后,对x
i-col
的一维矩阵进行v
(i+1)i-v
(i)i
的迭代计算,当其差值的绝对值大于预设阈值v
limit
时,获得n个阈值边界点(若未获得绝对值大于预设阈值v
limit
的差值、则一直进行迭代计算或报错),取最后一个边界点为x
i-col
的一维矩阵的边界点xb;最后,对每一列进行上述操作,提取出阴影的上轮廓曲线,结合料槽图像的底部边缘,获得料槽正投影阴影轮廓面积。
[0035]
作进一步优化,所述步骤e中结合超声波测距传感器数据并进行不同补偿权重分配,获得料槽剩料情况具体为:
[0036]
首先,超声波测距传感器分别获取超声波到料槽内部左侧点的距离d
l
、超声波到料槽内部中点的距离dc、及超声波到料槽内部右侧点的距离dr,获取回归曲线:
[0037]
w=kd+b;
[0038]
式中:w表示补偿权重,其包括左侧点补偿权重w
l
、中点补偿权重wc与右侧点补偿权重wr;k、b为常数值;
[0039]
根据补偿权重(w
l
,wc,wr)与正投影阴影轮廓曲线(正投影阴影轮廓曲线根据料槽
图像的y像素点分成三部分),获得正面最终轮廓曲线x
bn
:
[0040]
x
bn
=w
·
xb;
[0041]
进而获得料槽内的剩料情况。
[0042]
本发明具有如下技术效果:
[0043]
本技术通过机器学习、卷积神经网络、图像处理等方式,实现精确获取移动机器人的行进路径、以及定位料槽的位置信息;定位准确性高、误差小且定位快速。通过阈值分割的图像处理与超声波测距传感器的配合,实现对料槽内部剩料情况的判断,方便饲喂机器人根据不同料槽的剩料情况、进行不同用量饲料的精确投喂,避免无差别投料而导致的饲料浪费、或投喂饲料无法满足肉鸽食用量的问题,实现智能化、精确化的肉鸽养殖,提高肉鸽养殖的料肉比、降低养殖成本;同时,通过对于料槽中剩余饲料的判定,通过肉鸽对于饲料的食用量、从侧面判断对肉鸽的挑食行为与患病概率,从而避免由于挑食或患病造成的肉鸽减产、肉质差等问题。
附图说明
[0044]
图1为本发明实施例中料槽剩料判别的流程图。
[0045]
图2为本发明实施例中料槽剩料判别机器人的实物图。
具体实施方式
[0046]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]
实施例1:
[0048]
一种用于笼养肉鸽料槽剩料的判别方法,其特征在于:由移动机器人与两个检测机构组成的装置实现,其中,两个检测机构分别安装在移动机器人的左、右两侧,包括深度相机与超声波测距传感器;移动机器人中部设置一个深度相机;具体方法为:
[0049]
步骤a:基于移动机器人的深度相机,获得深度神经网络的第一数据集;具体为:首先,通过深度相机获取鸽场实地环境、多种真实光照条件下的640*360的养殖道路图片n张(本实施例中n为8000张);然后,经图像预处理后,将采集到的图像采用labelimg工具进行标注,标注出其鸽笼边缘的支撑杆,从而获得第一数据集;将第一数据集按照8:1:1的比例随机分为训练集、验证集和测试集;
[0050]
步骤b:基于yolov5s作为基础框架搭建目标识别网络模型(yolov5s目标检测网络模型基于python3.6版本的pytroch深度学习框架下进行,主要的依赖库opencv、numpy、matlibplot等),将第一数据集(的训练集)放入深度神经网络进行模型迭代训练后,获得第一目标检测框,迭代训练的过程具体为:读取已加载第一数据集(的训练集)到yolov5s的输入端,采用mosaic数据增强、自适应锚框计算和图片尺寸处理等方式,其中,mosaic数据增强是对4张图片按照随机缩放、随机裁剪、随机排布的方式进行拼接,丰富了数据集样本,使网络具有更好的鲁棒性;通过骨干网络进行特征提取,骨干特征提取网络主要包括切片结构(focus)、卷积模块(cbl)、瓶颈层(csp)以及spp模块;输出端以giou_loss作为目标边界
框回归的损失函数,采用非极大值抑制(nms),提高对多目标框重叠现象的检测能力,输出包含预测图像中的缺陷位置和分类信息向量。
[0051]
通过第一目标检测框并结合实地测量数据值,确定鸽笼两侧边缘;
[0052]
采用区域像素特征算法去除伪边缘点,获得道路中点与左、右边缘点,具体为:
[0053]
步骤b1、伪边缘点的去除:当前检测处的目标识别点为n个(n大于2),且每个识别点的图像像素位置为(xi,yi),i=1,2,
…
,n;根据像素值对x进行目标识别点的排序,获取最小值、即x
min
与最大值、即x
max
对应的目标识别点,判断x
min
是否小于预设阈值x
limit-l
(本实施例中,x
limit-l
为120),同时判断x
min
对应的y值、即y
xmin
与x
max
对应的y值、即y
xmax
之间的差值(即|y
xmax-y
xmin
|)是否大于预设阈值y
limit
(本实施例中,y
limit
为100);
[0054]
若x
min
<x
limit-l
且|y
xmax-y
xmin
|>y
limit
,则剔除x
min
所对应的目标识别点,剩余目标识别点为(n-1)个;
[0055]
若上述条件不成立,则判断x
max
是否大于预设阈值x
limit-h
(本实施例中,x
limit-h
为540),同时判断同时判断x
min
对应的y值、即y
xmin
与x
max
对应的y值、即y
xmax
之间的差值(即|y
xmax-y
xmin
|)是否大于预设阈值y
limit
;
[0056]
若x
max
>x
limit-h
且|y
xmax-y
xmin
|>y
limit
,则剔除x
max
所对应的目标识别点,剩余目标识别点为(n-1)个;
[0057]
若上述条件均不成立,则表示无需进行目标识别点的剔除,即无伪边缘点;
[0058]
步骤b2、道路中点与左、右边缘点的获得:
[0059]
伪边缘点去除处理后,获得目标识别点矩阵[(x1,y1),(x2,y2),
…
,(xn,yn)];计算目标识别点矩阵第1个到第n个点之间的均值,获得道路中点xm;目标识别矩阵内x值大于xm的点为右侧边缘点,否则为左侧边缘点。
[0060]
通过左、右边缘点拟合得到移动机器人的导航线y:
[0061]
y=ax+b;
[0062]
其中:
[0063][0064][0065]
式中:表示目标识别矩阵中识别点的所有x点的平均值、即xm;表示目标识别矩阵中识别点的所有y点的平均值。
[0066]
步骤c:基于移动机器人的深度相机,获得深度神经网络的第二数据集:对步骤a中获得的n张640*360的养殖道路图片,经图像预处理后与清洗后,挑选出n0张图片(n0<n,本实施例中n0为5000张),进行图像增强处理、增强到7000张图像(图像增强处理采用本领域常见的图像增强手段);然后采用labelimg工具进行标注,标注出料槽,从而获得第二数据集;将第二数据集按照8:1:1的比例随机分为训练集、验证集和测试集;
[0067]
步骤d:基于yolov5s作为基础框架搭建目标识别网络模型(yolov5s目标检测网络模型基于python3.6版本的pytroch深度学习框架下进行,主要的依赖库opencv、numpy、matlibplot等);将第二数据集(的训练集)放入深度神经网络中进行模型迭代训练后,获得
第二目标检测框;迭代训练的过程具体为:读取已加载第二数据集(的训练集)到yolov5s的输入端,采用mosaic数据增强、自适应锚框计算和图片尺寸处理等方式,其中,mosaic数据增强是对4张图片按照随机缩放、随机裁剪、随机排布的方式进行拼接,丰富了数据集样本,使网络具有更好的鲁棒性;通过骨干网络进行特征提取,骨干特征提取网络主要包括切片结构(focus)、卷积模块(cbl)、瓶颈层(csp)以及spp模块;输出端以giou_loss作为目标边界框回归的损失函数,采用非极大值抑制(nms),提高对多目标框重叠现象的检测能力,输出包含预测图像中的缺陷位置和分类信息向量;
[0068]
通过第二目标检测框中心点的坐标信息,获得料槽侧面中心点(即距离移动机器人最近一列的料槽侧面的中心点)与深度相机(即移动机器人上的深度相机)坐标系的相对位置;具体为:
[0069][0070]
式中:z
p
表示深度信息;u、v表示图像的像素坐标,即第二目标检测框的中心点坐标;d
x
、dy表示像素尺寸大小;f
x
、fy表示相机在x轴、y轴的成像焦距;(x
p
,y
p
,z
p
)表示实际料槽侧面中心点在相机坐标系的三维位置;
[0071]
拟合移动机器人左、右两侧的料槽侧面中心点的三维位置后,获得距移动机器人最近料槽的三维位置,从而控制移动机器人运行过程中的停止。
[0072]
步骤e:基于两个检测机构的深度相机,分别获取两侧料槽图像;对料槽图像进行预处理、阈值分割处理后,结合超声波测距传感器数据并进行不同补偿权重分配,获得料槽剩料情况。
[0073]
其中,对料槽图像进行预处理、阈值分割处理具体为(必要时,可先基于目标检测网络对采集的料槽图像进行识别与截取,获得仅包含料槽的图像,可采用本实施例上述方法进行料槽图像的截取):
[0074]
首先,将进行降噪处理后的料槽图像转换为hsv格式,从而获取到料槽图像的每一个像素点的hsv颜色空间值;然后,根据v分量颜色空间对每一列的每一个像素对应的v分量值,获得x
i-col
的一维矩阵[v
1i
,v
2i
,
…
,v
ni
];之后,对x
i-col
的一维矩阵进行v
(i+1)i-v
(i)i
的迭代计算,当其差值的绝对值大于预设阈值v
limit
时(本实施例中,v
limit
为30),获得n个阈值边界点(若未获得绝对值大于预设阈值v
limit
的差值、则一直进行迭代计算或报错),取最后一个边界点为x
i-col
的一维矩阵的边界点xb;最后,对每一列进行上述操作,提取出阴影的上轮廓曲线,结合料槽图像的底部边缘,获得料槽正投影阴影轮廓面积。
[0075]
结合超声波测距传感器数据并进行不同补偿权重分配,获得料槽剩料情况具体为:
[0076]
首先,超声波测距传感器分别获取超声波到料槽内部左侧点的距离d
l
、超声波到料槽内部中点的距离dc、及超声波到料槽内部右侧点的距离dr,获取回归曲线:
[0077]
w=kd+b;
[0078]
式中:w表示补偿权重,其包括左侧点补偿权重w
l
、中点补偿权重wc与右侧点补偿权重wr;k、b为常数值;
[0079]
根据补偿权重(w
l
,wc,wr)与正投影阴影轮廓曲线(正投影阴影轮廓曲线根据料槽图像的y像素点分成三部分),获得最终轮廓曲线x
bn
:
[0080]
x
bn
=w
·
xb;
[0081]
通过最终轮廓曲线判断料槽内的剩料情况。
[0082]
实施例2:
[0083]
作为对本技术方案的进一步优化,在实施例1方案的基础上,基于c/s架构编写多线程发送与接收图像程序,在移动机器人上搭载jieson nano设备部署客户端读出深度相机的视频流数据并实时发送,在本地终端搭建内嵌nvidia jetson agx设备部署目标检测网络与相应服务端并实时接收图像数据进行目标检测处理。
[0084]
在步骤b拟合得到移动机器人的导航线后,移动机器人客户端控制设备实时接收本地终端发送的导航预瞄点,并结合深度流数据获取得出深度距离z,从而获得偏航角delta:
[0085][0086]
其中:
[0087]
式中:cx、fx表示深度相机内参,可以直接从深度相机读出;
[0088]
将获得的偏航角delta输入pid算法进行比例积分调节获得当前时刻的delta,从而输入到移动机器人的控制器中,结合运动学模型,控制器分配速度给移动机器人的车轮、实现行走控制。
[0089]
实施例3:
[0090]
如图1所示,一种用于笼养肉鸽料槽剩料的实时判别方法,其特征在于:包括:搭载边缘控制设备、远程传输模块与两个检测机构的移动机器人,以及搭载图像处理模块、远程传输模块、目标检测网络模块的终端处理器;
[0091]
步骤一:移动机器人放置在肉鸽棚内,各系统程序参数初始化、上电;
[0092]
步骤二:加载目标检测网络模型、图像接收多线程程序,同时数据连接至云端程序;
[0093]
步骤三:移动机器人与终端处理器远程连接,启动移动机器人的深度相机,深度相机采集分辨率640*360图像并通过socket通信方式传输到终端处理器;
[0094]
步骤四:终端处理器通过实施例1中步骤a与步骤b中的方法获得导航线,并通过实施例2中的方法获得偏转角delta,利用偏转角与pid算法实现移动机器人的行走控制;同时,终端处理器通过实施例1中步骤c与步骤d中的方法获得料槽侧面中心点与移动机器人深度相机坐标系的相对位置;
[0095]
步骤五:根据步骤四中的行走控制控制移动机器人沿着导航线运行,当位于最近的料槽位置时(根据左、右两列料槽侧面中心点与移动机器人的深度相机的相对位置进行判断),移动机器人停止运行;
[0096]
步骤六:分别开启两个检测机构的深度相机和超声波测距传感器(同时开启检测
机构上的直射光源),检测机构的深度相机相隔一定时间提取一次图像,获得料槽图像与超声波测距传感器的数据,并利用实施例1中步骤e的方法判断料槽剩料情况;
[0097]
步骤七:循环步骤三与步骤六,直至完成所有料槽剩料情况的判断。
[0098]
尽管已经示出和描述了本发明的实施例,对于本领域普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。