Repository navigation
How OCR works RU
🌐 English · Русский
Установите 0.5.1 и скачайте примеры.
Представьте, что читаете счёт. Сначала находите строки, затем читаете слова и решаете, какой абзац или колонка идёт дальше. Occular выполняет похожие этапы:
- Найти текст. Определить, где на странице находятся строки.
- Прочитать. Превратить изображение каждой строки в символы.
- Упорядочить. Расставить строки так, чтобы текст читался последовательно.
Для обычного скана всё это происходит за один вызов:
from occular import ocr
print(ocr("receipt.jpg"))Рамки найденных строк помогают отличить пропущенную строку от ошибки распознавания. В этом примере deskew отключён, чтобы рамки можно было нарисовать поверх исходного изображения:
from occular import ocr_detailed
lines = ocr_detailed("receipt.jpg", deskew=False)
print("Lines found:", len(lines))
for line in lines[:4]:
print(line["text"])Фактический вывод:
Lines found: 44
СУПЕРМАРКЕТ «ВОЛГА-МАРКЕТ»
ул. Белинского, 32
ООО «Волга-Ритейл»
ИНН 5260998741
Вторая ячейка блокнота рисует в Matplotlib контуры первых четырёх строк с увеличением шапки чека. Весь код отрисовки виден в запуске ниже.

Детекция находит положение текста на изображении; распознавание присваивает текст каждой найденной области. Даже в правильных рамках слова могут быть прочитаны неверно.
Открыть настоящий запуск в Jupyter: весь код виден

| Функция | Когда помогает |
|---|---|
| Коррекция наклона | Скан наклонён на несколько градусов |
| Коррекция ориентации | Фотография повёрнута набок или вверх ногами |
| Выравнивание изгиба | Строки изгибаются у корешка книги |
| Порядок чтения | На странице две колонки |
| Таблицы | Нужно сохранить связь позиций счёта с ячейками |
| Языковая модель | Некоторые буквы размыты и помогает контекст слов |
Анализ макета находит более крупные области: абзацы, таблицы и изображения. Это помогает организовать страницу. Эти области также можно получить отдельно.
Пропущенная строка, неверно прочитанное слово и перепутанные колонки — разные проблемы. Загляните в решение проблем, чтобы выбрать, что менять сначала.
Occular-OCR 0.5.1 · English · Русский · Report a problem / Сообщить о проблеме