手写中文识别模型复现踩坑日记

简介: 最近复现了手写中文识别项目 jjcheer/ocrcn_tf2,使用 TensorFlow 2。过程中踩了不少坑:从 Unicode 解码错误、tfrecord 与 label 不对齐,到最后换 Python 3.8 才解决的环境问题。总结教训:用虚拟环境、按项目配版本、写 requirements.txt、多看 issues。复现不易,且行且珍惜。

最近复现了一个手写中文识别的项目:jjcheer/ocrcn_tf2,用的是 TensorFlow 2

本来想着“作者都写好文档了,应该能直接跑”,结果这一跑就是一星期,各种离谱报错,尤其在数据处理那一块。最后把环境换成 Python 3.8 才搞定。

下面就按时间线碎碎念一下我都经历了什么……

🧩 第一坑:数据集解码
项目用的是 CASIA 的 .gnt 格式数据。作者提供了解码函数,看起来逻辑没问题,但我一跑就爆 UnicodeDecodeError。我一开始还以为是我下载的数据坏了,反复试了几遍都不行。

最后我找了另一个开源项目的解码方式,一换就跑起来了……真的很神奇,看起来一样,跑起来就不一样。
我觉得更多的是环境的问题。

🧩 第二坑:tfrecord 和 character.txt 对不上
项目要先把图片转成 tfrecord 格式,还要生成 character.txt 做字符到数字的映射。我按作者的流程走完之后,在读取tfrecord文件作为图片的时候字符和图片对应不上

👉 教训:tfrecord 和 label 映射这种东西最好一开始就统一,不然你永远不知道下一个爆炸的是哪个字符。

🧨 第三坑:环境,永远的痛
上面折腾半天还是不稳定,后来我怒了,新建了一个虚拟环境,Python 降到 3.8
直接全过了!!🤯

之前那些莫名其妙的错误、兼容性问题,全没了。

我一瞬间明白了,以后复现代码:

别瞎用系统环境,直接上虚拟环境或者 Docker;

Python 版本按项目来的,老项目就老老实实用 3.8;

以后写代码的时候要写requirements.txt;

多看看 issues,别人已经踩过的坑别再踩一遍了。

📦 最后,给未来的我一点建议
自己以后写项目,一定一定写清楚版本依赖!!!

requirement.txt 是最起码的尊重;

能 Docker 的项目就用 Docker;

别图省事,环境问题迟早会找上你;

复现老项目就别用太新的 Python 和 TensorFlow,省得掉坑里。

目录
相关文章
|
8月前
|
文字识别 计算机视觉 Python
我用 Python 写了一个自动裁剪答题卡区域的小工具(附代码)
本文分享了一种通过 OpenCV 自动裁剪答题卡中答题区域的方法。核心思路是利用答题区域四周的黑色角块进行定位:先通过自适应阈值增强对比度,再用 `cv2.findContours()` 找轮廓,并计算每个轮廓的“紧凑度”(面积 / 周长)筛选出接近方块的角块。最终根据四个角块的边界矩形裁剪出答题区。代码实现详细,适合初学者参考,同时提供了参数调整建议以适配不同图像条件。
279 10
执行apt-get install xxx 遇到无法定位软件包解决方法
执行apt-get install xxx 遇到无法定位软件包解决方法
5215 0
执行apt-get install xxx 遇到无法定位软件包解决方法
|
9月前
|
人工智能 自然语言处理 安全
💻 Codex 来了:OpenAI 推出多任务软件工程 AI 代理,开发者工作方式将被重塑?
Codex 是 OpenAI 推出的一款云端智能开发代理,基于优化后的 Codex-1 模型,能够执行从代码编写、Bug 修复到 PR 提交的完整工程任务。通过 ChatGPT 的界面,用户可向 Codex 分配任务,它将在独立沙盒中运行并返回结果。Codex 支持多任务异步处理,遵循项目规范(AGENTS.md),并生成日志与测试报告以确保透明性。作为“AI 参与式开发”的里程碑,Codex 不仅提升效率,还可能重塑开发者角色,使他们从具体编码转向指导 AI 完成任务,推动软件工程进入意图驱动的新时代。
946 16
|
8月前
|
弹性计算 人工智能 运维
弹性计算协同育人项目申报启动!面向计算机、电子信息专业
为深入贯彻落实《“十四五”教育发展规划》《国务院办公厅关于深化产教融合的若干意见》等文件要求,支持和鼓励高校师生参与教育教学创新及人才培养改革。阿里云多年来持续支持教育部产学合作协同育人项目,受到众多高校高度关注,现诚邀各高校积极申报,深化产教融合,加强校企合作,共育创新人才。
|
9月前
|
人工智能 前端开发 JavaScript
打造了一个未来感十足的图书管理 App 个人页面
打造了一个未来感十足的图书管理 App 个人页面
263 25
|
人工智能 开发框架 安全
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
Smolagents 是 Hugging Face 推出的轻量级开源库,旨在简化智能代理的构建过程,支持多种大语言模型集成和代码执行代理功能。
984 69
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
|
10月前
|
人工智能 搜索推荐 前端开发
OpenDeepSearch:搜索引擎革命!这个开源深度搜索工具让AI代理直接读懂网页,复杂问题一键拆解
OpenDeepSearch是基于开源推理模型的深度搜索工具,通过语义重排和多源整合优化检索效果,支持与AI代理无缝集成,提供快速和专业两种搜索模式。
713 10
OpenDeepSearch:搜索引擎革命!这个开源深度搜索工具让AI代理直接读懂网页,复杂问题一键拆解
|
人工智能 定位技术 API
旅行规划太难做?5 分钟构建智能Agent,集成地图 MCP Server
MCP(Model Coordination Protocol)是由Anthropic公司提出的开源协议,旨在通过标准化交互方式解决AI大模型与外部数据源、工具的集成难题。阿里云百炼平台上线了业界首个全生命周期MCP服务,大幅降低Agent开发门槛,实现5分钟快速搭建智能体应用。本文介绍基于百炼平台“模型即选即用+MCP服务”模式,详细展示了如何通过集成高德地图MCP Server为智能体添加地图信息与天气查询能力,构建全面的旅行规划助手。方案涵盖智能体创建、模型配置、指令与技能设置等步骤,并提供清理资源的指导以避免费用产生。
|
存储 弹性计算 安全
阿里云服务器ECS详解:云服务器是什么,云服务器优势和应用场景及价格参考
云服务器ECS是阿里云众多云产品中,最受用户关注的产品,阿里云服务器提供多样化的计算能力,支持x86、Arm架构,涵盖CPU、GPU等多种服务器类型,满足各种用户需求。本文为大家详细介绍阿里云服务器是什么?云服务器的优势和应用场景,以及最新价格情况,以供大家参考。

热门文章

最新文章