本文介绍基于Paddle的世界人工智能创新大赛AIWIN手写字体OCR识别竞赛任务一baseline方案。涵盖竞赛背景与任务,说明数据处理步骤:创建文件夹、上传解压数据,将标注转为PaddleOCR所需格式,生成字典;还涉及模型构建,包括识别算法选择、安装PaddleOCR、下载预训练模型及训练,最后提及模型预测及结果保存,鼓励进一步优化。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
2025世界人工智能创新大赛(AIWIN),由世界人工智能大会组委会主办,AI SPACE承办,是全球范围内初具影响力的人工智能赛事,是2025世界人工智能大会的重要组成部分。
秋季赛将继续围绕“人工智能助力城市数字化转型”的主题,以“开展算法创新、选拔数字人才”为目标,继续秉持“高端化、专业化、国际化、市场化“的原则开展赛事。
今年提供手写字体OCR识别竞赛和心电智能诊断算法竞赛两个赛题。
我们选取【手写字体OCR识别竞赛】任务一进行实验,接下来对赛题背景及任务进行简单介绍。
银行日常业务中涉及到各类凭证的识别录入,例如身份证录入、支票录入、对账单录入等。以往的录入方式主要是以人工录入为主,效率较低,人力成本较高。近几年来,OCR相关技术以其自动执行、人为干预较少等特点正逐步替代传统的人工录入方式。但OCR技术在实际应用中也存在一些问题,在各类凭证字段的识别中,手写体由于其字体差异性大、字数不固定、语义关联性较低、凭证背景干扰等原因,导致OCR识别率准确率不高,需要大量人工校正,对日常的银行录入业务造成了一定的影响。
本次赛题将提供手写体图像切片数据集,数据集从真实业务场景中,经过切片脱敏得到,参赛队伍通过识别技术,获得对应的识别结果。即:
输入:手写体图像切片数据集
输出:对应的识别结果
赛题在赛程中分设为两个独立任务,各自设定不同条件的训练集、测试集和建模环境,概述如下:
任务一(本项目选取):提供开放可下载的训练集及测试集,允许线下建模或线上提供 Notebook 环境及 Terminal 容器环境(脱网)建模,输出识别结果完成赛题。
任务二:提供不可下载的训练集,要求线上通过 Terminal 容器环境(脱网)建模后提交模型,由系统输入测试集(即对选手不可见),输出识别结果完成赛题
大赛使用数据要求如下"参赛人员不得对外以任何形式转载、发布赛题的训练集、验证集的全部或任意部分",因此需要大家自行去官网下载数据集。
注:数据量8000,且均是文字区域,下载速度很快。
In [ ]# 新建文件夹【dataset】!mkdir dataset
将下载的数据集上传到【dataset】文件夹内,操作流程如下图所示:
然后解压数据集:
In [ ]!unzip -q dataset/2025A_T1_Task1_Sample_V1106.zip -d ./dataset/ !unzip -q dataset/2025A_T1_Task1_数据集.zip -d ./dataset/
下载的数据标注为json格式且图片在两个文件夹内,我们需要处理为PaddleOCR训练所需要的格式:建议将训练图片放入同一个文件夹,并用一个txt文件(rec_gt_train.txt)记录图片路径和标签,txt文件里的内容如下:
注意: txt文件中默认请将图片路径和图片标签用 \t 分割,如用其他方式分割将造成训练报错。
" 图像文件名 图像标注信息 "train_data/rec/train/word_001.jpg 简单可依赖 train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单 ...
最终训练集应有如下文件结构:
|-train_data
|- rec_gt_train.txt
|- train
|- 8bb1941c760a2c1d017626c361da6c4d.jpg
|- 8bb1941c760a2c1d01762b943a624421.jpg
|- 8bb1941c760a2c1d0176415a9ec807fe.jpg
| ...接下来,我们一起看怎么用代码具体实现吧~
In [ ]import osimport os.path as ospimport jsonimport shutilimport yaml
定义w
rite_file函数,处理训练集中date和amount中的数据:
def write_file(file, json_file, save_pic):
# 读取json文件
data = yaml.load(open(json_file)) # all_str为了后面统计训练集的字典
all_str = ''
for pic_name, label_info in data.items(): # 修改成OCR需要的格式
line = os.path.join(save_pic, pic_name)+'\t'+label_info+'\n'
file.write(line)
all_str+=label_info # 将图片移动到save_pic目录下
ori_path = osp.join(osp.dirname(json_file), 'images', pic_name)
save_path = osp.join(save_pic, pic_name)
shutil.copy(ori_path, save_path) return set(all_str)
In [ ]
# 处理数据之后的保存路径!mkdir 'train_data'# 记录图片和标签的txtsave_txt = 'train_data/rec_gt_train.txt'# 所有图片放在一个文件夹内save_pic = 'train_data/train/'if not os.path.exists(save_pic):
os.mkdir(save_pic)# 读取date和amount的json文件date_json = 'dataset/训练集/date/gt.json'amount_json = 'dataset/训练集/amount/gt.json'file = open(save_txt, 'w')
date_set = write_file(file, date_json, save_pic)
amount_set = write_file(file, amount_json, save_pic)
file.close()
处理测试集,将所有图片放在一个文件夹内:
In [ ]!mkdir /home/aistudio/test_data/ !cp -r /home/aistudio/dataset/测试集/amount/images/* /home/aistudio/test_data/ !cp -r /home/aistudio/dataset/测试集/date/images/* /home/aistudio/test_data/
最后需要提供一个字典({rec_gt_label}.txt),使模型在训练时,可以将所有出现的字符映射为字典的索引。
因此字典需要包含所有希望被正确识别的字符,{rec_gt_label}.txt需要写成如下格式,并以 utf-8 编码格式保存:
l dad r nIn [ ]
character_dict_path = 'train_data/rec_gt_label.txt'with open(character_dict_path, 'w', encoding='utf-8') as out_file:
merge_set = date_set|amount_set
num_class = len(merge_set) print('num_class:',num_class) for label in merge_set:
line = label+'\n'
out_file.write(line)num_class: 21
PaddleOCR中提供了如下文本识别算法列表,以及每个算法在英文公开数据集上的模型和指标,主要用于算法简介和算法性能对比。
文本识别算法:
| 模型 | 骨干网络 | Avg Accuracy | 模型存储命名 | 下载链接 |
|---|---|---|---|---|
| Rosetta | Resnet34_vd | 80.24% | rec_r34_vd_none_none_ctc | 下载链接 |
| Rosetta | MobileNetV3 | 78.16% | rec_mv3_none_none_ctc | 下载链接 |
| CRNN | Resnet34_vd | 82.20% | rec_r34_vd_none_bilstm_ctc | 下载链接 |
| CRNN | MobileNetV3 | 79.37% | rec_mv3_none_bilstm_ctc | 下载链接 |
| STAR-Net | Resnet34_vd | 83.93% | rec_r34_vd_tps_bilstm_ctc | 下载链接 |
| STAR-Net | MobileNetV3 | 81.56% | rec_mv3_tps_bilstm_ctc | 下载链接 |
| RARE | Resnet34_vd | 84.90% | rec_r34_vd_tps_bilstm_attn | 下载链接 |
| RARE | MobileNetV3 | 83.32% | rec_mv3_tps_bilstm_attn | 下载链接 |
| SRN | Resnet50_vd_fpn | 88.33% | rec_r50fpn_vd_none_srn | 下载链接 |
本项目中已经帮大家安装好了最新版的PaddleOCR,且修改好配置文件、后处理代码,无需安装~
如仍需安装or安装更新,可以执行以下步骤(目前支持Clone GitHub【推荐】和Gitee两种方式):
注:码云托管代码可能无法实时同步本github项目更新,存在3~5天延时,请优先使用推荐方式。
In [ ]!git clone https://github.com/PaddlePaddle/PaddleOCR# 如果因为网络问题无法pull成功,也可选择使用码云上的托管:# !git clone https://gitee.com/paddlepaddle/PaddleOCRIn [ ]
# 安装依赖,每次启动项目都需要执行%cd PaddleOCR !pip install --upgrade pip !pip install -r requirements.txt
首先下载模型backbone的pretrain model,您可以根据需求使用PaddleClas中的模型更换backbone, 对应的backbone预训练模型可以从PaddleClas repo 主页中找到下载链接。
In [ ]# 下载MobileNetV3的预训练模型!wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/rec_mv3_none_bilstm_ctc_v2.0_train.tar# 解压模型参数%cd pretrain_models !tar -xf rec_mv3_none_bilstm_ctc_v2.0_train.tar && rm -rf rec_mv3_none_bilstm_ctc_v2.0_train.tar %cd ..
这里选择CRNN模型进行训练、MobileNetv3作为backbone,可以在configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml文件里修改训练配置:比如是否使用GPU、模型保存路径、数据集路径、学习率、优化等。
执行命令,启动训练:
In [ ]!python tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml
训练好模型之后,即可启动测试,Global.pretrained_model表示预测使用的模型,Global.infer_img表示测试的图片路径或着测试图片文件夹路径:
In [ ]# 预测中文结果!python3 tools/infer_rec.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml -o Global.pretrained_model=output/rec_chinese_lite_v2.0/latest Global.load_static_weights=false Global.infer_img=/home/aistudio/dataset/测试集/amount/images/8bb1941c760a2c1d017626c361da6c4d.jpg
同时修改infer_rec.py将结果保存为比赛要求的格式,保存结果的路径由configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml中save_res_path参数控制,结果answer.json效果如下图:
# ocr
# 设为
# 两种
# 好了
# 如下图
# 中分
# 较低
# 数据处理
# 线上
# 放在
# 下载链接
# gitee
# python
# 人工智能
# 算法
# github
# 切片
# date
# json
# igs
# 网络问题
# ai
# git
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化91478 】
【
技术知识72672 】
【
云计算0 】
【
GEO优化84317 】
【
优选文章0 】
【
营销推广36048 】
【
网络运营41350 】
【
案例网站102563 】
【
AI智能45237 】
相关推荐:
2025年43英寸电视选购指南:最佳品牌与型号推荐
Tenorshare PDNob:免费AI图像翻译器,即时转换图像为文本
5分钟搞定求职信:利用AI工具大幅提升求职效率的实操技巧
智行ai抢票如何查看抢票进度_智行ai抢票进度查询与状态解读【实操】
Decart Lucy 14B:颠覆AI视频生成领域的革命性模型
通义千问怎样写文案_通义千问文案写作教程【指南】
利用AI快速生成数组和枚举:详细指南与实用技巧
OpenAI 播客精选:技术内幕、育儿经与AI未来
通义千问怎么设置功能偏好_通义千问偏好设置【教程】
千问能否生成多语言年终总结_千问多语言翻译与本地化调整【攻略】
想做自媒体?教你用AI批量生成视频脚本,实现内容自由
Character AI深度解析:功能、用户反馈与替代方案全攻略
Amazon Rekognition: 图像与视频分析的强大AI工具
Mac百度输入法ai怎么关 Mac版百度ai助手禁用教程
探索都市传说:追寻鳄鱼飞机怪物“Bombardino Crocodilo”
AI赋能:五款颠覆性工具助你在线赚钱
Z270 Mini-ITX主板全面评测:为Skylake和Kaby Lake打造迷你主机
tofai登录入口官网 tofai网页版地址链接
AI无镜头相机Paragraphica:颠覆传统摄影的新方式
ChatGPT多轮对话技巧分享 引导AI深入探讨复杂问题的方法
百度AI对话助手入口 智能聊天机器人入口
提升企业效率:QR Platform管理后台功能全面解析
CharSnap AI:终极角色扮演与群聊平台指南
5分钟教你用AI生成婚礼流程策划案,备婚新人必备
Apollo.io vs Instantly AI:深度测评与功能对比
网络安全警钟:揭秘“美足”背后隐藏的危机与防范
ChatGPT 在电商产品描述批量生成中的应用
批改网AI检测工具怎样优化检测精度_批改网AI检测工具精度调节与模型选择【实操】
ASUS Armoury Crate深度评测:最新功能与个性化定制
Wrike:AI赋能的项目管理平台,提升电商效率与团队协作
利用 ChatGPT 设计高效的个人健身与饮食计划
AMD Ryzen 5 2600: 游戏玩家高性价比之选
Vizeo AI视频生成器:无需技术,轻松打造营销利器
AI驱动KDP封面设计:NURIE CREATOR教程
如何使用豆包 AI 练习托福雅思口语对练
改善面部不对称:简单有效的肌肉平衡技巧
tofai官网入口网站 tofai官网入口网页版
扣子AI怎样设置多轮对话逻辑_扣子AI逻辑树搭建与分支设计【教程】
五大AI视频编辑工具:提升视频创作效率和质量
唇语解读的界限:名人的隐私与公众的好奇心
智谱AI智能绘图怎么用_智谱AI智能绘图使用方法详细指南【教程】
百度AI助手网页版入口 免安装直接打开入口
Base44 AI应用构建器深度评测:Wix 8000万美元收购的秘密
AI破译古文字:重现失落文明之声,揭秘历史真相
ChatGPT怎样用提示词分步骤提问_ChatGPT分步提问技巧【方法】
通义千问网页版怎么切换账号_通义千问账号切换步骤【指南】
AI合同提取指南:利用智能实现高效采购和节省成本
New You KIN Skin Analyzer:焕发肌肤新生的终极指南
利用AI模板高效创建产品需求文档 (PRD)
Xeon E5-2667 V2性能评测:老平台焕发新生,游戏与工作负载表现分析
2025-07-18
南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。