[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-faustomorales--keras-ocr":3,"tool-faustomorales--keras-ocr":62},[4,18,26,35,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},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,2,"2026-04-08T11:23:26",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"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",[43,15,13,14],"语言模型",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},5646,"opencv","opencv\u002Fopencv","OpenCV 是一个功能强大的开源计算机视觉库，被誉为机器视觉领域的“瑞士军刀”。它主要解决让计算机“看懂”图像和视频的核心难题，提供了从基础的图像读取、色彩转换、边缘检测，到复杂的人脸识别、物体追踪、3D 重建及深度学习模型部署等全方位算法支持。无论是处理静态图片还是分析实时视频流，OpenCV 都能高效完成特征提取与模式识别任务。\n\n这款工具特别适合计算机视觉开发者、人工智能研究人员以及机器人工程师使用。对于希望将视觉感知能力集成到应用中的软件工程师，或是需要快速验证算法原型的学术研究者，OpenCV 都是不可或缺的基础设施。虽然普通用户通常不会直接操作代码，但日常生活中使用的扫码支付、美颜相机和自动驾驶系统，背后往往都有它的身影。\n\nOpenCV 的独特亮点在于其卓越的性能与广泛的兼容性。它采用 C++ 编写以确保高速运算，同时提供 Python、Java 等多种语言接口，极大降低了开发门槛。库中内置了数千种优化算法，并支持跨平台运行，能够无缝对接各类硬件加速器。作为社区驱动的项目，OpenCV 拥有活跃的生态系统和丰富的学习资源，持续推动着视觉技术的前沿发展。",86988,1,"2026-04-08T16:06:22",[14,15],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":77,"owner_email":76,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":32,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":106,"github_topics":107,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":112,"updated_at":113,"faqs":114,"releases":144},5667,"faustomorales\u002Fkeras-ocr","keras-ocr","A packaged and flexible version of the CRAFT text detector and Keras CRNN recognition model.","keras-ocr 是一个基于 Keras 和 TensorFlow 构建的开源光学字符识别（OCR）工具包，旨在为开发者提供一套开箱即用的文本检测与识别解决方案。它巧妙地将业界知名的 CRAFT 文本检测模型与 CRNN 识别模型进行整合与封装，解决了传统 OCR 方案配置复杂、依赖繁琐以及难以快速上手训练的痛点。\n\n通过提供简洁的高级 API，keras-ocr 让用户仅需几行代码即可加载预训练权重，轻松完成从图片输入到文字坐标及内容输出的全流程。它不仅支持直接调用默认模型处理常见场景，还开放了完整的训练接口，允许用户根据自身数据定制专属模型，灵活适应各种垂直领域的需求。\n\n这款工具特别适合 Python 开发者、人工智能研究人员以及需要集成 OCR 功能的工程师使用。对于希望深入理解 OCR 原理或在不依赖昂贵云服务的前提下构建本地化识别应用的技术人员而言，keras-ocr 是一个高效且透明的选择。虽然其在标点符号和多语言支持上相比大型商业云 API 尚有局限，但其开源免费、可完全掌控模型细节的特性，使其成为学术研究和轻量级工程落地的理想基石。","# keras-ocr [![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffaustomorales_keras-ocr_readme_6bf48b3e9a6d.png)](https:\u002F\u002Fkeras-ocr.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n\nThis is a slightly polished and packaged version of the [Keras CRNN implementation](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN) and the published [CRAFT text detection model](https:\u002F\u002Fgithub.com\u002Fclovaai\u002FCRAFT-pytorch). It provides a high level API for training a text detection and OCR pipeline.\n\nPlease see [the documentation](https:\u002F\u002Fkeras-ocr.readthedocs.io\u002F) for more examples, including for training a custom model.\n\n## Getting Started\n\n### Installation\n\n`keras-ocr` supports Python >= 3.6 and TensorFlow >= 2.0.0.\n\n```bash\n# To install from master\npip install git+https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr.git#egg=keras-ocr\n\n# To install from PyPi\npip install keras-ocr\n```\n\n### Using\n\nThe package ships with an easy-to-use implementation of the CRAFT text detection model from [this repository](https:\u002F\u002Fgithub.com\u002Fclovaai\u002FCRAFT-pytorch) and the CRNN recognition model from [this repository](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN).\n\n```python\nimport matplotlib.pyplot as plt\n\nimport keras_ocr\n\n# keras-ocr will automatically download pretrained\n# weights for the detector and recognizer.\npipeline = keras_ocr.pipeline.Pipeline()\n\n# Get a set of three example images\nimages = [\n    keras_ocr.tools.read(url) for url in [\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fbd\u002FArmy_Reserves_Recruitment_Banner_MOD_45156284.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fe\u002Fe8\u002FFseeG2QeLXo.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fb4\u002FEUBanana-500x112.jpg'\n    ]\n]\n\n# Each list of predictions in prediction_groups is a list of\n# (word, box) tuples.\nprediction_groups = pipeline.recognize(images)\n\n# Plot the predictions\nfig, axs = plt.subplots(nrows=len(images), figsize=(20, 20))\nfor ax, image, predictions in zip(axs, images, prediction_groups):\n    keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax)\n```\n\n![example of labeled image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffaustomorales_keras-ocr_readme_836f0350257d.jpg)\n\n## Comparing keras-ocr and other OCR approaches\n\nYou may be wondering how the models in this package compare to existing cloud OCR APIs. We provide some metrics below and [the notebook](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1FMS3aUZnBU4Tc6bosBPnrjdMoSrjZXRp\u002Fview?usp=sharing) used to compute them using the first 1,000 images in the COCO-Text validation set. We limited it to 1,000 because the Google Cloud free tier is for 1,000 calls a month at the time of this writing. As always, caveats apply:\n\n- No guarantees apply to these numbers -- please beware and compute your own metrics independently to verify them. As of this writing, they should be considered a very rough first draft. Please open an issue if you find a mistake. In particular, the cloud APIs have a variety of options that one can use to improve their performance and the responses can be parsed in different ways. It is possible that I made some error in configuration or parsing. Again, please open an issue if you find a mistake!\n- We ignore punctuation and letter case because the out-of-the-box recognizer in keras-ocr (provided by [this independent repository](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN)) does not support either. Note that both AWS Rekognition and Google Cloud Vision support punctuation as well as upper and lowercase characters.\n- We ignore non-English text.\n- We ignore illegible text.\n\n| model                                                                                                                         | latency | precision | recall |\n| ----------------------------------------------------------------------------------------------------------------------------- | ------- | --------- | ------ |\n| [AWS](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Faws_annotations.json)                               | 719ms   | 0.45      | 0.48   |\n| [GCP](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fgoogle_annotations.json)                            | 388ms   | 0.53      | 0.58   |\n| [keras-ocr](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fkeras_ocr_annotations_scale_2.json) (scale=2) | 417ms   | 0.53      | 0.54   |\n| [keras-ocr](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fkeras_ocr_annotations_scale_3.json) (scale=3) | 699ms   | 0.5       | 0.59   |\n\n- Precision and recall were computed based on an intersection over union of 50% or higher and a text similarity to ground truth of 50% or higher.\n- `keras-ocr` latency values were computed using a Tesla P4 GPU on Google Colab. `scale` refers to the argument provided to `keras_ocr.pipelines.Pipeline()` which determines the upscaling applied to the image prior to inference.\n- Latency for the cloud providers was measured with sequential requests, so you can obtain significant speed improvements by making multiple simultaneous API requests.\n- Each of the entries provides a link to the JSON file containing the annotations made on each pass. You can use this with the notebook to compute metrics without having to make the API calls yourself (though you are encoraged to replicate it independently)!\n\n_Why not compare to Tesseract?_ In every configuration I tried, Tesseract did very poorly on this test. Tesseract performs best on scans of books, not on incidental scene text like that in this dataset.\n\n## Advanced Configuration\nBy default if a GPU is available Tensorflow tries to grab almost all of the available video memory, and this sucks if you're running multiple models with Tensorflow and Pytorch. Setting any value for the environment variable `MEMORY_GROWTH` will force Tensorflow to dynamically allocate only as much GPU memory as is needed.\n\nYou can also specify a limit per Tensorflow process by setting the environment variable `MEMORY_ALLOCATED` to any float, and this value is a float ratio of VRAM to the total amount present.\n\nTo apply these changes, call `keras_ocr.config.configure()` at the top of your file where you import `keras_ocr`.\n\n## Contributing\n\nTo work on the project, start by doing the following. These instructions probably do not yet work for Windows but if a Windows user has some ideas for how to fix that it would be greatly appreciated (I don't have a Windows machine to test on at the moment).\n\n```bash\n# Install local dependencies for\n# code completion, etc.\nmake init\n\n# Build the Docker container to run\n# tests and such.\nmake build\n```\n\n- You can get a JupyterLab server running to experiment with using `make lab`.\n- To run checks before committing code, you can use `make format-check type-check lint-check test`.\n- To view the documentation, use `make docs`.\n\nTo implement new features, please first file an issue proposing your change for discussion.\n\nTo report problems, please file an issue with sample code, expected results, actual results, and a complete traceback.\n\n## Troubleshooting\n\n- _This package is installing `opencv-python-headless` but I would prefer a different `opencv` flavor._ This is due to [aleju\u002Fimgaug#473](https:\u002F\u002Fgithub.com\u002Faleju\u002Fimgaug\u002Fissues\u002F473). You can uninstall the unwanted OpenCV flavor after installing `keras-ocr`. We apologize for the inconvenience.\n","# keras-ocr [![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffaustomorales_keras-ocr_readme_6bf48b3e9a6d.png)](https:\u002F\u002Fkeras-ocr.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n\n这是对[Keras CRNN实现](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN)和已发布的[CRAFT文本检测模型](https:\u002F\u002Fgithub.com\u002Fclovaai\u002FCRAFT-pytorch)进行了一定程度的优化和封装后的版本。它提供了一个高层次的API，用于训练文本检测和OCR流水线。\n\n更多示例，包括如何训练自定义模型，请参阅[文档](https:\u002F\u002Fkeras-ocr.readthedocs.io\u002F)。\n\n## 快速入门\n\n### 安装\n\n`keras-ocr`支持Python >= 3.6和TensorFlow >= 2.0.0。\n\n```bash\n# 从master分支安装\npip install git+https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr.git#egg=keras-ocr\n\n# 从PyPi安装\npip install keras-ocr\n```\n\n### 使用\n\n该包自带一个易于使用的CRAFT文本检测模型实现（来自[这个仓库](https:\u002F\u002Fgithub.com\u002Fclovaai\u002FCRAFT-pytorch)）以及CRNN识别模型实现（来自[这个仓库](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN)）。\n\n```python\nimport matplotlib.pyplot as plt\n\nimport keras_ocr\n\n# keras-ocr会自动下载检测器和识别器的预训练权重。\npipeline = keras_ocr.pipeline.Pipeline()\n\n# 获取三张示例图片\nimages = [\n    keras_ocr.tools.read(url) for url in [\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fbd\u002FArmy_Reserves_Recruitment_Banner_MOD_45156284.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fe\u002Fe8\u002FFseeG2QeLXo.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fb4\u002FEUBanana-500x112.jpg'\n    ]\n]\n\n# prediction_groups中的每个预测列表都是由(word, box)元组组成的。\nprediction_groups = pipeline.recognize(images)\n\n# 绘制预测结果\nfig, axs = plt.subplots(nrows=len(images), figsize=(20, 20))\nfor ax, image, predictions in zip(axs, images, prediction_groups):\n    keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax)\n```\n\n![带标注的图像示例](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffaustomorales_keras-ocr_readme_836f0350257d.jpg)\n\n## 对比keras-ocr与其他OCR方法\n\n你可能会好奇，本包中的模型与现有的云端OCR API相比如何。我们在此提供一些指标，并附上用于计算这些指标的[笔记本](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1FMS3aUZnBU4Tc6bosBPnrjdMoSrjZXRp\u002Fview?usp=sharing)，该笔记本使用了COCO-Text验证集中的前1,000张图片。之所以限制在1,000张，是因为截至撰写本文时，Google Cloud的免费层级每月仅允许1,000次调用。当然，以下几点需要注意：\n\n- 这些数据仅供参考，请务必自行独立计算并验证相关指标。目前这些数据仍属于非常粗略的初稿，如有错误，请随时提交issue。尤其是，云端API提供了多种可调节的参数来优化性能，且响应结果的解析方式也可能不同。我可能在配置或解析过程中出现了某些疏漏。再次提醒，如有发现错误，请及时提出issue！\n- 我们忽略了标点符号和大小写，因为keras-ocr中默认提供的识别器（来自[这个独立仓库](https:\u002F\u002Fgithub.com\u002Fkurapan\u002FCRNN)）并不支持这两项功能。值得注意的是，AWS Rekognition和Google Cloud Vision都支持标点符号以及大小写字母。\n- 我们未考虑非英语文本。\n- 我们忽略了难以辨认的文本。\n\n| 模型                                                                                                                         | 延迟 | 精确率 | 召回率 |\n| ----------------------------------------------------------------------------------------------------------------------------- | ------ | -------- | ------- |\n| [AWS](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Faws_annotations.json)                               | 719ms   | 0.45      | 0.48   |\n| [GCP](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fgoogle_annotations.json)                            | 388ms   | 0.53      | 0.58   |\n| [keras-ocr](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fkeras_ocr_annotations_scale_2.json) (scale=2) | 417ms   | 0.53      | 0.54   |\n| [keras-ocr](https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Freleases\u002Fdownload\u002Fv0.8.4\u002Fkeras_ocr_annotations_scale_3.json) (scale=3) | 699ms   | 0.5       | 0.59   |\n\n- 精确率和召回率是基于交并比不低于50%以及文本与真实标签的相似度不低于50%来计算的。\n- `keras-ocr`的延迟值是在Google Colab上的Tesla P4 GPU上测得的。`scale`是指传递给`keras_ocr.pipelines.Pipeline()`的参数，用于决定推理前对图像进行的放大比例。\n- 云端服务提供商的延迟是通过顺序请求测量的，因此如果你同时发起多个API请求，可以获得显著的速度提升。\n- 每个条目都提供了包含每次运行注释的JSON文件链接。你可以使用该笔记本自行计算指标，而无需亲自调用API（尽管我们鼓励你独立复现）！\n\n_为什么没有与Tesseract比较？_ 在我尝试过的所有配置中，Tesseract在这项测试中的表现都非常差。Tesseract最适合处理书籍扫描件，而不是像本数据集中这样的场景文本。\n\n## 高级配置\n默认情况下，如果GPU可用，TensorFlow会尝试占用几乎所有显存，这在同时运行多个TensorFlow和PyTorch模型时可能会导致问题。通过设置环境变量`MEMORY_GROWTH`为任意值，可以强制TensorFlow仅动态分配所需的GPU内存。\n\n你还可以通过设置环境变量`MEMORY_ALLOCATED`来限制每个TensorFlow进程的显存用量，该变量的值是一个浮点数，表示分配的显存占总显存的比例。\n\n要应用这些更改，请在导入`keras_ocr`的文件顶部调用`keras_ocr.config.configure()`。\n\n## 贡献\n要参与项目开发，请先执行以下步骤。这些说明目前可能还不适用于Windows系统，但如果Windows用户有改进方案，我们将不胜感激（我目前没有Windows机器可供测试）。\n\n```bash\n# 安装本地依赖以支持代码补全等功能。\nmake init\n\n# 构建Docker容器以运行\n\n# 测试等。\nmake build\n```\n\n- 你可以启动一个 JupyterLab 服务器来尝试使用 `make lab`。\n- 在提交代码之前，可以运行检查，使用 `make format-check type-check lint-check test`。\n- 要查看文档，可以使用 `make docs`。\n\n若要实现新功能，请先提交一个问题，提出你的更改建议以供讨论。\n\n如需报告问题，请提交一个问题，并附上示例代码、预期结果、实际结果以及完整的错误回溯信息。\n\n## 故障排除\n\n- _此包正在安装 `opencv-python-headless`，但我更希望使用其他版本的 OpenCV。_ 这是由于 [aleju\u002Fimgaug#473](https:\u002F\u002Fgithub.com\u002Faleju\u002Fimgaug\u002Fissues\u002F473) 引起的。你可以在安装 `keras-ocr` 后卸载不需要的 OpenCV 版本。对于由此带来的不便，我们深表歉意。","# keras-ocr 快速上手指南\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS (Windows 支持可能受限，建议优先使用 Linux 环境或 WSL)\n*   **Python 版本**：>= 3.6\n*   **核心依赖**：TensorFlow >= 2.0.0\n*   **硬件建议**：虽然支持 CPU 运行，但为了获得最佳的检测与识别速度，推荐使用 NVIDIA GPU。\n\n## 安装步骤\n\n您可以选择通过 PyPI 直接安装稳定版，或从 GitHub 源码安装最新版。\n\n**方式一：通过 PyPI 安装（推荐）**\n\n```bash\npip install keras-ocr\n```\n\n**方式二：从 GitHub 源码安装（获取最新功能）**\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr.git#egg=keras-ocr\n```\n\n> **提示**：国内用户若下载缓慢，可添加国内镜像源加速，例如：\n> `pip install keras-ocr -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n`keras-ocr` 内置了预训练的 CRAFT 文本检测模型和 CRNN 文本识别模型。首次运行时，它会自动下载权重文件。以下是最简单的使用示例：\n\n```python\nimport matplotlib.pyplot as plt\nimport keras_ocr\n\n# 初始化流水线（自动下载预训练权重）\npipeline = keras_ocr.pipeline.Pipeline()\n\n# 准备图片列表（此处使用在线示例图片）\nimages = [\n    keras_ocr.tools.read(url) for url in [\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fbd\u002FArmy_Reserves_Recruitment_Banner_MOD_45156284.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fe\u002Fe8\u002FFseeG2QeLXo.jpg',\n        'https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fb4\u002FEUBanana-500x112.jpg'\n    ]\n]\n\n# 执行识别\n# 返回结果 prediction_groups 是一个列表，每个元素包含 (单词, 边界框坐标) 元组\nprediction_groups = pipeline.recognize(images)\n\n# 可视化结果\nfig, axs = plt.subplots(nrows=len(images), figsize=(20, 20))\nfor ax, image, predictions in zip(axs, images, prediction_groups):\n    keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax)\n\nplt.show()\n```\n\n**高级配置提示（GPU 显存优化）：**\n如果您需要同时运行多个 TensorFlow\u002FPyTorch 模型，建议在代码开头添加以下配置，以动态分配显存而非占用全部：\n\n```python\nimport os\nos.environ['MEMORY_GROWTH'] = '1' # 设置任意值即可启用动态显存分配\nimport keras_ocr\nkeras_ocr.config.configure()\n```","某电商初创公司的数据团队需要每天从数千张供应商上传的手写或打印发货单图片中，自动提取商品名称和数量以录入库存系统。\n\n### 没有 keras-ocr 时\n- 开发人员必须分别寻找并整合独立的文本检测（如 CRAFT）和识别（如 CRNN）开源代码，环境配置复杂且依赖冲突频发。\n- 面对不同光照、倾斜角度或模糊的单据图片，现有简易 OCR 方案漏检率极高，导致大量数据需要人工二次核对。\n- 缺乏统一的高层 API，每次新增一种单据格式都需要重写大量的图像预处理和后处理逻辑，开发效率低下。\n- 若转向商业云 OCR 服务，高昂的按次调用费用将严重压缩初创公司的利润空间，且存在数据隐私外泄风险。\n\n### 使用 keras-ocr 后\n- 通过 `pip install keras-ocr` 一键安装即可获取封装好的检测与识别流水线，无需手动拼凑模型，大幅降低部署门槛。\n- 利用其内置的预训练权重，keras-ocr 能精准定位并识别复杂背景下的倾斜或模糊文字，显著减少人工复核工作量。\n- 仅需几行代码调用 `pipeline.recognize()` 即可返回带有坐标框的文字结果，开发者可专注于业务逻辑而非底层算法调试。\n- 完全本地化运行消除了云端调用的延迟和网络依赖，在保护敏感商业数据的同时，将单次处理成本降为零。\n\nkeras-ocr 通过提供开箱即用的高精度 OCR 流水线，帮助团队以零成本实现了高效、私密的文档自动化录入。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffaustomorales_keras-ocr_b2d63828.png","faustomorales","Fausto Morales","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffaustomorales_dc172e68.jpg",null,"Houston, TX","https:\u002F\u002Fgithub.com\u002Ffaustomorales",[80,84,88],{"name":81,"color":82,"percentage":83},"Python","#3572A5",98.5,{"name":85,"color":86,"percentage":87},"Makefile","#427819",1.1,{"name":89,"color":90,"percentage":91},"Dockerfile","#384d54",0.4,1473,374,"2026-03-31T13:37:36","MIT","Linux, macOS","非必需（支持 CPU），若有 GPU 则 TensorFlow 会自动使用；测试环境为 Tesla P4；可通过环境变量配置显存增长或限制","未说明",{"notes":100,"python":101,"dependencies":102},"Windows 系统的开发环境支持尚不完善；默认安装 opencv-python-headless，如需其他 OpenCV 版本需手动卸载后重新安装；首次运行会自动下载预训练的文本检测和识别模型权重；可通过设置 MEMORY_GROWTH 和 MEMORY_ALLOCATED 环境变量优化多模型共存时的显存占用。",">=3.6",[103,104,105],"tensorflow>=2.0.0","opencv-python-headless","imgaug",[15],[108,109,110,111],"text-detection","keras-crnn","keras","ocr","2026-03-27T02:49:30.150509","2026-04-09T05:24:01.989475",[115,120,125,130,135,140],{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},25715,"初始化 Pipeline 时出现 'AssertionError: Error occurred verifying sha256' 错误怎么办？","该问题通常是由于预训练权重文件下载不完整或校验失败导致的。维护者已在 v0.8.5 版本中修复了大部分文件的校验问题。请尝试升级库到最新版本：`pip install --upgrade keras-ocr`。如果仍然报错，可能是由于网络问题导致文件损坏，可以尝试手动删除缓存目录（如 `~\u002F.keras-ocr\u002F`）下的相关文件后重新运行，让程序重新下载。","https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Fissues\u002F117",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},25716,"使用自定义数据集训练时，如果标签中包含空格，出现 'loss is inf' 或 'No valid path found' 错误如何解决？","这是因为模型难以区分连续多个空格（例如 \"foo    bar\"）。解决方案是在加载标签数据时，将字符串按空白字符分割后再用单个空格重组。代码示例如下：\n```python\nwith open(label_filepath) as f:\n    # 关键步骤：分割并重新组合，确保只有一个空格\n    label = ' '.join(f.read().split())\n```\n同时，请确保自定义字母表（alphabet）中包含了空格字符。","https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Fissues\u002F54",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},25717,"运行代码时报错 'annotate() missing 1 required positional argument: s' 或参数 'text' 无效怎么办？","这是由于不同版本的 Matplotlib 库对 `annotate` 函数的参数命名不一致导致的。\n- 如果你使用的是较新版本的 Matplotlib（如 3.5.1+），参数应为 `text`。\n- 如果你使用的是旧版本（如 Google Colab 上的 3.2.2），参数可能仍为 `s`。\n解决方法是检查你的 Matplotlib 版本：\n1. 若需兼容旧版，可降级 Matplotlib：`pip install matplotlib==3.0.0`\n2. 或者根据当前环境修改调用代码，确保传递正确的参数名。","https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Fissues\u002F183",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},25718,"在 Windows 或全新环境中安装 keras-ocr 后无法导入或运行 Pipeline，提示依赖冲突怎么办？","这通常是由 TensorFlow、NumPy 或 Shapely 的版本不兼容引起的。推荐的解决步骤如下：\n1. 创建一个新的 Python 3.8 环境：`conda create -n kerasocr_p3.9 python=3.8`\n2. 安装受限版本的 TensorFlow：`pip install \"tensorflow\u003C2.16\"`\n3. 安装 keras-ocr 并固定关键依赖版本以解决冲突：\n   ```bash\n   pip install keras-ocr\n   pip install numpy==1.26.4\n   pip install opencv-python==4.5.5.64\n   ```\n4. 如果在 Windows 上遇到 Shapely 相关错误，尝试降级 Shapely：`conda install shapely=1.6.4`。","https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Fissues\u002F31",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},25719,"处理图片时报错 'Unsupported depth of input image' 是什么原因？","该错误通常是因为输入图片的通道数不符合 OpenCV 或模型的要求（例如图片包含透明度通道 Alpha，即 RGBA 格式，而模型需要 RGB 格式）。\n解决方法是在将图片传入 pipeline 之前，强制将其转换为三通道格式。可以使用以下代码预处理图片：\n```python\nimport cv2\n# 读取图片并强制转换为 BGR (3 通道)\nimage = cv2.imread('path_to_image.png')\n# 如果原图是 RGBA，上述操作会自动丢弃 Alpha 通道；如果是灰度图，可能需要 cv2.cvtColor\nif len(image.shape) == 2: # 灰度图\n    image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)\nelif image.shape[2] == 4: # RGBA 图\n    image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGR)\n```","https:\u002F\u002Fgithub.com\u002Ffaustomorales\u002Fkeras-ocr\u002Fissues\u002F5",{"id":141,"question_zh":142,"answer_zh":143,"source_url":124},25720,"如何在代码中正确加载自定义数据集进行训练？","加载自定义数据集时，需要构建一个包含 (图片路径，边界框坐标，文本标签) 的列表。如果不需要边界框（仅用于识别器训练），中间项可为 None。关键在于清洗文本标签（去除多余空格）并验证字符是否在字母表内。参考代码如下：\n```python\nimport glob\nimport string\n\ndef load(label_filepath):\n    with open(label_filepath) as f:\n        # 清洗文本：去除首尾空白并将中间多个空白合并为一个\n        label = ' '.join(f.read().split())\n    image_filepath = label_filepath.replace('.txt', '.jpg')\n    return image_filepath, None, label\n\nlabels = list(map(load, glob.glob('sample_dataset\u002F*.txt')))\n# 定义字母表并验证\nalphabet = string.ascii_letters + string.digits + '* \u002F.:,+-'\nassert all(not any(t not in alphabet for t in text) for _, _, text in labels), '发现非法字符'\n```",[145],{"id":146,"version":147,"summary_zh":76,"released_at":148},163047,"v0.8.4","2020-09-13T21:05:45"]