张 谦,陈 斯,杨增汪,赵雪成
(1.江苏师范大学物理与电子工程学院,江苏 徐州,221116 ; 2.徐州市永康电子科技有限公司,江苏 徐州,221004)
蛋鸡养殖是我国养殖业的重要组成部分,为促进蛋鸡养殖业发展、提高畜禽生产性能和经济效益,必需提高蛋鸡养殖技术,确保蛋鸡健康养殖。因此,在养殖过程中对蛋鸡传染病的预防和及时发现起着至关重要的作用[1-3]。
大多数蛋鸡发生传染病时会在外观有相应的临床表征。倪金华等[4]研究发现,鸡冠颜色与部分鸡病存在对应关系,例如,患急性传染病(鸡新城疫和禽流感等)鸡只在临床上多表现为鸡冠颜色呈深紫色;患寄生虫病和白冠病等鸡只在临床上多表现为鸡冠苍白。张德福等[5]研究发现,鸡脸上的某些临床表征可对应相关鸡病,例如,眼睑肿胀在临床上常见于传染性喉气管炎等传染病;眶下窦肿胀、有液性分泌物或干咯样分泌物在临床上常见于传染性支气管炎、慢性呼吸道炎等传染病。此外,这2个研究[4-5]中皆提到在上述疾病中多伴随鸡只体温的变化。
目前,国内外蛋鸡大多采用集约化养殖,养殖密度大,难以通过人工目视发现蛋鸡的异常状况,一旦发生传染病,会快速蔓延。为解决笼养蛋鸡健康状况的监测问题﹐国内外众多学者已开展了诸多方面的研究。李腾飞[6]研制了基于机器视觉的笼养蛋鸡健康行为监测机器人,可以通过对鸡腿部的提取和分析,判断是否有病死鸡,其检测成功率可达到87.5%。王凯等[7]研究了一种轻量型蛋鸡行为检测算法 TD-YOLOV3,用以对蛋鸡的坐卧、站立和进食等行为进行监测,从而判断蛋鸡的健康状况。杨威[8]开展了蛋鸡体温监测方法研究,开发了一种蛋鸡穿戴式无线空间分析温度感知设备。但是以上研究的健康监测装置或者系统对于健康判断的因素较为单一,易出现误判和漏判。而且寻轨式机器人通常对养殖场地面的平整度要求很高,但是中小型养殖场地面状况较为复杂,不利于其自动运行。
为解决以上问题,本试验设计通过红外测温方法测量鸡的体温,并采取YOLACT[9]实例分割算法提取鸡冠和鸡脸,同时对蛋鸡的体温、鸡冠颜色和鸡脸状态进行分析,识别出异常状态的蛋鸡,再通过人工进行具体的病症分析。本装置模仿自动上料机笼上定轨运行,对蛋鸡不会造成惊吓且不受养殖地面问题的影响。
1.1 硬件设计 健康监测装置硬件系统见图1,主要由控制部分、动力部分、数据采集部分和电源部分组成。该装置下位机控制部分以STM32F407为核心,通过ESP8266 WIFI模块与上位机进行数据传输和命令下发。动力部分分为装置驱动动力和机械臂数据采集部分动力。驱动动力为42步进电机,电机驱动为Drv8266;机械臂数据采集部分的方向控制为5线4相步进电机,驱动为UH2003。数据采集部分包括WIFI高清摄像头和红外测温模块,其中,WIFI摄像头通过实时流传输协议(Real time streaming protocol,RTSP)[10]输送图像至上位机。数据采集部分安装于机械臂末端,由步进电机控制上中下运动进行不同位置的采集。装置整体以12 V电池组供电。
图1 健康监测装置整体硬件设计
装置设计示意图见图2。硬件结构包括:电池组、延长机械臂固定装置、机械臂、高清摄像头、蓝牙模块、主控板和红外测温模块。
图2 健康监测装置示意图
1.2 驱动系统设计 笼养蛋鸡健康监测装置运行示意图见图3。在本装置中,每运行1个养殖格进行1次数据采集,根据公式(1)计算每次数据采集步进电机运行的圈数。
(1)
图3 笼养蛋鸡健康监测装置运行示意图
式中:n表示每次采集步进电机运转圈数,s表示每个养殖格的长度,r表示装置轮子的半径。
若养殖场共p个养殖笼,每个养殖笼有q个养殖格,根据公式(2)计算步进电机总运行圈数(N)。
N=pqn
(2)
1.3 图像处理系统设计
1.3.1 数据预处理 首先,对拍摄的照片进行处理,截取清晰的包含有1~3个鸡冠和鸡脸的部分。使用Pillow库中的Image模块对裁剪后的图片进行预处理,使其达到统一的适合尺寸。然后对处理完成的照片使用Labelme标记工具[11]进行人工标记,作为蛋鸡健康监测装置的训练集。标记内容为鸡冠(Comb)、鸡脸(Head)和异常鸡脸(Uncommon head),在标记过程中,鸡冠部分整体标记,而鸡脸则包括鸡喙、鸡眼和鸡耳。
本试验样本采集选择某蛋鸡养殖场,蛋鸡品种为海兰褐鸡,27周龄左右,处于产蛋高峰期。该养殖场共养殖10 000只蛋鸡,且统一饲养标准,可以避免因饲料、饮水等因素对试验结果造成影响。本试验共采集1 000张图片,其中800张图片为养殖场现场采集。参照参考文献[4-5]描述的鸡脸异常症状,即眼睑肿胀、眶下窦肿胀、有液性分泌物或干咯样分泌物,该养殖场采集样本中并未出现相关症状,故该800张鸡脸标记为正常(鸡冠部分不采用直接对比,因此正常与异常不做区分);200张图片为非现场采集,由网络搜集蛋鸡异常鸡脸图片,此类鸡脸出现至少1种上述异常症状。采集的1 000张照片中,70%作为训练集,30%作为测试集。为避免由于样本数量偏少引起网络过拟合,导致整体精确率下降,使用了图像的镜像、图像的旋转对数据集进行扩容,共得到3 000张数据集。对于本试验而言,仅采集鸡冠和鸡脸2个特征,该数据集大小可以满足要求。
1.3.2 特征提取模型 对于养殖场病鸡的判断传统方法往往使用YOLO(You only look once)目标检测模型[12],对整个鸡只的行为或者鸡腿等部位进行提取和分析。本试验起初拟采用YOLOV5作为鸡冠和鸡脸的提取模型。YOLOV5采用矩形框的方式对目标进行标记,经过预试验发现,其对于鸡脸的检测精确率较高,但是鸡冠面积较小,而且边角较多,矩形提取框无法完整且精准地框选鸡冠,识别精确率大大降低。经过综合考虑,本试验的图像分割选取经典YOLACT(You only look at coefficients)模型[13]。该模型框架见图4[13],主要包含2个分支:原型掩码分支(Protonet)和预测分支(Prediction head)。YOLACT为每张图片生成k个原型掩码和k个掩码系数,每个掩码系数和原型掩码一一对应,通过将掩码系数和原型掩码进行线性组合,然后以Sigmoid非线性函数生成最终的Masks。
图4 YOLACT模型框架[13]
在本试验选取的实例分割模型中,模型输入的图像的尺寸为550×550像素,其骨干网络(Backbone)为残差网络(Residual network,ResNet)[14],该网络由54个残差块和3个跨层连接组成。其中,每个残差块都包含了2个卷积层和1个跳跃连接。ResNet的卷积由conv1、conv2_x~conv5_x组成,对应图4的C1~C5。P3~P7为特征图金字塔网络(Feature pyramid networks,FPN)[15],由C5经过1个卷积层得到P5,再对P5进行双线性插值,使特征图扩大1倍,与C4相加得到P4,同理,得到P3。然后对P5进行卷积和下采样得到P6,对P6进行相同操作得到P7,从而建立FPN网络。其中P3被送入原型掩码分支,同时,P3~P7 被送到预测分支中。
预测分支得到的掩模系数(Mask coefficient)和原型掩码分支得到的原型掩码(Prototype mask)做矩阵乘法,得到合成结果(Assembly)。
1.3.3 模型训练 模型训练硬件配置采用Windows10操作系统,CoreTMi9-10900KF CPU @ 3.70GHz 3.70GHz,显卡型号为RTX3060Ti,Pytorch1.7.1深度学习框架。
本试验的模型训练迭代次数为50 000次,学习率初始值为0.001,共进行3次拟合,分别在25 000、37 500和45 000次时学习率变为上一次的0.1倍。
本试验采用平均精确率均值(Mean average precision,MAP)作为评判指标。训练效果见图5。使用YOLACT实例分割对鸡冠和鸡脸的识别精确率分别达到96.67%和91.21%。对于后续的鸡冠颜色分析和鸡脸形态判断,该精确率可满足需求。
图5 YOLACT训练效果
1.4 健康判断模型设计
1.4.1 体温分析模型设计 本试验采用红外测温方法检测蛋鸡体温。红外测温模块为基本款,在采集过程中,只能显示每个区域的最高温和最低温,无法显示每只蛋鸡的体温,因此将每个养殖格3只鸡作为一组,采集每组的最高温。为获取蛋鸡正常体温范围,随机选择100只蛋鸡采用肛温法人工采集体温,由于该方法需将体温计留足1 min才可以获取较为准确的体温,为满足一致性原则,避免时间过长影响试验对象体温的准确性,由5名工作人员同时对试验对象进行体温采集。采集的结果为最低温为40.1 ℃,最高温为41.3 ℃。因此,将正常体温范围确定为40.0~41.5 ℃。
1.4.2 鸡冠颜色特征分析模型设计 对于YOLACT识别出的鸡冠而言,每个像素点的色度值不同,因此可以统计出其中的正常色度面积和异常色度面积,给定异常色度面积的阈值,从而得到鸡冠颜色的健康状况。
本试验为得到比较直观的颜色判断,采用将三原色(Red,Green,Blue,RGB)转化为六角锥体模型(Hue,Saturation,Value,HSV)的方式[16],依据正常的鸡冠颜色设定色相(H)值。本试验人工选择了50只蛋鸡正常鸡冠,通过RGB转化为HSV方式,得到鸡冠的正常H值范围为0~345。根据公式(3)计算RGB转H值。
(3)
式中:R′=R/255,G′=G/255,B′=B/255,Δ=Cmax-Cmin,其中,Cmax=max(R′,G′,B′),Cmin=min(R′,G′,B′),R、G、B分别为RGB三通道的颜色值。
该颜色分析模型需要先将识别到的鸡冠提取出来,再对提取出的鸡冠进行颜色分析,通过对50只蛋鸡鸡冠正常H值覆盖面积占鸡冠总面积进行计算,得到正常H值占比为40%,即正常颜色面积占总面积的40%以上评定为正常。
1.4.3 鸡脸分析模型设计 蛋鸡生病时在鸡脸上主要会出现眼睑部位发肿、长痘流脓和病异性结痂等症状,此种性状不像鸡冠颜色或者体温具有固定的判断范围,因此采用直接通过大量数据集学习正常与异常鸡脸,从而直接辨别出鸡脸的状态。
1.5 上位机设计 上位机采用图形用户界面应用程序开发框架进行设计[17],用户可以选择定时启动或者立即启动,立即启动优先级高于定时启动。上位机与下位机通信采用传输控制协议(Transmission control protocol,TCP)[18]。当下位机接收到上位机的运行指令后,即按照2个步进电机的设定值进行运行。在数据采集方面,上位机通过RTSP读取WIFI摄像头数据流[19],展现在视频预览框中。当下位机对上位机发送相应指令后,上位机截取该时刻的视频截图,送至健康判断模型进行分析。体温数据则直接通过WIFI传至上位机中。
以三层梯形养殖笼为例,首先在上位机中设置养殖笼的单个养殖格的长度s,以及整列养殖笼含有的养殖格的个数。通过按钮立即启动或者设置启动时间进行启动,上位机通过WIFI对下位机进行相关指令下发。装置起始位置位于整列养殖笼一端。设备启动后,首先进行第1次的拍摄和测温,并通过健康判断模型对拍摄的照片和测量的体温进行分析,得到健康分值;然后步进电机1正向旋转n°,到达第1个养殖格第2层检测点,进行检测并分析健康状况。以此类推,当检测完三层第1个养殖格后,步进电机2正向运行m步,到达第2个养殖格,同时步进电机1反向运行2n步,返回第1层。按照共有i个养殖格来分析,当运行到最后1个养殖格后,进行上、中、下三层的检测和健康分析,完成之后,步进电机2反向运行m×i步,返回起始点,同时,上位机生成健康监测报告表。
3.1 试验对象的选取 随机选择连续的上、中、下三层共5列15个养殖格,每个养殖格3只蛋鸡为一组,共15组45只蛋鸡,该批试验对象均处于正常产蛋高峰期。试验前由人工目检判断鸡冠颜色和鸡脸状态是否正常,并采用肛温法对全部试验对象测温。经过人工目检和体温测量,45只蛋鸡中,无鸡脸异常情况,17只鸡冠异常,1只体温异常,该只体温异常蛋鸡经与养殖场主确认得知感染流感病毒。将这45只鸡由人工重新平均分回到15组中,其中1~3组每组3只蛋鸡鸡冠异常;4~6组每组2只蛋鸡鸡冠异常,其余正常;5组中2只鸡冠异常蛋鸡中,有1只体温异常;7~9组每组1只蛋鸡鸡冠异常,其余正常;以上9组为异常组,其余6组为健康组。
3.2 笼养蛋鸡健康监测装置试验 根据1.4.1、1.4.2和1.4.3的设计,将蛋鸡体温正常范围设置为40.0~41.5 ℃,鸡冠颜色阈值设置为40%,鸡脸则根据数据集学习结果,直接判定正常与异常。试验时间为傍晚上料机运行后同步运行,试验时蛋鸡未被运行装置惊吓,正常吃食,可见该装置对鸡只影响较小。而且鸡头多伸出笼外吃食,拍摄角度较好,更利于上位机的分析。部分上位机接收拍摄图片和测温结果分析见图6。
图6 上位机分析部分结果
3.3 结果 对45只鸡的健康判断结果见表1,根据3.1试验对象选取,将人工判断的结果作为对照标准,共18只异常蛋鸡,27只正常蛋鸡。由表1可以看出,共45只鸡,装置识别到40只,识别率达88.89%。对于整体样本45只鸡,异常共18只,装置准确分析出17只,准确率达94.45%,其中,唯一1只体温异常的蛋鸡测出了其异常体温,鸡冠状态识别准确率达97.50%,鸡脸状态识别准确率达95.00%。健康鸡共27只,误判3只。其中,13组中鸡冠误判1次,经过对照片的分析,是因为光照因素使得鸡冠反光,导致照片呈现出泛白的情形,从而导致误判。在傍晚,阳光因素可以忽略,则判断是因为灯光原因导致,该养殖场灯光的间隙为5个养殖格,而最上层养殖格较容易受到灯光影响,可以考虑以每5个养殖格为1个单位,最后1次采集数据时可以进行多次采集,从而减少误判。3组和5组中,鸡脸共误判2次,经过人工核验,是由于鸡在吃食过程中,导致鸡脸沾染上了潮湿饲料,被系统标记为异常。装置运行共耗时1.75 min,平均每个养殖格耗时7 s,整体运行速度达到预期。
表1 试验结果
如果养殖户可以在早期通过目检发现鸡冠的异常,可以避免绝大多数鸡病的传播。但是由于养殖密度大,目检容易造成遗漏,而且会增加养殖户的时间成本。随着机器视觉的发展,越来越多的研究人员将机器视觉应用到蛋鸡疾病的监测当中。李亚硕等[20]提出可利用L*a*b*空间a*分量的鸡冠区域提取算法对鸡冠颜色进行判断,并得到了较好的监测效果。但是由于鸡冠的颜色与饮水头颜色相似,容易造成误提取,导致判断结果不准确。与之相比,本试验采用基于深度学习的YOLACT实例分割算法,与其他采用YOLO目标检测和采用颜色分割的算法相比,不仅提高了识别的速度,而且大大提高了识别的精确率。与养殖场固定点位监测和循迹机器人等设计不同,本设计创新性的采用了模仿上料机的形式,使用笼上定轨运行,这不仅可以减少养殖场地面环境的影响,而且可以减少对蛋鸡的惊吓。
鸡冠作为蛋鸡重要组成部分,蛋鸡体内激素与脂肪率的变化皆可以通过鸡冠展现出来。赵振华等[21]研究发现,冠高和冠重与激素的相关系数最高,达到0.894,冠高和冠长与鸡冠重(Weight of cockscomb,WC)和腹脂率(Abdominal fat percentage,AFP)呈极显著相关(P<0.01)。而很多鸡病的发生将导致鸡体内激素水平发生较大的变化,从而导致鸡冠的颜色发生变化。同时,封伟贤[22]研究发现,脂肪肝综合征(Fatty liver syndrome,FLS)导致产蛋量迅速下降,鸡冠和肉髯苍白。因此本试验着重于对鸡冠进行识别和判断,可以快速筛选出异常蛋鸡;再通过鸡脸和体温的监测,更为精确的判断异常原因。