[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-myhub--tr":3,"tool-myhub--tr":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":77,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":79,"difficulty_score":10,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":97,"github_topics":98,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":110},3940,"myhub\u002Ftr","tr","Free Offline OCR 离线的中文文本检测+识别SDK","tr 是一款专为扫描文档设计的免费离线中文文本识别 SDK，集文本检测与识别功能于一体。其核心算法采用 C++ 编写以确保高效运行，同时提供便捷的 Python 接口，方便开发者快速集成。\n\n在 OCR 开源生态尚不完善的时期，tr 填补了轻量级、可离线部署的中文识别方案空白，有效解决了用户在无网络环境下对文档进行数字化处理的需求。它特别适用于需要处理弯曲文本、多行混合排版等复杂场景的任务，甚至探索了将识别技术延伸至图像分类与大模型辅助计算的边界。\n\n虽然项目目前已暂停常规维护，转而聚焦于 Transformer 架构与端到端文档理解的前沿研究，但其历史版本（如 v2.8）依然具有实用价值。这些版本引入了 YLO 主干网络与轻量级 Transformer Encoder，显著提升了模型利用上下文纠错的能力，并降低了对大规模真实训练数据的依赖。\n\ntr 非常适合具有一定编程基础的开发者用于本地化项目部署，也适合研究人员作为探索 CRNN 与 Transformer 结合机制的参考案例。对于希望在不依赖云端服务的前提下，实现稳定、快速中文文本提取的技术团队而言，tr 仍是一个值得尝试的开源","tr 是一款专为扫描文档设计的免费离线中文文本识别 SDK，集文本检测与识别功能于一体。其核心算法采用 C++ 编写以确保高效运行，同时提供便捷的 Python 接口，方便开发者快速集成。\n\n在 OCR 开源生态尚不完善的时期，tr 填补了轻量级、可离线部署的中文识别方案空白，有效解决了用户在无网络环境下对文档进行数字化处理的需求。它特别适用于需要处理弯曲文本、多行混合排版等复杂场景的任务，甚至探索了将识别技术延伸至图像分类与大模型辅助计算的边界。\n\n虽然项目目前已暂停常规维护，转而聚焦于 Transformer 架构与端到端文档理解的前沿研究，但其历史版本（如 v2.8）依然具有实用价值。这些版本引入了 YLO 主干网络与轻量级 Transformer Encoder，显著提升了模型利用上下文纠错的能力，并降低了对大规模真实训练数据的依赖。\n\ntr 非常适合具有一定编程基础的开发者用于本地化项目部署，也适合研究人员作为探索 CRNN 与 Transformer 结合机制的参考案例。对于希望在不依赖云端服务的前提下，实现稳定、快速中文文本提取的技术团队而言，tr 仍是一个值得尝试的开源选择。","# tr - Text Recognition \n\n一款针对扫描文档的离线文本识别SDK，核心代码全部采用C++开发，并提供Python接口\n\n编译环境: *Ubuntu 16.04*\n\n#### 为什么开发tr？\n我刚开发tr时，网上只有[chineseocr](https:\u002F\u002Fgithub.com\u002Fchineseocr\u002Fchineseocr)、 [tesseract](https:\u002F\u002Fgithub.com\u002Ftesseract-ocr\u002Ftesseract)等少数开源OCR。tr发布后，又诞生了几款优秀的开源OCR。tr也基本上完成了自己的使命，会转为一个研究型项目，追求技术的先进性而不是实用性。\n\n#### 暂停维护说明\n在研究OCR的过程中，我发现了更有趣的Transformer技术，这是一种有希望单个算法解决绝大部分深度学习任务（包括OCR）的技术。未来的算法工程师可能不再需要学习各种各样的算法，只需要学习一款算法即可。后续我们将暂停维护本项目，重点研究Transformer技术\n\n#### 免责声明\n最近看到一些半开源\u002F闭源免费软件被用户投诉举报，甚至追究法律责任的案例，感觉有必要加入免责声明：\n+ 本软件存在风险，包括但不限于闪退、内存泄漏，所有风险由用户承担\n+ 若在软件使用过程中出现异常导致损失，用户承担全部责任\n\n\u003C!-- \n-----------------------------------------\n#### 端到端文档理解 Document Understanding（研发中）\n多模态大模型宛如当年的互联网浪潮一样，汹涌而来，不可逆转。在不远的将来能否更好地融入多模态大模型生态，对OCR算法来说至关重要。\u003Cbr>\n\n如何更好地融入多模态大模型生态呢？最简单的方法是先用OCR算法识别出文本行的位置和内容，再将结果以JSON、XML等文本格式输入LLM，这种方法有以下缺点：\n+ 会不可避免地丢失图片中的一些信息，例如插图、背景图、字体、线框、色彩等等，这些丢失的信息对理解图片内容可能是不可缺少的\n+ OCR本身识别错误影响后续文档理解\n+ 存在表格、弯曲文本、图表、公式、印章等等OCR难以识别的内容\n\n因此，我认为端到端文档理解是更可行的技术方案。从算法角度而言，就是需要将图片编码成一维序列，使得TransformerDecoder可以像处理文本一样处理图片。\n\n相关研究：\n+ [TransformerDecoder](.\u002FTransformerDecoder\u002FREADME.md)\n\n-----------------------------------------\n#### 让CRNN支持多行文本的识别 CRNN For Text With Multiple Lines :star:\n将CRNN与Transformer Encoder\u002FDecoder相结合，从而使CRNN支持多行文本的识别。标注时不再需要标注文本行的边界框，大大降低标注和开发人员的工作量。适用于弯曲文本等场景。\u003Cbr>\n如果您要识别的图片类似于以下图片，使用现有OCR无法解决时，那么可以试一试多行CRNN。\n\u003Cdiv>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_048b8eff09ea.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_f729682bd64f.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_5b621f867a62.jpg\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_36b3b082fcd1.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_31f50a119cd4.jpg\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_a65328f1d659.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_6a73c3b55db0.jpg\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_27bf9f843ba4.png\" style=\"float:left;width:180px;\" \u002F>\n\u003C\u002Fdiv>\n\u003Cdiv style=\"clear:both;\">\u003C\u002Fdiv>\u003Cbr \u002F>\n\n抢鲜体验：\n[crnn_for_text_with_multiple_lines](.\u002Fcrnn_for_text_with_multiple_lines\u002FREADME.md)\n\n#### Let's Continue，多行CRNN适用于Image Recognition任务吗？\n如果我们把图像中的物体看成是一个个字符，那么图像识别任务不就是文字识别任务吗？\u003Cbr>\n\n为了回答这个问题，我在PASCAL VOC数据集上进行了初步的验证，结论是多行CRNN模型不仅可以识别物体的类别，还可以识别物体的个数。不过由于Transformer强大的记忆力，在训练集上比较容易过拟合，需要进行数据增强并提高训练样本数量。\u003Cbr>\n抢鲜体验：\n[crnn_for_image_recognition](.\u002Fcrnn_for_image_recognition\u002FREADME.md)\n\n#### 接下来让我们挑战一个难倒国内外无数大语言模型的任务\n最近大语言模型真的好火，如何将CRNN技术应用到LLM呢？首先需要对多行CRNN进行改造以支持文本输入，只需将卷积特征提取层替换成nn.Embedding即可，为了方便区分，对改造后的模型简称为ChatCRNN。\u003Cbr>\n\n目前行业内发布的大模型对多位数整数乘法表现较差，有很多研究机构在研究如何解决。通过实验我发现3位整数乘法对ChatCRNN而言还算比较容易学习的，单卡训练半小时内可达到99.99%以上精度。\u003Cbr>\n更多技术细节可以参考我的[知乎回答](https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F605567747\u002Fanswer\u002F3441552623)\n\n以前我们经常需要单独训练一个语言模型来对OCR识别结果进行纠错，往后没必要那么麻烦了，因为加入多层TransformerEncoder后CRNN模型已经具备了语言模型的能力。\n\n抢鲜体验：\n[ChatCRNN](.\u002FChatCRNN\u002FREADME.md) -->\n\u003C!--\n-----------------------------------------\n#### 带Transformer的CRNN\nhttps:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.8\n+ 采用当前流行的YOLO系列主干网络\n+ 加入轻量级Transformer Encoder结构提升模型根据上下文纠错的能力\n+ 降低对真实样本的依赖，训练集仅仅包含100多个真实样本\n\n**Install 安装:**\n\u003Cpre>\npip install tr==2.8.2 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n说明： 不同版本的精度有差异，新版本精度不一定更高\n旧版本安装：\n+ pip install tr==2.8.1\n\nWindows 64位系统安装：\npip install tr==2.8.6 -i https:\u002F\u002Fpypi.org\u002Fsimple\u002F\n\u003C\u002Fpre>\n\n**Example 代码示例:**\n\u003Cpre>\nimport tr\ncrnn = tr.CRNN()                                # 初始化文本行识别网络\nchars, scores = crnn.run(\"imgs\u002Fline.png\")       # 识别文本行\nprint(\"\".join(chars))                           # 打印结果\n\u003C\u002Fpre>\n\n**GUI 截图识别**\n\u003Cpre>\n# 需要安装PyQt5，PIL依赖\npython -m tr.gui\n\u003C\u002Fpre>\n-----------------------------------------\n\n-->\n\n\u003C!--\n#### v2.6版本体验\n+ 采用当前流行的YOLO系列主干网络\n\u003Cbr>https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.6\n-->\n\n\u003C!-- #### 新版本体验v2.7\n+ 采用Attention层替代部分LSTM层，进一步加快模型收敛速度\n+ 删除部分人工标注样本，仅保留200多个真实样本，进一步降低人工智能中的人工成分\n+ 不使用任何语料库进行样本合成，不具备根据上下文推断不清晰字符的能力\n\u003Cbr>https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.7 -->\n\n#### 更新说明\n+ c++接口支持\n+ 添加python2支持\n+ 去除opencv-python、Pillow依赖，降低部署难度\n+ 支持多线程\n\u003C!-- + 支持GPU -->\n\u003C!-- + 取消对Windows系统的支持 -->\n\n#### Requirements\n+ python2\u002Fpython3，需要安装numpy\n+ 不支持Windows、CentOS 6、ARM\n\n#### GPU版本安装说明\n**由于新型号的显卡需要更高版本的CUDA，GPU版本暂时只支持旧型号的显卡。**\u003Cbr>\n如果对速度有要求，推荐安装GPU版本\u003Cbr>\n要使用GPU版本，复制tr_gpu文件夹里面的文件到tr文件夹\u003Cbr>\n注意: 需要先安装CUDA 10.1以及cuDNN 7.6.5。\u003Cbr>\n\u003Cbr>\n若不想安装CUDA\u002FcuDNN，可以使用docker部署\n\u003Cpre>docker pull mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\nsudo nvidia-docker run -v \u002Fpath\u002Fto\u002Ftr:\u002Fpath\u002Fto\u002Ftr --rm -it mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\n\u003C\u002Fpre>\n\n#### Install\n+ 安装方法一\n\u003Cpre>git clone https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git\ncd .\u002Ftr\nsudo python setup.py install\n\u003C\u002Fpre>\n+ 安装方法二\n\u003Cpre>sudo pip install git+https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git@master\n\u003C\u002Fpre>\n\n#### Test\n\u003Cpre>\npython2 demo.py               # python2兼容测试\npython3 test.py               # 可视化测试\npython3 test-multi-thread.py  # 多线程测试\npython3 test_crnn_pyqt5.py    # 截图识别\n\u003C\u002Fpre>\n\n#### 关联项目\n+ 若需要Web端调用，推荐参考\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falisen39\u002FTrWebOCR\">TrWebOCR\u003C\u002Fa>\n\n\n#### Python Example\n\u003Cpre>import tr\n\n# detect text lines, return list of (cx, cy, width, height, angle)\nprint(tr.detect(\"imgs\u002Fweb.png\", tr.FLAG_RECT))\n\n# detect text lines with angle, return list of (cx, cy, width, height, angle)\nprint(tr.detect(\"imgs\u002Fid_card.jpeg\", tr.FLAG_ROTATED_RECT))\n\n# recognize text line, return (text, confidence)\nprint(tr.recognize(\"imgs\u002Fline.png\"))\n\n# detect and recognize text lines with angle, return list of ((cx, cy, width, height, angle), text, confidence)\nprint(tr.run(\"imgs\u002Fid_card.jpeg\"))\n\u003C\u002Fpre>\n\n#### C++ Example\n\u003Cpre>tr_init(0, 0, \"crnn.bin\", NULL);\n\n#define MAX_WIDTH\t\t512\nint unicode[MAX_WIDTH];\nfloat prob[MAX_WIDTH]; \n\nauto ws = tr_recognize(0, (void *)\"line.png\", 0, 0, 0, unicode, prob, MAX_WIDTH);\n\ntr_release(0);\n\u003C\u002Fpre>\n\n#### 效果展示\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_7f15ec6f231b.png\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_8fe7b2d058e7.png\" \u002F>\n\u003Chr>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_c2c4ce4dfaef.png\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_ce02a6719c9d.png\" \u002F>\n","# tr - 文本识别\n\n一款针对扫描文档的离线文本识别SDK，核心代码全部采用C++开发，并提供Python接口\n\n编译环境: *Ubuntu 16.04*\n\n#### 为什么开发tr？\n我刚开发tr时，网上只有[chineseocr](https:\u002F\u002Fgithub.com\u002Fchineseocr\u002Fchineseocr)、 [tesseract](https:\u002F\u002Fgithub.com\u002Ftesseract-ocr\u002Ftesseract)等少数开源OCR。tr发布后，又诞生了几款优秀的开源OCR。tr也基本上完成了自己的使命，会转为一个研究型项目，追求技术的先进性而不是实用性。\n\n#### 暂停维护说明\n在研究OCR的过程中，我发现了更有趣的Transformer技术，这是一种有希望单个算法解决绝大部分深度学习任务（包括OCR）的技术。未来的算法工程师可能不再需要学习各种各样的算法，只需要学习一款算法即可。后续我们将暂停维护本项目，重点研究Transformer技术\n\n#### 免责声明\n最近看到一些半开源\u002F闭源免费软件被用户投诉举报，甚至追究法律责任的案例，感觉有必要加入免责声明：\n+ 本软件存在风险，包括但不限于闪退、内存泄漏，所有风险由用户承担\n+ 若在软件使用过程中出现异常导致损失，用户承担全部责任\n\n\u003C!-- \n-----------------------------------------\n#### 端到端文档理解 Document Understanding（研发中）\n多模态大模型宛如当年的互联网浪潮一样，汹涌而来，不可逆转。在不远的将来能否更好地融入多模态大模型生态，对OCR算法来说至关重要。\u003Cbr>\n\n如何更好地融入多模态大模型生态呢？最简单的方法是先用OCR算法识别出文本行的位置和内容，再将结果以JSON、XML等文本格式输入LLM，这种方法有以下缺点：\n+ 会不可避免地丢失图片中的一些信息，例如插图、背景图、字体、线框、色彩等等，这些丢失的信息对理解图片内容可能是不可缺少的\n+ OCR本身识别错误影响后续文档理解\n+ 存在表格、弯曲文本、图表、公式、印章等等OCR难以识别的内容\n\n因此，我认为端到端文档理解是更可行的技术方案。从算法角度而言，就是需要将图片编码成一维序列，使得TransformerDecoder可以像处理文本一样处理图片。\n\n相关研究：\n+ [TransformerDecoder](.\u002FTransformerDecoder\u002FREADME.md)\n\n-----------------------------------------\n#### 让CRNN支持多行文本的识别 CRNN For Text With Multiple Lines :star:\n将CRNN与Transformer Encoder\u002FDecoder相结合，从而使CRNN支持多行文本的识别。标注时不再需要标注文本行的边界框，大大降低标注和开发人员的工作量。适用于弯曲文本等场景。\u003Cbr>\n如果您要识别的图片类似于以下图片，使用现有OCR无法解决时，那么可以试一试多行CRNN。\n\u003Cdiv>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_048b8eff09ea.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_f729682bd64f.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_5b621f867a62.jpg\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_36b3b082fcd1.png\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_31f50a119cd4.jpg\" style=\"float:left;width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_a65328f1d659.png\" style=\"float:left,width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_6a73c3b55db0.jpg\" style=\"float:left,width:180px;\" \u002F>\n\u003Cimg width=\"180px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_27bf9f843ba4.png\" style=\"float:left,width:180px;\" \u002F>\n\u003C\u002Fdiv>\n\u003Cdiv style=\"clear:both;\">\u003C\u002Fdiv>\u003Cbr \u002F>\n\n抢鲜体验：\n[crnn_for_text_with_multiple_lines](.\u002Fcrnn_for_text_with_multiple_lines\u002FREADME.md)\n\n#### Let's Continue，多行CRNN适用于Image Recognition任务吗？\n如果我们把图像中的物体看成是一个个字符，那么图像识别任务不就是文字识别任务吗？\u003Cbr>\n\n为了回答这个问题，我在PASCAL VOC数据集上进行了初步的验证，结论是多行CRNN模型不仅可以识别物体的类别，还可以识别物体的个数。不过由于Transformer强大的记忆力，在训练集上比较容易过拟合，需要进行数据增强并提高训练样本数量。\u003Cbr>\n抢鲜体验：\n[crnn_for_image_recognition](.\u002Fcrnn_for_image_recognition\u002FREADME.md)\n\n#### 接下来让我们挑战一个难倒国内外无数大语言模型的任务\n最近大语言模型真的好火，如何将CRNN技术应用到LLM呢？首先需要对多行CRNN进行改造以支持文本输入，只需将卷积特征提取层替换成nn.Embedding即可，为了方便区分，对改造后的模型简称为ChatCRNN。\u003Cbr>\n\n目前行业内发布的大模型对多位数整数乘法表现较差，有很多研究机构在研究如何解决。通过实验我发现3位整数乘法对ChatCRNN而言还算比较容易学习的，单卡训练半小时内可达到99.99%以上精度。\u003Cbr>\n更多技术细节可以参考我的[知乎回答](https:\u002F\u002Fwww.zhihu.com\u002Fquestion\u002F605567747\u002Fanswer\u002F3441552623)\n\n以前我们经常需要单独训练一个语言模型来对OCR识别结果进行纠错，往后没必要那么麻烦了，因为加入多层TransformerEncoder后CRNN模型已经具备了语言模型的能力。\n\n抢鲜体验：\n[ChatCRNN](.\u002FChatCRNN\u002FREADME.md) -->\n\u003C!--\n-----------------------------------------\n#### 带Transformer的CRNN\nhttps:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.8\n+ 采用当前流行的YOLO系列主干网络\n+ 加入轻量级Transformer Encoder结构提升模型根据上下文纠错的能力\n+ 降低对真实样本的依赖，训练集仅仅包含100多个真实样本\n\n**Install 安装:**\n\u003Cpre>\npip install tr==2.8.2 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n说明： 不同版本的精度有差异，新版本精度不一定更高\n旧版本安装：\n+ pip install tr==2.8.1\n\nWindows 64位系统安装：\npip install tr==2.8.6 -i https:\u002F\u002Fpypi.org\u002Fsimple\u002F\n\u003C\u002Fpre>\n\n**Example 代码示例:**\n\u003Cpre>\nimport tr\ncrnn = tr.CRNN()                                # 初始化文本行识别网络\nchars, scores = crnn.run(\"imgs\u002Fline.png\")       # 识别文本行\nprint(\"\".join(chars))                           # 打印结果\n\u003C\u002Fpre>\n\n**GUI 截图识别**\n\u003Cpre>\n# 需要安装PyQt5，PIL依赖\npython -m tr.gui\n\u003C\u002Fpre>\n-----------------------------------------\n\n-->\n\n\u003C!--\n#### v2.6版本体验\n+ 采用当前流行的YOLO系列主干网络\n\u003Cbr>https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.6\n-->\n\n\u003C!-- #### 新版本体验v2.7\n+ 采用Attention层替代部分LSTM层，进一步加快模型收敛速度\n+ 删除部分人工标注样本，仅保留200多个真实样本，进一步降低人工智能中的人工成分\n+ 不使用任何语料库进行样本合成，不具备根据上下文推断不清晰字符的能力\n\u003Cbr>https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr\u002Ftree\u002Fmaster\u002Fv2.7 -->\n\n#### 更新说明\n+ c++接口支持\n+ 添加python2支持\n+ 去除opencv-python、Pillow依赖，降低部署难度\n+ 支持多线程\n\u003C!-- + 支持GPU -->\n\u003C!-- + 取消对Windows系统的支持 -->\n\n#### Requirements\n+ python2\u002Fpython3，需要安装numpy\n+ 不支持Windows、CentOS 6、ARM\n\n#### GPU版本安装说明\n**由于新型号的显卡需要更高版本的CUDA，GPU版本暂时只支持旧型号的显卡。**\u003Cbr>\n如果对速度有要求，推荐安装GPU版本\u003Cbr>\n要使用GPU版本，复制tr_gpu文件夹里面的文件到tr文件夹\u003Cbr>\n注意: 需要先安装CUDA 10.1以及cuDNN 7.6.5。\u003Cbr>\n\u003Cbr>\n若不想安装CUDA\u002FcuDNN，可以使用docker部署\n\u003Cpre>docker pull mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\nsudo nvidia-docker run -v \u002Fpath\u002Fto\u002Ftr:\u002Fpath\u002Fto\u002Ftr --rm -it mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\n\u003C\u002Fpre>\n\n#### Install\n+ 安装方法一\n\u003Cpre>git clone https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git\ncd .\u002Ftr\nsudo python setup.py install\n\u003C\u002Fpre>\n+ 安装方法二\n\u003Cpre>sudo pip install git+https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git@master\n\u003C\u002Fpre>\n\n#### Test\n\u003Cpre>\npython2 demo.py               # python2兼容测试\npython3 test.py               # 可视化测试\npython3 test-multi-thread.py  # 多线程测试\npython3 test_crnn_pyqt5.py    # 截图识别\n\u003C\u002Fpre>\n\n#### 关联项目\n+ 若需要Web端调用，推荐参考\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falisen39\u002FTrWebOCR\">TrWebOCR\u003C\u002Fa>\n\n\n#### Python Example\n\u003Cpre>import tr\n\n# detect text lines, return list of (cx, cy, width, height, angle)\nprint(tr.detect(\"imgs\u002Fweb.png\", tr.FLAG_RECT))\n\n# detect text lines with angle, return list of (cx, cy, width, height, angle)\nprint(tr.detect(\"imgs\u002Fid_card.jpeg\", tr.FLAG_ROTATED_RECT))\n\n# recognize text line, return (text, confidence)\nprint(tr.recognize(\"imgs\u002Fline.png\"))\n\n# detect and recognize text lines with angle, return list of ((cx, cy, width, height, angle), text, confidence)\nprint(tr.run(\"imgs\u002Fid_card.jpeg\"))\n\u003C\u002Fpre>\n\n#### C++ Example\n\u003Cpre>tr_init(0, 0, \"crnn.bin\", NULL);\n\n#define MAX_WIDTH\t\t512\nint unicode[MAX_WIDTH];\nfloat prob[MAX_WIDTH]; \n\nauto ws = tr_recognize(0, (void *)\"line.png\", 0, 0, 0, unicode, prob, MAX_WIDTH);\n\ntr_release(0);\n\u003C\u002Fpre>\n\n#### 效果展示\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_7f15ec6f231b.png\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_8fe7b2d058e7.png\" \u002F>\n\u003Chr>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_c2c4ce4dfaef.png\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_readme_ce02a6719c9d.png\" \u002F>","# tr 文本识别快速上手指南\n\n`tr` 是一款针对扫描文档的离线文本识别 SDK，核心代码采用 C++ 开发并提供 Python 接口。本项目目前主要作为研究型项目，适用于 Ubuntu 环境下的文本行检测与识别任务。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：推荐 **Ubuntu 16.04** 或更高版本。\n    *   *注意：不支持 Windows、CentOS 6 及 ARM 架构。*\n*   **Python 版本**：支持 Python 2 或 Python 3。\n*   **前置依赖**：\n    *   必须安装 `numpy`。\n    *   已移除对 `opencv-python` 和 `Pillow` 的强制依赖，降低部署难度。\n*   **GPU 支持（可选）**：\n    *   仅支持旧型号显卡。\n    *   需预先安装 **CUDA 10.1** 和 **cuDNN 7.6.5**。\n    *   若不想配置本地 CUDA 环境，推荐使用 Docker 部署。\n\n## 安装步骤\n\n您可以选择以下任意一种方式进行安装。推荐使用方法一以获取完整源码，或使用清华镜像源加速安装。\n\n### 方法一：源码安装（推荐）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git\ncd .\u002Ftr\nsudo python setup.py install\n```\n\n### 方法二：pip 直接安装\n\n```bash\n# 使用默认源\nsudo pip install git+https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git@master\n\n# 或者使用清华镜像源加速\nsudo pip install git+https:\u002F\u002Fgithub.com\u002Fmyhub\u002Ftr.git@master -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### GPU 版本特别说明\n\n如果需要启用 GPU 加速且已安装 CUDA 10.1\u002FcuDNN 7.6.5：\n1. 将源码中 `tr_gpu` 文件夹内的文件复制到 `tr` 文件夹覆盖。\n2. 或者使用官方提供的 Docker 镜像：\n\n```bash\ndocker pull mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\nsudo nvidia-docker run -v \u002Fpath\u002Fto\u002Ftr:\u002Fpath\u002Fto\u002Ftr --rm -it mcr.microsoft.com\u002Fazureml\u002Fonnxruntime:v1.3.0-cuda10.1-cudnn7\n```\n\n## 基本使用\n\n安装完成后，即可通过 Python 调用 `tr` 库进行文本检测与识别。\n\n### 1. 初始化与简单识别\n\n最基础的用法是初始化 CRNN 网络并识别单张文本行图片：\n\n```python\nimport tr\n\n# 初始化文本行识别网络\ncrnn = tr.CRNN()\n\n# 识别文本行 (输入图片路径)\nchars, scores = crnn.run(\"imgs\u002Fline.png\")\n\n# 打印识别结果\nprint(\"\".join(chars))\n```\n\n### 2. 高级功能：检测与识别\n\n`tr` 提供了更丰富的 API，支持文本行检测（含角度）、单独识别以及端到端的检测 + 识别流程：\n\n```python\nimport tr\n\n# 1. 检测文本行 (返回矩形框坐标: cx, cy, width, height, angle)\n# tr.FLAG_RECT 表示水平矩形框\nprint(tr.detect(\"imgs\u002Fweb.png\", tr.FLAG_RECT))\n\n# 2. 检测带角度的文本行 (返回旋转矩形框坐标)\n# tr.FLAG_ROTATED_RECT 适用于倾斜文本\nprint(tr.detect(\"imgs\u002Fid_card.jpeg\", tr.FLAG_ROTATED_RECT))\n\n# 3. 单独识别文本行 (返回文本内容和置信度)\nprint(tr.recognize(\"imgs\u002Fline.png\"))\n\n# 4. 一站式流程：检测并识别带角度的文本行\n# 返回格式：((cx, cy, width, height, angle), text, confidence)\nprint(tr.run(\"imgs\u002Fid_card.jpeg\"))\n```\n\n### 3. C++ 接口示例\n\n如果您需要在 C++ 项目中集成，可使用以下接口：\n\n```cpp\ntr_init(0, 0, \"crnn.bin\", NULL);\n\n#define MAX_WIDTH\t\t512\nint unicode[MAX_WIDTH];\nfloat prob[MAX_WIDTH]; \n\nauto ws = tr_recognize(0, (void *)\"line.png\", 0, 0, 0, unicode, prob, MAX_WIDTH);\n\ntr_release(0);\n```\n\n> **提示**：如需图形化界面体验截图识别功能，请安装 PyQt5 后运行 `python -m tr.gui`。","某物流公司的技术团队需要开发一套离线系统，用于自动识别并录入仓库中大量手写且字迹潦草的弯曲快递单号。\n\n### 没有 tr 时\n- **依赖网络且延迟高**：现有方案多需调用云端 API，仓库内网络信号不稳定导致识别请求频繁超时，严重拖慢分拣速度。\n- **复杂场景识别率低**：传统 OCR（如 Tesseract）难以处理倾斜、弯曲或背景杂乱的手写文本行，导致大量单据需人工二次复核。\n- **标注与开发成本高**：训练自定义模型需要精确标注每一行文本的边界框，面对海量非标准单据，数据准备耗时耗力。\n- **部署环境受限**：部分老旧工控机无法运行庞大的深度学习框架，且缺乏高效的 C++ 底层支持，内存占用过高易闪退。\n\n### 使用 tr 后\n- **纯离线极速响应**：tr 作为轻量级离线 SDK，直接在本地完成检测与识别，无需联网，单次识别毫秒级响应，彻底消除网络瓶颈。\n- **专攻疑难文本**：利用其独特的“多行 CRNN\"技术，无需预分割即可直接识别弯曲、折叠或多行混合的文本，显著提升潦草手写字迹的准确率。\n- **免边界框标注**：得益于算法改进，训练时不再需要繁琐的文本行边界框标注，大幅降低了数据清洗门槛和模型迭代周期。\n- **资源占用极低**：核心代码采用 C++ 开发并提供 Python 接口，能在低配 Linux 设备上稳定运行，有效避免内存泄漏和崩溃风险。\n\ntr 凭借其对复杂弯曲文本的卓越识别能力和高效的离线部署特性，将物流单据的自动化录入效率提升了数倍，同时大幅降低了算力与人力成本。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmyhub_tr_ee98a511.png","myhub","Dream","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmyhub_604fdf33.jpg",null,"https:\u002F\u002Fgithub.com\u002Fmyhub",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,1377,388,"2026-03-19T03:35:33","Linux (Ubuntu 16.04)","非必需。若使用 GPU 版本，仅支持旧型号显卡，需 CUDA 10.1 及 cuDNN 7.6.5","未说明",{"notes":93,"python":94,"dependencies":95},"明确不支持 Windows、CentOS 6 及 ARM 架构。核心代码为 C++，提供 Python 接口。已去除 opencv-python 和 Pillow 依赖以降低部署难度。GPU 版本可通过 Docker (onnxruntime:v1.3.0-cuda10.1-cudnn7) 部署以避免手动安装 CUDA\u002FcuDNN。项目目前已暂停维护，转为研究型项目。","Python 2 或 Python 3",[96],"numpy",[14,26],[99,100,101,102,103,104,105,106],"ocr","crnn","ctpn","deeplearning","pixellink","text-recognition","transformer","curved-text","2026-03-27T02:49:30.150509","2026-04-06T06:46:23.203932",[],[111,116,121,125,130,135,139,143,147,152,156],{"id":112,"version":113,"summary_zh":114,"released_at":115},108385,"2.8.2","开始研究Transformer解码器方案","2024-04-12T08:29:48",{"id":117,"version":118,"summary_zh":119,"released_at":120},108386,"2.8.1","重点开始支持多行文本的CRNN模型。","2024-02-18T09:06:41",{"id":122,"version":123,"summary_zh":79,"released_at":124},108387,"2.6.1","2023-07-24T02:19:31",{"id":126,"version":127,"summary_zh":128,"released_at":129},108388,"2.3.1.1","旧版本备份，准备切换到新版本","2022-05-04T02:48:27",{"id":131,"version":132,"summary_zh":133,"released_at":134},108389,"2.3.1","发布","2021-12-19T07:36:05",{"id":136,"version":137,"summary_zh":79,"released_at":138},108390,"2.3.0","2020-11-21T06:21:33",{"id":140,"version":141,"summary_zh":79,"released_at":142},108391,"1.5.1","2020-06-04T05:28:39",{"id":144,"version":145,"summary_zh":79,"released_at":146},108392,"1.1.2","2019-11-05T12:00:28",{"id":148,"version":149,"summary_zh":150,"released_at":151},108393,"1.1.3","+ 文本检测\u002F识别支持带角度的矩形框\n+ 检测\u002F识别完成后立即回收内存\n+ 对输出文本框按从左到右、从上到下排序","2019-10-06T01:25:45",{"id":153,"version":154,"summary_zh":79,"released_at":155},108394,"1.0.5","2019-08-26T05:55:24",{"id":157,"version":158,"summary_zh":79,"released_at":159},108395,"1.0.1","2019-09-14T08:58:48"]