姜来,王文娣,2,3,霍晓静,2,3,王辉,2,3,唐娟,2,3,李丽华,2,3
(1. 河北农业大学机电工程学院,河北保定,071000; 2. 农业农村部肉蛋鸡养殖设施工程重点实验室,河北保定,071001; 3. 河北省畜禽养殖智能装备与新能源利用重点实验室,河北保定,071001)
目前,国内外大部分禽畜养殖场基本已实现了自动上料、自动给水和环境调控等自动化养殖模式[1-2]。但笼内死鸡识别工作主要仍采用人工作业方式,存在作业效率低、劳动强度大、养殖成本高等弊端[3]。因此,开展笼内死鸡识别机器人系统研究是家禽养殖业内的重中之重[4-5]。
机器人在实际生活中的应用大大改善了劳动力短缺的现状,它们既可代替人们完成危害人体健康的工作,又能降低生产成本,节约能源[6]。随着畜禽养殖业的不断发展壮大,养殖场的工作强度与工作环境也随之改变,使机器人有了更广大的应用与发展空间[7]。冯青春等[8]研究了一款畜禽防疫消毒机器人,该机器人既能自主移动又能进行遥控操作,药液喷嘴喷药流量最大可达400 mL/min,雾滴直径最大达137.23 um,可实现舍内消毒和免疫药液的智能喷洒。Liu等[9]研制了一种针对平养模型下蛋鸡的舍内死鸡自动清除机器人,该机器人采用履带式行走方式,一次最多能清扫两只死鸡,且识别精度高达95.24%。李腾飞[10]基于规模化蛋鸡笼养模式,设计了一种蛋鸡健康行为检测机器人,试验表明该机器人定位精度可达到16 mm,死鸡识别率达到87.5%,但该机器人采用可视摄像头,不适用于亮度较暗的养殖场,且当有光照影响时成功率较低仅为4.69%。
与蛋鸡相比,肉鸡生长速度快且养殖密度大,羽毛覆盖不均匀,导致死鸡检测难度较大,且目前未见有关肉鸡识别机器人研究的相关报道。与可视摄像头相比,红外摄像头可以应用在特殊的光照条件下,探测能力强[11-13],适用范围更广。且红外热成像目前也已广泛地应用在畜禽养殖中,部分国外学者利用热成像技术来预测猪只感兴趣区域体表平均温度,利用此平均温度结合实际猪只状态判断猪只状态,研究结果表明此方法的检测精度为85%,灵敏度指标为86%。本研究以层叠式笼养肉鸡为研究对象,基于机器人技术、红外热成像技术及图像处理技术开发了一款死鸡识别机器人系统,对机器人构成及其作业原理进行了介绍,对机器人的检测性能进行现场试验测试,并对结果进行分析。
死鸡识别机器人系统结构如图1所示,总体长度为74 cm、宽度为56 cm、高度为139 cm。机器人箱体用来放置笔记本及电源等设备,采用笔记本电脑来实时显示机器人处理图像的效果。行走方式采用的轮式结构可降低巡检时产生的噪声,减缓对肉鸡干扰,以免造成鸡只的应激反应。装配上下两个红外热成像摄像头,可同时检测上下两层鸡笼。配备了循迹装置,可根据电磁及红外传感器自动寻找任务点。配备蓄电池和逆变器可为笔记本电脑、控制器及红外模块供电。
图1 死鸡识别机器人系统主体结构图
死鸡识别机器人系统是由死鸡识别算法和系统硬件平台两部分结合而成。死鸡识别机器人系统工作原理见图2。系统硬件平台主要负责获取目标红外图像,搭载死鸡识别算法,完成目标检测任务。红外图像由红外探测传感器根据检测到的物体热辐射能量获得,机器人自主移动靠嵌入式处理器通过处理接收到的电磁信号和光电信号来控制。死鸡识别机器人按照铺设好的电磁轨迹进行巡检,当到达需要进行检测的工作位置时,控制器会收到红外传感器产生的感应信号,然后控制底盘停止并对当前鸡笼进行检查,检查完毕后,控制器会根据识别结果进行下一步命令的发出,如若此鸡笼存在死鸡则会通过通信模块将结果传输给终端,然后继续进行下一个鸡笼的巡检,如若不存在死鸡则直接进行下一个鸡笼的巡检。
图2 死鸡识别机器人工作原理
死鸡识别机器人系统软件结构如图3所示,具体分为初始化配置模块、数据采集与处理模块、机器人运动控制模块和结果处理模块。初始化配置模块用来加载函数库、初始化相关程序等;数据采集与处理模块用来对识别目标的图像采集、储存及运行死鸡识别算法对目标状态进行判断;机器人运动控制模块负责机器人移动寻找检测点,到达检测点后开始检测,检测完毕后继续移动;结果处理模块负责对检测结果的实时显示与远程预警。
图3 系统软件功能结构图
系统硬件结构如图4所示。
图4 系统硬件结构图
由图4可知,系统硬件主要由视觉模块、信息处理模块、底盘控制模块组成,各个模块主要组成及功能如下。
1) 视觉模块:主要由红外摄像头、升降杆及角度调节装置组成。红外摄像头相当于死鸡识别机器人系统的眼睛,负责获取被检测鸡笼的红外图像,并传输给控制器。升降杆及角度调节装置负责根据鸡笼规格不同对红外摄像头的高度及角度进行调节,使其获取更高质量的红外图像,便于后续处理及分析。
2) 信息处理模块:由OpenMV4嵌入式控制器组成,是死鸡识别机器人系统的大脑。既要用来对红外摄像头、电磁传感器等相关设备的数据解析,又要对红外图像进行分析与处理、同时又是底盘运动的控制中心。
3) 底盘控制模块:底盘控制模块主要由电机驱动器、红外传感器、电磁循迹装置等组成,电机驱动器主要功能为根据处理器发出的信号控制底盘运动,红外传感器接收负责控制底盘停止的信号,电磁循迹装置负责使移动底盘按照规定路线进行巡检。
4) 显示模块:显示模块由笔记本电脑、WiFi模块及路由器组成。笔记本电脑负责现场观察识别结果及修改系统参数等,WiFi模块及路由器负责将识别结果告知养殖场巡检人员。
5) 电源模块:电源模块主要由两块12 V蓄电池,12~220 V逆变器及插排组成。主要用来给整个系统供电。
1.4.1 移动地盘选取
移动平台是巡检系统的关键部件。试验中采用轮式底盘作为死鸡识别机器人系统的移动平台,使得机身移动起来更加轻便,转弯更加灵活,方便在空间狭小的养鸡舍内进行作业。通过对系统所应用环境及所需求功能进行分析,最终选择TRACER移动机器人底盘,是一款采用模块化、智能化的设计理念的多功能模块化的行业应用移动机器人开发平台,具有强大载荷能力和强劲动力系统的它有广泛的应用领域。TRACER移动底盘长宽高分别为685 mm、570 mm和155 mm,各轮采用独立驱动,采用两轮差速转向,能够在养殖场内能够灵活移动。
1.4.2 红外摄像头选取
红外摄像头的好坏会直接影响到死鸡识别机器人系统的检测精度。综合考虑了像素尺寸、镜头焦距和测温性能三个参数指标后,最终选用高分辨率红外热成像模块Lepton3.5作为红外摄像头,具有体积小、功能强和易于集成等优点。Lepton3.5的像素尺寸为12 μm,分辨率为160像素×120像素,温度分辨率为0.05 ℃,均满足本设计要求。
1.4.3 嵌入式微处理器选取
嵌入式微处理器的好坏直接关系到整个系统的性能,主要用来计算和控制整个系统。根据系统需求,包括接收并处理红外热成像、控制底盘运动和利用WiFi模块进行信息回传等功能,选用OpenMV4作为系统的核心控制器。该控制器以STM32H7为核心处理器,拥有480 MHz主频,1MB RAM,2MB flash等优良性能。该控制器还支持大量数据接口,如USB接口、SPI总线、普通IO接口等,可满足本系统所有需求。
1) 通信模块。由于机器人在工作中是不断移动的,使用有线通信会受到较大限制,故而选择无线通信,选择WiFi模块ESP8266作为通信模块。
2) 电磁感应模块。为了使系统能够自主行走,使用电磁导航作为巡检方式,型号为MLSE-0500A2NP0。
肉鸡的红外图像中活鸡与周围背景有明显的颜色区分,因而可以考虑通过图像处理方法检测图像中活鸡数量,再与笼内实际数目做比较,以此判断笼内是否存在死鸡。死鸡识别算法流程见图5。
利用图像处理方法对红外图像中鸡只进行分割提取,然后确定此区域最大温度,通过此温度与阈值进行比较从而确定笼内活鸡数量。温度阈值根据对多幅活鸡及死鸡红外图像进行温度提取与分析确定。若算法得出的活鸡数目与笼内鸡只总数相同,则表明笼内不存在死鸡,相反则表明笼内存在死鸡。
传统阈值分割算法有最大类间方差法(Otsu法)、最小误差法、最大熵法等[14-15]。其中,Otsu法是一种经典的全局、非参数、无监督自适应阈值选取方法,且目前已经被广泛应用于禽畜检测领域[16-17]。此种方法计算简单,是图像分割中阈值选取的最佳算法,且在一定条件下最大类间方差法可不受图像对比度与亮度变化的影响。因此本文选用此方法对鸡头进行提取,具体实现过程如下。
假设存在一个阈值TH将整个图像的像素分为小于TH的C1和大于TH的C2两类,各自均值为m1和m2,全局均值为mG,C1和C2所占概率分别为P1和P2,建立关系如式(1)和式(2)所示。
P1×m1+P2×m2=mG
(1)
P1+P2=1
(2)
根据方差的概念,类方差公式如式(3)所示。
清水砖:整体墙面砂灰抹面,涂料或者真石漆饰面,墙角采用灰色涂料或者真石漆做500高外饰面,墙脊挂灰色小青瓦;
σ2=P1(m1-mG)2+P2(m2-mG)2
(3)
将式(1)代入式(3)推出类间方差公式,如式(4)所示。
σ2=P1×P2×(m1-m2)2
(4)
从0~255遍历TH值,求使σ2最大的TH值即为阈值。
依据上述所述,使用Otsu法阈值分割前后图像对比见图6,图6(a)里面共有三只活鸡一只死鸡,根据图6(b)分割结果可以看出主要的分割噪声来自他笼鸡只,但与分割目标相比噪声面积较小,故而接下来可以考虑根据面积大小来消除噪声。
(a) 白羽肉鸡红外图像原图
经过阈值分割之后,可明显看出待检测目标已与背景进行了分离。但是仍然有一些残留区域存在,这些残留区域主要包括其他笼中肉鸡,或者刚死亡不久后的肉鸡。为减少残留区域对图像处理的影响,采用开操作将小面积区域进行去除。经过大量的图片测试,确定去除区域面积的阈值,处理后得到的结果见图7。
(a) 阈值分割后二值图像
红外热像仪拍摄的图像分辨率为320像素×240像素,图像中每个像素点在对应的CSV文件中对应着一个温度数据,即一副图像中存在320×240个温度数据,获取像素点的横纵坐标便可获取此像素点的温度数据。确定经过阈值分割及去噪处理后的鸡只位置,使用矩形框对其进行选取,调整输出结果获取矩形框左上角和右下角的坐标和矩形框的长度与宽度,从对应位置的温度矩阵中提取该区域的最高温度。通过对红外图像中鸡只最大温度进行分析,从而确定鸡只状态的温度阈值。活鸡数量确认图像分割后鸡只数量计算与最大温度提取结果图像见图8。
(a) 原始图像
为验证死鸡识别机器人识别性能,课题组于2021年9月在河北省保定市定兴县玖兴肉鸡养殖场下的规模化层叠式笼养肉鸡舍进行现场试验。
试验器材有死鸡识别机器人、笔记本电脑、电磁导轨、量角器、卷尺。试验对象为35日龄笼养罗斯308白羽肉鸡。养殖场采用六列笼具四通道的布局方式,所用笼具均为二层层叠式结构,整个鸡场大小为113.2 m×12.54 m;通道宽度从左到右分别为1.47 m、1.80 m、1.80 m及1.47 m,笼具首端离墙距离为2.6 m,末端离墙2.30 m;每个笼具空间尺寸(长×宽×高)为102 cm×73 cm×40 cm。
据测量,红外热成像模块的视野范围大概为0.25 m2,根据肉鸡养殖密度15只/m2,选取3~4只鸡进行试验。按照活鸡死鸡数量为3∶0、3∶1、4∶0及4∶1分为四组,机器人同时对上下两层鸡笼进行处理,每组重复做20次试验。试验笼具为在原笼具基础上中间使用铁网进行阻隔重新划分为0.25 m2的新鸡笼,具体试验方法与步骤如下:(1)将死鸡识别机器人放到划分后的待试验笼具正中间位置,根据获取的红外图像,对红外摄像头高度、角度及距鸡笼距离进行调整。(2)按照步骤1确定的死鸡识别系统距鸡笼位置,布置电磁轨道,并在正对着试验鸡笼中间位置轨道上铺设黑色横条。以便死鸡识别系统检测到横条位置后进行后续操作。(3)将机器人放置于电磁轨道上,使轨道正对电磁信号接收装置的中间,启动系统,使系统进行运行状态开始进行图像采集及处理分析。(4)当前试验鸡笼处理完成后,沿着电磁轨道移动到下一个笼具前继续进行处理与分析。
按照试验方法,首先对摄像头高度及角度进行调节,摄像头角度确定为105.9°,底层摄像头高度为73 cm,上层摄像头高度为126 cm。死鸡识别机器人对鸡只进行识别的结果如表1所示。死鸡识别机器人对不同层鸡笼的识别率结果如表2所示。
表1 死鸡识别机器人识别性能试验统计Tab. 1 Recognition performance test statistics of dead chicken recognition robot
表2 死鸡识别机器人识别性能试验总体统计Tab. 2 Overall statistics of the overall recognition performance test of the dead chicken recognition robot
从表2可以看出,机器人在针对上层鸡笼内的笼养肉鸡识别率高于下层鸡笼,且针对存在3只肉鸡的识别率高于4只的识别率;上层2只活鸡1只死鸡的识别率最高,达到88.0%,下层的4只活鸡识别率最低,为70.0%。可知,当笼内肉鸡数量越多时,机器人识别率越低:造成识别率低的主要原因是鸡只容易互相遮挡,导致分割困难,会出现两只鸡被误认为一只的情况。综合来看,机器人在针对双层笼养肉鸡的平均识别率能达到80.0%,表明机器人的识别效果较好。
死鸡识别机器人系统死鸡识别效果展示见图9。如图9(a)所示,笼中共存在3只活鸡1只死鸡,系统成功将三只活鸡识别并提取了其最大温度,经过运算后得出此笼内有死鸡结果。如图9(b)所示,笼中存在2只活鸡1只死鸡,经过运算后系统成功得出笼内有死鸡结果。如图9(c)所示为机器人死鸡识别失败的典型情况,图9(c)中由于右下角鸡只温度较低,机器人未将其成功分割出来,导致识别失败,得出笼内存在2只死鸡1只活鸡的结果。如图9(d)所示,由于鸡只重叠严重,在图像分割时未将左侧两只鸡成功分割,得出笼中存在1只死鸡的错误识别结果,实际笼中不存在死鸡。
(a) 识别成功样例
近年来,畜禽养殖逐渐向规模化和集约化方向发展,大部分肉鸡养殖场已经通过传输带、饲料车及补水装置、温湿度传感器等方式实现了自动饲养、清粪和环境控制,大大增加了生产效率。但是在病死鸡巡检工作上,目前还是采用人工作业方式,不利于养殖业向智能化的方向发展。为了解决这些问题,设计了基于图像处理技术的死鸡识别机器人,通过算法设计及软硬件开发,实现了笼养环境下死鸡自动识别功能。
目前,已有大量研究证明采用图像处理技术来判断鸡只健康状态是一种有效的方法[10, 18-21]。瞿子淇[18]通过图像处理方法提取蛋鸡形状特征对活鸡死鸡进行分类,试验表明该死鸡检测方法具有较高的准确率。李亚硕等[21]运用数理统计分析健康鸡与病鸡的鸡冠颜色特征差异以此判断鸡只是否生病,在检测鸡冠颜色时同样用到图像处理等技术。以上研究以图像处理技术为依托、以蛋鸡和可视图像为研究对象,设计了不同的死鸡识别算法,得到了较好的识别效果。
本研究死鸡识别机器人在肉鸡养殖场初步应用显示,针对上层鸡笼死鸡识别率为83.0%,下层鸡笼的死鸡识别率为77.0%,整体识别率为80.0%。结果显示上层鸡笼内的死鸡识别率高于下层鸡笼:主要原因可能是下层摄像头高度及角度位置不佳,下层笼在底层,摄像头位置调得太高,一部分视野会被上层笼遮挡。后续可对机器人的整体结构进行优化,使上下两层摄像头都能保持最佳角度与高度拍摄。其次可能是因上下层鸡笼距地面高度不同,下层温度较上层温度低,在红外图像中鸡只与周围环境差异不如上层大,因而分割效果不如上层好,从而导致识别率略低于上层。与采用可视图像的死鸡识别机器人[10]相比,本研究采用红外摄像头,可在应用时不受鸡舍环境光照亮度以及不同笼层光照亮度差异的影响。但图像质量不如可视图像好,具备的细节较少、可提取的特征较少。后续研究中可针对这些存在的问题继续优化死鸡识别算法,可采用深度学习算法代替传统图像处理方法检测目标区域再提取温度,也可对图像处理基本方法展开研究,使其在红外图像上的应用效果更好,最终提高死鸡识别机器人的应用效率和推广价值。
为促进家禽养殖业向全自动化和智能化迈进,同时加快农业机器人走出试验室的进程,本文对规模化养鸡场内死鸡的自动识别问题展开了研究。
1) 首先利用Ostu算法将图像中的鸡只与背景进行分割,通过与操作去除面积较小的噪声,然后通过坐标搜寻获取各鸡只的最大温度,以此温度与阈值进行比较从而确定笼内活鸡数量。若得出的活鸡数目与笼内鸡只总数相同,则表明笼内不存在死鸡,相反则表明笼内存在死鸡。
2) 对视觉模块、信息处理模块、底盘控制模块和电源四大模块进行设计,并对移动底盘、红外热成像模块、嵌入式处理器等系统硬件选取及集成开发。
3) 对死鸡识别机器人进行了现场试验,对上层鸡笼死鸡识别率为83.0%,对下层鸡笼的死鸡识别率为77.0%,整体识别率为80.0%,识别率较高,可初步代替人工进行舍内死鸡巡检,为规模化养殖场死鸡自动识别工作提供了研究基础。