基于深度学习和opencv的甲骨文识别系统

这篇具有很好参考价值的文章主要介绍了基于深度学习和opencv的甲骨文识别系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近做了一个甲骨文识别项目,在此分享一下。

文末附有源码。
视频展示:

基于opencv和深度学习的甲骨文识别

运行界面:
甲骨文机器学习识别,深度学习,opencv,人工智能

识别结果:
甲骨文机器学习识别,深度学习,opencv,人工智能
本文一共可识别1135个甲骨文,数据集已经放到下载链接中:
下面是代码部分:
读取数据:

import cv2 as cv
import os
import numpy as np


f=open('lab.txt',encoding='utf-8')
lines=f.readlines()
f.close()

split=0.2
np.random.seed(10)
np.random.shuffle(lines)
bb=int(len(lines)*(1-0.2))
vv=len(lines)-bb
train_lines=lines[:bb]
valid_lines=lines[bb:]

def generate(train=True,valid=False,batch_size=32):
    while True:
        ee=np.eye(1185)
        if train:
            linnns=train_lines
        elif valid:
            linnns=valid_lines
        else:break

        x=[]
        y=[]
        for lin in linnns:
            lu_jing=lin.split()[0]
            lab=lin.split()[1]
            src=cv.imdecode(np.fromfile(lu_jing, dtype=np.uint8), 1)
            h,w,d=src.shape[0],src.shape[1],src.shape[2]
            if h==96 and w==96 and d==3:
                src=(src/255).astype('float32')
                ll=ee[int(lab)]
                x.append(src)
                y.append(ll)
                if len(x)==batch_size:
                    x_train=np.array(x)
                    y_train=np.array(y)
                    x=[]
                    y=[]
                    yield x_train,y_train


if __name__ == '__main__':
    generate()

训练网络模型:

from tensorflow.keras.layers import Conv2D,MaxPooling2D,Input,Flatten,Dense,Dropout
from tensorflow.keras import Model
from tensorflow.keras.callbacks import (EarlyStopping, ReduceLROnPlateau,
                                        TensorBoard,ModelCheckpoint)
from get_data import generate,bb,vv


def mode(shape=(96,96,3)):
    inputs=Input(shape=shape)
    x=Conv2D(filters=6,kernel_size=5,strides=(1,1),padding='same',activation='relu')(inputs)
    x=MaxPooling2D(pool_size=(2,2),strides=(2,2),padding='same')(x)
    x=Conv2D(filters=16,kernel_size=3,strides=(1,1),padding='same',activation='relu')(x)
    x = MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same')(x)
    x=Flatten()(x)
    x=Dense(1000,activation='relu')(x)
    x=Dropout(rate=0.5)(x)
    x=Dense(500,activation='relu')(x)
    y = Dense(1185, activation='softmax')(x)
    model=Model(inputs,y)
    return model

modell=mode()
modell.summary()
if __name__ == '__main__':
    modell.compile(
        loss='categorical_crossentropy',
        optimizer='adam',
        metrics=['accuracy']
    )

    log_dir = 'logs/'
    logging = TensorBoard(log_dir=log_dir)
    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)
    reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, verbose=1)
    early_stopping = EarlyStopping(monitor='val_loss', min_delta=0, patience=10, verbose=1)
    TensorBoard = TensorBoard(log_dir='./model', histogram_freq=1)

    batch_size=50
    hist = modell.fit_generator(generate(batch_size=batch_size),
                                steps_per_epoch=bb//batch_size,
                                validation_data=generate(valid=True,batch_size=batch_size),
                                validation_steps=vv//batch_size,
                                epochs=50,
                                callbacks=[logging, checkpoint, reduce_lr, early_stopping])


预测:

from model import modell
import cv2 as cv
import numpy as np
with open('answer.txt','r',encoding='utf-8') as f:
    lines=f.readlines()
modell.load_weights('logs/ep030-loss0.037-val_loss0.024.h5')
def ppre(src):
    #src=cv.imdecode(np.fromfile('ancient_3_exp/jia/丘/0/O000255_exp_1.png', dtype=np.uint8), 1)
    src=np.reshape(src,(1,src.shape[0],src.shape[1],src.shape[2]))
    src=(src/255).astype('float32')
    pre=modell.predict(src)[0]
    pre=np.argmax(pre)
    return lines[pre]

if __name__ == '__main__':
    src = cv.imdecode(np.fromfile('ancient_3_exp/jia/丘/0/O000255_exp_1.png', dtype=np.uint8), 1)
    zti=ppre(src)
    print(zti)
界面已经使用pyqt5做好,下载以后只需运行main.py程序即可,下图是程序目录:

甲骨文机器学习识别,深度学习,opencv,人工智能
如有疑问可私信作者。
下载地址:下载列表13文章来源地址https://www.toymoban.com/news/detail-851949.html

到了这里,关于基于深度学习和opencv的甲骨文识别系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Copilot帮我救回了变砖的甲骨文实例

            最近,我的一个美国凤凰城的甲骨文永久免费的amd实例失联了,主要原因东西装多了就反应慢了,还常常断线,寻思干脆 dd个新的系统算了,但dd就后悔了,原来那些开放的端口都关闭了,仅留了一个ssh服务的22端口,于是就开始折腾,终于,在第三次dd后就失联变砖

    2024年01月16日
    浏览(37)
  • 谈谈Oracle甲骨文可视化文件查看器:AutoVue

    目录 AutoVue基本介绍 AutoVue 2D Professional AutoVue 3D Professional Advanced AutoVue EDA Professional AutoVue Electro-Mechanical Professional AutoVue Office AutoVue VueLink 集成 AutoVue Web服务 AutoVue VueBeans集成 最后的最后总结 本文内容来源于ORACLE官网( AutoVue 企业可视化解决方案 | Oracle 中国)及自己整理而来

    2024年02月06日
    浏览(36)
  • 给甲骨文云免费ARM实例安装带magisk的Redroid

    设置命令变量 ## 使用docker拉取镜像 保存redroid图像 导入redroid映像 下载+提取 magisk magisk.tar remove.rc setup.sh 1.启动 开始enjoy

    2024年02月06日
    浏览(89)
  • 在ARM服务器上一键安装Proxmox VE(以在Oracle Cloud VPS上为例)(甲骨文)

    如题,具体用到的说明文档如下 virt.spiritlhl.net 首先是按照说明,先得看看自己的服务器符不符合安装 Proxmox VE的条件 https://virt.spiritlhl.net/guide/pve_precheck.html#%E5%90%84%E7%A7%8D%E8%A6%81%E6%B1%82 有提到硬件和软件要求,我目前测试使用的是 Oracle Cloud (龟壳) 的免费实例,4核16G内存200

    2024年02月12日
    浏览(44)
  • 深度学习实战:基于TensorFlow与OpenCV的手语识别系统

    本期内容:基于TensorFlow与OpenCV的手语识别系统 实验环境: python(3.11.4) tensorflow(2.13.0) cv2(4.8.0) 下载地址:https://download.csdn.net/download/m0_68111267/88518189 这些是Python中的标准库及第三方库及其相关的模块。 具体来说,这个代码导入了以下库: Pandas:数据分析和数据处理库。 NumP

    2024年02月06日
    浏览(46)
  • 基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。   人脸表情识别是一种重要的计算机视觉任务,它涉及到对人脸图像中的表情进行分类和理解。在这个系统中,我们将使用Python、OpenCV、dlib和Tensorflow来实现深度学习模型,以识别人脸表情。

    2024年02月01日
    浏览(44)
  • 基于深度学习的安全帽识别检测系统(python OpenCV yolov5)

    收藏和点赞,您的关注是我创作的动力    基于深度学习算法,以PaddlePaddle深度学习框架作为实验环境,选取了开源的安全帽识别数据库和实地拍摄的安全帽佩戴照片,使用样本扩增增加了实验数据集的样本数,选取了Faster R-CNN、SSD与YOLO v3三种深度神经网络模型,构建出安

    2024年02月08日
    浏览(41)
  • 基于Python+OpenCV智能答题卡识别系统——深度学习和图像识别算法应用(含Python全部工程源码)+训练与测试数据集

    本项目基于Python和OpenCV图像处理库,在Windows平台下开发了一个答题卡识别系统。系统运用精巧的计算机视觉算法,实现了批量识别答题卡并将信息导出至Excel表格的功能。这一解决方案使得答题卡的判卷过程变得轻便、高效且准确。 首先,我们以Python语言作为开发基础,结合

    2024年02月10日
    浏览(55)
  • 基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(一)

    本项目通过爬虫技术获取图片,利用OpenCV库对图像进行处理,识别并切割出人物脸部,形成了一个用于训练的数据集。通过ImageAI进行训练,最终实现了对动漫人物的识别模型。同时,本项目还开发了一个线上Web应用,使得用户可以方便地体验和使用该模型。 首先,项目使用

    2024年02月04日
    浏览(46)
  • 基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(二)

    本项目通过爬虫技术获取图片,利用OpenCV库对图像进行处理,识别并切割出人物脸部,形成了一个用于训练的数据集。通过ImageAI进行训练,最终实现了对动漫人物的识别模型。同时,本项目还开发了一个线上Web应用,使得用户可以方便地体验和使用该模型。 首先,项目使用

    2024年02月05日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包