首页> 中国专利> 基于改进YOLOv4和FIRN的鱼类个体身份识别方法

基于改进YOLOv4和FIRN的鱼类个体身份识别方法

摘要

本发明公开了基于改进YOLOv4和FIRN的鱼类个体身份识别方法,包括鱼类个体目标检测和身份识别两大模块;目标检测模块采用改进的YOLOv4网络找到鱼类个体目标,身份识别模块采用FIRN网络对鱼类个体身份识别;FIRN网络采用改进的ResNext50网络进行特征提取,并采用Arcface Loss计算损失;将目标检测和身份识别两个模块进行融合,然后利用融合后的模型对鱼类图片或视频识别,即可直接得到鱼类个体目标的检测框及身份信息。本发明采用上述方法,在鱼种类已知的情况下,找到鱼个体并进一步对其身份信息识别,为智能养殖提供可靠的数据支撑。

著录项

  • 公开/公告号CN115631404A

    专利类型发明专利

  • 公开/公告日2023-01-20

    原文格式PDF

  • 申请/专利权人 大连海洋大学;

    申请/专利号CN202211346638.1

  • 申请日2022-10-31

  • 分类号G06V20/05(2022.01);G06V10/764(2022.01);G06V10/77(2022.01);G06V10/82(2022.01);G06N3/04(2023.01);G06N3/08(2023.01);

  • 代理机构北京知艺互联知识产权代理有限公司 16137;

  • 代理人陈艳

  • 地址 116023 辽宁省大连市沙河口区黑石礁街52号

  • 入库时间 2023-06-19 18:24:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-14

    实质审查的生效 IPC(主分类):G06V20/05 专利申请号:2022113466381 申请日:20221031

    实质审查的生效

  • 2023-01-20

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及图像识别技术领域,尤其是涉及基于改进YOLOv4和FIRN的鱼类个体身份识别方法。

背景技术

随着现代科技的迅速发展,水产养殖产业正从传统的人工养殖向智能化养殖转变。计算机视觉技术在鱼类智能化养殖中发挥了关键性的作用,其主要通过学习水下鱼类的表型特征来实现对鱼类的检测、分类、识别、测量、计数等。其中,实现对鱼类个体的精准识别对鱼类养殖的发展具有十分重要的意义。

传统的鱼类识别任务主要是通过基于手动选取特征的机器学习方法来实现对鱼类的识别分类,能够识别出某条鱼属于什么种类。然而,现代养殖池基本是同池同种类鱼的养殖模式,所以仅仅识别到鱼种类是远远不够的。在能够识别出鱼种类的前提下,将该种类的每一条鱼赋予唯一的身份信息并能将其身份识别出来,这对鱼类养殖的发展更具有指导意义。然而由于鱼类个体姿势范围变化大、环境因素复杂等影响使鱼类个体的精准识别具有很大的挑战性。因此,鱼类个体能够精准识别的方法对实现鱼类的智能化养殖是很有必要。

发明内容

本发明目的是设计一种鱼类个体识别模型,通过对深度学习模型进行优化,进一步实现了对已知种类鱼个体身份的精准识别,从而解决现有技术中鱼类个体精准识别难度大的问题。

为实现上述目的,本发明提供了如下技术方案:

基于改进YOLOv4和FIRN的鱼类个体身份识别方法,包括如下步骤:

S1:采集水下鱼类图像,组成鱼类个体目标检测数据集并进行预处理;

S2:将处理后的目标检测数据集输入至鱼类个体目标检测模块中,目标检测模块基于YOLOv4网络进行鱼类个体目标检测的训练和测试;

S3:基于目标检测模块输出的预测框坐标对鱼类个体目标进行自动裁剪,将裁剪出来的鱼类个体图片组成身份识别数据集并进行预处理;

S4:将处理后的身份识别数据集输入至鱼类个体身份识别模块中,身份识别模块基于FIRN网络进行鱼类个体身份识别的训练和测试;FIRN网络采用ResNe xt50网络进行特征提取,并采用Arcface Loss进行损失计算;

S5:将目标检测模块和身份识别模块进行融合,然后将鱼类视频或图片输入到融合后的模型中,实现对鱼类个体的目标检测与身份识别。

优选的,S1中目标检测数据集的预处理为,采用labelimg工具对采集到的鱼类图像进行手动标注,标注方式为create RectBox,标签为fish,标注文件格式为xml,最后将标注完毕的数据集转为VOC数据集格式。

优选的,S2中YOLOv4网络的特征提取网络CSP Darknet53替换为Mobile netV3网络,加强特征提取网络PANet中的3×3卷积全部替换为深度可分离卷积。

优选的,S3中身份识别数据集的预处理为,将不同身份的鱼类个体分别放入不同的文件夹中,且对每一个身份类别的图片都进行-20度至20度的随机旋转,进行数据增强。

优选的,S4中ResNext50网络的残差块中嵌入了CBAM注意力机制,且残差块先进行批量归一化再进行卷积;去掉最大池化层和平均池化层,其后采用BN-Dropout-FC-BN结构;在残差块中引入膨胀卷积,主干网络仍使用标准卷积;使用Hard-Swish激活函数代替ReLu激活函数。

综上,本发明采用上述鱼类个体身份识别方法,具有以下有益效果:(1)提出改进的YOLOv4网络作为鱼类个体目标检测的算法,该算法比传统的YOLOv4在鱼类个体目标检测问题上具有更高的准确率;(2)提出FIRN网络作为鱼类个体身份识别的算法,特征提取网络在ResNext50的基础上进行改进,增加感受野的同时可以学习到更多的细节特征,再结合Arcface Loss损失函数,在保证类间可分性的同时具有更小的类内距离;(3)将鱼类个体目标检测和身份识别进行结合,只要输入鱼类的图像或视频,程序就会自动检测出每一条鱼类个体并将其身份信息识别出来,且精准度高,为实现鱼类自动化养殖提供可靠的数据支撑。

附图说明

图1为本发明鱼类个体身份识别方法的流程图;

图2为本发明鱼类个体身份识别模型的结构图;

图3为本发明的目标检测模块中改进的YOLOv4网络结构图;

图4为本发明的身份识别模块中改进的ResNext50的残差块结构图;

图5为本发明的身份识别模块中改进的ResNext50主干网络结构图;

图6为本发明的目标检测模块输出的鱼类个体的数据集示例;

图7为本发明的身份识别模块输出的身份识别结果示例。

具体实施方式

以下结合附图和实施例对本发明的技术方案作进一步说明。

如图1-2所示的鱼类个体身份识别方法包括两大模块:目标检测模块和身份识别模块,目标检测模块基于改进的YOLOv4网络从数据集图片中找到同一鱼个体的所有姿态,身份识别模块基于FIRN网络对鱼个体身份进行精确识别。

本方案具体分5步骤进行,各步骤具体过程见下文。

S1:采集水下鱼类图像,组成鱼类个体目标检测数据集并对其进行预处理。

对数据集的预处理为,将采集到的鱼类图像进行手动标注,标注完毕后转换数据集格式。标注所采用的工具为labelimg,标注方式为create RectBox,标签为fish,标注文件格式为xml,将标注完毕的数据集转为VOC数据集格式。

S2:将处理好的目标检测数据集输入至鱼类个体目标检测模块中,进行鱼类个体目标检测的训练和测试。

鱼类个体目标检测训练所采用的算法为改进的YOLOv4,其改进部分包括对特征提取网络的替换和加强特征提取网络的改进,其网络结构图如图3所示。首先,将YOLOv4网络中的特征提取网络CSP Darknet53改为了MobilenetV3,这样可以使目标检测网络参数更少,更加轻量化,且能应用到移动设备。其次,为了进一步减小参数量,将YOLOv4中的加强特征提取网络PANet中的3×3卷积全部替换为深度可分离卷积。深度可分离卷积将卷积分为了空间维度和通道维度并分别进行卷积,和标准卷积具有相同的输入和输出,但比标准卷积减少了大量的参数和计算。因此,将其应用到PANet中可以大大减小参数量和计算量。

训练设置初始学习率为0.001,使用SGD优化器,设置批量大小为32,epo ch数量为300。每20个epoch保存一次权重,选取最优权重进行网络的测试。

S3:将检测出来的鱼类个体目标进行裁剪,将裁剪出来的鱼类个体图片作为身份识别数据集并进行预处理。

对检测出来的鱼类个体目标进行裁剪的方法为根据预测生成的预测框坐标进行自动裁剪。对身份识别模块的数据集进行预处理的具体操作为,将不同身份的鱼类个体分别放入不同的文件夹中,且对每一个身份类别的图片都进行-20度至20度的随机旋转,进行数据增强。如图6所示,目标检测模块会输出红白草金鱼的13种姿态图片,经自动剪辑、数据增强后,放入0000022号文件夹。

S4:将处理好的身份识别数据集输入至身份识别模块进行鱼类个体身份识别的训练和测试。

身份识别模块训练采用的算法为本发明提出的FIRN,分为特征提取和损失计算两部分,特征提取网络采用改进的ResNext50,损失计算采用Arcface Los s。改进后的ResNext50的残差块及主干结构如图4、图5所示。

为了提高网络对鱼类个体特征的提取能力,在ResNext50的残差块中嵌入CBAM注意力机制,嵌入CBAM注意力机制后的残差块命名为C-Bottleneck,将主干网络中所有Bottleneck全部替换为C-Bottleneck。为了使训练更加稳定并进一步加快训练速度,将批量归一化层放到卷积层之前,对上层输入进来的数据先进行批量归一化操作使其满足正态分布,再对其进行卷积操作,这样可以加快训练速度,使训练过程更加稳定。为了防止经过池化层之后丢失大量信息,去掉最大池化层和平均池化层,其后使用BN-Dropout-FC-BN结构。去掉池化层之后图片尺寸不会发生变化,可以保留原来特征图的信息,且不会使图片变得模糊,此时先接入一个BN层可以使以上输入进来的数据进行归一化的操作,再进入Dropout层随机失活一些神经元,防止过拟合的发生,之后再进入全连接FC层,提取特征实现分类,最后再经过一个BN层,使输出的数据进行统一的正则化获得最终的输出特征。为了解决去掉最大池化层之后感受野变小的问题,在残差块中引入了膨胀卷积,而主干网络仍使用标准卷积。通过设置不同的膨胀率,在不遗漏像素点信息的同时增加了图像的感受野。为了避免使用ReLu激活函数会发生神经元失活的问题,将ReLu激活函数全部替换为Hard-Swish,这样使网络具有更高的表现能力。

训练所采用的损失函数为Arcface Loss,其公式为:

将上述改进的ResNext50作为特征提取网络,Arcface Loss作为损失函数,即为FIRN(Fish Individual Recognition Network)。经FIRN的训练,可以在保证类间可分性的同时获得更小的类内距离,使识别结果更加精确。

训练设置初始学习率为0.0001,使用Adam优化器,批量大小为16,epoch数量为300,momentum的值为0.9。训练结束后选取最优权重进行鱼类个体身份识别的测试和预测。

S5:将目标检测和个体识别两大模块进行融合,实现对鱼类个体的检测与身份识别。

将训练好的目标检测和个体识别两大模块的最优权重放入融合程序中,此时只要将鱼类视频或图片输入到网络中就可直接进行结果预测,输出鱼类个体目标的检测框及身份信息。如图7所示,模型输入含有三只金鱼的图片,可输出每只金鱼的位置(即目标框)以及鱼身份编号。

以上是本发明的具体实施方式,但本发明的保护范围不应局限于此。任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求书所限定的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号