предисловие
Tesseract-OCR — это бесплатный механизм распознавания текста для распознавания изображений с открытым исходным кодом.Первоначальный механизм Tesseract был разработан лабораторией Hewlett-Packard (HP), а затем внес свой вклад в индустрию программного обеспечения с открытым исходным кодом, а затем Google улучшил, изменил ошибки, оптимизировал и исправил -вышел. Он может преобразовать текст на картинке, которую вы хотите распознать, в текст в соответствии с вашей командой. На данный момент он поддерживает распознавание более 60 языков, включая упрощенный китайский, традиционный китайский, английский, японский, корейский и так далее.
Подготовка окружающей среды
1. Установите тессеракт версии 4.1.
-
ссылка для скачивания :digi.bib.uni-mannheim.de/tesseract/
Перейдите на страницу загрузки и выберите tesseract-ocr-w64-setup-v4.1.0.20190314.exe.
- В процессе установки просто все время нажимайте "Далее". Путь установки можно настроить, а языковую библиотеку проверять не нужно. В любом случае, вам нужно зайти на GitHub, чтобы потом скачать лучшую модель.
2. Скачать tessdata_best
Что такое tessdata_best?
tessdata_best — лучшая модель обучения, в которой мы позже будем использовать технологию LSTM tesseract.
- ссылка для скачивания:GitHub.com/t-gentle-act-oh…
-
После распаковки скопируйте и вставьте следующие 4 файла вКаталог Tesseract-OCR\tessdataВниз
- chi_sim.traineddata
- chi_sim_vert.traineddata
- chi_tra.traineddata
- chi_tra_vert.traineddata
3. Установите pytesseract
Чтобы использовать функциональность tesseract в коде Python,Установите pytesseract с помощью pip
-
Код теста выглядит следующим образом:
from PIL import Image import pytesseract text = pytesseract.image_to_string(Image.open(r'D:\train\1.jpg'),lang='chi_sim') print(text)
-
Ошибки, с которыми вы можете столкнуться при использовании pytesseract
raise TesseractNotFoundError() pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path
Добавлены глобальные переменные, по-прежнему подсказывает, что tesseract не установлен или отсутствует в PATH
После установки pytesseract папка pytesseract будет создана в разделе site-packges в каталоге python Lib, в папке будет найден pytesseract.py, и будет найден следующий код
tesseract_cmd = 'tesseract'
Измените tesseract_cmd = 'tesseract' на: tesseract_cmd = 'D:\Tesseract-OCR\tesseract.exe'
Указывает, что tesseract_cmd настроен с абсолютным путем, по которому вы установили tesseract, чтобы можно было найти tesseract.
4. Настройте переменные среды
Шаг 1. Добавьте путь установки в переменную Path системной среды.
Шаг 2: Добавьте tessdata (файл обученного шрифта) в системную переменную
переменная с именемTESSDATA_PREFIX
переменное значениеПуть к каталогу tessdata
После завершения настройки введите в командной строкеtesseract -v, если он выглядит так, как показано на рисунке ниже, это означает, что конфигурация переменной среды выполнена успешно.
Основные инструкции:
tesseract --version Посмотреть версию tesseract
tesseract --list-langs Просмотр языковых библиотек, содержащихся в настоящее время в tesseract
5. Скачайте jTessBoxEditor
зачем скачиватьjTessBoxEditor?
Когда tesseract обучается, требуетсяjTessBoxEditorСинтезировать образецtifдокумент
Это программное обеспечение требует среды JAVA (JRE), установка JAVA и настройка переменных среды относительно просты и не будут здесь описываться.Обратите внимание, что программное обеспечение не может работать без среды java.
ссылка для скачивания:sourceforge.net/projects/vi…
Перейдите на страницу загрузки и выберите «jTessBoxEditor-2.3.1.zip».
После распаковки дважды щелкнитеjTessBoxEditor.jarможно использовать, интерфейс выглядит следующим образом
простое преобразование
1. Процесс преобразования
Сначала подготовьте файл изображения, например 1.png.
Переключите командную строку на целевой каталог файлов изображений, например, мы конвертируем файл в 1.png (файлы изображений допускают несколько форматов), расположенный в D:\train, затем введите в командной строке
tesseract 1.jpg test -l chi_sim --psm 7
Действуйте, как показано ниже
Откройте файл txt, чтобы просмотреть вывод
2. Интерпретация команд
tesseract имя изображения имя выходного файла -l файл шрифта -psm pagesegmode
-
-l chi_sim означает использование упрощенного китайского шрифта (необходимо загрузить файл китайского шрифта, после распаковки сохранить его в каталоге tessdata, расширение файла шрифта — .raineddata, а имя файла упрощенного китайского шрифта: chi_sim.traineddata)
-
-psm 7 означает, что изображение test.png представляет собой строку текста.Этот параметр может снизить процент ошибок распознавания.По умолчанию 3
Page segmentation modes (--psm) Режим сегментации страницы (перевод) 0 Orientation and script detection (OSD) only. Только ориентация и определение сценария (OSD) 1 Automatic page segmentation with OSD. Автоматическое пейджинг с OSD 2 Automatic page segmentation, but no OSD, or OCR. (not implemented) Автоматическое разделение страниц, но без OSD или OCR 3 Fully automatic page segmentation, but no OSD. (Default) Полностью автоматическое разделение страниц, но без экранного меню (по умолчанию) 4 Assume a single column of text of variable sizes. Предположим, столбец текста переменного размера 5 Assume a single uniform block of vertically aligned text. Предположим, что это единый блок вертикально выровненного текста. 6 Assume a single uniform block of text. Предположим, что единый блок текста 7 Treat the image as a single text line. Рассматривайте изображение как одну строку текста 8 Treat the image as a single word. относиться к изображениям как к отдельным словам 9 Treat the image as a single word in a circle. Рассматривайте изображение как одно слово в круге 10 Treat the image as a single character. Рассматривайте изображения как отдельные символы 11 Sparse text. Find as much text as possible in no particular order. Разреженный текст. Найдите как можно больше текста в произвольном порядке 12 Sparse text with OSD. Разреженный текст с экранным меню 13 Raw line. Treat the image as a single text line, Рассматривайте изображение как одну строку текста
Учебный процесс LSTM
Введение
Tesseract 4содержит новыйНейронные сетиМеханизм распознавания этого механизма значительно улучшил точность распознавания (изображение документа, изображение документа) по сравнению с предыдущими версиями. Поскольку китайский языковой пакет tesseract «chi_sim» имеет низкую точность распознавания для китайских рукописных шрифтов или изображений со сложными средами, необходимо тренироваться с его собственными образцами для конкретных ситуаций, чтобы улучшить скорость распознавания.Посредством обучения вы также можете сформировать свой собственный язык библиотека.
тренировочный процесс
1. Сгенерируйте tif-файл
- использоватьjTessBoxEditorОбъедините несколько изображений для проверки, чтобы создать tif
Для выполнения последующих операций имя объединенного файла необходимо упорядочить по определенным правилам.
[lang].[fontname].exp[num].tif
- lang означает название языка
- fontname указывает имя шрифта
- num указывает серийный номер
Мы сохраняем имя файла tif как:nml.num.exp0.tif
2. Создайте бокс-файл изображения tif.
tesseract nml.num.exp3.tif nml.num.exp3 -l chi_sim batch.nochop makebox
Выполнение вышеуказанной команды создаст файл с именем nml.num.exp3.box в нашей папке.
3. Дополнить и исправить бокс-файл
Откройте предыдущее программное обеспечение JTessBoxEdit, перейдите на вкладку «Редактор блоков», загрузите файл TIF, чтобы изменить блок (файл блока и файл tif должны находиться в одной папке)
4. Создайте lstmf-файл
tesseract nml.num.exp3.tif nml.num.exp3 -l chi_sim --psm 6 lstm.train
Выполнение вышеуказанной команды создаст файл с именем nml.num.exp3.lstmf в нашей папке.
5. Извлеките файл LSTM языка
На втором этапе подготовки среды используйте файл .traineddata в tessdata_best, чтобы извлечь файл .lstm.
Скопируйте загруженный файл .traineddata в папку обучения.
combine_tessdata -e chi_sim.traineddata chisim.lstm
Выполнение вышеуказанной команды создаст файл с именем chisim.lstm в нашей папке.
6. Начать обучение LSTM
Примечание. Нам нужно создать новый текстовый файл с именем chitraing.txt и указать абсолютный путь к файлу lstmf, созданному на шаге 4 (как показано ниже).
lstmtraining --model_output="D:\Program Files (x86)\train1\output" --continue_from="D:\Program Files (x86)\train1\chisim.lstm" --train_listfile="D:\Program Files (x86)\train1\chitraing.txt" --traineddata="D:\Program Files (x86)\train1\chi_sim.traineddata"
7. Синтезируйте новый файл обученных данных
lstmtraining --stop_training --continue_from="D:\Program Files (x86)\train1\output_checkpoint" --traineddata="D:\Program Files (x86)\train1\chi_sim.traineddata" --model_output="D:\Program Files (x86)\train1\test.traineddata"
8. Переместите новый файл обучаемых данных
В папке будет сгенерирован файл с именем test.traineddata, который мы скопируем в папку tessdata Tesseract-OCR, после чего сможем использовать его как язык для распознавания текста.