掌桥专利:专业的专利平台
掌桥专利
首页

一种基于深度学习和树莓派4B模块的海产品识别方法

文献发布时间:2023-06-19 18:37:28


一种基于深度学习和树莓派4B模块的海产品识别方法

技术领域

本发明涉及图像识别领域,具体是一种基于深度学习和树莓派4B模块的海产品识别方法。

背景技术

随着近年来深度学习技术的发展,基于深度机器学习的图像识别技术已经在人脸识别、车辆识别、生态环境监测、商业监控、图像检索等诸多领域被广泛运用,在对鱼类的深度学习图像识别方向上也有许多科研人员提出有效的解决方法,但国内外在这一领域取得的成果多为非水下图像利用基于候选区域的检测网络进行人工特征的设计和提取,仍存在模型复杂、场景通用性、专业技能要求高以及所需硬件载体性能要求高的问题,并且随着深度学习技术的进步,许多成果的特性、速度、准确率等方面已落后于新兴深度学习模型。为了克服上述国内外成果的特性、速度、准确率等方面问题,搭建一个高速、准确、简单、基于回归的水下目标检测模型愈发重要。

深度学习是机器学习中的热门领域,而基于深度学习的目标检测技术中,卷积神经网络可以从大量的训练学习中获取到识别效果更强的特征,通过多网络组合,可以从浅层特征中提取出高层特征,高层特征区分度更强,更适用于复杂环境的特征提取,由于卷积神经网络优秀的特征提取能力,在图像识别领域应用广泛。

YOLO全称为You only look once,是Redmon等人在2016年的一篇研究论文中命名的卷积神经网络,它的主要特点就是将目标检测问题重新定义成一个回归问题,是典型的基于回归的目标检测网络。YOLO把单个卷积神经网络应用到整幅图像,把图像均分成网格结构并对每个网格的类别概率和边界框位置预测。YOLO具有检测速度快优点,可以实现每秒几十帧的检测速度,但是在多物体的环境下容易出现漏检的问题。

用于算法实现的树莓派4B是树莓派的最新版本,在用上TensorFlow Lite开发工具之后,树莓派4B的神经网络处理能力得到了巨大的提升,能和专业的NVIDIA JetsonNano 以及英特尔神经网络计算棒2代一较高下,并且新的树莓派4比上述两种设备都便宜得多。无论是价格、性能还是扩展性方面,树莓派4B都有非常强大开发前景,基于树莓派的海产品实时识别模块是具有多方面的研究价值的。

发明内容

为了解决上述问题,本发明的提供一种基于深度学习和树莓派4B模块的海产品识别方法。本发明在深入地研究卷积式神经网络的基础上,分析并选择深度学习模型和深度学习框架,构建一个基于PyTorch深度学习框架的YOLO V4卷积神经网络模型,并根据研究对象收集、创建、整合分析和处理构建课题目标海底鱼类图像数据集进行模型训练;在模型整体衡量标准上,借鉴使用LOSS损失函数和mAP评判标准进行模型整体评判;基于树莓派4B的YOLO V4深度学习网络实现单张图片及实时监测功能的验证工作。可以解决传统的人工设计的特征提取分析方法应用场景特定、通用性差、需要专业的技术实践经验等缺点的问题,同时对硬件要求更低。

本发明是通过如下技术实现的:一种基于深度学习和树莓派4B模块的海产品识别方法,包括以下步骤:步骤1:通过基于Pytorch深度学习框架的YOLO V4卷积神经网络建立海底鱼类目标模型;步骤2:进行目标数据集制作与加强,同时对数据集进行基于YOLO V4格式的Mosaic增强处理;步骤3:进行模型训练与图片预测,根据Loss损失函数判定训练有效,并选取最后一轮训练得出的权重进行图片预测;步骤4:在基于YOLO V4模型的树莓派4B模块完成图片预测功能;步骤5:使用mAP评判标准可视化进行模型整体可用性评判,取得与模型成果符合的预期效果并验证有效。发明主要使用输入为416*416像素的YOLO V4模型,模型中,CSPDarknet53是YOLO V4的主干提取网络,SPP+PANet是YOLO V4的加强特征提取网络,最后Yolo Head用于将提取到的特征转化为预测结果。

CSPDarknet53主干提取网络首先是将图片以416*416*3的格式输入到网络,然后进行第一次Darknet卷积,然后依次经过5次Resblock_body残差网络,最后进行三次卷积,此网络工作结束共得到三个有效特征层,其中52*52和26*26两个特征层被直接卷积输入到PANet网络中,13*13的有效特征层最终被输入到SPP网络结构中;SPP有4个分支,就是利用不同大小的最大池化和对输入进来的特征层进行最大池化,堆叠后的结果经过三次堆叠再进行三次卷积后输入到PANet结构;PANet结构首先就是对SPP堆叠卷积后的结果进行上采样,使输入进的特征层的高和宽变为原来的两倍即13*13变为26*26,进行上采样后得到的26*26的特征层与来自CSPDarknet53的26*26的网络特征层进行堆叠并进行5次卷积实现特征金字塔的特征堆叠,同理再进行一次实现52*52的特征图的特征堆叠,实现对3个特征层的有效特征融合输入到第一个Yolo Head,进行完特征融合后再进行下采样使融合的特征层采样为26*26的特征图再与之前上采样生成26*26的特征层进行堆叠和5次卷积实现特征融合输出到第二个Yolo Head,最后将第次特征融合的结果再次下采样生成13*13的特征层再与SPP结构得出的13*13的特征层进行堆叠和卷积融合,得到第三个特征融合结果输出到最后一个Yolo Head模块;Yolo Head模块对最后得出的3个更加有效的特征层进行最后的处理进行预测并得出权重。

步骤2中,选取中国台湾鱼类资料库水下拍摄视频截取所得图像,共有1502张,含五个目标种类及三种非识别目标的干扰鱼类,并打乱图像顺序制作数据集。

Mosaic数据增强是同时进行四张不同图片编辑后相互拼接,其实现方法为首先读取4张图片,然后分别对这4张图片进行左右翻转、大小缩放和色域变换操作并按照左上、左下、右上、右下4个方向摆放好,最后利用矩阵的方式将4张图片固定的区域截取下来后拼接起来并保留矩阵标注框。

步骤3中,训练导入决定的5类海产品的名称,然后导入训练文件及初始训练权重文件:yolo4_ weights.pth,同时配置好classes和anchor的路径、CUDA加速开启、tensorboard开启、输入shape为416*416、损失归一化开启、训练轮数为100轮;进一步的,选取13*13这个有效特征层进行解析获取Loss计算,通过Tensorboard呈现Train_Loss和Val_Loss曲线图,反映出模型训练效果,由此根据要求判定本次深度学习过程是否有效,并选取最后一轮训练得出的权重作为下一步预测的权重文件进行预测效果测试。

树莓派4B模块实现。选取训练结果中的预测权重,配置对应参数运行编译好的多图片预测程序,实现目标功能。

评测时,需要计算模型中每个类的平均精度AP,对于AP,首先将YOLO V4的检测结果按照置信度进行排序,并将检测结果分配到标注数据,共享标签时,进行IoU比较,选择IoU不小于0.7的为有效结果,即标注框交叉面积大于70%的结果为有效,IoU与计算精确率和召回率计算公式如下:

其中,TP是正样本分类器检测的正样本,TN是负样本分类器检测的负样本,FP是正样本分类器检测到的负样本,FN是负样本分类器检测到的正样本。

本发明的有益效果在于:解决了传统的人工设计的特征提取分析方法应用场景特定、通用性差、需要专业的技术实践经验等缺点,可基于树莓派实现图像预测功能;且树莓派4B有价格低廉、功耗表现低、可扩展接口多的特点。综上而言,克服了传统的人工设计的特征提取分析方法应用场景特定、通用性差、需要专业的技术实践经验和硬件载体性能要求高等缺点,且应用范围广泛。

附图说明

图1是本发明具体实施方式的流程图。

图2是Yolo Head网格划分示例。

图3是Mosaic增强后的组合图片示例。

图4是Tensorboard曲线图。

图5是五种类别鱼类预测框标注及可能性图例。

图6是 mAP结果分析图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明的附图,对本发明具体实施方式中的技术方案进行清楚、完整地描述,显然,所描述的具体实施方式仅仅是本发明一种具体实施方式,而不是全部的具体实施方式。基于本发明中的具体实施方式,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他具体实施方式,都应当属于本发明保护的范围。

通过附图可以看出,本发明的基于深度学习和树莓派4B模块的海产品识别方法,首先根据YOLO V4模型利用其特征提取网络,将图片分类标注形成数据集,之后基于数据集进行训练得到网络模型,最后基于网络模型进行测试集预测进行分类识别和定位得到识别结果,将功能在树莓派4B模块实现。

数据集的制作包括步骤如下:

(1) CSPDarknet53主干提取网络实现。要实现CSPDarknet53模块,首先要实现Mish激活函数,根据Mish激活函数公式,将卷积Conv2d、标准化BatchNorm2d(BN)和Mish组合生成CSPDarknet网络中的第一个处理模块DarknetConv2D_BN_Mish(416,416,32)。然后便是CSPnet结构的实现,需要为其构建需要的Resblock_body残差网络。Resblock_body模块使用了CSPnet的结构,即Part2主干和传统网络一样利用残差网络对输入进的特征进行提取,而Part1已人为设置了一个残差边,跳过Part2直接将输入和输出相连。完成Part1和Part2后,进行残差堆叠,按照YOLO V4的原始结构图,进行1,2,8,8,4次数的残差架构堆叠,完成CSPDarknet53的实现,

(2) SPP特征加强网络实现。CSPDarknet53SPP特征加强网络的搭建仅需将CSPDarknet53模块输出的13*13*1024的有效特征层进行三次卷积后输入到SPP模块后再进行堆叠和三次卷积即可完成。

(3) PANet特征加强网络实现。从SPP结构的输出开始,首先进行上采样后得到一个26*26的特征层,同时将CSPDarknet53模块中输出的26*26*521的特征层进行卷积操作,将两个特征层进行堆叠,然后交替进行1*1和3*3的卷积共5次,这样的结构能够有效的减少模块所需的参数量同时提取出有效的特征。在完成5次卷积后,PANet模块再一次进行卷积加上采样的行为得到52*52的特征图,之后再同时对52*52*256的有效特征层进行卷积操作,然后再将两个特征图进行堆叠和5次卷积操作。此时有两个分支:一是输出PANet模块到Yolo Head,另一个是继续在PANet模块里进行下采样。利用卷积的方式进行下采样,完成下采样之后,把下采样的结果和PANet模块中第一次堆叠卷积的结果进行堆叠和5次卷积操作。此时又有两个分支:同上也是输出到Yolo Head模块和继续进行下采样任务,下采样操作同上。下采样之后再与SPP模块输出的有效特征层进行堆叠和卷积再输出。此时,PANet模块任务完成,共获得三个更加有效的特征并输出到Yolo Head模块中。

(4) Yolo Head预测模块实现。Yolo Head最终得到结果是3*5+num_classes,可以分解为3和5+num_classes。YOLO V4只有针对每一个特征层存在3个先验框,大小分别为19*19、38*38、76*76,所以3代表这每个特征点上的三个先验框,如图2紫色框,三个结果中最后一个示例结果中的85包含了4+1+80,分别代表偏移量x_offset和y_offset、高度h和宽度w、置信度和分类结果。YOLO V4的解码把每个网格点和其对应的偏移量x_offset和y_offset进行相加,然后把相加得到的结果作为最终预测框的中心点,在进行与先验框、h、w进行组合计算,最后根据计算得到的长和宽推算出目标预测框的坐标。

(5) 选取含有銀身蝴蝶魚(Chaetodon argentatus),雷氏蝴蝶魚(Chaetodonrafflesii),黑鰭光鰓雀鯛(Chromis atripes),雲斑海豬魚(Halichoeres hortulanus)和黑尾凹尾塘鱧(Ptereleotris evides)五个目标种类及三种非识别目标的干扰鱼类,并打乱顺序进行数据集制作。

(6) Mosaic数据增强。经过Mosaic操作后,在BN计算时,会一次性计算4张图片的数据,可以丰富检测物体的背景。图3为其实现效果。

训练得到网络模型的具体步骤如下:

(1) 经过大概6个小时的训练,共得到100个.Pth格式的log文件和一个用于tensorboard研究训练Loss的记录文件,查看Loss内容进行分析一遍确定本次训练结果是否有效可用,以选择合适的log文件进行目标实现。

(2) Loss计算

通过Tensorboard所呈现的Train_Loss和Val_Loss曲线图,见图4,可以看到针对本次训练Loss随着迭代次数的增加而减少,在经过一定量的迭代之后,Loss在迭代次数2500次,也就是50次Epoch左右开始趋于平稳,一个Epoch表示完整数据集通过并返回一次神经网络。能反映出一定的模型训练效果,由此根据要求判定本次深度学习过程应该判定为有效。

最终完成图片预测功能达到目标的树莓派4B模块实现,发明效果见图5。

另外,本发明以mAP评测验证其功能有效性。通过查看本次设置的mAP的

以上是对本发明进行的具体说明,但本发明创造并不限于所述实例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替 换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

技术分类

06120115638683