基于多传感器的方舱猪舍猪只采食行为分析系统*

2023-10-09 12:11刘广同曹淑楠杨万林刘橙何金成
中国农机化学报 2023年9期
关键词:食槽高斯分布读写器

刘广同,曹淑楠,杨万林,刘橙,何金成

(福建农林大学机电工程学院,福州市,350002)

0 引言

生猪养殖产业是我国畜牧业的支柱性产业,2022年世界猪肉总产量为1.098×108t,相比于2021年,同比上升幅度为2.08%。世界猪肉产量上升的主要原因就是中国生猪产能的快速恢复[1]。中国生猪市场自2020年1月份以来就面临着非洲猪瘟疫情与新冠肺炎防控双重打击,使得生猪供给出现紧张态势,造成猪肉价格剧烈上涨[2]。因此,国内养殖企业逐步大规模采用封闭式养殖猪舍,降低猪只之间的疾病传播。其中以方舱猪舍养猪最为典型,方舱形状规整,移动方便,能够根据养殖需要进行任意摆放和随时转移。它是一个全封闭空间,漏粪板将猪舍一分为二,上层位生猪生活区,下层为集污区[3-4]。相较于现有技术,方舱猪舍能有效地隔离各种疾病传染源。然而,当前市面上的方舱猪舍猪只缺乏综合管理和对个体的精准饲养,对于生猪的生长状况不能及时掌握,对于生猪病疫的爆发也不能及时预防,这样直接制约生猪养殖事业的发展。所以对猪只进行综合管理,监测猪只的行为活动,分析猪只采食数据成为科学养猪势在必行的策略。

二十世纪五十年代,美国海军研究室开发了一套名为“辨别敌我系统”的无线识别技术。在其后的数十年间,该技术在物流、制造、仓储等不同行业遍地开花[5-6]。随着我国高新技术的快速发展,社会对于粮食安全、智能化管理等方面的要求也逐步提高,这些促使RFID技术在农畜业快速推广与普及。当前国内外市场的多种自动化养猪系统中已经成功采用RFID技术。Ostersen等[7]为了检测母猪的自动发情情况,提出一种妊娠期恢复发情母猪的自动检测方法。Chen等[8]设计了一个基于RFID技术的智能化监测鸡舍箱系统,可以分析单个母鸡的产蛋性能。Li等[9]开发了UHF RFID系统用于自动监测与量化单个母鸡的喂养与筑巢行为。Catarinucci等[10]基于RFID技术,研究了小型活体动物的跟踪系统,适用于小动物定位和跟踪。谢菊芳等[11]设计了“肉猪工厂化生产质量安全监控系统”,能促进养猪场的工厂集约化管理。高云[12]基于无线传感器网络技术,提出了养猪综合监测系统,能够实现养猪综合监测的网络化、智能化。李日华等[13]结合称重、PLC养殖生态环境控制、智喂精准控制等技术设计基于RFID的智能化养猪系统,能对规模化养猪实现全程智能管控。

对于生猪的采食行为分析主要有两个方面:一方面,动物的采食量信息是其健康和生产所需营养物质的量化基础[14],研究动物的采食量对其采食行为有着极其重要的意义;另一方面,生猪在经历疫病亚临床和临床表现之前,往往其自身的行为会产生较大的改变,比如日常进食量和活动量骤减,粪便干燥,尿液浑浊等[15]。对于非洲猪瘟,其临床表现有四种:最急性型;急性型;慢性型;温和型。其中最急性型与温和型并不多见,而急性型与慢性型往往伴随着猪只进食量的急剧变化[16-17]。因此,监控生猪的行为活动和生理表现可以及时有效地发现疫病爆发情况,提早发现异常猪只,防止造成更大规模的疫病爆发。

本研究设计了一种包括RFID在内的多传感器方舱猪舍猪只采食行为分析系统,根据猪只身份信息,记录猪只的采食量,并分析猪只的采食数据,预警饲养员,实现对猪只采食异常的准确追踪与病疫预警。

1 系统设计

1.1 系统总体设计方案

猪只的采食行为分析数据包括获取猪只的采食量,采食时间,采食频率。其中由前文可知采食量又最能直观反映猪只的健康状况。而获取猪只的采食数据信息首先要做的就是对猪只的身份进行确定。因此,本文采用RFID电子标签对猪只的身份档案进行注册,然后使用RFID读写器标定猪只身份,这样便能对猪只进行信息化管理。为了获取到猪只的采食时间与采食频率,本文选用图像识别技术与称重传感器进行测定。其中图像识别技术和RFDI技术共同判别猪只是否进入采食区域,以及进入采食猪只的身份,而称重传感器则是记录随时间变化的食槽重量来反应猪只采食量、采食时间、采食频率。

系统由上位机应用软件和与之相连的下位机系统设备两部分组成。其中系统通过RFID设备、摄像头、称重传感器以及温湿度传感器等设备对方舱猪舍内猪只的生长环境与状态进行实时监控,用户可以通过软件及时得知猪只在成长过程中出现的异常采食数据与猪舍的温湿度环境信息。系统在获得数据的同时也提供了采食数据分析的策略,根据猪只的历史采食数据与该重量下猪只的科学进食量进行判断与专业的决策,即对用户进行预警,防止病疫的传播,方舱猪舍猪只采食行为分析系统的整体设计方案如图1所示。

图1 方舱猪舍猪只采食行为分析系统框架图Fig. 1 Framework diagram of feeding behavior analysis system for pigs in square cabin pig houses

系统的整个工作过程为:RFID生猪识别模块利用RFID唯一标识的电子耳牌标识猪只,建立猪只的管理档案,从而实现猪只的身份认证。限位栏一次只允许一头生猪进入采食,当猪只进入限位栏后,就进入了RFID天线的识别范围,可以被RFID读写器识别,此时系统记录下猪只的身份信息。图像识别模块通过视频监控实时将方舱猪舍内的信息及时发送到上位机(工控机),在上位机端设计相应的猪只运动判别算法去判别猪只是否在采食区域。称重模块通过安装在食槽下方的重力传感器测量到食槽饲料重量。当图像识别模块识别到猪只进入采食区域时,系统记录下当前的时间与食槽饲料重量,当图像识别模块识别到猪只离开采食区域时,系统再次记录下当前的时间与食槽饲料重量,通过食槽饲料重量的减少值,从而对每只生猪的每次进食量数据进行收集。通过重力传感器检测料槽饲料的减少,RFID传感器对猪只的准确定位,图像传感器对猪只采食位置的识别,三个传感器确保准确识别收集到每一个猪只的采食行为和采食量。此外,限位栏内安装有防躺杆,防止因为采食结束的猪只长期滞留在采食区域内而影响后续猪只的采食。

1.2 系统结构搭建

RFID识别模块是整个系统构成的重要部分,主要包括四个部分,分别是读写器,电子标签,增益天线,以及RS485输出。空间分布为将RFID的增益天线固定在食槽上方,也就是正对限位栏的方向,读写器安装在方舱猪舍的墙壁高处,防止方舱猪舍内的杂污对其进行腐蚀。电子标签则钉在猪只的耳朵上,随着猪只的运动而不断移动。由于疫情期间内猪场都不允许生人进入,所以本文所开发的系统不能实地测试,只能采用实验室搭建的猪舍模拟方舱猪舍,布偶猪只模拟生猪对系统进行测试,因此将电子标签贴在布偶猪耳朵上。现场的布局结构图如图2所示。

图2 基于多传感器的方舱猪舍猪只采食行为分析系统结构示意图Fig. 2 Schematic diagram of feeding behavior analysis system for pigs in square cabin pig house based on multi-sensor1.RFID系统读写器 2.工控机 3.方舱猪舍 4.限位栏 5.视频传感器 6.食槽 7.RFID系统天线 8.漏粪板 9.RFID系统电子标签

由于无法进入方舱猪舍的实际养猪场对生猪进行实验,所以根据方舱猪舍猪只采食行为分析系统的总体设计方案以及设备的选型,搭建了模拟现场系统。方舱猪舍的主体限位栏采用220 cm×70 cm×100 cm的加厚热镀锌管来搭建,其特点是易于装配且承载能力强,不易被复杂的环境所腐蚀。漏粪板采用了50 cm×60 cm的聚丙烯材料,能够做到无缝接插,漏粪无死角,而且具有很强的承重能力。对于读写器,本文选择了十六通道超高频读写器,相比于其他频段,超高频通过电场来传输能量,该频段识别的距离远,有较好的读取距离,其次还有很高的数据传输速率。本文采用了无源耳标式18000-6B电子标签,它施加在动物的耳部,可以承载动物的个体信息,既能节约成本,又具备极佳的存储性能和响应速度,可靠性极高。监测设备主体是使用了一颗1080P的高清视频监控摄像头,安装在方舱猪舍的墙壁内侧,通过调整摄像头角度使得摄像头能够正好监测到猪只进入食槽的采食区域范围。称重传感器镶嵌在称重支架里然后安装在食槽下方固定住,如图3所示。

图3 食槽与称重压力台Fig. 3 Feeding trough and weighing pressure table1.称重支架 2.称重传感器 3.食槽

2 猪只采食行为判别分析

2.1 图像处理技术

2.1.1 自适应高斯混合模型

传统高斯混合模型对目标物体的运动检测过程中,在对背景场景进行建模的时候,需要对每一个像素点建立K个高斯分布[18]。在进行背景建模和目标运动检测时,对于所截获的每帧图像都需要建立固定数量的高斯分布去进行描述,同时再对高斯混合模型进行更新时,需要对其所有的像素点均进行同步更新,这样就使得高斯混合模型的算法运算量变得极其庞大而且加重了对于后台硬件设备的运行负担,同时冗余的运算量更是无法保证检测的实时效果[19-20]。改进后的高斯混合模型的算法如下。

第一步,自适应的高斯混合模型的分布初始化。对于监控视图里所有的像素点均只建立一个高斯模型,但是需要对其分布数K0进行赋值,K0赋值的计算方法如式(1)所示,K0一般为1~5。

(1)

式中:KL、KM、KS——初始化时不同的高斯分布数初值设定;

σ02——初始化设置的方差;

Tk1、Tk2——分配的不同初始分布数的阈值。

第二步,自适应的高斯混合模型的动态调整。

1)α的更新。在高斯混合模型中,运动检测算法的参数学习率α是一个固定值,这就导致了高斯混合模型对于场景背景中运动目标其速度变化的情形难以适应[21]。场景背景的更新速度取决于学习率α的取值情况,一旦场景变化率产生了变化,那么此时学习率α也会随之更新,其更新规则按式(2)所示。

(2)

式中:α0——初始设定的学习率,根据经验所得,一般取值范围在0.01~0.1之间;

f——高斯分布在单位时间内的变化次数;

Tf——所设阈值。

2) 高斯分布的更新。将高斯混合模型的K个高斯分布按照权重值大小进行排序,若当前的观察值与K个高斯分布均不匹配的时候,就新增加一个分布,K已经达到了所设的最大值,就删除掉权重值最小的高斯分布,然后再增加一个高斯分布。若高斯分布满足式(3),则对均值相似的两个高斯分布进行合并,对权重值较大的分布进行更新处理,较小的则需要删除。

|μx-μy|≤Tμ

(3)

式中:μx——均值为x的高斯分布;

μy——均值为y的高斯分布;

Tμ——均值最小间隔的阈值。

对高斯分布进行处理后,再进行权重值的比较,若权重值低于阈值,就将当前的高斯分布舍去。

2.1.2 基于自适应的高斯混合模型的猪只运动判别算法

对于猪只的运动行为判别来说,采用改进的自适应高斯混合模型可以得到理想的猪只运动判别效果。

首先需要对摄像头传输过来的图像帧进行截取,对其进行灰度化预处理,得到灰度化图像帧。这样做是为了减少原始的图像数据量,便于后续计算量的消减,因为对于图像处理而言,并不是所有的彩色图像都需要对RGB三个颜色通道的分量都进行处理。然后创建一个改进的自适应高斯混合模型用于视频帧的背景减法,它的作用是更新背景模型,输出前景掩码。然后用特定的图像和当前时间戳更新motionHistory对象,将上述灰度化图像添加进motionHistory对象中作为基准图像。接着获取到运动目标的蒙版副本并增强它的颜色。这里采用蒙版是为了进行前景分离,它是一个灰度图,每一个像素点的灰度值便表示在原始图像中每个这个像素属于运动前景的程度。最后定义运动区域范围,用阈值来降低检测微小运动的值。最后在特点的运动区域内遍历每个运动组件,输出运动像素数量。基于自适应的高斯混合模型猪只运动判别算法流程图如图4所示。

图4 猪只运动判别算法流程图Fig. 4 Flowchart of pig motion discrimination algorithm

当猪只未进入采食区域时,由于都是静态的背景(场景未变化),改进的高斯混合模型检测不到目标运动点的信息,也不能得到符合猪只进入的运动像素点的信息,如图5所示。

图5 猪只未进入时检测图像Fig. 5 Detect images when pigs are not entering

当猪只采食区域后如图6所示,此时静态的背景场景被打破,在猪只运动判别算法的作用下,猪只的运动像素被记录下,自定义的运动区域内运动组件的遍历数量也大幅度增加,猪只的运动像素点被记录下来上传给数据库的表中供程序调用。

图6 猪只进入时检测图像Fig. 6 Detect images when pigs are entering

2.2 数据融合实现猪只采食行为判别

对猪只的采食行为判别是对猪只进行采食数据收集的前提,猪只的采食行为判别分为三个部分。首先是RFID设备对猪只身份的确定,当采食猪只进入了限位栏内RFID增益天线所能识别的最大有效距离(0.5 m)后,由于电子标签的响应,上位机系统能很快接收到猪只身份信息,完成对猪只的信息化定位。其次,当猪只前进到摄像头所能监控到的采食区域后,根据上文所述,上位机会受到一个基于自适应的高斯混合模型的猪只运动判别算法返回的运动像素点。此时需判断此运动像素点是否大于猪只运动点阈值T1(这个阈值在本文中设为200 000),若大于,则判定被RFID设备所识别的猪只已经进入采食区域,反之,则猪只未进入采食区域。

进入了采食区域的猪只并不一定会进行采食,有可能只是滞留,所以要判断猪只的采食行为还需要称重传感器所提供的食槽重量的数据支撑。一旦猪只被RFID设备识别,又进入了摄像头所监控的采食区域,而且此时重力传感器能够监测到食槽饲料重量的波动,便认为猪只已经正在进行采食行为,记录下此时的时间作为猪只采食开始的时间。同理,当上位机收到的返回的运动像素点小于猪只运动点阈值T2(这个阈值在本文中设为5 000),且称重传感器不再检测到食槽重量值的波动,就认为猪只已经完成了本次的采食行为,记录下此时的时间作为猪只采食结束的时间。最后,通过食槽前后重量的对比,可以很清晰的得出猪只本次的进食量,完成一个完整的猪只采食行为收集过程。

3 系统上位机设计

软件设计的一个很重要环节是确定开发工具和编程语言。在进行系统的软件开发时,本项目使用Visio Stdio2019软件来编写、调试、编译程序。为了方便软件的二次开发与通用性,本设计使用基于C#语言的窗体程序进行编程。对于软件开发的架构,本文选择了C#经典的三层架构进行开发。数据库方面考虑到成本、功能,本文选择了MySQL数据库。

通过上文对于系统的构建分析,设计满足以下的系统功能:(1)新的生猪进入猪舍后,饲养员可为其建立一个全新的身份档案,用于后续采食行为的分析。(2)系统须包含对于RFID设备的操作功能,如更改RFID读写器的功率等。(3)系统需包含猪只运动检测功能。(4)系统需包含对于称重传感器的操作功能,如清零,标定等。(5)系统需对方舱猪舍内的猪只进行采食数据分析,确保采食异常的猪只能被及时预警,此外猪只的采食数据能被导出,供用户使用。

3.1 系统主控模块

系统主控模块是系统跳转各种功能界面的接口,其本身也包括了预警信息,异常猪只信息,以及猪舍环境信息与视频监测的部分内容,如图7所示。

图7 系统主控界面Fig. 7 System master interface

今日预警信息是后台对猪只采食数据进行分析,其流程先获取猪只一天的采食量然后再与该猪只的前一天进食量进行对比,如果进食量小于前一天的二分之一,就接着比较该猪只进食量和其体重类似的猪只科学进食量官方数据,若还是小于,那就对饲养技术员进行预警,显示在主控界面上,此猪存在采食异常状况,可能发生病情,需要重点关注。其他的子功能窗体都由主控界面的按键跳转,如点击RFID设置便能跳转到RFID设置界面。

3.2 RFID设置模块

RFID读写器的开发是基于Winform窗体下的程序开发。采用了UHFREADER288.DLL动态连接库,该开发包可以支持程序调用C语言接口函数,对开发者屏蔽RFID设备的下层硬件协议,大大减少了开发者的工作量。上位机应用程序可以通过UHFREADER288.DLL操作读写器读写R2000系列的18000-6C与18000-6B格式的电子标签,并同时支持上位机程序在多个接口同时打开多个读写器。通过设置界面,用户可以完成连接上位机与读写器,设置读写器的地址,设置查询的响应时间,对射频频率、射频输出功率进行控制,对增益天线进行设置等一系列功能。

对电子标签进行读取和写入操作是RFID模块最重要的功能。本文所述读写器可对多张18000-6B标签进行同时读取,当读写器接收到用户读取电子标签的命令后,便开始读取每张标签由起始位开始的8位字节数据,识别电子标签完成后返回本次识别的标签数目,并将标签信息置入数据库。

3.3 称重模块

称重模块是将称重传感器获取到的有效采食信息实时传输到系统的数据库中。除了基本的获取称重传感器的称重数据外,还开发一些高级功能,如对称重传感器进行清零、标定等操作。其中清零是为了消除因为温度原因所引起的零点漂移,对于校正称重传感器还是很有必要的。

3.4 信息查询模块

3.4.1 猪只身份信息管理模块

当有新的猪苗进入方舱猪舍或者是有猪只离开方舱猪舍时都需要对猪只的身份进行登记或修改。猪只的身份信息包括猪只编号、性别、猪龄(以月为单位)、产地、异常信息五个部分组成,其中编号是RFID赋予的电子耳标编号,也是系统准确定位到该猪只的唯一方式,异常信息就是该猪只所有的异常采食数据信息。猪只身份信息管理模块的增加、修改、删除功能均是以猪只编号为索引,通过MySQL语句对数据库进行操作。如图8所示为查询猪龄大于三个月的方舱猪舍所有猪只。

图8 猪只身份信息管理模块功能展示图Fig. 8 Pig identity information management module function display diagram

3.4.2 猪只采食信息管理模块

猪只采食信息管理模块主要提供给用户三个主要的查询功能,第一是猪只的历史采食数据查询,可以通过猪只的编号和采食时间分开检索,也可以结合两者综合检索,这里同样是通过查询语句对数据库进行查询操作。第二是查询RFID数据功能,这里有区别于RFID设置里的RFID实时数据显示的是,在这里可以查询到RFID历史数据,而在RFID设置界面内只能查询到实时识别的RFID标签数据。第三是数据导出,数据导出是将控件的数据导出到excel。图9展示的是查询编号为1000591120621的猪只于2021年12月5日的所有采食数据。

图9 猪只身份信息管理模块功能展示图Fig. 9 Pig identity information management module function display diagram

4 测试与分析

4.1 RFID设备影响参数

在猪只的采食行为判别过程中,RFID设备起到的是对猪只身份进行识别的作用,而在系统中对于猪只的有效识别距离则是需要一个适当的值(本文选取的有效识别距离为0.5 m)。既能保证当猪只进入采食范围后能被确定其身份,又能保证识别的精确度,不会误检到其他的未采食猪只。

试验选取了对系统影响可能较大的4个因素进行试验,分别是RFID读写器功率、猪只靠近速度、射频频率以及RFID电子标签的靠近方向。由于无法进入实际方舱猪舍养猪场对猪只进行试验,所以本文选用了基于STM32芯片(速度编程可控)的智能小车来模拟猪只,同时设计了小车的行车轨道2 m。实际试验过程中将小车按照横线(与天线接触面最大)、纵向和斜向,分别贴在小车上让小车靠近增益天线,使得电子标签的信息被读写器读取。根据以上影响因素,以RFID电子标签的有效识别距离作为评判标准,设计四因素三水平的正交试验,各因素的三水平如表1所示。

表1 试验因素水平表Tab. 1 Experimental factors and level table

表2中的k1、k2、k3表示每个因素在3次试验所得RFID有效识别距离的平均值,R代表平均数的极差,A、B、C、D为因素编码值。R的大小代表着变化的幅度,R越大,说明该因素对于最后的有效识别效果有着显著的影响效果。

表2 正交试验分析结果Tab. 2 Analysis results of orthogonal experiment

由表2可知,R最大的为D,其次是A,而B、C相对较小,故标签的靠近方向与读写器的功率对于电子标签的识别效果有着重要的作用。且该表因素的优水平为:A3B3C2D1,也就意味着读写器的功率为27 dBm,小车靠近速度为最慢的0.11 m/s,射频频率为920.75 MHz,标签靠近方向为横向靠近会使得电子标签在0.5 m左右的识别效果最好,超过这个范围会使得电子标签不能被识别,满足需求,也与实际情况相符。

4.2 猪只个体饲喂测定试验

试验随机选取了300 g、400 g、500 g、600 g作为猪只的一次进食的标准质量。每个标准质量重复模拟饲喂50次,测试前采用电子秤校准进食标准质量,测试结果如表3所示,表明在实际的工作过程中,系统具有较好的精度以及比较小的误差,能够满足实际生产需求。

表3 采食数据收集性能测定表Tab. 3 Measurement table of feeding data collection performance

5 结论

1) 设计了一种集猪只识别、猪只采食量收集、数据处理于一体的方舱猪舍猪只采食行为分析系统。该系统采用RFID技术和图像处理技术,选择了基于改进的自适应的高斯混合模型的猪只运动判别算法,能够准确将猪只是否进入采食区域判断出来,结合RFID技术与称重传感器提供的数据支撑,能够准确分析猪只的采食数据,实现猪只的精准饲养和综合管理。

2) 完成了系统的功能开发,根据方舱猪舍的猪只采食行为分析需求设计了不同的系统模块,各个模块之间分工明确共同实现对猪只身份的认证和采食量的收集。通过RFID设备影响参数正交试验确定了RFID设备的实际应用参数设定,读写器的功率为27 dBm,射频频率为920.75 MHz,标签靠近方向为横向靠近会使得识别效果最好。另外通过猪只个体的饲喂测定试验表明系统有较好的精度以及比较小的误差(0.08%~0.1%),能够满足实际生产需求。

猜你喜欢
食槽高斯分布读写器
喂鸡
利用Box-Cox变换对移动通信中小区级业务流量分布的研究
The Dog in the Manger
食槽中的狗
2种非对称广义高斯分布模型的构造
跟踪导练(二)
一种基于改进混合高斯模型的前景检测
基于视频抓拍读写器的高速公路防倒卡研究
基于随机时隙的RFID读写器防冲突方法
一种改进的混合高斯模型背景估计方法*