2024 MathorCupB 题 甲骨文智能识别中原始拓片单字自动分割与识别研究

一、问题重述

甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文明的起源具有重要意义,也对世界文明的研究有着深远影响。在我国政府的大力推动下,甲骨文研究已经进入一个全新的发展阶段。人工智能和大数据技术被应用于甲骨文全息性研究及数字化工程建设,成为甲骨文信息处理领域的研究热点。

甲骨文拓片图像分割是甲骨文数字化工程的基础问题,其目的是利用数字图像处理和计算机视觉技术,在甲骨文原始拓片图像的复杂背景中提取出特征分明且互不交叠的独立文字区域。它是甲骨文字修复、字形复原与建模、文字识别、拓片缀合等处理的技术基础[2]。然而,甲骨拓片图像分割往往受到点状噪声、人工纹理和固有纹理三类干扰元素的严重影响[3]。且甲骨文图像来源广泛,包括拓片、拍照、扫描、临摹等,不同的图像来源,其干扰元素的影响是不同的。由于缺乏对甲骨文字及其干扰元素的形态先验特征的特殊考量,通用的代表性图像分割方法目前尚不能对甲骨文原始拓片图像中的文字目标和点状噪声、人工纹理、固有纹理进行有效判别,其误分割率较高,在处理甲骨拓片图像时均有一定局限性。如何从干扰众多的复杂背景中准确地分割出独立文字区域,仍然是一个亟待解决的具有挑战性的问题。

图1为一张甲骨文原始拓片的图像分割示例,左图为一整张甲骨文原始拓片,右图即为利用图像分割算法[4]实现的拓片图像上甲骨文的单字分割。甲骨文的同一个字会有很多异体字,这无疑增加了 甲骨文识别的难度,图2展示了甲骨文中“人”字的不同异体字。

问题一

问题1:对于附件1(Pre test 文件夹)给定的三张甲骨文原始拓片图片进行图像预处理,提取图像特征,建立甲骨文图像预处理模型,实现对甲骨文图像千扰元素的初步判别和处理。

解决思路

针对问题一,我们对附件一的甲骨文图像数据进行数据预处理

包括但不限于:

尺寸调整:将图像调整为模型要求的输入尺寸,通常是正方形或者某个固定的长宽比。

归一化:将图像的像素值缩放到固定范围内,例如0,1或−1,1,以便于模型的训练。

数据增强:通过随机旋转、裁剪、翻转、变换亮度和对比度等方式来增加训练数据的多样性,从而提高模型的泛化能力。

图像增强:对图像进行增强操作,如调整亮度、对比度、锐度、颜色等,以增强图像的特征。

解题代码(python)

import cv2
import numpy as np
import torch
import matplotlib.pyplot as plt

# 读取图像
image_path1 = r'data\1_Pre_test\h02060.jpg'
image_path2 = r'data\1_Pre_test\w01637.jpg'
image_path3 = r'data\1_Pre_test\w01870.jpg'
image1 = cv2.imread(image_path1)
image2 = cv2.imread(image_path2)
image3 = cv2.imread(image_path3)

# 定义目标尺寸
target_size = (416, 416)  # YOLOv5 推荐的尺寸

# 调整大小
resized_image1 = cv2.resize(image1, target_size)
resized_image2 = cv2.resize(image2, target_size)
resized_image3 = cv2.resize(image3, target_size)

# 将图像归一化为 [0, 1]
normalized_image = []
normalized_image.append(resized_image1.astype(np.float32) / 255.0)
normalized_image.append(resized_image2.astype(np.float32) / 255.0)
normalized_image.append(resized_image3.astype(np.float32) / 255.0)
# 如果需要旋转,可以在这里进行旋转操作

# 将图像转换为 PyTorch 的 Tensor 格式,并添加批次维度
tensor_image = torch.tensor(normalized_image[0]).permute(2, 0, 1).unsqueeze(0)

# 现在 tensor_image 就是你所需的输入数据,准备用于 YOLOv5 模型
plt.imshow(normalized_image[1])
plt.axis('off')
plt.show()

问题二

 解题思路

针对问题二,基于yolov5模型,利用附件2中的数据对模型进行微调,使其具备单字检测分割的能力。我们将部分分割结果可视化,验证模型分割能力。

解题代码

待更新

问题三

解题思路

针对问题三,利用第二问得到的检测分割模型,在附件三测试集上对测试数据进行检测分割,并保存结果到附件Test_results.xlsx

解题代码

待更新

问题四

解题思路

针对问题四,附件四给出部分甲骨文图像及其对应的简体中文,我们建立inception_v3分类模型,通过训练数据对模型进行微调。将得到的在甲骨文文字识别任务上微调后的inception_v3模型对测试集数据进行文字识别。将识别结果保存,写入论文。

解题代码

待更新

资料获取

提供2024MathorCupBC题的思路分析与代码,欢迎进群讨论:953799264

B题目思路代码获取:http://app.niucodata.com/mianbaoduo/recommend.php?id=59179

B题目成品论文获取:http://app.niucodata.com/mianbaoduo/recommend.php?id=59182

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DS数模-Mathorcup妈妈杯C题思路

2024Mathorcup数学建模挑战赛(妈妈杯)C题保姆级分析完整思路代码数据教学 C题题目:物流网络分拣中心货量预测及人员排班 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 总体分析:题目要求我们处理的是一个关于物流…

从“黑箱”到“透明”:云里物里电子标签助力汽车总装数字化转型

“汽车总装”指“汽车产品(包括整车及总成等)的装配”,是把经检验合格的数以百计、或数以千计的各种零部件按照一定的技术要求组装成整车及发动机、变速器等总成的工艺过程,是汽车产品制造过程中最重要的工艺环节之一。 其中&…

数据转换 | Matlab基于GADF格拉姆角差场一维数据转二维图像方法

目录 效果分析基本介绍程序设计参考资料获取方式 效果分析 基本介绍 GADF(Gramian Angular Difference Field)是一种将时间序列数据转换为二维图像的方法之一。它可以用于提取时间序列数据的特征,并可应用于各种领域,如时间序列分…

社交网络与Web3:数字社交的下一阶段

随着信息技术的飞速发展,人们的社交方式也发生了巨大的变化。从最初的互联网聊天室到如今的社交网络平台,我们已经见证了数字社交的不断演变和发展。而随着区块链技术的兴起,Web3时代的到来将为数字社交带来全新的可能性和挑战。本文将探讨社…

Redis7(二)数据类型及其用法

一、概述 命令不区分大小写&#xff0c;key区分大小写 数据类型针对value String List Set Hash ZSet bitmap GEO HyperLogLog Stream bitfield 二、String <K,V> 1、设值/取值 getrange key index1 index2 getrange key 0 -1//获取所有的值 SETRANGE KEY_N…

vue3前端加载动画 lottie-web 的简单使用案例

什么是 Lottie Lottie 是 Airbnb 发布的一款开源动画库&#xff0c;它适用于 Android、iOS、Web 和 Windows 的库。 它提供了一套从设计师使用 AE&#xff08;Adobe After Effects&#xff09;到各端开发者实现动画的工具流。 UED 提供动画 json 文件即可&#xff0c; 开发者就…

神经网络模型底层原理与实现9-可解释性

必要性&#xff1a;在金融、医药、自动驾驶方面&#xff0c;模型必须可解释&#xff0c;知道分类错在哪才可以更好的改进模型 解释的两类方法&#xff1a; 1.找出为什么模型认为图片是一只猫的原因 具体操作&#xff1a;a.把图片中的一部分删掉&#xff0c;如果分类错了很多&…

函数、指针和数组的相互运用(C语言)

1、函数指针数组 含义&#xff1a;数组的每个元素都是函数指针类型.eg&#xff1a; &#xff08;此代码链接&#xff1a;http://t.csdnimg.cn/ClJmb.也可以在我发布博客中找到&#xff09; 2、指向函数指针数组的指针 1、引入 3、回调函数 1、含义&#xff1a;就是一个通过…

模拟Android系统Zygote启动流程

版权声明&#xff1a;本文为梦想全栈程序猿原创文章&#xff0c;转载请附上原文出处链接和本声明 前言&#xff1a; 转眼时间过去了10年了&#xff0c;回顾整个10年的工作历程&#xff0c;做了3年的手机&#xff0c;4年左右的Android指纹相关的工作&#xff0c;3年左右的跟传感…

【数据库】GROUP BY 详解、示例、注意事项

一、基本介绍 GROUP BY 语句在 SQL 中用于将来自数据库表的记录分组&#xff0c;以便可以对每个组执行聚合函数&#xff08;如 COUNT(), MAX(), MIN(), SUM(), AVG() 等&#xff09;。使用 GROUP BY 时&#xff0c;数据库会根据一个或多个列的值将结果集分为多个分组&#xff…

BootStrap 5 保姆级教程(三):表格 图片

一、表格 1.1 基础表格 Bootstrap5 通过 .table 类来设置基础表格的样式&#xff0c;实例如下: <div class"container mt-3"><h2>基础表格</h2><p>.table 类来设置基础表格的样式:</p> <table class"table"…

掌握 C# 爬虫技术:使用 HttpClient 获取今日头条内容

摘要/导言&#xff1a; 在本文中&#xff0c;我们将探讨如何使用 C# 中的 HttpClient 类和爬虫代理IP技术来获取今日头条的内容。我们还将实现多线程技术&#xff0c;以提高数据采集的效率。 背景/引言&#xff1a; 随着信息时代的到来&#xff0c;数据已经成为了一种非常宝…

电脑离线调用微信 ocr.exe 使用 python 调用 WeChatOCR.exe 附python代码

微信的OCR识别能力还是可以的,并且可以得到位置,速度也快,我想要把微信的这个exe 单独提取出来,可以供其他项目使用,目前已有的应该都是需要依赖微信运行状态的,我这个独一份 相当于把微信运行它的OCR的环境完全剥离出来,只需要几个代码文件加上几个模型文件就可以离线…

【算法刷题 | 回溯思想 01】4.11(回溯算法理论、组合、组合总和 ||| )

文章目录 回溯1.回溯算法理论基础1.1什么是回溯法&#xff1f;1.2回溯法的效率1.3回溯法解决的问题1.4如何理解回溯法&#xff1f;1.5回溯法模板 2.组合2.1问题2.2解法一&#xff1a;暴力解法&#xff08;循环次数不确定&#xff09;2.3解法二&#xff1a;回溯2.3.1回溯思路&am…

如何申请做快团团购帮卖团长?免费试用教程一学就会!

新手小白想要自己做快团团&#xff0c;有两种方法。 1、自己提供货源&#xff0c;自己开团做团长。 这种方法流程非常简单&#xff0c;从微信小程序中找到快团团&#xff0c;点击右上角“一键开团”&#xff0c;然后“创建普通团购”&#xff0c;按照操作设置就可以开团了。 …

【2024MathorCup妈妈杯建模】赛题 B:甲骨文智能识别中原始拓片单字自动分割与识别研究

【2024MathorCup妈妈杯建模】赛题 B&#xff1a;甲骨文智能识别中原始拓片单字自动分割与识别研究 加群可以享受定制等更多服务&#xff0c;或者搜索B站&#xff1a;数模洛凌寺 联络组织企鹅&#xff1a;904117571 问题重述 问题 1&#xff1a;对于附件 1&#xff08;Pre_…

实习记录小程序|基于SSM的实习记录小程序设计与实现(源码+数据库+文档)

知识管理 目录 基于SSM的习记录小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、小程序端&#xff1a; 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕…

Linux:软件包管理器 - yum

Linux&#xff1a;软件包管理器 - yum Linux的软件安装方式源代码安装rpm包安装yum安装 yum三板斧yum listyum installyum remove yum生态yum源 Linux的软件安装方式 源代码安装 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序 源代码安…

ARM内核、内核寄存器及作用、ARM最小系统、半导体器件、存储器、ARM工作方式、ARM寄存器个数、立即数、汇编指令的s/c后缀

我要成为嵌入式高手之4月10日51单片机第五天&#xff01;&#xff01; ———————————————————————————— 单片机最小系统板&#xff1a; 单片机内部的CPU&#xff1a; CPU定义的变量都在ram中、编写的程序代码都在rom中 CPU在次细化&#xff1a;ker…

AMD Tensile 简介与示例

按照知其然&#xff0c;再知其所以然的认知次序进行 1&#xff0c;下载代码 git clone --recursive https://github.com/ROCm/Tensile.git 2&#xff0c;安装 Tensile cd Tensile mkdir build cd build ../Tensile/bin/Tensile ../Tensile/Configs/rocblas_dgemm_nn_asm_full…