APP下载

基于深度学习的手写数字图像识别模型研究及其浏览器服务平台搭建

2022-02-19黄瀚宇陈焯辉肖梓勤王达灏王业哲赵志红

科学技术创新 2022年1期
关键词:数字图像手写图像识别

黄瀚宇 陈焯辉 肖梓勤 王达灏 王业哲 赵志红*

(北京理工大学珠海学院,广东珠海 519088)

1 概述

信息技术是人类历史上的第三次工业革命,计算机、互联网、智能家居等技术的普及极大地方便了人们的日常生活。通过编程的方式,人们可以将提前设计好的交互逻辑交给机器重复且快速地执行,从而将人们从简单枯燥的重复劳动工作中解脱出来。但是对于需要较高智能水平的任务,如人脸识别、聊天机器人、自动驾驶等任务,很难设计明确的逻辑规则,传统的编程方式显得力不从心,而人工智能(Artificial Intelligence, AI)是有望解决此问题的关键技术。

随着深度学习算法的崛起,人工智能在部分任务上取得了类人甚至超人的智力水平,如围棋上AlphaGo 智能程序已经击败人类最强围棋专家之一柯洁,在Dota2 游戏上OpenAI Five 智能程序击败冠军队伍OG,同时人脸识别、智能语音、机器翻译等实用的技术已经进入到人们的日常生活中。现在的生活处处被人工智能所环绕,尽管目前能达到的智能水平离通用人工智能(Artificial General Intelligence, AGI)还有一段距离,但仍坚定地相信人工智能时代已经来临。

本文首先收集手写数字表格,然后用OpenCV(一个基于BSD 许可(开源)发行的跨平台计算机视觉和机器学习软件库)技术制作手写数字图像数据集,接着用LeNet-5 模型检测数据集的数据质量优劣情况,最后使用HTML 和Flask 框架搭建网站,再使用内网穿透使外网用户访问网站。

2 基于OpenCV 技术与LeNet-5 模型的手写数字图像识别技术

2.1 数据收集

首先收集100 份手写数字表格,如图1。

图1 手写数字表格

然后使用图像处理中二值化、腐蚀与膨胀技术[1]去除图像中的表格,去除表格后的图像,如图2。

图2 去除表格后的图像

接着使用OpenCV 技术,提取每张图片中所有数字的轮廓。至此,使用OpenCV 技术自制的手写数字图像数据集已完成,共10000 张手写数字图像。

2.2 数据预处理

首先使用图像的像素值作为模型的特征,由于特征的数量级不一致,图片像素值的范围为[0, 255],因此需要对特征进行标准化,将原来的在[0, 255]范围内的特征值映射到[0,1]区间。因标签为数字编码,会占用较多的存储空间,因此需将标签转为独热编码,即One-hot 编码。One-hot 编码是非常稀疏的,一般在计算时,需要把离散的数字编码转换成One-hot 编码。最后对数据集进行拆分,选择80%作为训练集,20%作为测试集。即训练集的样本容量为8000,测试集的样本容量为2000。

2.3 模型建立

首先使用LeNet-5 模型作为手写数字图像识别模型,LeNet-5 是由Lecun 等[2]设计的用于识别手写和机器打印字符的卷积神经网络[3],是首次提出的卷积- 池化- 全连接的神经网络结构。LeNet-5 共有7 层(不包括输出层),包含卷积层、池化层和全连接层。输入图片的形状为28×28×1,Convolutions 为卷积层,Subsampling 为池化层,Full connection 为全连接层,Gaussian connections 为输出层,且输出层神经元个数为10。

由于手写数字图像识别[4]属于多分类问题,需分别使用Softmax 与交叉熵作为输出层的激活函数与损失函数,具体如下。

Softmax 激活函数公式:

其中,xi为第i 张图片的像素值,M为类别总数。

Softmax 函数不仅可以将输出值映射到[0, 1]区间,还满足所有的输出值之和为1 的特性。每个输出值代表了当前样本属于每个类别的概率,且概率值之和为1。通过Softmax 函数可以将输出层的输出转译为类别概率,在分类问题中使用得非常频繁。

交叉熵可以很好地衡量两个分布之间的“距离”,其损失函数公式:

其中,c 为类别,M为类别总数。

当Loss 为0 时,损失函数取得最小值,此时网络输出的预测值与标签真实值完全一致,神经网络取得最优状态。

2.4 模型训练

对LeNet-5[5]模型进行训练,设置模型训练的超参数如表1。

表1 模型训练超参数

其中,Epoch 为模型的训练次数,此处设置训练次数为20;Batch size 为批训练大小,设置为128 即一次并行计算128 个样本的数据;Optimizer 为优化器,这里选择Adam 作为图像类别数量预测模型的优化器,它默认学习率(Learning rate)为0.001,是一种基于梯度的随机目标函数优化算法[6];Input shape 为输入图像的形状,设置输入图像为像素大小28×28,并且通道数为3 的RGB 图片;Validation split 为训练集与验证集的比例,设置为0.2 即选择训练集中的80%作为模型的训练集,20%作为验证集,即模型的训练集的样本容量为6400,验证集的样本容量为1600。

模型训练共20 个epoch,耗时5 秒。最终训练集的准确率为99.60%,验证集的准确率为98.12%。并且绘制训练过程的损失值与准确率的变化曲线,最后保存模型。训练过程的损失值和准确率的变化曲线如图3。

图3 去除表格后的图像

2.5 模型评估

将测试集放入模型中进行测试,准确率达到了98.30%,可以看出模型的预测结果较好,手写数字图像识别准确。首先输出模型预测的混淆矩阵如图4。

图4 混淆矩阵

从混淆矩阵来看,混淆矩阵的理想输出结果是主对角线上均存在非零的数字,而非主对角线上的元素均为零,由此可以看出该模型的预测效果好。

再输出分类报告如表2。

表2 分类报告

Precision1为查准率,Recall1为查全率,F1-score 为F1分数。

Support1为标签各类别的数量,它们可用于评估模型的预测效果。

从分类报告来看,查准率和召回率得分都较高,且平均的F1-Score 达到98%,由此也能看出该模型的预测效果好。

2.6 模型对比

使用VGG16、VGG19、ResNet50、DenseNet169 和Dense Net201[7]共5 种深层CNN 模型架构对手写数字图像数据集进行训练。在模型训练之前,先对上述五个模型进行介绍。VGG 系列网络模型是ILSVRC14 挑战赛ImageNet 数据集分类任务的亚军牛津大学VGG 实验室于2014 年提出的,如VGG16 与VGG19 模型。以VGG16 为例,它在ImageNet 取得了7.4%的Top-5 错误率,比AlexNet 在错误率上降低了7.9%。ResNet50 网络则由微软亚洲研究院何凯明于2015 年提出,在ILSVRC2015 挑战赛ImageNet 数据集上的分类与检测等任务上面均获得了最好性能。而DenseNet 与ResNet 颇为相似,但是它将前面所有层的特征图信息通过Skip Connection 与当前层输出进行聚合,与ResNet 的对应位置相加方式不同,DenseNet 采用在通道轴维度进行拼接操作,聚合特征信息。

并且在更换模型训练的过程中控制相同的超参数,所有的模型都在同一环境下进行训练,得出各个模型的得分与耗时如表3。

表3 模型比较

可以看出LeNet-5[8]的准确率已经接近各种大型网络,并且比多个大型网络的要高。另外,耗时比各种大型网络的少得多。因此选用得分较高而且更加小巧的网络LeNet-5 作为训练手写数字图像数据集的模型。

3 浏览器服务平台搭建

使用HTML 来构建网站页面,再使用flask 框架使网站运转起来,最后使用内网穿透技术来实现外网访问网站。

4 结论

本文使用OpenCV[9]技术制作手写数字图片数据集,并用LeNet-5 网络检测数据集的数据质量优劣情况。得出自制数据集的测试集得分为98.30%,并从混淆矩阵与分类报告输出结果中发现,数据集是可用的。使用Flask 框架和内网穿透搭建网站使用户可以在网站上使用该模型。

猜你喜欢

数字图像手写图像识别
支持向量机的舰船图像识别与分类技术
基于计算机视觉的图像识别技术研究
基于Blob算法的多特征联合数字图像转换仿真
我手写我心
人工智能背景下图像识别技术浅析
我手写我意
图像识别交互系统
6万字的情书
一种对矢量地图的理论研究
《数字图像处理》课程的驱动教学实践