利索能及
我要发布
收藏
专利号: 2019112505688
申请人: 江苏大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-09-11
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于双目视觉的猪只体重测量及饮水行为识别系统,其特征在于,包括双目摄像机,用于采集猪舍图片;

下位机模块,用于控制与双面摄像机相连的滑轨往返于猪舍的各个地点,并与上位机彼此交互;

上位机模块:对于采集的猪背部图片进行统一地处理,计算出相关猪只的体重信息,对于饮水区域周围的图片进行识别,判断是否存在饮水情况;

所述上位机模块采用OpenCv库对猪只的体重进行测量,具体如下:

第一步,设置猪只进食时相对于整张图片的位置,通过setMouseCallback鼠标响应函数,实时在CMD框显示当前的Point坐标信息以判定感兴趣区域ROI,最终确定的ROIimage区域为Rect;

第二步,使用grabCut函数将猪只从整张图片中提取出来,其具体设置如下:grabCut(img,result,rect,bgdModel,fgdModel,iterCount,mode),其中,img为输入的完整图像、result为只包含猪只信息的图像、rect为第一步测量得到的感兴趣区域、bgdModel为整幅图像的背景图像、fgdModel为前景图像即只关于猪只的图像、iterCount为迭代次数设置成

1次、mode选择GC_INIT_WITH_RECT即用矩形划定感兴趣区域;

第三步,对得到的轮廓图result再一步进行筛选,使用compare函数对result结果进行二值化处理和剔除背景信息,设置如下:void compare(InputArray src1,InputArray src2,OutputArray dst,int cmpop),src1为输入图像、src2为前景图像即第二部的fgdModel信息,所以此参数为GC_PR_FGD、dst为输出图像、compop定义为GC_PR_FGD,即如果src1是src2中元素则此像素点为255,如果不属于src2则像素点为0;

第四步,访问每个像素点对于不为0的像素进行置白色,为0进行置黑;采用动态地址配合at方法访问每个像素,如果BRG三通道中有一个不为0均将三通道设置成255,并统计不为

0的像素点的总数;之后采用cvtColor函数进行图像的灰度化、采用threshold函数进行二值化处理即将图像变换成0或者1;

第五步,对得到的猪只的轮廓面积进行换算得到实际的背部面积,公式如下:S1/S2=P1/P2,S1为猪只的实际面积、S2为100CM^2、P1为统计的猪只的色像素点个数、P2为当前高度下的猪只体高;最后对猪只的背部面积、猪只的体高和猪只的体重进行拟合,得到关于因变量为体重、自变量为体高和体重的拟合方程;

所述上位机模块对猪只的饮水行为的监测,具体如下:

第一步,划定低位饮水器的感兴趣区域ROIimage,经过setMouseCallback回调函数确定饮水器在整张图片中的位置Rect(50,0,100,200),此矩形下的白色像素个数需要实时检测数据;

第二步,采用grab函数和compare函数对整张的图片进行猪只轮廓的提取、采用cvtColor函数进行图像的灰度化处理、采用threshold函数对灰度图像进行二值化处理;

第三步,对得到的猪只的图像提取轮廓点集:

采用findContours函数读取图片中出现的所有图形的轮廓点集,其设置如下:

findContours(InputOutputArray image,OutputArrayOfArrays contours,OutputArray hierarchy,int mode,int method,Point offset=Point()),image为输入的二值化图像result、hierarchy为vector>类型的多轮廓点集合contours、mode选择RETR_EXTERNAL配合method选择为CHAIN_APPROX_NONE即代表选择只采集物体的最外层轮廓点集、offset为相对于原图的偏移量选择默认值即不发生偏移;

第四步,绘制轮廓并计算每个轮廓的面积;

采用drawContours绘制出contours点集中的每个轮廓,具体设置如下:

void drawContours(InputOutputArray image,

InputArrayOfArrays contours,int contourIdx,const Scalar&color,int thickness=1,int lineType=8,InputArray hierarchy=noArray(),int maxLevel=INT_MAX,Point offset=Point()),image为输出的图像此处为dstimage三通道全零图像、contours为输入的轮廓点集、contoursIdx为需要绘制的几号轮廓、color选择颜色此处为scalar(255,255,255)、thickness为轮廓的粗细、lintType为线型、hierarchy为轮廓结构信息、maxLevel1为绘制轮廓最大等级采用默认参数、offset偏移量采用默认值;

采用contourArea函数计算每个轮廓点的面积,其具体设置如下:

double cvContourArea(const CvArr*contour,CvSlice slice=CV_WHOLE_SEQ),contours为轮廓点集即vetor类型的contours[i]点集和、slice为计算轮廓的七十点,此采用默认值计算整个轮廓的面积;

第五步,筛选最大面积的轮廓即猪只轮廓、绘制最小外接矩形、找出质心坐标;

对于每个轮廓面积输入到double类型数组,查找最大值后采用drawContours函数绘制出87号轮廓即猪只轮廓;

采用minAreaRect函数计算出外接矩形坐标,其参数为contours[87]即第87号轮廓点集,得到的RotatedRect变量box存储有最小外接矩形四个坐标点的信息;采用box.points(vertex)将box信息赋值给Point2f类型的vertex[4]数组;采用line函数绘制最小外接矩形,具体设置如下:void line(Mat&img,Point pt1,Point pt2,const Scalar&color,intthickness=1,int lineType=8,int shift=0),img为输出图像、pt1是起点vertex[i]、pt2是终点vertex[(i+1)%4]、color是线段颜色选择scalar(255,255,255)、thickness指线段粗细采用默认值、lineType线性采用默认值、shift坐标点小数点位数采用默认值;计算质心Point2f p=(vetex[0].x+vertex[2].x)/2,(vetex[0].y+vertex[2].y)/2;

第6步,观察饮水区的像素点占用情况判定饮水;

在得到二值化result之后观察Rect(50,0,100,200)即饮水区域的白色像素点个数,达到10000白色像素点时,记录质心的坐标Point p,并开始连续的读取10张图像进行前五步的计算,读取质心坐标计算质心的总移动距离即点到点的每一段距离,当小于5CM时,截取原始图像饮水器周围20*20CM的图像,进行头部的识别;流程如下:

1:加载已经训练好的分类器

CascadeClassifier cascade、cascade.load("F:/train2/xml/cascade.xml")

2:读取当前原始的图像

imread("F:/test.jpg",1)

3:检测猪只的头部个数

vectorrect

cascade.detectMultiScale(grayimage,rect)

rect存储x、y、width、height等信息,grayimage为截取的20*20CM的灰度图像;

4:将检测到的猪只头部画圆处理

利用void circle(CV_IN_OUT Mat&img,Point center,int radius,const Scalar&color,int thickness=1,int lineType=8,int shift=0)img为输出图像、center为画圆的圆心坐标选择(rect[i].x,rect[i].y)、radius为圆的半径采用(rect[i].width+rect[i].height)/2、scolor为设定圆的颜色采用scalar(0,0,255)、thickness为设置圆线粗细采用默认值、lineType线型采用默认值、shift圆心坐标点和半径值的小数点位数采用默认值;如果检测出是猪只头部则画圆判定是头部并最终判定存在饮水行为。

2.根据权利要求1所述的一种基于双目视觉的猪只体重测量及饮水行为识别系统,其特征在于,所述双目摄像机采用灰点Bumblebee‑3双目摄像机。

3.根据权利要求1所述的一种基于双目视觉的猪只体重测量及饮水行为识别系统,其特征在于,所述下位机模块包括交流220V‑直流24V稳压电源模块,用于给DM860电机驱动器以及雷赛86CM步进电机供电;采用PLC200 224XP晶体管型发送脉冲信号给雷赛DM860驱动器,驱动器驱动雷赛DM860电机转动,电机转动能够带动滑轨运动。

4.根据权利要求3所述的一种基于双目视觉的猪只体重测量及饮水行为识别系统,其特征在于,所述滑轨的运动采用3段式往返运动,包含加速阶段、匀速阶段和减速阶段,所述加速阶段:采用低频率模式,加速频率在500Hz,脉冲总数1000;所述匀速阶段:平速转动在

1KHz,脉冲总数2000;所述减速阶段:减速频率为500Hz,脉冲总数为1000。

5.根据权利要求3所述的一种基于双目视觉的猪只体重测量及饮水行为识别系统,其特征在于,所述滑轨采用加长的CCM‑W60‑35公斤级直线滑台模具,总长10M,一个来回共驻停8次,每次驻停时间为60s,使用PLC200 224XP的串口0通过RS485连接GPRSDTU,接收来自上位机的控制信号,以远程控制滑轨的启停。

6.一种根据权利要求1‑5任一项所述基于双目视觉的猪只体重测量及饮水行为识别系统的猪只体重测量及饮水行为识别方法,其特征在于,包括以下步骤:步骤1,在猪场横向方位安装滑轨,将各个位置拍摄的位置的图片保存到PC机本地硬盘,供给上位机;

步骤2,双目摄像机初始位置正对着饲喂站下料器区域,猪只进入饲喂器,电子耳标触发GPRSDTU既发送猪只实际的体重亦触发上位机处理程序;

步骤3,上位机从本地PC的相关硬盘中读取此时的猪只俯视图形,用户可以通过按钮计算通过视觉图片计算猪体重;

步骤4,下位机的程序控制摄像机滑动到饮水区域,通过分类器查看是否存在猪只饮水行为,并且记录饮水次数;

步骤5,实际体重与视觉称重信息均存储在上位机MySQL中,可以通过可视化数据库软件Navicat‑for‑MySQL查看相关的信息。