基于鱼体特征点检测的淡水鱼种类识别
2023-08-15李梦珂肖畅宇赵竣威
朱 明 ,李梦珂 ,万 鹏 ,4※,肖畅宇 ,赵竣威
(1. 华中农业大学工学院,武汉 430070;2. 农业农村部水产养殖设施工程重点实验室,武汉 430070;3. 农业农村部长江中下游农业装备重点实验室,武汉 430070;4. 农业农村部华南现代农业智能装备重点实验室,广州,510630)
0 引 言
淡水鱼种类识别是淡水鱼机械化、自动化加工处理的基础[1-3],同时在淡水鱼的养殖、捕捞、销售等环节具有重要应用[4-5]。目前,淡水鱼分类识别依靠人工进行,劳动强度大、识别效率和准确度较低,因此,开展准确、高效的淡水鱼种类识别方法研究对推动淡水鱼养殖及加工的机械化、自动化具有重要意义。
机器视觉技术在农业生产中具有广泛应用,在水产养殖领域,常被用来获取养殖对象的视觉属性,并据此研发快速、高效的种类识别、分级分选等方法[6]。如张志强等[7-8]提取鱼体尺寸特征,通过统计分析建立鱼体分类模型;WHITE 等[9-10]提取鱼体颜色特征和尺寸特征后分别采用判别分析法和贝叶斯分类器对鱼类图像进行分类;HU 等[11-12]提取鱼体形态多种特征并采用支持向量机对鱼体分类;万鹏等[13]提取鱼体形态特征和颜色特征采用BP 神经网络对淡水鱼品种进行识别。综上所述,传统机器视觉的淡水鱼种类识别方法流程为鱼体图像预处理、特征值提取、基于特征值的鱼体分类模型构建;其中,鱼体图像预处理过程繁琐,流程较多,易受图像获取环境的干扰,对鱼体特征值提取效果有较大影响;而鱼体特征值表达鱼体的特征信息,直接影响淡水鱼种类识别的准确度,但常规的特征值提取难以挖掘鱼体深层次的特征信息。特征点是指在不同图像中能够将目标识别出来的具有统一性质的位置点,在鱼体图像中则表现为鱼头、鱼鳍、鱼尾等具有显著特征的位置点。基于特征点检测的目标识别在生产生活中被广泛应用,因此,准确检测鱼体的特征点并提取鱼体的特征信息可以用于淡水鱼的种类识别。
随着深度学习技术的发展与应用,相关学者利用深度学习技术对鱼类的种类识别方法进行了研究。如陈英义等[14-15]通过改进的VGG16 网络模型对鱼类进行识别;万鹏等[16]构建了基于改进的ResNet50 模型的淡水鱼种类识别方法;时扬扬[17]提出了一种将空间金字塔池化和DenseNet 相融合的图像识别方法用于淡水鱼种类检测;VANEEDA 等[18]设计了基于深度卷积神经网络的海水鱼分类方法。基于深度学习技术的目标分类是一种端到端的分类方法,与传统机器视觉技术相比,其简化了图像目标的识别流程并保证了分类准确率,但是这种端到端的方法导致特征提取过程被隐藏于整个分类过程中,难以对特征提取的结果进行定量描述。
AlexNet 模型[19]是首个应用于图像分类的深层卷积神经网络结构模型,它有5 个卷积层和3 个全连接层,采用图形处理器代替中央处理器进行运算,不但能加速网络的训练速度,还能提升数据的使用规模,同时具备收敛速度更快、错误率较低、能避免模型过拟合等优点。本文以典型的大宗淡水鱼为研究对象,以经典AlexNet模型为基础,构建改进AlexNet 模型对淡水鱼特征点进行检测,在此基础上提取鱼体的形态特征值构建特征向量,并结合Fisher 判别分析对淡水鱼种类进行识别,以期提高淡水鱼种类识别准确率及识别速率,为淡水鱼分类识别、鱼体特征参数检测、鱼体分割等自动化前处理加工装置的研制提供借鉴。
1 淡水鱼特征点检测数据集构建及预处理
1.1 淡水鱼原始图像获取
为了获取淡水鱼图像,本文搭建了淡水鱼图像采集装置,其结构如图1 所示。
图1 淡水鱼图像采集装置示意图Fig.1 Schematic diagram of the freshwater fish image acquisition device
淡水鱼图像采集装置由图像采集平台、BASLER 工业相机(德国Blaser,acA640-90 gm)、镜头(日本Computar,M0814-MP2)、光源、相机支架、计算机系统、淡水鱼图像采集软件等构成。采集鱼体图像时,通过调整镜头与鱼体样本之间的距离改变相机的视场,即可对不同淡水鱼样本进行图像采集。
本文以鳊、鳙、草鱼、鲢、鲤5 种典型的大宗淡水鱼为研究对象。鱼体样本自市场随机采购,要求鱼体完整、呈鲜活状态,采购回来后放于水池中暂养。5 种淡水鱼样本的质量范围为:鳊0.3~0.8 kg,鳙1.0~1.9 kg,草鱼0.6~1.4 kg,鲢1.2~2.1 kg,鲤0.9~1.8 kg。
采集鱼体图像时,先将淡水鱼击晕,擦干鱼体,再将鱼体样本放置于相机的正下方,分别采集鱼头朝左、鱼身倾斜角度随机的鱼体正反两面完整淡水鱼原始图像,如图2 所示。
1.2 淡水鱼图像数据增强
为了增加训练样本的多样性,扩充训练样本数量,提升模型的适应性能,需对采集的淡水鱼图像进行数据增强。本文采用添加椒盐噪声和高斯噪声、改变图像亮度、对图像向上和向下平移、以及高斯模糊等方法对采集的淡水鱼原始图像进行处理,共得到5 种淡水鱼样本图像7 200 张,每种淡水鱼图像各1 440 张,组成淡水鱼图像数据集。
1.3 淡水鱼鱼体特征点标记和坐标获取
为了准确检测淡水鱼鱼体特征点,首先需要确定鱼体特征点,并对图像数据集中的鱼体图像进行特征点标记。根据淡水鱼鱼体结构和外形,本文将鱼体分为鱼头、鱼身、鱼尾三部分,共设定20 个特征点,其中鱼头部分特征点为鱼体吻端、鱼体眼部、鱼体鳃盖骨后缘与上下边缘位置;鱼身部分特征点为鱼鳍与鱼身连接点、鱼体轮廓过渡点位置;鱼尾部分特征点为鱼体尾鳍末端、尾鳍与鱼身连接点、鱼体脊椎骨末端位置。鱼体20 个特征点的位置标记如图3 所示。
采用LabelMe 软件对图像数据集中鱼体特征点位置进行标记,标记结果为原图像坐标系中相对原点的坐标值。利用Python 程序编写算法将鱼体图像特征点信息写入csv 表格文件,构建包含淡水鱼图像及对应特征点信息的淡水鱼特征点检测数据集,用于特征点检测网络结构模型的训练和测试。5 种淡水鱼特征点位置如图4所示。
图4 5 种淡水鱼鱼体20 个特征点位置Fig.4 Location of 20 feature points on the body of five species of freshwater fish
1.4 图像预处理
淡水鱼特征点检测数据集在输入网络结构模型训练之前,需要进行预处理。本文调用PyTorch 算法工具库对淡水鱼图像进行处理。首先采用尺寸压缩算法将图像数据集中鱼体图像的尺寸压缩成227 像素×227 像素大小;再采用归一化处理将图像像素值大小由[0,255] 转变为[0,1] ;最后采用张量处理将图像和对应特征点信息由Numpy 格式转换为PyTorch 中的Tensor 格式。经预处理后,淡水鱼鱼体图像成为3 通道×227 像素×227 像素的张量,有助于加快深度学习网络模型的训练和收敛速度、提升模型的检测精度。
2 基于改进AlexNet 模型的淡水鱼特征点检测方法
2.1 改进AlexNet 模型的构建
经典AlexNet 模型由5 个卷积层和3 个全连接层构成(图5)。卷积层共包含1 个11×11 的卷积层、1 个5×5 的卷积层和3 个3×3 的卷积层,并在第1、2、5 层的卷积层设置最大池化模块,在池化操作时,每次移动的步长小于池化的窗口长度,有利于减少过拟合。输入图像经过一系列卷积操作后,在第5 层输出的特征图尺寸为6×6×256,经过展平处理后,输出特征矩阵大小变为1×1×9 216,然后经过3 层全连接层,最后由softmax 计算得到类别概率。
图5 经典AlexNet 模型网络结构Fig.5 Network structure of classical AlexNet model
为了缩减模型大小、提升模型的运算效率,同时选择适用于特征点检测的损失函数,本文对经典AlexNet模型结构进行改进和优化,方案如下:
1)减小卷积核大小。为了减小模型的参数量和计算量,改进AlexNet 模型将前两层卷积的11×11 和5×5 尺寸的卷积核改为7×7 和3×3 尺寸的卷积核,这2 种尺寸的卷积核应用于多种经典神经网络中,并取得了较好的效果[20]。同时,为保证卷积完成后输出特征图的尺寸,把前两层卷积操作的步长s和填充p改为2 和0。
2)去除局部响应归一化(local response normalization,LRN)。经典AlexNet 模型的局部响应归一化可以将数据分布调整到合理的范围内,有助于计算处理,从而提高泛化能力,但是提升能力有限,同时还会导致内存消耗和计算时间增加[21],因此本文在改进AlexNet 模型中去除了LRN 结构。
3)引入批量归一化(batch normalization,BN)。为了有效避免梯度消失,加快网络收敛,改善正则化策略,本文在改进AlexNet 模型的卷积层之后、激活函数之前添加BN 层。
4)更换损失函数并修改全连接层参数。本文选择均方误差(mean square error,MSE)作为改进AlexNet 模型特征点检测问题的损失函数[22]。
改进AlexNet 模型第5 层输出的特征图经过展平处理后的输出特征矩阵大小为1×1×9 216。为了减少全连接层参数,并使改进AlexNet 模型能够输出对应数量的坐标值,将全连接层Fc6 层和Fc7 层的输出特征通道数修改为4 096 和1 000,并将全连接层Fc8 层的输出特征矩阵大小定为1×1×40。改进后的AlexNet 模型的网络结构如图6 所示。
图6 改进AlexNet 模型网络结构Fig.6 Network structure of improved AlexNet model
图6 中,改进AlexNet 模型在网络的主体结构上与经典AlexNet 模型相同,都由5 个卷积层和3 个全连接层构成,保留了第1、2、5 层的卷积层的最大池化模块;在激活函数的选择上,改进AlexNet 模型仍选择ReLU激活函数;为减少过拟合,改进AlexNet 模型保留了Dropout。
改进AlexNet 模型卷积层的卷积核大小分别为7、3、3、3、3,前2 个卷积操作的步长为2,其余层均为1;最大池化的采样窗口大小为3×3,步长为2;输入图像经过一系列卷积操作后,在第5 层卷积层输出的特征图尺寸为6×6×256,经过展平处理后进入3 层全连接层,最后输出特征矩阵大小变为1×1×40。在特征点检测问题中,Fc8 的输出为40 个坐标值,对应20 个特征点的横、纵坐标。
2.2 淡水鱼特征点检测评价指标
为评价利用改进AlexNet 模型对鱼体特征点检测的效果,参考现有特征点检测相关研究[23-26],选择归一化平均误差(E)和失败率(failure rate,FR)作为特征点检测准确度的评价指标;并使用平均检测时间作为特征点检测速度的评价指标。
2.2.1 归一化平均误差
归一化平均误差是衡量特征点检测准确度的重要指标。鱼体图像中,特征点1 表征鱼体吻端,特征点18 表征鱼体脊椎骨末端位置,本研究以鱼体特征点1 与特征点18 之间的距离为归一化距离,对每个图像求归一化平均误差,并在整个测试集上求其平均值。则每个图像归一化平均误差E的计算式为
式中Pi和Qi为图像上第i个特征点的真实坐标和预测坐标;L为该图像上鱼体特征点1 与特征点18 之间的距离。归一化平均误差的值越小,说明特征点定位准确率越高。
2.2.2 失败率
失败率是指特征点定位失败,即归一化平均误差大于阈值δ的鱼体图像在图像数据集中所占的比例,用Fδ表示阈值为δ时的失败率。
为了确定阈值δ的取值,参考人脸特征点检测的阈值选取方法[23-26],同时考虑淡水鱼特征点检测数据集的实际情况,确定阈值δ设定为0.02 和0.03,使用F0.02和F0.03表示2 种阈值下的失败率。
2.2.3 平均检测时间
为了评价图像特征点检测的速度,论文以淡水鱼测试样本图像特征点的平均检测时间来衡量检测速度,平均检测时间的计算式为
式中T为平均检测时间,s;Tstart为检测开始的时刻,即第一张测试样本图像输入模型的时刻;Tend为检测结束的时刻,即最后一张测试样本图像的检测结果输出的时刻;Ntest为测试样本图像的数量。
2.3 改进AlexNet 模型的训练
2.3.1 模型的训练环境
文中模型训练和测试时的环境为: Windows 11 操作系统,GPU 为NVIDIA GeForce RTX 3 090,编程语言为Python3.8,深度学习框架为PyTorch,基础配置为Anaconda3、PyCharm。
2.3.2 模型训练过程
网络模型训练时,将数据集按照8∶1∶1 的比例随机划分为训练集、验证集、测试集,使用Adam 优化算法更新梯度,使用余弦退火算法衰减学习率,使用Kaiming 正态分布初始化卷积层权重。网络模型训练流程如图7 所示。
图7 模型训练流程Fig.7 Model training process
2.4 试验分析
在进行性能分析和对比试验前,对构建的模型进行超参数优化,确定最优的超参数组合。使用不同的初始学习率和批次大小训练模型并比较模型的训练效果,结果表明:当初始学习率设定为0.000 1、批次大小设定为32 时模型训练效果最好;当模型迭代次数达到250 次时所有条件下模型均可完全收敛。因此,在对模型进行训练时,针对不同的方案和模型设置相同的优化算法、迭代次数、学习率和批次大小,并使用相同的均方误差损失函数;其中初始学习率设定为0.000 1,批次大小设定为32,迭代次数设定为250 次。
2.4.1 消融试验
为了研究不同改进方案对优化模型性能的影响,本文从卷积核大小、LRN 层取舍、BN 层设置3 个角度提出了对经典AlexNet 模型的改进方案,同时本文设置了5 种试验方案进行性能分析,各试验方案具体设置和试验结果如表1 所示。
表1 试验方案与试验结果Table 1 Experiment schemes and experiment results
各试验方案训练集前100 轮的损失曲线如图8 所示。
图8 各试验方案训练集前100 轮的损失曲线Fig.8 Loss curve for the first 100 rounds of training set for each experiment scheme
由表1 可知,方案1 为经典AlexNet 模型结构,方案2 在方案1 的基础上用7×7 和3×3 尺寸的卷积核代替11×11 和5×5 尺寸的卷积核,其参数量减少为45.223×106,浮点运算量减少为0.900×109,而归一化平均误差的均值和失败率无明显改变,说明减小卷积核尺寸可在不影响模型检测效果的基础上简化模型。方案3 在方案1的基础上去除LRN 层,去除LRN 层后,对模型各方面影响较小,说明LRN 层的优化效果不明显,故可去除。方案4 在方案1 的基础上去除LRN 层,并添加批量归一化层,其归一化平均误差的均值减小为0.009 6,失败率F0.02和F0.03分别减小为2.36%和0.97%,但方案4 的参数量和浮点计算量略有增加,这是由于BN 层进行了归一化计算造成的。方案5 在方案1 的基础上综合了3 种改进方案,结果表明,其参数量减少为45.224×106,浮点运算量减少为0.906×109,失败率F0.02和F0.03分别减小为2.50%和0.83%,由图8 可知,方案5 的模型收敛速度优于其他方案,说明方案5 在模型大小、计算量、检测效果方面均优于原始模型。
综上所述,本文提出的对经典AlexNet 模型的改进方案均对特征点检测效果的提高产生了效果,其中方案5 在模型大小、计算量、检测效果方面呈现出了较好的改善效果,其归一化平均误差的均值仅为0.009 9,失败率F0.02和F0.03为2.50%和0.83%,因此本文将方案5 作为最终改进方案。
2.4.2 不同模型对比试验
采用VGG16 模型和MobileNetV2 模型开展对比试验。其中VGG16 模型[21]是一种经典的卷积神经网络模型,在图像识别领域受到了广泛的应用[27-28];MobileNetV2模型是一种轻量化的卷积神经网络模型,使用了深度可分离卷积来减少参数量和计算量,加强了特征表征能力,准确率更高,模型更小[29]。
在相同的试验环境下,每种模型均使用相同的均方误差损失函数,并调整模型最后一层的参数使之能输出40 个坐标值。试验时使用同一数据集对不同模型进行训练和测试,3 种模型的初始学习率和批次大小为0.000 1、32,迭代次数为250 次。对比试验结果如表2 所示。
表2 不同模型的测试结果Table 2 Test results of different models
由表2 可知,改进AlexNet 模型的参数量为45.224×106,浮点计算量为0.906×109,均优于VGG16 模型,在测试集上归一化平均误差的均值也小于VGG16 模型,对特征点的检测更准确。与轻量化网络MobileNetV2相比,改进AlexNet 模型的参数量和浮点计算量虽然比较大,但归一化平均误差的均值明显小于轻量化网络MobileNetV2 模型,并且平均检测时间也无明显差距。从失败率的角度比较,改进AlexNet 模型的F0.02和F0.03小于其他2 种模型。
综上所述,改进AlexNet 模型在保证了特征点检测准确度的基础上,同时保证了时效性,有利于实现模型在实际场景中的应用。
2.4.3 不同种类淡水鱼的特征点检测结果
使用包含5 种淡水鱼的特征点检测数据集对改进AlexNet 模型进行训练,并用包含单一种类淡水鱼的测试集对模型进行测试,不同种类淡水鱼特征点检测的归一化平均误差和失败率如表3 所示。
表3 不同种类淡水鱼特征点检测结果Table 3 Detection results of feature points of different species of freshwater fish
由表3 可知,改进AlexNet 模型对5 种淡水鱼特征点检测准确度都较高,测试集归一化平均误差的均值均不高于0.011 4;从失败率角度看,5 种淡水鱼的失败率F0.02均小于5%,F0.03均小于3%。这说明改进AlexNet模型对5 种淡水鱼的特征点检测具有较好结果,改进AlexNet 模型对不同种类淡水鱼特征点检测具有较好适应性。
为了表征淡水鱼特征点检测效果,将改进AlexNet网络模型预测的特征点结果与标记的真实点绘制在图像中,则5 种淡水鱼检测效果如图9 所示。
图9 5 种淡水鱼数据集训练改进模型的检测结果Fig.9 Detection results of training improved model on data set of 5 freshwater fish species
由图9 可知,本文构建的改进AlexNet 模型对5 种淡水鱼特征点的检测都比较准确,预测点和真实点的拟合程度较好。进一步分析发现,鱼体头部和背部特征点检测结果最好,而鱼体腹部和尾部的预测点与真实点的偏差较大。这是因为鱼体腹部颜色较浅,特征不明显,特征提取较为困难,因此造成了特征点的偏差;而鱼尾柔软易摆动使得图像采集时部分鱼尾的姿态发生变化,这对神经网络模型的训练和最终的检测效果产生了一定的影响。
综上所述,改进AlexNet 模型可用于5 中淡水鱼鱼体特征点检测,且检测准确率高,速度快。
3 基于Fisher 判别分析的淡水鱼种类识别方法
前述鱼体图像中设定的特征点根据鱼体的外形特征进行标记,不能直接表征鱼体的形态特征并对淡水鱼种类进行识别。因此,论文在前述鱼体特征点检测的基础上,提取鱼体形态特征值构建鱼体特征向量,结合判别分析对淡水鱼种类识别方法进行研究。
3.1 基于特征点的淡水鱼形态特征值提取及特征向量构建
鱼体的特征点分布于淡水鱼的外形轮廓及体表特定部位,特征点两两之间的欧式距离可以表征鱼体的大小及形态特征,本文以鱼体特征点1 与18 之间的欧式距离表征鱼体体长,以鱼体表面每两个特征点之间的欧式距离与鱼体体长的比值作为形态特征值,则单条淡水鱼体表20 个特征点可以得到190 个特征值。淡水鱼表面特征点间距离示意图如图10 所示。
图10 淡水鱼特征点与特征点间距离示意图Fig.10 Schematic diagram of the distances between feature points and feature points in freshwater fish
如图10 所示,假定淡水鱼图像左上角的坐标为(0,0),则鱼体图像上第p个特征点(xp,yp)与第q个特征点(xq,yq)之间的欧式距离为
式中p、q为特征点编号,p、q=1, 2, …, 20,且p<q。
特征点1 与18 之间的欧式距离为
淡水鱼特征值可表示为
故可构建单条淡水鱼的鱼体特征向量
则向量V为190 维列向量。
3.2 基于Fisher 判别分析的淡水鱼分类方法
Fisher 判别分析法是一种线性有监督分类技术,对样本的分布无任何要求,可以将样本向低维空间投影,使得样本集中的各个类在低维特征空间中形成若干个聚合的可分离的子集,通过计算待测样本到各类中心的距离,从而完成分类。本文在前述鱼体特征向量构建的基础上,利用Fisher 判别分析构建模型对淡水鱼种类进行识别。
从淡水鱼图像数据集中随机选取5 种淡水鱼图像各140 张构建Fisher 判别分析模型的样本集,每类淡水鱼图像中,40 张作为训练样本,其余作为测试样本。
样本类别数N=5,训练样本总数m=200,第i类训练样本的数量mi=40,i= 1, 2, …, 5。根据训练样本集中淡水鱼的特征点坐标构造每个鱼体样本的特征向量,设置训练样本种类标签,构建Fisher 判别分析模型训练样本集D,则:
式中i= 1, 2, …, 5;j= 1, 2, …, 40;Vij为第i类样本集中第j个样本的特征向量;yij为第i类样本集中第j个样本的种类标签,yij= 1, 2, …, 5。
第i个类别样本的均值向量 µi和所有样本的均值向量 µ的计算式如下:
式中i= 1, 2, …, 5;为第i个类别样本中40 个样本的特征向量中指定位置特征值的平均值。
每个类别的类内散度矩阵之和SW与类间离散度矩阵SB的计算式为
则Fisher 准则函数为
式中tr()表示矩阵的迹。
根据Fisher 判别分析的基本原理,求使准则函数JF(W)达到最大时的解W,即求广义特征值问题:
则W的闭式解是的k个最大非零广义特征值对应的特征向量组成的矩阵,且k≤N—1,故最多有4 个特征向量。
将W视为一个投影矩阵,将样本向4 维空间投影,即将训练样本降维,则每个维度的贡献率如表4 所示。
表4 各维度贡献率Table 4 Contribution rate of each dimension
根据表4 可知,前3 个维度的累计贡献率已达到了98.522%,综合考虑累计贡献率和高维度带来的计算量的增加,选择的前3 个最大非零广义特征值对应的特征向量组成W矩阵,因此确定了最佳投影方向。
Fisher 线性判别函数为:
即:
式中Y=[Y1,Y2,Y3] ,表示将样本向W矩阵表示的方向投影后的向量,也即训练样本降维后的向量。
将训练样本集中的所有样本向W矩阵表示的方向投影,得到所有样本投影后的向量。将投影后的向量视为三维空间的点,绘制投影结果在三维空间的分布,如图11所示。
图11 训练样本投影结果可视化Fig.11 Visualization of training samples projection results
在图11 中,异类样本点之间界限明显,同类样本点分布集中,这说明样本在三维空间容易区分。
对于待测样本,计算样本的特征向量Vt,分别计算Vt到每个种类样本均值的马氏距离,其中最小距离对应的类别即为待测样本的预测类别。Vt到第i类样本的马氏距离dt的计算式如下:
式中 µi为第i类样本的均值向量;为第i类样本的协方差矩阵。
3.3 基于特征点的淡水鱼种类识别方法验证
取Fisher 判别分析模型样本集中的测试样本,采用改进AlexNet 模型检测测试样本的特征点构建鱼体特征向量,再使用Fisher 判别分析对淡水鱼种类进行检测。为验证本文特征提取方法对不同分类方法的适用性,同时使用贝叶斯判别法[30]进行淡水鱼种类识别检测试验,并比较2 种方法的检测准确率及平均识别时间t,试验结果如表5 所示。
表5 淡水鱼种类识别试验结果Table 5 Test results of freshwater fish species identification
由表5 可知,基于鱼体特征点,采用Fisher 判别分析法对5 种淡水鱼进行识别的平均准确率为98.0%,单张图像的平均识别时间为0.368 s;采用贝叶斯判别法对5 种淡水鱼进行识别的平均准确率为96.4%,略低于Fisher 判别分析法,单张图像的平均识别时间为0.404 s,略高于Fisher 判别分析法。试验结果表明,使用改进AlexNet 模型检测鱼体特征点并提取鱼体特征向量可用于淡水鱼的分类检测;基于特征点构建的鱼体形态特征向量适用于不同的分类检测方法,其中使用Fisher 判别分析法进行分类的准确率更高,并具有较好的时效性。
4 结 论
1)本文提出了一种基于特征点检测的淡水鱼种类识别方法,该方法首先利用卷积神经网络获取鱼体特征点,再使用特征点信息结合Fisher 判别分析法对淡水鱼种类进行识别。
2)在经典AlexNet 模型的基础上,通过改变卷积核尺寸、去除局部响应归一化、加入批量归一化、更换损失函数构建了改进AlexNet 模型。使用改进AlexNet 模型进行特征点检测,其归一化平均误差的均值为0.009 9,阈值取0.02 和0.03 时的失败率分别为2.50%和0.83%,优于经典AlexNet 模型,且对5 种淡水鱼的检测效果均较好。将改进AlexNet 模型与其他特征提取网络对比,归一化平均误差的均值和失败率均小于VGG16 模型和轻量化网络MobileNetV2 模型。
3)根据鱼体表面特征点提取鱼体形态特征值构建鱼体特征向量,采用Fisher 判别分析进行淡水鱼种类识别,对5 种淡水鱼种类的识别准确率达到98.0%,单张鱼体图像的平均检测时间为0.368 s,具有较好的实时性。
本研究提出了基于改进AlexNet 模型的淡水鱼特征点检测方法,并通过鱼体特征点构建鱼体特征向量实现对淡水鱼的种类识别;同时该研究方法也可用于其他淡水鱼种类识别、鱼体特征参数检测及鱼体分割加工装置研究等方面。