Skip to content

How OCR works RU

Bodhi42 edited this page Nov 1, 2026 · 1 revision

🌐 English · Русский

Что происходит при вызове OCR?

Установите 0.5.1 и скачайте примеры.

Представьте, что читаете счёт. Сначала находите строки, затем читаете слова и решаете, какой абзац или колонка идёт дальше. Occular выполняет похожие этапы:

  1. Найти текст. Определить, где на странице находятся строки.
  2. Прочитать. Превратить изображение каждой строки в символы.
  3. Упорядочить. Расставить строки так, чтобы текст читался последовательно.

Для обычного скана всё это происходит за один вызов:

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: весь код виден

Поиск и распознавание строк: весь код блокнота и фактический вывод

Скачать блокнот · receipt.jpg

Что дают дополнительные функции?

Функция Когда помогает
Коррекция наклона Скан наклонён на несколько градусов
Коррекция ориентации Фотография повёрнута набок или вверх ногами
Выравнивание изгиба Строки изгибаются у корешка книги
Порядок чтения На странице две колонки
Таблицы Нужно сохранить связь позиций счёта с ячейками
Языковая модель Некоторые буквы размыты и помогает контекст слов

Анализ макета находит более крупные области: абзацы, таблицы и изображения. Это помогает организовать страницу. Эти области также можно получить отдельно.

Как искать причину ошибки

Пропущенная строка, неверно прочитанное слово и перепутанные колонки — разные проблемы. Загляните в решение проблем, чтобы выбрать, что менять сначала.

Clone this wiki locally