基于深度学习的手写汉字识别
如果有其他图像处理图像识别或者深度学习的作业或者毕设需要代做的话,可以联系我的qq1735375343,无需押金,做完以后再付款!!!
本文最后有下载链接,如有需要可自行下载!!!
视频演示:
opencv手写汉字识别
运行界面如下所示:
选择图片:
识别:
训练的数据集为:手写汉字图片-HWDB的原始数据来自来自于中科院自动化研究所, 一共包含3000多个汉字。
下面是代码部分:
读取训练图片:
import cv2 as cv
import numpy as npwith open('data.txt','r') as f:lines=f.readlines()split=0.2
# np.random.seed(15)
np.random.shuffle(lines)
train_len=int(len(lines)*(1-split))
test_len=len(lines)-train_len
train_lines=lines[:train_len]
test_lines=lines[train_len:]
def change(img,tr=(255,255,255),ll=50):h,w=img.shape[0],img.shape[1]da=max(h,w)rate=da/llimg=cv.resize(img,(int(w/rate),int(h/rate)))h2,w2=img.shape[0],img.shape[1]t=int((ll-h2)/2)b=ll-h2-tl=int((ll-w2)/2)r=ll-w2-limg=cv.copyMakeBorder(img,t,b,l,r,cv.BORDER_CONSTANT,value=tr)return img
def get_data(dd=True,batch_size=32):x=[]y=[]while True:if dd:linss=train_lineselse:linss=test_linesfor lin in linss:name=lin.split()[0]lab=lin.split()[1]lab=np.eye(1311)[int(lab)]src=cv.imread(name)src=change(src)#数据增强t=np.random.randint(0,15)src = cv.copyMakeBorder(src, t, t, t, t, cv.BORDER_CONSTANT, value=(255,255,255))src=cv.resize(src,(50,50))# cv.imshow('a1122', src)# cv.waitKey(0)gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)thred=np.where(gray>220,0,255).astype('uint8')thred=(thred/255).astype('float32')x.append(thred)y.append(lab)if len(x)==batch_size:train_x=np.array(x).astype('float32')train_y=np.array(y).astype('float32')x=[]y=[]yield train_x,train_yif __name__ == '__main__':get_data()
搭建网络训练数据:
import tensorflow as tf
from tensorflow.keras.callbacks import (EarlyStopping, ReduceLROnPlateau,TensorBoard,ModelCheckpoint)
from tensorflow.keras.layers import Dense,Flatten,Dropout,Input
from tensorflow.keras import Model
from generate_data import get_data,train_len,test_len#tf.random.set_seed(16)
def mmod(shape=(50,50)):inputs=Input(shape=shape)inp=Flatten()(inputs)x1=Dense(1500,activation='relu')(inp)x2=Dense(1500,activation='relu')(x1)x2 = Dense(1500, activation='relu')(x2)x3 = Dense(1311, activation='softmax')(x2)model=Model(inputs,x3)return model
model=mmod()
model.summary()
model.load_weights('model_data/ep019-loss1.797-val_loss2.295.h5')
if __name__ == '__main__':batch_size=50model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])log_dir='logs/'reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, verbose=1)checkpoint = ModelCheckpoint(log_dir + 'ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5',monitor='val_loss', save_weights_only=True, save_best_only=False, period=1)model.fit_generator(get_data(batch_size=batch_size),steps_per_epoch=train_len//batch_size,validation_data=get_data(dd=False,batch_size=batch_size),validation_steps=test_len//batch_size,epochs=50,callbacks=[reduce_lr,checkpoint])
本文的代码及训练使用的数据集都已放在下面的下载链接中,已做好gui界面,直接运行即可。
下载以后只需要运行main.py即可,如需要配置环境可私信作者。
下载地址:下载链接
基于深度学习的手写汉字识别相关推荐
- 基于深度学习的口罩识别与检测PyTorch实现
基于深度学习的口罩识别与检测PyTorch实现 1. 设计思路 1.1 两阶段检测器:先检测人脸,然后将人脸进行分类,戴口罩与不戴口罩. 1.2 一阶段检测器:直接训练口罩检测器,训练样本为人脸的标注 ...
- 基于深度学习的脑电图识别 综述篇(三)模型分析
作者|Memory逆光 本文由作者授权分享 导读 脑电图(EEG)是一个复杂的信号,一个医生可能需要几年的训练并利用先进的信号处理和特征提取方法,才能正确解释其含义.而如今机器学习和深度学习的发展,大 ...
- 基于深度学习的脑电图识别 综述篇(二)数据采样及处理
作者|Memory逆光 本文由作者授权分享 导读 脑电图(EEG)是一个复杂的信号,一个医生可能需要几年的训练并利用先进的信号处理和特征提取方法,才能正确解释其含义.而如今机器学习和深度学习的发展,大 ...
- python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 开发基于深度学习的人脸识别【考勤/签到】系统
开发基于深度学习的人脸识别[考勤/签到]系统 人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程 ...
- 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 中国人工智能学会通讯——基于视频的行为识别技术 1.5 基于深度学习的视频识别方法...
1.5 基于深度学习的视频识别方法 下面介绍面向视频分类的深度学习方 法.深度卷积神经网络在图像分类取得 成功后,研究人员就希望把它推广到视 频分类中.但这不是一件很容易的事, 一个原因是缺乏足够的训 ...
- 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类...
前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...
- 基于深度学习的数字识别GUI的设计
基于深度学习的数字识别GUI的设计 用matlab的deeplearning工具箱搭建了CNN来识别手写数字的GUI. 一.训练CNN 采用的是matlab自带的数字训练集和验证集,搭建的CNN的代码 ...
- Pytorch实现基于深度学习的面部表情识别(最新,非常详细)
目录 一.项目背景 二.数据预处理 1.标签与特征分离 2.数据可视化 3.分割训练集和测试集 三.搭建模型 四.训练模型 五.训练结果 附录 一.项目背景 基于深度学习的面部表情识别 (Facial ...
最新文章
- python3运算符和表达式实验报告_对Python3 * 和 ** 运算符详解
- 定义/赋值数组、 expect预期交互
- 2015年蓝桥杯C/C++ B组题目题解
- hdu 1937(尺取法)
- 大数据WEB阶段 Maven与SSM框架整合
- 通达OA 新旧两种数据库连接方式
- Final Cut Pro X如何去视频水印/视频去水印
- bat tomcat程序在后台执行_jenkins 中利用 cmd 命令启动 tomcat,进程被杀
- Struts2的struts.xml的配置细节
- 每秒处理10万订单的支付架构
- 沃尔玛牵手Gatik推行自动驾驶试点项目 为客户配送订单
- Struts里面的拦截器(针对的是外部调用本系统里面的接口方法)
- iOS 设计模式之抽象工厂
- HALCON 21.11:深度学习笔记---异常检测(9)
- 菲波那切数列java_斐波那契数列—java实现
- python操作cad的模块_怎么把freecad当python模块来用
- Windows安装redis教程
- SEO长尾理论,关键词需求覆盖理论
- linux怎么移植安卓rom,【经验技巧】任意手机移植ROM 教程,超详细ROM 技术详细......
- 从参数到使用体验,家用电视机选购攻略奉上