Tesseract – это механизм оптического распознавания символов (OCR) с открытым исходным кодом, который широко используется для извлечения текста из изображений. Он предоставляет различные методы сегментации и режимы работы, которые могут значительно повысить точность и производительность задач распознавания текста. В этой статье мы углубимся в различные методы сегментации и режимы движка, доступные в Tesseract, а также приведем примеры кода, иллюстрирующие их использование.
- Методы сегментации:
1.1. Режимы сегментации страниц:
Tesseract предлагает различные режимы сегментации страниц, которые определяют, как механизм OCR интерпретирует и сегментирует входное изображение. Вот некоторые часто используемые режимы:
- Режим 0: только ориентация и обнаружение сценариев (OSD).
- Режим 1: автоматическая сегментация страниц с помощью экранного меню.
- Режим 3: полностью автоматическая сегментация страниц, но без экранного меню и оптического распознавания символов.
- Режим 4: предполагается, что один столбец текста имеет переменный размер.
- Режим 7: рассматривайте изображение как одну текстовую строку.
- Режим 11: Разреженный текст. Найдите как можно больше текста в произвольном порядке.
- Режим 13: необработанная линия. Рассматривайте изображение как одну текстовую строку, минуя хаки, специфичные для Tesseract.
Вы можете установить режим сегментации страницы с помощью параметра командной строки --psm
или программно в коде.
- Режимы двигателя:
2.1. Режим LSTM:
Tesseract представил новый механизм оптического распознавания символов, основанный на сетях долгосрочной краткосрочной памяти (LSTM), который значительно повышает точность, особенно для сложных скриптов и языков. Чтобы включить режим LSTM, установите для параметра--oem
значение 1.
2.2. Режим Legacy Engine:
В режиме Legacy Engine (oem=0) используется традиционный механизм OCR Tesseract, основанный на скрытых марковских моделях (HMM). Хотя он может не обеспечивать такую же точность, как LSTM, он может быть быстрее и подходит для более простых задач распознавания текста.
Примеры кода:
Давайте посмотрим, как использовать методы сегментации и режимы движка Tesseract в Python:
import pytesseract
from PIL import Image
# Set the page segmentation mode
custom_config = r'--psm 7' # Treat the image as a single text line
text = pytesseract.image_to_string(Image.open('image.png'), config=custom_config)
print(text)
# Set the engine mode to LSTM
custom_config = r'--oem 1'
text = pytesseract.image_to_string(Image.open('image.png'), config=custom_config)
print(text)
Методы сегментации и режимы ядра Tesseract обеспечивают гибкость и повышенную точность при решении задач распознавания текста. Понимая и используя эти методы, вы можете оптимизировать результаты оптического распознавания символов в соответствии с вашими конкретными требованиями. Поэкспериментируйте с различными режимами сегментации страниц и режимами механизма, чтобы найти наиболее подходящую конфигурацию для вашего случая использования.