本发明属于户外运动领域,具体涉及基于鱼竿的水下鱼类图像采集装置,以及图像自动分类方法。
背景技术:
目前。市面上的智能鱼竿可以通过鱼线或者浮漂上面的加速度传感器,获取鱼类咬钩时所产生的向下瞬间拉力,从而判断是否有鱼咬钩。由于其工作原理往往是基于加速度传感器所采集到的加速度值是否大于预先设定的阈值范围来判断是否有鱼咬钩,因此这类装置的灵敏度严重依赖预先设定的阈值、加速度传感器的精度,在实际使用中存在较大的误判率。此外,这类装置无法判断鱼钩上是鱼还是其他杂物,更加无法判断水中鱼的种类,使用体验感较差。
技术实现要素:
鉴于上述现有技术的不足,本发明提出一种基于智能鱼竿的机器学习方法、电子设备及计算机存储介质,其目的在于稳定、准确的获取水中鱼情图像,再基于机器学习方法对水中鱼情图像进行分类识别,实现智能鱼竿能获取水中鱼情,还能判断水中鱼的种类的功能。
本发明详细技术方案如下:
1.一种基于智能鱼竿的机器学习方法,包括以下步骤:
步骤1:建立不同钓鱼场景对应的鱼类数据库;
步骤2:增加鱼类数据库鲁棒性,步骤包括;
步骤2.1:对池塘鱼类数据库a1和河流鱼类数据库b1中的图像数据集,按照一定的比例分别划分为池塘鱼类训练数据集atr1、池塘鱼类测试数据集ate1,以及河流鱼类训练数据集btr1和河流鱼类测试数据集bte1,;
步骤2.2:分别对池塘鱼类训练数据集atr1和河流鱼类训练数据集bte1进行数据扩充,包括对训练数据加入高斯噪声和椒盐噪声生成新的加噪声图像,通过调整训练数据的直方图均衡性来进行训练数据明暗度增加,生成新的不同明暗度图像,对训练数据进行旋转、镜像、平移、尺度变换等操作,生成新的不同角度图像,再将上述不同特性图像分别加入初始训练数据集atr1和bte1,生成扩充后的训练数据集atr2和bte2;
步骤3:基于扩充后的训练数据集,建立机器学习鱼类图像数据分类模型;
步骤4:钓鱼过程中选择钓鱼场景;
步骤5:获取水域场景信息;
步骤6:获取鱼类目标信息;
步骤7:对鱼类目标进行识别。
进一步的所述步骤1:建立不同钓鱼场景对应的鱼类数据库,包括:
步骤1.1:对池塘区域,根据水深不同采集水中有不同类型鱼类图像数据和水中没有鱼建立池塘鱼类数据库a1,然后执行步骤2.1;
步骤1.2:对河流区域,根据上下游不同采集不同类型鱼类建立河流鱼类数据库b1,然后执行步骤2.2。
进一步的所述步骤3:基于扩充后的训练数据集,建立机器学习鱼类图像数据分类模型,步骤包括;
步骤3.1:将所有鱼类训练数据和测试数据的图像矩阵统一尺寸,并对其进行归一化,然后设置训练数据集和测试数据集的批次大小值,以及样本迭代次数,将交叉熵函数设置为损失函数,并用随机梯度下降方法更新网络参数,设置学习率,将完全连接层的最终输出值设置为n;
步骤3.2:将扩充后的池塘鱼类训练数据集atr2,分别放入tl-alexnet、tl-vgg16、tl-resnet18三种机器学习模型上进行扩充数据训练,再利用池塘鱼类测试数据集ate1对三种学习模型进行测试;
步骤3.3:将扩充后的河流鱼类训练数据集btr2,分别放入tl-vgg19、tl-resnet34、tl-squeezenet三种机器学习模型上进行扩充数据训练,再利用河流鱼类测试数据集bte1对三种学习模型进行测试;
步骤3.4:从步骤3.2和步骤3.3测试结果中分别获取学习模型综合评价结果r,分别确定池塘区域和河流区域综合评价结果最高的机器学习模型,首先,从测试结果中计算出分类的准确率ac、精度pr、召回率re、f1分数,其中,准确率ac计算公式为
进一步的所述步骤4:钓鱼过程中选择钓鱼场景,步骤包括;
步骤4.1:当选择钓鱼场景为池塘区域,分类方法选择池塘区域综合评价结果最高的机器学习模型ra;
步骤4.2:当选择钓鱼场景数据为河流区域,分类方法选择河流区域综合评价结果最高的机器学习模型rb。
进一步的所述步骤5:获取水域场景信息,步骤包括;
步骤5.1:在摄像头进入水中开始录制视频数据30秒后,采集5秒视频数据,并每间隔1秒从视频数据中采集一张图像数据is,将采集到的每一张图像数据is进行二值化处理,二值化的阈值th为图像数据is中所有像素点的强度中值,从而得到二值化图像数据igs,将相邻二值化图像数据进行矩阵相减操作,获得差异图像数据igs′,计算差异图像数据igs′中非零像素点数量占整个图像数据像素点数量的比率ths′,其中,下标s表示图像数据采集的时间,下标s′表示图像数据由哪两个时间的数据相减得到;
步骤5.2:当ths′∈[0,0.3],判断图像数据采集环境稳定,执行步骤5.3,当ths′∈(0.3,0.7),判断图像数据采集环境未稳定,执行步骤5.1,当ths′∈[0.7,1],判断图像数据采集环境复杂,提示需要重新选择钓鱼场景,执行步骤4;
步骤5.3:保存当前ths′对应的被减图像数据is为i′。
进一步的所述步骤6:获取鱼类目标信息,步骤包括;
步骤6.1:每间隔10秒从视频数据中采集一张图像数据tt,将采集到的每一张图像数据tt进行灰度化处理,从而得到灰度化图像数据tgt,将保存的图像数据i′进行灰度化处理,从而得到灰度化图像数据i′g,下标t表示图像数据采集的时间;
步骤6.2:利用kl距离来计算得到图像数据tgt与i′g的相似性值kt,当kt大于阈值kh时,执行步骤6.1,当kt小于阈值kh时,执行步骤6.3;
步骤6.3:保存当前kt对应的图像数据tgt。
进一步的所述步骤7:对鱼类目标进行识别,步骤包括;
步骤7.1:将图像数据tgt放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,若图像数据tgt分类为水中没有鱼,则得到水中没有鱼接近的结论,执行步骤6,若图像数据tgt分类为某种类型鱼类,则得到水中有鱼接近的结论,执行步骤7.2;
步骤7.2:每间隔1秒从视频数据中采集一张图像数据rt,持续采集10秒图像数据,生成数据集rall;
步骤7.3:将数据集rall放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,对10个分类结果进行统计,分类结果相同的类型l的数量占总分类结果数量的比率rh;
步骤7.4:当rh∈[0,0.3],判断鱼类类型不确定,当rh∈(0.3,0.6),判断鱼类类型可能是l,当rh∈[0.6,1],判断鱼类类型为l。
一种电子设备,包括处理器、存储器和一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行如权利要求1-7之一的智能鱼竿的机器学习方法。
一种基于智能鱼竿的机器学习的计算机存储介质,用于存储计算机程序,以执行上述智能鱼竿的机器学习方法。
本发明与传统的智能鱼竿相比,创造性的提出了:
针对不同钓鱼场景建立了鱼类数据库,并对数据库进行了数据扩充,增加了鱼类数据库的鲁棒性。根据不同钓鱼场景,采用多种机器学习模型进行训练,并利用一种综合评价方法得到最优的机器学习模型。提出一种基于水域场景信息稳定性判断的鱼类目标信息获取方法,该方法通过在对水域场景信息稳定性判断基础上,通过机器学习模型对鱼类目标进行两个层级的判断,实现钓鱼过程中对水中鱼类的识别。
附图说明
图1为本发明基于智能鱼竿的机器学习方法的流程图。
具体实施方式
下面将结合本发明实施例及附图,对本申请进行清楚、完整地描述。
具体的该方法包括以下步骤:
步骤1:建立不同钓鱼场景对应的鱼类数据库,步骤包括:
步骤1.1:对池塘区域,根据水深不同采集水中有不同类型鱼类图像数据和水中没有鱼建立池塘鱼类数据库a1,然后执行步骤2.1;
步骤1.2:对河流区域,根据上下游不同采集不同类型鱼类建立河流鱼类数据库b1,然后执行步骤2.2:
步骤2:增加鱼类数据库鲁棒性,步骤包括;
步骤2.1:对池塘鱼类数据库a1和河流鱼类数据库b1中的图像数据集,按照6.5:3.5的比例分别划分为池塘鱼类训练数据集atr1、池塘鱼类测试数据集ate1,以及河流鱼类训练数据集btr1和河流鱼类测试数据集bte1,;
步骤2.2:分别对池塘鱼类训练数据集atr1和河流鱼类训练数据集bte1进行数据扩充,包括对训练数据加入高斯噪声和椒盐噪声生成新的加噪声图像,通过调整训练数据的直方图均衡性来进行训练数据明暗度增加,生成新的不同明暗度图像,对训练数据进行旋转、镜像、平移、尺度变换操作,生成新的不同角度图像,再将上述不同特性图像分别加入初始训练数据集atr1和bte1,生成扩充后的训练数据集atr2和bte2;
步骤3:基于扩充后的训练数据集,建立机器学习鱼类图像数据分类模型,步骤包括;
步骤3.1:将所有鱼类训练数据和测试数据的图像矩阵统一尺寸为224×224,并对其进行归一化,然后将训练数据集和测试数据集的批次大小值设置为20,将样本迭代次数设置为18,将交叉熵函数设置为损失函数,并用随机梯度下降方法更新网络参数,将学习率设置为0.001,将完全连接层的最终输出值设置为n,n∈[5,30];
步骤3.2:将扩充后的池塘鱼类训练数据集atr2,分别放入tl-alexnet、tl-vgg16、tl-resnet18三种机器学习模型上进行扩充数据训练,再利用池塘鱼类测试数据集ate1对三种学习模型进行测试;
步骤3.3:将扩充后的河流鱼类训练数据集btr2,分别放入tl-vgg19、tl-resnet34、tl-squeezenet三种机器学习模型上进行扩充数据训练,再利用河流鱼类测试数据集bte1对三种学习模型进行测试;
步骤3.4:从步骤3.2和步骤3.3测试结果中分别获取学习模型综合评价结果r,分别确定池塘区域和河流区域综合评价结果最高的机器学习模型,首先,从测试结果中计算出分类的准确率ac、精度pr、召回率re、f1分数,其中,准确率ac计算公式为
步骤4:实际钓鱼过程中选择钓鱼场景,步骤包括;
步骤4.1:当选择钓鱼场景为池塘区域,分类方法选择池塘区域综合评价结果最高的机器学习模型ra;
步骤4.2:当选择钓鱼场景数据为河流区域,分类方法选择河流区域综合评价结果最高的机器学习模型rb;
步骤5:获取水域场景信息,步骤包括;
步骤5.1:在摄像头进入水中开始录制视频数据30秒后,采集5秒视频数据,并每间隔1秒从视频数据中采集一张图像数据is,将采集到的每一张图像数据is进行二值化处理,二值化的阈值th为图像数据is中所有像素点的强度中值,从而得到二值化图像数据igs,将相邻二值化图像数据进行矩阵相减操作,获得差异图像数据igs′,计算差异图像数据igs′中非零像素点数量占整个图像数据像素点数量的比率ths′,其中,下标s表示图像数据采集的时间,下标s′表示图像数据由哪两个时间的数据相减得到;
步骤5.2:当ths′∈[0,0.3],判断图像数据采集环境稳定,执行步骤5.3,当ths′∈(0.3,0.7),判断图像数据采集环境未稳定,执行步骤5.1,当ths′∈[0.7,1],判断图像数据采集环境复杂,提示需要重新选择钓鱼场景,执行步骤4;
步骤5.3:保存当前ths′对应的被减图像数据is为i′;
步骤6:获取鱼类目标信息,步骤包括;
步骤6.1:每间隔10秒从视频数据中采集一张图像数据tt,将采集到的每一张图像数据tt进行灰度化处理,从而得到灰度化图像数据tgt,将保存的图像数据i′进行灰度化处理,从而得到灰度化图像数据i′g,下标t表示图像数据采集的时间;
步骤6.2:利用kl距离来计算得到图像数据tgt与i′g的相似性值kt,当kt大于阈值kh时,执行步骤6.1,当kt小于阈值kh时,执行步骤6.3;
步骤6.3:保存当前kt对应的图像数据tgt;
步骤7:对鱼类目标进行识别,步骤包括;
步骤7.1:将图像数据tgt放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,若图像数据tgt分类为水中没有鱼,则得到水中没有鱼接近的结论,执行步骤6,若图像数据tgt分类为某种类型鱼类,则得到水中有鱼接近的结论,执行步骤7.2;
步骤7.2:每间隔1秒从视频数据中采集一张图像数据rt,持续采集10秒图像数据,生成数据集rall;
步骤7.3:将数据集rall放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,对10个分类结果进行统计,分类结果相同的类型l的数量占总分类结果数量的比率rh;
步骤7.4:当rh∈[0,0.3],判断鱼类类型不确定,当rh∈(0.3,0.6),判断鱼类类型可能是l,当rh∈[0.6,1],判断鱼类类型为l。
以及一种电子设备,包括处理器、存储器和一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行如权利要求1-7之一的智能鱼竿的机器学习方法及一种基于智能鱼竿的机器学习的计算机存储介质,用于存储计算机程序,以执行上述智能鱼竿的机器学习方法。
本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。
1.一种基于智能鱼竿的机器学习方法,包括以下步骤:
步骤1:建立不同钓鱼场景对应的鱼类数据库;
步骤2:增加鱼类数据库鲁棒性,步骤包括;
步骤2.1:对池塘鱼类数据库a1和河流鱼类数据库b1中的图像数据集,按照一定的比例分别划分为池塘鱼类训练数据集atr1、池塘鱼类测试数据集ate1,以及河流鱼类训练数据集btr1和河流鱼类测试数据集bte1,;
步骤2.2:分别对池塘鱼类训练数据集atr1和河流鱼类训练数据集bte1进行数据扩充,优选的对训练数据加入高斯噪声和椒盐噪声生成新的加噪声图像,通过调整训练数据的直方图均衡性来进行训练数据明暗度增加,生成新的不同明暗度图像,对训练数据进行旋转、镜像、平移、尺度变换等操作,生成新的不同角度图像,再将上述不同特性图像分别加入初始训练数据集atr1和bte1,生成扩充后的训练数据集atr2和bte2;
步骤3:基于扩充后的训练数据集,建立机器学习鱼类图像数据分类模型;
步骤4:钓鱼过程中选择钓鱼场景;
步骤5:获取水域场景信息;
步骤6:获取鱼类目标信息;
步骤7:对鱼类目标进行识别。
2.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤1:建立不同钓鱼场景对应的鱼类数据库,包括:
步骤1.1对池塘区域,根据水深不同采集水中有不同类型鱼类图像数据和水中没有鱼建立池塘鱼类数据库a1,然后执行步骤2.1;
步骤1.2:对河流区域,根据上下游不同采集不同类型鱼类建立河流鱼类数据库b1,然后执行步骤2.2。
3.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤3:基于扩充后的训练数据集,建立机器学习鱼类图像数据分类模型,步骤包括;
步骤3.1:将所有鱼类训练数据和测试数据的图像矩阵统一尺寸,并对其进行归一化,然后设置训练数据集和测试数据集的批次大小值,以及样本迭代次数,将交叉熵函数设置为损失函数,并用随机梯度下降方法更新网络参数,设置学习率,将完全连接层的最终输出值设置为n;
步骤3.2:将扩充后的池塘鱼类训练数据集atr2,分别放入tl-alexnet、tl-vgg16、tl-resnet18三种机器学习模型上进行扩充数据训练,再利用池塘鱼类测试数据集ate1对三种学习模型进行测试;
步骤3.3:将扩充后的河流鱼类训练数据集btr2,分别放入tl-vgg19、tl-resnet34、tl-squeezenet三种机器学习模型上进行扩充数据训练,再利用河流鱼类测试数据集bte1对三种学习模型进行测试;
步骤3.4:从步骤3.2和步骤3.3测试结果中分别获取学习模型综合评价结果r,分别确定池塘区域和河流区域综合评价结果最高的机器学习模型,首先,从测试结果中计算出分类的准确率ac、精度pr、召回率re、f1分数,其中,准确率ac计算公式为
4.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤4:钓鱼过程中选择钓鱼场景,步骤包括;
步骤4.1:当选择钓鱼场景为池塘区域,分类方法选择池塘区域综合评价结果最高的机器学习模型ra;
步骤4.2:当选择钓鱼场景数据为河流区域,分类方法选择河流区域综合评价结果最高的机器学习模型rb。
5.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤5:获取水域场景信息,步骤包括;
步骤5.1:在摄像头进入水中开始录制视频数据30秒后,采集5秒视频数据,并每间隔1秒从视频数据中采集一张图像数据is,将采集到的每一张图像数据is进行二值化处理,二值化的阈值th为图像数据is中所有像素点的强度中值,从而得到二值化图像数据igs,将相邻二值化图像数据进行矩阵相减操作,获得差异图像数据igs′,计算差异图像数据igs′中非零像素点数量占整个图像数据像素点数量的比率ths′,其中,下标s表示图像数据采集的时间,下标s′表示图像数据由哪两个时间的数据相减得到;
步骤5.2:当ths′∈[0,0.3],判断图像数据采集环境稳定,执行步骤5.3,当ths′∈(0.3,0.7),判断图像数据采集环境未稳定,执行步骤5.1,当ths′∈[0.7,1],判断图像数据采集环境复杂,提示需要重新选择钓鱼场景,执行步骤4;
步骤5.3:保存当前ths′对应的被减图像数据is为i′。
6.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤6:获取鱼类目标信息,步骤包括;
步骤6.1:每间隔10秒从视频数据中采集一张图像数据tt,将采集到的每一张图像数据tt进行灰度化处理,从而得到灰度化图像数据tgt,将保存的图像数据i′进行灰度化处理,从而得到灰度化图像数据i′g,下标t表示图像数据采集的时间;
步骤6.2:利用kl距离来计算得到图像数据tgt与i′g的相似性值kt,当kt大于阈值kh时,执行步骤6.1,当kt小于阈值kh时,执行步骤6.3;
步骤6.3:保存当前kt对应的图像数据tgt。
7.如权利要求1所述的一种基于智能鱼竿的机器学习方法,其特征在于所述步骤7:对鱼类目标进行识别,步骤包括;
步骤7.1:将图像数据tgt放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,若图像数据tgt分类为水中没有鱼,则得到水中没有鱼接近的结论,执行步骤6,若图像数据tgt分类为某种类型鱼类,则得到水中有鱼接近的结论,执行步骤7.2;
步骤7.2:每间隔1秒从视频数据中采集一张图像数据rt,持续采集10秒图像数据,生成数据集rall;
步骤7.3:将数据集rall放入步骤4选择的钓鱼场景对应的机器学习模型中进行分类,对10个分类结果进行统计,分类结果相同的类型l的数量占总分类结果数量的比率rh;
步骤7.4:当rh∈[0,0.3],判断鱼类类型不确定,当rh∈(0.3,0.6),判断鱼类类型可能是l,当rh∈[0.6,1],判断鱼类类型为l。
8.一种电子设备,包括处理器、存储器和一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行如权利要求1-7之一的智能鱼竿的机器学习方法。
9.一种基于智能鱼竿的机器学习的计算机存储介质,用于存储计算机程序,以执行如权利要求1-7之一的智能鱼竿的机器学习方法。
技术总结