[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xiaofengShi--CHINESE-OCR":3,"tool-xiaofengShi--CHINESE-OCR":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":75,"owner_twitter":75,"owner_website":78,"owner_url":79,"languages":80,"stars":101,"forks":102,"last_commit_at":103,"license":75,"difficulty_score":104,"env_os":105,"env_gpu":106,"env_ram":107,"env_deps":108,"category_tags":117,"github_topics":118,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":125,"updated_at":126,"faqs":127,"releases":163},5330,"xiaofengShi\u002FCHINESE-OCR","CHINESE-OCR","[python3.6] 运用tf实现自然场景文字检测,keras\u002Fpytorch实现ctpn+crnn+ctc实现不定长场景文字OCR识别","CHINESE-OCR 是一款基于深度学习技术的开源工具，专为解决自然场景下的中文文字检测与识别难题而设计。它能够自动处理图片中文字的旋转问题（支持 0 至 270 度方向检测），精准定位文字区域，并实现对不定长中文文本的端到端识别，有效克服了传统 OCR 在复杂背景和倾斜文字面前准确率低的痛点。\n\n该项目技术架构成熟，融合了经典的 CTPN（卷积神经网络 + 循环神经网络）用于高精度文本行检测，以及 CRNN（CNN+RNN+CTC）模型进行无需字符级标注的高效序列识别。特别值得一提的是，它同时提供了 Keras 和 PyTorch 两种主流框架的实现版本，既方便初学者快速上手理解算法原理，也满足了研究人员对模型稳定性和扩展性的需求。此外，项目还包含了针对数学公式识别的改进探索，展现了其在特定垂直领域的潜力。\n\nCHINESE-OCR 非常适合计算机视觉开发者、AI 研究人员以及需要定制私有化 OCR 解决方案的企业技术人员使用。通过提供详细的训练指南、预训练模型及数据集链接，用户可以轻松复现结果或基于自有数据进行微调训练，是学习和部署中文场景文字识别系统的优质起点。","# 本文基于tensorflow、keras\u002Fpytorch实现对自然场景的文字检测及端到端的OCR中文文字识别\n\n# update20190706\n\n- 为解决本项目中对数学公式预测的准确性，做了其他的改进和尝试，效果还不错，https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FImage2Katex 希望能有所帮助，另外，这几月换了工作，并且转了方向，还是cv方向，不过不做ocr相关了，目前主要做显著目标检测以及搜索意图相关，对repo的提问回答较慢，请见谅。\n# 实现功能\n\n- 文字方向检测 0、90、180、270度检测 \n- 文字检测 后期将切换到keras版本文本检测 实现keras端到端的文本检测及识别\n- 不定长OCR识别\n\n## 环境部署\n\n``` \nBash\n##GPU环境\nsh setup.sh\n## CPU环境\nsh setup-cpu.sh\n##CPU python3环境\nsh setup-python3.sh\n\n使用环境：python3.6+tensorflow1.7+cpu\u002Fgpu\n```\n\n# 模型训练\n* 一共分为3个网络\n\t \t**1. 文本方向检测网络-Classify(vgg16)**\n*  **2. 文本区域检测网络-CTPN(CNN+RNN)**\n*  **3. EndToEnd文本识别网络-CRNN(CNN+GRU\u002FLSTM+CTC)**\n\n# 文字方向检测-vgg分类\n```bash\n基于图像分类，在VGG16模型的基础上，训练0、90、180、270度检测的分类模型.\n详细代码参考angle\u002Fpredict.py文件，训练图片8000张，准确率88.23%\n```\n模型地址[BaiduCloud](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1zquQNdO0MUsLMsuwxbgPYg)\n\n# 文字区域检测CTPN\n\n关于ctpn网络，网上有很多对其进行介绍讲解的，算法是2016年提出的，在印书体识别用的很多，本人也写过一篇相应的博文[深度学习-TextDetection](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F01\u002F23\u002F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-TextDetection\u002F)，在文章中结合本repo的代码对ctpn的原理进行了详细的讲解。CTPN网路结构如下\n\n![ctpn_model](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_f5ee415431d7.png)\n\nctpn是一种基于目标检测方法的文本检测模型，在本repo的ctpn中anchor的设置为固定宽度，高度不同，相关代码如下：\n\n```python\ndef generate_anchors(base_size=16, ratios=[0.5, 1, 2],\n                     scales=2 ** np.arange(3, 6)):\n    heights = [11, 16, 23, 33, 48, 68, 97, 139, 198, 283]\n    widths = [16]\n    sizes = []\n    for h in heights:\n        for w in widths:\n            sizes.append((h, w))\n    return generate_basic_anchors(sizes)\n```\n\n基于这种设置，ctpn只能检测水平方向的文本，如果想要ctpn可以支持垂直文本检测，可以在anchor生成函数上进行修改。更详细的内容可以参考博客讲解。\n\n# OCR 端到端识别:CRNN\n\n## ocr识别采用GRU+CTC端到到识别技术，实现不分隔识别不定长文字\n\n提供keras 与pytorch版本的训练代码，在理解keras的基础上，可以切换到pytorch版本，此版本更稳定\n- 此外参考了了tensorflow版本的资源仓库：[TF:LSTM-CTC_loss](https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCTC_TF) \n\n## 为什么使用ctc\n\nctc是一种解码机制，在使用ctpn提取到待检测文本行之后，我们要识别提取到的区域内的文本内容，目前广泛存在两种解码机制。\n\n一种是seq2seq机制，输入的是图像，经过卷积编码之后再使用RNN解码，为了提高识别的准确率，一般会加入attention机制。\n\n另一种就是ctc解码机制，但是对于ctc解码要满足一个前提，那就是输入序列的长度不小于输出序列的长度。ctc主要用于序列解码，我们不需要对序列中的每个元素进行标记，只需要知道输入序列对应的整个label是什么即可，针对ocr项目，也就是输入一张图像上面写着“欢迎来到中国”这几个字，我们只需要是这几个字，而没必要知道这几个字在输入图像中所在的具体位置，实际上如果知道每个字所在的位置，就是单字符识别了，的确会降低任务的复杂多，但是现实中我们没有这么多标记号位置的数据，这个时候CTC就显得很重要了。关于ctc解码机制，本人同样谢了一个对应的博客[CTC算法原理](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F02\u002F14\u002FCTC%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86\u002F)，在文章中进行了详细的讲解，，如有疑问，请提交提问。\n\n本repo中使用的是CNN+RNN+CTC的机制，实际上可以使用CNN+CTC的机制，CNN推荐选择densenet或者resnet\n\n# 使用说明\n\n## 使用预训练测试\n\n```\n运行demo.py  写入测试图片的路径即可，如果想要显示ctpn的结果，修改文件.\u002Fctpn\u002Fctpn\u002Fother.py 的draw_boxes函数的最后部分，cv2.inwrite('dest_path',img)，如此，可以得到ctpn检测的文字区域框以及图像的ocr识别结果\n```\n## 使用自己的数据训练\n\n### 1 对ctpn进行训练\n* 定位到路径--.\u002Fctpn\u002Fctpn\u002Ftrain_net.py\n* 预训练的vgg网络路径[VGG_imagenet.npy](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1JO_ZojA5bkmJZsnxsShgkg)\n将预训练权重下载下来，pretrained_model指向该路径即可,\n此外整个模型的预训练权重[checkpoint](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1aT-vHgq7nvLy4M_T6SwR1Q)\n* ctpn数据集[还是百度云](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1NXFmdP_OgRF42xfHXUhBHQ)\n数据集下载完成并解压后，将.ctpn\u002Flib\u002Fdatasets\u002Fpascal_voc.py 文件中的pascal_voc 类中的参数self.devkit_path指向数据集的路径即可\n\n### 2 对crnn进行训练\n\n* keras版本 .\u002Ftrain\u002Fkeras_train\u002Ftrain_batch.py  model_path--指向预训练权重位置 \nMODEL_PATH---指向模型训练保存的位置\n[keras模型预训练权重](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1vTG6-i_bFMWxQ_7xF06usg)\n* pythorch版本.\u002Ftrain\u002Fpytorch-train\u002Fcrnn_main.py\n```\nparser.add_argument(\n    '--crnn',\n    help=\"path to crnn (to continue training)\",\n    default=预训练权重的路径，看你下载的预训练权重在哪啦)\nparser.add_argument(\n    '--experiment',\n    help='Where to store samples and models',\n    default=模型训练的权重保存位置,这个自己指定)\n```\n[pytorch预训练权重](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1LEDNHEr3luloB7eZK6GOeA)\n\n\n# 识别结果展示\n## 文字检测及OCR识别结果\n\n![ctpn原始图像1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_9292343bd99d.png)\n`===========================================================`\n![ctpn检测1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_71b1b37e8782.png)\n`===========================================================`\n![ctpn+crnn结果1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_9f4444a13f28.png)\n\n主要是因为训练的时候，只包含中文和英文字母，因此很多公式结构是识别不出来的\n### 看看纯文字的\n![ctpn原始图像2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_59558520ae37.png)\n`===========================================================`\n![ctpn检测2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_5bd8a3703104.png)\n`===========================================================`\n![ctpn+crnn结果2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_ef241544310a.png)\n\n# 未完待续\n\n### tensorflow版本crnn，计划尝试当前的各种trick(dropuout,bn,learning_decay等)\n```\n可以看到，对于纯文字的识别结果还是阔以的呢，感觉可以在crnn网络在加以改进，现在的crnn中的cnn有点浅，\n并且rnn层为单层双向+attention，目前正在针对这个地方进行改动，使用迁移学习，以restnet为特征提取层，\n使用多层双向动态rnn+attention+ctc的机制，将模型加深，目前正在进行模型搭建，结果好的话就发上来，不好的话只能凉凉了~~~~\n```\n\n## 训练数据集补充\n\n列举可用于文本检测和识别领域模型训练的一些大型公开数据集， 不涉及仅用于模型fine-tune任务的小型数据集。\n\n### **Chinese Text in the Wild(CTW)**\n\n该数据集包含32285张图像，1018402个中文字符(来自于腾讯街景), 包含平面文本，凸起文本，城市文本，农村文本，低亮度文本，远处文本，部分遮挡文本。图像大小2048*2048，数据集大小为31GB。以(8:1:1)的比例将数据集分为训练集(25887张图像，812872个汉字)，测试集(3269张图像，103519个汉字)，验证集(3129张图像，103519个汉字)。\n\n```\n文献链接：https:\u002F\u002Farxiv.org\u002Fpdf\u002F1803.00085.pdf \n数据集下载地址：https:\u002F\u002Fctwdataset.github.io\u002F\n```\n\n### **Reading Chinese Text in the Wild(RCTW-17)**\n\n该数据集包含12263张图像，训练集8034张，测试集4229张，共11.4GB。大部分图像由手机相机拍摄，含有少量的屏幕截图，图像中包含中文文本与少量英文文本。图像分辨率大小不等。\n\n```\nhttp:\u002F\u002Fmclab.eic.hust.edu.cn\u002Ficdar2017chinese\u002Fdataset.html\n文献：http:\u002F\u002Farxiv.org\u002Fpdf\u002F1708.09585v2\n```\n\n### ICPR MWI 2018 挑战赛\n\n大赛提供20000张图像作为数据集，其中50%作为训练集，50%作为测试集。主要由合成图像，产品描述，网络广告构成。该数据集数据量充分，中英文混合，涵盖数十种字体，字体大小不一，多种版式，背景复杂。文件大小为2GB。\n\n```\nhttps:\u002F\u002Ftianchi.aliyun.com\u002Fcompetition\u002Finformation.htm?raceId=231651&_is_login_redirect=true&accounttraceid=595a06c3-7530-4b8a-ad3d-40165e22dbfe\n```\n\n### **Total-Text**\n\n该数据集共1555张图像，11459文本行，包含水平文本，倾斜文本，弯曲文本。文件大小441MB。大部分为英文文本，少量中文文本。训练集：1255张 测试集：300\n\n```\nhttp:\u002F\u002Fwww.cs-chan.com\u002Fsource\u002FICDAR2017\u002Ftotaltext.zip\nhttp:\u002F\u002F arxiv.org\u002Fpdf\u002F1710.10400v\n```\n\n### Google FSNS(谷歌街景文本数据集)\n\n该数据集是从谷歌法国街景图片上获得的一百多万张街道名字标志，每一张包含同一街道标志牌的不同视角，图像大小为600*150，训练集1044868张，验证集16150张，测试集20404张。\n\n```\nhttp:\u002F\u002Frrc.cvc.uab.es\u002F?ch=6&com=downloads\nhttp:\u002F\u002F arxiv.org\u002Fpdf\u002F1702.03970v1\n```\n\n### **COCO-TEXT**\n\n该数据集，包括63686幅图像，173589个文本实例，包括手写版和打印版，清晰版和非清晰版。文件大小12.58GB，训练集：43686张，测试集：10000张，验证集：10000张\n\n```\nhttp:\u002F\u002Farxiv.org\u002Fpdf\u002F1601.07140v2\nhttps:\u002F\u002Fvision.cornell.edu\u002Fse3\u002Fcoco-text-2\u002F\n```\n\n### **Synthetic Data for Text Localisation**\n\n在复杂背景下人工合成的自然场景文本数据。包含858750张图像，共7266866个单词实例，28971487个字符，文件大小为41GB。该合成算法，不需要人工标注就可知道文字的label信息和位置信息，可得到大量自然场景文本标注数据。\n\n```\n下载地址：http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fdata\u002Fscenetext\u002F\n文献：http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~ankush\u002Ftextloc.pdf\nCode: https:\u002F\u002Fgithub.com\u002Fankush-me\u002FSynthText (英文版)\nCode https:\u002F\u002Fgithub.com\u002Fwang-tf\u002FChinese_OCR_synthetic_data(中文版)\n```\n\n### **Synthetic Word Dataset**\n\n合成文本识别数据集，包含9百万张图像，涵盖了9万个英语单词。文件大小为10GB\n\n```\nhttp:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fdata\u002Ftext\u002F\n```\n\n### **Caffe-ocr中文合成数据**\n\n数据利用中文语料库，通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成，共360万张图片，图像分辨率为280x32，涵盖了汉字、标点、英文、数字共5990个字符。文件大小约为8.6GB\n\n```\nhttps:\u002F\u002Fpan.baidu.com\u002Fs\u002F1dFda6R3\n```\n\n## 参考\n\n- [深度学习-OCR_Overview](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F01\u002F05\u002F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-OCR_Overview\u002F)\n- [pytorch 实现crnn](https:\u002F\u002Fgithub.com\u002Fmeijieru\u002Fcrnn.pytorch.git)    \n- [keras-crnn 版本实现参考](https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F59645822)  \n- [tensorflow-crnn](https:\u002F\u002Fgithub.com\u002Filovin\u002Flstm_ctc_ocr)\n- [tensorflow-ctpn](https:\u002F\u002Fgithub.com\u002Feragonruan\u002Ftext-detection-ctpn )\n- [CAFFE-CTPN](https:\u002F\u002Fgithub.com\u002Ftianzhi0549\u002FCTPN)\n\n","# 本文基于tensorflow、keras\u002Fpytorch实现对自然场景的文字检测及端到端的OCR中文文字识别\n\n# update20190706\n\n- 为解决本项目中对数学公式预测的准确性，做了其他的改进和尝试，效果还不错，https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FImage2Katex 希望能有所帮助，另外，这几月换了工作，并且转了方向，还是cv方向，不过不做ocr相关了，目前主要做显著目标检测以及搜索意图相关，对repo的提问回答较慢，请见谅。\n# 实现功能\n\n- 文字方向检测 0、90、180、270度检测 \n- 文字检测 后期将切换到keras版本文本检测 实现keras端到端的文本检测及识别\n- 不定长OCR识别\n\n## 环境部署\n\n``` \nBash\n##GPU环境\nsh setup.sh\n## CPU环境\nsh setup-cpu.sh\n##CPU python3环境\nsh setup-python3.sh\n\n使用环境：python3.6+tensorflow1.7+cpu\u002Fgpu\n```\n\n# 模型训练\n* 一共分为3个网络\n\t \t**1. 文本方向检测网络-Classify(vgg16)**\n*  **2. 文本区域检测网络-CTPN(CNN+RNN)**\n*  **3. EndToEnd文本识别网络-CRNN(CNN+GRU\u002FLSTM+CTC)**\n\n# 文字方向检测-vgg分类\n```bash\n基于图像分类，在VGG16模型的基础上，训练0、90、180、270度检测的分类模型.\n详细代码参考angle\u002Fpredict.py文件，训练图片8000张，准确率88.23%\n```\n模型地址[BaiduCloud](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1zquQNdO0MUsLMsuwxbgPYg)\n\n# 文字区域检测CTPN\n\n关于ctpn网络，网上有很多对其进行介绍讲解的，算法是2016年提出的，在印书体识别用的很多，本人也写过一篇相应的博文[深度学习-TextDetection](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F01\u002F23\u002F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-TextDetection\u002F)，在文章中结合本repo的代码对ctpn的原理进行了详细的讲解。CTPN网路结构如下\n\n![ctpn_model](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_f5ee415431d7.png)\n\nctpn是一种基于目标检测方法的文本检测模型，在本repo的ctpn中anchor的设置为固定宽度，高度不同，相关代码如下：\n\n```python\ndef generate_anchors(base_size=16, ratios=[0.5, 1, 2],\n                     scales=2 ** np.arange(3, 6)):\n    heights = [11, 16, 23, 33, 48, 68, 97, 139, 198, 283]\n    widths = [16]\n    sizes = []\n    for h in heights:\n        for w in widths:\n            sizes.append((h, w))\n    return generate_basic_anchors(sizes)\n```\n\n基于这种设置，ctpn只能检测水平方向的文本，如果想要ctpn可以支持垂直文本检测，可以在anchor生成函数上进行修改。更详细的内容可以参考博客讲解。\n\n# OCR 端到端识别:CRNN\n\n## ocr识别采用GRU+CTC端到到识别技术，实现不分隔识别不定长文字\n\n提供keras 与pytorch版本的训练代码，在理解keras的基础上，可以切换到pytorch版本，此版本更稳定\n- 此外参考了了tensorflow版本的资源仓库：[TF:LSTM-CTC_loss](https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCTC_TF) \n\n## 为什么使用ctc\n\nctc是一种解码机制，在使用ctpn提取到待检测文本行之后，我们要识别提取到的区域内的文本内容，目前广泛存在两种解码机制。\n\n一种是seq2seq机制，输入的是图像，经过卷积编码之后再使用RNN解码，为了提高识别的准确率，一般会加入attention机制。\n\n另一种就是ctc解码机制，但是对于ctc解码要满足一个前提，那就是输入序列的长度不小于输出序列的长度。ctc主要用于序列解码，我们不需要对序列中的每个元素进行标记，只需要知道输入序列对应的整个label是什么即可，针对ocr项目，也就是输入一张图像上面写着“欢迎来到中国”这几个字，我们只需要是这几个字，而没必要知道这几个字在输入图像中所在的具体位置，实际上如果知道每个字所在的位置，就是单字符识别了，的确会降低任务的复杂多，但是现实中我们没有这么多标记号位置的数据，这个时候CTC就显得很重要了。关于ctc解码机制，本人同样谢了一个对应的博客[CTC算法原理](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F02\u002F14\u002FCTC%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86\u002F)，在文章中进行了详细的讲解，，如有疑问，请提交提问。\n\n本repo中使用的是CNN+RNN+CTC的机制，实际上可以使用CNN+CTC的机制，CNN推荐选择densenet或者resnet\n\n# 使用说明\n\n## 使用预训练测试\n\n```\n运行demo.py  写入测试图片的路径即可，如果想要显示ctpn的结果，修改文件.\u002Fctpn\u002Fctpn\u002Fother.py 的draw_boxes函数的最后部分，cv2.inwrite('dest_path',img），如此，可以得到ctpn检测的文字区域框以及图像的ocr识别结果\n```\n## 使用自己的数据训练\n\n### 1 对ctpn进行训练\n* 定位到路径--.\u002Fctpn\u002Fctpn\u002Ftrain_net.py\n* 预训练的vgg网络路径[VGG_imagenet.npy](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1JO_ZojA5bkmJZsnxsShgkg)\n将预训练权重下载下来，pretrained_model指向该路径即可,\n此外整个模型的预训练权重[checkpoint](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1aT-vHgq7nvLy4M_T6SwR1Q)\n* ctpn数据集[还是百度云](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1NXFmdP_OgRF42xfHXUhBHQ)\n数据集下载完成并解压后，将.ctpn\u002Flib\u002Fdatasets\u002Fpascal_voc.py 文件中的pascal_voc 类中的参数self.devkit_path指向数据集的路径即可\n\n### 2 对crnn进行训练\n\n* keras版本 .\u002Ftrain\u002Fkeras_train\u002Ftrain_batch.py  model_path--指向预训练权重位置 \nMODEL_PATH---指向模型训练保存的位置\n[keras模型预训练权重](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1vTG6-i_bFMWxQ_7xF06usg)\n* pythorch版本.\u002Ftrain\u002Fpytorch-train\u002Fcrnn_main.py\n```\nparser.add_argument(\n    '--crnn',\n    help=\"path to crnn (to continue training)\",\n    default=预训练权重的路径，看你下载的预训练权重在哪啦)\nparser.add_argument(\n    '--experiment',\n    help='Where to store samples and models',\n    default=模型训练的权重保存位置,这个自己指定)\n```\n[pytorch预训练权重](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1LEDNHEr3luloB7eZK6GOeA)\n\n\n# 识别结果展示\n## 文字检测及OCR识别结果\n\n![ctpn原始图像1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_9292343bd99d.png)\n`===========================================================`\n![ctpn检测1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_71b1b37e8782.png)\n`===========================================================`\n![ctpn+crnn结果1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_9f4444a13f28.png)\n\n主要是因为训练的时候，只包含中文和英文字母，因此很多公式结构是识别不出来的\n### 看看纯文字的\n![ctpn原始图像2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_59558520ae37.png)\n`===========================================================`\n![ctpn检测2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_5bd8a3703104.png)\n`===========================================================`\n![ctpn+crnn结果2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_readme_ef241544310a.png)\n\n# 未完待续\n\n### tensorflow版本crnn，计划尝试当前的各种trick(dropuout,bn,learning_decay等)\n```\n可以看到，对于纯文字的识别结果还是阔以的呢，感觉可以在crnn网络在加以改进，现在的crnn中的cnn有点浅，\n并且rnn层为单层双向+attention，目前正在针对这个地方进行改动，使用迁移学习，以restnet为特征提取层，\n使用多层双向动态rnn+attention+ctc的机制，将模型加深，目前正在进行模型搭建，结果好的话就发上来，不好的话只能凉凉了~~~~\n```\n\n## 训练数据集补充\n\n列举可用于文本检测和识别领域模型训练的一些大型公开数据集， 不涉及仅用于模型fine-tune任务的小型数据集。\n\n### **Chinese Text in the Wild(CTW)**\n\n该数据集包含32285张图像，1018402个中文字符(来自于腾讯街景), 包含平面文本，凸起文本，城市文本，农村文本，低亮度文本，远处文本，部分遮挡文本。图像大小2048*2048，数据集大小为31GB。以(8:1:1)的比例将数据集分为训练集(25887张图像，812872个汉字)，测试集(3269张图像，103519个汉字)，验证集(3129张图像，103519个汉字)。\n\n```\n文献链接：https:\u002F\u002Farxiv.org\u002Fpdf\u002F1803.00085.pdf \n数据集下载地址：https:\u002F\u002Fctwdataset.github.io\u002F\n```\n\n### **Reading Chinese Text in the Wild(RCTW-17)**\n\n该数据集包含12263张图像，训练集8034张，测试集4229张，共11.4GB。大部分图像由手机相机拍摄，含有少量的屏幕截图，图像中包含中文文本与少量英文文本。图像分辨率大小不等。\n\n```\nhttp:\u002F\u002Fmclab.eic.hust.edu.cn\u002Ficdar2017chinese\u002Fdataset.html\n文献：http:\u002F\u002Farxiv.org\u002Fpdf\u002F1708.09585v2\n```\n\n### ICPR MWI 2018 挑战赛\n\n大赛提供20000张图像作为数据集，其中50%作为训练集，50%作为测试集。主要由合成图像，产品描述，网络广告构成。该数据集数据量充分，中英文混合，涵盖数十种字体，字体大小不一，多种版式，背景复杂。文件大小为2GB。\n\n```\nhttps:\u002F\u002Ftianchi.aliyun.com\u002Fcompetition\u002Finformation.htm?raceId=231651&_is_login_redirect=true&accounttraceid=595a06c3-7530-4b8a-ad3d-40165e22dbfe\n```\n\n### **Total-Text**\n\n该数据集共1555张图像，11459文本行，包含水平文本，倾斜文本，弯曲文本。文件大小441MB。大部分为英文文本，少量中文文本。训练集：1255张 测试集：300\n\n```\nhttp:\u002F\u002Fwww.cs-chan.com\u002Fsource\u002FICDAR2017\u002Ftotaltext.zip\nhttp:\u002F\u002F arxiv.org\u002Fpdf\u002F1710.10400v\n```\n\n### Google FSNS(谷歌街景文本数据集)\n\n该数据集是从谷歌法国街景图片上获得的一百多万张街道名字标志，每一张包含同一街道标志牌的不同视角，图像大小为600*150，训练集1044868张，验证集16150张，测试集20404张。\n\n```\nhttp:\u002F\u002Frrc.cvc.uab.es\u002F?ch=6&com=downloads\nhttp:\u002F\u002F arxiv.org\u002Fpdf\u002F1702.03970v1\n```\n\n### **COCO-TEXT**\n\n该数据集，包括63686幅图像，173589个文本实例，包括手写版和打印版，清晰版和非清晰版。文件大小12.58GB，训练集：43686张，测试集：10000张，验证集：10000张\n\n```\nhttp:\u002F\u002Farxiv.org\u002Fpdf\u002F1601.07140v2\nhttps:\u002F\u002Fvision.cornell.edu\u002Fse3\u002Fcoco-text-2\u002F\n```\n\n### **Synthetic Data for Text Localisation**\n\n在复杂背景下人工合成的自然场景文本数据。包含858750张图像，共7266866个单词实例，28971487个字符，文件大小为41GB。该合成算法，不需要人工标注就可知道文字的label信息和位置信息，可得到大量自然场景文本标注数据。\n\n```\n下载地址：http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fdata\u002Fscenetext\u002F\n文献：http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~ankush\u002Ftextloc.pdf\nCode: https:\u002F\u002Fgithub.com\u002Fankush-me\u002FSynthText (英文版)\nCode https:\u002F\u002Fgithub.com\u002Fwang-tf\u002FChinese_OCR_synthetic_data(中文版)\n```\n\n### **Synthetic Word Dataset**\n\n合成文本识别数据集，包含9百万张图像，涵盖了9万个英语单词。文件大小为10GB\n\n```\nhttp:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fdata\u002Ftext\u002F\n```\n\n### **Caffe-ocr中文合成数据**\n\n数据利用中文语料库，通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成，共360万张图片，图像分辨率为280x32，涵盖了汉字、标点、英文、数字共5990个字符。文件大小约为8.6GB\n\n```\nhttps:\u002F\u002Fpan.baidu.com\u002Fs\u002F1dFda6R3\n```\n\n## 参考\n\n- [深度学习-OCR_Overview](http:\u002F\u002Fxiaofengshi.com\u002F2019\u002F01\u002F05\u002F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0-OCR_Overview\u002F)\n- [pytorch 实现crnn](https:\u002F\u002Fgithub.com\u002Fmeijieru\u002Fcrnn.pytorch.git)    \n- [keras-crnn 版本实现参考](https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F59645822)  \n- [tensorflow-crnn](https:\u002F\u002Fgithub.com\u002Filovin\u002Flstm_ctc_ocr)\n- [tensorflow-ctpn](https:\u002F\u002Fgithub.com\u002Feragonruan\u002Ftext-detection-ctpn )\n- [CAFFE-CTPN](https:\u002F\u002Fgithub.com\u002Ftianzhi0549\u002FCTPN)","# CHINESE-OCR 快速上手指南\n\n本指南基于 TensorFlow\u002FKeras\u002FPyTorch，帮助开发者快速部署并运行自然场景下的中文文字检测与端到端 OCR 识别。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS\n*   **Python 版本**: Python 3.6\n*   **深度学习框架**: TensorFlow 1.7 (支持 CPU\u002FGPU)\n*   **硬件建议**: \n    *   **GPU 环境**: 推荐用于加速训练和推理（需安装 CUDA 和 cuDNN）。\n    *   **CPU 环境**: 可用于推理，但速度较慢。\n\n**前置依赖**:\n项目脚本会自动安装所需依赖（如 Keras, PyTorch, OpenCV 等），无需手动逐个安装。\n\n## 2. 安装步骤\n\n克隆项目代码后，根据你的硬件环境选择对应的脚本进行一键安装。\n\n### GPU 环境安装\n```bash\nsh setup.sh\n```\n\n### CPU 环境安装\n```bash\nsh setup-cpu.sh\n```\n\n### CPU + Python3 特定环境安装\n```bash\nsh setup-python3.sh\n```\n\n> **注意**: 安装脚本会自动配置 `python3.6 + tensorflow1.7` 环境。\n\n## 3. 基本使用\n\n本项目提供了预训练模型，可直接用于测试文字方向检测、区域检测（CTPN）及端到端识别（CRNN）。\n\n### 运行演示脚本\n\n1.  准备一张包含中文或英文的自然场景图片。\n2.  打开 `demo.py` 文件，修改其中的图片路径为你本地的测试图片路径。\n3.  运行脚本：\n\n```bash\npython demo.py\n```\n\n### 查看检测结果\n\n*   **默认输出**: 脚本运行后将直接输出 OCR 识别出的文字内容。\n*   **可视化检测框**: 若需查看 CTPN 检测到的文字区域框，请修改 `.\u002Fctpn\u002Fctpn\u002Fother.py` 文件中 `draw_boxes` 函数的最后部分：\n    ```python\n    # 取消注释或修改以下行以保存带检测框的图片\n    cv2.imwrite('dest_path', img)\n    ```\n    运行后，你将得到包含检测框及识别结果的图像文件。\n\n### 进阶：使用自己的数据训练\n\n若需重新训练模型，请参考以下核心步骤：\n\n1.  **下载预训练权重**:\n    *   VGG ImageNet 权重 (用于 CTPN): [下载链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1JO_ZojA5bkmJZSnxsShgkg)\n    *   CTPN 检查点: [下载链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1aT-vHgq7nvLy4M_T6SwR1Q)\n    *   CRNN (Keras\u002FPyTorch) 权重: 详见 README 中的百度网盘链接。\n\n2.  **配置数据集路径**:\n    *   **CTPN**: 解压数据集后，修改 `.\u002Fctpn\u002Flib\u002Fdatasets\u002Fpascal_voc.py` 中的 `self.devkit_path` 指向数据集目录。\n    *   **CRNN**: 修改训练脚本中的 `model_path` (预训练权重) 和 `MODEL_PATH` (模型保存位置)。\n\n3.  **启动训练**:\n    *   **训练 CTPN**:\n        ```bash\n        python .\u002Fctpn\u002Fctpn\u002Ftrain_net.py\n        ```\n    *   **训练 CRNN (Keras 版)**:\n        ```bash\n        python .\u002Ftrain\u002Fkeras_train\u002Ftrain_batch.py\n        ```\n    *   **训练 CRNN (PyTorch 版)**:\n        ```bash\n        python .\u002Ftrain\u002Fpytorch-train\u002Fcrnn_main.py --crnn \u003C预训练权重路径> --experiment \u003C模型保存路径>\n        ```\n\n> **提示**: 本项目包含三个核心网络：文本方向检测 (VGG16)、文本区域检测 (CTPN) 和端到端识别 (CRNN+CTC)。对于大多数应用场景，直接使用预训练模型即可满足需求。","某电商运营团队每天需处理数千张用户上传的含中文商品海报，从中提取促销文字以构建搜索索引。\n\n### 没有 CHINESE-OCR 时\n- 人工逐张截图并手动录入文字，耗时费力且错误率高，严重拖慢数据入库速度。\n- 通用 OCR 工具对自然场景中的倾斜、弯曲或复杂背景文字识别率极低，大量关键促销信息被遗漏。\n- 无法自动判断文字方向（如 90 度竖排标题），导致识别结果乱序或完全失败，需额外开发预处理脚本。\n- 面对不定长中文文本，传统分段识别方案容易割裂语义，后续还需人工校对拼接，维护成本高昂。\n\n### 使用 CHINESE-OCR 后\n- 通过 CTPN+CRNN 端到端流水线，自动检测并识别海报中任意角度的中文文本，全流程无需人工干预，效率提升 10 倍以上。\n- 内置 0\u002F90\u002F180\u002F270 度方向检测模块，精准纠正竖排或旋转标题，确保输出文本顺序与视觉逻辑一致。\n- 基于 CTC 解码机制实现不定长中文连续识别，完整保留“满 200 减 50\"等长句语义，避免字符割裂问题。\n- 支持 TensorFlow\u002FKeras\u002FPyTorch 多框架部署，团队可快速集成至现有 Python 3.6 服务中，并利用预训练模型立即投产。\n\nCHINESE-OCR 将非结构化的商品图片转化为高可用文本数据，让电商搜索与推荐系统真正“看懂”用户生成的中文内容。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FxiaofengShi_CHINESE-OCR_ed2c60c9.png","xiaofengShi","xiaofeng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FxiaofengShi_fa64bd41.jpg",null,"ByteDance->Meituan->BAAI","tokyo","http:\u002F\u002Fxiaofengshi.com\u002F","https:\u002F\u002Fgithub.com\u002FxiaofengShi",[81,85,89,93,97],{"name":82,"color":83,"percentage":84},"Python","#3572A5",97.2,{"name":86,"color":87,"percentage":88},"Cuda","#3A4E3A",1.3,{"name":90,"color":91,"percentage":92},"Shell","#89e051",0.8,{"name":94,"color":95,"percentage":96},"Jupyter Notebook","#DA5B0B",0.7,{"name":98,"color":99,"percentage":100},"C++","#f34b7d",0,2954,950,"2026-04-04T03:40:41",4,"Linux","可选（支持 CPU 和 GPU 环境），未指定具体显卡型号、显存大小或 CUDA 版本","未说明",{"notes":109,"python":110,"dependencies":111},"项目提供针对 GPU、CPU 及 Python3 的不同安装脚本（setup.sh, setup-cpu.sh, setup-python3.sh）。模型训练分为三个网络：文本方向检测（VGG16）、文本区域检测（CTPN）和端到端识别（CRNN）。预训练权重和数据集主要托管在百度网盘，国内用户下载较为方便。该项目基于较旧的 TensorFlow 1.7 版本，若在现代环境中运行可能需要处理兼容性问题。","3.6",[112,113,114,115,116],"tensorflow==1.7","keras","pytorch","numpy","opencv-python (cv2)",[15,14],[119,120,121,122,123,124],"pytorch-crnn","keras-crnn","tensorflow","ocr","lstm-ctc","ctpn","2026-03-27T02:49:30.150509","2026-04-08T10:16:07.827264",[128,133,138,143,148,153,158],{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},24154,"运行代码时遇到 'cimport numpy as np' 报错或 bbox.py 文件语法错误怎么办？","这是因为 cython 文件 (`.pyx`) 中存在重复或错误的导入语句。请打开 `CHINESE-OCR\u002Fctpn\u002Flib\u002Futils\u002Fgpu_nms.pyx` (以及相关的 `.pyx` 文件)，将混乱的导入代码修改为标准的两行：\n```python\nimport numpy as np\ncimport numpy as np\n```\n保存后重新编译或运行即可解决。","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F16",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},24155,"PyTorch 版 CRNN 训练时在 encode() 函数中卡住或无限迭代如何解决？","原代码中的 `encode` 函数逻辑存在缺陷，导致递归调用无法正确终止。请将 `utils.py` 中的 `encode` 函数替换为以下修复后的代码：\n```python\ndef encode(self, text, depth=0):\n    \"\"\"Support batch or single str.\"\"\"\n    if isinstance(text, str):\n        text_out = [self.dict.get(char, 0) for char in text]\n        length = [len(text)]\n    elif isinstance(text, collections.Iterable):\n        length = [len(text)]\n        text_out = ''.join(str(v) for v in text)\n        text_out, _ = self.encode(text_out)\n    else:\n        # 处理其他潜在情况，防止报错\n        return (torch.IntTensor([]), torch.IntTensor([0]))\n\n    if depth:\n        return text_out, len(text_out)\n    return (torch.IntTensor(text_out), torch.IntTensor(length))\n```","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F17",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},24156,"运行 demo.py 时报错 'NoneType' object has no attribute 'model_checkpoint_path' 怎么办？","该错误是因为代码中硬编码了模型检查点（checkpoint）的路径，而该路径在你的机器上不存在。请打开 `ctpn\u002Fctpn\u002Fmodel.py` 文件，找到类似 `\u002FUsers\u002Fxiaofeng\u002FCode\u002FGithub\u002Fdataset\u002F...` 的绝对路径，将其修改为你实际下载并存放模型权重的本地路径（例如：`.\u002Fctpn\u002Fcheckpoints\u002F` 或绝对路径 `\u002Fopt\u002FCHINESE-OCR-master\u002Fctpn\u002Fcheckpoints\u002F`）。确保该目录下包含有效的 checkpoint 文件。","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F19",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},24157,"导入模块时出现 'ModuleNotFoundError: No module named utils' 错误如何修复？","这是由于相对导入路径问题导致的。请打开 `crnn\u002Fmodels\u002Fcrnn.py` 文件，找到第 4 行的 `import utils`，将其修改为相对导入形式：\n```python\nfrom . import utils\n```\n或者在 `import sys` 之后添加以下代码以手动指定路径：\n```python\nsys.path.insert(1, \".\u002Fcrnn\u002Fmodels\")\n```","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F95",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},24158,"使用自己的数据训练 OCR 模型时，识别结果总是 '00' 或 '000' 且效果不佳是什么原因？","主要原因通常是训练数据和预测代码中的数据预处理方式不一致。\n1. **图片宽度问题**：检查你的样本图片宽度，如果小于默认的 256 像素（例如只有 160），需要将代码中的 `imgW` 参数调整为与实际样本宽度一致。\n2. **归一化差异**：确保预测时的预处理与训练时完全一致。训练代码通常使用了 `(img\u002F255.0 - 0.5) \u002F 0.5` 的归一化方式，而默认预测代码可能只做了 `img\u002F255.0`。请修改预测部分的代码：\n```python\n# 修改前\nimg = np.array(im).astype(np.float32) \u002F 255.0\nX = img.reshape((32, w, 1))\n\n# 修改后 (与训练保持一致)\nimg = (np.array(im).astype(np.float32) \u002F 255.0 - 0.5) \u002F 0.5\nX = img.reshape((-1, 32, w, 1))\n```","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F7",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},24159,"在 Windows 环境下运行 demo.py 报错 'Failed to get convolution algorithm' 或 CuDNN 初始化失败怎么办？","这是典型的 TensorFlow\u002FCuDNN 版本不匹配问题。错误日志显示运行时加载的 CuDNN 版本（如 7.4.1）与编译时使用的版本（如 7.6.0）不一致。\n解决方案：\n1. 升级你的 CuDNN 库到与 TensorFlow 编译版本相匹配或更高的版本。\n2. 或者，重新安装与当前已安装 CuDNN 版本兼容的 TensorFlow 二进制包。\n3. 确保环境变量中配置的 CUDA 和 CuDNN 路径正确无误。","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F156",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},24160,"CRNN PyTorch 版本在 Python 3 下显示网络结构后卡住不动是怎么回事？","该项目的原始代码主要是针对 Python 2 编写的，在 Python 3 环境下运行可能会出现兼容性导致的问题（如死锁或迭代器行为差异）。建议尝试在 Python 2 环境下运行，或者参考社区维护的分支（如 `sierkinhane\u002Fcrnn_chinese_characters_rec`）获取已适配 Python 3 的代码版本。","https:\u002F\u002Fgithub.com\u002FxiaofengShi\u002FCHINESE-OCR\u002Fissues\u002F9",[]]