【人工智能项目】深度学习实现汉字书法识别

深度学习邂逅汉字书法:跨时空的创新之旅 在此次深度学习与汉字书法融合的项目中,我们取得了一系列令人瞩目的成果,这些成果不仅彰显了深度学习技术在汉字书法领域的巨大潜力,也为我们未来的研究和应用奠定了坚实的基础。从模型性能指标来看,我们的深度学习模型在多个关键指标上表现出色。在书法风格识别任务中,模型的准确率达到了 [X]%,召回率达到了 [X]%。这意味着模型能够准确地识别出不同书法家的独特风格,并且能够有效地召回大部分属于特定风格的书法作品。 阅读详情
AI摘要

该博客介绍了使用深度学习方法,特别是VGG16, ResNet50, Xception和InceptionV3模型对汉字书法进行识别的详细步骤。首先,从数据预处理到模型训练,再到模型优化和评估,整个流程清晰呈现。然后,针对每个模型进行了训练和预测,最终生成CSV文件以供提交。博客还展示了如何利用预训练模型进行迁移学习,以提升模型性能。

【人工智能项目】深度学习实现汉字书法识别

在这里插入图片描述

背景介绍

竞赛数据提供100个汉字书法单字,包括碑帖,手写书法,古汉字等。图片全部为单通道宽度jpg,宽高不定。

数据集介绍

  • 训练集:每个汉字400张图片,共计40000张图片,训练集是标注好的数据,图片按照图片上的文字分类到不同的文件夹中,也就是生活文件夹的名字就是文件夹里面所有图片的标签。

  • 测试集:

    • 第一部分:每汉字100张图片共计10000张图片,供参赛人员测试算法模型
    • 第二部分:每汉子50张以上图片共1643张图片,用来评测。
  • 提交csv文件

    • 文件第一列是测试集中图片文件的文件名,第二列是推断出来的图片上文字可能的五个汉字。

思路

  • 提取数据集
  • 定义fine-tune模型
  • VGG16模型
  • ResNet50模型
  • Xception模型
  • InceptionV3模型

具体流程

提取数据集

# 导入所需的模块
import os
import cv2
import numpy as np


from sklearn.preprocessing import LabelBinarizer
from sklearn.model_selection import train_test_split

# 获取标签的编码器
train_path = "/content/train"
label_char = os.listdir(train_path)
label_char.sort()
encode_label = LabelBinarizer()
encode_label.fit(label_char)

LabelBinarizer(neg_label=0, pos_label=1, sparse_output=False)

# 定义读取图片函数
def get_img(file_path,img_rows,img_cols):
  
    image = cv2.imread(file_path,0)
    image = cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)
    image = cv2.resize(image,(img_rows,img_cols))
    feature = np.array(image,dtype=np.uint8)

    return feature
# 定义加载训练集的函数

def load_train_data(train_path,img_rows,img_cols):
    x_train = []
    y_train = []

    dirs = os.listdir(train_path)
    for dir_name in dirs:
        path = train_path + "/" + dir_name
        for img_name in os.listdir(path):
            feature = get_img(os.path.join(path,img_name),img_rows,img_cols)
            label = dir_name

            x_train.append(feature)
            y_train.append(label)

    # 对y_train进行one-hot编码
    y_train = np.array(encode_label.transform(y_train),dtype=np.uint8)
    # 对x_train进行转换
    x_train = np.array(x_train, dtype=np.uint8)

    # 对训练集进行随机打乱,并划分训练集和验证集
    x_train,x_valid,y_train,y_valid = train_test_split(x_train,y_train,test_size=0.2,random_state=2019)

    return x_train,x_valid,y_train,y_valid
# 定义加载测试集的函数
def load_test_data(test_path,img_rows,img_cols):
    x_test_id = []
    x_test = []

    img_names = os.listdir(test_path)
    for img_name in img_names:
        feature = get_img(os.path.join(test_path,img_name),img_rows,img_cols)
        id = img_name

        x_test_id.append(id)
        x_test.append(feature)

    #对x_test进行转换
    x_test = np.array(x_test,dtype=np.uint8)

    return x_test,x_test_id
# 加载训练和验证数据和标签
img_rows,img_cols = 224,224
x_train,x_valid,y_train,y_valid = load_train_data(train_path,img_rows,img_cols)
# 加载待预测的数据和标签
test_path = "/content/test2"
x_test,x_test_id = load_test_data(test_path,img_rows,img_cols)
# 查看一下数据和标签
print(x_train.shape)
print(y_train.shape)
print(x_valid.shape)
print(y_valid.shape)
print(x_test.shape)
print(x_test_id[:5])

在这里插入图片描述

# 查看一下数据和标签
import matplotlib.pyplot as plt
%matplotlib inline

print(label_char[y_train[0].argmax()])

plt.imshow(x_train[0])

在这里插入图片描述

fine-tune模型

选择keras中预训练好的模型,进行fine-tune。

# 导入开发需要的库
from keras import optimizers, Input
from keras.applications import  imagenet_utils

from keras.models import *
from keras.layers import *
from keras.optimizers import *
from keras.callbacks import *
from keras.applications import *

from sklearn.preprocessing import *
from sklearn.model_selection import *
from sklearn.metrics import *
# 绘制训练过程中的 loss 和 acc 变化曲线
import matplotlib.pyplot as plt
%matplotlib inline

def history_plot(history_fit):
    plt.figure(figsize=(12,6))
    
    # summarize history for accuracy
    plt.subplot(121)
    plt.plot(history_fit.history["acc"])
    plt.plot(history_fit.history["val_acc"])
    plt.title("model accuracy")
    plt.ylabel("accuracy")
    plt.xlabel("epoch")
    plt.legend(["train", "valid"], loc="upper left")
    
    # summarize history for loss
    plt.subplot(122)
    plt.plot(history_fit.history["loss"])
    plt.plot(history_fit.history["val_loss"])
    plt.title("model loss")
    plt.ylabel("loss")
    plt.xlabel("epoch")
    plt.legend(["train", "test"], loc="upper left")
    
    plt.show()
# fine-tune 模型
def fine_tune_model(model, optimizer, batch_size, epochs, freeze_num):
    '''
    discription: 对指定预训练模型进行fine-tune,并保存为.hdf5格式
    
    MODEL:传入的模型,VGG16, ResNet50, ...

    optimizer: fine-tune all layers 的优化器, first part默认用adadelta
    batch_size: 每一批的尺寸,建议32/64/128
    epochs: fine-tune all layers的代数
    freeze_num: first part冻结卷积层的数量
    '''

    # first: 仅训练全连接层(权重随机初始化的)
    # 冻结所有卷积层
    
    for layer in model.layers[:freeze_num]:
        layer.trainable = False
    
    model.compile(optimizer='adadelta', 
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    model.fit(x=x_train, 
              y=y_train, 
              batch_size=batch_size, 
              epochs=2, 
              shuffle=True, 
              verbose=1, 
              validation_data=(x_valid, y_valid))
    
    print('Finish step_1')
    
    # second: fine-tune all layers
    for layer in model.layers[:]:
        layer.trainable = True
    
    rc = ReduceLROnPlateau(monitor='val_loss',
                               factor=0.5,
                               patience=2,
                               verbose=1,
                               min_delta=1e-4,
                               mode='min')

    model_name = model.name  + '.hdf5'
    mc = ModelCheckpoint(model_name, 
                         monitor='val_loss', 
                         save_best_only=True,
                         mode='min')
    
    
    model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
    history_fit = model.fit(x=x_train, 
                            y=y_train, 
                            batch_size=batch_size, 
                            epochs=epochs, 
                            shuffle=True, 
                            verbose=1, 
                            validation_data=(x_valid, y_valid),
                            callbacks=[mc, rc])
    print('Finish fine-tune')
    
    #展示fine-tune过程中的loss和accuracy变化曲线
    history_plot(history_fit)

VGG16

a.定义VGG16模型

# 定义一个VGG16的模型
def vgg16_model(img_rows, img_cols):
    x = Input(shape=(img_rows, img_cols, 3))
    x = Lambda(imagenet_utils.preprocess_input)(x)
    
    base_model = VGG16(input_tensor=x, weights='imagenet', 
                      include_top=False, pooling='avg')
    x = base_model.output
    x = Dense(1024, activation='relu', name='fc1')(x)
    x = Dropout(0.5)(x)
    predictions = Dense(100, activation='softmax', name='predictions')(x)
    
    vgg_model = Model(inputs=base_model.input, outputs=predictions, name='vgg16')
     
    return vgg_model
# 创建VGG16模型
img_rows, img_cols = 224, 224
vgg_model = vgg16_model(img_rows,img_cols)
# 列出每一层的序号和名字
for i,layer in enumerate(vgg_model.layers):
    print(i,layer.name)

在这里插入图片描述
b.VGG16模型训练

# 模型训练
optimizer = optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)


batch_size = 32
epochs = 10
freeze_num = 19
    
fine_tune_model(vgg_model, optimizer, batch_size, epochs, freeze_num)

在这里插入图片描述
在这里插入图片描述
c.VGG16模型预测

# 加载模型权重
vgg_model.load_weights("vgg16.hdf5")
# 获取预测结果
y_preds = vgg_model.predict(x_test)
# 测试预测的结果
print(x_test.shape[0])
plt.imshow(x_test[2])

test_img = np.expand_dims(x_test[2],axis=0)
y_pred = vgg_model.predict(test_img)
print(y_pred.shape)

labels=[]
pred_dict = {key:value for key,value in enumerate(y_pred[0])} 
pred_sorted = sorted(pred_dict.items(), key=lambda item:(-item[1])) 
top_5 = " "
for j in range(5):
    index = pred_sorted[j][0]
    top_5 += label_char[index]
        
labels.append(top_5) 

print(labels)

在这里插入图片描述

from pandas import DataFrame

# 定义创建csv文件的函数
def create_submission(y_preds,x_test_id):
    labels = []
    for i,_ in enumerate(x_test_id):  

        # key代表预测的character的序号,value代表预测概率
        pred_dict = {key:value for key,value in enumerate(y_preds[i])} 
        pred_sorted = sorted(pred_dict.items(), key=lambda item:(-item[1])) 
        # pred_sorted: [(k1,v1), (k2,v2), ...]
        top_5 = ''
        for j in range(5):
            index = pred_sorted[j][0]
            top_5 += label_char[index]

        labels.append(top_5) 

    result = DataFrame(labels,columns=["labels"])
    result.insert(0,"filename",x_test_id)

    result.to_csv("submit.csv",index=None)

    print("create submission succesfuly")
# 生成csv文件
create_submission(y_preds,x_test_id)
import pandas as pd
# 预览一下提交文件
predict_df = pd.read_csv("submit.csv")
predict_df.head()

在这里插入图片描述

ResNet

a.ResNet50模型定义

# 定义一个ResNet50的模型
def restnet50_model(img_rows, img_cols):
    x = Input(shape=(img_rows, img_cols, 3))
    x = Lambda(imagenet_utils.preprocess_input)(x)
    
    base_model = ResNet50(input_tensor=x, weights='imagenet', 
                      include_top=False, pooling='avg')
    x = base_model.output
    x = Dense(1024, activation='relu', name='fc1')(x)
    x = Dropout(0.5)(x)
    predictions = Dense(100, activation='softmax', name='predictions')(x)
    
    resnet_model = Model(inputs=base_model.input, outputs=predictions, name='resnet50')
    
    return resnet_model
# 创建ResNet50模型

img_rows, img_cols = 224, 224
resnet_model = restnet50_model(img_rows,img_cols)
# 列出每一层的序号和名字
for i,layer in enumerate(resnet_model.layers):
    print(i,layer.name)

b.ResNet50模型训练

# 模型训练

optimizer = optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08)


batch_size = 32
epochs = 10
freeze_num = 175
    
fine_tune_model(resnet_model, optimizer, batch_size, epochs, freeze_num)

在这里插入图片描述

在这里插入图片描述
c.ResNet模型预测

# 加载模型权重
resnet_model.load_weights("resnet50.hdf5")
# 获取预测结果
y_preds = resnet_model.predict(x_test)
from pandas import DataFrame

# 定义创建csv文件的函数
def create_submission(y_preds,x_test_id):
    labels = []
    for i,_ in enumerate(x_test_id):  

        # key代表预测的character的序号,value代表预测概率
        pred_dict = {key:value for key,value in enumerate(y_preds[i])} 
        pred_sorted = sorted(pred_dict.items(), key=lambda item:(-item[1])) 
        # pred_sorted: [(k1,v1), (k2,v2), ...]
        top_5 = ''
        for j in range(5):
            index = pred_sorted[j][0]
            top_5 += label_char[index]

        labels.append(top_5) 

    result = DataFrame(labels,columns=["labels"])
    result.insert(0,"filename",x_test_id)

    result.to_csv("submit2.csv",index=None)

    print("create submission succesfuly")
# 生成csv文件
create_submission(y_preds,x_test_id)
import pandas as pd
# 预览一下提交文件
predict_df = pd.read_csv("submit2.csv")
predict_df.head()

在这里插入图片描述

Xception

a.定义Xception模型

# 定义一个Xception的模型
def xception_model(img_rows, img_cols):
    x = Input(shape=(img_rows, img_cols, 3))
    x = Lambda(imagenet_utils.preprocess_input)(x)
    
    base_model = Xception(input_tensor=x, weights='imagenet', 
                      include_top=False, pooling='avg')
    x = base_model.output
    x = Dense(1024, activation='relu', name='fc1')(x)
    x = Dropout(0.5)(x)
    predictions = Dense(100, activation='softmax', name='predictions')(x)
    
    xception_model = Model(inputs=base_model.input, outputs=predictions, name='xception')
    
    return xception_model
# 创建Xception模型

img_rows, img_cols = 224, 224
xception_model = xception_model(img_rows,img_cols)
# 列出每一层的序号和名字
for i,layer in enumerate(xception_model.layers):
    print(i,layer.name)

b.Xception模型训练

# 模型训练

optimizer = optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08)


batch_size = 32
epochs = 15
freeze_num = 132
    
fine_tune_model(xception_model, optimizer, batch_size, epochs, freeze_num)

c.Xception模型预测

# 加载模型权重
xception_model.load_weights("xception.hdf5")
# 获取预测结果
y_preds = xception_model.predict(x_test)
from pandas import DataFrame

# 定义创建csv文件的函数
def create_submission(y_preds,x_test_id):
    labels = []
    for i,_ in enumerate(x_test_id):  

        # key代表预测的character的序号,value代表预测概率
        pred_dict = {key:value for key,value in enumerate(y_preds[i])} 
        pred_sorted = sorted(pred_dict.items(), key=lambda item:(-item[1])) 
        # pred_sorted: [(k1,v1), (k2,v2), ...]
        top_5 = ''
        for j in range(5):
            index = pred_sorted[j][0]
            top_5 += label_char[index]

        labels.append(top_5) 

    result = DataFrame(labels,columns=["labels"])
    result.insert(0,"filename",x_test_id)

    result.to_csv("submit3.csv",index=None)

    print("create submission succesfuly")
# 生成csv文件
create_submission(y_preds,x_test_id)
import pandas as pd
# 预览一下提交文件
predict_df = pd.read_csv("submit.csv")
predict_df.head()

在这里插入图片描述

InceptionV3

a.InceptionV3模型定义

# 定义一个Inception的模型
def inception_model(img_rows, img_cols):
    x = Input(shape=(img_rows, img_cols, 3))
    x = Lambda(imagenet_utils.preprocess_input)(x)
    
    base_model = inception_v3.InceptionV3(input_tensor=x, weights='imagenet', 
                      include_top=False, pooling='avg')
    x = base_model.output
    x = Dense(1024, activation='relu', name='fc1')(x)
    x = Dropout(0.5)(x)
    predictions = Dense(100, activation='softmax', name='predictions')(x)
    
    inception_model = Model(inputs=base_model.input, outputs=predictions, name='inceptionv3')
    
    return inception_model
# 创建Incpetion模型

img_rows, img_cols = 224, 224
inception_model = inception_model(img_rows,img_cols)
# 列出每一层的序号和名字
for i,layer in enumerate(inception_model.layers):
    print(i,layer.name)

b.InceptionV3模型训练

# 模型训练

optimizer = optimizers.Adamax(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=1e-08)


batch_size = 32
epochs = 15
freeze_num = 311
    
fine_tune_model(inception_model, optimizer, batch_size, epochs, freeze_num)

在这里插入图片描述
在这里插入图片描述
c.InceptionV3模型预测

# 加载模型权重
inception_model.load_weights("inceptionv3.hdf5")
# 获取预测结果
y_preds = inception_model.predict(x_test)
from pandas import DataFrame

# 定义创建csv文件的函数
def create_submission(y_preds,x_test_id):
    labels = []
    for i,_ in enumerate(x_test_id):  

        # key代表预测的character的序号,value代表预测概率
        pred_dict = {key:value for key,value in enumerate(y_preds[i])} 
        pred_sorted = sorted(pred_dict.items(), key=lambda item:(-item[1])) 
        # pred_sorted: [(k1,v1), (k2,v2), ...]
        top_5 = ''
        for j in range(5):
            index = pred_sorted[j][0]
            top_5 += label_char[index]

        labels.append(top_5) 

    result = DataFrame(labels,columns=["labels"])
    result.insert(0,"filename",x_test_id)

    result.to_csv("submit4.csv",index=None)

    print("create submission succesfuly")
# 生成csv文件
create_submission(y_preds,x_test_id)
import pandas as pd
# 预览一下提交文件
predict_df = pd.read_csv("submit4.csv")
predict_df.head()

在这里插入图片描述

小结

那接着下一个安排走起吧!!!
在这里插入图片描述

033基于hwdb手写汉字数据集的识别检测 080python农业病虫害检测pyqt版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、089基于深度学习的小样本数据检测_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、081基于深度学习的农业病虫害检测小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、M。056基于python的图像识别含评价指标_精确率_召回率_f1score') 阅读详情

相关推荐

基于CNN实现书法字体风格识别任务

本文基于Pytorch实现卷积神经网络来实现书法字体识别,实现端到端的单字检测与识别,进一步提高识别书体风格和字形的精度,本文使用了4种书法字体分别是楷书、草书、隶书、篆书,训练了仅仅10个epoch就达到了90+的准确率,可见效果之好。

优快云 精品推荐 5759

深度学习作业-图像识别

深度学习作业-图像识别 一、AlexNet进行中文字体的识别 1 、数据准备 2 、构造数据生成器 3 、输出图像 4 、AlexNet代码实现 1 .模型结构搭建 2 .模型编译 3 .模型运行与拟合 二、自搭建网络进行中文字体的识别 1 、数据准备 2 、构造数据生成器 3 、自搭建模型代码实现 1 .模型结构搭建 2 .模型运行与拟合 3 .对新预测集进行模型预测 1 .使用带泄露的ReLU函数 2 .模型中不使用dropout 结论 数据背景 本次

qq_34112576的博客 3875

深度学习手写汉字1309个,训练集180每个,测试集30每个

深度学习1309个手写汉字mat文件,大小规格28*28;训练集23万测试集6万。

基于深度学习实现手写汉字识别

本文将实现基于CNN的手写汉字识别 1.目的 本篇文章将使用tensorflow搭建一个卷积神经网络(CNN)实现对手写汉字的识别。 2.数据来源 CASIA-HWDB官网.中的HWDB1.1,这个数据集来自于模式识别国家重点实验室。 3.数据预处理 首先,先将数据下载好并解压到指定文件夹,然后对数据进行一个可视化处理,看看这些数据到底是啥样子的。 def read_gnt_dir(gnt_dir=train_data_dir): def one_file(f): header_si

weixin_44213956的博客 6468

基于python+DNN+CNN实现的书法识别项目+源码(毕业设计&课程设计&项目开发)

基于python+DNN+CNN实现的书法识别项目+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于python+DNN+CNN实现的书法识别项目+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于python+DNN+CNN实现的书法识别项目+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: python ai 采用DNN和CNN实现的书法识别项目 具体思路是将训练数据和标识转为易于理解的lable后 将特征提取到CSV中 从CSV中提取训练数据 采用多层CNN训练 预测结果

书法特征提取,书法的特性,matlab

用数字图像处理方法提取书法特征 实现书法骨架提取

【开源】汉字书法字体识别模型

本文介绍了一个基于深度学习的汉字书法识别系统。该项目通过爬虫收集了约18万张涵盖篆、隶、草、行、楷五种书体的汉字图片,采用ResNet50模型进行训练,识别准确率达85%以上。系统提供本地GUI和Web两种使用方式,支持识别单个汉字。项目已开源,包含数据采集、清洗、模型训练等完整代码,并提供了预训练模型下载。用户可通过拍照或上传图片进行识别,但需注意系统目前仅支持单字识别,对连笔较多的草书识别仍存在一定难度。

weixin_42327326的博客 1483

论文研究-基于深度学习的手写汉字美感评分 .pdf

基于深度学习的手写汉字美感评分,庄子明,张洪刚,为帮助青少年儿童提高汉字书写质量,更好地辅助汉字书写教学,本文探究了手写汉字美感评分的有关技术,结合当前最新的深度学习理

SWUST基于深度学习的书法字形风格识别

书法字形风格识别,该项目是我的导师为我指引的毕设项目,为了在自己的笔记本有限的硬件资源上实现,我将其拓展为了分布式,叠层网络实现大数据量识别,现已实现部分功能,到达初版设计,验证该方向的可行性,界面ui是自己随便写的,核心功能对书法字体的风格和字形的初步训练与识别已完成,能够对单字图片和多字图片进行识别,采用风格与字形分离识别,结构简单。多字体图片识别,将图片中的字体按照从上到下,从右到左的顺序依次切割出来,然后再依次单张字形识别。

LIUSHUO32的博客 1487

【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx

初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。

qq_43557907的博客 9488

【汽车主动降噪】【ANC算法优化】基于深度学习的汽车主动噪声控制技术研究及Matlab实现

本文探讨了基于深度学习的汽车主动降噪(ANC)算法优化方案。针对传统FXLMS算法在应对复杂、非线性车内噪声时的局限性,文章详细解析了如何利用神经网络作为非线性建模器、深度滤波器或智能步长调节器来增强ANC系统性能,并提供了完整的Matlab仿真实战流程,展示了深度学习在提升降噪效果和收敛速度方面的潜力。

seed的博客 541

深度学习: AI 书法评价

未来,随着深度学习技术的不断进步,以及与书法艺术、教育教学的深度融合,AI 书法评价系统将更加智能化、人性化,为书法教育和文化传承发挥更大的作用,让更多人感受到书法艺术的魅力与价值。例如,在笔画质量评价方面,统计系统正确识别笔画问题的比例,分析误差产生的原因。在探索过程中,需与书法专家、教育工作者合作,深入了解书法艺术的审美标准、教学需求,将其融入 AI 书法评价系统的设计中。例如,与书法专家共同制定科学的评价指标体系,结合教育工作者的教学经验,优化系统反馈机制,使 AI 书法评价更贴合实际应用场景。

毒果的博客 2284

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 128

基于PyTorch的TinyMind 汉字书法识别部分代码详解

选修课《神经网络与深度学习》的实验为TinyMind 汉字书法识别自由练习赛(初级难度)。搜到Link2Link大神给出的源码。修改路径后能跑到96+,无其他错误!再次感谢大神的源码!对于PyTorch的学习,可以参考B站《PyTorch 动态神经网络 (莫烦 Python 教学)》。调参调的一塌糊涂,没有方向,这是门学问。神经网络与深度学习到此为止,有缘再见。特此记录,方便自己日后再有需要,更希望方便各位有需要同学~

战死为止的博客 3652

攻克Windows平台3DGS复现:从环境配置到可视化实战全记录

本文详细记录了在Windows平台成功复现3D Gaussian Splatting(3DGS)的完整流程,涵盖从环境配置、依赖安装、数据准备到模型训练与可视化的全步骤。重点解决了Windows下CUDA版本匹配、Visual Studio编译及SIBR_viewers可视化工具部署等核心难题,为开发者提供了一份详实的避坑指南与实战手册。

weixin_28839699的博客 253

SCI、中科院1区算法应用:(BWO-CNN-BiGRU-Attention)白鲸优化深度学习-融合注意力机制预测程序代码!包含特征可视化,数据Excel导入,直接运行!

BWO 白鲸优化算法,于2022年发表在SCI、中科院1区期刊《Knowledge-Based Systems》上。我们利用该高创新算法对我们的CNN-BiGRU-Attention时序和空间特征结合-融合注意力机制的回归预测程序代码中的超参数进行优化。

weixin_48747334的博客 3265

汉字书法字体识别技术综述

本文系统梳理了甲骨文、金文、石鼓文、篆书、隶书、草书、行书、楷书八种字体的识别技术现状,涵盖数据集资源、方法演进(从MQDF到VLLM)和前沿进展。

weixin_42327326的博客 611

Python实战:用MOOTDX库轻松抓取股票分时数据并绘制专业图表(附完整代码)

本文详细介绍了如何使用Python的MOOTDX库获取股票分时数据,并通过Pandas进行数据清洗与VWAP计算,最后利用Matplotlib绘制包含价格线、均线和成交量的专业分时图。文章提供了从环境搭建、数据获取到可视化呈现的完整代码,帮助读者快速构建本地化的股票分时数据分析工具。

weixin_29041195的博客 476

【AI参赛经验】汉字书法识别入门—by:真的学不会

各位人工智能爱好者,大家好! 由TinyMind发起的 #第一届汉字书法识别挑战赛# 正在火热进行中,比赛才开始3周,已有数只黑马冲进榜单。目前TOP54全部为90分以上!可谓竞争激烈,高手如林。不是比赛太简单,是大佬们太厉害了啊! 查看榜单 本次比赛主要是以学习交流为目的,吸引了不少萌新们报名参赛~虽是入门级别的赛题,对于没动手实战过的同学,还是有些不知所措。为此TinyMind特邀战...

AI科技大本营 4048

基于轻量化网络的干扰信号智能识别算法

针对干扰信号识别时卷积神经网络模型体积大、训练周期长、对硬件存储和计算要求高等问题,本 文提出了一种基于改进轻量级网络模型 SqueezeNet 的干扰信号智能识别算法。该方法首先利用距离多普勒 (Range‑Doppler,RD)处理获得目标及干扰信号的RD图像,接着采用滑窗变换、归一化等技术对RD图像进行重 塑;然后采用基于 RD 信息尺寸的隐层和通道剪枝措施对 SqueezeNet 网络进行改进,缩小了模型尺寸和存储空 间;最后利用不同参数的测试样本拓展网络模型的泛化性能。

qq_43416206的博客 545

35、使用 Geo 创建 GitLab 的分布式只读副本

本文详细介绍了如何使用GitLab Geo功能创建分布式只读副本,涵盖数据库主从配置、SSH密钥查找方式更改、通过Web UI添加从节点、激活哈希存储及状态检查等关键步骤。同时提供了常见问题解答和配置流程图,帮助用户快速部署并维护Geo集群,实现跨地域的高效数据同步与高可用架构。

chair的专栏 81

汉字书法识别

单个汉字书法识别经验: https://cloud.tencent.com/developer/article/1142927 文化传承—汉字书法多场景识别 https://www.datafountain.cn/competitions/334/details/rank?sch=1420&page=1&type=A 转载于:https://www.cnblogs...

weixin_30443747的博客 740

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【亲测免费】 DeepHCCR 离线手写汉字识别项目教程

DeepHCCR 离线手写汉字识别项目教程 1、项目介绍 DeepHCCR 是一个专门用于离线手写汉字识别的开源项目,它结合了深度学习的两大经典模型——GoogLeNet和AlexNet,以实现高效且准确的汉字识别。这个项目由深度学习爱好者开发,并提供了在两个大型数据集上的训练结果,以及在2013年ICDAR中国手写汉字识别竞赛(Chinese Handwriting Recognition Co...

gitblog_00373的博客 865

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习入门指南:从零开始TinyMind汉字书法识别

深度学习入门指南:从零开始TinyMind汉字书法识别 这几天在刷这个新出的比赛,受举办方邀请谢了一篇文章,也转到优快云来和大家分享下吧。话说TinyMind不是被优快云收购了么,我这算不算把统一个发了两遍23333 环境搭建 数据导入 启动网络 环境搭建: 对入门来说,最容易的还是在windows下进行开发。而且现在各种深度学习架构大都支持windows,因此如果只是入门深度学习...

link的博客 3437

【AI参赛经验】深度学习入门指南:从零开始TinyMind汉字书法识别——by:Link

各位人工智能爱好者,大家好! 由TinyMind发起的#第一届汉字书法识别挑战赛#正在火热进行中,比赛才开始3周,已有数只黑马冲进榜单。目前TOP54全部为90分以上!可谓竞争激烈,高手如林。不是比赛太简单,是大佬们太厉害了啊! 查看榜单 本次比赛主要是以学习交流为目的,吸引了不少萌新们报名参赛~虽是入门级别的赛题,对于没动手实战过的同学,还是有些不知所措。为此TinyMind特邀战场中...

AI科技大本营 2296

TinyMind第一届汉字书法识别挑战赛

报名地址:http://www.tinymind.cn/competitions/41?from=blog比赛介绍手写字体识别一直是人工智能领域一个热门研究方向,这次我们联合书法领域的权威合作伙伴举办这次书法字体识别大赛,给广大人工智能和手写字体识别技术爱好者提供一个练习和交流的机会,也希望能通过这次比赛发现一些该领域的技术人才。 本次比赛考核的是单字书法图片的文字识别,识别准确度越高得分越高,相...

女王の专属领地 1480
上一篇: 【人工智能项目】深度学习实现图像多标签分类
下一篇: 【人工智能项目】深度学习实现胸腔X光肺炎检测
mind_programmonkey
mind_programmonkey 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 4435粉丝 1111原创
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值