基于卷积神经网络的图像识别

2020-06-11 09:26秦川
电子技术与软件工程 2020年1期
关键词:图像识别步长准确率

文/秦川

(四川省体育彩票管理中心 四川省成都市 610017)

1 引言

图像识别技术起源于20 世纪40年代,其识别步骤主要包括:图像采集—图像预处理—特征提取—图像识别。由于技术与硬件等落后的问题,没有促使传统的图像识别技术的发展。但20 世纪90年代后,深度学习技术的出现使得图像识别技术有了新的发展方向。

深度学习(DL)是机器学习(ML)领域中一个新的研究方向,它被引入的目的是为了达到

机器学习最初的目标——人工智能。深度学习主要是通过构建一个多层网络,使该网络自动学习并获取数据内部的隐藏信息,提取出更高维、更抽象的数据,该数据相对于图像识别领域来说就是图像的特征。基于卷积运算的神经网络系统,即卷积神经网络(CNN)就是深度学习中主要的研究方法之一。本文主要讲解卷积神经网络的架构,并以猫狗图像识别为例,将其实现。

2 国内外现状

在文献[1]中,邱靖等人为传统水稻病害的图像识别技术对图像特定特征依赖性强、识别效率低等问题,提出通过卷积神经网络建立水稻病害识别模型,基于深度学习框架Keras 进行训练。模型经过5 次迭代之后,其识别准确率就能够达到90%以上,并且泛化能力较强。

在文献[2]中,凌语等人为帮助病理医生诊断乳腺肿瘤,提出了一种在VGG-19 神经网络模型上改进的VGG-19A 神经网络模型,其主要在卷积层中的激活函数前加入批标准化(BN)算法,在全连接层中加入dropconnect 网络层来改进网络模型。对照实验表明,改进的算法在准确性与泛化性能上有一定的提升。

在文献[3]中,邱津怡等人针对葡萄图像中同一类别的差异较大,不同类别的差异较小的问题,提出了一种基于CNN 的多尺度葡萄图像识别方案。通过对数据的扩增、融合人后、采用迁移学习和CNN 方法来进行分类识别,在最后提出了适合其数据集的多尺度图像数据融合模型MS-EAlexNet。虽然该模型的测试准确率高达99.92%,但其泛化性能不强。在文献[4]中,廖恩红等人提出一种新的食品图像识别模型China Food-CNN,来解决卷积神经网络识别相似图像难度大等问题,以实现对食物的精准分类。其实验结果表明该模型对食品图像的识别准确率为69.2%。

在文献[5]中,刘嘉政提出一种基于CNN 的小样本树皮图像识别方案,以解决树皮图像分类过程中图像训练样本少,识别率低等问题。其实验结果表明该方案在MNIST数据集、ImageNet数据集、CIFAR-10 数据集上的准确率为92%、90%、93%。

在文献[6]中,Tasleem Kausar 等人提出一种基于卷积神经网络和小波分解图像的乳房组织病理学图像分类的方案。其主要通过使用2 级Haar 小波将原始的2048*1536*3 图像分解为512*384*3,再通过CNN 模型进行训练。该方案大大减少了深层CNN 的卷积时间,节约了计算资源。在ICIAR 2018 验证数据上的准确率为98.2%。

在文献[7]中,Horiuchi Yusuke 等人为解决放大内窥镜(MENBI)与窄带成像区分胃癌和胃炎的问题,提出了基于CNN 系统的ME-NBI 图像分类方案。其实验结果表明,该方案的准确率可以达到85.3%。

图1:卷积神经网络结构

图2:卷积层示意图

在文献[8]中,Qiao weilei 等人提出一种针对合成孔径雷达(SAR)图像特点的改进卷积神经网络模型——Q-net。Q-net 实现了SAR 图像中的自动目标识别,该模型在对三种目标进行分类时,其识别精度高达97.58%。

在文献[9]中,刘万军等人提出一种基于双重优化的卷积神经网络算法,以提高卷积神经网络算法的识别精度和收敛速度。该算法实现了卷积和全连接过程的集成优化,与局部优化网络相比,集成优化网络具有更高的收敛速度和识别精度。在文献[10]中,Andrea Acevedo 等人提出一种利用卷积神经网络的迁移学习方法对八组外周血细胞进行高精度自动分类系统。该方案无需进行图像分割,自动进行特征提取,并且可以对现有模型进行微调,以获得特定的分类器。其实验表明,使用Vgg-16 提取特征时,其准确率为86%。

3 卷积神经网络结构设计

3.1 数据预处理

我们拿到的是三通道型、图像长宽不一致的数据。因此我们将数据进行处理,先缩放为126x126 大小的图像,再将图像灰度化。并且将图像矩阵进行归一化,使得图像的灰度值在0~1 之间。

3.2 网络结构

本文所使用的卷积神经网络模型如图1 所示,该网络结构主要包含3 个卷积层,3 个池化层,3 个全连接层,1 个输出层。

卷积层的功能是使用多个卷积核对输入的数据进行特征提取,卷积核内的每个元素都对应于一个权重系数核,卷积核按步长对图像矩阵进行扫描计算:

式中Zl和Zl+1表示第l+1 层的卷积输入和输出,Ll+1为Zl+1的尺寸(图像矩阵的长宽相等)。Z(i,j)对应于图像矩阵的像素会灰度值,K 为图像矩阵的通道数,f、s0和p 是卷积层参数,对应卷积核大小、卷积步长核填充层数

每个卷积层中卷积核的大小均为3x3,步长为1,激活函数采用线性整流函数(Relu 函数) ,卷积层示意图如图2 所示。

池化层的作用是在卷积层进行特征提取后,对输出的图像矩阵进行信息过滤,凸显特征。每个池化层中池化核的大小为2x2,步长为2,池化方式采用最大池化。最大池化方式能够保留图像的纹理信息。该网络架构在每个池化层结束后,进行下一个卷积层前,加上了Dropout 层,主要功能是用于缓解过拟合现象。池化层示意图如图3 所示,Dropout 层示意图如图4 所示。

网络模型中包含3 个全连接层,分别由64、32、2 个节点.最后1 个全连接层是代表了2 个分类标签——猫和狗。输入层由图像矩阵变为一维向量得来,第1 层、第2 层为优化层,其激活函数为relu 函数,同时我们也使用了了Dropout 来缓解过拟合现象,第3层为输出层,我们采用softmax 函数作为激活函数,

损失函数本文选择稀疏分类交叉熵函数,它可以使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题。

对于损失函数的优化本文选择Adam 优化算法,即对目标函数执行一阶梯度优化的算法。Adam 算法更新规则:假定ε=0,则在时间步长t 和参数空间上的有效下降步长为:

3.3 结果分析

在openbayes 在线算力使用NVIDIA T4、4CPU,在Tensorflow环境下使用keras 框架进行卷积神经网络的训练,代码在Jupyter Notenook 上使用Python3 编写。

根据训练过程的loss 和accuracy 迭代变化曲线图可以看出,在迭代次数达到100 次左右以后,精度曲线已逐渐趋于平缓,到最后,其精度可以达到99.02%。loss 曲线在不断的震荡,但总体趋势依然是逐渐下降,然后趋于平缓。如图5 所示。

4 总结

本文自行搭建的卷积神经网络模型在效率上或许并不高,但是在准确率上可以达到较好的效果。该模型存在训练时间花费较长的问题,其原因可能是因为初始输入的图像矩阵较大,神经网络中的神经元过多,造成了大量的计算。在接下来的研究中我们将对输入的图像矩阵进行优化,对神经网络中的神经元进行优化,减少该模型的计算量。

图3:池化层示意图

图4:Dropout 层示意图

图5:loss 和accuracy 迭代变化曲线

猜你喜欢
图像识别步长准确率
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
高速公路车牌识别标识站准确率验证法
图像识别在水质检测中的应用
基于逐维改进的自适应步长布谷鸟搜索算法
一种新型光伏系统MPPT变步长滞环比较P&O法
一种新颖的光伏自适应变步长最大功率点跟踪算法