Top AI Repos โ open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
๐ Better text detection by combining multiple OCR engines (EasyOCR, Tesseract, and Pororo) with ๐ง LLM.
| Date | Stars |
|---|---|
| 2026-07-31 | 637 |
| 2026-08-02 | 638 |
| 2026-08-06 | 638 |
Today
โ stars today
This week
โ stars this week
This month
โ stars this month
Momentum
0.0
growth rate 0.00%/day
<p align="center">
<a href="https://github.com/junhoyeo">
<img src="https://github.com/junhoyeo/BetterOCR/raw/main/.github/images/logo.png" width="256px" />
</a>
</p>
<h1 align="center">BetterOCR</h1>
<p align="center">
<a href="https://pypi.org/project/betterocr"><img alt="PyPI" src="https://img.shields.io/pypi/v/betterocr.svg?style=for-the-badge&labelColor=162246" /></a>
<a href="https://github.com/junhoyeo/betterocr/blob/main/LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue?style=for-the-badge&labelColor=162246" /></a>
<p>
> ๐ Better text detection by combining multiple OCR engines with ๐ง LLM.
OCR _still_ sucks! ... Especially when you're from the _other side_ of the world (and face a significant lack of training data in your language) โ or just not thrilled with noisy results.
**BetterOCR** combines results from multiple OCR engines with an LLM to correct & reconstruct the output.
<p align="center">
<img src="https://github.githubassets.com/assets/public-sponsor-default-9fa68986b057.png" width="64px" /><br />
<strong><a href="https://github.com/sponsors/junhoyeo">My open source work is supported by the community</a></strong><br />
Special thanks to <a href="https://www.korgiftcard.io/">(์ฃผ)ํ๊ตญ๋ชจ๋ฐ์ผ์ํ๊ถ(Korea Mobile Git Card, Inc.)</a> and others
</p>
### ๐ OCR Engines
Currently supports [EasyOCR](https://github.com/JaidedAI/EasyOCR) (JaidedAI), [Tesseract](https://github.com/tesseract-ocr/tesseract) (Google), and [Pororo](https://github.com/kakaobrain/pororo) (KakaoBrain).
- For Pororo, we're using the code from https://github.com/black7375/korean_ocr_using_pororo <br />
(Pre-processing โก๏ธ _Text detection_ with EasyOCR โก๏ธ _Text recognition_ with BrainOCR (Pororo's OCR module)).
- Pororo is used only if the language options (`lang`) specified include either ๐บ๐ธ English (`en`) or ๐ฐ๐ท Korean (`ko`). Also additional dependencies listed in <a href="https://github.com/junhoyeo/BetterOCR/blob/main/pyproject.toml#L22"><code>[tool.poetry.group.pororo.dependencies]</code></a> must be available. (If not, it'll automatically be excluded from enabled engines.)
### ๐ง LLM
Supports [Chat models](https://github.com/openai/openai-python#chat-completions) from OpenAI.
### ๐ Custom Context
Allows users to provide an optional context to use specific keywords such as proper nouns and product names. This assists in spelling correction and noise identification, ensuring accuracy even with rare or unconventional words.
### ๐ข๏ธ Resources
- Head over to [๐ฏ Examples](#-Examples) to view performace by languages (๐บ๐ธ, ๐ฐ๐ท, ๐ฎ๐ณ).
- Coming Soon: ~~box detection~~ ๐งชโ
, improved interface ๐ง, async support, and more. Contributions are welcomed.
> [!WARNING]
> This package is under rapid development ๐
<a href="https://github.com/junhoyeo">
<img src="https://github.com/junhoyeo/BetterOCR/raw/main/.github/images/arch.jpg?v=2" width="100%" />
</a>
> Architecture
## ๐ Usage (WIP)
```bash
pip install betterocr
# pip3 install betterocr
```
```py
import betterocr
# text detection
text = betterocr.detect_text(
"demo.png",
["ko", "en"], # language codes (from EasyOCR)
context="", # (optional) context
tesseract={
# Tesseract options here
"config": "--tessdata-dir ./tessdata"
},
openai={
# OpenAI options here
# `os.environ["OPENAI_API_KEY"]` is used by default
"API_KEY": "sk-xxxxxxx",
# rest are used to pass params to `client.chat.completions.create`
# `{"model": "gpt-4"}` by default
"model": "gpt-3.5-turbo",
},
)
print(text)
```
### ๐ฆ Box Detection
| Original | Detected |
|:---:|:---:|
| <img src="https://github.com/junhoyeo/BetterOCR/raw/main/.github/images/demo-1.png" width="500px" /> | <img src="https://github.com/junhoyeo/BetterOCR/raw/main/.github/images/boxes-0.png" width="500px" /> |
Example Script: https://github.com/junhoyeo/BetterOCR/blob/main/examples/detect_boxes.py (Uses OpenCV and Matplotlib to dExcerpt of 10,068 characters
Read on GitHubJunho Yeo ยท South Korea
91
2
1
Would you bet a product on this? Bounded 0โ100 and slow moving.
matched fp:3a3ea48ec146f684, topic:ocr, desc:ocr
matched fp:3a3ea48ec146f684, topic:llm
matched fp:3a3ea48ec146f684, topic:chatgpt