Tesseract

Installation

Linux and BSD/MacOS

$ pip install tesserocr
$ CPPFLAGS=-I/usr/local/include pip install tesserocr

or

$ python setup.py build_ext -I/usr/local/include

Tested on Linux and BSD/MacOS

Windows

The proposed downloads consist of stand-alone packages containing all the Windows libraries needed for execution. This means that no additional installation of tesseract is required on your system.

The recommended method of installation is via Conda as described below.

pip

Download the wheel file corresponding to your Windows platform and Python installation from simonflueckiger/tesserocr-windows_build/releases and install them via:

> pip install <package_name>.whl

USAGE

Quickstart

try:
    import Image
except ImportError:
    from PIL import Image
import pytesseract

# If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract'

# Simple image to string
print(pytesseract.image_to_string(Image.open('test.png')))

# French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'))

# Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png')))

# Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png')))

# Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))

Support for OpenCV image/NumPy array objects

import cv2

img = cv2.imread(r'/<path_to_image>/digits.png')
print(pytesseract.image_to_string(img))
# OR explicit beforehand converting
print(pytesseract.image_to_string(Image.fromarray(img))

Add the following config, if you have tessdata error like: «Error opening data file…»

tessdata_dir_config = r'--tessdata-dir "<replace_with_your_tessdata_dir_path>"'
# Example config: r'--tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\tessdata"'
# It's important to add double quotes around the dir path.

pytesseract.image_to_string(image, lang='chi_sim', config=tessdata_dir_config)

Functions

  • get_tesseract_version Returns the Tesseract version installed in the system.
  • image_to_string Returns the result of a Tesseract OCR run on the image to string
  • image_to_boxes Returns result containing recognized characters and their box boundaries
  • image_to_data Returns result containing box boundaries, confidences, and other information. Requires Tesseract 3.05+. For more information, please check the
  • image_to_osd Returns result containing information about orientation and script detection.

Parameters

  • image Object, PIL Image/NumPy array of the image to be processed by Tesseract
  • lang String, Tesseract language code string
  • config String, Any additional configurations as a string, ex:
  • nice Integer, modifies the processor priority for the Tesseract run. Not supported on Windows. Nice adjusts the niceness of unix-like processes.
  • output_type Class attribute, specifies the type of the output, defaults to . For the full list of all supported types, please check the definition of pytesseract.Output class.

INSTALLATION

Prerequisites:

  • Python-tesseract requires python 2.6+ or python 3.x
  • Install Google Tesseract OCR
    (additional info how to install the engine on Linux, Mac OSX and Windows).
    You must be able to invoke the tesseract command as tesseract. If this
    isn’t the case, for example because tesseract isn’t in your PATH, you will
    have to change the «tesseract_cmd» variable .
    Under Debian/Ubuntu you can use the package tesseract-ocr.
    For Mac OS users. please install homebrew package tesseract.

Installing via pip:

$ (env)> pip install pytesseract

Or if you have git installed:

$ (env)> pip install -U git+https://github.com/madmaze/pytesseract.git

Installing from source:

$> git clone https://github.com/madmaze/pytesseract.git
$ (env)> cd pytesseract && pip install -U .

Подборки

Армейские ПесниКлассика пианиноМузыка из рекламыДетские песни из мультфильмовМузыка для аэробикиСборник песен 70х годовДля любимого человекаКлассика в современной обработкеКлубные миксы русских исполнителей3D ЗвукДальнобойщикиЗарубежный рэп для машиныТоповые Клубные ТрекиМощные БасыДискотека 2000Песни про папуХристианские ПесниЗимняя МузыкаМузыка Для МедитацииРусские Хиты 90ХГрустная МузыкаRomantic SaxophoneТанцевальный хип-хопНовогодние песниЗарубежные хиты 80 — 90Песни про покемонаРомантическая МузыкаМотивация для тренировокМузыка для сексаМузыка в машинуДля силовых тренировокПремия «Grammy 2017»

Саундтреки

Из фильма В центре вниманияИз фильма Ван ХельсингИз сериала Дневники ВампираИз фильма Скауты против зомбииз фильмов ‘Миссия невыполнима’Из фильма Голодные игры: Сойка-пересмешница. Часть 2OST ‘Свет в океане’OST «Большой и добрый великан»из фильма ‘Новогодний корпоратив’из фильма ‘Список Шиндлера’ OST ‘Перевозчик’Из фильма Книга джунглейиз сериала ‘Метод’Из фильма ТелохранительИз сериала Изменыиз фильма Мистериум. Тьма в бутылкеиз фильма ‘Пассажиры’из фильма ТишинаИз сериала Кухня. 6 сезониз фильма ‘Расплата’ Из фильма Человек-муравейиз фильма ПриглашениеИз фильма Бегущий в лабиринте 2из фильма ‘Молот’из фильма ‘Инкарнация’Из фильма Савва. Сердце воинаИз сериала Легко ли быть молодымиз сериала ‘Ольга’Из сериала Хроники ШаннарыИз фильма Самый лучший деньИз фильма Соседи. На тропе войныМузыка из сериала «Остров»Из фильма ЙоганутыеИз фильма ПреступникИз сериала СверхестественноеИз сериала Сладкая жизньИз фильма Голограмма для короляИз фильма Первый мститель: ПротивостояниеИз фильма КостиИз фильма Любовь не по размеруOST ‘Глубоководный горизонт’Из фильма Перепискаиз фильма ‘Призрачная красота’Место встречи изменить нельзяOST «Гений»из фильма ‘Красотка’Из фильма Алиса в ЗазеркальеИз фильма 1+1 (Неприкасаемые)Из фильма До встречи с тобойиз фильма ‘Скрытые фигуры’из фильма Призывиз сериала ‘Мир Дикого Запада’из игр серии ‘Bioshock’ Музыка из аниме «Темный дворецкий»из фильма ‘Американская пастораль’Из фильма Тарзан. ЛегендаИз фильма Красавица и чудовище ‘Искусственный интеллект. Доступ неограничен»Люди в черном 3’из фильма ‘Планетариум’Из фильма ПрогулкаИз сериала ЧужестранкаИз сериала Элементарноиз сериала ‘Обратная сторона Луны’Из фильма ВаркрафтИз фильма Громче, чем бомбыиз мультфильма ‘Зверопой’Из фильма БруклинИз фильма Игра на понижениеИз фильма Зачарованнаяиз фильма РазрушениеOST «Полный расколбас»OST «Свободный штат Джонса»OST И гаснет светИз сериала СолдатыИз сериала Крыша мираИз фильма Неоновый демонИз фильма Москва никогда не спитИз фильма Джейн берет ружьеИз фильма Стражи галактикииз фильма ‘Sos, дед мороз или все сбудется’OST ‘Дом странных детей Мисс Перегрин’Из игры Contact WarsИз Фильма АмелиИз фильма Иллюзия обмана 2OST Ледниковый период 5: Столкновение неизбежноИз фильма Из тьмыИз фильма Колония Дигнидадиз фильма ‘Страна чудес’Музыка из сериала ‘Цвет черёмухи’Из фильма Образцовый самец 2из фильмов про Гарри Поттера Из фильма Дивергент, глава 3: За стеной из мультфильма ‘Монстр в Париже’из мультфильма ‘Аисты’Из фильма КоробкаИз фильма СомнияИз сериала Ходячие мертвецыИз фильма ВыборИз сериала Королек — птичка певчаяДень независимости 2: ВозрождениеИз сериала Великолепный векиз фильма ‘Полтора шпиона’из фильма Светская жизньИз сериала Острые козырьки

Пользовательские параметры

Если вы уже прочитали некоторое содержание документация по использованию Tesseract с командной строкой, Вы знаете, что есть много свойств, которые вы можете изменить. Оболочка PHP tesseract предоставляет несколько методов для наиболее часто используемых опций:

Изменить путь к исполняемому файлу

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

Сегментация страницы

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

Возможные значения для сегментации страницы:

Значение Описание
Только ориентация и обнаружение сценариев (OSD).
1 Автоматическая сегментация страницы с помощью экранного меню.
2 Автоматическая сегментация страницы, но без OSD или OCR.
3 Полностью автоматическая сегментация страниц, но без OSD. (Это значение используется по умолчанию, если ни один не предоставлен)
4 Предположим, что один столбец текста переменного размера.
5 Предположим, что один однородный блок текста вертикально выровнен.
6 Предположим, что один единый блок текста.
7 Рассматривайте изображение как одну текстовую строку.
8 Рассматривайте изображение как одно слово.
9 Рассматривайте изображение как одно слово в кругу.
10 Относитесь к изображению как к одному персонажу.

Установите языки для распознавания

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

Используйте слова из списка

Вы можете предоставить список. этот список должен быть простым текстовым файлом, содержащим список слов, которые вы хотите, чтобы tesseract считал обычными словарными словами, например ():

И добавьте это с оберткой:

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

Белый список персонажей

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

Тессеракт узнает , Это здорово, потому что на картинке кажется, что кто-то написал БОСС, но пользователь (вероятно, ребенок или кто-то с плохой каллиграфией) написал число «8055» ? Вот где белый список пригодится, в этом случае мы можем ограничить символы для распознавания только чисел, используя диапазон от 0 до 9:

Предоставление в результате ожидаемого числа «8055».

Установить значение конфигурации

Tesseract предлагает более 600 настраиваемых свойств (вы можете перечислить их, используя в консоли ) что вы можете изменить с помощью :

Если вам нужна дополнительная информация о поддерживаемых методах этой оболочки, .

Options

Language

    RTesseract.new('test.jpg', lang: 'deu')
  • eng — English
  • deu — German
  • deu-f — German fraktur
  • fra — French
  • ita — Italian
  • nld — Dutch
  • por — Portuguese
  • spa — Spanish
  • vie — Vietnamese
  • or any other supported by tesseract.

Note: Make sure you have installed the language to tesseract

Other options

  RTesseract.new('test.jpg', config_file: :digits)  # Only digit recognition

OR

  RTesseract.new('test.jpg', config_file: 'digits quiet')

BOUNDING BOX: TO GET WORDS WITH THEIR POSITIONS

  RTesseract.new('test_words.png').to_box
  => 
    { :word => 'If', :confidence=>89, :x_start=>52, :y_start=>13, :x_end=>63, :y_end=>27},
    { :word => 'you', :confidence=>96, :x_start=>69, :y_start=>17, :x_end=>100, :y_end=>31},
    { :word => 'are', :confidence=>92, :x_start=>108, :y_start=>17, :x_end=>136, :y_end=>27},
    { :word => 'a', :confidence=>92, :x_start=>133, :y_start=>8, :x_end=>147, :y_end=>35},
    { :word => 'friend,', :confidence=>95, :x_start=>158, :y_start=>13, :x_end=>214, :y_end=>29},
    { :word => 'you', :confidence=>96, :x_start=>51, :y_start=>39, :x_end=>82, :y_end=>53},
    { :word => 'speak', :confidence=>96, :x_start=>90, :y_start=>35, :x_end=>140, :y_end=>53},
    { :word => 'the', :confidence=>96, :x_start=>146, :y_start=>35, :x_end=>174, :y_end=>49},
    { :word => 'password,', :confidence=>96, :x_start=>182, :y_start=>35, :x_end=>267, :y_end=>53},
    { :word => 'and', :confidence=>96, :x_start=>51, :y_start=>57, :x_end=>81, :y_end=>71},
    { :word => 'the', :confidence=>96, :x_start=>89, :y_start=>57, :x_end=>117, :y_end=>71},
    { :word => 'doors', :confidence=>96, :x_start=>124, :y_start=>57, :x_end=>172, :y_end=>71},
    { :word => 'will', :confidence=>96, :x_start=>180, :y_start=>57, :x_end=>208, :y_end=>71},
    { :word => 'open.', :confidence=>96, :x_start=>216, :y_start=>61, :x_end=>263, :y_end=>75}
  

Поддержка языков

Как вы знаете, в мире есть другие языки, в которых используются специальные символы, поэтому Tesseract предлагает различные языковые пакеты. Например, если вы попытаетесь распознать следующее изображение без немецкого пакета:

В результате вы получите «грифон». Это совсем не так, это происходит потому, что эти персонажи немецкого языка. Чтобы решить эту проблему, вам нужно добавить немецкий пакет (обозначается как ):

Теперь, как результат, вы должны получить «grüßen», как и ожидалось. Вы можете настроить одновременную работу нескольких языков, указав несколько аргументов:

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

Usage

Initialize and re-use the tesseract API instance to score multiple
images:

from tesserocr import PyTessBaseAPI

images = 

with PyTessBaseAPI() as api:
    for img in images:
        api.SetImageFile(img)
        print(api.GetUTF8Text())
        print(api.AllWordConfidences())
# api is automatically finalized when used in a with-statement (context manager).
# otherwise api.End() should be explicitly called when it's no longer needed.

exposes several tesseract API methods. Make sure you
read their docstrings for more info.

Basic example using available helper functions:

import tesserocr
from PIL import Image

print(tesserocr.tesseract_version())  # print tesseract-ocr version
print(tesserocr.get_languages())  # prints tessdata path and list of available languages

image = Image.open('sample.jpg')
print(tesserocr.image_to_text(image))  # print ocr text from image
# or
print(tesserocr.file_to_text('sample.jpg'))

and can be used with to
concurrently process multiple images which is highly efficient.

GetComponentImages example:

from PIL import Image
from tesserocr import PyTessBaseAPI, RIL

image = Image.open('/usr/src/tesseract/testing/phototest.tif')
with PyTessBaseAPI() as api:
    api.SetImage(image)
    boxes = api.GetComponentImages(RIL.TEXTLINE, True)
    print('Found {} textline image components.'.format(len(boxes)))
    for i, (im, box, _, _) in enumerate(boxes):
        # im is a PIL image object
        # box is a dict with x, y, w and h keys
        api.SetRectangle(box, box, box, box)
        ocrResult = api.GetUTF8Text()
        conf = api.MeanTextConf()
        print(u"Box: x={x}, y={y}, w={w}, h={h}, "
              "confidence: {1}, text: {2}".format(i, conf, ocrResult, **box))

Orientation and script detection (OSD):

from PIL import Image
from tesserocr import PyTessBaseAPI, PSM

with PyTessBaseAPI(psm=PSM.AUTO_OSD) as api:
    image = Image.open("/usr/src/tesseract/testing/eurotext.tif")
    api.SetImage(image)
    api.Recognize()

    it = api.AnalyseLayout()
    orientation, direction, order, deskew_angle = it.Orientation()
    print("Orientation: {:d}".format(orientation))
    print("WritingDirection: {:d}".format(direction))
    print("TextlineOrder: {:d}".format(order))
    print("Deskew angle: {:.4f}".format(deskew_angle))

or more simply with page segmentation mode:

from tesserocr import PyTessBaseAPI, PSM

with PyTessBaseAPI(psm=PSM.OSD_ONLY) as api:
    api.SetImageFile("/usr/src/tesseract/testing/eurotext.tif")

    os = api.DetectOS()
    print("Orientation: {orientation}\nOrientation confidence: {oconfidence}\n"
          "Script: {script}\nScript confidence: {sconfidence}".format(**os))

more human-readable info with tesseract 4+ (demonstrates LSTM engine usage):

from tesserocr import PyTessBaseAPI, PSM, OEM

with PyTessBaseAPI(psm=PSM.OSD_ONLY, oem=OEM.LSTM_ONLY) as api:
    api.SetImageFile("/usr/src/tesseract/testing/eurotext.tif")

    os = api.DetectOrientationScript()
    print("Orientation: {orient_deg}\nOrientation confidence: {orient_conf}\n"
          "Script: {script_name}\nScript confidence: {script_conf}".format(**os))

Iterator over the classifier choices for a single symbol:

from __future__ import print_function

from tesserocr import PyTessBaseAPI, RIL, iterate_level

with PyTessBaseAPI() as api:
    api.SetImageFile('/usr/src/tesseract/testing/phototest.tif')
    api.SetVariable("save_blob_choices", "T")
    api.SetRectangle(37, 228, 548, 31)
    api.Recognize()

    ri = api.GetIterator()
    level = RIL.SYMBOL
    for r in iterate_level(ri, level):
        symbol = r.GetUTF8Text(level)  # r == ri
        conf = r.Confidence(level)
        if symbol:
            print(u'symbol {}, conf: {}'.format(symbol, conf), end='')
        indent = False
        ci = r.GetChoiceIterator()
        for c in ci:
            if indent:
                print('\t\t ', end='')
            print('\t- ', end='')
            choice = c.GetUTF8Text()  # c == ci
            print(u'{} conf: {}'.format(choice, c.Confidence()))
            indent = True
        print('---------------------------------------------')

Repositories

Trained models with support for legacy and LSTM OCR engine

2 Updated Oct 20, 2020

Tesseract Open Source OCR Engine (main repository)

13 Updated Oct 20, 2020

Train Tesseract LSTM with make

3 Updated Oct 13, 2020

Data used for LSTM model training

3 Updated Jul 5, 2020

Best (most accurate) trained LSTM models.

0 Updated Mar 9, 2020

Tesseract source code and API documentation

0 Updated Jan 30, 2020

User contributed (non google) data repository

0 Updated Jan 30, 2020

Various documents related to Tesseract OCR

0 Updated Jan 30, 2020

Source training data for Tesseract for lots of languages

8 Updated Nov 22, 2019

Fast integer versions of trained LSTM models

0 Updated Oct 30, 2019

Tesseract Config files

0 Updated Oct 23, 2019

Repository for tesseract testing

0 Updated Jul 9, 2019

People

This organization has no public members. You must be a member to see who’s a part of this organization.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

INSTALLATION

Prerequisites:

  • Python-tesseract requires Python 2.7 or Python 3.6+

  • Install Google Tesseract OCR
    (additional info how to install the engine on Linux, Mac OSX and Windows).
    You must be able to invoke the tesseract command as tesseract. If this
    isn’t the case, for example because tesseract isn’t in your PATH, you will
    have to change the «tesseract_cmd» variable .
    Under Debian/Ubuntu you can use the package tesseract-ocr.
    For Mac OS users. please install homebrew package tesseract.

    Note: Make sure that you also have installed and from tesseract-ocr/tessconfigs or via the OS package manager.

Installing via pip:

$ (env)> pip install pytesseract

Or if you have git installed:

$ (env)> pip install -U git+https://github.com/madmaze/pytesseract.git

Installing from source:

$> git clone https://github.com/madmaze/pytesseract.git
$ (env)> cd pytesseract && pip install -U .
$> conda install -c conda-forge pytesseract

Tesseract OCR Software GUI

Welcome to the official home page for the (a9t9) Free OCR for Windows Desktop В tool.В As the name suggests, it extracts text from image files and PDF items. It uses the open-source Tesseract OCR engine from HP/Google for OCR processing.

Why useВ (a9t9) Free OCR for Windows Desktop?

  • The application is simple to install/uninstall, and very easy to use
  • Free to use
  • 100% adware and spyware free
  • Uses the well-known Tesseract OCR engine (so essentially it is a modern Tesseract GUI)
  • You can improve and customize it – it is open source (GPL)

В If you have not done it yet, download the installer here:

30MB, runs on Win 7 and higher)

How to get started:

You can open an image or PDF file. The content of the source file will be displayed in the left window. If your document has more than one page, or if you opened multi-page documents, use the arrows at the bottom to navigate between them,

You start the OCR by clicking the green Start Ocr , and you will see the result in the right window. Output text can be saved as a text file or Word document.

Unfortunately the conversion quality is not so great. Behind the scene it uses the Tesseract open-source OCR engine. Its quality varies from language to language – so go ahead and test if it is sufficient for your needs.

Tips for better recognition results:

TesseractвЂs output will be very poor quality if the input images are not preprocessed to suit it:

  • Images (especially screenshots) must be scaled up such that the text height is at least 20 pixels.
  • Any rotation or skew must be corrected or no text will be recognized,
  • Dark borders must be manually removed, or they will be misinterpreted as characters.

Still need better text recognition results? Then try these new alternatives: 1. Online OCR – our free web-based OCR app. 2. OCR API – our free web API**, includes OCR command line examples with cURL. 3. Windows 8 OCR software – our free, open-source (GPL) Windows Store OCR app.

Both new services use a different OCR component and have much better text recognition rates than the Tesseract-based OCR desktop software on this page.

For software developers and geeks:

The (a9t9)В Free OCR for Windows Desktop tool is a graphical user interface front-end (GUI) for the Tesseract engine. It isВ written in C#/WPF and the full source code is available as ready-to-compile Microsoft Visual Studio 2013 projectВ on GitHubВ under the GPL V2 open source license. В Feedback of all kind is welcome, especially ideas on how to improve the OCR quality. In theВ Best OCR Software review on this blog the mediocre OCR performance of Tesseract was on of the Five OCR surprisesВ of this test.

How to add more languages

One of the key advantages of the Tessearct engine is the wide variety of supported В OCR languages – it even includes Esperanto! The (a9t9) Free OCR for Windows Desktop installer includes English (ENG), Spanish (SPA) and German (GER). To add more languages just follow these three steps:

  1. Download the language file you need from Google code, for example Chinese (Traditional).

  1. Un”zip” the download (first the .gz file, and then the .tar file inside). If you have no software to manage compressed archives yet, get free 7zip tool. It is a great choice.

  1. Copy the files into the tessdata language folder on your PC. You find that folder easily by opening it from inside the application. In the menu of the OCR software go to the Help > Open Language Folder – and a new Explorer window opens.

Now start the software again and the new language appears in the OCR language selection drop down as abbreviated code, e. g. ENG for English, SPA for Spanish, GER for German, POR for Portugese , CHI_TRA for traditional Chinese character support or CHI_SIM for simplified Chinese character support.

Обучаем вместе с Tesseract OCR

Tesseract — свободная платформа для оптического распознавания текста, исходники которой Google подарил сообществу в 2006 году. Если вы пишете софт для распознавания текста, то вам наверняка приходилось обращаться к услугам этой мощной библиотеки. И если она не справилась с вашим текстом (а скорее всего это именно так), то выход у вас остаётся один — научить её. Процесс этот достаточно сложный и изобилует не очевидными, а порой и прям-таки магическими действиями.

Оригинальный проект находится на гитхабе, а скачать установщик можно здесь, На момент написания статьи версия установщика была 3.05.01. Мне понадобилось немало времени на постижение всей его глубины, поэтому я решил написать что и как, вдруг забуду что-то в будущем, а также чтобы помочь другим пройти этот путь в следующий раз быстрее.

0. Что нам нужно

Tesseract собственно.

Сборки этой библиотеки есть под windows (можно скачать установщик отсюда) и под linux. Для большинства linux-дистрибутивов установить tesseract можно просто через sudo apt-get install tesseract-ocr.

Изображение с текстом для тренировки

Желательно чтобы это был реальный текст, который потом придётся распознавать

Важно, чтобы каждый символ шрифта встречался в сканированном фрагменте не менее 5 раз, а желательно — 20 раз. Использовать будем формат tiff, без сжатия, желательно не многостраничный, но можно и многостраничный

Создать многостраничный tiff можно с помощью просмотрщика IrfanView .

Между всеми символами должны быть чётко различимые промежутки. Кладём наше изображение в отдельную директорию и называем в виде . .exp .tif. Изображение может быть не одно и отличаться они должны только номером в наименовании файла. Формат наименований файлов очень важен. На файлы с неверными наименованиями утилиты, которые мы будем использовать будут ругаться ошибками сегментирования и т.п. Для определённости будем считать, что изучаем мы язык ссс и шрифт eee. Таким образом называем файл со сканом тренировочного образца ccc.eee.exp0.tif

1. Создаём и редактируем box-файл

Для того чтобы отметить символы на изображении и задать им соответствие utf-8 символам текста служат box-файлы. Это обычные текстовые файлы, в которых каждому символу соответствует строка с символом и координатами прямоугольника в пикселях. Первоначально файл генерируем утилитой из пакета tesseract: tesseract ccc.eee.exp0.tif ccc.eee.exp0 batch.nochop makebox получим файл

в текущей директории. Заглянем в него. Да, чуть не забыл, не забудьте прописать адрес установленной Tesseract-OCR в переменную среды Path в windows, иначе команда tesseract не будет работать в консоли.

Символы в начале строки полностью соответствуют символам в файле? Если это так, то тренировать ничего не нужно, вы можете спать спокойно. В нашем случае скорее всего символы не будут совпадать ни по существу ни по количеству. Т.е. tesseract со словарём по умолчанию не распознал не только символы, но и посчитал некоторые из них за два или больше. Возможно часть символов у нас «слипнется», т.е. попадёт в общую коробку и будет распознано как один. Это всё нужно поправить прежде чем идти дальше.

Работа нудная и кропотливая, но к счастью для этого есть ряд сторонних утилит. Я например пользовался jTessBoxEditor. Открываем им изображение, box-файл с таким же именем он сам подтянет (главное чтобы всё лежало в одной папке).

Переходим на вкладку Box Editor перетаскиваем туда наше изображение, либо жмем Open . Поигравшись немного с вкладками Box Coordinates , где с помощью кнопок Merge , Split , Insert , Delete можно соответственно объединить, разделить, добавить или удалить символы, дабы привести все в соответствии с изображением справа. Во вкладке Box View можно поправить координаты распознаваемого символа.

Прошло полдня… Вы с чувством глубокого удовлетворения закрываете jTessBoxEditor (вы ведь не забыли сохранить результат, верно?) и у вас есть корректный box-файл. Теперь можно переходить к следующему этапу.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий