版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章基于深度学习CNN模型的汉字识别目录11.1深度学习技术概述11.2卷积神经网络基本概念11.3汉字识别系统设计11.4汉字图像预处理11.5投影与分割11.6构建汉字识别模型11.6.1构建卷积神经网络模型11.6.2识别模型训练11.7汉字识别模型检验 11.1深度学习技术概述深度学习思想是模拟人类神经系统的结构和功能来实现对数据的学习和识别。它是一种以人工神经网络为基础的机器学习方法,具有多层次的神经网络结构,被称为深度神经网络。主要特点:①多层次的神经网络结构;②自动特征学习;③端到端学习;④大规模数据和计算:。⑤广泛应用。重要概念和组成部分:①神经网络(NeuralNetworks):包括输入层、隐藏层和输出层。②深度神经网络(DeepNeuralNetworks,DNN):包含多个隐藏层的神经网络。③卷积神经网络(ConvolutionalNeuralNetworks,CNN):捉图像中的局部特征,通过池化层减小特征图的尺寸,最后通过全连接层进行分类。④深度学习框架:TensorFlow、PyTorch、Keras等简化了深度学习模型的构建和训练流程。⑤前馈和反向传播(FeedforwardandBackpropagation):前馈从输入层经过网络传递到输出层的过程,反向传播是通过计算梯度来调整网络权重的过程。
11.2卷积神经网络基本概念卷积神经网络(ConvolutionalNeuralNetwork,CNN)结构有:输入层、卷积层、池化层、输出层等,其他的还可以有全连接层,归一化层之类的层结构。基本概念(1)卷积层(ConvolutionalLayer)通过卷积操作对输入数据进行特征提取。通过共享权重的方式,减少需要训练的参数数量,从而提高模型的计算效率和泛化能力。其中,f是输入图像,g是卷积核,k是卷积核的大小。
(2)滤波器(Filter)或卷积核(Kernel)用于在卷积操作中提取特征的小矩阵。它在卷积过程中通过滑动窗口在输入数据上移动,并与局部区域进行卷积操作。实际就是一个数值矩阵,常用的卷积核大小有1×1、3×3、5×5、7×7等。局部感受野和权值共享是卷积操作的两个鲜明特点。(3)步幅(Stride)步幅定义了滤波器在输入数据上滑动的步长。较大的步幅可以减小输出特征图的尺寸。(4)填充(Padding)在卷积操作中,填充是在输入数据的边缘周围添加额外的像素。填充可以用来保持输出特征图的尺寸,减小信息丢失。(5)池化层(PoolingLayer)池化层用于减小特征图的空间尺寸,通过选择局部区域的最大值(最大池化)或平均值(平均池化)来实现。池化有助于减少计算量和提高模型的鲁棒性。(6)激活函数(ActivationFunction)作用是选择性地对神经元节点进行特征激活或抑制,能对有用的目标特征进行增强激活,对无用的背景特征进行抑制减弱。ReLU函数定义如下:ReLU(x)=max(0,x)特性:①非线性性。②缓解梯度消失问题。③稀疏激活性,提高模型的表达能力。④计算简单。(7)权重共享(WeightSharing)卷积操作中每个卷积核的值是不变的,同一滤波器的权重被用于不同位置的输入数据,这种权重共享的机制减少了模型的参数数量。(8)损失函数卷积神经网络(CNN)通常用于图像分类、目标检测等任务。对于这些任务,常见的损失函数包括交叉熵损失和均方误差损失,具体的选择取决于任务的性质。①交叉熵损失(Cross-EntropyLoss)在输出层使用Softmax激活函数时。二分类交叉熵:
(9)Dropout随机地关闭一些神经元,用来防止过拟合的正则化技术。阻止它们参与前向传播和反向传播过程。多分类交叉熵:
其中,M是判别的数量。是观测样本i属于c类的预测概率。②均方误差损失(MeanSquaredError,MSE):
在每个训练迭代中,Dropout的过程如下:随机选择一部分神经元(隐藏层中的节点);将选择的神经元的输出置为零;执行前向传播和反向传播过程;更新权重时,只考虑那些没有被置为零的神经元。图11-1Dropout功能示意图(10)全连接层(FullyConnectedLayer)在卷积神经网络的末尾,通常会添加一个或多个全连接层,用于将卷积层的输出转换为最终的分类或回归结果。11.3汉字识别系统设计汉字识别系统一般包含学习和识别两个过程。图11-2汉字识别系统功能图(1)图像收集和准备。(2)对图像进行预处理。(3)构建汉字图像训练集。(4)选择模型结构。(5)模型构建。添加适当的卷积层、池化层、全连接层等组件,并选择合适的激活函数。importtensorflowastffromtensorflow.kerasimportlayers,modelsmodel=models.Sequential()model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(height,width,channels)))model.add(layers.MaxPooling2D((2,2)))model.add(layers.Conv2D(64,(3,3),activation='relu'))model.add(layers.MaxPooling2D((2,2)))model.add(layers.Conv2D(64,(3,3),activation='relu'))model.add(layers.Flatten())model.add(layers.Dense(128,activation='relu'))model.add(layers.Dense(num_classes,activation='softmax'))(6)模型训练。选择合适的停止训练策略。pile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])model.fit(train_data,train_labels,epochs=num_epochs,validation_data=(val_data,val_labels))(7)模型评估。使用测试集对模型进行评估,计算准确率、精确度、召回率等性能指标。如果模型性能不满足要求,可以通过调整超参数、改进数据集或尝试其他模型结构来进行优化。test_loss,test_acc=model.evaluate(test_data,test_labels)将图像处理技术与深度学习相结合的识别过程:(1)获取待识别的汉字图像。(2)对待识别的汉字图像进行与学习过程相同的图像预处理,包括图像的灰度化、二值化、腐蚀、膨胀、投影分割等操作。(3)使用训练好的模型对新的汉字图像进行识别。predictions=model.predict(new_data)(4)部署和应用。(5)误差分析和改进。。(6)用户界面设计(可选)。11.4汉字图像预处理理论基础1.汉字图像预处理步骤(1)获取需要处理的图像。(2)进行灰度化、二值化处理。(3)进行腐蚀、膨胀处理。(4)进行投影与分割。(5)将分割后的图像保存到指定位置。效果展示图11-5膨胀图像进行腐蚀处理图11-4对二值图像进行膨胀处理图11-3对灰度图像进行二值化处理11.5投影与分割理论基础汉字图像 水平投影 垂直投影图11-6投影与分割实现步骤
(1)将二值化图像进行水平投影。(2)根据水平投影图像确定并记录水平分割点。(3)将二值化图像进行垂直投影。(4)根据垂直投影图像确定并记录垂直分割点。通过分割点组合,在原图中绘制包含汉字的蓝色矩形框。(5)通过坐标分割出单个汉字图像。效果展示图11-7投影分割示意图11.6构建汉字识别模型11.6.1构建卷积神经网络模型(1)卷积神经网络的输入是深度为3的图像,故第一层为卷积层,输入为3,输出为16,卷积核为3*3,步长为1。使用函数BatchNorm2d()进行归一化处理,激活函数ReLU()被激活。(2)第二层为卷积层,输入为16,输出为32,卷积核为3*3,步长为1。使用函数BatchNorm2d()进行归一化处理,激活函数ReLU()被激活。(3)第三层为池化层,池化层进行MaxPool2d()取最大值,核的大小为2*2。(4)第四层为卷积层输入为32,输出为64,卷积核为5*5,步长为1。使用函数BatchNorm2d()进行归一化处理,激活函数ReLU()激活;(5)第五层为卷积层输入为64,输出为128,卷积核为3*3,步长为1;使用函数BatchNorm2d()进行归一化处理,激活函数ReLU()激活;(6)第六层为池化层,池化层进行MaxPool2d()取最大值,核的大小为2*2;(7)第七层为全连接层,输入为128*12*12,经过全连接层进行分类,输出为20个类别特征数据。构建汉字识别模型模型编程实现/***************************************************************/*类名称:CNN(nn.Module)*功能:汉字识别的神经网络结构/***************************************************************/classCNN(nn.Module):def__init__(self):super(CNN,self).__init__()self.layer1=nn.Sequential(nn.Conv2d(3,16,kernel_size=3,stride=1),nn.BatchNorm2d(16),nn.ReLU(inplace=True))self.layer2=nn.Sequential(nn.Conv2d(16,32,kernel_size=3,stride=1),nn.BatchNorm2d(32),nn.ReLU(inplace=True)模型编程实现)self.layer3=nn.Sequential(nn.MaxPool2d(kernel_size=2,stride=2))self.layer4=nn.Sequential(nn.Conv2d(32,64,kernel_size=5,stride=1),nn.BatchNorm2d(64),nn.ReLU(inplace=True))self.layer5=nn.Sequential(nn.Conv2d(64,128,kernel_size=3,stride=1),nn.BatchNorm2d(128),nn.ReLU(inplace=True))self.layer6=nn.Sequential(nn.MaxPool2d(kernel_size=2,stride=2))模型编程实现)self.fc=nn.Sequential(nn.Linear(128*12*12,1024),nn.ReLU(inplace=True),nn.Linear(1024,128),nn.ReLU(inplace=True),nn.Linear(128,20),nn.Softmax(1))defforward(self,x):x=self.layer1(x)x=self.layer2(x)x=self.layer3(x)x=self.layer4(x)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 皮革漂白制剂市场发展前景分析及供需格局研究预测报告
- 手动螺旋切菜器产品供应链分析
- 多媒体图书馆服务行业营销策略方案
- 发行预付费电话卡行业相关项目经营管理报告
- 修脚时穿的泡沫拖鞋产业链招商引资的调研报告
- 扩音器用变送器产业链招商引资的调研报告
- 3.2遵守规则 同步课件 -2024-2025学年统编版道德与法治八年级上册
- 自动驾驶送货机器人项目营销计划书
- 广告咨询行业相关项目经营管理报告
- 创建设计和维护网站行业经营分析报告
- GB/T 16907-1997离心泵技术条件(I类)
- GB 4789.15-2016食品安全国家标准食品微生物学检验霉菌和酵母计数
- 突发公共卫生事件报告与应急处置
- 三级安全教育试题(水稳班组)
- 商场竞争策略概述
- 做情绪的主人-公开课课件
- 2021新外研版新教材高二英语选择性必修四课文及翻译(中英文Word)
- 翻转课堂讲解培训PPT反转课堂式教学模式介绍PPT课件(带内容)
- 基础教育改革专题课件
- 市场开发培训课件
- 聚乳酸(PLA)生物可降解材料课件
评论
0/150
提交评论