本发明涉及海底探索、检测领域,具体涉及一种基于深度学习的近岸海底鱼类检测、跟踪统计方法。
背景技术:
海洋有非常丰富的生物资源;因此,沿海国家正在大力发展海洋牧场,特别是渔业增养殖型海洋牧场。联合国粮食及农业组织,联合国粮农组织记录了2016年海洋牧场的全球食用鱼产量为2870万吨(674亿美元),产量占2016年世界水产养殖总产量的49.5%。当前,近海捕鱼正在被过度开发,水产养殖业也正处于饱和状态;因此,海洋牧场经营被认为是解决渔业资源下降的重要途径。然而,海洋牧场经营也存在一些问题(如过度捕捞、生态系统失衡等)。通过加强对水下生物资源的监测,可以根据水下生物资源的变化来控制捕捞的时机和强度,从而解决上述问题。对于海洋牧场来说,实时监测生物数量可以形成科学渔业管理和可持续鱼类生产的保护策略的基础。此外,鱼类资源统计数据有助于研究人员了解物种丰富度,相应的鱼类资源统计数据可以结合当地的海况进行分析,从而确定适合每个物种生存的条件。因此,该技术具有重要的现实意义。
在过去十年中,渔业管理领域引入了几种跟踪和检测方法。在检测算法中,传统的研究方法是通过融合多传感器和多特征信息提取水下目标的精细特征。例如,ishibashi等人利用光学传感器获取水下目标的特定图像。saini和biswas通过使用自适应阈值检测边缘来检测目标。目前主流的方法是使用水下摄像机捕捉物体,深度学习算法提取特征。faster-rcnn和resnet等深度学习算法已应用于水下生物识别过程,如海参识别(xiaetal.,2018)和鱼类检测算法(cn202010003815.0)。这种检测算法的主要问题是无法识别两帧中的鱼是否是同一动物;因此,需要一个跟踪模型。在跟踪算法中,传统的滤波方法,如粒子滤波、光流法和目标分割,是主要的方法,它们主要是在受控条件下进行测试,如在一个受限的实验室环境中。例如,chuang利用对象分割和对象高度块体立体匹配来跟踪鱼。该方法将鱼分成多个部分进行匹配,忽略了鱼的整体特征。sun提出了一种具有多个静态摄像机和重叠视场的水下监视系统的一致鱼类跟踪策略。采用加速鲁棒特征技术和质心坐标同形映射技术捕获鱼类。然而,这种方法不能识别鱼的种类。romero-ferrero提出了一种自动方法,以跟踪小或大的无标记动物群体中的所有个体。他们的算法对100人以下的群体具有很高的准确率;然而,这种方法必须在理想的实验室环境中执行。meng-che提出了一种鱼类分割与跟踪算法,该算法通过对双局部阈值图像采用直方图反投影的方法,克服了对比度低的问题,保证了鱼类形状边界的精确分割。然而,使用这种方法,鱼的突然移动可能会导致跟踪失败。此外,该算法过于复杂,难以实现实时跟踪。
近年来,人们提出了几种利用机器视觉技术跟踪鱼类丰度和实现鱼类种群自动计数的方法。例如,song等人(2020)提出了一种基于混合神经网络模型的鱼类自动计数方法,以实现远洋鲑鱼养殖中实时、准确、客观、无损的鱼类种群计数。其采用多列卷积神经网络作为前端,捕捉不同感受野的特征信息。同时,后端采用更宽更深的扩张型卷积神经网络,以减少网络传输过程中空间结构信息的损失。最后,构建了混合神经网络模型。然而,这种方法的主要局限性是将鱼视为颗粒,不能对鱼的类型进行分类。marini等人(2018)开发了一种基于遗传规划的基于内容的图像分析方法。然而,当大量鱼类聚集在摄像机前时,拥挤的场景限制了识别效率。当这些聚集特别密集时,个体通常会相互重叠,这增加了假阴性率。
技术实现要素:
上述基于机器视觉的鱼类检测和跟踪方法中,大多数都没有涉及现实海洋牧场恶劣环境中有问题的场景和实际困难。具体来说,它们没有解决多类多目标实时跟踪问题以及水下浑浊度较高难识别的问题。因为现有技术采用传统图像处理时,由于算法复杂度高,导致时间复杂度高,在保持较高准确率的同时,难以完成实时性要求,而最新采用深度学习的技术中,由于无法将目标检测和目标跟踪整合到一起,所以需要进行分步操作,这样需要额外的中间结果的时间开销和存储空间开销,且由于水下环境复杂,导致误识别率较高。
为了解决上述现有技术的不足之处,本发明提供的以下技术方案:
一种基于深度学习的近岸海底鱼类检测、跟踪统计方法,包括以下步骤:
步骤1、获取鱼类图像信息,对所述鱼类图像信息进行预处理,并将预处理后的所述鱼类图像信息送入经过训练的fdt神经网络结构中,经过基础神经网络后,提取三种不同尺度的特征图,其中所述基础神经网络为目标检测网络yolov5,所述目标检测网络采用基于深度学习的并行双分支结构,用于在真实的海洋牧场环境中对鱼类进行实时检测和跟踪;
步骤2、获取三种不同尺度的特征图,并输入到检测分支和跟踪分支,在检测分支和跟踪分支中,通过对特征建模并进行非线性变化,所述检测分支输出图像中鱼的位置和种类;跟踪分支输出图像中鱼的位置、种类以及每个被跟踪鱼的编号id;使用检测分支的输出结果来校正跟踪分支的输出结果,并将矫正后的输出结果作为最终输出结果,所述最终输出结果中记录了每张图片中鱼的位置、类别和编号id;
步骤3、获取所述最终输出结果,并对所述最终输出结果进行在线跟踪;
步骤4、根据在线跟踪结果,使用粒子滤波和km算法来匹配每帧之间的结果,从而对鱼的编号进行匹配,根据识别及跟踪的鱼类,与多类别鱼群的数据关联。
进一步的,在步骤1中,获取鱼类图像信息,对所述鱼类图像信息进行预处理,具体包括:获取采集到的水下实时视频,从所述水下实时视频中剪切出鱼类图像数据集,对所述鱼类图像数据集中的图像进行对比度处理,将对比度处理后的图像由原始尺寸切割到指定尺寸,所述原始尺寸为1920×1080。
进一步的,所述由原始尺寸切割到指定尺寸,具体包括:以图像最长边作为参考边计算缩放因子,通过双线性插值将整个图像缩放到608×342,然后对图像的上下边进行零填充,最后得到裁剪后的图像,其指定尺寸为608×608。
进一步的,对所述鱼类图像数据集中的图像进行对比度处理,具体包括:对rgb通道的直方图进行颜色补偿,然后对补偿后的图像用对比度受限的自适应直方图均衡化clahe处理。
进一步的,对rgb通道的直方图进行颜色补偿,具体包括:
将图像分成rgb三通道,分别计算每个通道的平均值bavg、gavg、ravg,并将三个平均值的最小值作为颜色偏移的校正参数value,value=min{bavg,gavg,ravg};
每个通道的平均值通过如下公式计算:
其中,索引i的范围是0到n-1,索引j的范围是0到m-1;
如果计算结果小于0,则(i,j)位置处的值的每个通道被定义为0;否则,则利用通道平均值和校正参数value来修正像素值。
进一步的,对最终输出结果进行在线跟踪,具体包括:基于热图分数,采用非极大值抑制方法提取后验框;确定热图得分大于阈值的关键点的位置,并根据估计的偏移量和预测框大小计算相对应的后验框;使用在线跟踪算法来实现框链接。
进一步的,使用在线跟踪算法来实现框链接,具体包括:基于第一帧中的检测框,初始化跟踪轨迹集,并设置阈值;使用粒子滤波来预测跟踪轨迹在当前帧中的位置,在随后的帧中,如果re-id特征和iou测量的距离大于阈值,则将这些框链接到跟踪轨迹集中。
进一步的,所述fdt神经网络结构的训练过程如下:将原始重建图像的训练样本张量以及目标真值图像训练张量输入至fdt神经网络结构中,对其进行循环训练,直至网络输出的损失函数低于设定阈值时停止训练。
进一步的,所述损失函数的计算公式如下:
其中,
进一步的,后验框损失
其中,
其中
类别损失
当第i个网格的第j个先验框负责某一真实对象时,由该先验框生成的后验框计算分类损失函数;当对象为真时,
在考虑re-id损失中,将re-id嵌入作为一项分类任务来处理,相同身份的所有对象实例都被视为一个类,在位置(i,j)提取一个身份特征向量,并学习将其映射到一个类分布向量
计算softmax损耗
其中k是类的数量,n是真实后验框的数量。
一种用于水下海底鱼类检测、跟踪统计软件,所述软件检测、跟踪过程为:实时视频采集;经过基础神经网络(yolov5)提取视频中特征;分别输入到检测分支和跟踪分支,进一步的,在两分支中分别对特征建模、进行非线性变化,检测分支输出图片中鱼的位置、种类,其中:1)跟踪分支输出鱼的位置、种类和每个被跟踪鱼的id(编号);2)用检测分支校正跟踪分支的输出作为最后的输出;利用在线跟踪部分,即粒子滤波和km算法来匹配每帧之间的结果,从而对视频中鱼的编号进行匹配。
本发明提出来端到端的神经网络框架,则可以在输入视频的同时,直接输出结果,并在输入端提出了一种图像增强算法,显著提高了图像的准确率。
对于fdt算法,当输入一段水下实时视频时,经过基础神经网络(yolov5)后,会提取处视频中的特征如鱼的纹理、鱼的形状、鱼的大小等,之后将特征分别输入到检测分支和跟踪分支,在两分支中通过对特征建模,进行非线性变化,检测分支输出图片中鱼的位置、种类。跟踪分支输出鱼的位置、种类和每个被跟踪鱼的id(编号)。最后用检测分支校正跟踪分支的输出作为最后的输出。由此可以得出每张图片中的鱼的位置、类别、编号。之后利用在线跟踪部分,即粒子滤波和km算法来匹配每帧之间的结果对视频中鱼的编号进行匹配。
在这过程中将检测和多目标跟踪算法融合到一个框架中,从而可以实现多类别鱼群的跟踪统计,而采用端到端的统一神经网络架构,可以实现在线处理,在输入视频的同时输出统计结果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的经图像预处理之后原图与处理后的比对图;
图2为本发明实施例提供fdt算法架构图;
图3为本发明实施例提供训练和测试阶段过程图;
图4为本发明实施例提供oceaneye软件主界面示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种基于深度学习的近岸海底鱼类检测、跟踪统计方法,应用于鱼类种群统计。
鱼类种群统计技术主要包括两部分,一是对水下鱼类进行准确识别,二是对每一帧中识别出的鱼类进行匹配,形成跟踪轨迹。
第一部分是目标识别任务。目前,在计算机视觉领域有很多目标识别算法已经达到人眼识别的精度,但它们只专注于陆地上的物体识别;且对水下复杂环境的识别精度较低,因为光在水下传播中会出现折射和反射,导致混浊的水中光照不均匀,而且同波长的光衰减率不同,水下环境会发生色彩偏移现象;基于上述原因,水下拍摄的图像存在质量下降的问题,如对比度低、颜色失真和纹理模糊,因此,很难区分海洋动物。
第二部分主要是多目标跟踪任务。这个任务是将两帧中识别的对象进行匹配,确定视频中对象的id。然而,目前的多目标跟踪算法主要集中在单类多目标跟踪。多类多目标跟踪的工作量较少,主流算法是先识别后跟踪的两阶段算法,无法满足实时性要求,目前能够同时识别和跟踪的端到端算法精度较低。此外,许多鱼在大小和外观是相似的,因此很难根据鱼的纹理和大小来区分这种鱼,需要进行许多实验才能创建一个可用的模型;而且,鱼在所有方向上的游动具有不规律性;因此,鱼类变形和遮挡现象会经常发生。
本发明提供的一种基于深度学习的近岸海底鱼类检测、跟踪统计方法,包括以下步骤:
步骤1、获取鱼类图像信息,对所述鱼类图像信息进行预处理,并将预处理后的所述鱼类图像信息送入经过训练的fdt神经网络结构中,经过基础神经网络后,提取三种不同尺度的特征图,其中所述基础神经网络为目标检测网络yolov5,所述目标检测网络采用基于深度学习的并行双分支结构,用于在真实的海洋牧场环境中对鱼类进行实时检测和跟踪;
在此步骤中,将经过步骤1处理后的图片输入到fdt神经网络结构中,经过基础神经网络yolov5后,会提取处图片中的特征,如鱼的纹理,鱼的形状,鱼的大小等;所述fdt神经网络结构如图2所示。
在步骤1中,获取鱼类图像信息,对所述鱼类图像信息进行预处理,具体包括:
获取采集到的水下实时视频,从所述水下实时视频中剪切出鱼类图像数据集,对所述鱼类图像数据集中的图像进行对比度处理,将对比度处理后的图像由原始尺寸切割到指定尺寸,所述原始尺寸为1920×1080;
所述由原始尺寸切割到指定尺寸,具体包括:
以图像最长边作为参考边计算缩放因子,通过双线性插值将整个图像缩放到608×342,然后对图像的上下边进行零填充,最后得到裁剪后的图像,其指定尺寸为608×608;
对所述鱼类图像数据集中的图像进行对比度处理,具体包括:对rgb通道的直方图进行颜色补偿,然后对补偿后的图像用对比度受限的自适应直方图均衡化clahe处理。
通过上述对比度处理,有效地解决了水下颜色失真、对比度低、细节模糊等问题;然后,利用自适应直方图均衡化clahe算法来提高图像对比度,改善颜色偏移、对比度的问题,提高识别的精度。增强前后的图像如图1所示。
对rgb通道的直方图进行颜色补偿,具体包括:
将图像分成rgb三通道,分别计算每个通道的平均值bavg、gavg、ravg,并将三个平均值的最小值作为颜色偏移的校正参数value,value=min{bavg,gavg,ravg};
每个通道的平均值通过如下公式计算:
其中,索引i的范围是0到n-1,索引j的范围是0到m-1;
如果计算结果小于0,则(i,j)位置处的值的每个通道被定义为0;否则,则利用通道平均值和校正参数value来修正像素值。
步骤2、获取三种不同尺度的特征图,并输入到检测分支和跟踪分支,在检测分支和跟踪分支中,通过对特征建模并进行非线性变化,所述检测分支输出图像中鱼的位置和种类;跟踪分支输出图像中鱼的位置、种类以及每个被跟踪鱼的编号id;使用检测分支的输出结果来校正跟踪分支的输出结果,并将矫正后的输出结果作为最终输出结果,所述最终输出结果中记录了每张图片中鱼的位置、类别和编号id;
其中,检测分支和跟踪分支共享同一基础特征提取网络,以减少计算量。跟踪分支的第一个输出尺寸为13×13×45。第一个值13是特征图的高度。第二个值13是特征图的宽度。第三个值45包括每个通道预测的中心点的x坐标和y坐标、后验框的宽度和高度、置信度和9种鱼类的概率。同理,第二次输出的大小为26×26×45,第三次输出的大小为52×52×45。跟踪分支采用一次性mot方法,他有四个输出,分别为中心点、后验框位置、中心偏移和re-id。中心点显示被检测对象的x坐标和y坐标。后验框位置显示了目标框的高度和宽度。中心偏移输出负责更精确地定位目标,用于减少特征图步幅产生的量化误差。re-id用于识别不同帧中是否存在同一目标。然后,利用检测分支地输出校正跟踪分支地输出。在两个分支输出之间匹配目标的中心点。在这里,如果跟踪分支的中心点与检测分支的中心点相同,则跟踪分支输出的目标对应的后验框由检测分支代替。如果检测分支的中心点不包含在跟踪列表中,则将检测目标添加到跟踪列表中。最后,对每个跟踪目标的中心点、后验框、鱼类、re-id进行在线跟踪。
检测和跟踪分支相结合的优点总结如下。只使用一个跟踪分支无法同时跟踪多个类对象。然而,我们可以通过检测分支的附加类输出来识别被跟踪对象的类别。从而实现了多类同步跟踪。此外,检测分支的后验框输出比跟踪分支的后验框输出更准确,提高了跟踪精度和在线跟踪时间。最后,由于水下环境的复杂,比如当两条鱼重叠时,检测分支可以提取更详细的特征来跟踪正确的目标。
步骤3、获取所述最终输出结果,并对所述最终输出结果进行在线跟踪;
对最终输出结果进行在线跟踪,具体包括:基于热图分数,采用非极大值抑制方法提取后验框;确定热图得分大于阈值的关键点的位置,并根据估计的偏移量和预测框大小计算相对应的后验框;使用在线跟踪算法来实现框链接。
使用在线跟踪算法来实现框链接,具体包括:基于第一帧中的检测框,初始化跟踪轨迹集,并设置阈值;使用粒子滤波来预测跟踪轨迹在当前帧中的位置,在随后的帧中,如果re-id特征和iou测量的距离大于阈值,则将这些框链接到跟踪轨迹集中。
在此步骤中,两个平行的分支可以得到后验框和re-id,如图3所示。
步骤4、根据在线跟踪结果,使用粒子滤波和km算法来匹配每帧之间的结果,从而对鱼的编号进行匹配,根据识别及跟踪的鱼类,与多类别鱼群的数据关联。
在上述这个过程中,将检测和多目标跟踪算法融合到一个框架中,从而可以实现多类别鱼群的跟踪统计,而采用端到端的统一神经网络架构,可以实现在线处理,在输入视频的同时输出统计结果。
所述fdt神经网络结构的训练过程如下:将原始重建图像的训练样本张量以及目标真值图像训练张量输入至fdt神经网络结构中,对其进行循环训练,直至网络输出的损失函数低于设定阈值时停止训练。
在上述这个过程中,将检测和多目标跟踪算法融合到一个框架中,从而可以实现多类别鱼群的跟踪统计,而采用端到端的统一神经网络架构,可以实现在线处理,在输入视频的同时输出统计结果。
所述损失函数loss由三部分组成,分别为后验框损失
后验框损失
在上述公式中,同时考虑重叠面积、中心点间距和长宽比,ciou可以在bbox回归问题上取得较好的收敛速度和精度;
其中,
其中,
类别损失
当第i个网格的第j个先验框负责某一真实对象时,由该先验框生成的后验框计算分类损失函数;当对象为真时,
在考虑re-id损失中,将re-id嵌入作为一项分类任务来处理,相同身份的所有对象实例都被视为一个类,在位置(i,j)提取一个身份特征向量,并学习将其映射到一个类分布向量
计算softmax损耗
其中k是类的数量,n是真实后验框的数量。
在本发明一个更为优选的实施例中,还提供了一种用于水下海底鱼类检测、跟踪统计软件,所述软件基于上述算法;所述软件界面如图4所示,具体的,通过云存储的方式,点击输入视频,实时展示处理后的视频及相应的各类别统计结果。当输入一段水下实时视频时,经过基础神经网络(yolov5)后,会提取处视频中的特征,如鱼的纹理,鱼的形状,鱼的大小等,之后将特征分别输入到检测分支和跟踪分支,在两分支中通过对特征建模,进行非线性变化,检测分支输出图片中鱼的位置、种类。跟踪分支输出鱼的位置、种类和每个被跟踪鱼的id(编号)。最后用检测分支校正跟踪分支的输出作为最后的输出。由此可以得出每张图片中的鱼的位置、类别、编号。之后利用在线跟踪部分,即粒子滤波和km算法来匹配每帧之间的结果,从而对视频中鱼的编号进行匹配。在这过程中将检测和多目标跟踪算法融合到一个框架中,从而可以实现多类别鱼群的跟踪统计,而采用端到端的统一神经网络架构,可以实现在线处理,在输入视频的同时输出统计结果。
更进一步的,所述软件检测、跟踪过程为:实时视频采集;经过基础神经网络(yolov5)提取视频中特征;分别输入到检测分支和跟踪分支,进一步的,在两分支中分别对特征建模、进行非线性变化,检测分支输出图片中鱼的位置、种类,其中:1跟踪分支输出鱼的位置、种类和每个被跟踪鱼的id(编号);2用检测分支校正跟踪分支的输出作为最后的输出;利用在线跟踪部分,即粒子滤波和km算法来匹配每帧之间的结果,从而对视频中鱼的编号进行匹配。
以上只通过说明的方式描述了本发明的某些示范性实施例,毋庸置疑,对于本领域的普通技术人员,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式对所描述的实施例进行修正。因此,上述附图和描述在本质上是说明性的,不应理解为对本发明权利要求保护范围的限制。