APP下载

基于卷积神经网络技术实现街道字符识别

2021-09-14袁姗姗

电脑知识与技术 2021年22期
关键词:图像分类卷积神经网络深度学习

袁姗姗

摘要:卷积神经网络作为深度学习领域近年来最优秀的算法之一,已经广泛应用于各种计算机视觉任务,尤其在图像分类任务中,卷积神经网络凭借其极高的分类准确率,使用率已经远超过传统的机器学习算法。街道字符识别作为图像分类任务的一种,为了完成这个分类任务,全文基于卷积神经网络技术,首先对数据集进行读取、并针对数据量较少问题,采取一系列的数据增强操作,然后完成卷积神经网络模型的构造。通过对模型的训练,测试结果显示测试集和验证集准确率分别为0.9523和0.7453,出色地完成了对街道字符的识别任务,并验证了所搭建模型的有效性和优异性。

关键词:深度学习;卷积神经网络;图像分类;街道字符识别

1 引言

图像作为重要的信息传递方式引起了当今学者们和工业者极大的重视,图像信息及图像深层蕴含的语义信息有着巨大的价值。街道字符作为图像分类领域典型的分类任务之一,如何将街道字符中包含的街道信息和数字等字符信息提取出来并正确分类,是一个具有实际意义的研究课题。在街道上,随处可见的街牌、门牌的背后蕴含丰富的数字信息、地址信息以及文化信息,更应该合理地运用这宝贵的图像信息资源,挖掘信息中的内在联系,首要的就是通过计算机对这些街道字符信息进行自动地识别。文中采用卷积神经网络技术,就如何高精度正確的区分街道字符这一问题展开研究,结合街道字符信息特点和卷积神经网络的技术手段,来完成任务要求。

2 卷积神经网络简介

卷积神经网络[1](CNN)是一种优秀的人工神经网络。卷积神经网络在许多领域都有优异的性能,卷积神经网络最大的优点是其训练结果的精度远远高于传统的算法。特别是在计算机视觉领域,卷积神经网络是解决图像分类、图像检索、目标检测和语义分割问题的主流模型。卷积神经网络的每一层都由许多卷积核组成。每个卷积对图像进行卷积操作,并将它们输出到下一个输入。随着网络层的增加,卷积核会逐渐扩大接受域,减小图像的大小。从结构上看,卷积神经网络是一个分层模型。输入的是原始图像数据,最终输出的是经过多层运算后的精度结果。卷积神经网络由卷积、池化、输入、输出和全连接层组成。以最经典的LeNet[2]模型为例,说明卷积神经网络的结构组成。LeNet模型的网络结构,是由两个卷积层,两个池化层和两个全连接层组成。LeNet模型卷积核的大小都是5×5,步长stride=1,池化层使用最大池化。通过多次卷积和池化,将输入图像像素映射到具体输出。例如,在分类任务中,将不同类别的概率输出进行转换,然后计算卷积神经网络模型的真实标签和预测结果之间的差异,并通过反向传播更新每一层的参数,更新完成后再次重复正向传播,以此类推,直到训练完成。与传统的机器学习模型相比,卷积神经网络有一种端到端的方法,即只需要输入相应的数据集,经过训练后就可以直接输出结果。因此,在卷积神经网络的训练过程中,直接从图像输入到最终结果的输出,不涉及烦琐的特征提取步骤也不需要任何的人为参与,就可以得到结果。

回顾卷积神经网络的发展历程,模型大多都是随着层数和参数量的增长来更新换代的。模型的交替更新中,不得不提到LeNet-5、AlexNet[3]两个优秀的卷积神经网络模型。LeNet-5模型是在1998年由Yann LeCun等搭建的模型。他们不但提出了卷积、池化、也第一次正式提出卷积神经网络局部感受野的理论依据。LeNet-5模型算是卷积神经网络引起学者们广泛关注的看开端。而AlexNet模型就是将卷积神经网络推入学者们研究热点的催化剂。AlexNet模型在2012年由Hinton等人设计搭建完成的。在ImageNet大规模的图像分类竞赛中,AlexNet模型以极大的优势领先其他的机器学习的算法,将人们的目光聚焦在卷积神经网络技术上,作为推广卷积神经网络的强力推手,AlexNet模型功不可。随后,越来越多的CNN模型,如VGG[4]、InceptionV3[5]和ResNet[6]等,被学者们搭建出来,并成功在各个领域广泛的应用。

3 基于卷积神经网络进行街道字符识别

基于卷积神经网络进行街道字符识别主要分为数据集的准备、数据读取、数据增强、模型的训练与验证这四个步骤。数据集的获取是整个实验的基础,选取合适的数据集,不仅有利于实验还可以更方便地进行横向的对比,来验证模型的优劣。数据读取与数据增强属于对图像数据的预处理工作,将图像进行规范的读取,并用数据增强的方法来增加数据集的样本量来更好的训练所构建的卷积神经网络。模型的训练与验证中从模型的搭建、验证集的构造、模型的保存、调参等多个方面,对模型训练验证过程做出了详细的说明。通过对卷积神经网络模型的训练,结果显示,所搭建的模型高精度地完成了对街道字符的识别任务。文中实验基于python编程语言。实验使用pytorch框架对卷积神经网络模型进行搭建。

3.1 数据集

本文任务是街道字符识别任务,数据集选用The Street View House Numbers[7] 数据集,简称SVHN。SVHN数据集中所有的图像,都是真实存在的,它们是源自真实的房屋号码。在SVHN的使用中,SVHN数据集常用于模式识别,图像分类算法的开发。因为SVHN数据集中图像像素偏小,所以它只需要简单的预处理和读取操作即可,同时训练时相对时间较短。尽管SVHN数据集中图像的裁剪数字很小,但是它合并了更多数量级的标签数据,标签数据量超过600,000个图像。此数据集主要的应用就是用于识别自然场景图像中的字符和数字的模型的训练及测试。数据集大小为2.5G,格式为.mat 文件,共含有10个类别,一共含有630,420张图片。所有原始图片的大小均已调整为固定的32 x 32像素分辨率,原始字符边框在适当的尺寸上扩展为方形窗口,其中包含图像中每个图像的边界框的位置、大小和标签。

3.2 数据读取

本文任务是针对原始的图像数据,精准地识别街道路牌图像中的字符。第一步要做的是读取数据,我们使用的是Python语言,调取常用的Pillow库和OpenCV库完成对数据的读取和写入。 下文从两个库的具体用法,包括常用函数等方面,举例说明这两个函数库的使用方法。

猜你喜欢

图像分类卷积神经网络深度学习
基于云计算的图像分类算法
基于深度卷积神经网络的物体识别算法
基于锚点建图的半监督分类在遥感图像中的应用
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于卷积神经网络的树叶识别的算法的研究