一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种水下鱼体姿态动态识别方法及装置

2022-07-31 03:39:18 来源:中国专利 TAG:


1.本发明涉及图像识别技术领域,尤其涉及一种水下鱼体姿态动态识别方法及装置。


背景技术:

2.水产养殖是人利用可供养殖的水域,按照养殖对象的生态习性和对水域环境条件的要求,运用水产养殖技术和设施,从事水生经济的养殖。鱼游泳时的行为状态跟其所处的环境有着密切关系,检测和识别鱼的行为姿态有助于判断其健康情况。
3.目前,多采用传统图像处理技术(如二值化、形状拟合、灰度值检测)和卷积神经网络进行鱼体姿态识别,但上述方法仅能对处于静止状态的鱼类进行姿态识别,无法准确对移动状态的鱼类进行姿态识别。


技术实现要素:

4.本发明提供一种水下鱼体姿态动态识别方法及装置,用以解决现有技术中对移动状态的鱼类进行姿态识别精度较低的缺陷。
5.本发明提供一种水下鱼体姿态动态识别方法,包括:
6.确定待识别鱼体图像;
7.基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;
8.所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
9.根据本发明提供的一种水下鱼体姿态动态识别方法,所述基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态,包括:
10.基于所述鱼体姿态识别模型的输入层,对所述待识别鱼体图像进行数据增强,并对数据增强后得到的多个图像进行拼接,得到所述拼接图像,以及对所述拼接图像进行目标检测,得到所述目标检测框图像;
11.基于所述鱼体姿态识别模型的采样层,对所述目标检测框图像依次进行切片和卷积操作,得到初始特征图,并对所述初始特征图进行多次下采样,得到下采样特征图;
12.基于所述鱼体姿态识别模型的金字塔层,对上一层的特征图进行上采样后与下一层的特征图进行融合得到第一特征金字塔,以及对下一层的特征图进行下采样后与上一层的特征图进行融合得到第二特征金字塔,第一层的特征图为所述下采样特征图;
13.基于所述鱼体姿态是识别模型的预测层,根据所述第一特征金字塔和所述第二特征金字塔中的特征,确定所述鱼体姿态。
14.根据本发明提供的一种水下鱼体姿态动态识别方法,所述对所述拼接图像进行目标检测,之前还包括:将所述拼接图像缩放至预设标准尺寸。
15.根据本发明提供的一种水下鱼体姿态动态识别方法,所述对所述初始特征图进行多次下采样,得到下采样特征图,包括:
16.对当前特征图进行下采样,得到当前初始下采样特征图,并基于所述采样层的残差组件对上一下采样特征图和所述当前初始下采样特征图进行融合,得到当前下采样特征图;第一个当前特征图为所述初始特征图。
17.根据本发明提供的一种水下鱼体姿态动态识别方法,所述得到下采样特征图,之后还包括:
18.对所述下采样特征图依次进行卷积处理、归一化处理和最大池化处理。
19.根据本发明提供的一种水下鱼体姿态动态识别方法,所述基于所述特征金字塔中的特征确定鱼体姿态,包括:
20.基于所述特征金字塔中的特征,确定多个候选检测框;
21.基于非极大值抑制算法,从多个候选检测框中筛选得到鱼体检测框,并基于所述鱼体检测框进行姿态识别,确定所述鱼体姿态。
22.根据本发明提供的一种水下鱼体姿态动态识别方法,所述鱼体姿态识别模型的损失值基于如下公式确定:
23.loss=-1/n∑(t[i]log(o[i]) (1-t[i])log(1-o[i]));
[0024]
其中,loss表示所述鱼体姿态识别模型的损失值,o[i]表示所述鱼体姿态识别模型对样本鱼体图像进行预测得到的样本预测鱼体姿态,t[i]表示所述样本鱼体姿态标签。
[0025]
本发明还提供一种水下鱼体姿态动态识别装置,包括:
[0026]
确定单元,用于确定待识别鱼体图像;
[0027]
识别单元,用于基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;
[0028]
所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0029]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述水下鱼体姿态动态识别方法。
[0030]
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述水下鱼体姿态动态识别方法。
[0031]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述水下鱼体姿态动态识别方法。
[0032]
本发明提供的水下鱼体姿态动态识别方法及装置,基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对目标检测框图像进行下采样,从而使得下采样后的目标检测框图像中不仅保留有图像的特征信息,而且能够减少模型的计算参数,提高模型的识别效率。此外,基于下采样后的目标检测框图像生成特征金字塔,从而能够有效基于特征金字塔中的各尺度特征准确确定鱼体姿态。
附图说明
[0033]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1是本发明提供的水下鱼体姿态动态识别方法的流程示意图之一;
[0035]
图2是本发明提供的鱼体姿态识别模型采样层的结构示意图;
[0036]
图3是本发明提供的采样层中focus的结构示意图;
[0037]
图4是本发明提供的采样层中csp1_x的结构示意图;
[0038]
图5是本发明提供的卷积层cbl的结构示意图;
[0039]
图6是本发明提供的金字塔层中csp2_x的结构示意图;
[0040]
图7是本发明提供的残差组件的结构示意图;
[0041]
图8是本发明提供的spp的结构示意图;
[0042]
图9本发明提供的模型性能指标曲线示意图;
[0043]
图10是本发明提供的水下鱼体姿态动态识别方法的流程示意图之二;
[0044]
图11是本发明提供的水下鱼体姿态动态识别装置的结构示意图;
[0045]
图12是本发明提供的电子设备的结构示意图。
具体实施方式
[0046]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]
目前,多采用传统图像处理技术(如二值化、形状拟合、灰度值检测)和卷积神经网络进行鱼体姿态识别,但上述方法仅能对处于静止状态的鱼类进行姿态识别,无法准确对移动状态的鱼类进行姿态识别。
[0048]
此外,也有通过支持向量机技术进行鱼体姿态识别,但该方法依赖提取如下特征向量及滑动窗口等复杂算法,效率较低,而且该方法需要额外增加相应的硬件设施,维护成本较高。
[0049]
对此,本发明提供一种水下鱼体姿态动态识别方法。图1是本发明提供的水下鱼体姿态动态识别方法的流程示意图之一,如图1所示,该方法包括如下步骤:
[0050]
步骤110、确定待识别鱼体图像。
[0051]
此处,待识别鱼体图像即需要进行鱼体姿态识别的图像。待识别鱼体图像可以是通过图像采集设备采集得到,此处图像采集设备可以是相机或者摄像头,也可以是装摄像头的智能手机、平板、电脑等智能设备。
[0052]
步骤120、基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于特征金字塔中的特征确定鱼体姿态;拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;
[0053]
鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0054]
具体地,拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的。例如,在确定待识别鱼体图像后,可以对其进行数据增强,获得多个增强图像。其中,这些增强图像可以是基于mosaic数据增强算法对待识别鱼体图像进行随机缩放、随机裁剪、随机排布后得到的。在对待识别鱼体图像进行数据增强后,所获取的拼接图像包含有待识别鱼体不同角度、大小等的姿态信息,从而能够基于拼接图像获取待识别鱼体在移动时更多细节姿态信息。
[0055]
在得到拼接图像后,对拼接图像进行目标检测,从而可以从拼接图像中准确提取需要进行姿态识别的目标对象,得到目标检测框图像。在得到目标检测框图像后,对其进行下采样,不仅可以不丢失图像的特征信息,而且能够减少模型的计算参数,提高模型的识别效率。
[0056]
在对目标检测框图像进行下采样后,基于下采样后的目标检测框图像生成特征金字塔,并基于特征金字塔中的特征确定鱼体姿态。其中,特征金字塔可以是自上而下的fpn(feature pyramid networks)特征金字塔和自下而上的pan(pyramid attention network)特征金字塔,二者的结合在fpn特征金字塔的基础上增加了自下而上方向上的增强,使顶层特征得到底层特征的位置信息,从而提高了姿态识别精度。
[0057]
在以理解的是,本发明实施例可以预先训练得到鱼体姿态识别模型,具体可以通过执行如下步骤实现:首先,收集大量样本鱼体图像,通过人工标注确定其对应的样本鱼体姿态标签。随即,基于样本鱼体图像及其样本鱼体姿态标签对初始模型进行训练,从而得到鱼体姿态识别模型。
[0058]
作为一种可选实施例,样本鱼体图像来自于一个直径5米,深80厘米的养鱼池,鱼池中的水来源于经过过滤的海水,水温通过加热达到15度,摄像机被放置在水池底部,使用录像方法获取样本鱼体图像视频,视频像素为1920*1080,25帧每秒,格式为mp4。视频录制1个小时,使用python对录像获取到的视频进行截取处理,按每两秒截取一张的方式获取一系列jpg格式的初始样本鱼体图像,共获取到了1800张初始样本鱼体图像并保存到硬盘,然后删除了一些低质量的初始样本鱼体图像,比如鱼体缺失,大量鱼体重叠,无鱼体,以及鱼体模糊不清的图像,最终获得了800张样本鱼体图像。
[0059]
此外,在获取样本鱼体图像后,可以使用图像增强算法ace(automatic color equalization)对样本鱼体图像进行处理,ace算法源自retinex算法,可以调整和拉伸图像的对比度,实现色彩和饱和度的标准化。通过差分计算目标点与周围像素点的相对明暗关系来矫正像素值,有很好的增强效果,可以纠正色偏,实现去雾效果,降噪效果,还可以实现暗场景的亮度增强,经过处理的样本鱼体图像没有了原图的蓝绿色色偏,亮度得到了提升,水下模糊的情况也得到了改善。再有,可以对样本鱼体图像使用makesense进行标注处理,针对不同姿态的鱼体分别标注不同标签,重叠和缺失的鱼不进行标注,得到样本鱼体姿态标签。然后使用python对样本鱼体图像进行划分,如可以按照8:2的比例随机划分为训练集与测试集。
[0060]
本发明实施例提供的水下鱼体姿态动态识别方法,基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对目标检测框图像进行下采样,从而使得下采样后的目标检测框图像中不仅保留有图像的特征信息,而且能够减少模型的计算参数,
提高模型的识别效率。此外,基于下采样后的目标检测框图像生成特征金字塔,从而能够有效基于特征金字塔中的各尺度特征准确确定鱼体姿态。
[0061]
基于上述实施例,基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于特征金字塔中的特征确定鱼体姿态,包括:
[0062]
基于鱼体姿态识别模型的输入层,对待识别鱼体图像进行数据增强,并对数据增强后得到的多个图像进行拼接,得到拼接图像,以及对拼接图像进行目标检测,得到目标检测框图像;
[0063]
基于鱼体姿态识别模型的采样层,对目标检测框图像依次进行切片和卷积操作,得到初始特征图,并对初始特征图进行多次下采样,得到下采样特征图;
[0064]
基于鱼体姿态识别模型的金字塔层,对上一层的特征图进行上采样后与下一层的特征图进行融合得到第一特征金字塔,以及对下一层的特征图进行下采样后与上一层的特征图进行融合得到第二特征金字塔,第一层的特征图为下采样特征图;
[0065]
基于鱼体姿态是识别模型的预测层,根据第一特征金字塔和第二特征金字塔中的特征,确定鱼体姿态。
[0066]
具体地,鱼体姿态识别模型可以采用yolov5模型结构,其可以包括输入层,采样层(backbone层),金字塔层(neck层)和预测层(prediction层)四层结构。
[0067]
其中,输入层可以包含mosaic数据增强算法,自适应图片缩放算法和自适应锚框计算算法。采样层可以包含focus结构,csp1_x结构和spp结构。金字塔层可以包含csp2_x,fpn和pan结构。预测层可以包含giou_loss以及nms非极大值抑制算法。
[0068]
基于鱼体姿态识别模型的输入层,对待识别鱼体图像进行数据增强,并对数据增强后得到的多个图像进行拼接,得到拼接图像,以及对拼接图像进行目标检测,得到目标检测框图像。其中,在对待识别鱼体图像进行数据增强时,可以采用mosaic数据增强算法,如对任意四张图进行随机缩放、随机裁剪、随机排布后拼接,提高了对小目标和遮挡目标的检测准确度和模型的鲁棒性,降低了模型的内存需求,丰富了数据集。mosaic9是在mosaic基础上,将随机缩放、随机裁剪、随机排布的图片增加到9张,进一步提高了鲁棒性,降低了模型对内存的需求。在yolo算法中,针对不同的数据集,都会有初始长宽的锚框。在对鱼体姿态识别模型进行训练的过程中,在初始锚框的基础上输出预测框,进而和真实框进行比对,计算两者差距,再反向更新,迭代网络参数。每次训练时,自适应地计算不同训练集中的最佳锚框值。
[0069]
如图2所示,采样层包含focus结构,csp1_x结构和spp结构。focus结构,通过将原始608
×
608
×
3的图像输入focus结构,切片操作后变成304
×
304
×
12的特征图,再经过一次32个卷积核的卷积操作,最终变成304
×
304
×
32的特征图,该结构的作用是在图像进行下采样的过程中避免图片特征信息的丢失,从而在使用卷积操作时提取到更加充分的特征。该模块在backbone之前进行切片操作,如图3所示,选取每隔一个像素的值进行下采样,在没有丢失信息的情况下得到四张特征互补的图片,并将w、h信息集中到通道空间,输出空间扩充了四倍,原先的三通道变成了十二通道,从而在卷积操作后得到没有信息丢失的二倍下采样特征图,focus结构减少了卷积的成本,提升了速度。此外,如图4和图5所示,在csp1_x结构前设置一个卷积层,卷积核的大小为3
×
3,步长为2,使特征图的尺寸都缩小一
半,起到下采样的作用,backbone中有4个csp1_x结构,最后输出的特征图大小为19
×
19。
[0070]
基于鱼体姿态识别模型的金字塔层,对上一层的特征图进行上采样后与下一层的特征图进行融合得到第一特征金字塔(即fpn特征金字塔),以及对下一层的特征图进行下采样后与上一层的特征图进行融合得到第二特征金字塔(即pan特征金字塔)。
[0071]
例如,金字塔层可以为fpn pan结构,结合下采样和上采样,生成特征金字塔,使网络具有尺度不变性。fpn结构产生的特征金字塔是自上而下的,采样层提取的特征图经过下采样分别得到大小为76
×
76
×
255,38
×
38
×
255,19
×
19
×
255的特征,其中255表示255维输出,fpn将上一层特征上采样结果与下一层特征进行融合得到特征金字塔。本发明实施例在fpn的基础上增加了pan结构,与fpn相反的是,pan特征金字塔是自下而上的,将fpn的下一层特征下采样结果与上一层特征进行融合得到。fpn主要通过融合高低层特征提升目标检测的效果,尤其可以提高小尺寸目标的检测效果;pan结构对网络浅层特征进行分割,网络浅层特征信息对于目标检测非常重要,因为目标检测是像素级别的分类,浅层信息多是边缘等特征,二者的结合在fpn的基础上增加了自下而上方向上的增强,使顶层特征得到底层特征的位置信息,提升了大物体的检测效果。其中,金字塔层还包括图6所示的csp2_x结构。
[0072]
在得到第一金字塔和第二金字塔后,鱼体姿态是识别模型的预测层根据第一特征金字塔和第二特征金字塔中的特征,识别确定鱼体姿态。
[0073]
基于上述任一实施例,对拼接图像进行目标检测,之前还包括:将拼接图像缩放至预设标准尺寸。
[0074]
具体地,输入层还可以包括自适应图片缩放算法,其用于在对拼接图像进行目标检测之前,将拼接图像缩放至预设标准尺寸,以添加尽可能少的黑边,从而大幅提高模型的计算速度。
[0075]
基于上述任一实施例,对初始特征图进行多次下采样,得到下采样特征图,包括:
[0076]
对当前特征图进行下采样,得到当前初始下采样特征图,并基于采样层的残差组件对上一下采样特征图和当前初始下采样特征图进行融合,得到当前下采样特征图;第一个当前特征图为初始特征图。
[0077]
如图7所示,采样增还包括多个残差组件和一个张量拼接模块,并使用silu作为激活函数,残差组件使用恒等映射对上一下采样特征图和当前初始下采样特征图进行融合,得到当前下采样特征图,以防止在卷积过程中发生梯度爆炸和网络退化,从而加强了模型的学习能力,减少了计算瓶颈,减少了内存消耗。
[0078]
基于上述任一实施例,得到下采样特征图,之后还包括:
[0079]
对下采样特征图依次进行卷积处理、归一化处理和最大池化处理。
[0080]
具体地,采样层还可以包括spp结构,如图8所示,spp结构先通过1
×
1卷积处理,然后归一化处理,归一化主要运算步骤为对所有数据求均值与方差,之后像素值与均值求差之后除以方差进行规范化,同时加入偏移因子与尺度变化因子控制归一化后的值,因子的值由模型在训练中学习得到的。然后可以分别采用5/9/13的进行最大池化处理,再进行concat张量拼接,最后使用silu作为激活函数,从而有效避免了对图像区域剪裁、缩放操作导致的图像失真等问题,提高了感受野,解决了模型对图像特征重复提取的问题,大大提高了运算速度,节省了计算成本。
[0081]
基于上述任一实施例,基于特征金字塔中的特征确定鱼体姿态,包括:
[0082]
基于特征金字塔中的特征,确定多个候选检测框;
[0083]
基于非极大值抑制算法,从多个候选检测框中筛选得到鱼体检测框,并基于鱼体检测框进行姿态识别,确定鱼体姿态。
[0084]
具体地,基于特征金字塔中的特征,可以得到多个候选检测框,通常这些候选检测框包含着相同的内容,因此需要从中筛选得到最佳的检测框作为鱼体检测框,以进行姿态识别从而可以简化检测结果。因此,本发明实施例基于非极大抑制算法(nms),从多个候选检测框中筛选得到鱼体检测框,从而可以对于一些遮挡重叠的目标,能够得到一定的改进,且原本未检测出的目标在进行nms操作后能够检测识别到。
[0085]
其中,在进行非极大抑制操作时,可以确定对应的损失值为:giouloss=1-(iou-|ac-u|)/|ac|,其中,iou为交并比,ac为预测框与真实框最小闭包的区域面积,u为预测框与真实框的并集面积。该公式的意思为:先计算两个框的最小闭包区域面积,再计算出iou与闭包区域中不属于两个框的区域占闭包区域的比重,最后用iou减去这个比重得到giou,最终的boundingbox损失为1-giou。
[0086]
基于上述任一实施例,鱼体姿态识别模型的损失值基于如下公式确定:
[0087]
loss=-1/n∑(t[i]log(o[i]) (1-t[i])log(1-o[i]));
[0088]
其中,loss表示鱼体姿态识别模型的损失值,o[i]表示鱼体姿态识别模型对样本鱼体图像进行预测得到的样本预测鱼体姿态,t[i]表示样本鱼体姿态标签。
[0089]
此外,本发明实施例中采用的silu激活函数具备无上界有下界、平滑、非单调的特性,是swish激活函数的一种特例:f(x)=x*σ(x)f

(x)=f(x) σ(x)(1-f(x))。
[0090]
作为一种可选实施例,鱼体姿态识别模型运行环境可以采用google的colab平台,数据和yolov5模型文件存放在google云盘上,训练时将模型导入colab平台运行,yolov5采用6.1版本,python版本为3.7,所需的库文件使用requirements文件安装,云盘容量为15gb,内存容量为8gb,gpu为tesla k80,显存大小为11441mb,训练时开启cuda。
[0091]
yolov5模型的参数设置为:使用yolov5n模型,使用对scratch-low优化后的超参数,epoch设置为100,batch-size设置为16,图片大小设置为640,开启cache,开启agnostic-nms,开启augment,开启fp16 half,optimizer设置为adamw,开启label-smoothing并设置为0.1,conf-thres设置为0.5,iou-thres设置为0.5。
[0092]
开启cache后,在训练前会将数据集导入显存中,不需每次使用时再从硬盘读取,加快了训练速度。agnostic-nms为nms非极大值抑制,开启后可以减少重复且冗余的的目标框,iou-thres为开启非极大值抑制时使用的交并比值,conf-thres为置信度阈值设置,训练结果中只显示置信度大于这个值的目标框,augment为一种基于hsv色彩空间的数据增强方式,开启后可以一定程度的扩充数据量,提高模型鲁棒性。adamw是在adam基础上添加了l2正则化之后得到的梯度下降算法,减轻了过拟合现象,同时收敛速度明显优于adam和sgd。fp16 half是采用半浮点精度,可以在基本不影响模型精度的情况下,大幅减少内存占用,加快运算速度。label-smoothing是一种正则化策略,主要是通过soft one-hot来加入噪声,减少了真实样本标签的类别在计算损失函数时的权重,最终起到抑制过拟合的效果,提高模型的泛化能力。
[0093]
此外,为了提高模型的收敛速度,提高训练效率,减少迭代次数,yolov5模型的超
参数使用evolve超参数进化算法获得,如共进行了100个epoch的针对不同且相互正交的超参数的训练,每个epoch训练到第10代为止。
[0094]
超参数初始值为yolov5中hyp.scratch-low文件中的值,超参数评价指标fitness设置为0.1
×
map(0.5) 0.9
×
map(0.5:0.95),该方法通过最大化fitness指标获得最优的超参数,该方法采用了遗传算法,对于进化过程中的每一代,都选择了之前fitness分数最高的前一代进行突变。所有的超参数将有约20%的几率发生突变变为其他值。
[0095]
优化后的值为:lr0学习率0.008,lr1学习率0.07,学习动量0.85,权重衰减0.0006,预热代数3.4,预热学习动量0.95,预热学习初始偏差学习率0.09,锚框大小0.065,iou阈值0.2,色调变换0.001,饱和度增强0.63,亮度增强0.43,图像旋转概率0.0009,图像平移概率0.12,图像缩放概率0.9,图像翻转概率0.001,图像镜像概率0.5,mosaic图像增强概率0.85,mixup图像混合概率0.05,每一层锚框数量4.6。
[0096]
接着,使用搭载部署好的yolov5 6.1版本的计算机对图片进行训练,该模型自带图像增强算法,可以实现对原始图像的镜像翻转,裁剪拼接,旋转平移,复制混合,调节亮度色相饱和度等来扩充数据集。yolov5算法通过梯度下降迭代更新前向传播中的权重矩阵和偏置,来减小预测框与真实框之间的损失,并根据更新后的权值获得误差代价函数的值,并使用优化器调整学习率,最终得到鱼体姿态识别模型。
[0097]
其中,可以采用如下参数来评价模型的性能:
[0098]
fn:被判定为负样本,但事实上是正样本。
[0099]
fp:被判定为正样本,但事实上是负样本。
[0100]
tn:被判定为负样本,事实上也是负样本。
[0101]
tp:被判定为正样本,事实上也是证样本。
[0102]
交并比iou=a∩b/a∪b。
[0103]
精确度precision=tp/(tp fp)。
[0104]
召回率recall=tp/(tp fn)。
[0105]
f1-score=2(precision
×
recall)/(precision recall)。
[0106]
map=1/m∑ap(i),i∈[0,m),i∈n ,m为类别数,ap(i)为第i类类别的平均精度。
[0107]
map(0.5)表示iou为0.5时的map,tp为iou》0.5的检测框数量,fp为iou《=0.5的检测框数量。
[0108]
map(0.5:0.95)表示在不同iou阈值(从0.5到0.95,步长0.05)上的平均map。
[0109]
yolov5根据深度和宽度分为五种结构,分别为v5n,v5s,v5m,v5l,v5x,本发明实施例可以采用结构最简单的v5n结构,这个结构运行速度最快,和其余四个模型相比,预测精度并没有明显的降低。
[0110]
如图9所示,鱼体姿态识别模型实现了95.1%的精确度,94.9%的召回率,97.8%的map(0.5)分数以及83.0%的map(0.5:0.95)分数,各评价指标在100个epoch处基本均已收敛。通过对模型map分数的评估,进一步证明了本发明实施例提供的方法具有不错的鲁棒性和精度,而且识别速度可高达120fps,能够实现在水下环境中对鱼体进行准实时的移动目标全自动化识别与定位。
[0111]
基于上述任一实施例,本发明还提供一种水下鱼体姿态动态识别方法,如图10所示,该方法包括:
[0112]
首先,获取视频图像数据,并对视频图像数据依次进行图像预处理和图像标注。接着,将标注后的视频图像数据随机划分为训练集和测试集,采用训练集进行模型搭建并训练鱼体姿态检测模型(该模型可以为yolov5-f模型)。
[0113]
在模型训练完成后,采用测试集对模型的性能及准确率进行评价,判断是否达标,若是,则可以对实时视频数据进行姿态识别;若否,则需要继续采集数据对模型进行训练。
[0114]
下面对本发明提供的水下鱼体姿态动态识别装置进行描述,下文描述的水下鱼体姿态动态识别装置与上文描述的水下鱼体姿态动态识别方法可相互对应参照。
[0115]
基于上述任一实施例,本发明还提供一种水下鱼体姿态动态识别装置,如图11所示,该装置包括:
[0116]
确定单元1110,用于确定待识别鱼体图像;
[0117]
识别单元1120,用于基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;
[0118]
所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0119]
基于上述任一实施例,所述识别单元1120,包括:
[0120]
输入单元,用于基于所述鱼体姿态识别模型的输入层,对所述待识别鱼体图像进行数据增强,并对数据增强后得到的多个图像进行拼接,得到所述拼接图像,以及对所述拼接图像进行目标检测,得到所述目标检测框图像;
[0121]
采样单元,用于基于所述鱼体姿态识别模型的采样层,对所述目标检测框图像依次进行切片和卷积操作,得到初始特征图,并对所述初始特征图进行多次下采样,得到下采样特征图;
[0122]
金字塔单元,用于基于所述鱼体姿态识别模型的金字塔层,对上一层的特征图进行上采样后与下一层的特征图进行融合得到第一特征金字塔,以及对下一层的特征图进行下采样后与上一层的特征图进行融合得到第二特征金字塔,第一层的特征图为所述下采样特征图;
[0123]
预测单元,用于基于所述鱼体姿态是识别模型的预测层,根据所述第一特征金字塔和所述第二特征金字塔中的特征,确定所述鱼体姿态。
[0124]
基于上述任一实施例,所述装置还包括,缩放单元,用于对所述拼接图像进行目标检测之前,将所述拼接图像缩放至预设标准尺寸。
[0125]
基于上述任一实施例,所述采样单元,用于:
[0126]
对当前特征图进行下采样,得到当前初始下采样特征图,并基于所述采样层的残差组件对上一下采样特征图和所述当前初始下采样特征图进行融合,得到当前下采样特征图;第一个当前特征图为所述初始特征图。
[0127]
基于上述任一实施例,所述装置还包括:
[0128]
处理单元,用于得到下采样特征图之后,对所述下采样特征图依次进行卷积处理、归一化处理和最大池化处理。
[0129]
基于上述任一实施例,所述识别单元1120,包括:
[0130]
候选单元,用于基于所述特征金字塔中的特征,确定多个候选检测框;
[0131]
筛选单元,用于基于非极大值抑制算法,从多个候选检测框中筛选得到鱼体检测框,并基于所述鱼体检测框进行姿态识别,确定所述鱼体姿态。
[0132]
基于上述任一实施例,所述鱼体姿态识别模型的损失值基于如下公式确定:
[0133]
loss=-1/n∑(t[i]log(o[i]) (1-t[i])log(1-o[i]));
[0134]
其中,loss表示所述鱼体姿态识别模型的损失值,o[i]表示所述鱼体姿态识别模型对样本鱼体图像进行预测得到的样本预测鱼体姿态,t[i]表示所述样本鱼体姿态标签。
[0135]
图12是本发明提供的电子设备的结构示意图,如图12所示,该电子设备可以包括:处理器(processor)1210、存储器(memory)1220、通信接口(communications interface)1230和通信总线1240,其中,处理器1210,存储器1220,通信接口1230通过通信总线1240完成相互间的通信。处理器1210可以调用存储器1220中的逻辑指令,以执行水下鱼体姿态动态识别方法,该方法包括:确定待识别鱼体图像;基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0136]
此外,上述的存储器1220中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0137]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的水下鱼体姿态动态识别方法,该方法包括:确定待识别鱼体图像;基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0138]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的水下鱼体姿态动态识别方法,该方法包括:确定待识别鱼体图像;基于鱼体姿态识别模型,对拼接图像进行目标检测,得到目标检测框图像后,对所述目标检测框图像进行下采样,以及基于下采样后的目标检测框图像生成特征金字塔,并基于所述特征金字塔中的特征确定鱼体姿态;所述拼接图像是对数据增强后的待识别鱼体图像进行拼接后得到的;所述鱼体姿态识别模型基于样本鱼体图像及其样本鱼体姿态标签训练得到。
[0139]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可
以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0140]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0141]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献