李均鹏 祝开艳* 杨 澍
1(大连海洋大学信息工程学院 辽宁 大连 116023)2(大连理工大学计算机科学与技术学院 辽宁 大连 116024)
非法无序的海洋渔业捕捞严重危害着海洋生态的可持续发展,而现有捕捞监管方法主要有船上观察员监管、声呐检测海底鱼群数量、渔船摄像头拍摄捕捞视频后人工分析等,这些方法对人的依赖性较强[1],而且往往存在效率低下甚至监管不作为等问题。为了确保禁渔期鱼类生态安全,缓解高昂的人工成本,实现对渔船长时间不间断地监控,许多国家开始尝试使用渔船摄像头结合计算机视觉技术来监控渔船捕捞情况[1]。渔船摄像头拍摄的图像场景复杂,目标物周围往往存在光照、异类相似物、遮挡等强干扰因素。复杂的监管场景需要高度智能化的捕捞监管系统,这个系统的关键则是泛化性较强的鱼类识别方法,基于机器学习的图像识别方法为我们提供了借鉴。
目前,根据特征提取方式的不同,机器学习领域有关鱼类识别的研究方法可以分为基于传统手工设计特征的学习方法和自动提取特征的学习方法。杜伟东等[2]依靠传统手工设计特征方式,利用小波包变换和离散余弦变换方法提取特征,然后利用支持向量机(Support Vector Machine,SVM)分类,最终对3种鱼类的整体识别准确率达到了90%以上。虽然该系统有不错的精度,但是手工设计特征的好坏主要依赖于经验和运气[3],而且手工设计的特征一般都只针对特定的环境或物种,相关学习方法往往存在泛化性不足等问题。近年来,利用深度学习方法自动提取目标特征成为最有效的特征学习方法[3],基于卷积神经网络(Convolutional Neural Network,CNN)的深度学习方法是其典型代表。在鱼类识别研究领域,张俊龙等[4]使用CNN结合图像预处理技术,对11种海底鱼类图像进行分类,识别准确率在90%以上。Qin等[5]使用CNN提取图像特征,SVM作为分类器,在Fish4-know-ladge(F4K)[6]鱼类数据集上识别准确率为98.64%,但其模型训练成本过大。而顾郑平等[7]使用迁移学习结合SVM分类器,大大降低了模型训练成本,在F4K鱼类数据集上准确率达到了98.6%。王柯力[8]等使用迁移学习的方法,对4种水产动物的识别准确率为97.4%。但上述方法所采用的实验数据背景干扰较小,和渔业监管等复杂场景存在较大差异。机器学习领域有关复杂场景海洋鱼类识别方法的探讨,目前主要存在于Kaggle平台上的过度捕捞监管图像识别(The Nature Conservancy Fisheries Monitoring,NCFM)比赛,但该平台并不公布参赛方案的识别准确率等内容,也尚未发现相关方案的理论性探讨。总体看来,当前有关鱼类识别方法的文献中尚未发现专门针对捕捞监管复杂场景的系统性理论研究。
卷积神经网络自动学习目标特征需要花费大量的时间,但是预训练后的卷积神经网络模型(PretrainedCNN)具有良好的可迁移性[9]。在相似的任务上,PretrainedCNN经过迁移,既可以确保较为理想的训练效果,又可以节省大量的训练时间。所以,迁移学习近年来成为图像识别领域的主要方法之一。
我们在研究海洋渔业捕捞监管智能化系统时发现,使用迁移学习和模型融合的方法可以有效解决复杂场景下海洋鱼类识别问题。该方法从ImageNet数据集获取InceptionV3预训练模型,把此模型的特征提取部分作为实验模型的特征提取器,并把非特征提取部分替换为AveragePooling(平均池化)层和Softmax分类层,形成新的训练网络(PretrainedCNN+Softmax),随后使用目标物周围有较强干扰的NCFM数据集(海洋捕捞监控数据,Kaggle)[10]对实验模型的网络结构参数进行微调(fine-tune),经过十折交叉验证后,得到十个存在差异的识别模型。为了进一步提高模型的识别准确率,实验过程中利用集成学习中的模型融合策略对这十个模型进行融合优化,以强化该方法在复杂场景下的鲁棒性和泛化性。
本研究主要贡献在于提出了一种专门针对海洋渔业捕捞监管这种复杂场景的鱼类识别方法(Transfer Learning+Model Fusion)。较之其他方法,该方法将迁移学习和模型融合进行了有效结合:利用迁移学习降低网络复杂度,减少训练时间;利用模型融合技术进一步提高识别准确率、鲁棒性和泛化性。此外,本文在训练和预测环节都采用了数据增广策略,在解决样本数量不足问题的同时,有助于增强模型的泛化性。经实验对比验证,该方法识别准确率和泛化性等性能明显优于传统方法和现有相关深度学习方法,可以为海洋渔业捕捞监管系统的智能化升级提供可靠的技术支撑。
1.1.1基本原理
卷积神经网络本质上是一种层次模型。原始数据经由输入层传入,通过卷积、池化和非线性激活函数映射等一系列操作的层层堆叠,将低层次的具象信息逐层提取表示为高层次的抽象信息,这个过程称为前向传播[11]。最终,卷积神经网络的最后一层把目标任务形式化为损失函数,把预测结果和真实结果进行对比,得到误差后凭借反向传播算法[12]将其由最后一层逐层前传,参数校正更新后再次进行前向传播,如此往复,直到最后模型收敛[11]。卷积操作运算公式如下[13]:
(1)
1.1.2InceptionV3
InceptionV3[14]是由Google在2014年发布的GoogLeNet(InceptionV1)[15]改进而来。GoogLeNet采用了Inception架构,对比传统卷积的单一尺寸卷积核操作,这种Inception架构选用多种尺寸的卷积核,并且在同一个卷积层进行卷积操作。同时,为了防止多种尺寸卷积核拼接到一起后feature map宽度过大而导致的参数数量过多问题,加入了1×1的卷积核降低feature map宽度。InceptionV3中的Inception模块有三种不同的卷积操作架构,如图1所示。
(a) 输入为35×35的架构
(b) 输入为17×17的架构
显然,到了InceptionV3版本,Inception模块不仅改进了架构,使其包含三种不同的结构,而且汲取了VGGNet[16]精华思想,用小尺寸卷积核代替大尺寸卷积核,减少了计算量;同时,非线性映射的增多,也扩展了模型表达能力[14]。
把已有知识迁移到相似领域的新环境中应用的方法称为迁移学习[17]。迁移学习的核心思想是复用,利用现有模型去解决新环境或新领域中的问题是其基本使命。
迁移学习涉及到了域和任务的概念。一个域D主要由特征空间χ以及χ上的边际概率分布P(X)组成,其中,X={x1,x2,…,xn}∈χ。对于给定的特定域,一个任务T包含标签空间Y和预测函数f(·)两个部分,即T={Y,f(·)}[17]。若给定一个源域Ds和一个相对应的任务Ts,一个目标域Dt和一个相对应的任务Tt,在保证Ds≠Dt、Ts≠Tt的情况下,把在Ds、Ts中学到的信息应用到Dt、Tt中,以期Tt中的预测函数f(·)得到提高。
目标域数据较少情况下,通过对神经网络的迁移,可以把源域数据上的预训练模型应用在目标域上,改进后形成新的训练模型,从而更好地解决目标任务。
如表1所示,VGG16、VGG19、ResNet50[18]、GoogLeNet等都是在ImageNet上大放异彩的模型。通过对比这些模型在ImageNet上的Top1准确率、Top5准确率、训练参数量以及网络层数,发现InceptionV3在准确率较为理想的情况下,训练参数量也相对较少。因此,本研究选择InceptionV3作为预训练模型。
表1 ImageNet竞赛中部分模型对比[19]
Jason Yosinski等[9]经过实验发现,神经网络前几层训练后得到的通用特征迁移效果较好,而网络变深后学习到的一些特定特征并不适合迁移;另外,深度迁移网络中加入fine-tune,可以较好地克服数据之间的差异,在目标任务中甚至比原始网络效果更好,而且发现网络层数的迁移可以加速网络学习和优化。本实验在针对网络层数进行迁移并构建完成新的训练网络后,使用fine-tune的方法对网络进行微调训练。
1.4.1网络迁移
不同数据集训练出的模型在深层网络的语义信息有较大差异。本实验从预训练模型InceptionV3中取出特征提取部分,作为实验模型的特征提取器,在特征提取器后接入AveragePooling层和Softmax分类层,新的训练网络结构(PretrainedCNN+Softmax)如图2所示。
图2 训练网络结构
为初步验证方法的性能,实验针对新网络直接进行训练,最终得到的模型(未经过微调、交叉验证和模型融合)识别准确率为67.5%。
1.4.2通过fine-tune微调网络
如图2所示,本研究搭建的新网络保留了源模型的全部特征提取能力,即预训练模型底层通用特征部分的权重参数得到保留,而高层语义特征则针对目标域数据集重新训练,这种架构更加适应目标样本。另外,新网络的特征提取部分并不需要随机初始化,往往经过小幅度调整就能够收敛。所以,本实验针对目标域数据以0.000 1的学习率对整个网络重新训练,使其在目标任务上的表现更加优秀。同时,较低的学习率确保了权重参数每轮迭代变化幅度较小,可以有效避免过拟合。
对模型本身的改进需要较长的研究周期,相比之下,模型融合能在较短时间内提升整个系统的认知能力。所以,本实验采用了集成学习中的模型融合策略,使算法性能得到进一步优化。
1.5.1模型融合的核心思想
综合使用若干个基学习器,不同基学习器经过训练形成不同的模型,通过恰当的融合方法可以充分发挥各个模型的优势,最终得到一个经过优化后的结果。这个结果融合了多个模型的假设,抵消了单一假设和目标假设之间的误差,往往比单一模型得到的结果具有更强的鲁棒性和泛化性[20]。在模型融合时,如果单体模型性能较好且各个模型之间存在一定差异,进行融合后就会得到更好的效果。
1.5.2模型融合方法
模型融合主要有投票法、学习法和平均法。结合本研究特点,拟采用平均法进行模型融合。平均法常用于数值型输出的任务,分为简单平均法和加权平均法。简单平均法是把各个训练模型的输出结果相加求平均后的结果作为最终输出结果,公式如下[21]:
(2)
式中:T表示融合模型数量;hi(x)表示单个模型的输出结果。加权平均法是把各个模型的输出结果加权求平均后的结果作为最终输出结果,公式如下[21]:
(3)
式中:T表示融合模型数量;wi表示模型权重(由训练获得);hi(x)表示单个模型的输出结果。
一般而言,模型之间性能相差较大时采用加权平均法,性能相近但存在一定差异时则采用简单平均法。
本实验采用NCFM数据集,该数据集来源于kaggle数据竞赛平台。数据集图像由渔业监管组织安装在渔船上的摄像头拍摄,主要用来监测非法捕捞情况。该数据集共有3 777幅鱼类图像,分为8种识别类别,分别为鲯鳅鱼(DOL)、长鳍金枪鱼(ALB)、黄鳍金枪鱼(YFT)、大眼金枪鱼(BET)、月鱼(LAG)、鲨鱼(SHARK)、其他鱼类(OTHER)、无鱼类(NoF),其他鱼类和无鱼类图像的存在可以更好地提升训练模型的泛化性。图3为该数据集部分鱼类图像示例。观察图像可知,目标物处于有光照、异类相似物(甲板覆盖物破洞等)、遮挡等强干扰因素的复杂场景里。
(a) 大眼金枪鱼 (b) 黄鳍金枪鱼 (c) 长鳍金枪鱼图3 部分鱼类图像示例
实验在系统环境为CentOS 7.5的阿里云服务器上进行,该服务器配备一张显存为16 GB的Tesla-P100显卡。设计实验方案时,在pengpaiSH[22]方案公开部分(Kaggle平台TOP5%,实验复现后准确率为89.55%)的基础上,进一步采用了增加数据增广种类、十折交叉验证以及模型融合等策略。训练使用以TensorFlow为后端的Keras框架,设置训练迭代次数(epoch)为100,批处理数量为32;在使用显存为7 819 MB的情况下,整体训练时间约41小时40分钟。实验流程框架如图4所示。
图4 实验流程框架图
2.3.1数据集划分
实验采用分层抽样方法,把NCFM数据集内3 777幅图像划分为训练集、验证集、测试集,比例为8∶1∶1。其中,3 061幅用于训练,336幅用于交叉验证,380幅用于测试。为了确保交叉验证后得到的每个模型之间存在一定差异,实验随机划分了十个不同的训练集和交叉验证集,并使用同样的测试集验证模型性能。
2.3.2数据归一化与数据增广
根据InceptionV3模型输入要求,本实验把数据集内大小不同的图像进行归一化,调整为299×299像素。
数据增广可以增大样本量,有效避免过拟合。为了强化模型的泛化性和鲁棒性,本实验不仅在训练过程中进行了数据增广,而且在预测过程中也进行了数据增广。模型预测原图像后,会再预测增广后的图像。把模型对原图像预测的结果和对增广图像预测的结果相加求平均,所得平均数作为最终预测结果输出。实验采用的数据增广技术为角度变换、平移、横向和纵向翻转等。数据增广效果示例如图5所示。
(a) 原图 (b) 角度偏移 (c) 横向翻转图5 数据增广效果示例
实验进行十折交叉验证后,得到十个不同的模型,任意选取其中两个(模型1,模型10)作为对照组,通过准确率以及损失值的变化曲线来观察模型之间的差异性。如图6、图7所示。其中:训练准确率表示训练集精度的变化,交叉验证准确率表示交叉验证集精度的变化;训练损失值表示训练集误差值的变化,交叉验证损失值表示交叉验证集误差值的变化。
观察图6、图7可知:起初两个模型准确率都比较低,且损失函数的损失值都呈快速下降趋势;大约在60次迭代以后,两者都开始趋于收敛,而且模型在训练集和验证集上的准确率以及损失值都非常接近,模型表现良好,没有出现过拟合。对比图6、图7可知,模型10训练集图像和验证集图像之间的间隙相对于模型1较小,说明模型10的拟合能力比模型1好。两者对比表明,训练出的各个模型之间虽然性能相近但也存在一定差异,这一结果与实验预期一致。
(a) InceptionV3模型1准确率变化曲线
(b) InceptionV3模型1损失变化曲线图6 InceptionV3模型1训练过程
(a) InceptionV3模型10准确率变化曲线
(b) InceptionV3模型10损失变化曲线图7 InceptionV3模型10训练过程
Softmax分类层最终输出结果为数值型,且由图6、图7分析可知,各模型之间整体性能相近并存在一定差异,所以本实验采用了简单平均法对各模型进行融合。另外,为了验证模型融合是否对预测准确率有提升作用,本实验任意选取了3组单个模型(模型1、模型5、模型10)的准确率分别和模型融合后的准确率进行对比,对比结果如表2所示。
表2 实验结果 %
实验结果表明,模型融合策略利用不同模型之间的差异性,对各个模型的输出结果进行融合,在整体上起到了互补作用,测试准确率有明显提升,在模型1、模型5、模型10上分别提高1.578%、1.038%、0.518%。
为了验证模型融合后的泛化性是否得到了提升,本实验选取了图3中的(a)图(大眼金枪鱼)进行预测结果输出,该图为测试集中的图像。在这幅图像中,目标物周围存在较多类似鱼形状的甲板覆盖物破洞、渔民对鱼的遮挡以及渔民手上的白手套等典型强干扰因素,识别难度较大。分别输出模型1、模型5、模型10以及融合后的模型对这幅图像的预测结果(概率最高的种类为预测结果),如表3所示。
表3 图像预测结果
由表3可知,单个模型输出结果对错皆有,模型融合后则得到正确结果。这是因为在深度学习中,模型可能会因为学习能力的强大而学习到数据上的一些噪音,进而导致模型考虑问题相对片面,很难泛化[23]。通过融合多个模型并使用简单平均法对结果取平均,就会降低对噪音部分的考虑,增强方法整体的泛化性和鲁棒性。
本文方法与相关方法准确率对比如表4所示。
表4 准确率对比
显然,和传统方法相比,利用迁移学习和模型融合的方法对海洋渔业捕捞监管复杂场景下的鱼类图像进行识别分类,准确率有明显提升,而且不需要人为设计特征,增强了模型的可用性。综合分析表3、表4可知,相较于CNN相关模型,迁移学习和模型融合的方法不但准确率更高而且泛化性也更强,对海洋渔业捕捞监管复杂场景具有明显的适用性。
针对海洋渔业捕捞监管复杂场景,提出了一种基于迁移学习模型融合的海洋鱼类识别方法。该方法经过迁移学习节省了大量训练时间;利用交叉验证、模型融合和数据增广等策略则确保了其识别准确率和泛化性;在NCFM数据集上进行实验,识别准确率达到了97.368%。实验结果表明,使用迁移学习和模型融合的方法可以有效解决渔业监管复杂场景下的海洋鱼类识别问题,能够为渔业捕捞监管系统智能化升级提供可靠的技术支持。后续研究中,将尝试加入目标检测和多种不同模型融合技术,进一步提升复杂场景海洋鱼类识别方法的整体性能。在此基础上,结合信号处理技术,探讨识别方法在现实环境中的落地,力争在信号可传输的海洋区域实现季节性渔业捕捞监管的智能化和即时化。