基于IMU的细粒度奶牛行为判别

2022-05-26 02:53程国栋吴建寨邢丽玮朱孟帅张建华韩书庆
中国农业大学学报 2022年4期
关键词:正确率奶牛传感器

程国栋 吴建寨 邢丽玮 朱孟帅 张建华 韩书庆

(中国农业科学院农业信息研究所/农业农村部农业大数据重点实验室,北京 100081)

奶牛行为是奶牛对刺激或者周围环境做出反应的方式,其正常行为包括采食、反刍、运动、饮水等[1]。研究表明,奶牛行为可以反应出奶牛的健康状态,如奶牛的日产奶量和采食量成正相关,咀嚼行为和反刍行为影响瘤胃发酵参数[2-4]。目前,中、小型奶牛养殖场基本采用人工观察奶牛行为的方法,因此研究一种自动化、智能化的奶牛行为判别方法具有重要意义[5]。

近年来,机器视觉技术在行为识别领域广泛应用[6]。刘忠超等[7]使用摄像机对牛场进行监控,利用卷积神经网络(Convolutional neural network,CNN)检测奶牛爬跨、发情行为,准确率为98%。顾静秋等[8]使用基于图像熵和运动量的方法检测奶牛的爬跨行为和蹄病,准确率超过80%。Heo等[9]从视频中抽取行为特征,利用支持向量机检测奶牛的发情行为。张宏鸣等[10]利用YOLOv3模型实现对多肉牛目标进食行为的检测。郝玉胜等[11]在牛场设置通用WiFi设备,利用长短时记忆神经网络(Long short-term memory,LSTM)算法,识别奶牛爬跨行为。上述行为识别方法仅对牛的部分行为(发情、蹄病)进行识别,无法同时识别多类行为。在实际应用时,光照情况、牛棚环境和牛只位置等条件也会影响上述行为识别方法的准确率,不利于多头牛的行为的精准监测。

惯性测量单元(Inertial measurement unit,IMU)在应用时,不受环境影响可同时测量大量牛只,为奶牛行为判别打开了新的思路。王俊等[12]利用三轴加速度传感器和半监督模糊聚类方法对奶牛的进食、快走、慢走、平躺姿态、平躺动作、站立姿态、站立动作进行了识别。候云涛等[13]利用二叉决策树和支持向量机对奶牛静止(站立、躺卧)、慢走、快走、爬跨、慢跑、快跑行为进行了识别。Busch等[14]利用决策树和BP神经网络(Back propagation neural network,BPNN)算法对奶牛站立和躺卧两种状态进行了分类。SHEN等[15]利用K-近邻(K-nearest neighbor,KNN)算法对奶牛的反刍、进食和其他3种行为进行了识别。任晓惠等[16]利用萤火虫寻优算法和支持向量机对奶牛反刍、进食、饮水进行了分类。Peng等[17]在三轴加速度传感器的基础上,同时使用陀螺仪和磁力计,利用LSTM算法对奶牛顶撞、反刍、进食、躺卧、相互舔舐、舔盐行为进行了分类。Reza等[18]使用IMU收集奶牛运动数据,测试了多层感知器、逻辑回归、支持向量机(Support vector machine,SVM)、线性判别等算法,对奶牛进食、反刍、休息、其他4类行为进行了分类。

现存奶牛行为分类对于行为的划分粒度较粗,为了进一步提高奶牛行为识别的准确性,本研究拟对奶牛的进食、反刍和休息行为进行细分,采用IMU和CNN对细粒度奶牛行为进行判别,并对传感器类型、频率、时间窗进行测试,以期为奶牛智慧化养殖提供新的思路和技术支持。

1 仪器、材料与方法

1.1 试验仪器及材料

试验采用的IMU型号为LPMS-B2,由日本的LP-RESEARCH公司与广州阿路比电子科技有限公司共同研发。IMU集成了三轴加速度计、陀螺仪和磁力计等多种传感器,可同时进行数据采集和数据传输,其中加速度计可以检测运动载体三轴加速度数据,陀螺仪可以检测载体相对于导航坐标系的角速度数据,磁力计可以检测载体在3个方向的磁感应强度。

1.2 试验数据获取

试验人员将IMU固定到奶牛脖颈正下方,使IMU带“P”图案的一面朝向地面。固定颈带松紧适宜,既保持IMU位置不变,又不会使奶牛产生应激反应。IMU频率设定为25 Hz,启动传感器,人工同时开始标注奶牛卷食、咀嚼、站立反刍、躺卧反刍、躺卧休息、站立休息(奶牛在站立的状态下,原地不动或者低速慢走的行为)6种行为。数据采集时间为2019年12月25日9:00—12:00,13:00—16:00。

在人工标注奶牛行为时,需要记录奶牛行为的开始时间和结束时间。传感器记录的时间精确到秒,因此人工记录的时间也需要精确到秒。为方便试验员标注奶牛行为,本研究开发了一款辅助试验员进行奶牛行为标注的手机程序。试验员点击程序中奶牛行为按钮,程序可以自动记录奶牛行为、行为开始时间、行为结束时间、以及行为发生的先后顺序。

1.3 试验数据预处理

IMU数据来自于加速度计、陀螺仪和磁力计(表1)。首先按照时间先后顺序为IMU数据匹配人工标注的奶牛行为,匹配后将6类奶牛行为提取单独存放。

表1 固定在奶牛脖颈的IMU输出数据Table 1 Data from IMU fixed to the cow’s neck

试验时IMU频率(f)设定为25 Hz,表示IMU每1 s产生25行数据。f设定为5、10 Hz的IMU数据从f=25 Hz的IMU数据中抽取。具体抽取规则为:在f=25 Hz的IMU数据中,将每25行数据视为1个片段,从每个片段中抽取部分数据形成新的试验数据,f=5 Hz的IMU数据抽取第1、6、11、16、21行数据,f=10 Hz的IMU数据抽取1、3、6、8、11、13、16、18、21、23行数据。

根据Peng等[17]的研究,适当的时间窗可以提高行为识别精度。根据试验员观察,奶牛单次卷舌、咀嚼时间一般不超过5 s。为使试验更加贴合实际,本试验时间窗(T)划定为1、2和4 s,将时间窗内试验数据整合为一组。为增加试验数据,在T=2 s和T=4 s试验中,每行数据使用2次,以T=2 s试验数据为例,第1 s数据与第2 s数据整合为一组试验数据,第2 s数据与第3 s数据整合为一组试验数据,以此类推。整合处理之后,当T设置为1、2、4 s时,试验数据为22 461、22 461和11 229组。为了方便训练和测试分类模型,试验数据按照7∶3的比例分为训练集和测试集。

每列IMU数据范围差异较大,不利于数据计算和模型拟合。在训练模型前,统一使用L2范式正则化对数据进行处理。L2范式正则化原理:1个向量其每个维度元素都除以本向量的2-范数,得到新向量。

1.4 分类算法

KNN算法是一种简单有效的分类算法,它认为一个样本的类别由距离此样本最近的几个样本的类别决定[19]。SVM在人像识别、文本分类等问题中广泛应用[20],核心思想是在样本空间中寻找最大间隔超平面将样本分类[21]。BPNN是一种多层前馈神经网络,广泛应用于各种分类任务。神经元是其最基本结构,通过连接神经元构成网络结构。LSTM是一种时间循环神经网络,它能提取时间序列中间隔较长的特征,挖掘序列的深层信息[22]。

CNN是一种深度神经网络,其隐藏层个数和隐藏节点数远大于普通神经网络,特征学习能力强,可以提取数据中隐含的特征关系[23]。CNN由卷积层、池化层、全连接层、Dropout层等构成。卷积层是CNN中最重要的结构,其主要功能是通过卷积核提取输入数据的特征。卷积核是一种权值矩阵,大小通常为(3,3)或(5,5),它与输入数据做卷积,得到输出数据[23]。池化层一般出现在卷积层之后,对输入的特征进行二次提取,进一步提高CNN模型的泛化能力。全连接层一般出现在池化层之后,通常由1层或者多层组成,其结构与BPNN中的隐藏层一致。通过卷积层、池化层、全连接层,CNN模型可拟合大多数样本,但训练小样本模型时,易出现过拟合现象。为防止过拟合,一般在全连接层后插入Dropout层,主动遗忘部分隐藏节点,避免模型过于依赖部分特征,从而提高模型的鲁棒性。

本研究使用的CNN模型网络结构见图1。在训练模型时,不同频率、时间窗的数据具有不同的维度,因此在试验时需改变模型的输入层,其他结构不变。如T=2 s、f=25 Hz的数据的维度是(22 461,50,9),需将模型的InputLayer层的参数设置为(50,9);如T=4 s、f=25 Hz的数据的维度是(11 229,100,9),需将模型的InputLayer层的参数设置为(100,9)。

(3)最大位移出现在码头面层中心区域。最大位移为8.55mm,整个钢管桁架平均位移为2.75mm。根据相关规范可知,最大位移不应大于L/600,其中L为计算跨度,取60m。可见最大位移远小于100mm的位移距离要求。

图1 CNN模型网络结构Fig.1 Network structure of CNN model

1.5 模型评价指标

正确率(Accuracy,a),精准率(Precision,p)、召回率(Recall,r)和F1值是常用的分类评价指标[15]。计算公式如下:

(1)

(2)

(3)

(4)

式中:TP(True positive)表示被分类器正确分类的正样本;FP(False positive)表示被分类器错误分类的正样本;FN(False negative)表示被分类器错误分类的负样本;TN(True negative)表示被分类器正确分类的负样本。

对于多分类问题,每个细分类别均可得出精准率、召回率和F1值,不利于综合评价分类器。本研究引入了宏平均(Macro average)的概念,对精准率、召回率和F1值进行加和平均,得出宏平均值。最后使用正确率,宏平均后的精准率、召回率和F1值4个指标对试验进行分析。

1.6 试验流程

试验流程见图2。首先,试验人员在养殖场启动IMU,同时开始标注奶牛行为。获取IMU数据和人工标注数据后,根据时间先后顺序将两个数据集融合,对融合后的数据进行预处理,获得试验数据。将试验数据划分为训练数据和测试数据。由训练数据训练分类模型,测试数据测试分类模型。最后,综合选取最优分类模型,用于细粒度奶牛行为分类。

图2 细粒度奶牛行为试验流程Fig.2 Flow chart of fine-grained behavior classification of cows

2 结果与分析

KNN、SVM、BPNN、CNN和LSTM 5个分类模型在测试数据集上的评价指标见图3。CNN模型分类精度最好,4个评价指标均超过0.83;LSTM模型效果次之,其4个指标超过0.8。SVM、KNN、BPNN模型分类指标均低于0.75。由此可知,相较于传统的机器学习算法,深度学习算法更适合于细粒度奶牛行为判别。

图3 不同算法模型在测试数据集上的评价指标Fig.3 Evaluating indicators of models of different algorithm on test data set

三轴加速度计的分类效果优于陀螺仪和磁力计,4类指标均大于0.8(图4)。这说明相较于陀螺仪和磁力计,着重于测量物体空间运动属性的三轴加速度计更加适合于奶牛行为的判别。单独传感器数据训练模型的正确率明显低于全部数据训练模型的正确率,这说明3个传感器配合使用可以弥补各自的短板,明显提高奶牛行为分类的精度。

图4 不同传感器模型在测试数据集上的评价指标Fig.4 Evaluating indicators of models of different sensors on test data set

IMU频率越高,传感器在单位时间内采集的数据量越多,耗电量也越大。耗电量过大会缩短IMU工作时长,影响实际应用。f=25 Hz的IMU分类模型分类效果最好,优于f=5 Hz和f=10 Hz的IMU分类模型(图5)。由此可见,奶牛行为识别模型的性能与IMU采集数据量的大小相关,频率越高,采集数据量越大,识别效果越好。但是不同f的IMU分类模型的性能差距并不明显,其中f=25 Hz 的IMU分类模型的正确率比f=10 Hz的IMU分类模型大0.02,比f=5 Hz的IMU分类模型大0.04。因此在使用IMU时,在f选择上应统筹考虑工作时长和分类性能。

图5 不同IMU频率(f)的模型在测试数据集上的评价指标Fig.5 Evaluating indicators of models of IMU with different frequency (f) on test data set

当时间窗为4 s时,模型的分类效果最好,正确率达到0.85(图6)。当T=2 s时的模型的分类效果差于T=4 s时的分类模型,正确率为0.84,当T=1 s时的模型的分类效果最差,正确率为0.8。由此可知,细粒度奶牛行为识别的最佳时间窗为4 s。

图6 不同时间窗(T)模型在测试数据集上的评价指标Fig.6 Evaluating indicators of models of different time window (T) on test data set

采用上述试验和分析得到的最佳参数(使用全部传感器、f=25 Hz、T=4 s、CNN算法),构建奶牛行为分类模型,利用模型在测试数据集上得到的召回率绘制混淆矩阵(图7)。反刍(躺卧)和休息(躺卧)的分类效果最好,召回率达0.9以上。卷食(采食)和反刍(站立)2个行为的召回率均为0.88,休息(站立)和咀嚼(采食)的分类效果比较差,召回率分别为0.76和0.69。观察错误分类情况,可发现咀嚼行为、卷食行为相互错分较多,休息(站立)、咀嚼行为相互错分较多,反刍(站立)、休息(站立)行为相互错分较多。由此可知,咀嚼行为数据与休息(站立)、卷食行为数据较为接近,休息(站立)行为数据和咀嚼、反刍(站立)行为数据比较接近,这导致其分类精度较低。将6类行为归纳为站立和躺卧2种状态,错分数据少,其错分召回率小于0.02,分类正确率为0.99,说明模型可正确分类奶牛2种状态。

A,卷食(采食);B,咀嚼(采食);C,反刍(站立);D,休息(站立);E,反刍(躺卧);F,休息(躺卧)。A, rolling (feeding); B, chewing (feeding); C, ruminating (standing); D, resting (standing); E, ruminating (lying); F, resting (lying).图7 使用全部传感器,频率为25 Hz、时间窗为4 s、 CNN的奶牛行为分类模型混淆矩阵Fig.7 Confusion matrix of model of behavior classification of cow using all sensors, f=25 Hz, T=4 s, CNN

3 结 论

本研究提出了一种基于CNN和IMU的细粒度奶牛行为识别算法,实现了奶牛站立、躺卧2种状态和卷食(采食)、咀嚼(采食)、反刍(站立)、反刍(躺卧)、休息(站立)、休息(躺卧)6类行为的识别,主要结论如下:CNN算法和IMU配合使用,可实现奶牛行为的细粒度分类,其二分类正确率为99%,六分类正确率为85%;与传统机器学习算法相比,深度学习算法更适用于奶牛行为分类;CNN模型分类效果最好,可以有效的对卷食(采食)、反刍(站立)、反刍(躺卧)、休息(躺卧)行为进行分类;频率设定为25 Hz的IMU和4 s时间窗更加适用于细粒度奶牛行为分类;当同时使用加速度计、陀螺仪和磁力计3类传感器时,奶牛行为分类模型效果更好。

虽然细粒度奶牛行为判别试验取得了一定的成果,但是仍存在提升空间,未来可进一步优化CNN网络结构,通过增加网络层数提高深度,进一步提高模型的正确率。

猜你喜欢
正确率奶牛传感器
制作二氧化碳传感器
个性化护理干预对提高住院患者留取痰标本正确率的影响
课程设置对大学生近视认知的影响
小奶牛便签夹
舰船测风传感器安装位置数值仿真
跟踪导练(三)2
奶牛吃草
生意
生意
用传感器重现伽利略对自由落体运动的研究