Feeding behavior recognition for group-housed pigs with the Faster R-CNN
—— 在Faster R-CNN中对群养猪的进食行为识别
Keywords:
Pig identification (猪只识别)
Feeding behavior recognition (进食行为识别)
Faster R-CNN
摘要(Abstract)
猪的进食行为是猪的健康状况的重要指标,因此实现自动化的行为识别是猪场精准养殖的关键问题。在视频监控技术普遍应用与动物行为监测的今天,要想精准识别每一只猪,视频监控序列是实现猪只行为识别的先决条件。这篇论文提出了使用Faster R-CNN在猪场中定位和识别每一只猪,同时每只猪的头部也会被定位出来。这篇论文还设计了用于猪的头部与猪的身体联系(匹配)的算法。在此基础上,基于feeding area occupation rate(进食区域占领比例)被用于监测猪的进食行为。实验表明,此算法在识别猪只进食行为上准确率(precision)达到99.6%,召回率(reall)达到86.93%。
摘要总结:
- 该论文提出了使用Faster R-CNN定位和识别猪,同时每只猪的头部也会被定位(识别)出来。
- 这篇论文设计了用于猪的头部与猪的身体进行匹配(联系)的算法。
- 这篇论文基于feeding area occupation rate(进食区域占领比例)进行猪的进食行为的监测。
- 指标:准确率(precision)达到99.6%,召回率(reall)达到86.93%。
引言(Introduction)

上图主要讲了猪只进食行为在猪的培育阶段的重要性,比如猪的进食量常常与食物的好坏、环境的变化、疾病早期的症状有关系。大多是饲养员对猪只的进食量仅凭经验粗略估计,因此带有很强的主观性且不够准确。为了提高精准养殖,需要新技术来获取猪只的进食量、监测猪的进食行为。
-
进食行为在视频图像中应该怎么定义呢?进食行为可以描述为 “咀嚼或者咬食物(chewing or bitting food)”或者“把头部放在食槽中(putting the head in the throgh)”。
-
在识别猪只进食行为之前需要先识别每个猪个体,而现在的 Radio Frequency Identification (RFID) 射频识别技术正好解决了猪只识别的技术难题。这种技术需要给猪戴上耳标,当猪的头部进入进食区域,RFID天线就会把猪给识别出来,采集的数据将会传送到系统当中。但是(RFID)射频识别技术也存在缺点:成本太高、猪的进食区域只能限制在特定地方。最主要的问题是当多个猪个体进入槽区,怎么同时识别多只猪个体。Low-frequency(LF), high-frequency(HF) and ultra-high frequency(UHF) RFID systems(LF——低频;HF——高频;UHF——超高频)都是用于检测猪只进食行为,都很高效,但是(RFID)射频识别技术必须需要让猪只戴上耳标,不能同时识别多只猪个体。
-
视频监控是一种可选择的监测猪只行为的一种方法,因为它成本低且容易实现。在从视频中提取猪的相关信息,前人也展开了一些研究(以下列举不同研究方法):
-
对于视频的每一帧,Otsu segmentation方法提出将图片二值化(binaries),从而将猪只与背景区分开来。
-
**混合高斯模型(The mixed Gaussian model)与最大熵分割方法(the maximum entropy segmentation method)**相结合来检测猪。
-
有人提出了一种多级阈值分割(A multi level threshold segmentation)方法,以准确获取猪的轮廓。
以上几种方法都是将猪从背景中区分开来,这种策略极易受光照的影响。
-
-
从相关的研究中,我们知道在猪的精准养殖中,利用视频监控自动识别猪只个体仍是一个棘手的问题。怎么从猪只个体中选择合适的特征,也是一个关键问题。
-
卷积神经网络(CNN)不需手工选择特征,能够自动提取特征,因此常用来做图像的目标识别。R-CNN用来进一步解决目标识别问题。Fast R-CNN 在CNN的最后一层中匹配候选区域(candidate regions)和特征图(feature map),极大地改善了目标识别的效果。
因此,该论文使用Faster R-CNN model检测猪只个体,也用来检测猪的头部。基于猪只进食行为的描述,视频监控包含了进食时间,着手进行猪只进食行为的识别。
实验材料和方法(Materials and methods)
基本实验情况
数据来源:广东萝岗区的猪场(每个棚有四只猪,配有两个饮水器和一个进食槽)
棚的大小:4m*5m
监控摄像机:安装高度5m,型号DS-2CD3345-I, Hikvision,25帧每秒
摄像头帧大小:宽2560 pixels,高1440 pixels
监控录像时间: July 8,2016 to August 6, 2016 for a total of 30 days.
猪的品种:Landrace,长白猪,四只猪体型尺寸相似,标有字母A、B、C、D区分
样本帧如下:
猪只进食识别流程:
- 从视频序列中获取图片
- 检测识别每一只猪
- 检测每一只猪的头部
- 进行进食行为识别
检测猪只及进食行为识别的算法(Algorithm for individual pig identification and feeding behavior recognition)
该论文基于Faster R-CNN训练能够同时检测猪只及其头部的检测器
以下将Faster R-CNN Pig Detector简称为 FRPD
数据集构造 (Data set construction)

FRPD的训练过程(Training procedure of the FRPD)

- FRPD的主要任务包括两个:一是在图片中定位猪的位置,二是识别出每只猪的ID。
- RPN用于猪的定位,Fast R-CNN object detection network用于识别猪的ID。
- 文章采用迁移学习和Image-net dataset中的预训练模型,来解决数据样本不充分的问题
- 文章采用ZF-net来提取特征,因为它层数比较少,只包含5个卷积层。The regional proposal network 和
The detection network都是接在ZF-net的后面。 - The regional proposal network和 The detection network共享(卷积)特征。
训练过程共分为4步:
-
在RPN网络训练的第一阶段,在ZF-net初始化过程,端对端的微调完成。Regional proposal在这一阶段生成。
-
在Fast R-CNN训练的第一阶段,以前一步的RPN输出作为输入,detector network(检测器网络)在这一阶段进行训练。
-
在RPN网络训练的第二阶段,Fast R-CNN detector network被用来初始化RPN。
-
在Fast R-CNN训练的第二阶段,non-public layers(非公共层)完成微调工作,在卷积特征层形成滑动窗口来训练RPN。

FRPD的测试过程(Testing procedure of the FRPD)
- 输入的图片首先完成卷积操作,产生特征图。
- RPN将这些特征图作为输入,并用边框(bounding boxes)标出所有可能是目标的区域。为了提高效率,只要得分最高的300个bounding boxes保留下来。每个保留下来的bounding boxes经过训练好的detection network确认过是匹配检测目标的。
用来匹配猪只身体和头部的算法(Algorithm for association of a pig head with its body)
主要依据:

算法流程:

群养猪进食行为识别(Feeding behavior recognition for group-housed pigs)
主要依据:

算法流程:

结果和讨论(Results and Discussion)
实验细节
深度学习框架:Caffe
显卡配置: NVIDIA Tesla K80
实验软件:Matlab
训练集:测试集 8:2
学习率:0.0001
猪只个体识别的评价
混淆矩阵

评价指标

猪只进食行为识别的评价
识别结果

评价指标

讨论(Discussion)
传统分割方法与FRPD方法的对比

此外,作者用网络上的图片构造了另外一个数据集

总结 (Conclusions)
在养猪过程中,弄清每头猪的日常食物摄入量至关重要。本文提出了相应的解决方案。利用视频监控的优势,设计了一种自动提取猪只个体进食行为的算法。首先,训练了一种基于Faster RCNN识别个体猪只的模型。其中猪只及其头部检测的准确率为0.9658,召回率为0.8704。然后,我们将检测到的头部与猪的身体按其位置相关联。猪只进食时会在饲料槽停留一段时间,根据此特性,我们提出在图片中设定一个进食区域(槽区)。对于每帧,如果进食区被猪的头占据,则认为发生了进食行为。猪进食行为识别的准确率为0.996,召回率为0.8693。本文为猪的精确培育提供了一种实用的方法。它只需要养猪场的视频监控,没有额外的要求,为猪的培育提供有用的信息。
致谢(Acknowledgements)
