基于卷积神经网络的侧线鳞识别方法与流程

文档序号:12035229阅读:844来源:国知局
基于卷积神经网络的侧线鳞识别方法与流程

本发明涉及计算机视觉、图像识别、渔业研究领域,具体是一种基于卷积神经网络的淡水鱼侧线鳞识别方法。



背景技术:

在渔业养殖和渔业研究中,鱼类的表形特征,又称视觉属性,包括鱼的长宽尺寸、表面积、形状、颜色、侧线鳞数目等,是渔业研究者对鱼进行喂养、用药、分级、选别和水环境监测的主要信息依据。

目前,机器视觉在鱼类表形上的研究应用主要集中于鱼的尺寸测量、表面积测量、颜色获取等,对鱼类的侧线鳞检测的应用研究却罕见报道。而侧线鳞数目作为渔业研究者对鱼进行分门别类的重要数据指标,长期以来,一直靠人工数数的方式进行,一方面,自动化程度较低,耗时耗力,另一方面,长此以往,易导致疲劳出错等问题。而机器视觉在侧线鳞计数上的应用却罕见报到。

究其原因,主要存在以下两个难点:第一,要实现自动化的侧线鳞精确计数,首先必须让机器自己知道侧线鳞在鱼身上的确切位置,即用机器视觉的方法在鱼体身上众多的鱼鳞片中准确地找到侧线鳞所在的位置,也就是准确区分侧线鳞与非侧线鳞。而侧线鳞与非侧线鳞本身在颜色形状上差异并不是很明显,用传统的机器视觉图像处理方法难以对其加以区分。并且,鳞片与鳞片之间通常都会有狭小缝隙,缝隙呈现深黑色,给侧线鳞的位置识别增加了难度。第二,找到侧线鳞的具体区域位置之后,还需对区域内的鳞片数进行逐个累加计算,而侧线鳞片之间存在边缘不明显的情况,这给侧线鳞的精确计数带来不小的挑战。



技术实现要素:

本发明针对侧线鳞自动计数中的第一个难点问题,即侧线鳞的识别问题,提出了一种基于卷积神经网络的侧线鳞识别方法,通过此方法可实现对淡水鱼侧线鳞的精确识别。

技术方案:一种基于卷积神经网络的侧线鳞识别方法,包括以下步骤:

步骤1:构建侧线鳞识别的卷积神经网络结构,依次为输入层、多个卷积层、多个下采样层、输出层;

步骤2:图像采集,即原始鱼体图像的采集,并将采集到的图像分为学习图像记为学习数据集、测试图像记为测试数据集;

步骤3:样本采集,用方形采样方块对学习图像进行样本采集,侧线鳞部分居于采样方块中间位置的的样本作为正样本,其它非侧线鳞部分作为负样本;

步骤4:将在学习图像上采集到的正负样本进行归一化处理,并分为训练集与验证集;

步骤5:将步骤4中的训练集和验证集输入步骤1的卷积神经网络进行迭代训练,直至在验证集上的识别准确率达到预期目标或者卷积神经网络在验证集上的目标函数损失值开始收敛为止,保存模型m;

步骤6:用步骤1的网络结构加载步骤5中保存的网络模型,对测试集中的完整的鱼体图像上的侧线鳞进行识别检测;

步骤7:对鱼体上识别出的侧线鳞进行拟合,得到完整的侧线鳞曲线,完成侧线鳞的精确识别。

优选的,所述卷积神经网络结构共七层:第一层、第二层c1、第三层s2、第四层c3、第五层s4、第六层f5、第七层;其中:第一层为输入层,接收3×28×28的彩色图像输入;第二层c1和第四层c3为卷积层,对图像进行特征学习提取;第三层s2和第五层s4为下采样层,对卷积层学习到的图像特征进行最大值下采样;第六层f5为全连接的一维网络;第七层是输出层。

优选的,步骤4中通过双线性插值方法进行归一化处理。

优选的,步骤3中所述方形采样方块为64×64的采样方块。

更优的,步骤6中完整的测试过程如下:

6-1:从测试集中选取一张图片作为测试图t,从测试图的左上角开始,设一64×64的滑动窗口w,以步长s遍历整张图像,每滑动一次,都记录下滑动窗口内的图像i,这样,当遍历完整张图像之后,便得到n张64×64的图像,记为i1,i2,...,in,并且记下每张小图在原图中的中心点坐标(ci,ri)(i=1,2,...,n);

6-2:搭建相同的网络结构n,并加载模型m;

6-3:依次将图像ii(i=1,2,...,n)归一化为28×28后,输入网络结构n进行识别预测;

6-4:若预测为正样本,即为侧线鳞,则按图索引到图像坐标后在原图中将该区域用64×64的红色矩形标注出来,并执行下一张;否则,什么都不干,继续执行下一张;

6-5:从测试集中选取另一张图像进行测试,重复执行6-1~6-5。

更优的,步骤7中侧线鳞的精确识别具体步骤为是结合用支持向量机回归算法对识别出来的侧线鳞区域进行回归拟合:根据测试结果找到每个64×64方块的中心点坐标,并在图中标记出来,接着使用svr算法设置svr核函数为径向基函数rbf,核函数系数gamma=1e-6,目标函数的惩罚系数c=1e-3,对这些坐标点进行回归拟合。

本发明的有益效果

本发明方法是一种基于卷积神经网络的侧线鳞识别方法,它与传统的基于手工特征提取的识别方法不同,直接使用二维图像作为输入,避免了人为设计特征带来的不确定性。使用该方法在最终的验证集上的识别准确率为99.09%,目标函数损失值0.0349。在测试集上能够准确的识别出侧线鳞区域。最后,通过回归拟合算法实现了侧线鳞的精确定位。

附图说明

图1是本发明基于卷积神经网络的侧线鳞识别流程示意图

图2是本发明所述卷积神经网络结构示意图

图3是侧线鳞识别的网络结构在测试图上的识别结果示意图

图4侧线鳞回归拟合后的结果示意图

具体实施方式

下面结合实施例对本发明作进一步说明,但本发明的保护范围不限于此:

如图1所示本发明基本流程图包含以下步骤:

步骤1:构建侧线鳞识别的网络结构n。如图2所示,网络共有七层:第一层为输入层,接收3×28×28的彩色图像输入,第二层c1和第四层c3为卷积层,第三层s2和第五层s4为下采样层,第六层f5为全连接的一维网络,第七层是输出层。卷积层对图像进行特征学习提取,该层有多少卷积核就有多少特征;下采样层对卷积层学习到的图像特征进行最大值下采样,降低图像特征复杂度,同时提高网络模型的鲁棒性。

步骤2:图像采集,将采集到的完整的200张鱼体图像分为学习数据集与测试数据集,学习数据集150张,测试数据集50张。

步骤3:样本采集,以64×64的采样方块对步骤2中的学习数据集进行采样。具体采样方法是,侧线鳞居于采样方块中间位置的为正样本,其它的非侧线区域为负样本。共采集2240张样本,正负样本各1120张。

步骤4:将采集到的2240张64×64的样本用双线性插值方法归一化至28×28;

将经过归一化处理后的样本集分为训练集与验证集,训练集1800张,正负样本各900张;验证集440张,正负样本各220张。

步骤5:用步骤1中构建的卷积神经网络模型对步骤4中的数据集进行训练学习直至网络收敛后,保存模型m;得到的模型在验证集上的识别准确率为99.09%,目标函数损失值为0.0349。

步骤6:用步骤5中得到的网络模型m对测试集中完整的鱼体图像上的侧线鳞位置进行识别测试。测试结果如图3所示;

进一步的,在测试集上的完整的测试过程如下:

6-1:从测试集中选取一张图片作为测试图t,从测试图的左上角开始,设一64×64的滑动窗口w,以步长s遍历整张图像,每滑动一次,都记录下滑动窗口内的图像i,这样,当遍历完整张图像之后,便得到n张64×64的图像,记为i1,i2,...,in,并且记下每张小图在原图中的中心点坐标(ci,ri)(i=1,2,...,n);

6-2:搭建相同的网络结构n,并加载模型m;

6-3:依次将图像ii(i=1,2,...,n)归一化为28×28后,输入网络结构n进行识别预测;

6-4:若预测为正样本,即为侧线鳞,则按图索引到图像坐标后在原图中将该区域用64×64的红色矩形标注出来,并执行下一张;否则,什么都不干,继续执行下一张;

6-5:从测试集中选取另一张图像进行测试,重复执行6-1~6-5;

步骤7:结合用支持向量机回归算法(supportvectorregression,svr)对识别出来的侧线鳞区域进行回归拟合。具体操作是:根据测试结果找到每个64×64方块的中心点坐标,并在图中标记出来,接着使用svr算法,设置svr核函数为径向基函数(rbf),核函数系数gamma=1e-6,目标函数的惩罚系数c=1e-3,对这些坐标点进行回归拟合。拟合结果如图4所示。

本文中所描述的具体实施例仅仅是对本发明精神做举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1