APP下载

深度学习在鱼类图像识别与分类中的应用

2017-06-02林明旺

数字技术与应用 2017年4期
关键词:卷积神经网络

林明旺

摘要:各国已经开始利用摄像头来监控渔船的捕捞活动,并运用机器学习技术来对渔船捕获的鱼类图像进行自动的识别与分类从而扼制非法的捕捞。目前非法、无序的渔业捕捞严重威胁海洋生态环境和全球的海产品的可持续供应。为了准确的对采集的图像进行分类, 利用机器学习技术,设计了一种基于卷积神经网络的鱼类图像分类系统。利用该模型对鱼类进行分类,分类准确率达到了96.99%,实现了预期目标。

关键词:卷积神经网络;反向传播算法;仿射变换;sloth;python;theano

中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2017)04-0096-02

随着环保压力的增大,各国已经开始利用摄像头来监控渔船的捕捞活动,并运用机器学习技术来对渔船捕获的鱼类图像进行自动的识别与分类从而扼制非法的捕捞。

目前计算机性能的飞速发展、图像数据采集设备的廉价与普及促进了机器学习理论与方法的发展,数据科学家已经可以构建复杂的机器学习模型并利用从廉价的数码摄像头设备采集到大量的数据快速的训练模型。吴一全等[1]采用了手动选择特征的方法, 基于支持向量机对5种鱼进行识别,各类鱼的识别精度平均为83.33%。万鹏等[2]计算鱼的长轴方向各段的平均宽度与长度的比值并将其作为特征参数,利用3层BP(back propagation)神经网络对鲫鱼和鲤鱼进行识别,识别精度为92.50%。但是这些方法都是基于手动选择特征的机器学习方法,手动选择特征的方法基于人的经验选择特征, 会导致遗漏重要的特征, 导致分类准确率低。深度学习中的卷积神经网络能在训练过程中自动学到“好”特征,避免了手动选择特征。本次研究采用了基于VGG16的卷积神经网络(CNN)来进行鱼类分类,并运用了数据集扩增方法,dropout方法, batch normalization方法来降低模型的过拟合。但是原始数据集背景干扰很大,船上的人、物体和甲板上捕获的鱼类糅合在一起,直接采用原始数据集训练会导致训练出的模型稳定性不好。

基于上述分析,本文从原始数据出发,设计了一种目标检测方法,即在原始训练数据已经有鱼类类别标签的基础上,再标注上一层表示鱼类在图片中坐标位置的标签,然后利用这些二次标注过的数据训练模型,就可得到一个既能预测鱼在图片中的坐标位置又能预测鱼的分类的糅合模型。因为这两种预测网络在卷积层共同训练一套滤波器,所以在训练滤波器预测鱼的坐标位置时,训练完成的滤波器便能在另一方面辅助预测鱼的分类,使特征提取只专注于鱼的坐标区域,这样就有效的排除了背景干扰。实验结果显示此模型具有很高的识别精度和鲁棒性,能在背景干扰很强的图片数据集上准确的完成鱼类的识别和分类。

1 模型构建

实验数据来源于某组织举办的图像识别竞赛。数据通过固定在渔船某个位置的摄像头采集,通过采集甲板上捕获的鱼类照片,共采集到3777张共8个分类的照片作为训练样本,分别为长鳍金枪鱼、大眼金枪鱼、黄鳍金枪鱼、鲯鳅鱼、月鱼、鲨鱼、其他、无鱼类(表示没有鱼出现在照片里)。按一定比例做分层采样,其中2984张用作训练集,394张用作验证集,399张用作测试集。训练集用经过错切幅度值为0.15的仿射变换作数据集扩增来降低过拟合,因为在从原始数据集上分层采样得来的小样本数据集上验证显示当错切幅度值等于0.15时,模型在测试集上的分类精度最高。

在训练集上采用sloth這款图片标注工具手动标注鱼类在图片中的位置,并把这些标注结果和已有的鱼类分类标注结果当做输入数据和图片数据一起传给模型训练。

本次研究的神经网络模型结构如图1所示。卷积层采用了被广泛使用在图像分类任务中的VGG模型的卷积滤波器的权重[3],并在其模型上作微调来实现本次研究的目标。

输入层将不同尺寸的图片统一转换成244*244大小。

汇合层(max pooling)是指取一小块像素区域的像素最大值,作用是可减少数据量,控制过拟合。

全连接层的权重采用反向传播算法(back propagation)训练,参数寻优采用随机梯度下降方法。动态学习率设定方法采用了 Adam方法,可根据损失函数在迭代训练中产生的信息自动调整学习率。

激活层函数采用RELU方法,公式为。最后一层预测鱼类分类的激活曾需要把对应于各个分类的分数值转换成总和为1的对应于各个分类的概率值,所以激活函数采用Softmax方法,公式如下

由于卷积神经网络网络强大的表示能力,为了降低模型的过拟合以及加快模型的训练速度,本次工作在激活曾后面再依次加入一层dropout层和batch normalization层。dropout层是指随机的舍弃一部分激活曾神经元的值,并将其置为0[4]。batch normalization层是指规范化每层激活层的输出,并加入4个规范化参数来抑制模型训练过程中的反规范化现象[5]。

2 程序实现

具体的软件实现采用python编程语言和keras框架平台。keras底层采用轻量易用的theano框架,并依赖计算机的显卡来进行更快速的训练工作。整个图像分类的软件框架主要由4部分组成,分别是输入图像数据处理、模型各个网络层的实现及拼接、模型编译、模型训练及预测。下面按数据在模型中流动的顺序具体的阐述各个部分的程序实现。

2.1 输入图像数据处理

由于计算机显存的容量有限,不可能一次将所有的图像数据都输入显卡进行。所以采用了生成器批量处理图片,即一次只取一定数量的图像进行训练,训练完后再调用生成器进行下一批次图像的训练,直到完成一轮图像数据的训练。根据实验平台的计算性能和实际测试,当每一批次的图像数据为64张时,训练的速度达到最大值。

在图像数据进入卷积层进行训练前,需要调用数据集扩增函数来进行图像的仿射变换,通过小样本集测试发现当错切幅度范围为0.15时,训练产生的模型在测试集上的分类精度最高,所以取数据集扩增函数的参数shear_range=0.15。这样就能使每轮图像数据都有微小且合乎常理的差异,降低模型的过拟合。

2.2 模型各個网络层的实现及拼接

基于keras框架,首先需要调用Sequential类构造器初始化一个Sequential类,并通过add方法依次添加网络层。输入层需要对输入值进行规范化处理,所以通过调用BatchNormalization方法实现,输入层需在参数里指定输入图片数据的大小,即input_shape=(3,224,224)。卷积层通过调用Convolution2D方法实现,需在参数里指定滤波器个数、大小以及激活函数。全连接层通过调用dense方法实现,并在参数里指定输出尺寸大小以及激活函数。Batch Normalization层、Dropout层依次通过调用BatchNormalization方法、Dropout方法实现,Dropout方法需指定一个参数表示舍弃激活曾神经元的值的比例,实际实验验证显示当舍弃比例等于0.5时,模型在测试集上的分类性能最高。

2.3 模型编译及训练

在用模型进行训练前,需要通过compile方法配置模型学习的过程,具体通过optimizers参数指定学习率设定方法,本例为adam方法;通过loss参数指定损失函数,由于模型有2个输出,所以模型有2个损失函数,分别为'mse'对应鱼类坐标位置输出和'categorical_crossentropy'对应鱼类分类输出;通过metrics指定性能评估方法,本例为'accuracy',即准确率。然后再通过fit方法进行模型的训练。

3 实验结果

实验结果显示,本次工作构建的模型在验证集上的识别准确率为97.97%,在测试集上为96.99%。目前国内在鱼类分类领域,识别准确率较高的为吴一全等提出的基于SVM的方法[1],在5种鱼类分类上取得了91.67%的识别准确率和万鹏等提出的基于3层BP神经网络的方法[3],在4种鱼类分类上取得了92.50%的识别准确率。本次工作在鱼类分类更多、图像背景干扰更大的情况下,仍然取得了更优异的识别性能。

4 结语

本文构建了一个基于VGG16的卷积网络模型,并用数据集扩增方法、dropout方法和batch normalization 方法降低了过拟合;优秀的识别准确率结果显示此模型达到了预期目标。

参考文献

[1]吴一全,殷骏,戴一冕,等.基于蜂群优化多核支持向量机的淡水鱼种类识别[J].农业工程学报,2014,(16):312-319.

[2]万鹏,潘海兵,龙长江,等.基于机器视觉技术淡水鱼 品种在线识别装置设计[J].食品与机械,2012,28(6):164-167.

[3]Simonyan, K. and Zisserman, A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv, 2014:1409.1556.

[4]Krizhevsky, A., Sutskever, I. and Hinton, G.E. Imagenet classification with deep convolutional neural networks[C]. In Advances in neural information processing.

[5]Ioffe, Sergey, and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv , 2015:1502.03167.

猜你喜欢

卷积神经网络
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法