基于MSRCP与改进YOLO v4的躺卧奶牛个体识别方法

2023-03-07 07:20司永胜肖坚星王克俭
农业机械学报 2023年1期
关键词:图像增强花纹特征提取

司永胜 肖坚星 刘 刚 王克俭

(1.河北农业大学信息科学与技术学院, 保定 071001; 2.河北省农业大数据重点实验室, 保定 071001;3.中国农业大学农业农村部农业信息获取技术重点实验室, 北京 100083)

0 引言

奶牛的躺卧率能反映出奶牛的舒适度和健康情况[1]。躺卧奶牛的个体识别是自动监测奶牛躺卧率的基础。有学者利用机器视觉技术识别奶牛的躺卧行为[2-3]。但对躺卧状态下的奶牛个体识别未见报道。躺卧奶牛的个体识别研究对于提高奶牛福利与养殖效率具有重要意义[4-5]。

传统的奶牛个体识别靠人工识别安装在牛耳部的耳标,人工成本较高,效率较低[6]。基于RFID(Radio frequency identification)技术识别奶牛个体得到了广泛的应用,但是该方式需佩戴电子识别装置,易丢失,且易引起奶牛的应激反应[7]。基于机器视觉的个体识别具有无应激、无接触、成本低、效率高等优点[4-5]。KUSAKUNNIRAN等[8]基于奶牛的鼻部图像提取特征识别奶牛个体,识别准确率为100%。CAI等[9]基于奶牛的面部图像识别奶牛个体,识别准确率为95.3%。基于牛脸、牛鼻图像的个体识别具有较高的准确率,但奶牛头部经常晃动,图像不易采集[10]。荷斯坦奶牛是国内最常见的奶牛品种,其身体具有独特的黑白花纹信息。国内外学者利用荷斯坦奶牛的花纹信息,尝试对奶牛进行个体识别。ZHAO等[11]利用奶牛的侧视图,采用了4种特征提取算法(FAST、SIFT、SURT、ORB),结合两种特征匹配算法(BruteForce、FLANN)对奶牛进行个体识别,识别精度为96.72%。此方法基于灰度特征,易受光照影响。

随着深度学习的快速发展,YOLO[12-14]、SSD[15]、CenterNet[16-17]、Faster R-CNN[18]等算法在目标检测领域取得了良好的表现。HU等[10]采集奶牛的侧视图,使用YOLO算法检测到奶牛的准确位置,利用卷积深度网络分别对奶牛的头部、躯干、腿部提取深度特征,然后将3个部位提取的特征进行融合,最后采用SVM算法识别奶牛个体,识别准确率为98.36%。侧视图包含丰富的信息,但容易出现奶牛间的遮挡情况,难以采集到理想的侧视图像。何东健等[19]在挤奶间的通道采集奶牛的背部图像,基于改进YOLO v3模型识别奶牛个体,对89头奶牛进行了实验,识别准确率为95.91%。上述研究都是奶牛处于挤奶厅等限制性场所进行的,奶牛的花纹变化较小。当奶牛处于牛舍等非限制性环境中时,摄像机与奶牛之间的拍摄距离和拍摄角度会发生变化,奶牛躺卧时头部与腿部位置不固定,这些变化会导致花纹在图像中出现变形,造成识别困难。XIAO等[20]利用Mask R-CNN模型分割出奶牛的背部图像,然后基于支持向量机对背部图像进行分类,识别准确率为98.67%。但此方法只对站立的奶牛进行识别,没有涉及躺卧姿态的奶牛。

躺卧奶牛个体识别存在以下困难:在牛舍内的非限制环境中,奶牛身体花纹变化较大,奶牛躺卧率的计算,需要全天监测奶牛的躺卧状况,而牛舍夜间光照质量较差,采集的图像质量低。

YOLO是性能优异的深度学习识别算法,本文对YOLO v4模型[21]进行改进,并将改进后的模型效果与YOLO v5进行对比分析。首先采用带有颜色保护的多尺度视网膜算法(Multi-scale retinex with chromaticity preservation, MSRCP)对低光照下的低质量图像进行图像增强,然后基于YOLO v4模型在主干特征提取网络中融合RFB-s结构,扩大模型特征提取的感受野,增强对奶牛身体斑纹变化的鲁棒性,此外,对模型的NMS算法进行改进,以提高躺卧奶牛个体识别准确率。

1 图像采集与预处理

1.1 图像采集

于2021年11月2—30日在河北省保定市宏达牧场采集了奶牛躺卧区图像数据,全天进行视频采集。牛舍白天光照充足,夜间有灯光照明,但光线较弱。实验牛舍长25 m,宽15 m,牛舍内有24头处于产奶期的荷斯坦奶牛,实验过程中通过交换3个不同牛舍中奶牛扩充实验数据集,共采集了72头奶牛数据。如图1a所示,牛舍内有两个休息区,本文在第1个休息区共安装了6个广角摄像机(DH-IPC-HFW4838M-I2型,大华),安装高度为7.5 m,每组摄像机之间相距6.25 m,摄像机俯视角约为80°(水平向下倾斜角度),每两个摄像机为一组,每组摄像机分别采集休息区两侧奶牛的俯视图,摄像机焦距3.6 mm,视频帧率25 f/s,分辨率为2 560像素×1 440像素。图像现场采集环境如图1b所示。

图1 实验设置Fig.1 Experimental setup

每个摄像机有一个独立网际协议地址,通过网线将数据传输到交换机中。交换机经过网线将数据传输到容量为10TB的网络硬盘录像机(DH-HCVR5104HS-V5型)中。最后将数据从录像机中导入到计算机中进行处理。随机选取各个时间段每个摄像机采集的含有奶牛的视频数据,每10 s取一帧,每个摄像机选取1 500幅含有奶牛的图像,6个摄像机共选取9 000幅图像作为YOLO v4模型的数据集,按照比例7∶2∶1划分为训练集、验证集、测试集。本文使用LabelImg图像标注工具对数据集图像进行标注,由于躺卧的奶牛通常有向左或向右躺卧两种躺卧姿态,所以本文对每个躺卧奶牛个体标记为两种标签。

实验运行平台采用Intel(R) Core(TM) i5-9400F CPU,主频为2.10 GHz,运行内存为64 GB(RAM),显卡为NVIDIA GeForce GTX1660,开发环境为Python 3,Windows 10系统。

1.2 图像预处理

1.2.1图像校正

由于本文采用的镜头为广角镜头(焦距为3.6 mm),所采集的图像存在径向畸变,如图2a所示。为了消除畸变,采用张正友标定法对畸变图像进行校正[22],采用尺寸为120 cm×90 cm的标定板,黑白格尺寸为10 cm×10 cm。将标定板放在图像视野中不同位置、不同角度下进行图像采集,根据检测到标定板中的特征点,求解无畸变情况下摄像机的内参与外参,使用最大似然估计对参数进行优化,并采用最小二乘法求出实际的径向畸变系数。最后根据得到的所有参数对畸变图像进行校正,并将有效区域进行裁剪。校正结果如图2b所示,由校正前后栏杆和路沿的形状可见,图像的畸变明显消除。

图2 畸变图像校正结果 Fig.2 Result of distortion correction

1.2.2图像增强

牛舍内夜间光线较暗,图像质量较差,奶牛个体不易识别,如图3a所示。本文对18:00— 07:00间光线较暗的图像进行图像增强。为了提高低光照图像的质量,首先获取图像的亮度,亮度计算公式为

图3 MSRCP图像增强结果Fig.3 MSRCP image enhancement result

Y=0.299IR+0.587IG+0.114IB

(1)

式中IR、IG、IB——原始图像的R、G、B通道分量

Y——亮度

当图像亮度均值小于80时,图像亮度相对较暗,本文对亮度小于80的图像进行图像增强。

本文采用MSRCP算法[23]提升低光照下的图像质量。MSRCP算法是带有色彩保护的多尺度 Retinex 算法,可以更好地恢复场景的真实颜色。

MSRCP算法是将强度通道图像作为原始图像,利用强度图像和原始RGB图像的比例映射到每个通道,在增强图像的同时保留原始图像颜色分布。强度图像的获取公式为

Int=(IR+IG+IB)/3

(2)

式中Int——强度图像

为了使增强后的图像色彩与原始图像保持一致,求得放大因子A,计算公式为

(3)

其中

B=max(IRi+IGi+IBi)

(4)

式中B——色度

i——像素索引

分别对R、G、B3个通道利用放大因子A进行色彩调整,得到增强后的图像。计算公式为

R(x,y)=AI(R,G,B)(x,y)

(5)

式中R(x,y)——增强后图像

I(R,G,B)(x,y)——图像在坐标(x,y)处的RGB特征图

经过MSRCP算法对图像增强后的效果如图3b所示,可以看出不仅整个图像的亮度与对比度得到了有效提高,色彩恢复效果也比较明显。

2 躺卧奶牛个体识别

2.1 YOLO v4模型

相比于YOLO v3[24],YOLO v4[21]引入了Mosaic数据增强,另外在主干网络、网络训练、激活函数、损失函数等方面均进行了优化,进一步提高该算法的图像检测速度与精度。

可以利用绝缘的电阻表对电缆的故障点进行精准定位。但是需要注意的是,在进行测量故障点之前,一定要做好防护安全,在故障点发生地1m远的地方切断发生故障的相电缆,通过绝缘电阻表来对电缆进行电阻测量和终端检测,最终得出精确的测量故障点。

2.2 改进YOLO v4模型

2.2.1融合RFB-s结构的YOLO v4模型

在牛舍内的非限制环境中,采集奶牛俯视图像。受图像采集角度与距离的变化,以及奶牛躺卧时腿部以及头部晃动的影响,奶牛身体上花纹在图像中会出现一定程度的变形。另外奶牛在个别位置存在栏杆遮挡身体花纹的情况。以上问题对识别躺卧奶牛造成了一定的困难。为提高YOLO v4模型对奶牛身体花纹变化、物体遮挡识别的鲁棒性,本文在YOLO v4模型的主干网络中融合RFB-s[25]网络结构,增加多个尺度的特征信息,扩大有效特征层的感受野,丰富特征信息,增强特征提取的鲁棒性,提高奶牛个体识别的准确率。

RFB网络[25]通过模仿人类视觉感受野与偏心度加强网络的特征提取能力,借鉴Inception网络[26]的多分支结构,加入了不同尺度的常规卷积与不同膨胀率的空洞卷积,在分支中卷积核越大其空洞卷积的膨胀率越大。RFB网络结构如图4a所示,3个通道上的常规卷积核大小分别为1×1、3×3、5×5,对应的膨胀率分别为1、3、5,然后将3个分支的不同尺度的有效特征层进行拼接。最后采用1×1卷积层与输入的有效特征层进行残差连接,达到了融合不同大小感受野特征的目的。如图4b所示,RFB-s网络结构是RFB的改进版,相比于RFB网络主要有两点改进:用3×3卷积层代替5×5卷积层;用1×3卷积层和3×1卷积层代替3×3卷积层。RFB-s网络结构相对于RFB网络有更多的分支以及更少的卷积核,为了增加YOLO v4模型的感受野,本文选用参数更少的RFB-s网络结构融合到YOLO v4模型的主干网络中。

图4 RFB与RFB-s网络结构 Fig.4 RFB and RFB-s network structure

YOLO v4模型在中下层、中间层、高层3个有效特征层(图5中head1~head3)上分别进行目标预测。由于浅层网络感受野较小,且在浅层有效特征层能够有效地表征奶牛身体上花纹的细节信息,所以本文在8倍下采样(中间层)与16倍下采样(中下层)的输出特征图后增加RFB-s结构,可以在增加少量参数的情况下增强浅层网络的感受野,提高网络的特征提取能力,改进YOLO v4网络结构如图5所示。

图5 改进YOLO v4网络结构 Fig.5 Improved YOLO v4 network structure

如图6所示,以8号奶牛为例,受图像采集角度与距离的影响,8号奶牛在不同位置躺卧,奶牛身体上的花纹具有一定形变。当8号奶牛在图像中左侧与中间位置躺卧时,YOLO v4模型能准确识别。当8号奶牛在最右侧时,奶牛身体上的花纹形变较大,而且存在栏杆的遮挡,YOLO v4模型错误的将8号奶牛识别为5号奶牛。本文改进YOLO v4模型能准确识别8号奶牛在视野中的任何位置,且置信度高于YOLO v4模型。上述结果表明,融合RFB-s结构的YOLO v4模型对奶牛身体花纹的形变具有较高的鲁棒性。

图6 YOLO v4模型改进前后对8号奶牛不同位置的识别结果对比Fig.6 Comparison of identification performance of No.8 cow before and after improvement of YOLO v4

2.2.2NMS算法改进

在目标检测过程中,在同一目标的位置上会产生大量的候选框,存在重叠现象,非极大抑制 (Non-maximum suppression, NMS)[27]算法则会寻找出最佳的目标边界框,消除冗余的边界框。NMS算法只能去除对每个奶牛个体预测的单一类别冗余的边界框,当个别奶牛外观特征十分相似时,YOLO v4模型可能会将一个奶牛同时预测为多个不同的奶牛个体,依然存在重叠框的情况,降低识别准确率。如图7a所示,中间的奶牛被预测为两个不同的奶牛个体。

图7 NMS算法改进前后识别结果对比Fig.7 Comparison of identification results of NMS and improved NMS

奶牛在牛舍内是并列躺卧,每个固定的躺卧区域只存在一个奶牛。为去除多余的重叠框,本文对NMS算法进行改进,具体实现步骤如下:①采用NMS算法去除每个奶牛个体预测的冗余的边界框。②根据置信度降序排列候选框列表。③选取置信度最高的边界框A添加到输出列表,并从其候选框列表中删除。④计算边界框A与候选框列表中所有框的IoU值,删除大于设定边界框阈值的候选框。⑤返回步骤②进行迭代,直到候选框列表为空,迭代结束,输出最终候选框列表。

如图7b所示,经过对NMS算法的改进,可以解决原模型将一个奶牛预测为多个不同奶牛个体而产生的重叠框问题,提高奶牛个体识别的准确率。

2.3 基于改进YOLO v4模型训练参数设置

本文分别对YOLO v4模型与改进YOLO v4模型进行训练,图像尺寸设置为416像素×416像素,迭代次数(Epoch)设置为200,训练批量大小(Batch_size)设置为4。COCO数据集中包括奶牛这一类别,为主干网络添加COCO数据集的预训练权重提高训练速度,每次训练过程保存相应的权重参数。训练过程中首先冻结主干网络参数训练50次,学习率设置为0.001,加速网络收敛,后150次训练过程中,解冻主干网络,学习率设置为0.000 1,逐步优化到最优解,使网络训练趋于稳定,IoU设置为0.5。

2.4 躺卧奶牛个体识别评价指标

本研究采用精确率(Precision)、召回率(Recall)、平均精度均值(mAP)、调和平均值(F1值)、平均检测时间评估模型的性能。

每个奶牛个体都可以根据召回率和精确率绘制一条曲线,曲线下的面积为平均精度(AP),平均精度均值(mAP)为所有奶牛个体的平均精度的均值。

3 结果与分析

3.1 低光照图像增强结果

为了验证本文采用的MSRCP算法对低光照图像增强效果的有效性,分别与多尺度Retinex(MSR)算法和带有色彩恢复的多尺度视网膜增强算法(MSRCR)进行对比。从主观视觉效果和客观质量评价两方面进行分析。

如图8所示,MSR增强后的图像整体亮度都会提高,图像整体泛白。MSRCR增强后的图像在暗区域的对比度过高,出现了颜色失真的现象,降低了视觉效果。MSRCP算法增强后的图像不仅提高了亮度,而且保持了原图色彩,避免了图像失真,整体图像效果最好。本文采用标准差、灰度熵、彩色熵、峰值信噪比4个指标对不同的算法进行客观评价。如表1所示,MSRCR增强后的图像标准差最高,但是图像对比度过高导致图像失真。MSRCP增强后图像的标准差高于MSR算法增强后图像但小于MSRCR算法增强后图像,说明MSRCR算法为了保持原色彩,牺牲了对比度。MSRCP增强后的图像灰度熵和彩色熵均高于其他图像,说明了本文算法具有较好的细节表现能力,增强了图像的清晰度,并且保持了原图的色彩。MSRCP增强后的图像峰值信噪比最高,具有较高的噪声抑制能力。综合上述主观评价与客观评价,MSRCP算法对低光照下的图像增强效果最好。

图8 不同算法的图像增强结果Fig.8 Image enhancement results of different methods

表1 不同图像增强算法的客观评价结果Tab.1 Comparison of objective evalution

本文随机选取500幅低光照图像作为测试集。用本文改进YOLO v4模型分别对采用不同算法增强后的图像进行实验测试,结果如表2所示。经过MSRCP增强后的图像精确率、召回率以及mAP都最高,其中mAP相对于原图提高17.74个百分点。

表2 图像增强前后识别结果对比Tab.2 Comparison of recognition results before and after image enhancement %

个别奶牛身体黑色花纹较多,在夜间很难识别。采用改进YOLO v4模型识别低光照下的图像结果如图9a所示,最左边的奶牛出现了漏检,并且对其他奶牛识别的置信度较低。采用MSRCP算法对图像进行增强后,检测结果如图9b所示,图中所有奶牛都得到准确识别,并且置信度普遍高于图像增强前的识别结果。MSRCP图像增强算法不仅有效地改善了低光照图像的质量,而且奶牛个体识别准确率得到了明显提高。

图9 改进YOLO v4模型检测低光照图像的结果对比Fig.9 Comparison of results of improved YOLO v4 model for detecting low-light images

3.2 不同模型检测结果

为了验证本文改进YOLO v4模型的检测性能,采用本文的数据集分别对YOLO v4模型、YOLO v5模型、SSD模型、CenterNet模型、Faster R-CNN模型进行训练。并利用测试集数据对这5个模型进行性能评估,实验结果如表3所示。YOLO v4的精确率、召回率、mAP、F1值明显高于YOLO v5、SSD与CenterNet模型,但是略低于Faster R-CNN模型,表明改进YOLO v4模型在识别奶牛个体方面有明显优势。YOLO v5主干特征提取网络中的感受野较小,对奶牛花纹的特征提取能力较弱,识别准确率较低。改进YOLO v4模型的精确率为97.84%,召回率为93.68%,mAP为96.87%,F1值为95.71%,单帧图像处理时间为135.23 ms,其中mAP与F1值略高于Faster R-CNN模型。从图像的处理时间来看,CenterNet模型检测最快,单帧图像处理时间仅为57.85 ms。因为CenterNet属于无锚框目标检测算法,运行速度较快,但是识别准确率较低。Faster R-CNN模型的mAP与本文改进YOLO v4模型较为相近,但是Faster R-CNN的单帧图像处理时间为352.35 ms,远大于改进YOLO v4模型。改进YOLO v4模型与原模型相比mAP增加4.2个百分点,且单帧图像处理时间与原模型近似,从检测准确率与图像处理时间两方面综合分析,改进YOLO v4模型性能表现最佳。

表3 不同模型识别奶牛的结果Tab.3 Results of different models for detecting cows

基于不同模型的奶牛个体识别结果如图10所示。由于个别奶牛身体花纹相似,YOLO v4模型将最左侧奶牛同时识别为4号与6号奶牛,而且识别的置信度较低(图10a)。YOLO v5模型对奶牛个体识别的置信度较低,其中对于最右侧有遮挡的奶牛识别置信度仅为75%(图10b)。 SSD对个别奶牛的识别有漏检的情况,并且奶牛识别的置信度较低(图10c)。CenterNet将4号奶牛错误识别为6号奶牛(图10d)。Faster R-CNN与本文改进YOLO v4 两个模型都能够准确识别奶牛个体,且识别置信度较高,存在遮挡的奶牛也能准确识别(图10e、10f)。改进YOLO v4模型识别速度明显优于Faster R-CNN模型。

图10 不同模型对奶牛识别结果对比Fig.10 Comparisons of cow recognition results by different models

上述结果表明,本文在YOLO v4的主干网络中融入RFB-s网络,在仅增加少量参数的情况下,有效增强了模型的特征提取能力,对花纹的形变以及物体遮挡具有较高的鲁棒性。

3.3 身体花纹相似奶牛识别

部分奶牛身体花纹相似,识别难度较大。4号奶牛与6号奶牛花纹相似,在未进行NMS算法改进前,YOLO v4模型将4号奶牛同时识别为4号与6号奶牛(图11a),将6号奶牛错误识别为4号奶牛(图11a),且识别置信度较低。奶牛身体上花纹的形状、大小各异,由于在模型的主干特征提取网络中融入了RFB-s网络结构,扩大了主干网络特征提取的感受野,不同大小感受野的卷积可以对奶牛身体不同大小的花纹提取相应特征,增强了模型对奶牛特征提取的能力,所以本文改进后的YOLO v4模型对4号奶牛与6号奶牛识别的置信度较高(图11b)。本文对NMS算法的改进,有效地解决了将一个奶牛同时识别为多个奶牛的问题,进一步提高了模型对花纹相似奶牛个体识别的准确率。

图11 不同模型对外观特征相似奶牛识别结果Fig.11 Recognition results of cows with similar appearance features by different model

4 结论

(1)采用MSRCP算法对低光照图像进行增强,解决了由于图像较暗导致识别准确率较低的问题,经过MSRCP图像增强后,低光照条件下奶牛个体识别的mAP提高17.74个百分点。

(2)将RFB-s网络结构融合到YOLO v4模型中,增强了YOLO v4模型主干网络特征提取的感受野,提高了模型的特征提取能力,对奶牛身体花纹的形变以及遮挡情况具有较高的鲁棒性。对NMS算法的改进,提高了外形相似奶牛个体识别的准确率。改进YOLO v4模型对躺卧奶牛个体识别的mAP为96.87%,模型识别性能得到了很大提升。

(3)提出的躺卧奶牛个体识别方法,为实现自动计算奶牛个体躺卧时间提供了有效的技术支持。该方法为监测奶牛个体健康情况、评估牛舍环境舒适度等现代化养殖技术奠定了基础。

猜你喜欢
图像增强花纹特征提取
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
基于Gazebo仿真环境的ORB特征提取与比对的研究
虚拟内窥镜图像增强膝关节镜手术导航系统
涂颜色
基于Daubechies(dbN)的飞行器音频特征提取
冰雪路面轿车轮胎
公交车专用载重汽车轮胎胎面花纹
基于图像增强的无人机侦察图像去雾方法
Bagging RCSP脑电特征提取算法