Ответ 1
Я бы порекомендовал: https://github.com/tesseract-ocr/tesseract
PHP, вероятно, не лучший инструмент для работы, но вы всегда можете вызвать tesseract из PHP, если хотите, а затем проанализировать полученные вами результаты.
Я совершенно новичок в области оптического распознавания символов и нуждаюсь в дополнительной информации и советах, потому что я не смог найти, возможно ли сделать то, что мне нужно.
У меня есть следующая задача:
Возможно ли создать функцию с использованием некоторой библиотеки php OCR и выбрать только некоторые из зон с текстом?
Если нет хорошей библиотеки OCR для PHP, можете ли вы порекомендовать меня на других языках?
В приведенном ниже примере показано, что я хочу сделать (это всего лишь пример, я не пытаюсь сделать некоторые из законных манипуляций деньгами):
Это образец изображения:
И это результат (текст окружен красными прямоугольниками):
Все статьи и советы приветствуются.
Я бы порекомендовал: https://github.com/tesseract-ocr/tesseract
PHP, вероятно, не лучший инструмент для работы, но вы всегда можете вызвать tesseract из PHP, если хотите, а затем проанализировать полученные вами результаты.
Я не знаю ни одного расширения PHP, реализующего OCR, но как общий язык скриптинга с поддержкой манипуляции с изображениями, PHP - отличный выбор для интеграции других инструментов.
Tesseract и gocr - это инструменты командной строки с открытым исходным кодом для OCR, которые очень эффективны. Но, как и любой пакет OCR, скорее всего, будет работать образ, подобный тому, который вы предоставили. Если ваш PHP-код может изолировать текст от текстовых областей, то вы получите гораздо лучшие результаты. Вам все равно придется выполнять очистку данных - используйте php-проверку орфографии. Вы обнаружите, что одни и те же шаблоны неправильного чтения продолжают возникать - например, чтение "rn" как "m". Ваш PHP-код должен быть способен идентифицировать и обрабатывать большинство случаев.
Относительно проблемы определения областей текста - это зависит от того, насколько похожи документы. Если вы настроите свое приложение с помощью счетов за 1 доллар, он сможет читать серийные номера из многих из них, но он не знает, как читать другую заметку. Существует множество инструментов для распознавания изображений, и снова инструменты cli будут легко интегрироваться.
Старый вопрос, но он может помочь кому-то другому. Попробуйте ClearImage SDK.
http://www.inliteresearch.com/actions/download-proc.php?type=CI&id=
try {
$Ci = new COM("ClearImage.ClearImage");
} catch (Exception $e) {
echo $e->getMessage();
}
Вы можете использовать Irfanview 32-разрядный, а затем установить плагин KADMOS: http://irfanview.info/plugins/kadmos/
DLL Кадмоса - по крайней мере для плагина - в настоящее время 32-битная, и поэтому она работает только с 32-разрядной версией Irfanview.
После установки откройте изображение, отображающее текст, и выберите пункт меню "Параметры > Начать распознавание... (плагин)". Затем вы сможете выбрать какой-либо текст, перетащив вокруг него прямоугольник, и распознанный текст появится в окне, из которого вы можете его скопировать. Плагин предназначен только для личного (некоммерческого) использования, но позволяет узнать, подходит ли KADMOS для ваших нужд.
Если у вас много фотографий для обработки партии, вы можете приобрести лицензию на Kadmos DLL. Для технической документации см. http://www.best-ocr.com/handbuch/book/html/files.html Для вопросов лицензирования замените "files.html" на "dll_e.htm" в указанном выше URL-адресе.