Установка tesseract на yii2. Тестируем распознание текста.

21.09.2015

Как-то запарился я с распознаванием текста. Причем нужно было бесплатно распознавать в не ограниченном количестве текст с фотографий. Гугл сразу натолкнул на "TESSERACT". Сразу скажу, что в последствии я так и не смирился с ним. Распознавал он у меня именно с фотографий текст ужасно. Причем не важно какой язык. 

Я думаю что он подойдет для распознания текста на белом листе с черными буквами. Причем шрифт думаю должен быть не ниже 12-14 px. Вообщем с моих фото из всего текста распознавалось только пару слов. На черно-белом фоне не тестировал.

Установка на Debian:

apt-get install tesseract-ocr

Затем находим папку после установки:

find / -name tessdata

Нашли: /usr/share/tesseract-ocr/tessdata

В эту папку в последующем можно скачать русский язык (по умолчанию установлен уже английский).

wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.rus.tar.gz

После чего распаковываем ФАЙЛЫ скаченного архива в найденную папку /usr/share/tesseract-ocr/ (там будут лежать файлы с английским языком, начинающиеся на eng)

Можно проверить корректность установки:

tesseract -v

Дальше для удобной работы устанавливаем класс для php "TesseractOCR".

Вот инструкция от разработчика: https://github.com/thiagoalessio/tesseract-ocr-for-php

В кратце по установке:

Добавляем в секцию "require" файла composer.json строку: "thiagoalessio/tesseract_ocr": ">= 0.2.0"

Делаем php composer update

Пользуемся:

$tesseract = new TesseractOCR(ПУТЬ К КАРТИНКЕ); // Прим. /home/user/web/test.ru/public_html/image.jpg
echo $tesseract->recognize();

Во время распознания tesseract создает файл с результатом распознавания и могут возникнуть проблемы вида "Permission denied" или "No such file or directory", означающие нехватку прав для записи либо невозможность создания файла. 

Чтобы это исключить, можно указать временную папку с правами разрешающими в нее запись.

$tesseract->setTempDir('./my-temp-dir'); // добавляем перед $tesseract = new TesseractOCR(ПУТЬ К КАРТИНКЕ);

Если даже после этого ошибка вида "No such file or directory" не пропадает, значит tesseract возможно не запускается и не создает файл с переводом. Такое я наблюдал только на Windows. Проблема с exec на Windows в том, что она не выполняет команду tesseract на перевод. На Linux подобных системах такого не наблюдалось.

 

Вот пример работы вышеописанного: Онлайн распознавание текста с tessaract

comments powered by HyperComments