欢迎来到天天文库
浏览记录
ID:35488573
大小:105.95 KB
页数:8页
时间:2019-03-25
《手写汉字识别实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、实验内容:收集实验数据,利用卷积神经网络实现简单的手写汉字识别并进行一定的改进(dropout和仿射变换扩展数据集)。二、实验数据:收集来自互联网和现实生活中的手写汉字图片,包含繁简体、不同大小、不同背景的图片。并利用文件名进行相应标记。其中训练集包含图片150张,测试集包含图片50张。iI:008.jpg李li.007.jpg驗qian_008.jpgqian_011.jpgli.009.jpgli.010.jpgqian_012.jpgqian_013jpg炉sun_012.jpgsun_008jpgsun.010.jpgsun_013.jpgwang_008jpgwangJX
2、)7jpgawang_009.jpgwangOIOjpgli_019.jpgliO2O.jpgIi2.jpgsun_018.jpgsun3.jpgwzng.004.jpg趙埜忽zhaO-2.jpgzhao009.jpgzhao_011.jpg训练集截图测试集截图三、实验原理:])深度学习・深贏学习能够模拟视觉感知系统的层次结构,通过建立包含有多个隐藏层结构的机器学习模型,对大量数据的训练得到更为有用的特征。该模型起源于神经网络,是一种深层次非线性网络结构,通过这一非线性结构更优地逼近复杂函数,深层的结构使深度学习具有极强的表达能力和学习能力,当它用于处理图像时,能够学习到图像的“部分■
3、整体”的分解关系,它在人脸识别、字符识别、图像去噪等方面取得了远优于传统浅层神经网络的结果。2)卷积神经网络:卷积神经网络是一种典型的深度学习模型,它利用空间相对关系减少参数数目以提高训练性能,是第一个真止获得成功的深度架构。卷积神经网络可以识别有变换的模式,具有一定的鲁棒性(抗变换性),并已成功应用于人脸识别、车牌识别、行为识别、语音识别和图像分类等计算机视觉的研究领域。CNN的基木结构由输入层、卷积层、池化层(也称取样层)、全连接层及输出层构成,卷积层和池化层一般会取若干个,采用卷积层和池化层交替设置。(多层感知器结构)。在CNN结构屮,深度越深、特征面数冃越多,则网络能够表示的特
4、征空间也就越大,网络学习能力也越强,然而也会使网络的计算更复杂,极易出现过拟合的现象。JCNN的本质就是每一个卷积层包含一定数量的特征面或者卷积核。与传统MLP(多层神经网络)相比,CNN中卷积层的权值共享使网络中可训练的参数变少,降低了网络模型复杂度,减少过拟合,从而获得了一个更好的泛化能力。同时,在CNN结构中使用池化操作使模型中的神经元个数大大减少,对输入空间的平移不变性也更具有鲁棒性。而且CNN结构的可拓展性很强,它可以采用很深的层数,而深度模型具有更强的表达能力,它能够处理更复杂的分类问题。3)仿射变换:拉伸、收缩、扭曲、旋转是图像的几何变换,在三维视觉技术中大量应用到这些变
5、换,又分为仿射变换和透视变换。仿射变换通常用单应性建模,利用cvWarpAffine解决密集映射,用cvTransform解决稀疏映射。仿射变换可以将矩形转换成平行四边形,它可以将矩形的边压扁但必须保持边是平行的,也可以将矩形旋转或者按比例变化。透视变换提供了更大的灵活性,一个透视变换可以将矩阵转变成梯形。当然,平行四边形也是梯形,所以仿射变换是透视变换的子集。4)dropout:典型的神经网络其训练流程是将输入通过网络进行正向传导,然后将误差进行反向传播。Dropout就是针对这一过程之中,随机地删除隐藏层的部分单元,进行上述过程,其具体步骤如下:1•随机删除网络中的一些隐藏神经元,
6、保持输入输出神经元不变;2.将输入通过修改后的网络进行前向传播,然后将误差通过修改后的网络进行反向传播;3.对于另外一批的训练样木,重复上述操作1.大量实验论证发现,dropout可以比较有效地减轻过拟合的发牛,一定程度上达到了正则化的效果。四、实验源代码:importtensorflowastfimportosimportcv2importpreprocess_importnumpyasnpimportrandomimportmathfromaffintimportaffintimportgabor_training_folder=P—train/'test^folder='b_te
7、st/‘m=18n=18g=40training_data=[]trainingjabels=[]forfilenameinos.listdir(training_folder):img=cv2.imread(training_folder+filename,0)#注意路径问题ifimgisnotNone:data_=preprocess_.preprocess(img)training_data.append(dataj讦,,zhaoHinf
此文档下载收益归作者所有