具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在部分实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请实施例提供了一种鱼类监测方法、装置、设备及存储介质,其中,该方法通过获取鱼群的多张拍摄图像,并生成多张拍摄图像对应的二值图像,根据二值图像,确定多张拍摄图像中的至少一张目标图像,目标图像的清晰度高于其他拍摄图像的清晰度,然后根据目标图像,生成单个鱼体的检测图像,将每张检测图像输入训练好的图像预测模型,输出每张检测图像对应反面的预测图像,对单个鱼体对应的检测图像和预测图像进行合成,生成3D图像,之后根据3D图像,获得单个鱼体的尺寸以及重量,基于各个鱼体的尺寸和重量,确定鱼类生长信息,相比于通过捕鱼来预估鱼群的生长情况,提高了鱼类监测的效率和可靠性。
请参阅图1,图1是本申请实施例提供的鱼类监测方法的流程示意图,该方法可以应用于鱼类监测装置,或应用于包括鱼类监测装置的计算机设备,本申请实施例中不作任何限制。
如图1所示,本申请实施例提供的鱼类监测方法包括步骤S101至步骤S107。
S101、获取鱼群的多张拍摄图像。
为了对某一水域内鱼群的生长情况进行监测,示例性的,通过摄像装置对鱼群进行拍摄,获得鱼群的多张拍摄图像。其中,摄像装置包括但不限于水下摄像机、深度相机等设备。
S102、生成所述多张拍摄图像对应的二值图像,根据所述二值图像,确定所述多张拍摄图像中的至少一张目标图像,所述目标图像的清晰度高于其他拍摄图像的清晰度。
获得多张拍摄图像后,对每一张拍摄图像进行二值化处理,生成每一张拍摄图像对应的二值图像。
在一些实施例中,如图2所示,所述步骤S102可以包括子步骤S1021和子步骤S1022。
S1021、根据所述多张拍摄图像对应的灰度信息,确定目标灰度值;
S1022、根据所述目标灰度值,对每张所述拍摄图像进行图像二值化处理,获得对应的所述二值图像。
示例性的,获得每一张拍摄图像的各个像素点的灰度值,根据各张拍摄图像的各个像素点的灰度值,确定目标灰度值。之后,基于确定的目标灰度值,若拍摄图像中像素点的灰度值大于或等于目标灰度值,则将该像素点对应的像素值标记为1,若像素点的灰度值小于目标灰度值,则将像素点对应的像素值标记为0,获得拍摄图像对应的二值图像。
在一些实施例中,所述根据所述多张拍摄图像对应的灰度信息,确定目标灰度值,包括:
计算每张所述拍摄图像的各个像素点的灰度值的平均值;
将所述多张拍摄图像对应的多个所述平均值进行均值计算,获得所述目标灰度值。
获得每一张拍摄图像的各个像素点的灰度值之后,首先计算每一张拍摄图像的各个像素点的灰度值的平均值,从而获得多张拍摄图像对应的多个平均值,然后将多张拍摄图像对应的多个平均值进行均值计算,得到一个灰度均值,将该灰度均值确定为目标灰度值。
之后,基于确定的目标灰度值,对每一张拍摄图像进行图像二值化处理,获得每一张拍摄图像对应的二值图像。
在一些实施例中,对每一张拍摄图像进行鱼体轮廓提取,获得鱼体轮廓图像,然后计算每一张鱼体轮廓图像的各个像素点的灰度值的平均值,将各张鱼体轮廓图像对应的灰度值的平均值进行均值计算,得到目标灰度值。之后,基于确定的目标灰度值,对每一张拍摄图像进行图像二值化处理,获得每一张拍摄图像对应的二值图像。
需要说明的是,生成二值图像的方式不限于上述列举的方式,本申请中不作具体限制。
每一张拍摄图像对应的二值图像之后,基于各张二值图像,从多张拍摄图像中选择清晰度高的至少一张拍摄图像,确定为目标图像,其中,目标图像的清晰度高于其他未选择的拍摄图像的清晰度。
示例性的,获得每一张拍摄图像对应的二值图像之后,对各张二值图像中像素值为1的像素点进行计数,获得每张二值图像对应的像素值为1的像素点数量。像素值为1的像素点数量越多的二值图像,其对应的拍摄图像的清晰度最高。
通过将清晰度高的拍摄图像作为目标图像,进而基于目标图像来监测鱼类生长信息,可以确保鱼类监测的可靠性。
S103、根据所述目标图像,生成单个鱼体的检测图像。
确定了至少一张目标图像后,对于每一张目标图像,由于目标图像中包括至少一条鱼体对象,分别获得其中单个鱼体的图像。为了便于区分描述,下文将单个鱼体的图像称为检测图像。
在一些实施例中,所述根据所述目标图像,生成单个鱼体的检测图像,包括:
对所述目标图像进行单个鱼体轮廓提取,基于提取的每个所述轮廓,生成对应的所述单个鱼体的所述检测图像。
示例性的,对于目标图像中包括的至少一条鱼体对象,对目标图像进行图像中的单个鱼体轮廓提取,然后根据提取的每个鱼体轮廓,生成对应的单个鱼体的检测图像。例如,如图3所示,图3为其中一单个鱼体的检测图像。通过该方式,获得多张单个鱼体的检测图像。
S104、将每张所述检测图像输入训练好的图像预测模型,输出每张所述检测图像对应反面的预测图像。
示例性的,可以通过CNN(Convolutional Neural Networks,卷积神经网络)、SVM(Support Vector Machine,支持向量机)、SSD(Single Shot MultiBox Detector,单步多框目标检测)等算法进行图像预测模型建模。然后,对图像预测模型进行模型训练,得到训练好的图像预测模型。
在模型训练阶段,首先获得多对样本,其中,每一对样本包括同一鱼体对象对应的相对两面的图像,比如鱼体两相对侧面的图像a与图像b。
然后,将每一对样本中的其中之一图像输入图像预测模型,通过图像预测模型处理,输出每一对样本图像中的其中之一图像对应反面的预测图像。比如,将一对样本中的图像a输入图像预测模型,通过图像预测模型输出该图像a对应反面的图像a´,图像a´为图像b的预测图像。
并且,获得图像a´与图像b的灰度信息,例如,获得图像a´与图像b中各像素点的灰度值。通过上述方式,可以获得各样本图像及其对应预测图像的灰度信息,根据多对灰度信息,可以确定图像预测模型的损失函数值。
示例性的,计算样本图像与其对应预测图像的每一对像素点的灰度值之差的平方值,将各对像素点对应的灰度值之差的平方值求和,获得图像预测模型的损失函数值。
若图像预测模型对应的损失函数值未达到收敛,说明图像预测模型还未收敛,此时,继续对图像预测模型进行模型训练,按照上述方式继续确定图像预测模型最新的损失函数值,重复操作直至确定图像预测模型的损失函数值达到收敛,说明图像预测模型已收敛,此时,结束对图像预测模型的训练操作,获得训练好的图像预测模型。
之后,调用训练好的图像预测模型,将获得的单个鱼体的检测图像输入训练好的图像预测模型,输出单个鱼体的检测图像对应反面的预测图像。例如,将图3所示的检测图像输入训练好的图像预测模型,输出如图4所示的预测图像。
S105、对所述单个鱼体对应的所述检测图像和所述预测图像进行合成,生成3D图像。
例如,将图3所示的检测图像与图4所示的预测图像进行图像拼接合成处理,生成相应的3D图像。
在一些实施例中,所述对所述单个鱼体对应的所述检测图像和所述预测图像进行合成,生成3D图像,包括:
将所述单个鱼体对应的所述检测图像和所述预测图像转换至同一坐标系中,在所述同一坐标系中对所述检测图像和所述预测图像进行配准,并对配准后的所述检测图像和所述预测图像进行合成,生成所述3D图像。
仍以图3所示的检测图像与图4所示的预测图像为例,首先,将这一对检测图像和预测图像转换至同一坐标系中,其中,该同一坐标系包括但不限于世界坐标系、绝对坐标系等,从而获得检测图像和预测图像在同一坐标系中的空间坐标。
示例性的,为了获得检测图像和预测图像在同一坐标系中的空间坐标,先获得摄像装置的内参矩阵,摄像装置的内参矩阵反映了摄像装置自身的属性,可以理解的是,不同摄像装置对应的内参矩阵也不一样。基于摄像装置的内参矩阵,求得内参矩阵的逆矩阵,然后通过将逆矩阵乘以检测图像对应的像素坐标,获得检测图像在同一坐标系中的空间坐标。同理,将逆矩阵乘以预测图像对应的像素坐标,获得预测图像在同一坐标系中的空间坐标。
获得预测图像在同一坐标系中的空间坐标后,对预测图像进行翻转,获得翻转后的预测图像在同一坐标系中的空间坐标。例如,基于旋转矩阵,将预测图像在同一坐标系中的空间坐标乘以旋转矩阵,得到翻转后的预测图像在同一坐标系中的空间坐标。
之后,基于检测图像在同一坐标系中的空间坐标,以及翻转后的预测图像在同一坐标系中的空间坐标,对检测图像和翻转后的预测图像进行配准拼接,合成一个完整的3D图像。示例性的,使用ICP(Iterative Closest Point,迭代最近点)算法对检测图像和翻转后的预测图像进行配准,并进行拼接合成3D图像。
通过上述方式,就可以获得多张单个鱼体的3D图像。
S106、根据所述3D图像,获得所述单个鱼体的尺寸以及重量。
获得多张单个鱼体对应的3D图像后,根据其中每一张3D图像,预测每一张3D图像对应的单个鱼体的尺寸以及重量。
在一些实施例中,如图5所示,所述步骤S106可以包括子步骤S1061和子步骤S1062。
S1061、将所述3D图像输入训练好的鱼体识别预测模型,输出所述3D图像对应的所述单个鱼体的类别、以及所述单个鱼体的尺寸;
S1062、根据预设的各种类别鱼体对应的尺寸与重量关联关系,确定所述单个鱼体的重量。
在进行单个鱼体的重量预测之前,先进行鱼体识别预测模型建模。然后,对鱼体识别预测模型进行模型训练,得到训练好的鱼体识别预测模型。
在一些实施例中,如图6所示,所述步骤S1061之前可以包括步骤S108和步骤S109。
S108、获取多张3D样本图像,所述3D样本图像包含标签信息,所述标签信息包括鱼体类别信息、鱼体尺寸信息;
S109、将所述3D样本图像输入鱼体识别预测模型,对所述鱼体识别预测模型进行模型训练,直至所述鱼体识别预测模型收敛,获得训练好的所述鱼体识别预测模型。
在鱼体识别预测模型训练阶段,首先获取多张鱼体对应的3D图像,并对这些3D图像进行标签标注,生成包含标签信息的3D样本图像。其中,标签信息包括但不限于鱼体类别信息、鱼体尺寸信息等。
之后,将获得的3D样本图像作为鱼体识别预测模型的输入,通过3D样本图像对该鱼体识别预测模型进行模型训练,直至该鱼体识别预测模型收敛,获得训练好的鱼体识别预测模型。鱼体识别预测模型的具体训练过程可参考上述图像预测模型的训练过程,故在此不再赘述。
通过上述步骤获得多张单个鱼体的3D图像后,调用训练好的鱼体识别预测模型,将3D图像输入训练好的鱼体识别预测模型,输出3D图像对应的单个鱼体的类别、以及单个鱼体的尺寸等预测信息。
示例性的,预先通过测量大量各种类别鱼体的尺寸和重量数据,基于各种类别鱼体的尺寸和重量数据,生成各种类别鱼体对应的尺寸与重量关联关系。在通过训练好的鱼体识别预测模型获得单个鱼体的类别、以及单个鱼体的尺寸之后,根据上述生成的各种类别鱼体对应的尺寸与重量关联关系,确定单个鱼体的重量。
需要说明的是,除了上述获得单个鱼体的重量的方式以外,也可以通过其他方式比如通过训练好的鱼体重量预测模型来获得单个鱼体的重量,本申请中不作具体限制。
S107、基于各个鱼体的所述尺寸和所述重量,确定鱼类生长信息。
获得了各个鱼体的类别、尺寸、以及重量信息后,可以根据各个鱼体的类别、尺寸、以及重量信息,确定出鱼群中各种类别鱼体的生长信息。
示例性的,可以根据各个鱼体的类别、尺寸、以及重量信息,生成鱼类生长报告。其中,该报告中包括但不限于鱼体的类别、尺寸、重量信息,以及鱼体捕捞分析信息,比如,适合捕捞、不适合捕捞等信息。
上述实施例通过获取鱼群的多张拍摄图像,并生成多张拍摄图像对应的二值图像,根据二值图像,确定多张拍摄图像中的至少一张目标图像,目标图像的清晰度高于其他拍摄图像的清晰度,然后根据目标图像,生成单个鱼体的检测图像,将每张检测图像输入训练好的图像预测模型,输出每张检测图像对应反面的预测图像,对单个鱼体对应的检测图像和预测图像进行合成,生成3D图像,之后根据3D图像,获得单个鱼体的尺寸以及重量,基于各个鱼体的尺寸和重量,确定鱼类生长信息,相比于通过捕鱼来预估鱼群的生长情况,提高了鱼类监测的效率和可靠性。
请参阅图7,图7为本申请实施例提供的一种鱼类监测装置的的示意性框图。
如图7所示,该鱼类监测装置200可以包括处理器211和存储器212,处理器211和存储器212通过总线连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器211可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。
具体地,存储器212可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。存储器212中存储有供处理器211执行的各种计算机程序。
其中,所述处理器211用于运行存储在存储器处理器211中的计算机程序,并在执行所述计算机程序时实现如下步骤:
获取鱼群的多张拍摄图像;
生成所述多张拍摄图像对应的二值图像,根据所述二值图像,确定所述多张拍摄图像中的至少一张目标图像,所述目标图像的清晰度高于其他拍摄图像的清晰度;
根据所述目标图像,生成单个鱼体的检测图像;
将每张所述检测图像输入训练好的图像预测模型,输出每张所述检测图像对应反面的预测图像;
对所述单个鱼体对应的所述检测图像和所述预测图像进行合成,生成3D图像;
根据所述3D图像,获得所述单个鱼体的尺寸以及重量;
基于各个鱼体的所述尺寸和所述重量,确定鱼类生长信息。
在一些实施例中,处理器211在实现所述根据所述3D图像,获得所述单个鱼体的尺寸以及重量时,用于实现:
将所述3D图像输入训练好的鱼体识别预测模型,输出所述3D图像对应的所述单个鱼体的类别、以及所述单个鱼体的尺寸;
根据预设的各种类别鱼体对应的尺寸与重量关联关系,确定所述单个鱼体的重量。
在一些实施例中,处理器211在实现所述将所述3D图像输入训练好的鱼体识别预测模型,输出所述3D图像对应的所述单个鱼体的类别、以及所述单个鱼体的尺寸之前,用于实现:
获取多张3D样本图像,所述3D样本图像包含标签信息,所述标签信息包括鱼体类别信息、鱼体尺寸信息;
将所述3D样本图像输入鱼体识别预测模型,对所述鱼体识别预测模型进行模型训练,直至所述鱼体识别预测模型收敛,获得训练好的所述鱼体识别预测模型。
在一些实施例中,处理器211在实现所述对所述单个鱼体对应的所述检测图像和所述预测图像进行合成,生成3D图像时,用于实现:
将所述单个鱼体对应的所述检测图像和所述预测图像转换至同一坐标系中,在所述同一坐标系中对所述检测图像和所述预测图像进行配准,并对配准后的所述检测图像和所述预测图像进行合成,生成所述3D图像。
在一些实施例中,处理器211在实现所述生成所述多张拍摄图像对应的二值图像时,用于实现:
根据所述多张拍摄图像对应的灰度信息,确定目标灰度值;
根据所述目标灰度值,对每张所述拍摄图像进行图像二值化处理,获得对应的所述二值图像。
在一些实施例中,处理器211在实现所述根据所述多张拍摄图像对应的灰度信息,确定目标灰度值时,用于实现:
计算每张所述拍摄图像的各个像素点的灰度值的平均值;
将所述多张拍摄图像对应的多个所述平均值进行均值计算,获得所述目标灰度值。
在一些实施例中,处理器211在实现所述根据所述目标图像,生成单个鱼体的检测图像时,用于实现:
对所述目标图像进行单个鱼体轮廓提取,基于提取的每个所述轮廓,生成对应的所述单个鱼体的所述检测图像。
该鱼类监测装置200可以执行本申请实施例所提供的任一种鱼类监测方法,因此,可以实现本申请实施例所提供的任一种鱼类监测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
此外,本申请的实施例中还提供一种计算机设备,该计算机设备包括鱼类监测装置,示例性的,该鱼类监测装置可以为上述实施例中的鱼类监测装置200。计算机设备可以执行本申请实施例所提供的任一种鱼类监测方法,因此,可以实现本申请实施例所提供的任一种鱼类监测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请的实施例中还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的鱼类监测方法的步骤。例如,该计算机程序被处理器加载,可以执行如下步骤:
获取鱼群的多张拍摄图像;
生成所述多张拍摄图像对应的二值图像,根据所述二值图像,确定所述多张拍摄图像中的至少一张目标图像,所述目标图像的清晰度高于其他拍摄图像的清晰度;
根据所述目标图像,生成单个鱼体的检测图像;
将每张所述检测图像输入训练好的图像预测模型,输出每张所述检测图像对应反面的预测图像;
对所述单个鱼体对应的所述检测图像和所述预测图像进行合成,生成3D图像;
根据所述3D图像,获得所述单个鱼体的尺寸以及重量;
基于各个鱼体的所述尺寸和所述重量,确定鱼类生长信息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,所述存储介质可以是前述实施例的鱼类监测装置或计算机设备的内部存储单元,例如鱼类监测装置或计算机设备的硬盘或内存。所述存储介质也可以是鱼类监测装置或计算机设备的外部存储设备,例如鱼类监测装置或计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种鱼类监测方法,因此,可以实现本申请实施例所提供的任一种鱼类监测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。