Tesseract что это за программа

Распознавание текста с картинки. Python Tesseract ORC + OpenCV

Сегодня мы с вами поговорим на тему языка Python и рассмотрим пример создания крутого приложения. Наша программа будет способна считывать текст из любой фотографии.

Что сделаем за урок?

Мы с вами рассмотрим пример работы с библиотекой Tesseract ORC и на её основе построим приложение для распознавания текста с фото.

Что забавно, так это возраст библиотеки. Tesseract — является программой, разрабатывавшейся компанией Hewlett-Packard с середины 1980-х по середину 1990-х годов. Затем программа около 10 лет «пролежала на полке» и в августе 2006 года её купила Google. Google открыл исходный код под лицензией Apache 2.0 для продолжения разработки.

На сегодняшний день библиотека является наиболее крутым решением, если вам требуется считать данные из какого-либо фото.

Установка библиотеки

Первое, что необходимо сделать, то это выполнить установку Tesseract ORC. Установка Tesseract удобна на Маке и Линукс. Если вы на Windows, то придется выполнить на одно движение больше.

С самой программой вам никак не придется взаимодействовать, а лишь скопировать её расположение. Обычно оно устанавливается на диск С в Program files. Найдите вашу программу и скопируйте путь к этой папке.

Разработка проекта

Полная разработка проекта показывается в видео. Вы можете просмотреть его ниже:

Источник

Создаём приложение на С++ с использованием Tesseract-ocr, MinGW и напильника

Так случилось, что понадобилось нам внедрить в своё приложение возможность распознавания текста, поэтому начались поиски подходящей библиотеки. В конечном счёте остановились на двух опенсорсных проектах CuneiForm Linux и Tesseract-ocr. Внимательное изучение проекта CuneiForm показало, что это просто порт продукта компании Cognitive Technologies, исходники которого они открыли в 2008 году и благополучно забили получив свою порцию внимания (во всяком случае такое сложилось впечатление). По сути весь проект состоял в портировании, а о новых фичах даже речи не шло. Всё это, вкупе с печальной новостью на страничке проекта, заставило нас отказаться от CuneiForm в пользу Tesseract, который в данный момент принадлежит Google, что даёт некоторую уверенность в будущем проекта. Под катом опыт сборки Tesseract-ocr под Windows с использованием MinGW и последующего создания простейшего приложения на С++.

Подготовка

Я постараюсь описать всё что нужно сделать, чтобы собрать tesseract с минимальной головной болью, при этом постараюсь не углубляться в банальности.

Установка и настройка MinGW

Скачиваем и устанавливаем последний доступный инсталлятор с официального сайта проекта, не забываем выставить галочки для C++ Compiler и MSYS Basic System. После этого заходим в MinGW Shell и устанавливаем дополнительные пакеты, которые понадобятся нам позже, следующей командой:
mingw-get install mingw32-automake mingw32-autoconf mingw32-autotools mingw32-libz
Сразу заметим, что в /mingv примонтирован каталог, в который установлен MinGW, это нам также пригодится при сборке библиотек.

Устанавливаем библиотеку Leptonica

Tesseract-ocr использует для работы с изображениями библиотеку Leptonica, я опишу как собрать и установить её из исходных кодов, которые можно взять с официального сайта, но перед этим нам нужно установить библиотеки libJpeg, libPng и libTiff, которые в свою очередь использует Leptonica (сделаем это также сборкой из исходных кодов).

Сборка libJpeg
Сборка libPng

Также скачиваем архив с исходными кодами со странички проекта и распаковываем в каталог D:\lib\png (Вы, естественно, можете выбрать другой). Возвращаемся в MinGW Shell и повторяем то же самое, что и для libJpeg.

Сборка libTiff

Архив с исходными кодами берём с рекомендуемого ftp и распаковываем в D:\lib\tiff. И собираем аналогично предыдущим двум.

Сборка Leptonica

Архив с исходными кодами у нас уже есть, осталось его распаковать в D:\lib\leptonica. А дальше впору вспомнить про напильник, сборка с поддержкой Zlib не удастся из-за небольшого бага, который впрочем легко исправить самостоятельно. Для этого открываем файл src/pngio.c, расположенный в каталоге, куда мы распаковали исходники Leptonica. Там необходимо найти строку #include «png.h» и вставить после неё директивы, чтобы получилось примерно вот так:
#include «png.h»

#ifdef HAVE_LIBZ
#include «zlib.h»
#endif

Сборка и установка Tesseract-ocr

Теперь у нас есть все необходимые зависимости. Скачивать исходники на этот раз будем из транка svn разработчиков:
svn checkout ht tp://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr-read-only
*пробел между t преднащначен исключительно для хабрапарсера, уберите его.

Простое приложение

Я приведу код целиком, так как он весьма мал:
#include
#include
#include
#include

Источник

Распознавание текста на картинке с помощью tesseract на Kotlin

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа

Ни для кого не секрет, что Python прочно занял первенство в ML и Data Science. А что если посмотреть на другие языки и платформы? Насколько в них удобно делать аналогичные решения?

К примеру, распознавание текста на картинке.

Среди текущих решений одним из наиболее распространённым инструментом является tesseract. В Python для него существует удобная библиотека, а для первоначальной обработки изображений, как правило, используется OpenCV. Для обоих этих инструментов есть исходные C++ библиотеки, поэтому их также возможно вызывать и из других экосистем. Попробуем это сделать в jvm и, в частности, на Kotlin.

Несколько слов о Kotlin. У него есть много удобных вещей для Data Science. В совокупности с экосистемой jvm получается «статически типизированный Python на jvm». А не так давно ещё появилась возможность использовать Kotlin вместе с Apache Spark.

Первым делом установим tesseract. Его нужно установить отдельно на систему, согласно описанию из wiki. После установки можно проверить, что tesseract работает следующим образом:

После этого можно подключить tesseract в jvm и сравнить результат работы с нативным вызовом. Для этого подключим библиотеку:

После подключения библиотеки доступ к tesseract становится простым. Вызов той же команды из примера выше будет выглядеть следующим образом:

После всех настроек можно попробовать запустить распознавание для того же файла и результат должен полностью соответствовать вызову из командной строки.

Перейдём теперь к обработке изображений с OpenCV. В Python для работы с ней не требуется ставить каких-либо дополнительных инструментов, кроме пакета в pip. В описании OpenCV под java указан порядок установки, когда всё ставится отдельно. Для самой jvm-экосистемы подход, когда требуются установки каких-либо нативных библиотек, не совсем привычен. Чаще всего если зависимости требуется какие-либо дополнительные библиотеки, то либо она сама их скачивает (как, например, djl-pytorch), либо при подключении через систему сборки внутри себя уже содержит библиотеки под различные операционные системы. К счастью, для OpenCV есть такая сборка, которой и воспользуемся:

Перед началом работы с OpenCV потребуется подгрузить нативные библиотеки через:

После чего можно использовать все доступные инструменты. Как, например, конвертация изображения в чёрно-белый цвет:

Как вы уже обратили внимание, аргументом для OpenCV выступает Mat, который представляет из себя основной класс-обёртку вокруг изображения в OpenCV в jvm, похожий на привычный BufferedImage.

Сам экземпляр Mat можно получить привычным для Python кода вызовом imread :

В таком виде экземпляр можно дальше передавать в OpenCV и проделывать с ним различные манипуляции. Но для Java общепринятым является BufferedImage, вокруг которого, как правило, уже может быть выстроен pipeline загрузки и обработки изображения. В связи с чем возникает необходимость конвертации BufferedImage в Mat:

И обратной конвертации Mat в BufferedImage:

В частности, тот же tesseract в методе doOCR поддерживает как файл, так и BufferedImage. Используя вышеописанные преобразования, можно вначале обработать изображения с помощью OpenCV, преобразовать Mat в Bufferedimage и передать подготовленное изображение на вход tesseract.

Попробуем теперь на практике собрать рабочий вариант приложения, который сможет найти текст на следующей картинке:

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа

В результате будет найден только разный «мусор»:

Если внимательней посмотреть на изображение, то можно увидеть, что шрифт для текста белый, а значит, можно попробовать использовать threshold вместе с последующей инверсией, чтобы оставить текст только на картинке:

Пробуем следующие преобразования:

После них посмотрим на картинку в результате (которую можно сохранить в файл через Imgcodecs.imwrite(«output.jpg», mat) )

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа

Как видно, весь текст успешно распознался.

Итоговый код по обработке изображения будет выглядеть следующим образом:

Если сравнить полученный код с Python-версией, то разница будет минимальная. Производительность тоже должна быть практически сравнимой (за исключением, быть может, чуть больших преобразований изображения между Mat и BufferedImage).

Преимущество Python в рамках текущего примера будет только в бесшовной передаче изображений между OpenCV и tesseract. Экосистема Python сама по себе удобна тем, что все библиотеки общаются одними и теми же типами.

В jvm-экосистеме тоже есть свои преимущества. Это и статическая типизация, и многопоточность, и общая скорость работы вместе с наличием огромного количества инструментов под любые требования. Может, текущий пример не сильно раскрывает все преимущества, но, как минимум, он демонстрирует, что для данной задачи решение на jvm и Kotlin получается ничуть не сложнее.

Python на текущий момент, беcспорно, лидер в ML. И в первую очередь все инструменты и библиотеки появляются на нём. Тем не менее, в других экосистемах можно использовать те же инструменты. Особенно учитывая, что если что-то есть под Python, то должна быть и нативная библиотека, которую можно легко подключить.

Надеюсь, что в этой статье вы нашли для себя что-нибудь полезное и новое. Спасибо за внимание, и напоследок несколько полезных ссылок:

Источник

Tesseract что это за программа

Tesseract OCR for Windows mobile

Версия обновилась до 2.04

http://groups.google.com/group/tesseract-ocr
Распознает текст. Построена на нейронных сетях. Разрабатывалась IBM в 1992г.

Возможностей не так много, за то опенсорс. Для распознавания кусков текста подойдет.Прога консольная. Поддерживает несколько форматов изображения tiff, png, jpg, bmp. Может быть из этого получится Finereader на кпк.

Используется так:
tesseract eurotext.tif euro.txt

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа

Собирал VisualStudio Express 2008 c минимальными исправлениями.
Тесты показали, что распознавание картинки 1280х800 на КПК IPAQ hx2490, работающем на частоте 520Мгц происходит за 24с.
А что ВЫ от кпк ожидали?

Основные идеи такие:
-Сделать простенький графический интерфейс.
-Сделать просмотр картинки и результата.
-Сделать выбор области распознавания.
-Сделать настройку контраста, яркости, интенсивности изображения, ластик.

-Исходник
-исполняемый файл
-DLL прилагаются.

Свежая сборка для тестирования: Tesseract (Пост #5704289)

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программаTESSERACT_SRC_CE.rar ( 688.82 КБ )
Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программаTESSERACT_exe.rar ( 355.12 КБ )
Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программаTESSDLL.rar ( 359.21 КБ )

Источник

Tesseract

3.02 / 28 октября 2012 [1]

Tesseract (англ. тессеракт ) — свободная компьютерная программа для распознавания текстов, разрабатывавшаяся Hewlett-Packard с середины 1980-х по середину 1990-х, а затем 10 лет «пролежавшая на полке». В августе 2006 г. Google купил её и открыл исходные тексты под лицензией Apache 2.0 [2] для продолжения разработки. В настоящий момент программа уже работает с UTF-8, поддержка языков (включая русский с версии 3.0 [3] [4] ) осуществляется с помощью дополнительных модулей.

Содержание

История

Ядро программы Tesseract было разработано в Бристольской лаборатории Hewlett Packard и в Hewlett Packard Co, Greeley штат Колорадо в 1985—1994 годах. В 1996 были проведены значительные изменения и подготовлен порт для Windows. Затем, с 1998 года — частичная миграция с Си на Си++. Значительная часть кода изначально написана на Си, но проводились доработки для совместимости с Си++ компиляторами. [2]

В настоящее время Tesseract 3.0 собирается под Linux с GCC 2.95 и старше и под Windows с Visual C++ 2008 Express и старше (поддержка Visual C++ 6 была удалена в версии 3.0 [3] ). Код на C++ часто использует множество макросов для реализации контейнеров.

Графические интерфейсы для Tesseract

Зависимости

Интересные факты

Программа Tesseract используется менеджером загрузок Tucan Manager для распознавания текстов в тестах CAPTCHA.

Примечания

Ссылки

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа

Cognitive Forms • Expervision • FineReader • Microsoft Office Document Imaging • OmniPage • Readiris • ReadSoft • SimpleOCR • SmartScore • ViewWise

Полезное

Смотреть что такое «Tesseract» в других словарях:

Tesseract — bezeichnet: eine Texterkennungssoftware, siehe Tesseract (Software) eine englische Band, siehe Tesseract (Band) ein niederländisches Technolabel, siehe Tesseract Records Siehe auch: Tesserakt … Deutsch Wikipedia

tesseract — 1888, from TESSERA (Cf. tessera) + Gk. aktis “ray” (see ACTINO (Cf. actino )) … Etymology dictionary

Tesseract — For other uses, see Tesseract (disambiguation). Tesseract 8 cell 4 cube Schlegel diagram Type Convex regular 4 polytope … Wikipedia

Tesseract — Pour le logiciel de reconnaissance optique de caractères, voir Tesseract (logiciel). Tesseract Hypercube (8 cellules) Diagramme de Schlegel … Wikipédia en Français

Tesséract — Hypercube Pour les articles homonymes, voir Hypercube (homonymie). Une projection d un hypercube (dans une image bi dimensionnelle) Un hypercu … Wikipédia en Français

tesseract — noun Etymology: Greek tessares four + aktis ray more at actin Date: 1888 the four dimensional analogue of a cube … New Collegiate Dictionary

tesseract — /tes euh rakt /, n. the generalization of a cube to four dimensions. [1885 90; Universalium

tesseract — noun a) The four dimensional analogue/analog of a cube; a four dimensional content (which see) bounded by eight cubes (in the same way as a cube is a volume bounded by six squares and a square is an area by four line segments) … Wiktionary

tesseract — tes·ser·act … English syllables

tesseract — /ˈtɛsərækt/ (say tesuhrakt) noun the equivalent in four spatial dimensions of a cube; hypercube. … Australian-English dictionary

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Tesseract что это за программа. Смотреть фото Tesseract что это за программа. Смотреть картинку Tesseract что это за программа. Картинка про Tesseract что это за программа. Фото Tesseract что это за программа Программное обеспечение для оптического распознавания символов
Свободное