基于可见光谱的鱼苗体长估测方法研究
李振波1,2,3, 钮冰姗1, 彭芳1, 李光耀1
1. 中国农业大学信息与电气工程学院, 北京 100083
2. 北京市农业物联网工程技术研究中心, 北京 100083
3. 农业部农业信息获取技术重点实验室, 北京 100083

作者简介: 李振波, 1978年生, 中国农业大学信息与电气工程学院教授 e-mail: zhenboli@126.com

摘要

在鱼苗养殖过程中, 同一养殖池会出现个体大的鱼苗攻击个体小的鱼苗, 个体小的鱼苗会出现伤病甚至死亡, 造成经济损失, 鱼苗分塘和售卖价格主要与其体长参数相关, 因此需要对不同大小的鱼苗进行分离。 鱼苗分类主要依赖于不同大小的网筛, 费时费力, 且容易对鱼苗造成损伤。 针对传统人工分离方法效率低下并且缺乏科学指导的问题, 本文提出了基于可见光谱的鱼苗体长估测方法研究, 能够根据鱼苗图像计算鱼苗长度并进行分类。 为了精确无损的获取鱼苗的体长, 提出了基于迁移学习ResNet50模型的鱼苗体长估测方法。 首先采集在同等高度条件下拍摄的不同长度鱼苗图像, 同时手工测量鱼苗的实际长度作为数据集的标签, 用四种迁移学习模型AlexNet, VGG16, GoogLeNet, ResNet50对鱼苗体长进行估算, 通过验证集准确率, 测试集准确率, 以及不同方法的运行时间三个指标进行分析, AlexNet模型验证集准确率90.04%, 测试集准确率89.82%, 运行时间52 min 3 s; VGG16模型验证集准确率91.01%, 测试集准确率91.17%, 运行时间131 min 37 s; GoogLeNet模型验证集准确率88.02%, 测试集准确率88.39%, 运行时间45 min 2 s; ResNet50模型验证集准确率91.92%, 测试集准确率91.09%, 运行时间99 min 17 s; 确定方法ResNet50。 该模型具有50层的Residual Network架构, 用迁移学习的方法将在ImageNet上训练得到的卷积层的参数传递到训练所使用的模型上, 并调整softmax层适应本文问题。 对来自10种不同长度的6 677个样本的鱼苗数据集上的实验结果表明该方法可以有效地用于鱼苗分类, 通过对模型ResNet50的迁移学习的层数, 迭代次数, 学习率, 最小批处理尺寸(Mini Batch Size)进行微调以优化模型。 实验结果表明, 当迁移学习模型的迁移层数为30, 迭代次数为6, 学习率为0.001, Mini Batch Size为10时, 方法效果达到最优, 模型的验证集准确率94.31%, 测试集的准确率达到93.93%。 该算法与传统的图像处理方法相比估算鱼苗体长准确率提高2%左右。 在未来实际生产场景中, 可以将该方法嵌套入鱼苗体长分离装置之中, 真正的做到将科研落地, 投入到实际的生产之中, 减少鱼苗损伤, 为未来的无人渔场奠定基础。

关键词: 鱼苗; 体长; ResNet50; 图像处理; 迁移学习
中图分类号:S954.1 文献标志码:A
Estimation Method of Fry Body Length Based on Visible Spectrum
LI Zhen-bo1,2,3, NIU Bing-shan1, PENG Fang1, LI Guang-yao1
1. School of Information and Electrical Engineering, China Agricultural University, Beijing 100083, China
2. Beijing Agricultural Internet of Things Engineering Technology Research Center, Beijing 100083, China
3. Key Laboratory of Agricultural Information Acquisition Technology of Ministry of Agriculture, Beijing 100083, China
Abstract

In the process of fry breeding, the same breeding pond will appear that the individual large fry attacks small individual fry, and the individual small fry will suffer injury or even death, resulting in economic loss, and the fry pond and the selling price are mainly related to their body length parameters, so separation of different sizes of fry is required. The classification of fry is mainly dependent on mesh screens of different sizes, which is time consuming and laborious, and is easy to cause damage to fry. Aiming at the low efficiency and lack of scientific guidance of traditional artificial separation methods, this paper proposes a study on the estimation method of fry body length based on visible spectrum, which can calculate the length and classify the fry according to the fry image. In order to obtain the body length of the fry accurately and without loss, a method for estimating the length of the fry based on the migration learning ResNet50 model was proposed. Firstly, images of different lengths of fry taken under the same height conditions were collected. At the same time, the actual length of the fry was manually measured as the label of the data set. The four migration learning models AlexNet, VGG16, GoogLeNet, ResNet50 were used to estimate the body length of the fry, and the verification set was passed. Accuracy, test set accuracy, and running time of different methods were analyzed. The accuracy rate of AlexNet model verification set was 90.04%, the test set accuracy rate was 89.82%, and the running time was 52 minutes and 3 seconds; the VGG16 model verification set accuracy rate was 91.01%, the test set accuracy rate was 91.17%, and the running time was 131 minutes and 37 seconds; the accuracy rate of GoogLeNet model verification set was 88.02%, the test set accuracy rate is 88.39%, and the running time was 45 minutes and 2 seconds; the ResNet50 model verification set accuracy rate was 91.92%, the test set accuracy rate was 91.09%, and the running time was 99 minutes and 17 seconds; then determined ResNet50. The model had a 50-layer Residual Network architecture. The migration learning method was used to transfer the parameters of the convolution layer trained on ImageNet to the model used in this training, and the softmax layer was adjusted to adapt to this problem. The experimental results on the fry datasets of 6677 samples from 10 different lengths showed that the method can be effectively used for fry classification, and the model was optimized by stratifying the number of layers, the number of iterations, the learning rate of the model ResNet50 and the Mini Batch Size. The experimental results showed that when the migration learning model had 30 migration layers, the number of iterations was 6, the learning rate was 0.001, and the Mini Batch Size was 10, so the method effect was optimal. The accuracy of the model verification set was 94.31%, and the accuracy of the test set was 93.93%. The algorithm in this paper estimates the accuracy of fry body length by about 2% compared with the traditional image processing method. In the future, in the actual production scenario, the method can be nested into the fry body length separation device, the scientific research can be put into actual production, the fry damage can be reduced, and the foundation for the future unmanned fishery can be laid.

Keyword: Fish fry; Body length; ResNet50; Image processing; Migration learning
引 言

由于自动化技术的逐渐引入, 现代水产养殖已经实现了从水体充氧, 水温, 投喂, 排污, 水循环等控制的一体化自动装置[1, 2], 但是这些生产过程大都是从鱼苗至成鱼[3], 鱼苗的培养和出售还未实现自动化。 在鱼苗的培养过程中, 经过一段生长周期之后, 鱼苗的长度会由于生长的差别而出现分层的现象, 鱼池中会出现大鱼苗吃小鱼苗, 或者大鱼苗攻击小鱼苗的现象, 导致被攻击鱼苗出现饮食问题, 生病甚至死亡等问题, 给养殖场造成经济损失。 其次, 不同大小的鱼苗对于饲料的投喂也有不同的需求, 适时分塘, 将大鱼苗和小鱼苗分开会达到节约饲料的目的, 商家会根据鱼苗的不同的长度制定不同的销售价格。 为提高渔民的经济收入, 在鱼苗的售卖过程中目前尚缺少有效无损地估测鱼苗长度的方法。 针对上述问题, 提出了一种用迁移学习实现鱼苗分类的方法, 并通过试验验证了有效性。

深度学习[4]是对数据进行多层次表示的学习方法, 即用一种通用的学习程序从数据中进行学习。 深度卷积神经网络已成为过去几年分类任务中的标准方法。 深度卷积神经网络在ILSVRC-ImageNet等大规模视觉识别挑战上压倒一切的表现使得分类方法从基于手工 制作的特征提取器和浅层分类器到深度卷积神经网络进行转变[5]

深度卷积神经网络在ImageNet挑战中的分类表现趋势显示, 模型越深入, 模型的分类效果就越好。 2012年, 8层的AlexNet架构在ImageNet上的挑战结果是16.4%的top5分类错误率。 2014年, 具有16层的VGG16[6]模型和19层的VGG19模型的结果是7.3%的top5分类错误率, 而22层GoogLeNet模型的top5分类错误率为6.7%, 而在2015年, 具有152层的ResNet[7, 8]模型的top5分类错误率为3.57%, 上述方法在分类问题上的表现给本文问题研究开拓了新的思路。

卷积神经网络相较于其他深度学习网络在分类识别中达到的效果最好[9, 10, 11]。 郝明明提到将自动化技术和计算机视觉技术相结合, 构建一个基于计算机视觉的鱼苗自动分离系统。 传统的鱼苗分类方法主要是利用不同大小的渔网设计成的分类装置而成[12, 13], 但是在自动化的分类过程中会对鱼苗产生损伤。 郭卜瑜等运用双目视觉测量系统的方法实现了鱼苗长度测量[14], 误差在8%以内, 但是其计算复杂度高, 数据采集复杂, 对于大量鱼苗的快速分类问题该方法并不具有推广价值。

1 实验部分
1.1 数据采集

实验数据集来源于山东省莱州市明波水产有限公司, 拍摄的鱼苗品种为斑石雕, 在工作人员进行鱼苗分拣时挑选不同种长度的鱼苗, 通过手工测量10种不同长度的鱼苗获取鱼苗的真实长度。

采集图像的相机名称为佳能600D, 核心参数包括: 传感器: APS画幅(22.3 mm× 14.9 mm); 有效像素1 800万, 影像处理器为DIGIC 4; 最高分辨率为5 184× 3 456, 对焦模式为单次自动对焦, 没有开启闪光灯。

所有照片的拍摄都是将相机镜头固定, 保持相机镜头至水面为固定高度19 cm, 将盛放鱼苗的容器放在高为22 cm的水桶上, 容器水深为3.1 cm, 直径为15 cm, 高度8 cm, 共1 933张, 不同长度的鱼苗图像数据如图2所示。 采集数据示意图如图1所示。

图1 采集数据示意图Fig.1 Data collection diagram

图2 不同长度的鱼苗数据Fig.2 Picture of fish fry of different length

1.2 数据预处理

数据预处理由数据归一化和增强两部分组成。 归一化将数据统一映射到[0, 1]区间, 在进行梯度下降处理时, 会减少迁移学习模型训练时间, 提升模型的收敛速度和精度。 数据增强可以扩大原有的数据集样本, 对模型的识别性能和泛化能力都有着非常重要的作用。

1.2.1 数据增强

采集的鱼苗图像数据集分辨率为5 184× 3 456, 通过Easy Image Modifier软件将所有图像大小统一处理成为224× 224, 以便处理。 在模型训练阶段, 增加鱼苗图像数据集的数量可以有更多的训练数据, 以减少模型训练中过拟合现象的发生。 在测试阶段, 数据扩展可以提高鱼苗图像的长度估算的准确率。

为扩大数据集, 采用图像翻转的数据扩展方法, 把鱼苗图像通过下翻转, 右翻转和右下翻转的数据扩大鱼苗图像数据集, 扩充后数据量为6 677张。 列举其中一种鱼苗图像翻转的效果, 如图3所示。

图3 图像增强结果Fig.3 Image enhancement results

1.2.2 数据归一化处理

数据归一化就是要让数据归一化为均值为0, 方差为1, 见式(1)

x̅(k)=x(k)-E(x(k))Var(x(k))(1)

E(x(k))=1mi=1mxi(2)

Var(x(k))=1mi=1m(xi-E(x(k)))2(3)

其中m是数据量的个数, x是小批量处理的值, k是批次数; 其中最小批次的均值为式(2), 小批次数据的方差计算为式(3)。

y(k)=γ(k)x̅(k)+β(k)(4)

式(4)中的γ , β 是需要学习的参数, 为规范化增加了2个参数, 用来保持模型的表达能力。

1.3 分类模型

1.3.1 ResNet50

ResNet50应用到残差结构, 残差结构其首段和末端的1× 1卷积用来减少和恢复维度, 这两种结构的时间复杂度相似, 但是其结构数量增加, 网络深度增加, 同时解决了退化问题, 性能不断提升。 如图4和图5所示。

图4 残差网络图Fig.4 Residual network diagram

图5 ResNet50架构图Fig.5 ResNet50 Architecture diagram

残差单元的数学表示如式(5)和式(6)

yl=h(xl)+F(xl, Wl)(5)

xl+1=fyl(6)

其中, xlxl+1是第l个残差单元的输入和输出, F是一个残差函数, h(xl)=xl是一个单位映射, f是ReLU(线性整流)函数。

h(xl)=xl, xl+1=yl, 从而可以递推得到式(7)

xL=xl+i=1L-1F(xi, wi)(7)

即第L个残差单元的输入可以表示为某一浅层残差单元的输入和其中间所有的复杂映射之和。 记损失函数为ε , 从而计算反向传播得到式(8)

εxl=εxLxLxl=εxL1+xli=1L-1F(xi, wi)(8)

式(8)已经不存在网络结构级连锁产生的连乘, 即 xli=1L-1F(xi, wi)不可能每一批的采样值都是-1, 这也就是梯度消失的本源已经不存在。 说明了残差网络本身的优越性。

为了使模型更适用于本问题, 采用模型微调解决此问题, 主要调节的参数包括迁移学习的层数、 数据的迭代次数、 模型的学习率和Mini Batch Size。

2 实验及结果分析

实验环境: 操作系统 Windows10, Matlab2018, 深度学习工具箱, 利用GPU进行计算, 显卡为 GTX1080, 8G 显存。

设计四组实验, 通过验证集准确度、 测试集准确度以及运行时间三个条件来选定分类模型, 并集中探讨了模型的迁移层数、 迭代次数、 学习率以及Mini Batch Size对评价指标的影响。

实验流程图如图6所示, 分别用四种迁移学习模型AlexNet, VGG16, GoogLeNet, ResNet50对鱼苗体长进行估算, 通过验证集准确率, 测试集准确率, 以及方法的运行时间三个指标, 对模型ResNet50的迁移学习的层数, 迭代次数, 学习率进行微调, 以优化模型。

图6 鱼苗长度估算方法流程图Fig.6 Flow chart of the estimation method of fry length

2.1 模型的选定

实验选取6 677张鱼苗的照片数据, 其中随机将数据集的70%用作模型训练, 10%用作模型验证, 20%用作模型测试。

实验结果如表1所示。 4个模型的参数分别为: 最大迭代次数为6, 学习率为0.000 1, Mini Batch Size为10。 训练过程准确率的变化以及损失的变化如图8, 图9所示。 迁移学习ResNet50模型在验证集上的分类准确率要高于模型VGG16, 但是在测试集上的分类准确率却低于模型ResNet50, 但是模型ResNet50分类所需时间却多于VGG16, 虽然训练开始ResNet50所表现出来的拟合速度较慢, 但是从图中可以看出, 随着迭代次数的增加, 模型的准确率越来越高。 因此平衡运算性能和识别准确度, 选择ResNet50模型用于本研究。

表1 不同的迁移学习模型对于鱼苗体长估计的准确率 Table 1 Accuracy of different migration learning models for estimation of fry body length

图8 四种分类模型准确率
(a): AlexNet模型准确率; (b): VGG16模型准确率; (c): GoogleNet模型准确率; (d): ResNet50模型准确率
Fig.8 Four classification model accuracy rate
(a): AlexNet model accuracy; (b): VGG16 model accuracy; (c): GoogleNet model accuracy; (d): ResNet50 model accuracy

图9 四种分类模型损失图
(a): AlexNet模型损失图; (b): VGG16模型损失图; (c): GoogleNet模型损失图; (d): ResNet50模型损失图
Fig.9 Four classification model loss map
(a): AlexNet model loss map; (b): VGG16 model loss map; (c): GoogleNet model loss map; (d): ResNet50 model loss map

2.2 不同的迁移学习层数

采用不同的迁移学习层数对鱼苗体长进行估计, 数据集的70%作为训练集, 10%作为验证集, 20%作为测试集。 图7(a)— (e)为鱼苗的特征可视化。

图7 鱼苗特征可视化Fig.7 Visualization of fry characteristics

实验结果如表2所示, 迁移学习的层数并非越多越好, 对于鱼苗体长的估计问题, 效果最好的迁移学习层数是30, 验证集准确率达到91.92%, 测试集准确率是91.09%, 运行时间是99 min 17 s。

表2 模型ResNet50不同的迁移层数得到的鱼苗体长估计的准确率 Table 2 Model ResNet50 different migration layers for the accuracy of the estimation of fry body length
2.3 不同的迭代次数

在迁移学习的层数为30层时, 调整模型的迭代次数至模型最优, 数据集的70%作为训练集, 10%作为验证集, 20%作为测试集。

实验结果如表3所示, 迁移学习的迭代次数也并非越多越好, 从表中可以看出运行时间随着迭代次数的增加而增加, 当迭代次数为4和6时, 验证集从92.66%到91.92%, 而测试集的准确率从90.86%到91.09%, 运行时间迭代4次优于迭代6次, 此时, 先选择迭代次数为6时进行以下实验。

表3 模型ResNet50不同的迭代次数对于鱼苗体长估计的准确率 Table 3 Model ResNet50 different iteration times for the accuracy of the estimation of fry body length
2.4 不同的学习率

当迭代次数为6时, 调整模型的学习率至模型最优, 数据集的70%作为训练集, 10%作为验证集, 20%作为测试集。

实验结果如表4所示, 迁移学习的准确率在模型的学习率为0.001时达到最优, 即验证集的准确率为94.31%, 训练集的准确率为93.93%, 虽然运行时间相较于对比的学习率时较长, 但是综合考虑选择学习率为0.001。 当迭代次数为4, 学习率为0.001时, 模型的识别验证集准确率为89.37%, 测试集准确率为90.86%, 运行时间为74 min 7 s。

表4 模型ResNet50不同的学习率对于鱼苗体长估计的准确率 Table 4 Model ResNet50 different learning rates for the accuracy of the estimation of fry body length

综合识别的准确度和性能, 对于本研究鱼苗长度估算问题, 迁移学习模型为ResNet50, 迁移学习层数为30, 迭代次数为6, 学习率为0.001。

2.5 不同的Mini Batch Size

当迭代次数为6时, 调整模型的学习率为0.001, 迁移学习层数为30层时, 调整Mini Batch Size至最优。 数据集的70%作为训练集, 10%作为验证集, 20%作为测试集。

实验结果如表5所示, 从表5可以看出运行时间随着Mini Batch Size的增加而增加, 当Mini Batch Size为10时, 验证集和测试集的准确率均为最高, 所以Mini Batch Size取10。

表5 模型ResNet50不同的Mini Batch Size对于鱼苗体长估计的准确率 Table 5 Model ResNet50 different Mini Batch Size for the accuracy of the estimation of fry body length
2.6 误差分析

不同长度的鱼苗分类的准确率如图10所示, 观察可知, 鱼苗长度在为4.6和5.7 cm的时候, 鱼苗体长估算错误率最高, 4.6 cm的鱼苗易误分为4.3和4.9 cm, 5.7 cm的鱼苗容易分为5.3 cm, 鱼苗长度间隔在0.30.4 cm时, 算法的分类准确率会降低, 长度间隔大于0.5 cm鱼苗长度的估算准确率会大大提高, 从2.5~3.3, 4, 4.9和7 cm, 模型长度的估算值可以与人手工测量值相同。

图10 不同类鱼苗的长度估算准确率图Fig.10 Estimation accuracy of length of different species of fry

本实验所产生的误差来源包括四点: 一是人手工测量鱼苗长度的真实值时所产生的误差; 二是相机在拍摄时鱼苗本身的形态变化所产生的误差; 三是所搭建系统各部分长度测量误差; 四是鱼缸玻璃壁折射产生的误差。 因此, 针对以上误差, 应该提高设备精度, 减小误差。

通过查阅发明专利[12, 13]中所提出的鱼苗长度测量方案中, 相较于本方法, 可能会对鱼苗产生或多或少的伤害。 郭卜瑜[14]等提出的双目视觉方法测量鱼苗长度的方法的实验结果误差在8%左右, 准确率为92%; 而本文提出的方法验证集的准确率为94.31%, 测试集的准确率为93.93%; 本方法相较于双目视觉方法, 预测的准确率有了提高。

3 结论与展望

(1) 提出了基于迁移学习的鱼苗长度估算方法, 方法对比了不同的迁移学习模型, 考虑了迁移学习层数, 迭代次数、 学习率以及Mini Batch Size不同的影响因素。

(2) 实验表明, 本方法对于鱼苗长度的验证集准确度为94.31%, 测试集准确度为93.93%。 均高于现有的文献估算方法。

(3) 平衡运算性能和识别准确度, 在本实验条件下, 选择迁移学习的平衡运算性能和识别准确度, 对于ResNet50模型, 迁移学习层数为30, 迭代次数为6, 学习率为0.001, Mini Batch Size为10。

(4) 由于本研究对象鱼苗的特殊性, 在获取其图片是会出现弯曲等形态, 会导致实验误差。

(5) 该模型可以很好的解决实际水产养殖业中鱼苗的分拣问题, 并且未来将会为精准渔业做出有价值的贡献。

参考文献
[1] Sun M, Hassan S G, Li D. Computers & Electronics in Agriculture, 2016, 127: 425. [本文引用:1]
[2] DONG Shuang-lin(董双林). Journal of Fisheries of China(水产学报), 2019, 43(1): 105. [本文引用:1]
[3] Zion B. Computers & Electronics in Agriculture, 2012, 88(88): 125. [本文引用:1]
[4] ZHANG Jun-yang, WANG Hui-li, GUO Yang, et al(张军阳, 王慧丽, 郭阳, ). Application Research of Computers(计算机应用研究), 2018, 35(7): 7. [本文引用:1]
[5] Russakovsky O, Deng J, Su H, et al. International Journal of Computer Vision, 2015, 115(3): 211. [本文引用:1]
[6] Simonyan K, Zisserman A. Irrigation & Drainage, 2016, 65: 388. [本文引用:1]
[7] Lu J, Hu J, Zhao G, et al. Computers & Electronics in Agriculture, 2017, 142: 369. [本文引用:1]
[8] Ferreira A D S, Freitas D M, Silva G G D, et al. Computers & Electronics in Agriculture, 2017, 143: 314. [本文引用:1]
[9] LI Yan-dong, HAO Zong-bo, LEI Hang(李彦冬, 郝宗波, 雷航). Journal of Computer Applications(计算机应用), 2016, 36(9): 2508. [本文引用:1]
[10] ZHAO Kai-xuan, HE Dong-jian(赵凯旋, 何东健). Journal of Agricultural Engineering(农业工程学报), 2015, 31(5): 181. [本文引用:1]
[11] HUANG Shuang-ping, SUN Chao, QI Long, et al(黄双萍, 孙超, 齐龙, ). Journal of Agricultural Engineering(农业工程学报), 2017, 33(20): 169. [本文引用:1]
[12] SHI Dong-jie, ZHU Hua, ZHANG Xin, et al(史东杰, 朱华, 张欣, ). Fish Body Length Measuring Device( 一种鱼类体长测量装置). Chinese Patent(中国专利): CN206695843U. 2017. [本文引用:2]
[13] ZHANG Chen, CHEN Ting-xun(张晨, 陈庭勋). Structure of Fish Fry Length Measuring Instrument Based on Fish Fry Length( 基于线阵CCD的鱼苗长度测量仪结构). Chinese Patent(中国专利): CN207395666U. 2018. [本文引用:2]
[14] GUO Pu-yu, YU Jia, WANG Jiao-jiao, et al(郭卜瑜, 于佳, 王姣姣, ). Optical Technique(光学技术), 2017, 43(2): 153. [本文引用:2]