[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Belval--TextRecognitionDataGenerator":3,"tool-Belval--TextRecognitionDataGenerator":61},[4,18,28,36,45,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":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"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":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":24,"last_commit_at":42,"category_tags":43,"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 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,44],"语言模型",{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[27,13,15,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":78,"owner_twitter":79,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":106,"github_topics":109,"view_count":24,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":118,"updated_at":119,"faqs":120,"releases":156},9938,"Belval\u002FTextRecognitionDataGenerator","TextRecognitionDataGenerator","A synthetic data generator for text recognition","TextRecognitionDataGenerator 是一款专为光学字符识别（OCR）打造的合成数据生成工具。在训练高精度 OCR 模型时，往往面临真实标注数据稀缺或采集成本高昂的难题，而它能通过算法自动生成海量带有精确标签的文本图像，有效解决这一数据瓶颈。\n\n该工具非常适合 AI 开发者、计算机视觉研究人员以及需要构建自定义识别模型的技术团队使用。其核心工作原理是从特定语言的词典中随机选取词汇，结合多样的字体、背景纹理，并施加模糊、倾斜、噪点等自然失真效果，模拟真实场景中的复杂情况。\n\nTextRecognitionDataGenerator 的技术亮点在于其强大的灵活性与广泛的兼容性。它不仅支持包括简体中文、繁体中文在内的非拉丁语系，还允许用户通过命令行或 Python 模块两种方式调用，轻松集成到自动化训练流水线中。用户可以精细控制字符间距、笔画粗细、文字颜色范围甚至输出像素级掩码，从而生成高度定制化的数据集。无论是从零开始训练模型，还是针对特定场景进行微调，它都能以极低的成本提供高质量的“燃料”，助力提升识别算法的鲁棒性。","# TextRecognitionDataGenerator [![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Ftree\u002Fmaster.svg?style=svg)](https:\u002F\u002Fcircleci.com\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Ftree\u002Fmaster) [![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftrdg.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftrdg) [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator) [![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBelval_TextRecognitionDataGenerator_readme_6bf48b3e9a6d.png)](https:\u002F\u002Ftextrecognitiondatagenerator.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n\nA synthetic data generator for text recognition\n\n## What is it for?\n\nGenerating text image samples to train an OCR software. Now supporting non-latin text! For a more thorough tutorial see [the official documentation](https:\u002F\u002Ftextrecognitiondatagenerator.readthedocs.io\u002Fen\u002Flatest\u002Findex.html).\n\n## What do I need to make it work?\n\nInstall the pypi package\n\n```\npip install trdg\n```\n\nAfterwards, you can use `trdg` from the CLI. I recommend using a virtualenv instead of installing with `sudo`.\n\nIf you want to add another language, you can clone the repository instead. Simply run `pip install -r requirements.txt`\n\n## Docker image\n\nIf you would rather not have to install anything to use TextRecognitionDataGenerator, you can pull the docker image.\n\n```\ndocker pull belval\u002Ftrdg:latest\n\ndocker run -v \u002Foutput\u002Fpath\u002F:\u002Fapp\u002Fout\u002F -t belval\u002Ftrdg:latest trdg [args]\n```\n\nThe path (`\u002Foutput\u002Fpath\u002F`) must be absolute.\n\n## New\n- Add `--stroke_width` argument to set the width of the text stroke (Thank you [@SunHaozhe](https:\u002F\u002Fgithub.com\u002FSunHaozhe))\n- Add `--stroke_fill` argument to set the color of the text contour if stroke > 0 (Thank you [@SunHaozhe](https:\u002F\u002Fgithub.com\u002FSunHaozhe))\n- Add `--word_split` argument to split on word instead of per-character. This is useful for ligature-based languages\n- Add `--dict` argument to specify a custom dictionary (Thank you [@luh0907](https:\u002F\u002Fgithub.com\u002Fluh0907))\n- Add `--font_dir` argument to specify the fonts to use\n- Add `--output_mask` to output character-level mask for each image\n- Add `--character_spacing` to control space between characters (in pixels)\n- Add python module\n- Add `--font` to use only one font for all the generated images (Thank you [@JulienCoutault](https:\u002F\u002Fgithub.com\u002FJulienCoutault)!)\n- Add `--fit` and `--margins` for finer layout control\n- Change the text orientation using the `-or` parameter\n- Specify text color range using `-tc '#000000,#FFFFFF'`, please note that the quotes are **necessary**\n- Add support for Simplified and Traditional Chinese\n\n## How does it work?\n\nWords will be randomly chosen from a dictionary of a specific language. Then an image of those words will be generated by using font, background, and modifications (skewing, blurring, etc.) as specified.\n\n### Basic (Python module)\n\nThe usage as a Python module is very similar to the CLI, but it is more flexible if you want to include it directly in your training pipeline, and will consume less space and memory. There are 4 generators that can be used.\n\n```py\nfrom trdg.generators import (\n    GeneratorFromDict,\n    GeneratorFromRandom,\n    GeneratorFromStrings,\n    GeneratorFromWikipedia,\n)\n\n# The generators use the same arguments as the CLI, only as parameters\ngenerator = GeneratorFromStrings(\n    ['Test1', 'Test2', 'Test3'],\n    blur=2,\n    random_blur=True\n)\n\nfor img, lbl in generator:\n    # Do something with the pillow images here.\n```\n\nYou can see the full class definition here:\n\n- [`GeneratorFromDict`](trdg\u002Fgenerators\u002Ffrom_dict.py)\n- [`GeneratorFromRandom`](trdg\u002Fgenerators\u002Ffrom_random.py)\n- [`GeneratorFromStrings`](trdg\u002Fgenerators\u002Ffrom_strings.py)\n- [`GeneratorFromWikipedia`](trdg\u002Fgenerators\u002Ffrom_wikipedia.py)\n\n### Basic (CLI)\n\n`trdg -c 1000 -w 5 -f 64`\n\nYou get 1,000 randomly generated images with random text on them like:\n\n![1](samples\u002F1.jpg \"1\")\n![2](samples\u002F2.jpg \"2\")\n![3](samples\u002F3.jpg \"3\")\n![4](samples\u002F4.jpg \"4\")\n![5](samples\u002F5.jpg \"5\")\n\nBy default, they will be generated to `out\u002F` in the current working directory.\n\n### Text skewing\n\nWhat if you want random skewing? Add `-k` and `-rk` (`trdg -c 1000 -w 5 -f 64 -k 5 -rk`)\n\n![6](samples\u002F6.jpg \"6\")\n![7](samples\u002F7.jpg \"7\")\n![8](samples\u002F8.jpg \"8\")\n![9](samples\u002F9.jpg \"9\")\n![10](samples\u002F10.jpg \"10\")\n\n### Text distortion\nYou can also add distortion to the generated text with `-d` and `-do`\n\n![23](samples\u002F24.jpg \"0\")\n![24](samples\u002F25.jpg \"1\")\n![25](samples\u002F26.jpg \"2\")\n\n### Text blurring\n\nBut scanned document usually aren't that clear are they? Add `-bl` and `-rbl` to get gaussian blur on the generated image with user-defined radius (here 0, 1, 2, 4):\n\n![11](samples\u002F11.jpg \"0\")\n![12](samples\u002F12.jpg \"1\")\n![13](samples\u002F13.jpg \"2\")\n![14](samples\u002F14.jpg \"4\")\n\n### Background\n\nMaybe you want another background? Add `-b` to define one of the three available backgrounds: gaussian noise (0), plain white (1), quasicrystal (2) or image (3).\n\n![15](samples\u002F15.jpg \"0\")\n![16](samples\u002F16.jpg \"1\")\n![17](samples\u002F17.jpg \"2\")\n![23](samples\u002F23.jpg \"3\")\n\nWhen using image background (3). A image from the images\u002F folder will be randomly selected and the text will be written on it.\n\n### Handwritten\n\nOr maybe you are working on an OCR for handwritten text? Add `-hw`! (Experimental)\n\n![18](samples\u002F18.jpg \"0\")\n![19](samples\u002F19.jpg \"1\")\n![20](samples\u002F20.jpg \"2\")\n![21](samples\u002F21.jpg \"3\")\n![22](samples\u002F22.jpg \"4\")\n\nIt uses a Tensorflow model trained using [this excellent project](https:\u002F\u002Fgithub.com\u002FGrzego\u002Fhandwriting-generation) by Grzego.\n\n**The project does not require TensorFlow to run if you aren't using this feature**\n\n### Dictionary\n\nThe text is chosen at random in a dictionary file (that can be found in the *dicts* folder) and drawn on a white background made with Gaussian noise. The resulting image is saved as [text]\\_[index].jpg\n\nThere are a lot of parameters that you can tune to get the results you want, therefore I recommend checking out `trdg -h` for more information.\n\n## Create images with Chinese text\n\nIt is simple! Just do `trdg -l cn -c 1000 -w 5`!\n\nGenerated texts come both in simplified and traditional Chinese scripts.\n\nTraditional:\n\n![27](samples\u002F27.jpg \"0\")\n\nSimplified:\n\n![28](samples\u002F28.jpg \"1\")\n\n## Create images with Japanese text \n\nIt is simple! Just do `trdg -l ja -c 1000 -w 5`!\n\nOutput \n\n![29](samples\u002F29.jpg \"2\")\n\n\n## Add new fonts\n\nThe script picks a font at random from the *fonts* directory.\n\n| Directory | Languages |\n|:----|:-----|\n| fonts\u002Flatin | English, French, Spanish, German |\n| fonts\u002Fcn | Chinese |\n| fonts\u002Fko | Korean |\n| fonts\u002Fja | Japanese |\n| fonts\u002Fth | Thai |\n\nSimply add\u002Fremove fonts until you get the desired output.\n\nIf you want to add a new non-latin language, the amount of work is minimal.\n\n1. Create a new folder with your language [two-letters code](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_ISO_639-1_codes)\n2. Add a .ttf font in it\n3. Edit `run.py` to add an if statement in `load_fonts()`\n4. Add a text file in `dicts` with the same two-letters code\n5. Run the tool as you normally would but add `-l` with your two-letters code\n\nIt only supports .ttf for now.\n\n## Benchmarks\n\nNumber of images generated per second.\n\n- Intel Core i7-4710HQ @ 2.50Ghz + SSD (-c 1000 -w 1)\n    - `-t 1` : 363 img\u002Fs\n    - `-t 2` : 694 img\u002Fs\n    - `-t 4` : 1300 img\u002Fs\n    - `-t 8` : 1500 img\u002Fs\n- AMD Ryzen 7 1700 @ 4.0Ghz + SSD (-c 1000 -w 1)\n    - `-t 1` : 558 img\u002Fs\n    - `-t 2` : 1045 img\u002Fs\n    - `-t 4` : 2107 img\u002Fs\n    - `-t 8` : 3297 img\u002Fs\n\n## Contributing\n\n1. Create an issue describing the feature you'll be working on\n2. Code said feature\n3. Create a pull request\n\n## Feature request & issues\n\nIf anything is missing, unclear, or simply not working, open an issue on the repository.\n\n## What is left to do?\n- Better background generation\n- Better handwritten text generation\n- More customization parameters (mostly regarding background)\n","# 文本识别数据生成器 [![CircleCI](https:\u002F\u002Fcircleci.com\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Ftree\u002Fmaster.svg?style=svg)](https:\u002F\u002Fcircleci.com\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Ftree\u002Fmaster) [![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftrdg.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Ftrdg) [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FBelval\u002FTextRecognitionDataGenerator) [![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBelval_TextRecognitionDataGenerator_readme_6bf48b3e9a6d.png)](https:\u002F\u002Ftextrecognitiondatagenerator.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n\n用于文本识别的合成数据生成工具\n\n## 它用来做什么？\n\n生成用于训练 OCR 软件的文本图像样本。现已支持非拉丁文字！如需更详细的教程，请参阅[官方文档](https:\u002F\u002Ftextrecognitiondatagenerator.readthedocs.io\u002Fen\u002Flatest\u002Findex.html)。\n\n## 我需要什么才能让它运行？\n\n安装 PyPI 包：\n\n```\npip install trdg\n```\n\n安装完成后，您就可以在命令行中使用 `trdg`。建议使用虚拟环境，而不是使用 `sudo` 进行安装。\n\n如果您想添加其他语言，可以克隆仓库。只需运行 `pip install -r requirements.txt` 即可。\n\n## Docker 镜像\n\n如果您不想安装任何东西就能使用 TextRecognitionDataGenerator，可以直接拉取 Docker 镜像。\n\n```\ndocker pull belval\u002Ftrdg:latest\n\ndocker run -v \u002Foutput\u002Fpath\u002F:\u002Fapp\u002Fout\u002F -t belval\u002Ftrdg:latest trdg [args]\n```\n\n路径（`\u002Foutput\u002Fpath\u002F`）必须是绝对路径。\n\n## 新特性\n- 添加 `--stroke_width` 参数，用于设置文本描边的宽度（感谢 [@SunHaozhe](https:\u002F\u002Fgithub.com\u002FSunHaozhe)）\n- 添加 `--stroke_fill` 参数，用于设置当描边宽度大于 0 时的描边颜色（感谢 [@SunHaozhe](https:\u002F\u002Fgithub.com\u002FSunHaozhe)）\n- 添加 `--word_split` 参数，用于按单词而非单个字符进行分割。这对于基于连字的语言非常有用。\n- 添加 `--dict` 参数，用于指定自定义词典（感谢 [@luh0907](https:\u002F\u002Fgithub.com\u002Fluh0907)）\n- 添加 `--font_dir` 参数，用于指定要使用的字体目录。\n- 添加 `--output_mask`，用于输出每张图像的字符级掩码。\n- 添加 `--character_spacing`，用于控制字符之间的间距（以像素为单位）。\n- 添加 Python 模块。\n- 添加 `--font` 参数，用于在所有生成的图像中仅使用一种字体（感谢 [@JulienCoutault](https:\u002F\u002Fgithub.com\u002FJulienCoutault)！）\n- 添加 `--fit` 和 `--margins`，以实现更精细的布局控制。\n- 使用 `-or` 参数更改文本方向。\n- 使用 `-tc '#000000,#FFFFFF'` 指定文本颜色范围，注意引号是**必需的**。\n- 增加对简体中文和繁体中文的支持。\n\n## 它是如何工作的？\n\n系统会从特定语言的词典中随机选择单词，然后根据指定的字体、背景以及各种变换（如扭曲、模糊等），生成包含这些单词的图像。\n\n### 基本用法（Python 模块）\n\n作为 Python 模块的使用方式与命令行类似，但如果您希望将其直接集成到训练流程中，这种方式更加灵活，且占用的空间和内存更少。共有四种生成器可供使用。\n\n```py\nfrom trdg.generators import (\n    GeneratorFromDict,\n    GeneratorFromRandom,\n    GeneratorFromStrings,\n    GeneratorFromWikipedia,\n)\n\n# 生成器使用的参数与命令行相同，只是以参数形式传入\ngenerator = GeneratorFromStrings(\n    ['Test1', 'Test2', 'Test3'],\n    blur=2,\n    random_blur=True\n)\n\nfor img, lbl in generator:\n    # 在这里对 Pillow 图像进行处理。\n```\n\n完整的类定义如下：\n- [`GeneratorFromDict`](trdg\u002Fgenerators\u002Ffrom_dict.py)\n- [`GeneratorFromRandom`](trdg\u002Fgenerators\u002Ffrom_random.py)\n- [`GeneratorFromStrings`](trdg\u002Fgenerators\u002Ffrom_strings.py)\n- [`GeneratorFromWikipedia`](trdg\u002Fgenerators\u002Ffrom_wikipedia.py)\n\n### 基本用法（命令行）\n\n`trdg -c 1000 -w 5 -f 64`\n\n您将获得 1,000 张随机生成的图像，上面带有随机文本，例如：\n\n![1](samples\u002F1.jpg \"1\")\n![2](samples\u002F2.jpg \"2\")\n![3](samples\u002F3.jpg \"3\")\n![4](samples\u002F4.jpg \"4\")\n![5](samples\u002F5.jpg \"5\")\n\n默认情况下，这些图像会被保存到当前工作目录下的 `out\u002F` 文件夹中。\n\n### 文本倾斜\n\n如果您想要随机倾斜效果呢？只需添加 `-k` 和 `-rk` 参数即可（`trdg -c 1000 -w 5 -f 64 -k 5 -rk`）。\n\n![6](samples\u002F6.jpg \"6\")\n![7](samples\u002F7.jpg \"7\")\n![8](samples\u002F8.jpg \"8\")\n![9](samples\u002F9.jpg \"9\")\n![10](samples\u002F10.jpg \"10\")\n\n### 文本扭曲\n\n您还可以通过 `-d` 和 `-do` 参数为生成的文本添加扭曲效果。\n\n![23](samples\u002F24.jpg \"0\")\n![24](samples\u002F25.jpg \"1\")\n![25](samples\u002F26.jpg \"2\")\n\n### 文本模糊\n\n不过，扫描的文档通常并不那么清晰，对吧？您可以添加 `-bl` 和 `-rbl` 参数，在生成的图像上应用高斯模糊，用户可以自定义模糊半径（此处分别为 0、1、2、4）：\n\n![11](samples\u002F11.jpg \"0\")\n![12](samples\u002F12.jpg \"1\")\n![13](samples\u002F13.jpg \"2\")\n![14](samples\u002F14.jpg \"4\")\n\n### 背景\n\n也许您想要不同的背景？可以使用 `-b` 参数来选择三种可用背景之一：高斯噪声（0）、纯白色（1）、准晶图案（2），或者使用图片背景（3）。\n\n![15](samples\u002F15.jpg \"0\")\n![16](samples\u002F16.jpg \"1\")\n![17](samples\u002F17.jpg \"2\")\n![23](samples\u002F23.jpg \"3\")\n\n当使用图片背景（3）时，系统会从 `images\u002F` 文件夹中随机选择一张图片，并在其上绘制文本。\n\n### 手写体\n\n或者您正在开发手写文本的 OCR 吗？可以添加 `-hw` 参数！（实验性功能）\n\n![18](samples\u002F18.jpg \"0\")\n![19](samples\u002F19.jpg \"1\")\n![20](samples\u002F20.jpg \"2\")\n![21](samples\u002F21.jpg \"3\")\n![22](samples\u002F22.jpg \"4\")\n\n该功能使用由 Grzego 训练的 TensorFlow 模型，模型基于 [这个优秀的项目](https:\u002F\u002Fgithub.com\u002FGrzego\u002Fhandwriting-generation)。\n\n**如果您不使用此功能，则该项目无需 TensorFlow 即可运行。**\n\n### 词典\n\n文本是从词典文件中随机选取的（该文件位于 `dicts` 文件夹中），并绘制在由高斯噪声生成的白色背景上。最终生成的图像会保存为 `[text]_[index].jpg`。\n\n有许多参数可以调整以获得所需的效果，因此建议查看 `trdg -h` 获取更多信息。\n\n## 生成中文文本图像\n\n很简单！只需执行 `trdg -l cn -c 1000 -w 5`！\n\n生成的文本既有简体中文，也有繁体中文。\n\n繁体中文：\n\n![27](samples\u002F27.jpg \"0\")\n\n简体中文：\n\n![28](samples\u002F28.jpg \"1\")\n\n## 生成日文文本图像\n\n也很简单！只需执行 `trdg -l ja -c 1000 -w 5`！\n\n输出：\n\n![29](samples\u002F29.jpg \"2\")\n\n## 添加新字体\n\n脚本会从 *fonts* 目录中随机选择一种字体。\n\n| 目录         | 语言       |\n|:----|:-----|\n| fonts\u002Flatin  | 英语、法语、西班牙语、德语 |\n| fonts\u002Fcn     | 中文       |\n| fonts\u002Fko     | 韩语       |\n| fonts\u002Fja     | 日语       |\n| fonts\u002Fth     | 泰语       |\n\n只需添加或删除字体，直到获得所需的效果。\n\n若要添加新的非拉丁文字语言，所需的工作量非常小。\n\n1. 创建一个以该语言 [双字母代码](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_ISO_639-1_codes) 命名的新文件夹。\n2. 在其中放入一个 .ttf 格式的字体文件。\n3. 编辑 `run.py` 文件，在 `load_fonts()` 函数中添加一条 if 语句。\n4. 在 `dicts` 目录中创建一个同名双字母代码的文本文件。\n5. 按照常规方式运行工具，但需加上 `-l` 参数，并指定你的双字母代码。\n\n目前仅支持 .ttf 格式字体。\n\n## 基准测试\n\n每秒生成的图片数量。\n\n- Intel Core i7-4710HQ @ 2.50Ghz + SSD (-c 1000 -w 1)\n    - `-t 1` : 363 张\u002F秒\n    - `-t 2` : 694 张\u002F秒\n    - `-t 4` : 1300 张\u002F秒\n    - `-t 8` : 1500 张\u002F秒\n- AMD Ryzen 7 1700 @ 4.0Ghz + SSD (-c 1000 -w 1)\n    - `-t 1` : 558 张\u002F秒\n    - `-t 2` : 1045 张\u002F秒\n    - `-t 4` : 2107 张\u002F秒\n    - `-t 8` : 3297 张\u002F秒\n\n## 贡献说明\n\n1. 创建一个议题，描述你将要实现的功能。\n2. 实现该功能。\n3. 提交拉取请求。\n\n## 功能请求与问题\n\n如果发现有任何缺失、不明确或无法正常工作的情况，请在仓库中提交一个议题。\n\n## 尚待完成的工作？\n- 改进背景生成\n- 改进手写文本生成\n- 增加更多自定义参数（主要针对背景）","# TextRecognitionDataGenerator 快速上手指南\n\nTextRecognitionDataGenerator (trdg) 是一个用于生成合成文本图像数据的工具，专为训练 OCR（光学字符识别）模型设计。它支持包括简体中文、繁体中文、日文在内的多种非拉丁语言，并可模拟模糊、倾斜、扭曲等真实场景效果。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：建议 Python 3.6+\n*   **前置依赖**：\n    *   若使用手写字体生成功能，需安装 TensorFlow（可选）。\n    *   若通过源码运行而非 Docker，需确保系统已安装基础编译工具及字体库。\n\n## 安装步骤\n\n推荐优先使用国内镜像源加速安装。\n\n### 方式一：通过 PyPI 安装（推荐）\n\n```bash\npip install trdg -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n> **提示**：建议在虚拟环境（virtualenv）中安装，避免污染系统环境。\n\n### 方式二：使用 Docker（无需配置环境）\n\n如果你希望免去环境配置烦恼，可直接拉取 Docker 镜像：\n\n```bash\ndocker pull belval\u002Ftrdg:latest\n```\n\n## 基本使用\n\n安装完成后，即可在命令行直接使用 `trdg` 命令，或在 Python 代码中作为模块调用。\n\n### 1. 命令行 (CLI) 模式\n\n**生成 1000 张包含 5 个随机单词的图片：**\n\n```bash\ntrdg -c 1000 -w 5\n```\n\n*   `-c`: 生成的图片数量 (count)\n*   `-w`: 每张包含的单词数 (words)\n*   默认输出目录为当前路径下的 `out\u002F` 文件夹。\n\n**生成中文文本图片（简体\u002F繁体）：**\n\n```bash\ntrdg -l cn -c 1000 -w 5\n```\n\n*   `-l`: 指定语言代码（`cn` 代表中文，`ja` 代表日文，`ko` 代表韩文等）。\n\n**添加干扰效果（模拟真实扫描文档）：**\n\n```bash\n# 添加随机倾斜 (-k) 和高斯模糊 (-bl)\ntrdg -c 1000 -w 5 -k 5 -rk -bl 2 -rbl\n```\n\n**查看完整参数帮助：**\n\n```bash\ntrdg -h\n```\n\n### 2. Python 模块模式\n\n适合直接集成到训练管道中，更灵活且节省内存。\n\n```python\nfrom trdg.generators import GeneratorFromStrings\n\n# 自定义文本列表生成器\ngenerator = GeneratorFromStrings(\n    ['测试数据 1', '人工智能', 'OCR 训练'],\n    blur=2,\n    random_blur=True\n)\n\nfor img, lbl in generator:\n    # img 为 PIL 图像对象，lbl 为对应的文本标签\n    # 在此处处理图像或存入数据集\n    pass\n```\n\n其他可用生成器类：\n*   `GeneratorFromDict`: 从内置字典随机选取单词。\n*   `GeneratorFromRandom`: 生成随机字符组合。\n*   `GeneratorFromWikipedia`: 从维基百科抓取文本生成。\n\n### 3. Docker 使用示例\n\n若使用 Docker，需挂载输出目录（路径必须为绝对路径）：\n\n```bash\ndocker run -v \u002Fabsolute\u002Fpath\u002Fto\u002Foutput\u002F:\u002Fapp\u002Fout\u002F -t belval\u002Ftrdg:latest trdg -c 1000 -w 5 -l cn\n```","某物流科技公司正在开发一款能自动识别快递单上手写地址的 OCR 系统，但面临训练数据严重匮乏的难题。\n\n### 没有 TextRecognitionDataGenerator 时\n- **数据采集成本极高**：团队需雇佣大量人员实地拍摄或手动标注数万张真实快递单图片，耗时数月且预算超支。\n- **样本多样性不足**：收集到的真实图片背景单一、字体固定，导致模型遇到稍微倾斜、模糊或非标准字体的单据时识别率骤降。\n- **隐私合规风险大**：直接使用包含真实姓名和电话的快递单图片进行训练，存在严重的用户隐私泄露隐患，难以通过安全审计。\n- **长尾场景覆盖难**：对于生僻字、特殊符号或极端光照条件下的样本，几乎无法通过自然采集获得足够的训练量。\n\n### 使用 TextRecognitionDataGenerator 后\n- **秒级生成海量数据**：利用其命令行或 Python 模块，几分钟内即可生成数十万张带有随机文本、不同字体及背景的合成图像，零成本解决数据荒。\n- **模拟真实复杂环境**：通过调整模糊度、倾斜角、字符间距及添加噪点参数，精准模拟快递单在运输中产生的磨损、褶皱和拍摄角度偏差，大幅提升模型鲁棒性。\n- **彻底规避隐私问题**：所有生成文本均为随机组合或来自公开词典，完全不涉及任何真实用户信息，从源头杜绝合规风险。\n- **灵活定制特殊样本**：针对生僻地名或特定格式需求，可通过自定义字典和字体目录功能，定向生成稀缺样本，填补训练盲区。\n\nTextRecognitionDataGenerator 将原本需要数月的人工数据筹备工作压缩至小时级，以低成本、高多样性的合成数据成功构建了高精度的物流 OCR 模型。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FBelval_TextRecognitionDataGenerator_3ec3ca07.png","Belval","Edouard Belval","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FBelval_abc930df.png","Sr Research Engineer@Amazon","Amazon Web Services","Canada","github@belval.org",null,"https:\u002F\u002Fgithub.com\u002FBelval",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",99.3,{"name":87,"color":88,"percentage":89},"Dockerfile","#384d54",0.7,3663,1021,"2026-04-19T12:47:46","MIT",1,"Linux, macOS, Windows","不需要 GPU。仅在使用手写文本生成功能（-hw）时需要 TensorFlow，但未明确指定必须使用 GPU 加速，CPU 亦可运行。","未说明",{"notes":99,"python":100,"dependencies":101},"该工具主要用于生成 OCR 训练数据。默认安装无需 TensorFlow；仅在启用手写文本生成功能时才需要安装 TensorFlow。支持通过 Docker 直接运行以避免环境配置问题。生成速度取决于 CPU 核心数，多核处理器可显著提升性能。","未说明 (通过 pip 安装，通常支持 Python 3.x)",[102,103,104,105],"Pillow","requests","tqdm","tensorflow (可选，仅用于手写文本生成)",[107,108,14,15,44,16],"音频","视频",[110,111,112,113,114,115,116,117],"synthetic","data","text-recognition","training-set-generator","ocr","dataset","fake","text","2026-03-27T02:49:30.150509","2026-04-20T10:22:20.709982",[121,126,131,136,141,146,151],{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},44625,"生成的阿拉伯语、印地语等非拉丁语言图片显示为方块或字母不连笔，如何解决？","这通常是因为系统缺少必要的渲染库。请尝试从源码安装 `libraqm` 包，并重新从源码编译安装 Pillow 以支持复杂文本布局。注意：目前官方主要支持中文和拉丁字母，其他语言可能需要额外的环境配置或提供可复现的样本以便排查。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F57",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},44622,"运行时报错 'OSError: unknown file format' 或提示缺少手写文本生成模块怎么办？","这通常是因为字体文件路径错误或格式不被支持。请检查传递给脚本的字体文件路径是否正确，并确保使用的是有效的 .ttf 或 .otf 字体文件。如果问题依然存在，该问题已在主分支（master）中修复，请拉取最新代码重试。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F15",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},44623,"如何生成从上到下排列的垂直文本图像（例如中文竖排）？","该功能已通过 PR #29 合并到主分支。请确保你使用的是最新版本的代码。更新后，工具将支持生成垂直方向的文本图像配置。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F28",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},44624,"生成的藏文或其他非拉丁文字图片中，字符之间出现了多余的空白间距，即使设置了 --space_width=0 也无效，如何解决？","请确保你安装的是最新版本。在终端运行 `pip3 freeze | grep trdg`，确认版本号是否为 `trdg==1.5.0` 或更高。旧版本可能存在处理特定语言字符间距的 Bug，升级即可解决。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F122",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},44626,"如何调整生成图片中单词之间的间距？","可以使用 `-sw` 或 `--space_width` 参数，该参数是应用于字体默认空格宽度的倍增器。例如，设置为 1 保持默认，设置为 0.5 减小间距，设置为 2 增大间距。该功能已合并到主分支，请更新代码后使用。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F22",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},44627,"部分中文字体无法生成某些汉字或效果不佳，有什么建议？","这通常是因为所选字体文件中缺失对应的字形（Glyph）。建议更换包含更全字符集的中文字体（如思源黑体、宋体等）。此外，同时训练英文和中文混合数据集难度较大，大多数实现通常针对单一语言优化，如果效果不佳，可以尝试分开生成或确保训练数据长度分布一致。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F8",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},44628,"如何生成类似 Oxford Synthetic Word Dataset 风格的单字图片（包含符号且样式特定）？","目前工具生成的默认样式可能与 Oxford 数据集有所不同。虽然可以通过自定义背景颜色和字体来逼近，但完全复刻其特定的渲染流程（如特定的模糊、噪点和透视变换组合）可能需要修改源码中的 `computer_text_generator.py` 或等待后续功能更新。如有具体需求，建议在 Issue 中提供详细对比以便开发者改进。","https:\u002F\u002Fgithub.com\u002FBelval\u002FTextRecognitionDataGenerator\u002Fissues\u002F30",[157,162,167,172,177,182,187,192],{"id":158,"version":159,"summary_zh":160,"released_at":161},352049,"v1.6.0","- 增加对阿拉伯语和印地语的支持\n- 修复词典缺失的 bug","2020-05-09T17:11:53",{"id":163,"version":164,"summary_zh":165,"released_at":166},352050,"v1.4.0","- 增加 --dict 参数，用于指定自定义词典（感谢 @luh0907）\n- 增加 --font_dir 参数，用于指定要使用的字体\n- 增加 --output_mask 参数，用于输出每张图像的字符级掩码","2020-03-17T15:30:39",{"id":168,"version":169,"summary_zh":170,"released_at":171},352051,"v1.3.2","重新发布 1.3.1 版本，配备更友好的 Windows 安装程序","2019-12-05T01:54:47",{"id":173,"version":174,"summary_zh":175,"released_at":176},352052,"v1.3.1","- 添加 `-cs`\u002F`--character_spacing` 选项，用于设置字符之间的间距。","2019-11-25T02:59:47",{"id":178,"version":179,"summary_zh":180,"released_at":181},352053,"v1.2.0","- 为生成器的输出添加标签","2019-09-03T18:22:11",{"id":183,"version":184,"summary_zh":185,"released_at":186},352054,"v1.1.1","- TRDG 现已作为 PyPI 包提供。可通过 `pip install trdg` 安装。","2019-08-30T18:03:05",{"id":188,"version":189,"summary_zh":190,"released_at":191},352055,"v1.0.1","- 修复随机方法名冲突\n- 修复字典或输入文件中的空行导致脚本崩溃的问题","2019-06-14T14:29:24",{"id":193,"version":194,"summary_zh":195,"released_at":196},352056,"v1.0.0","首次发布，采用版本控制以跟踪新增功能。\n\n由于这是第一个版本，因此暂无变更日志。\n\n有关使用方法，请参阅：https:\u002F\u002Ftextrecognitiondatagenerator.readthedocs.io\u002Fen\u002Flatest\u002F。","2019-05-15T22:38:43"]