本发明涉及计算机视觉、家禽病患识别和机器学习等技术领域,具体为一种多区域深度特征融合的病鸡视觉识别模型构建及应用方法。
背景技术:
近年来,家禽养殖产业在人工智能和5g技术的推动下,提出了精准饲喂、多模态监控、养殖业大数据等智慧养殖的概念。由于笼养环境的群体效应,会导致疾病在鸡群中迅速传播,利用计算机视觉技术实现病鸡的实时识别和鸡情监控,对提高养殖业自动化水平,实现智慧养殖具有重要意义。
基于深度学习的计算机视觉在农业领域的植物表型研究、家禽家畜分类与行为识别领域应用研究成为近年来的研究热点。视觉技术在养鸡产业的应用也取得了积极成果。在传统视觉领域,cedricokinda等提出病鸡早期的分类,利用二维姿态形状描述子和运动特征提取特征变量再用支持向量机进行分类。张铁民等提出根据音频特征和模糊神经网络的禽流感病鸡检测方法。毕敏娜等提出通过颜色分量分割鸡头各个区域,提取视觉特征并进行病鸡识别的方法。深度学习在病鸡识别领域的研究较少,易诗等提出基于改进的tiny-yolov3轻量级目标检测模型进行野鸡的识别和监控。zhang等提出基于残差网络结合特征金字塔的家禽疾病监控模型。
上述研究利用现有视觉检测和分类模型在家禽家畜的定位和识别领域做了大量积极的研究。但在背景复杂、遮挡严重的多目标笼养鸡场景下,难以取得较好的效果,本方法采用基于深度学习的细粒度图像分类技术,通过区域定位和病鸡识别两阶段网络,通过数据集制作和模型创新,进行病鸡的识别。
技术实现要素:
本发明的目的在于提供一种多区域深度特征融合的病鸡视觉识别模型构建及应用方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种多区域深度特征融合的病鸡视觉识别模型构建方法,该方法包括:
s101、获取笼养鸡场景下的鸡只图片,根据鸡只图片,对鸡只的整鸡、鸡头、鸡身3个区域进行标注,以及健康鸡和病鸡两个类别标注,构建病鸡识别数据集;
s102、构建2阶段病鸡识别模型,该模型包括多区域定位模型和识别模型;
s103、利用公开数据集对多区域定位模型和识别模型进行预训练,再利用病鸡识别数据集,对模型进行微调,得到最终病鸡识别模型。
优选的,健康鸡和病鸡两个类别标注采用预先分类标注,每个区域两个标签,一个是区域位置标签包括整鸡、鸡头和鸡身,一个是类别标签包括健康鸡和病鸡标签,标注方法采用:对某一区域露出部分超过50%且有明显特征,需要进行标注;露出部分不足50%,或者虽然超过50%但无明显特征,则不需要标注;如露出的鸡头包含了鸡喙和鸡冠,则用最小矩形框框选未被覆盖部分;部分身体被遮挡的目标只标注了鸡头区域,整鸡和鸡身不标注。
优选的,所述多区域定位模型采用fasterr-cnn模型,进行鸡只的目标区域定位,该鸡只的目标区域定位包括:进行前景和背景目标识别和定位框的边框回归,再进行区域识别和进一步的区域边框回归,用兴趣区域对齐代替fasterr-cnn模型的兴趣区域池化,在基线模型中嵌入特征金字塔网络,融合高低分辨率特征,在基线模型中嵌入可变形卷积网络,通过在基线的c3-c5层采用了可变形卷积。
优选的,所述识别模型包括区域抽取、特征提取以及融合分类,其中:区域抽取为根据多区域定位模型定位的3个区域,采用边框约束和几何约束的方法,提取区域并对区域进行修正,获取同一只鸡的3个区域的精确定位;特征提取为利用3个resnet50-vd-dcn卷积网络对3个区域分别进行特征提取;融合分类为级联3个区域特征向量形成6164维的特征向量,通过两级全连接网络进行二分类。
优选的,精确定位后将定位出的3个区域图像等比例缩放,使得图像最短边缩放到256像素,然后从图像中间剪切出一个224*224像素大小,输入到resnet50-vd-dcn卷积网络进行特征提取;特征提取经过49层卷积后,进行全局均值池化和向量化后得到2048维的特征向量。
优选的,两级全连接网络为fc1(1000)+fc(2)+softmax,fc1网络输出1000维是为了保持与imagenet预训练模型结构一致,网络输出层选择softmax函数。
优选的,所述公开数据集包括imagenet-1k分类数据集以及coco定位数据集,预训练包括分类模型和区域定位模型,其中分类模型采用resnet50-vd-dcn在imagenet-1k数据集上的预训练模型,区域定位的基线模型resnet50-vd-fpn-dcn,采用在imagenet-1k数据集上的预训练模型,区域定位模型fasterrcnn采用在coco数据集上的预训练模型;
利用病鸡识别数据集,对模型进行微调包括:
数据集划分:按照数据集的70%、15%、15%比例划分为训练集、验证集和测试集;
优化器参数设置:模型训练优化器使用在工业界广泛使用的带动量的小批量随机梯度下降法,设置批样本量为16,动量因子为0.9,初始学习率为1×10-4;
采用学习率热身:在前5个epoch的m个batches次迭代训练中,让学习率从零线性增加到初始学习率,最随后的训练中采用余弦退火的方式降低学习率;
训练中的数据增强:在图像增强中采用了随机水平翻转、随机平移、随机光照和饱和度、随机裁剪和擦除数据增强方法,解决养鸡场场景中背景光照变化、目标位姿变化和相互遮挡问题;
分阶段交替训练:加载coco数据集预训练模型,利用病鸡识别数据集对预训练模型进行微调,采用分阶段交替训练的方法,在训练中交替执行评估,分类模型采用resnet50-vd-dcn在imagenet-1k数据集上的预训练模型,选择特征级联融合方法,最后进行softmax分类;
训练参数设置:识别模型训练使用小批量带动量随机梯度下降法作为优化器,交叉熵作为损失函数,设动量因子设为0.9,初始学习率设为1×10-4,在前5个epoch的m个batches次迭代训练中进行学习率热身,后期训练中采用余弦退火方式降低学习率;
模型训练和保保存:训练中,在每一个epoch进行训练集验证,并对模型参数进行保存,当训练集在多个epoch的准确率比验证集高时,说明模型已经过拟合,即停止训练,以验证准确率最高的模型作为分类模型,训练完成后,保存模型结构和参数,即为最终病鸡识别模型。
为实现上述目的,本发明还提供如下技术方案:
一种多区域深度特征融合的病鸡视觉识别模型应用方法,采用如上述任意一项所述的最终病鸡识别模型进行识别,包括:
获取笼养鸡场景下的鸡只图片;
获取同一只鸡的整鸡、鸡头、鸡身3个图像块;
通过分别提取3个区域的深度特征,融合3个区域的特征向量,并进行病鸡和健康鸡的分类。
为实现上述目的,本发明还提供如下技术方案:
一种多区域深度特征融合的病鸡视觉识别模型应用装置,包括:
采集单元110,用于获取笼养鸡场景下的鸡只图片;
定位单元111,用于获取同一只鸡的整鸡、鸡头、鸡身3个图像块;以及
识别单元112,用于通过分别提取3个区域的深度特征,融合3个区域的特征向量,并进行病鸡和健康鸡的分类。
与现有技术相比,本发明的有益效果是:
本方法从数据集制作策略,模型设计,训练策略等角度,尽可能解决笼养鸡场景病鸡识别中的复杂背景、严重遮挡、和多姿态问题,大大提高了病鸡的识别率,可以在养鸡场进行应用部署。
本发明利用基于深度学习的细粒度图像分类技术,通过定位网络和识别网络实现笼养鸡环境下的病鸡识别技术。定位的平均定位精度达到10.6个像素距离,区域识别的平均精度均值为91.2%。病鸡识别中,融合特征分类的召回率达到了91.95%,精确率达到了88.41%,反映模型综合效果的f1指标达到了89.93%。
附图说明
图1为本发明方法的流程图;
图2为本发明应用部署的示意图;
图3为本发明2阶段病鸡识别模型的多区域定位模型设计的示意图;
图4为本发明2阶段病鸡识别模型的识别模型设计的示意图;
图5为本发明识别模型应用装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
请参阅图1至图5,本发明,
(1)针对笼养鸡场景病鸡识别中的鸡只复杂背景、严重遮挡、和多姿态问题,从数据集制作,模型设计,训练策略等角度提出多种解决策略。
(2)为保持采集的图片与监控图片场景的一致性,数据采集通过搭载在养鸡场巡视机器人上的工业相机,进行病鸡的视频采集和抽帧。
(3)为解决病鸡与健康鸡正负样本的严重不均衡,遇到病鸡时,分别从水平0°、±30°视角采集三张图片。
(4)为解决多姿态问题主要采用多角度拍摄和拍摄更多的图片,解决遮挡问题除了采用多姿态拍摄外,主要采用数据增强策略。
(5)病鸡特征主要表现为整鸡的体态特征、鸡头复合特征和鸡身纹理特征,所以对病鸡进行多区域标注,除了标注整鸡外,还对鸡头和鸡身2个局部区域进行标注。
(6)采用了如下标注策略,对某一区域露出部分超过50%且有明显特征,需要进行标注;露出部分不足50%,或者虽然超过50%但无明显特征,则不需要标注;如露出的鸡头包含了鸡喙和鸡冠,则用最小矩形框框选未被覆盖部分;部分身体被遮挡的目标只标注了鸡头区域,整鸡和鸡身不标注。
(7)病鸡与健康鸡的视觉特征差异细微,远小于鸡的背景、姿态和遮挡因素导致的视觉差异。为提高深度学习模型的泛化性,采用多角度拍摄、图片水平翻转、图片混合等方法进行数据集的增扩处理。
(8)病鸡识别模型采用二阶段网络即区域定位网络和识别网络进行病鸡识别,通过定位网络定位整鸡、鸡头、鸡身3个具有显著特征的图片,通过识别网络分别提取3个区域的深度特征,融合3个区域的特征向量,利用全连接网络进行病鸡分类。
(9)为提高病鸡识别精度,定位网络中采用改进的fasterrcnn目标定位模型,基线网络采用resnet50-d-fpn-dcn网络。先进行前景目标定位,进行区域定位和识别。
(10)在区域定位网络的优化设计中采用了许多策略,用兴趣区域对齐代替兴趣区域池化提高定位精度,骨干网络中嵌入特征金字塔网络实现对鸡头和远景目标等小目标的检测,利用可变形卷积代替普通卷积,解决活体的形变。
(11)识别网络利用整鸡、鸡头、鸡身3个区域的深度特征,再进行多区域特征融合后,在进行分类。
(12)特征提取中采用了可变形卷积的resnet50-vd预训练模型。
(13)通过基于几何关系的区域抽取方法,获取整鸡、鸡头、鸡身3个区域,通过resnet50-vd-dcn网络提取各个区域深度特征。通过全局池化后得到特征向量,级联融合3个区域的特征向量,利用全连接网络fc1(1000)+fc(2)+softmax实现2分类。
(14)模型训练采用了迁移学习的方法,定位网络采用在coco数据集上的预训练模型,定位网络基线模型resnet50-d-fpn-dcn和区域特征提取模型resnet50-vd的均采用在imagenet-1k数据集上的预训练模型。
(15)模型训练中采用了随机水平翻转、随机平移、随机光照和饱和度、随机裁剪和擦除等数据增强策略。
(16)模型在服务器端的应用部署。
具体的,一、本发明提出了一种病鸡识别方法,包括:
(1)提出一种利用深度学习的细粒度图像分类技术进行笼养鸡场景下的病鸡识别的方法;
(2)提出了基于改进的视觉目标定位模型和多区域融合的识别模型的两阶段病鸡识别模型;
(3)适合服务器部署的模型设计,强调较高的识别精度,弱化模型的大小和模型的推理时间;
(4)具体实施方式包括数据采集与标注、区域定位模型设计、病鸡识别模型设计、模型训练、应用部署几个环节,如图2所示。
二、数据采集与标注
(1)从养鸡场巡视机器人的视角采集笼养鸡场景下的鸡只图片,采用视频抽帧的形式获取采集数据;
(2)通过养鸡场巡视机器人从两鸡栏中线同时采集两侧多层鸡栏的鸡只,数据采集与应用部署环境一致;
(3)采用固定倾角和固定距离的数据采集视角;
(4)通过从病鸡的水平0°、±30°视角进行多角度拍摄,解决病鸡与健康鸡数据不均衡的问题;
(5)对病鸡的整鸡、鸡头、鸡身3个区域进行标注,对于鸡身的多姿态问题,将侧面鸡翅、正面鸡腹、后面鸡背作为鸡身进行统一标注;
(6)整鸡标注框包含了鸡头和鸡身两个区域标注框,便于后续分类中一只鸡的多个区域的抽取;
(7)每个区域两个标签,一个是区域标签(整鸡、鸡头、鸡身),一个是类别标签(健康鸡、病鸡);
(8)对某一区域露出部分超过50%且有明显特征,需要进行标注;露出部分不足50%,或者虽然超过50%但无明显特征,则不需要标注;如露出的鸡头包含了鸡喙和鸡冠,则用最小矩形框框选未被覆盖部分;部分身体被遮挡的目标只标注了鸡头区域,整鸡和鸡身不标注。
(9)采用多位置拍摄、水平翻转,鸡的多角度、训练阶段的预处理中进行随机数据扩增等数据增强手段。
三、区域定位模型设计(或者称多区域定位模型)
(1)定位模型设计基于改进的fasterr-cnn模型,进行鸡只的目标区域定位,如图3所示,进行前景(鸡只)和背景(鸡栏的无鸡只背景)目标识别和定位框的边框回归,再进行区域识别(整鸡、鸡头、鸡身)和进一步的区域边框回归;
(2)用兴趣区域对齐(roialign)代替fasterr-cnn模型的兴趣区域池化(roipooling),通过浮点数运算,最后通过采样点双线性插值的方式,来解决错位(mis-alignment)问题,提高对目标的定位精度,提高后续分类网络的效果;
(3)目标定位网络fasterrcnn的基线模型进行改进,提出采用resnet50-d-fpn-dcn网络,实验证明,该基线网络要优于其它网络;
(4)在基线模型(resnet50-d-fpn-dcn)中嵌入特征金字塔网络(fpn),融合高低分辨率特征,提高对鸡头等小目标的识别和定位效果;
(5)在基线模型中嵌入可变形卷积网络(dcn),通过在基线的c3-c5层采用了可变形卷积,解决作为活物的鸡的多姿态和可变形问题。
(6)区域定位模型fasterrcnn采用在coco数据集上的预训练模型,区域定位模型的基线模型resnet50-vd-fpn-dcn,采用在imagenet-1k数据集上的预训练模型;
四、病鸡识别模型设计(或者称识别模型)
(1)根据区域目标定位网络获取的同一只鸡的整鸡、鸡头、鸡身3个图像块,提取各块的深度特征并融合,进行病鸡和健康鸡的分类,其网络结构如图4所示。整个网络包括区域抽取、特征提取、融合分类三个部分组成;
(2)区域抽取为在图片场景中抽取同一只鸡的多个区域,采用边框约束(boxconstraints)和几何约束(geometricconstraints)的方法,提取区域并对区域进行修正,获取同一只鸡的多个区域的精确定位;
(3)将定位出的3个区域图像等比例缩放(resize),使得图像最短边缩放到256像素,然后从图像中间剪切(crop)出一个224*224像素大小,输入到后续的特征提取网络;
(4)特征提取网络将224*224的输入图像,分别输入后续的3个resnet50-vd-dcn卷积网络,进行特征提取,经过49层卷积后,进行全局均值池化(globalaveragepooling)和向量化(flatten)后得到2048维的特征向量;
(5)特征融合为级联3个区域特征向量形成6164维的特征向量,通过两级全连接网络进行二分类(健康鸡和病鸡),分类网络(结构)即为两级全连接网络为fc1(1000)+fc(2)+softmax,fc1网络输出1000维是为了保持与imagenet预训练模型结构一致,网络输出层选择softmax函数。
(6)特征提取网络resnet50-vd-dcn采用在imagenet-1k数据集上的预训练模型,采用预训练模型,加速分类模型在规模较小的病鸡数据集上的收敛速度;
五、模型训练和验证
(1)模型训练和测试在服务器端进行,配置intel志强e3-1231v3服务器,cpu配置:8核、32gbram、100grom,gpu配置:teslav100、videomem:16gb;采用ubuntu16.04操作系统,paddlepaddlev1.6深度学习框架,使用cuda9.0版本并行计算框架,cudnn7.5版本的深度神经网络加速库;
(2)定位模型和识别模型分别训练,均采用预训练模型,按照数据集的70%、15%、15%比例划分为训练集、验证集和测试集;
(3)区域定位模型训练优化器使用在工业界广泛使用的带动量(momentum)的小批量随机梯度下降法(sgd)。设置批样本量(batch-size)为16,动量因子为0.9,初始学习率(learningrate)为1×10-4;
(4)为避免新样本数据对预训练模型参数的较大更新,采用学习率热身(warmup)方法,在前5个epoch的m个batches次迭代训练中,让学习率从零线性增加到初始学习率,最随后的训练中采用余弦退火的方式降低学习率;
(5)在训练阶段采用了随机水平翻转、随机平移、随机光照和饱和度、随机裁剪和擦除等数据增强方法,解决养鸡场场景中背景光照变化、目标位姿变化和相互遮挡等问题;
(6)加载coco数据集预训练模型,利用病鸡识别数据集对预训练模型进行微调(fine-turning),采用分阶段交替训练的方法,在训练中交替执行评估;
(7)分类模型采用百度ai的resnet50-vd-dcn在imagenet-1k数据集上的预训练模型,选择特征级联融合方法,最后进行softmax分类;
(8)分类模型训练使用小批量带动量随机梯度下降法(momentum+sgd)作为优化器,交叉熵(crossentropy)作为损失函数。设动量因子设为0.9,初始学习率设为1×10-4,在前5个epoch的m个batches次迭代训练中进行学习率热身,后期训练中采用余弦退火方式降低学习率;
(9)训练中,在每一个epoch进行训练集验证,并对模型参数进行保存,当训练集在多个epoch的准确率比验证集高时,说明模型已经过拟合,即停止训练,以验证准确率最高的模型作为分类模型;
(10)训练完成后,保存模型结构和参数,并进行服务器端的部署。
笼养鸡场景的病鸡视觉识别,利用传统计算机视觉技术,设计人工特征并进行模式识别,很难有较高的识别率;利用深度学习的计算机视觉技术进行笼养鸡场景的病鸡识别(不同于人脸识别容易得到正面脸部图像,细粒度分类的不同鸟类分类),对于鸡只背景复杂、严重遮挡、姿态各异的笼养鸡场景,目前研究很少。
(11)模型在养鸡场的落地实施采用百度飞浆(paddlepaddle)全场景、全平台、高性能工业级模型推理与部署方案,针对不同平台不同的应用场景进行了深度的适配优化,做到高吞吐、低时延,保证了飞桨模型的即训即用和快速部署。
(12)病鸡识别模型强调高精度效果,弱化推理速度,且模型算法复杂,对硬件要求较高,所以采用在企业私有服务器端进行模型部署,推理引擎核心框架采用paddleinference,服务化部署框架采用paddleserving,实现模型在服务器端的快速部署。
本方法从数据集制作策略,模型设计,训练策略等角度,尽可能解决笼养鸡场景病鸡识别中的复杂背景、严重遮挡、和多姿态问题,大大提高了病鸡的识别率,可以在养鸡场进行应用部署。
本发明利用基于深度学习的细粒度图像分类技术,通过定位网络和识别网络实现笼养鸡环境下的病鸡识别技术。定位的平均定位精度达到10.6个像素距离,区域识别的平均精度均值为91.2%。病鸡识别中,融合特征分类的召回率达到了91.95%,精确率达到了88.41%,反映模型综合效果的f1指标达到了89.93%。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/ai/315285.html