发明内容
本申请提供了一种鱼姿势识别方法、装置、设备及存储介质,用以能够准确识别鱼姿势,为后续对鱼的科学喂养提供重要参考。
第一方面,本申请实施例提供了一种鱼姿势识别方法,包括:
获取鱼图像;
提取所述鱼图像中鱼的特征,根据提取到的鱼的特征,判断所述鱼图像中鱼的姿势是否属于设定的合理姿势,获得判断结果;
将所述判断结果作为鱼姿势识别结果。
可选地,提取所述鱼图像中鱼的特征,根据提取到的鱼的特征,判断所述鱼图像中鱼的姿势是否是否属于设定的合理姿势,获得判断结果,包括:
将所述鱼图像输入到卷积神经网络模型;
通过所述卷积神经网络模型中的N个网络层级,依次提取所述鱼图像的N个网络层级的特征,并对所述N个网络层级的特征进行整合,得到所述鱼的特征,根据所述鱼的特征判断所述鱼图像中鱼的姿势是否属于设定的合理姿势后,输出判断结果。
可选地,提取所述鱼图像中鱼的特征,根据提取到的鱼的特征之后,所述鱼姿势识别方法还包括:
通过所述卷积神经网络模型根据所述鱼的特征,对所述鱼图像添加用于框选出鱼所在位置的边框。
可选地,所述卷积神经网络模型的训练过程包括:
获取样本图像集合,其中,所述样本图像集合中包括M个样本图像以及每个所述样本图像的鱼姿势类别标识,所述鱼姿势类别标识用于指示所述样本图像中鱼的姿势是否为设定的合理姿势,S个样本图像组成一组样本图像;
分别对所述样本图像集合中的每组样本图像执行以下训练过程:
分别对一组样本图像中的每个样本图像进行以下处理,将所述样本图像输入至初始卷积神经网络模型,依次采用N个网络层级,对所述样本图像进行特征提取,获得N个网络层级的特征,并对所述N个网络层级的特征进行整合,得到所述样本图像中鱼的特征;
根据所述一组样本图像中每个所述样本图像中的鱼的特征,获得所述一组样本图像中鱼的姿势不属于设定的合理姿势的概率值;
根据所述概率值和所述一组样本图像的鱼姿势类别标识,计算损失函数,根据所述损失函数,将梯度反向传播到所述N个网络层级的每一层,优化所述初始卷积神经网络模型的参数后,从所述样本图像集合中获取下一组样本图像,重复执行所述训练过程,直至所述损失函数趋于稳定时,将所述初始卷积神经网络模型作为最终的所述卷积神经网络模型。
可选地,将所述样本图像输入至初始卷积神经网络模型,依次采用N个网络层级,对所述样本图像进行特征提取,获得N个网络层级的特征,包括:
采用第1个网络层级对所述样本图像进行卷积和下采样,获得所述样本图像第1个网络层级的特征;
采用第i个网络层级,对所述样本图像第i-1个网络层级的特征,进行卷积和下采样,获得所述样本图像第i个网络层级的特征,其中,所述i的取值为大于1且小于或等于N。
可选地,将所述样本图像输入至初始卷积神经网络模型,依次采用N个网络层级,对所述样本图像进行特征提取,获得N个网络层级的特征,包括:
采用第1个网络层级对所述样本图像进行卷积和下采样,获得所述样本图像第1个网络层级的特征;
采用第i个网络层级,对所述样本图像第i-1个网络层级的特征,进行卷积和下采样,获得所述样本图像第i个网络层级的特征,其中,所述i的取值为大于1且小于N;
采用第N个网络层级,对所述样本图像的第N-1个网络层级的特征,进行卷积后,获得所述样本图像第N个网络层级的特征。
可选地,获取鱼图像,包括:
获取摄像头拍摄获得的所述鱼图像,其中,所述摄像头置于内部中空且透明的容器的底部,所述摄像头的镜面平行于所述容器的顶部,所述容器置于养鱼用集装箱内,所述集装箱的顶面设置背景板,所述背景板和所述容器的顶部形成鱼的行进通道。
第二方面,本申请实施例中提供了一种鱼姿势识别装置,包括:
获取模块,用于获取鱼图像;
处理模块,用于提取所述鱼图像中鱼的特征,根据提取到的鱼的特征,判断所述鱼图像中鱼的姿势是否属于设定的合理姿势,获得判断结果;
识别模块,用于将所述判断结果作为鱼姿势识别结果。
第三方面,本申请实施例中提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的鱼姿势识别方法。
第四方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的鱼姿势识别方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在获取鱼图像后,通过提取鱼图像中鱼的特征,根据该鱼的特征判断鱼的姿势是否属于设定的合理姿势,从而能够达到对鱼姿势进行识别的目的,以能够在后续对鱼的科学喂养中提供重要参考数据,比如,对于鱼姿势不属于设定的合理姿势的鱼图像进行舍弃,以避免后续科学喂养时估算数据不准确。并且,该方法不会使鱼产生应激反应,对鱼无伤害。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,为了能够为集装箱养殖场景中,鱼的科学喂养提供准确的参考数据,提出了一种鱼姿势识别方法,该方法能够准确识别获取的鱼图像中鱼的姿势是否为合理姿势,将该识别结果用于后续对鱼的科学喂养。
具体地,如图1所示,对鱼姿势进行识别的具体过程如下:
步骤101,获取鱼图像。
一个具体实施例中,获取摄像头拍摄获得的鱼图像。
其中,摄像头置于内部中空且透明的容器的底部,该摄像头的镜面平行于该容器的顶部,该容器置于养鱼用集装箱内,该集装箱的顶面设置背景板,该背景板和该容器的顶部形成鱼的行进通道。摄像头拍摄获得在该行进通道中通过的鱼,获得鱼图像。
例如,如图2所示,在水中放置透明玻璃缸201和背景板202,玻璃缸顶部和背景板之间的间距为10公分,从而在玻璃缸顶部和背景板之间形成能够让鱼通过的行进通道,该透明玻璃缸中放置摄像头203,该摄像头能够拍摄到透明玻璃缸的顶部与背景板之间的行进通道。
步骤102,提取鱼图像中鱼的特征,根据提取到的鱼的特征,判断该鱼图像中鱼的姿势是否属于设定的合理姿势,获得判断结果。
其中,设定的合理姿势,是指鱼的姿势便于后续科学喂养数据的确定,同理,不合理姿势,是指鱼的姿势不便于后续科学喂养数据的确定。具体地,如果鱼的姿势属于预先规定的便于科学喂养数据确定的合理姿势的集合,则认为鱼的姿势为合理姿势,反之,如果鱼的姿势不属于预先规定的便于科学喂养数据确定的合理姿势的集合,则认为鱼的姿势不属于合理姿势。
例如,假设为了便于后续科学喂养过程中,对鱼进行估重,规定合理姿势为鱼的侧面平行于摄像头镜头平面的姿势,则当拍摄到的鱼图像中鱼的侧面被完整拍摄到,则认为该鱼图像中鱼的姿势属于合理姿势,否则,则认为该鱼图像中鱼的姿势不属于合理姿势。
一个具体实施例中,采用卷积神经网络模型提取鱼的特征,并识别鱼的姿势是否属于设定的合理姿势,具体过程如下:将鱼图像输入到卷积神经网络模型;通过该卷积神经网络模型中的N个网络层级,依次提取该鱼图像的N个网络层级的特征,并对该N个网络层级的特征进行整合,得到鱼的特征,根据该鱼的特征判断该鱼图像中鱼的姿势是否是否属于设定的合理姿势后,输出判断结果。
需要说明的是,这里对卷积神经网络模型具体所采用的算法模型不做限制。一个具体实施例中,卷积神经网络模型采用version-slim(变体-迭代最小化)检测网络模型。
具体地,根据所选用的卷积神经网络模型的不同,获得N个网络层级的特征的具体实施过程也不同,以下列举两个具体实施过程进行说明:
第一,采用第1个网络层级对样本图像进行卷积和下采样,获得样本图像第1个网络层级的特征;采用第i个网络层级,对该样本图像第i-1个网络层级的特征,进行卷积和下采样,获得该样本图像第i个网络层级的特征,其中,i的取值为大于1且小于或等于N。该实施过程中,共进行N次下采样,获得N次下采样后的特征,将该N次下采样后的特征作为后续鱼姿势判断的基础。
第二,采用第1个网络层级对样本图像进行卷积和下采样,获得样本图像第1个网络层级的特征;采用第i个网络层级,对样本图像第i-1个网络层级的特征,进行卷积和下采样,获得该样本图像第i个网络层级的特征,其中,i的取值为大于1且小于N;采用第N个网络层级,对样本图像的第N-1个网络层级的特征,进行卷积后,获得该样本图像第N个网络层级的特征。该实施过程中,共进行N-1次下采样,获得N-1次下采样后的特征,最后由第N个网络层级基于第N-1次下采样后的特征,对整个图像的信息进行整合处理,获得更具有表达力的特征。
一个具体实施例中,卷积神经网络模型在提取到鱼的特征后,还可以进一步根据提取到的鱼的特征,对鱼图像添加用于框选出鱼所在位置的边框,从而能够准确定位到鱼图像中的鱼,以便于后续对鱼的其余特征的识别或估计。
步骤103,将该判断结果作为鱼姿势识别结果。
具体地,若判断结果为鱼图像中鱼的姿势属于设定的合理姿势,则鱼姿势识别结果为该鱼图像中鱼的姿势不合理,若判断结果为鱼的姿势不属于设定的合理姿势,则鱼姿势识别结果为该鱼图像中鱼的姿势合理。
一个具体实施例中,如图3所示,卷积神经网络模型的训练过程主要如下:
步骤301,获取样本图像集合,其中,该样本图像集合中包括M个样本图像以及每个样本图像的鱼姿势类别标识,该鱼姿势类别标识用于指示该样本图像中鱼的姿势是否合理,S个样本图像组成一组样本图像;
分别对样本图像集合中的每组样本图像执行以下训练过程:
步骤302,分别对一组样本图像中的每个样本图像进行以下处理,将样本图像输入至初始卷积神经网络模型,依次采用N个网络层级,对该样本图像进行特征提取,获得N个网络层级的特征,并对该N个网络层级的特征进行整合,得到该样本图像中鱼的特征;
步骤303,根据该一组样本图像中每个样本图像中鱼的特征,获得该一组样本图像中鱼的姿势不属于设定的合理姿势的概率值;
步骤304,根据该概率值和该一组样本图像的鱼姿势类别标识,计算损失函数,根据该损失函数,将梯度反向传播到N个网络层级的每一层,优化该初始卷积神经网络模型的参数后,从样本图像集合中获取下一组样本图像。
重复执行步骤302至步骤304,直至损失函数趋于稳定时,将初始卷积神经网络模型作为最终的卷积神经网络模型。
假设定义第一卷积模块为依次包括一个3×3卷积层和一个归一化层,表示为conv_bn模块,结构如图4所示;定义第二卷积模块为依次包括一个3×3的卷积层、一个归一化层(bn)、一个1×1的卷积层和一个归一化层,表示为conv_dw模块,结构如图5所示,这里1×1的卷积层放在3×3的卷积层后面,是为了增加非线性,提供网络的表达能力;假设定义第三卷积模块为包括一个3×3的卷积层。
基于以上定义,假设卷积神经网络模型的主干网络为5层,即N等于5,第1个网络层级(表示为conv1)依次包括一个第一卷积模块和一个第二卷积模块;第2个网络层级(表示为conv2)依次包括两个第二卷积模块;第3个网络层级(表示为conv3)依次包括四个第二卷积模块;第4个网络层级(表示为conv4)依次包括三个第二卷积模块;第5个网络层级(表示为conv5)依次包括两个第二卷积模块。
或者,假设卷积神经网络模型的主干网络为6层,即N等于6,第1个网络层级依次包括一个第一卷积模块和一个第二卷积模块;第2个网络层级依次包括两个第二卷积模块;第3个网络层级依次包括四个第二卷积模块;第4个网络层级依次包括三个第二卷积模块;第5个网络层级依次包括两个第二卷积模块;第6个网络层级依次包括3个第三卷积模块。也就是,该假设是在N等于5的卷积神经网络模型的基础上增加了第6个网络层级(表示为extras)。
假设N等于6的卷积神经网络模型所涉及到的各参数如表1所示。
表1
其中,conv1、conv2、conv3、conv4和conv5共下采样5次,conv1、conv2、conv3、conv4和conv5顺序输出的分别为每次下采样后的特征,每次下采样后分辨率会下降2倍。随着网络层级的加深,提取到的特征也更加高级全面。为了充分提取图像的特征,每个网络层级中均使用了一个或多个conv_dw模块。为了提升速度,每个网络层级的输出通道数最多不超过256。
一个具体实施例中,在训练卷积神经网络模型的过程中,除了在样本图像中标记鱼的姿势是合理外,在样本图像中对鱼的位置打标签,将打标签后的样本图像输入到初始卷积神经网络模型中进行训练,使得训练得到的最终的卷积神经网络模型在提取到鱼的特征后,能够进一步根据提取到的该鱼的特征,预测鱼的中心点、宽和高,从而根据预测得到的信息框选出鱼所在位置的边框,通过框位置回归预测,验证为样本图像中的鱼添加的边框是否与打标签的位置相符。
具体地,对于步骤303,对conv3、conv4、conv5和extras层提取的特征,分别进行鱼姿势是否合理的分类预测,并将得到的4个分类预测结果(即合理的概率值)进行融合,例如对4个分类预测结果(即合理的概率值)进行加权和,得到样本图像中鱼姿势是否合理最终的分类预测结果(即最终预测为合理的概率值)。
同理,在样本图像中对鱼的位置打标签的情况下,对conv3、conv4、conv5和extras层提取的特征,分别进行边框位置回归预测,并对得到的4个预测结果进行融合,例如,对4个预测结果进行加权和,得到模型预测的样本图像中鱼所在位置的边框信息。
根据样本图像的鱼姿势类别标识和该样本图像中鱼姿势是否合理最终的分类预测结果(即最终预测为合理的概率值),计算损失函数A,将梯度反向传播到6个网络层级的每一层,优化卷积神经网络模型中的参数后,重复训练过程,直至损失函数A趋于稳定,即网络模型收敛。
同理,根据样本图像中预先打标的鱼的位置标签,以及样本图像预测的鱼所在位置的边框信息,计算损失函数B,将梯度反向传播到6个网络层级的每一层,优化卷积神经网络模型中的参数后,重复训练过程,直至损失函数B趋于稳定,即网络模型收敛。
在同时满足损失函数A和损失函数B均趋于稳定的情况下,认为训练结束,得到最终的卷积神经网络模型。
本申请实施例提供的该方法,在获取鱼图像后,通过提取鱼图像中鱼的特征,根据该鱼的特征判断鱼的姿势是否为合理姿势,从而能够达到对鱼姿势进行识别的目的,以能够在后续对鱼的科学喂养中提供重要参考数据,比如,对于鱼姿势不合理的鱼图像进行舍弃,以避免后续科学喂养时估算数据不准确。并且,该方法不会使鱼产生应激反应,对鱼无伤害。另外,本申请实施例提供的该方法,在提取到鱼的特征后,还可以进一步根据提取到的鱼的特征识别鱼的位置信息,为后续对鱼的其他特征的计算提供便利。
例如,在集装箱养殖鲈鱼场景中,通过拍摄鲈鱼图像,识别该图像中鲈鱼的姿势是否为合理姿势,并且识别图像中鲈鱼的位置信息,框选出图像中的鲈鱼,为后续科学喂养提供重要数据。
基于同一构思,本申请实施例中提供了一种鱼姿势识别装置,该装置的具体实施可参见方法实施例的描述,重复之处不再赘述,如图6所示,该装置主要包括:
获取模块601,用于获取鱼图像;
处理模块602,用于提取所述鱼图像中鱼的特征,根据提取到的鱼的特征,判断所述鱼图像中鱼的姿势是否属于设定的合理姿势,获得判断结果;
识别模块603,用于将所述判断结果作为鱼姿势识别结果。
一个具体实施例中,处理模块602具体用于:将所述鱼图像输入到卷积神经网络模型;通过所述卷积神经网络模型中的N个网络层级,依次提取所述鱼图像的N个网络层级的特征,并对所述N个网络层级的特征进行整合,得到所述鱼的特征,根据所述鱼的特征判断所述鱼图像中鱼的姿势是否属于设定的合理姿势后,输出判断结果。
一个具体实施例中,处理模块602还用于提取所述鱼图像中鱼的特征,根据提取到的鱼的特征之后,通过所述卷积神经网络模型根据所述鱼的特征,对所述鱼图像添加用于框选出鱼所在位置的边框。
一个具体实施例中,所述卷积神经网络模型的训练过程包括:获取样本图像集合,其中,所述样本图像集合中包括M个样本图像以及每个所述样本图像的鱼姿势类别标识,所述鱼姿势类别标识用于指示所述样本图像中鱼的姿势是否为设定的合理姿势,S个样本图像组成一组样本图像;
分别对所述样本图像集合中的每组样本图像执行以下训练过程:分别对一组样本图像中的每个样本图像进行以下处理,将所述样本图像输入至初始卷积神经网络模型,依次采用N个网络层级,对所述样本图像进行特征提取,获得N个网络层级的特征,并对所述N个网络层级的特征进行整合,得到所述样本图像中鱼的特征;根据所述一组样本图像中每个所述样本图像中的鱼的特征,获得所述一组样本图像中鱼的姿势不属于设定的合理姿势的概率值;根据所述概率值和所述一组样本图像的鱼姿势类别标识,计算损失函数,根据所述损失函数,将梯度反向传播到所述N个网络层级的每一层,优化所述初始卷积神经网络模型的参数后,从所述样本图像集合中获取下一组样本图像,重复执行所述训练过程,直至所述损失函数趋于稳定时,将所述初始卷积神经网络模型作为最终的所述卷积神经网络模型。
一个具体实施例中,获取模块601具体用于:获取摄像头拍摄获得的所述鱼图像,其中,所述摄像头置于内部中空且透明的容器的底部,所述摄像头的镜面平行于所述容器的顶部,所述容器置于养鱼用集装箱内,所述集装箱的顶面设置背景板,所述背景板和所述容器的顶部形成鱼的行进通道。
本申请实施例提供的该装置,获取模块在获取鱼图像后,处理模块通过提取鱼图像中鱼的特征,根据该鱼的特征判断鱼的姿势是否属于设定的合理姿势,从而能够达到对鱼姿势进行识别的目的,以能够在后续对鱼的科学喂养中提供重要参考数据,比如,对于鱼姿势不属于设定的合理姿势的鱼图像进行舍弃,以避免后续科学喂养时估算数据不准确。并且,该方法不会使鱼产生应激反应,对鱼无伤害。
基于同一构思,本申请实施例中还提供了一种电子设备,如图7所示,该电子设备主要包括:处理器701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702和存储器703通过通信总线704完成相互间的通信。其中,存储器703中存储有可被至处理器701执行的程序,处理器701执行存储器703中存储的程序,实现如下步骤:获取鱼图像;提取所述鱼图像中鱼的特征,根据提取到的鱼的特征,判断所述鱼图像中鱼的姿势是否属于设定的合理姿势,获得判断结果;将所述判断结果作为鱼姿势识别结果。
上述电子设备中提到的通信总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述电子设备与其他设备之间的通信。
存储器703可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所述的鱼姿势识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。