基于深度可分离卷积网络的粘连鱼体识别方法

2021-11-25 13:20李道亮曹新凯李文升田港陆段青玲
农业工程学报 2021年17期
关键词:鱼体集上鱼群

张 璐,李道亮,曹新凯,李文升,田港陆,段青玲※

(1. 中国农业大学国家数字渔业创新中心,北京100083;2.中国农业大学信息与电气工程学院,北京 100083;3. 中国农业大学北京市农业物联网工程技术研究中心,北京 100083;4. 莱州明波水产有限公司,莱州261400)

0 引 言

中国是渔业大国,水产品产量以水产养殖为主。2019年全年养殖水产品产量达5 079万t,占水产品总产量的78.38%[1]。随着人工智能技术的发展,水产养殖也朝着自动化、智能化的模式转变[2-4]。计算机视觉技术因其具有简单、无损、高效等特点,成为提升现代水产养殖技术的重要手段[5-7]。在水产养殖中,养殖鱼类生活在三维水体中,且由于其频繁游动,导致图像中鱼体形状呈现不规则、鱼体之间存在复杂多样粘连的特点[8]。因此,准确识别出图像中的鱼体目标是进行后续图像处理的关键,是实现多种基本水产养殖操作自动化的基础。本研究对粘连鱼体目标进行识别研究,对于水产养殖中的鱼群计数、养殖密度估算等具有重要应用价值。

目前粘连目标识别研究多采用基于图像特征阈值的方法,即先采用图像处理技术分割出目标连通区域,再提取出目标连通区域的特征,通过设定特征阈值的方式判定该目标连通区域是否粘连[9]。Duan等[10-11]分别采用连通区域圆形度和连通区域面积作为粘连目标识别特征,人工设定特征阈值,实现了粘连鱼卵的识别,在此基础上进行粘连鱼卵分割和鱼卵计数研究。韩书庆等[12]采用连通区域复杂度和连通区域面积作为粘连区域判断的依据,通过试验确定特征阈值,实现了粘连猪体区域的识别,在此基础上分割出粘连猪体。劳凤丹等[13]采用目标边界复杂度和连通区域面积作为粘连目标识别的特征,通过模型学习训练确定特征阈值,实现了复杂环境下粘连蛋鸡的识别,在此基础上进行蛋鸡计数。在该类粘连目标识别方法中,特征的选取、特征阈值的确定都依赖于人工或者多次试验,具有一定的主观性。并且,当应用目标改变时,特征、特征阈值可能需要重新确定,因而算法的普适性较差。

以卷积神经网络为代表的深度学习目标识别方法通过提取特征,学习数据规律,构建目标分类模型,实现目标的自动识别[14-16],目前在水产养殖领域已有一些研究与应用[17-19]。Taheri-Garavand等[20]利用基于卷积神经网络的VGG16结构对鲤鱼图像进行特征自动提取,通过分类器对图像进行分类,实现了鲤鱼新鲜度的自动识别。Tamou等[21]采用基于卷积神经网络的AlexNet结构自动提取鱼类图像特征,采用支持向量机分类器对鱼类图像进行分类,实现了水下活鱼的识别。Rauf等[22]提出了一种32层的卷积神经网络模型,自动提取鱼体图像特征,实现了鱼类品种的识别。可见,深度学习技术在目标识别领域已有一定应用[23-25],但尚未应用于粘连目标识别中。

综上,本研究将深度学习技术应用于粘连鱼体目标识别上,以解决目前粘连目标识别方法精度低、普适性差等问题。与传统卷积神经网络相比,深度可分离卷积网络在保证相同卷积特征提取效果的基础上,具有较低的计算复杂度,能够进一步满足实际生产中粘连鱼体自动化、实时、准确识别的需求。因此,本研究引入深度可分离卷积网络代替传统的卷积神经网络构建粘连鱼体识别模型,提出了基于深度可分离卷积网络的粘连鱼体识别模型。首先采集鱼群图像数据,采用图像处理技术分割出鱼体连通区域图像,构建粘连鱼体识别数据集;其次构建基于深度可分离卷积网络的粘连鱼体识别模型,采用迁移学习方法训练模型;最后基于已训练模型实现粘连鱼体的识别。本研究识别方法可自动识别出粘连鱼体,为实现水产养殖自动化、智能化提供支持。

1 材料与方法

1.1 鱼群图像采集

本研究在中国农业大学国家数字渔业创新中心搭建图像采集平台,采集鱼群图像数据,平台示意图如图1a所示。平台包括的硬件设备有:鱼缸1个(长×宽×高为1 m×1 m×1 m)、增氧机4台(WP-3300A,松宝,中山市松宝电器有限公司,中国)、摄像头1个(海康威视3T86FWDV2-I3S,800万像素,4 mm焦距)、计算机1台(64位Windows 10操作系统,Intel(R) Core(TM) i5-4590 CPU @ 3.3 GHz,8 GB内存)等。采用支架将摄像头固定在鱼缸正上方,距离水面1.5 m,通过网线连接摄像头与计算机。

采集到的鱼群视频数据被传送到计算机中存储。从采集到的鱼群视频数据中截取视频帧,获得鱼群图像(图1b)。试验采集的鱼群图像为红-绿-蓝(Red-Green-Blue,RGB)彩色图像,图像分辨率为3 840×2 160像素,图像格式为.jpg格式,共4 000张。

1.2 鱼体图像预处理与数据集构建

由于鱼群集聚的特性,在一张鱼群图像中会存在多个鱼体连通区域。粘连鱼体识别是指识别出该连通区域中的目标鱼体是否粘连。因此,从鱼群图像中分割出目标鱼体,获取鱼体连通区域图像是进行粘连鱼体识别的基础。本研究首先对目标鱼体进行增强处理,再分割出鱼体连通区域图像,构建粘连鱼体识别数据集(图2)。

首先,对鱼群图像进行颜色空间转换、颜色分量提取和中值滤波处理,以增强图像对比度。由于原始鱼群图像中鱼体目标在色调-饱和度-明度(Hue-Saturation-Value,HSV)颜色空间(图3a)中的明度(Value,V)分量图像(图3b)中与背景具有明显的颜色反差。因此,提取HSV空间的V分量图像[26]作为鱼群图像处理的初始图像。在提取V分量图像时,分辨率的阈值上限和阈值下限分别设置为100像素和225像素。在此基础上,对图像进行中值滤波处理,滤波核的尺寸为3像素,获得中值滤波图像(图3c)。

其次,从背景中分割出目标鱼体。由于本研究采集的鱼群图像来自同一试验平台,所有图像具有相同的背景,因此采用背景差分法[10]实现目标鱼体的分割,分割结果如图3d所示。

最后,通过开运算、闭运算、小面积去除和空洞填充[10]去除图像中孤立的小点、毛刺等噪声(图3e)以及填充鱼体表面的空洞,获得鱼体连通区域图像(图3f)。开、闭运算中采用的正方形结构元素的尺寸为3×3像素,小面积去除中面积阈值设置为300像素,空洞填充采用Python软件OpenCV库的Floodfill函数实现。

由图3f可知,经过预处理后,该鱼群图像中含有11个鱼体连通区域图像,为本研究粘连鱼体识别数据集贡献了11个样本。由于卷积神经网络处理三通道图像,而分割出的鱼体连通区域图像为二值图像,因此需要获取鱼体连通区域图像的RGB图像。本研究采用Python软件Pillow库的Image.crop函数在原鱼群图像中切割出鱼体连通区域图像的RGB图像,构成粘连鱼体识别数据集,共27 836张。水产养殖中鱼群养殖密度较大,多条鱼之间出现相互接触的情况,并且由于其生活在三维水体中,俯视鱼群时,不同水体层中的鱼体会出现重叠的情况。上述情况导致图像中的鱼体是连接在一起的,则这类图像称为粘连鱼体图像。当图像中只有一条鱼时,该图像称为非粘连鱼体图像。基于上述定义,人工标注粘连鱼体识别数据集,则获得粘连鱼体图像9 105张,非粘连鱼体图像18 731张。

1.3 粘连鱼体识别模型

1.3.1 基于深度可分离卷积网络的粘连鱼体识别模型构建

MobileNet是一种基于深度可分离卷积的轻量级深度神经网络,具有较低的参数量和计算量,可应用于手机等智能终端[27]。因此,本研究选用该网络构建分类模型,识别出粘连鱼体和非粘连鱼体。本研究提出了一种粘连鱼体识别模型的网络结构,如图4所示。该模型由输入层、卷积层、池化层和全连接层构成。其中,卷积层由1个传统卷积和13个深度可分离卷积块构成,传统卷积由32个3×3步长为2的卷积核、批量规范化和激活函数构成,深度可分离卷积块由卷积核尺寸为3×3的深度可分离卷积、卷积核尺寸为1×1的传统卷积、批量规范化和激活函数构成。

首先将粘连鱼体图像的尺寸缩放至224×224像素作为模型输入图像;其次采用卷积核尺寸为3×3像素的传统卷积对输入图像进行特征提取;再通过深度可分离卷积进行特征提取,并采用卷积核尺寸为1×1像素的传统卷积进行通道处理,这一过程重复多次;然后通过平均池化层实现特征图的压缩降维;最后通过全连接层对卷积层和池化层提取的高维图像特征进行降维平铺,将结果输入到Softmax分类器中实现粘连鱼体和非粘连鱼体的识别。

深度可分离卷积将传统的卷积操作分为深度卷积操作和传统卷积操作,以此减少卷积操作的参数量和计算量。假设输入特征图尺寸为DF×DF像素,输入通道数为M个,卷积核尺寸为DK×DK像素,输出通道数为N个,则传统卷积的计算量R1和深度可分离卷积的计算量R2的数学表达式分别如式(1)和式(2)所示:

深度可分离卷积与传统卷积的计算量比如式(3)所示:

由式(3)可知,深度可分离卷积计算量的减少与输出通道数和使用的卷积核尺寸相关。例如,当卷积核尺寸为3×3像素,输出通道数为64个时,深度可分离卷积比传统卷积减少了约8~9倍的计算量。

在MobileNet中应用深度可分离卷积时加入了批量规范化(Batch Normalization, BN),并使用了修正线性单元(Rectified Linear Unit,ReLU)中的ReLU6作为激活函数,其结构如图5所示。

引入BN是为了在模型训练过程中动态调整一个批量数据的均值和标准差,以保证网络容量、加快网络训练速度、提高网络泛化能力。其具体计算步骤如下:

假设输入数据为X=X1…m,xi表示输入的第i个数据,共输入m个数据,输出数据为yi,此批量数据X的均值和方差分别为μx和σx2,其计算如式(4)和式(5)所示:

进行数据归一化得到xˆi和yi的值分别如式(6)和式(7)所示:

式中xˆi为对xi进行归一化后得到的值,ε为防止除0引入的极小量,γ为尺度因子,β为平移因子。

激活函数采用ReLU6函数。假设a表示输入特征值,则ReLU在a>0的区域使用a进行线性激活,有可能造成激活后的值太大,影响模型的稳定性,为抵消ReLU函数的线性增长部分,使用了ReLU6函数,其计算如式(8)所示:

1.3.2 基于迁移学习的粘连鱼体识别模型训练

深度学习模型的训练阶段分为2种策略,一种是在搭建的模型上从头开始训练,另一种是通过预训练模型进行训练,即迁移学习。迁移学习减少了构建深度学习模型所需的训练数据、计算力,能够很好地解决小数据集容易在复杂网络上的过拟合问题[28]。因此,本研究运用迁移学习思想,充分利用MobileNet网络模型在ImageNet数据集上学习到的大量知识,将其用于粘连鱼体图像分类识别问题。

迁移学习包含2种训练机制,其一,冻结卷积层,只对全连接层进行训练;其二,对所有层进行训练。基于这2种训练机制,本研究采用了下述2种方式训练粘连鱼体识别模型,基于试验结果,选择出效果较好的一种迁移学习训练方式。训练方式1:冻结全部卷积层,只对全连接层进行粗略训练。训练方式2:首先冻结全部卷积层,只对全连接层进行粗略训练,其次解冻卷积层,对所有层进行精调训练。

1.4 参数设置及评价与试验环境

1.4.1 参数设置及评价

本研究粘连鱼体识别图像数据集共27 836张,随机选择90%用于训练,10%用于测试,即训练集包含25 052张图像,测试集包含2 784张图像。训练集中包含用于模型训练的图像和模型验证的图像,两者比例为9:1。

综合考虑硬件设备性能及训练效果,试验每批次送入网络中的训练和测试图像都是4幅,即批尺寸设置为4,动量参数设置为0.9,迭代次数为100。采用Adam优化算法[29],分别设置初始学习率为0.01、0.001和0.000 1,基于试验结果选择出效果较好的学习率。损失函数采用交叉熵损失函数的损失值(loss value,Vloss)[30],计算如式(9)所示:

式中yˆjc表示第j个鱼体图像属于第c类的真实概率;yjc表示第j个鱼体图像属于第c类的预测概率;n表示鱼体图像的总数量。

采用准确率(Accuracy)作为评价指标,其计算如式(10)所示:

式中t表示正确识别的鱼体图像数量。

为了进一步验证本研究提出的基于深度可分离卷积网络的粘连鱼体识别方法的优越性,将其与基于支持向量机(Support Vector Machine,SVM)和基于反向传递神经网络(Back Propagation Neural Network,BPNN)的机器学习识别方法进行了对比试验。SVM和BPNN识别

方法中采用目前常用的粘连目标识别特征连通区域面积A和连通区域复杂度C作为模型分类特征。连通区域复杂度的计算如式(11)所示:

式中P表示连通区域周长。

1.4.2 试验环境

本研究试验的硬件环境:操作系统为64位Windows 10,中央处理器(Central Processing Unit,CPU)为Intel(R)Core(TM) i5-9300H,主频为2.4 GHz,内存为8 GB,图形处理器(Graphics Processing Unit,GPU)为NVIDIA GeForce GTX 1660Ti;软件配置:运算平台为Cuda Toolkit 10.0.130,深度神经网络的GPU加速库为Cudnn 10.0,编程语言为Python,深度学习库为Keras 2.1.5 和Tensorflow-gpu 1.13.2。SVM方法基于Python软件中的机器学习库Scikit-learn(Sklearn)实现,BPNN方法基于Python软件中的深度学习库Keras实现。

2 结果与分析

2.1 粘连鱼体识别模型验证结果

本研究提出了一个基于深度可分离卷积网络的粘连鱼体识别模型,实现了粘连鱼体的识别。在模型训练过程中,分别采用了2种不同的迁移学习训练方式(训练方式1和训练方式2),设置了3种不同的常见学习率(0.01、0.001和0.000 1),以选出较好的迁移学习训练方式和学习率。采用不同迁移学习训练方式和不同学习率在训练集和验证集上的训练和验证结果如表1所示。

由表1可知,在2种迁移学习训练方式和3种学习率的组合下,基于深度可分离卷积网络的粘连鱼体识别方法在训练集和验证集上的准确率均较高,表明了该方法的有效性,能够准确识别出粘连鱼体。当采用迁移学习训练方式2在学习率为0.000 1时,基于深度可分离卷积网络的粘连鱼体识别方法在训练集上的准确率为100%,在验证集上的准确率为99.60%,优于其他训练方式与学习率的组合,取得最好的结果,因此最终确定为本研究方法。

表1 基于深度可分离卷积网络的粘连鱼体识别模型训练和验证结果Table 1 Training and validation results of recognition model for adhesive fish based on depthwise separable convolution network

2.1.1 不同迁移学习训练方式试验结果对比

迁移学习中基于预训练模型,采取不同的训练方式对于模型的收敛速度和准确率均有一定影响。采用2种不同迁移学习训练方式在学习率为0.000 1时分别得到的损失值曲线和准确率曲线如图6所示。当迁移学习采用训练方式1时,模型的收敛速度很慢。完成100次训练后,模型在训练集上获得的最小损失值为0.243,最大准确率为91.33%,模型在验证集上获得的最小损失值为0.301,最大准确率为88.38%。损失值较大,准确率较低,且2个指标在训练集和验证集上获得的值相差较大。当迁移学习采用训练方式2时,在粗略训练阶段,模型在训练集上获得的最小损失值为0.245,最大准确率为91.22%,模型在验证集上获得的最小损失值为0.453,最大准确率为83.23%,该阶段损失值较大,准确率较低。在精调训练阶段,模型在训练集上获得的最小损失值为0,最大准确率为100%,模型在验证集上获得的最小损失值为0.032,最大准确率为99.60%,该阶段损失值大幅度降低,准确率大幅度提升。上述结果表明,进行迁移学习时,精调阶段的训练有助于模型快速收敛。

2.1.2 不同学习率试验结果对比

学习率是深度学习模型训练过程中的重要超参数,表示每次更新参数的幅度。合适的学习率可以加快模型训练收敛速度。采用迁移学习训练方式2在不同学习率下分别得到的训练集和验证集的损失值曲线和准确率曲线图,如图7所示。当学习率设置为0.01时,在粗略训练阶段,模型在训练集上获得的最小损失值为1.275,最大准确率为91.34%,在验证集上获得的最小损失值为0.896,最大准确率为92.93%,在精调训练阶段,模型在训练集上获得的最小损失值为5.254,最大准确率为67.41%,在验证集上获得的最小损失值为5.130,最大准确率为68.17%。由此可见,在该学习率下,模型在训练集和验证集上的损失值和准确率均没有收敛到一个较好的值。并且,在进入迁移学习的精调阶段后,在粗略训练的基础上,损失值大幅度上升,而准确率大幅度下降。原因在于,过大的学习率引起损失值梯度爆炸,参数更新过快,破坏了迁移学习中原本训练好的权重信息,使迁移学习失去了意义。当学习率设置为0.001时,模型在训练集上获得的最小损失值为0,最大准确率为100%,在验证集上获得的最小损失值为0.028,最大准确率为99.44%。当学习率设置为0.000 1时,模型在训练集上获得的最小损失值为0,最大准确率为100%,在验证集上获得的最小损失值为0.032,最大准确率为99.60%。由图7可以看出,在这2个学习率下,模型在训练集和验证集上的损失值和准确率均快速收敛并趋于平稳,且当学习率为0.000 1时,模型的性能最好。

2.2 识别模型试验结果对比

将本研究提出的基于深度可分离卷积网络的粘连鱼体识别方法与基于SVM和基于BPNN的机器学习识别方法进行了对比,试验设置和结果如表2所示。由表2可知,本研究提出的粘连鱼体识别方法在测试集上的识别准确率为99.32%,相较于基于SVM的93.86%和BPNN的67.03%,分别提高了5.46个百分点和32.29个百分点。由此可见,本研究方法的性能优于基于SVM和BPNN的机器学习识别方法。原因在于上述2种机器学习识别方法依赖于手动提取特征,难以基于实际数据和具体对象进行特征的自适应调整。

表2 识别模型对比试验的参数设置和结果Table 2 Parameter settings and results of comparative experiments for recognition models

综上,本研究提出的基于深度可分离卷积网络的粘连鱼体识别方法在训练集、验证集和测试集上均取得很高的准确率,验证了本研究方法的有效性;与基于SVM和BPNN的机器学习识别方法相比,准确率均有提升,表明了本研究方法的优越性。本研究方法实现了粘连鱼体的准确识别,对于提升水产养殖自动化、智能化具有重要意义。

3 结 论

针对目前粘连鱼体识别方法准确率低、普适性差等问题,本研究提出了一种基于深度可分离卷积网络的粘连鱼体识别方法。该方法是进行后续鱼体图像处理的关键,对于及时准确地进行水产养殖中的密度估算、鱼群计数,实现渔业自动化、智能化具有重要意义。主要结论如下:

1)在学习率分别为0.01、0.001和0.000 1时,粗略训练与精调训练相结合的迁移学习训练方式获得的验证准确率分别为92.93%、99.44%和99.60%,仅采用对全连接层进行粗略训练的迁移学习训练方式获得的验证准确率分为91.41%、92.01%和88.38%,前者的训练效果更好。

2)当采用对全连接层进行粗略训练和对所有层进行精调训练相结合的迁移学习训练方式,在学习率为0.000 1时,模型快速收敛并取得最好的训练准确率、验证准确率和测试准确率,分别为100%、99.60%和99.32%,识别效果最好。

3)与基于支持向量机(Support Vector Machine,SVM)和基于反向传递神经网络(Back Propagation Neural Network,BPNN)的机器学习识别方法对比,识别准确率分别提高了5.46个百分点和32.29个百分点,表明本研究提出的方法能够根据实际数据和具体识别对象进行特征的自适应调整,更加准确地实现粘连鱼体的识别。

猜你喜欢
鱼体集上鱼群
三维鱼体参数化建模
关于短文本匹配的泛化性和迁移性的研究分析
基于互信息的多级特征选择算法
鱼冷冻之前要去掉内脏
人工鱼群算法在雷达探测器射频端电路设计中的应用
鱼冷冻之前要去掉内脏
鱼群漩涡
朱梦琪??《鱼群》
师如明灯,清凉温润
具功能反应食饵捕食模型动力学分析