humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

Обновлено в августе 2026. · Руководство humanemulator.net

OCR и компьютерное зрение

Теги: OCR UI RPA

OCR нужен, когда текста нет в DOM и нет нормального UI-имени: скан, картинка, canvas, «рисуночная» кнопка. Сначала проверьте DOM и UI Automation — они стабильнее любого распознавания.

Когда OCR, а когда нет

СитуацияЧто брать
Сайт отдаёт HTML, поле в инспекторе естьDOM + wait
Десктоп с Accessible Name / AutomationIdUI
Скан PDF, штамп, подпись на картинкеOCR (этот гайд)
reCAPTCHA / hCaptcha как токен сервисасервисы капчи, не Tesseract

OCR на «всю главную» почти всегда даёт мусор. Режьте область: одно поле, один штамп, одна строка суммы.

Три объекта Vision

Начните с Tesseract, если текст печатный и контрастный. Сложные сканы и «кривые» PDF чаще лучше отдать FineReader, если он установлен. Облако — когда локального движка не хватает и данные можно отправлять наружу.

Не смешивайте три движка в одном шаге «какой сработает». Зафиксируйте один на тип документа: печатная сумма — Tesseract, многостраничный скан договора — FineReader, разовая нестандартная картинка с политикой облака — Yandex Vision.

Откуда картинка

Страница: webpage→print_screen. Печать всей страницы в PDF: print_to_pdf, затем pdffile / extract_images. Рабочий стол: windows→screenshot.

Масштаб Windows 125–150% сдвигает пиксели относительно «логических» координат UI. Снимайте после стабилизации DPI, одним и тем же масштабом, что при отладке. Не сравнивайте снимок с ноутбука 150% и сервера 100%.

Дождитесь появления области (wait), потом снимайте. Скрин «в момент navigate» ловит пустой каркас SPA.

Tesseract: рабочий порядок

recognize($path, $language="rus+eng") — с версии 7.0.57. Языки через +.

  1. Сохранить PNG обрезанной области (не весь 4K-экран).
  2. Цифры / серия документа: set_allowed_chars, например 0123456789. Лишнее выкинуть: set_denieded_chars.
  3. Доп. параметры движка: set_params.
  4. recognize по пути к файлу.
  5. Нужен прямоугольник текста для клика: get_region_by_text, куски: get_segmented_regions.
$tesseractOCR->set_allowed_chars("0123456789");
$text = $tesseractOCR->recognize("C:\\bots\\ocr\\sum.png", "eng");

Поиск: tesseract.

Порядок на практике

  1. Убедиться, что текста нет в DOM (инспектор) и нет Accessible Name (UI).
  2. Дождаться появления области — wait.
  3. Снять прямоугольник, не весь экран: print_screen страницы или screenshot окна.
  4. Для PDF-скана: сначала extract_images, потом OCR по PNG.
  5. Ограничить алфавит, вызвать recognize, записать сырой текст в лог.
  6. Парсить уже строку (regex суммы), не гонять OCR повторно на том же файле в цикле без нужды.
$webpage->print_screen("C:\\bots\\ocr\\field.png");
$tesseractOCR->set_allowed_chars("0123456789.,");
$sum = $tesseractOCR->recognize("C:\\bots\\ocr\\field.png", "eng");
$logger->info("ocr sum", $sum);

Если get_region_by_text нужен для клика — координаты должны быть в той же системе, что клик мыши (то же окно, тот же масштаб Windows). Снимок с ноутбука 150% и клик на сервере 100% не совпадут.

FineReader и Yandex Vision

fineReaderOCR — обёртка над командной строкой Fine Reader: нужен установленный Fine Reader, пути и лицензия продукта ABBYY на машине робота.

yandexVision — облако Яндекса: ключ, сеть, политика данных. Не гоните туда паспортные сканы, если договор этого не покрывает.

Капча-картинка vs сервис

Простая неискажённая картинка: типы 100/101 у recognize_captcha. Искажённая / checkbox / токен — 2captcha / AntiCaptcha. Tesseract на современном антиботе почти всегда проигрывает сервису.

Не кормите Tesseract скрином всей reCAPTCHA: это не тот движок. Капча-сервис возвращает токен, OCR возвращает «буквы с картинки» — разные задачи.

FAQ

Мусор вместо текста. Обрежьте поле, контраст, язык rus+eng vs только eng, алфавит. Скан лучше через FineReader или extract_images из PDF.

Клик по региону «мимо». Координаты от OCR и клик мыши — в одной системе отсчёта? Проверьте масштаб и что снимок с того же окна.

На CI без GUI. Скрин рабочего стола на сессии без рабочего стола пустой. OCR страницы браузера через print_screen надёжнее, чем screenshot всей Windows.

Русский текст стал кракозябрами. Язык rus или rus+eng, не только eng. Пакеты языков Tesseract должны быть установлены на машине робота.

FineReader «не находится». Объект — обёртка CLI: путь к установленному Fine Reader и лицензия ABBYY на этой машине. Без приложения метод не заменит установку.

Сбои: хаб ошибок, UI/OCR.

Все руководства · Vision