[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Sanster--text_renderer":3,"tool-Sanster--text_renderer":64},[4,17,26,40,48,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},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,2,"2026-04-03T11:11:01",[13,14,15],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":23,"last_commit_at":32,"category_tags":33,"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,34,35,36,15,37,38,13,39],"数据工具","视频","插件","其他","语言模型","音频",{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"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,38,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[38,14,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":79,"owner_website":82,"owner_url":83,"languages":84,"stars":97,"forks":98,"last_commit_at":99,"license":100,"difficulty_score":23,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":109,"github_topics":110,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":162},2126,"Sanster\u002Ftext_renderer","text_renderer","Generate text images for training deep learning ocr model","text_renderer 是一款专为深度学习 OCR（光学字符识别）模型训练设计的开源工具，核心功能是批量生成带有丰富视觉效果的文字图像及其对应标签。它有效解决了训练数据匮乏的痛点，特别是针对非拉丁语系（如中文）字体支持不全导致生成内容出现乱码或缺字的问题，通过“严格模式”自动筛选可用字体，确保生成质量。\n\n该工具非常适合 AI 开发者、算法研究人员以及需要构建自定义数据集的技术团队使用。其独特亮点在于提供了高度可配置的文本效果系统，用户只需修改配置文件，即可轻松模拟透视变换、曲线弯曲、模糊、噪点、边框及各类线条干扰等真实场景中的复杂情况，从而大幅提升模型的泛化能力和鲁棒性。此外，text_renderer 还支持 GPU 加速生成，显著缩短大规模数据集的制作时间，并提供调试模式以可视化边界框和变换细节，方便开发者排查问题。无论是复现经典 CRNN 模型，还是研发新的识别算法，text_renderer 都能帮助用户高效获取高质量的合成训练数据。","# New version release：https:\u002F\u002Fgithub.com\u002Foh-my-ocr\u002Ftext_renderer\n\n# Text Renderer\nGenerate text images for training deep learning OCR model (e.g. [CRNN](https:\u002F\u002Fgithub.com\u002Fbgshih\u002Fcrnn)).\nSupport both latin and non-latin text.\n\n# Setup\n- Ubuntu 16.04\n- python 3.5+\n\nInstall dependencies:\n```\npip3 install -r requirements.txt\n```\n\n# Demo\nBy default, simply run `python3 main.py` will generate 20 text images\nand a labels.txt file in `output\u002Fdefault\u002F`.\n\n![example1.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_21392ca8352e.jpg)\n![example2.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_7cbe6bfe1822.jpg)\n\n![example3.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_3826f1fd0f5b.jpg)\n![example4.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_67c4cee204d5.jpg)\n\n# Use your own data to generate image\n1. Please run `python3 main.py --help` to see all optional arguments and their meanings.\nAnd put your own data in corresponding folder.\n\n2. Config text effects and fraction in `configs\u002Fdefault.yaml` file(or create a\nnew config file and use it by `--config_file` option), here are some examples:\n\n|Effect name|Image|\n|------------|----|\n|Origin(Font size 25)|![origin](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_ed590dc66e01.jpg)|\n|Perspective Transform|![perspective](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_71c1a94bbb45.jpg)|\n|Random Crop|![rand_crop](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e66cec202ae1.jpg)|\n|Curve|![curve](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_f5938093018e.jpg)|\n|Light border|![light border](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_bc3438b67de2.jpg)|\n|Dark border|![dark border](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_107d5915a364.jpg)|\n|Random char space big|![random char space big](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_4d5998064ff0.jpg)|\n|Random char space small|![random char space small](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_4428fdf6ff87.jpg)|\n|Middle line|![middle line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_5bcc5883e13b.jpg)|\n|Table line|![table line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_268d5a0346a8.jpg)|\n|Under line|![under line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_2edb988b3dcb.jpg)|\n|Emboss|![emboss](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_692c10d67166.jpg)|\n|Reverse color|![reverse color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_6009d9132d68.jpg)|\n|Blur|![blur](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e94b7143be14.jpg)|\n|Text color|![font_color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e526ca7ab7fe.jpg)|\n|Line color|![line_color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_2673bf9c47d5.jpg)|\n\n3. Run `main.py` file.\n\n# Strict mode\nFor no-latin language(e.g Chinese), it's very common that some fonts only support\nlimited chars. In this case, you will get bad results like these:\n\n![bad_example1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_96dc35eaf51c.jpg)\n\n![bad_example2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_b6db1e744941.jpg)\n\n![bad_example3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_cfad4dd28de9.jpg)\n\nSelect fonts that support all chars in `--chars_file` is annoying.\nRun `main.py` with `--strict` option, renderer will retry get text from\ncorpus during generate processing until all chars are supported by a font.\n\n# Tools\nYou can use `check_font.py` script to check how many chars your font not support in `--chars_file`:\n```bash\npython3 tools\u002Fcheck_font.py\n\nchecking font .\u002Fdata\u002Ffonts\u002Feng\u002FHack-Regular.ttf\nchars not supported(4971):\n['第', '朱', '广', '沪', '联', '自', '治', '县', '驼', '身', '进', '行', '纳', '税', '防', '火', '墙', '掏', '心', '内', '容', '万', '警','钟', '上', '了', '解'...]\n0 fonts support all chars(5071) in .\u002Fdata\u002Fchars\u002Fchn.txt:\n[]\n```\n\n# Generate image using GPU\nIf you want to use GPU to make generate image faster, first compile opencv with CUDA.\n[Compiling OpenCV with CUDA support](https:\u002F\u002Fwww.pyimagesearch.com\u002F2016\u002F07\u002F11\u002Fcompiling-opencv-with-cuda-support\u002F)\n\nThen build Cython part, and add `--gpu` option when run `main.py`\n```\ncd libs\u002Fgpu\npython3 setup.py build_ext --inplace\n```\n\n# Debug mode\nRun `python3 main.py --debug` will save images with extract information.\nYou can see how perspectiveTransform works and all bounding\u002Frotated boxes.\n\n![debug_demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_5bec3224b4e8.jpg)\n\n\n# Todo\nSee https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fprojects\u002F1\n\n\n## Citing text_renderer\n\nIf you use text_renderer in your research, please consider use the following BibTeX entry.\n\n```BibTeX\n@misc{text_renderer,\n  author =       {weiqing.chu},\n  title =        {text_renderer},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer}},\n  year =         {2021}\n}\n```\n","# 新版本发布：https:\u002F\u002Fgithub.com\u002Foh-my-ocr\u002Ftext_renderer\n\n# 文本渲染器\n用于生成文本图像，以训练深度学习 OCR 模型（例如 [CRNN](https:\u002F\u002Fgithub.com\u002Fbgshih\u002Fcrnn)）。支持拉丁文字和非拉丁文字。\n\n# 环境准备\n- Ubuntu 16.04\n- Python 3.5+\n\n安装依赖：\n```\npip3 install -r requirements.txt\n```\n\n# 示例\n默认情况下，直接运行 `python3 main.py` 将在 `output\u002Fdefault\u002F` 目录下生成 20 张文本图像和一个 `labels.txt` 文件。\n\n![example1.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_21392ca8352e.jpg)\n![example2.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_7cbe6bfe1822.jpg)\n\n![example3.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_3826f1fd0f5b.jpg)\n![example4.jpg](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_67c4cee204d5.jpg)\n\n# 使用自定义数据生成图像\n1. 请运行 `python3 main.py --help` 查看所有可选参数及其含义，并将您的数据放入相应的文件夹中。\n\n2. 在 `configs\u002Fdefault.yaml` 文件中配置文本效果和比例（或创建一个新的配置文件并通过 `--config_file` 选项使用），以下是一些示例：\n\n|效果名称|图片|\n|------------|----|\n|原始（字体大小 25）|![origin](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_ed590dc66e01.jpg)|\n|透视变换|![perspective](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_71c1a94bbb45.jpg)|\n|随机裁剪|![rand_crop](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e66cec202ae1.jpg)|\n|曲线|![curve](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_f5938093018e.jpg)|\n|浅色边框|![light border](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_bc3438b67de2.jpg)|\n|深色边框|![dark border](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_107d5915a364.jpg)|\n|大随机字符间距|![random char space big](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_4d5998064ff0.jpg)|\n|小随机字符间距|![random char space small](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_4428fdf6ff87.jpg)|\n|中线|![middle line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_5bcc5883e13b.jpg)|\n|表格线|![table line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_268d5a0346a8.jpg)|\n|下划线|![under line](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_2edb988b3dcb.jpg)|\n|浮雕|![emboss](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_692c10d67166.jpg)|\n|反色|![reverse color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_6009d9132d68.jpg)|\n|模糊|![blur](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e94b7143be14.jpg)|\n|文本颜色|![font_color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_e526ca7ab7fe.jpg)|\n|线条颜色|![line_color](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_2673bf9c47d5.jpg)|\n\n3. 运行 `main.py` 文件。\n\n# 严格模式\n对于非拉丁语言（例如中文），常见的情况是某些字体仅支持有限的字符。在这种情况下，您可能会得到如下不良结果：\n\n![bad_example1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_96dc35eaf51c.jpg)\n\n![bad_example2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_b6db1e744941.jpg)\n\n![bad_example3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_cfad4dd28de9.jpg)\n\n选择在 `--chars_file` 中支持所有字符的字体会比较麻烦。使用 `--strict` 选项运行 `main.py`，渲染器将在生成过程中不断尝试从语料库中获取文本，直到找到一种能够支持所有字符的字体为止。\n\n# 工具\n您可以使用 `check_font.py` 脚本来检查您的字体在 `--chars_file` 中有多少字符不支持：\n```bash\npython3 tools\u002Fcheck_font.py\n\nchecking font .\u002Fdata\u002Ffonts\u002Feng\u002FHack-Regular.ttf\nchars not supported(4971):\n['第', '朱', '广', '沪', '联', '自', '治', '县', '驼', '身', '进', '行', '纳', '税', '防', '火', '墙', '掏', '心', '内', '容', '万', '警','钟', '上', '了', '解'...]\n0 fonts support all chars(5071) in .\u002Fdata\u002Fchars\u002Fchn.txt:\n[]\n```\n\n# 使用 GPU 生成图像\n如果您希望使用 GPU 加快图像生成速度，首先需要编译带有 CUDA 支持的 OpenCV。\n[编译带有 CUDA 支持的 OpenCV](https:\u002F\u002Fwww.pyimagesearch.com\u002F2016\u002F07\u002F11\u002Fcompiling-opencv-with-cuda-support\u002F)\n\n然后构建 Cython 部分，并在运行 `main.py` 时添加 `--gpu` 选项：\n```\ncd libs\u002Fgpu\npython3 setup.py build_ext --inplace\n```\n\n# 调试模式\n运行 `python3 main.py --debug` 将保存包含提取信息的图像。您可以查看 `perspectiveTransform` 的工作方式以及所有的边界框和旋转框。\n\n![debug_demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_readme_5bec3224b4e8.jpg)\n\n\n# 待办事项\n请参阅 https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fprojects\u002F1\n\n\n## 引用 text_renderer\n\n如果您在研究中使用了 text_renderer，请考虑使用以下 BibTeX 条目。\n\n```BibTeX\n@misc{text_renderer,\n  author =       {weiqing.chu},\n  title =        {text_renderer},\n  howpublished = {\\url{https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer}},\n  year =         {2021}\n}\n```","# text_renderer 快速上手指南\n\n`text_renderer` 是一个用于生成训练深度学习 OCR 模型（如 CRNN）所需文本图像的工具，支持拉丁语系及非拉丁语系（如中文）文本。\n\n## 环境准备\n\n- **操作系统**：推荐 Ubuntu 16.04 或更高版本\n- **Python 版本**：Python 3.5+\n- **依赖库**：需安装 `requirements.txt` 中列出的 Python 包\n\n> **提示**：国内用户建议使用国内镜像源加速安装，例如：\n> ```bash\n> pip3 install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 安装步骤\n\n1. 克隆项目代码（如果尚未获取）：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer.git\n   cd text_renderer\n   ```\n\n2. 安装 Python 依赖：\n   ```bash\n   pip3 install -r requirements.txt\n   ```\n\n## 基本使用\n\n运行默认配置生成 20 张文本图像及对应的标签文件 `labels.txt`，输出目录为 `output\u002Fdefault\u002F`：\n\n```bash\npython3 main.py\n```\n\n生成完成后，可在 `output\u002Fdefault\u002F` 目录下查看生成的图像示例和标签文件。\n\n如需查看完整参数说明，可运行：\n```bash\npython3 main.py --help\n```\n\n你可以通过修改 `configs\u002Fdefault.yaml` 配置文件来自定义字体、文本效果、字符集等参数，或使用 `--config_file` 指定自定义配置文件。","某金融科技公司正在开发一款能自动识别手写发票和复杂表格的 OCR 系统，但面临真实标注数据稀缺且多样性不足的难题。\n\n### 没有 text_renderer 时\n- **数据采集成本高昂**：团队需耗费数周时间人工收集并标注成千上万张包含不同字体、背景噪声的真实票据图片。\n- **模型泛化能力差**：由于训练样本缺乏透视变形、模糊、光照不均等真实场景干扰，模型在遇到稍微倾斜或模糊的发票时识别率骤降。\n- **生僻字支持困难**：在处理非拉丁字符（如中文财务术语）时，难以找到覆盖所有生僻字的统一字体源，导致训练数据中出现大量乱码或缺失字符。\n- **迭代周期漫长**：每次调整模型结构后，重新准备和清洗多样化数据集的过程严重拖慢了算法验证与上线节奏。\n\n### 使用 text_renderer 后\n- **低成本生成海量数据**：利用 text_renderer 内置的透视变换、曲线扭曲、随机裁剪及各类噪声效果，几分钟内即可合成数万张高度逼真的模拟发票图像。\n- **显著提升鲁棒性**：通过配置 `configs\u002Fdefault.yaml` 灵活添加模糊、边框、颜色反转等特效，模型迅速学会了应对各种恶劣拍摄环境，识别准确率大幅提升。\n- **完美解决字符覆盖**：启用 `--strict` 严格模式后，text_renderer 自动筛选支持全部目标字符的字体，彻底消除了中文生僻字渲染失败导致的训练噪音。\n- **加速研发闭环**：结合 GPU 加速生成与调试模式，团队能在几小时内完成从数据合成到模型验证的全流程，将算法迭代效率提升了数倍。\n\ntext_renderer 通过低成本合成高多样性、高质量的训练数据，从根本上解决了深度学习 OCR 模型对大规模标注数据的依赖瓶颈。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FSanster_text_renderer_654d0635.png","Sanster","Qing","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FSanster_1fefa5e3.jpg","Don't Panic. Here is your towel.",null,"Shanghai","cwq1913@gmail.com","https:\u002F\u002Fwww.panicbyte.xyz\u002F","https:\u002F\u002Fgithub.com\u002FSanster",[85,89,93],{"name":86,"color":87,"percentage":88},"Python","#3572A5",87.2,{"name":90,"color":91,"percentage":92},"C++","#f34b7d",10,{"name":94,"color":95,"percentage":96},"Cython","#fedf5b",2.8,1461,388,"2026-03-11T10:13:52","MIT","Linux","非必需。若需加速，需自行编译支持 CUDA 的 OpenCV 并构建 Cython 模块，具体显卡型号、显存及 CUDA 版本未说明。","未说明",{"notes":105,"python":106,"dependencies":107},"默认在 Ubuntu 16.04 上测试。生成非拉丁语系（如中文）图像时，建议使用 '--strict' 模式以自动筛选支持所有字符的字体，避免渲染错误。可使用提供的 check_font.py 脚本检查字体对特定字符集的支持情况。","3.5+",[108],"requirements.txt 中定义的依赖 (具体列表未在 README 中展示)",[14],[111,112,113],"synthtext","crnn","ocr","2026-03-27T02:49:30.150509","2026-04-06T11:31:08.131938",[117,122,127,132,137,142,147,152,157],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},9780,"运行 python main.py 时不断出现 'Retry gen_img' 提示，这是什么原因？","这通常与语料库有关，不同的语料生成图像时出现的频繁程度不同。只要最终能成功生成指定数量的图片，一般可以忽略此提示。如果频繁出现且影响生成，可能是代码存在 Bug，但在不影响结果的情况下无需过度担心。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F10",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},9781,"如何生成彩色文字和彩色背景的图片？","默认版本主要支持单通道处理。若要生成彩色图片，需要修改源码以支持三通道图像。具体步骤包括：1. 将代码中获取图像尺寸的 `row, col = img.shape` 改为 `row, col = image.size`（或适配 RGB 通道的逻辑）；2. 修改 `noiser.py` 中相关的图像处理逻辑以适配三通道背景图；3. 参考社区提交的 PR 或使用分支版本（如 https:\u002F\u002Fgithub.com\u002Ftfdetang\u002Ftext_renderer）。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F31",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},9782,"如何设置生成的文字位于背景图片的正中间？","默认配置可能无法完美居中。建议在代码中找到 `crop_img` 相关逻辑，在最终裁剪图像时，手动计算文字区域相对于背景的正中心坐标进行裁剪，以确保文字在视觉上处于正中间。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F16",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},9783,"语料库文件有什么格式要求？如何兼顾中文、英文和数字的生成？","语料库需以 UTF-8 编码的 txt 格式存放在 `--corpus_dir` 目录下，程序会递归加载。使用时需注意 `--corpus_mode` 参数（如中文语料对应 `chn`）。若要兼顾多语言，建议分三次生成数据并输出到同一目录：例如生成 500 万数据时，可用 420 万中文语料、60 万英文语料、20 万随机数字。推荐语料来源：搜狗实验室中文语料库、Wiki 中英文语料库。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F6",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},9784,"我想按特定顺序或指定内容生成文字，而不是随机字符，该如何操作？","如果需要生成特定的字符串序列而非随机字符，不能使用默认的随机模式。解决方法是：准备一个 txt 文件，每一行写入你想要生成的具体字符串，然后在运行配置时使用 `EnumCorpus` 模式来读取该文件，即可按行生成指定内容的图像。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F113",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},9785,"如何将标签文件中的文字内容转换为字符集索引（如 char_std_5990.txt 中的索引）？","需要修改 `main.py` 中的 `generate_img` 函数。基本思路是：1. 加载字符集字典（如 `char_std_5990.txt`），建立字符到索引的映射字典；2. 在生成图像后，遍历识别出的文字字符串；3. 查表将每个字符转换为对应的整数索引；4. 将文件名和索引序列写入新的标签文件。可参考社区提供的代码片段，利用 `hashlib` 生成文件名并构建映射字典实现转换。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F17",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},9786,"运行时报错 'glob.glob ... recursive=True' 参数无效或加载文件失败，如何解决？","这是因为 `glob` 模块的 `recursive` 参数仅在 Python 3.5 及以上版本支持。如果你使用的是 Python 3.4 或更低版本，会报错。解决方案是将 Python 环境升级到 3.5 或更高版本（推荐使用 Python 3.6+）。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F9",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},9787,"如何生成字体大小不一的图片？","可以通过拼接的方式实现。具体思路是：分别绘制两张（或多张）不同字体大小的图像，然后将它们在 Canvas 上进行拼接组合，从而得到包含不同大小文字的单一图片。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F43",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},9788,"如何禁止生成的文字出现倾斜效果？","如果使用新版 text_renderer，需要在配置文件中关闭投影变换（Perspective Transform）相关的选项。确保配置中没有启用导致文字几何形变的参数，参考示例配置文件 `example_data\u002Fexample.py` 中的设置，避免开启倾斜相关的变换矩阵。","https:\u002F\u002Fgithub.com\u002FSanster\u002Ftext_renderer\u002Fissues\u002F104",[]]