Tesseract — это оптический движок распознавания символов для различных операционных систем. [5] Это бесплатное программное обеспечение , выпущенное по лицензии Apache . [1] [6] [7] Первоначально разработанное Hewlett-Packard как проприетарное программное обеспечение в 1980-х годах, оно было выпущено с открытым исходным кодом в 2005 году, а разработка была спонсирована Google в 2006 году. [8]
В 2006 году Tesseract считался одним из самых точных OCR-движков с открытым исходным кодом. [7] [9]
Движок Tesseract изначально разрабатывался как проприетарное программное обеспечение в лабораториях Hewlett-Packard в Бристоле, Англия, и Грили, Колорадо, между 1985 и 1994 годами, с внесением дополнительных изменений в 1996 году для переноса на Windows и частичной миграцией с C на C++ в 1998 году. Большая часть кода была написана на C, часть — на C++. С тех пор весь код был преобразован в компилятор C++. [ необходима цитата ] В последующее десятилетие было сделано очень мало работы. Затем он был выпущен с открытым исходным кодом в 2005 году Hewlett-Packard и Университетом Невады, Лас-Вегас (UNLV). Разработка Tesseract спонсировалась Google в 2006 году. [8]
В версии 4 добавлены движок OCR на основе LSTM и модели для многих дополнительных языков и сценариев, в результате чего общее число языков достигло 116. [10] Дополнительно поддерживаются 37 сценариев .
Версия 5 была выпущена в 2021 году после более чем двух лет тестирования и разработки. [11]
Tesseract входил в тройку лучших OCR-движков по точности распознавания символов в 1995 году. [12] Он доступен для Linux , Windows и Mac OS X. [ 6] [7]
Tesseract, вплоть до версии 2, мог принимать в качестве входных данных только изображения TIFF простого одноколоночного текста. Эти ранние версии не включали анализ макета, поэтому ввод многоколоночного текста, изображений или уравнений приводил к искаженному выводу. Начиная с версии 3, Tesseract поддерживает форматирование выходного текста, позиционную информацию hOCR [13] и анализ макета страницы. Поддержка ряда новых форматов изображений была добавлена с использованием библиотеки Leptonica. Tesseract может определять, является ли текст моноширинным или пропорционально интервальным. [7]
Первоначальные версии Tesseract могли распознавать только текст на английском языке.
В Tesseract v2 добавлено шесть дополнительных западных языков (французский, итальянский, немецкий, испанский, бразильский португальский, голландский).
Версия 3 значительно расширила языковую поддержку, включив идеографические (китайский и японский) и языки с письмом справа налево (например, арабский, иврит), а также многие другие письменности. Новые языки включают арабский, болгарский, каталонский, китайский (упрощенный и традиционный), хорватский, чешский, датский, немецкий ( письмо фрактура ), греческий, финский, иврит, хинди, венгерский, индонезийский, японский, корейский, латышский, литовский, норвежский, польский, португальский, румынский, русский, сербский, словацкий (стандартное письмо и письмо фрактура), словенский, шведский, тагальский, тамильский, тайский, турецкий, украинский и вьетнамский.
Версия 3.04, выпущенная в июле 2015 года, добавила еще 39 комбинаций языка/письма, в результате чего общее количество поддерживаемых языков превысило 100. Включены новые языковые коды: amh (амхарский), asm (ассамский), aze_cyrl (азербайджанский в кириллице), bod (тибетский), bos (боснийский), ceb (кебуанский), cym (валлийский), dzo (дзонг-кэ), fas (персидский), gle (ирландский), guj (гуджарати), hat (гаитянский и гаитянский креольский), iku (инуитский), jav (яванский), kat (грузинский), kat_old (древнегрузинский), kaz (казахский), khm (центральнокхмерский), kir (киргизский), kur (курдский), lao (лаосский), lat (латинский), mar (маратхи), mya (бирманский), nep (непальский), ori (ория), pan (пенджаби), pus (пушту), san (санскрит), sin (сингальский), srp_latn (сербский латиницей), syr (сирийский), tgk (таджикский), tir (тигринья), uig (уйгурский), urd (урду), uzb (узбекский), uzb_cyrl (узбекский язык кириллицей), yid (идиш). [14] Его можно обучить работе на других языках. [7]
Tesseract может обрабатывать текст справа налево, например, арабский или иврит, многие индийские письменности, а также CJK довольно хорошо. Показатели точности показаны в этой презентации для учебника Tesseract на DAS 2016, Санторини, автор Рэй Смит. [15]
Tesseract подходит для использования в качестве бэкэнда и может использоваться для более сложных задач OCR, включая анализ макета, с использованием фронтэнда, такого как OCRopus . [16]
Выходные данные Tesseract будут иметь очень плохое качество, если входные изображения не будут предварительно обработаны соответствующим образом: изображения (особенно скриншоты ) должны быть масштабированы таким образом, чтобы x-высота текста составляла не менее 20 пикселей, [17] любой поворот или перекос должны быть исправлены, иначе текст не будет распознан, низкочастотные изменения яркости должны быть отфильтрованы высокочастотным фильтром , иначе этап бинаризации Tesseract уничтожит большую часть страницы, а темные границы должны быть удалены вручную, иначе они будут неверно интерпретированы как символы. [18]
Tesseract запускается из интерфейса командной строки . [19] Хотя Tesseract не поставляется с графическим интерфейсом пользователя, существует множество отдельных проектов, которые предоставляют графический интерфейс для него. [20] Одним из распространенных примеров является OCRFeeder . [21] . Кроссплатформенный графический интерфейс пользователя с открытым исходным кодом — gImageReader [1]
В статье о Tesseract в июле 2007 года Энтони Кей из Linux Journal назвал его «причудливым инструментом командной строки, который выполняет выдающуюся работу». В то время он отметил: «Tesseract — это голый движок OCR. Процесс сборки немного причудлив, и движку нужны некоторые дополнительные функции (например, определение макета), но основная функция, распознавание текста, радикально лучше всего, что я пробовал из сообщества Open Source. Достаточно легко получить отличные показатели распознавания, используя только сканер и некоторые инструменты для работы с изображениями, такие как GIMP и Netpbm ». [5]
В ноябре 2020 года Брюстер Кейл из Internet Archive похвалил Тессеракт, сказав:
Tesseract сделал большой шаг вперед за последние несколько лет. Когда мы в последний раз оценивали точность, она была не такой хорошей, как фирменный OCR, но это изменилось — мы провели оценки, и она так же хороша, и может стать лучше для нашего приложения из-за ее новой архитектуры. [22]