Интеграция Tesseract OCR: распознавание текста под ключ

Ваши операторы вручную перепечатывают данные с бланков, счетов и накладных? Ошибки при ручном вводе стоят времени и денег. Мы интегрируем **Tesseract OCR** — открытый движок распознавания текста от Google (<cite>[Wikipedia](https://en.wikipedia.org/wiki/Tesseract_(software))</cite>) — в вашу систему

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1314
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1012
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1275
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    727
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1018

Ваши операторы вручную перепечатывают данные с бланков, счетов и накладных? Ошибки при ручном вводе стоят времени и денег. Мы интегрируем Tesseract OCR — открытый движок распознавания текста от Google (Wikipedia) — в вашу систему. Результат: текст извлекается автоматически с точностью до 98% на типовых документах. И всё это локально, без риска утечки данных в облака. При объёмах свыше 10 000 страниц в месяц Tesseract OCR на 40% дешевле облачных API.

Рассмотрим, как мы решаем типовые проблемы при внедрении OCR и что нужно для бесшовной интеграции.

Какие проблемы решаем?

Главная сложность — вариативность входных документов. Разрешение, угол поворота, тип шрифта, фоновые помехи — всё это снижает точность распознавания. Особенно остро стоит вопрос смешанных языков: русский + английский, русский + цифры. Мы сталкивались с проектом, где клиент обрабатывал медицинские полисы: сканы были разного качества, а в тексте встречались латинские аббревиатуры. Базовая настройка давала 70% точности. После подбора PSM и предобработки точность достигла 94%. Согласно исследованию эффективности OCR, правильная предобработка изображений повышает точность на 15–25%.

Ещё одна проблема — LSTM engine в Tesseract 5 требует корректного выбора режима сегментации страницы (PSM). Неправильный PSM приводит к потере половины текста.

Как мы интегрируем Tesseract

Мы используем Python-библиотеку pytesseract. Для базового распознавания достаточно нескольких строк:

import pytesseract from PIL import Image import cv2 import numpy as np # Базовое распознавание def extract_text(image_path: str, lang: str = 'rus') -> str: image = Image.open(image_path) text = pytesseract.image_to_string(image, lang=lang, config='--psm 3') return text # Детальный вывод с позициями def extract_with_positions(image_path: str, lang: str = 'rus') -> list[dict]: image = Image.open(image_path) data = pytesseract.image_to_data( image, lang=lang, output_type=pytesseract.Output.DICT ) results = [] for i, text in enumerate(data['text']): if text.strip() and int(data['conf'][i]) > 0: results.append({ 'text': text, 'confidence': int(data['conf'][i]), 'x': data['left'][i], 'y': data['top'][i], 'w': data['width'][i], 'h': data['height'][i] }) return results 

Это основа. Для продакшена мы добавляем предобработку и тюнинг параметров.

Почему локальный OCR выгоднее облачного?

Облачные сервисы (Google Cloud Vision, Azure OCR) требуют передачи данных наружу и стоят дорого при больших объёмах. Tesseract работает на вашем сервере — никаких затрат на API, никаких ограничений по количеству запросов. При грамотной настройке он не уступает по качеству коммерческим аналогам. Кроме того, все данные остаются внутри периметра, что критично для медицинских и финансовых организаций. Мы гарантируем конфиденциальность обработки. Использование локального Tesseract OCR позволяет сэкономить до 60% бюджета на распознавание по сравнению с облачными сервисами.

Как улучшить точность распознавания?

Первый шаг — выбор правильного PSM (Page Segmentation Mode). Ниже — популярные режимы:

PSM Описание Использование
0 Только ориентация Редко
3 Авто (default) Общий текст
6 Одиночный блок текста Абзацы
7 Одна строка Поля форм
8 Одно слово Штампы, печати
11 Разреженный текст Накладные, счета
13 Raw line Технические строки

Второй шаг — предобработка изображения. Мы применяем увеличение разрешения, перевод в оттенки серого, адаптивную бинаризацию и морфологию. Пример функции:

def prepare_for_tesseract(image: np.ndarray, scale_factor: float = 2.0) -> np.ndarray: # Upscale — Tesseract работает лучше при 300+ DPI h, w = image.shape[:2] image = cv2.resize(image, (int(w * scale_factor), int(h * scale_factor)), interpolation=cv2.INTER_CUBIC) # Grayscale gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Adaptive threshold — лучше для неравномерного освещения processed = cv2.adaptiveThreshold( gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2 ) # Dilate для улучшения соединений символов kernel = np.ones((1, 1), np.uint8) processed = cv2.dilate(processed, kernel, iterations=1) processed = cv2.erode(processed, kernel, iterations=1) return processed 

Для русского языка мы дополнительно настраиваем конфигурацию:

custom_config = ( '--psm 6 ' '--oem 3 ' # LSTM engine '-c preserve_interword_spaces=1 ' '-c tessedit_char_whitelist=' 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя' 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .,!?-:;' ) text = pytesseract.image_to_string(image, lang='rus+eng', config=custom_config) 

Если в документах встречаются специфические термины (медицинские, технические), мы создаём кастомный словарь:

# Создание custom .traineddata combine_tessdata -u rus.traineddata rus. # Добавляем кастомный словарь в rus.user-words echo "ЭКГ МРТ КТ УЗИ" > rus.user-words 

Точность на разных сценариях:

Сценарий Точность Скорость
Печатный текст, хорошее качество 95–98% 0.5–2 сек/страница
Печатный текст, сканы среднего качества 85–92% 1–3 сек/страница
Смешанный текст (рус+eng) 88–95% 1–3 сек/страница

Процесс работы

  1. Анализ документов. Вы предоставляете 10-20 типовых образцов. Мы оцениваем качество, язык, шрифты.
  2. Подбор конфигурации. Выбираем PSM, настройки предобработки, список языков.
  3. Интеграция. Встраиваем код в вашу систему, пишем документацию.
  4. Тестирование. Проверяем на выборке документов, корректируем.
  5. Деплой. Разворачиваем решение на вашем сервере.
  6. Обучение. Проводим сессию для ваших разработчиков.

Что входит в работу

  • Код интеграции на Python (pytesseract) с готовыми функциями
  • Конфигурационные файлы для PSM и предобработки
  • Инструкция по развертыванию в вашей среде (Docker / bare metal)
  • Отчёт о тестировании на ваших документах
  • Обучение команды (2 онлайн-сессии)
  • Гарантийная поддержка 30 дней

Сроки и стоимость

Задача Срок
Базовая интеграция Tesseract 3–5 дней
Оптимизация под конкретные документы 1–2 недели
Custom training для специальных шрифтов 2–4 недели

Стоимость рассчитывается индивидуально в зависимости от объёма документов и сложности. Свяжитесь с нами для оценки вашего проекта. Получите консультацию по интеграции Tesseract OCR уже сегодня — мы подберём оптимальную конфигурацию под ваш бизнес.

Почему выбирают нас

Более 5 лет мы внедряем OCR-решения в бизнес-процессы. Выполнили 50+ проектов для финансовых, медицинских и логистических компаний. Гарантируем качество распознавания не ниже 95% на стандартных документах. Предоставляем полный цикл — от анализа до поддержки.