Mathorcup 甲骨文识别

本资源主要包含第2-4问,第一问直接使用传统图像处理即可,需要有很多步骤,这一步大家自己写就行。

2 第2问,甲骨文识别

2.1 先处理源文件

原文件有jpg和json文件,都在一个文件夹下,需要对json文件进行处理,主要是将其转换为yolov8所使用的格式,大体代码如下所示:

# 详情加q 596520206
def convert(height, width, box):dw = 1. / (width)dh = 1. / (height)x = (box[0] + box[2]) / 2.0 - 1y = (box[1] + box[3]) / 2.0 - 1w = box[2] - box[0]h = box[3] - box[1]x = x * dww = w * dwy = y * dhh = h * dhreturn x, y, w, h

2.2 划分训练集和测试集

处理完之后,所有的图片分为两个文件夹,一个是图片,一个是标签,但是需要划分为训练集和测试集,代码如下:

for file in train_files:shutil.copy(file, os.path.join(train_images_folder, os.path.basename(file)))for file in val_files:shutil.copy(file, os.path.join(val_images_folder, os.path.basename(file)))# 复制对应的标签文件到相应的文件夹中
for file in train_files:label_file = os.path.join(labels_folder, os.path.splitext(os.path.basename(file))[0] + '.txt')if os.path.exists(label_file):shutil.copy(label_file, os.path.join(train_labels_folder, os.path.basename(label_file)))

处理完之后的图片
在这里插入图片描述

2.3 训练和验证模型

配置好data.yaml文件,即可训练和验证,中间截图如下:
会发现大多数的都能展示出来
在这里插入图片描述
在这里插入图片描述

3 第3问,对给定的文件进行识别

注意,有的图片是单通道,需要转换为3通道,如图所示:

 if len(img.shape) == 2:# 处理单通道图像# 创建一个全零的三通道图像height, width = img.shapecolor_image = np.zeros((height, width, 3), dtype=np.uint8)# 复制单通道图像到每个通道color_image[:, :, 0] = img  # 将灰度图像复制到蓝色通道color_image[:, :, 1] = img  # 将灰度图像复制到绿色通道color_image[:, :, 2] = img  # 将灰度图像复制到红色通道img = color_image

在这里插入图片描述

第3问对图片进行检测例子:
在这里插入图片描述

4 第4问

这问要先搭建一个分类模型,单独训练这个模型,然后将第2问检测的图片截图,放入到这个模型进行预测,结果如下所示:
在这里插入图片描述
在这里插入图片描述

    for xyxy, label in zip(xyxy_all,predict_label_all):x0 = xyxy[0]y0 = xyxy[1]x1 = xyxy[2]y1 = xyxy[3]color  = (0, 255, 0)  # 矩形的颜色,这里是绿色draw.rectangle([(x0, y0), (x1,y1)], outline=color)draw.text((x0, y0-30), label, (255, 0, 0), font=font)cv2charimg = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)cv2.imwrite(os.path.join(out_file_path, image_name), cv2charimg)
通过代码发现有些能识别处理,Q 596520206

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SystemVerilog]常见设计模式/实践

常见设计模式/实践 RTL 设计(尤其是 ASIC)的最终目标是制作出最小、最快的电路。为此,我们需要了解综合工具如何分析和优化设计。此外,我们还关注仿真速度,因为等待测试运行实际上是在浪费工程精力。虽然综合和仿真工…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示图像应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD12864显示图像应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD12864简单介绍一、LCD12864点阵型液…

2024最方便申请SSL证书方法介绍

申请SSL证书其实就像你去官方机构办个身份证,证明你的网站是合法且安全的。这里给你白话一点的简单步骤: 步骤一:确定需求 1. 域名:确保你有一个要申请证书的域名,就是你的网站地址,比如 www.example.com。…

MySQL Innodb中 可重复读隔离级别是否能完全规避幻读

一、MySQL 可重复读隔离级别下的幻读 在 MySQL Innodb引擎可重复读隔离级别下,已经尽可能最大程度的规避幻读的问题了,使得大多数情况下,重复读都是可以得到一致的结果。 针对于读数据,可以大致分为两种模式,快照读&…

网络篇12 | 链路层 ARP

网络篇12 | 链路层 ARP 01 简介1)工作过程2)ARP缓存2.1 动态ARP表项2.2 静态ARP表项2.3 短静态ARP表项2.4 长静态ARP表项 02 ARP报文格式1)ARP请求报文格式2)ARP响应报文格式3)套一层以太网帧(ARP帧&#x…

熟悉数电知识

23.数电 1. 建立时间、保持时间 建立时间setup time:时钟上升沿到来之前,输入端数据已经来到并稳定持续的时间。 保持时间hold time:时钟上升沿到来之后,传输端数据保持稳定并持续的时间。 2.二分频电路 每当输入一个时钟信号…

关于时频分析的一些事-答知乎问(一)

从信号的时频谱图中可以提取什么特征? 基于时频谱图的特征一般包括能量特征、时域和频域拓展特征以及时频内禀特征。 基于时频图的能量特征 基于时频图的特征中,能量特征是最简单的一种,通过分析时频谱图中的能量分布特性而获取信号的时频…

Gitlab全量迁移

Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…

算法库应用- 表的自然链接

功 能: 设计算法,将两个单链表数组的特定位序, 相同者,链接起来 编程人: 王涛 详细博客:https://blog.csdn.net/qq_57484399/article/details/127161982 时 间: 2024.4.14 版 本: V1.0 V1.0 main.cpp /***************************************** 功 能: 设计算法,将两个…

Linux:环境基础开发工具使用

文章目录 前言1.Linux下的软件安装1.1 什么是软件包1.2 如何安装软件1.3 如何卸载软件 2.vim2.1 vim的基本概念2.2 vim的基本操作2.3 vim正常模式命令集2.4 vim末行模式命令集2.5 vim的操作总结 3.Linux下的编译器:gcc3.1 gcc的使用3.2 gcc是如何工作的3.2.1 预处理…

嵌入式学习54-ARM3(中断和时钟)

S3c2440中断控制器 内部外设: DMA :(直接内存存取) Direct Memor…

基于Linux定时任务实现的MySQL周期性备份

1、创建备份目录 sudo mkdir -p /var/backups/mysql/database_name2、创建备份脚本 sudo touch /var/backups/mysql/mysqldump.sh# 用VIM编辑脚本文件,写入备份命令 sudo vim /var/backups/mysql/mysqldump.sh# 内如如下 #!/bin/bash mysqldump -uroot --single-…

数据库的负载均衡,高可用实验

一 高可用负载均衡集群数据库实验 1.实验拓扑图 2.实验准备(同一LAN区段)(ntp DNS) 客户端:IP:192.168.1.5 下载:MariaDB 负载均衡器:IP:192.168.1.1 下载:keepalived ipvsadm I…

操作系统银行家算法计算题

设系统某个T0时刻的状态,如表1所示: 表1 系统资源状态表使用银行家算法回答下面问题: (1)系统在T0时刻状态是否安全?若安全,请给出一个安全序列。 (2)假如T0时刻进程P1…

C语言指针进阶:数组与指针的联系

目录 1. 数组名的本质2. 使用指针访问数组3. 一维数组传参的本质4. 二级指针5. 指针数组5.1 指针数组模拟二维数组 正文开始。 1. 数组名的本质 数组名代表着这个数组中第一个元素的地址 例如: int arr[4] { 1,2,3,4 }; int *p1 &arr[0]; int *p2 arr;上述…

【智能优化算法】河马优化算法(Hippopotamus optimization algorithm,HO)

河马优化算法(Hippopotamus optimization algorithm,HO)是发表在中科院二区期刊“Scientific Reports”的文章“Hippopotamus Optimization Algorithm: a Novel Nature-Inspired Optimization Algorithm”上的算法。 01.引言 河马优化算法&a…

响应式导航栏不会做?看我一分钟学会制作导航栏!

引言 随着互联网技术的飞速发展,用户体验在网页设计中的重要性日益凸显。其中,导航栏作为网页的“指南针”,不仅能帮助用户快速定位所需内容,还能体现网站的整体风格和设计理念。本文将介绍如何使用HTML、CSS和JavaScript制作一个…

SpringBoot 微服务token 传递实现

1、前言 随着微服务的流行,微服务之间的安全以及业务需要,都需要穿递token ,而token的传递一般通过header 头来传递。从架构的角度来讲 ,一般的企业应用都由nginx、业务网关和各个微服务组成。这个nginx 传递header 我就不讲述。下…

[附带黑子定制款鸽鸽版素材包]更改文件夹图标,更改系统音效,更改鼠标指针及样式。

更改文件夹图标 1.选择图片在线格式转换网站转换为ico格式 2.右键文件夹选择属性 3.点击自定义,点击更改图标超链接 4.点击预览选择生成的ico文件 5.点击打开,点击确定,点击应用 更改系统音效(真爱粉强烈推荐) 1…

react query 学习笔记

文章目录 react query 学习笔记查询客户端 QueryClient获取查询客户端 useQueryClient异步重新请求数据 queryClient.fetchQuery /使查询失效 queryClient.invalidateQueries 与 重新请求数据queryClient.refetchQueries 查询 QueriesuseQuery查询配置对象查询的键值 Query Key…