Установите Tesseract OCR 5 на Rocky Linux 8 | AlmaLinux 8 |
В повседневной деятельности мы сталкиваемся с ситуациями, когда нам необходимо извлечь текст из документов. Именно здесь на помощь приходит программное обеспечение OCR. OCR (оптическое распознавание символов) — это технология, используемая для распознавания текста на изображениях или отсканированных документах. Tesseract — одно из программ этой категории.
Tesseract — это бесплатная программа оптического распознавания символов с открытым исходным кодом, первоначально разработанная компанией Hewlett-Packard. Позже в 2005 компания HP предоставила открытый исходный код, а с 2006 года разрабатывает его в Google. Текущая стабильная версия Tesseract 5.-0 была выпущена 30 ноября 2021 года. В этом выпуске есть несколько улучшений и исправлений ошибок. . Некоторые из особенностей Tesseract OCR 5 включают в себя:
- Добавлена поддержка Apple Silicon.
- Низкое потребление памяти по сравнению с предыдущими версиями
- Поддержка использования чисел с плавающей запятой для обучения модели LSTM и распознавания текста.
В этом руководстве представлена подробная иллюстрация того, как установить Tesseract OCR 5 на Rocky Linux 8 | AlmaLinux 8.
Давайте погрузимся!
Установите Tesseract OCR 5 на Rocky Linux 8 | AlmaLinux 8
Существует несколько методов, которые можно использовать для установки Tesseract OCR 5 в Rocky Linux 8 | AlmaLinux 8. В этом руководстве мы рассмотрим два метода, приведенных ниже:
- Сборка из исходного кода
- Использование контейнеров Docker/Podman
Способ 1. Установите Tesseract OCR 5 в Rocky Linux 8 | AlmaLinux 8 из исходного кода.
На этом этапе мы начнем с установки необходимых пакетов для сборки Tesseract OCR 5 из исходного файла.
sudo yum install git automake make autoconf libtool clang gcc-c++.x86_64
Требуется больше зависимостей лептоники.
sudo yum install zlib zlib-devel libjpeg libjpeg-devel libwebp libwebp-devel libtiff libtiff-devel libpng libpng-devel
Переместите исполняемые файлы на свой путь.
cd /usr/local/lib
sudo cp /usr/lib64/libjpeg.so.62 .
sudo cp /usr/lib64/libwebp.so.7 .
sudo cp /usr/lib64/libtiff.so.5 .
sudo cp /usr/lib64/libpng16.so.16 .
Скомпилируйте Leptonica из исходников. Начните с клонирования его из git, как показано ниже.
cd ~
git clone https://github.com/DanBloomberg/leptonica.git --depth 1
cd leptonica
Теперь скомпилируйте и установите Leptonica.
./autogen.sh
./configure --prefix=/usr/local --disable-shared --enable-static --with-zlib --with-jpeg --with-libwebp --with-libtiff --with-libpng --disable-dependency-tracking
make
sudo make install
sudo ldconfig
После установки Leptonica мы продолжим и загрузим Tesseract OCR 5 с Github. Вы также можете извлечь файл с помощью Wget:
cd ~
VER=$(curl -s https://api.github.com/repos/tesseract-ocr/tesseract/releases/latest|grep tag_name | cut -d '"' -f 4)
wget https://github.com/tesseract-ocr/tesseract/archive/refs/tags/$VER.tar.gz -O tesseract-5.tar.gz
Распакуйте архив.
tar zxvf tesseract-5.tar.gz
Перейдите в извлеченный каталог.
cd tesseract-*/
Теперь скомпилируйте Tesseract OCR 5.
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./autogen.sh
./configure --prefix=/usr/local --disable-shared --enable-static --with-extra-libraries=/usr/local/lib/ --with-extra-includes=/usr/local/lib/
make
Установите Tesseract OCR 5 с помощью команды:
sudo make install
sudo ldconfig
Загрузить языки тессеракта
Загрузите языки тессеракта, создав языковой путь.
mkdir -p /tess/traineddata
Экспортируйте путь к Tesseract, добавив строку ниже в ~/.bashrc.
export TESSDATA_PREFIX=/home/$USER/tess/traineddata
Вы можете заменить $USER точным именем пользователя в системе.
Источник профиля.
source ~/.bashrc
Теперь добавьте в путь все обученные данные, доступные в tessdata на Github.
cd $TESSDATA_PREFIX
wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/main/fra.traineddata
Способ 2. Установите Tesseract OCR 5 в Rocky Linux 8 | AlmaLinux 8 с помощью Docker/Podman.
Я предполагаю, что в вашей системе уже установлен Docker/Podman Engine. В противном случае установите Docker Engine в Rocky Linux 8 | AlmaLinux 8, используя руководство ниже:
- Как установить Docker CE в системах Linux
Podman можно установить с помощью команды ниже:
sudo yum install podman
После установки предпочтительного механизма контейнера создайте файл докера Tesseract OCR 5.
vim Dockerfile
В файл добавьте строки ниже
FROM ubuntu:20.04
RUN apt-get update -y
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y gnupg apt-transport-https apt-utils wget
RUN echo "deb https://notesalexp.org/tesseract-ocr5/focal/ focal main" \
|tee /etc/apt/sources.list.d/notesalexp.list > /dev/null
RUN wget -O - https://notesalexp.org/debian/alexp_key.asc | apt-key add -
RUN apt-get update -y
RUN apt-get install tesseract-ocr -y
RUN apt install imagemagick -y
ENTRYPOINT ["tesseract"]
RUN tesseract -v
Сохраните файл и создайте образ Tesseract 5:
$ docker build . -t tesseract:5
##OR
$ podman build . -t tesseract:5
После сборки вы увидите это
Removing intermediate container a9ecd5a7810f
---> e1f76f250bc1
Step 10/11 : ENTRYPOINT ["tesseract"]
---> Running in 1886dfbcfd5e
Removing intermediate container 1886dfbcfd5e
---> 30afc1531eb9
Step 11/11 : RUN tesseract -v
---> Running in 598972cbd362
tesseract 5.0.1
leptonica-1.79.0
libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 2.0.3) : libpng 1.6.37 : libtiff 4.1.0 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.1
Found AVX2
Found AVX
Found FMA
Found SSE4.1
Found OpenMP 201511
Found libarchive 3.4.0 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.8 liblz4/1.9.2 libzstd/1.4.4
Found libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Removing intermediate container 598972cbd362
---> 35f8f89ea444
Successfully built 35f8f89ea444
Successfully tagged tesseract:5
Проверьте изображение:
##For Docker
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tesseract 5 35f8f89ea444 14 seconds ago 302MB
##For Podman
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/tesseract 5 f92efe531f58 2 minutes ago 309 MB
Теперь, имея образ Tesseract, вы можете запускать Tesseract, используя синтаксис.
##For Docker
docker run --rm -v /path/to/image/:/tmp/:z tesseract:5 /tmp/img.jpg stdout
##For Podman
podman run --rm -v /path/to/image/:/tmp/:z localhost/tesseract:5 /tmp/img.jpg stdout
В приведенной выше команде:
- –rm удаляет контейнер после выполнения указанной выше команды.
- –v указывает том с /path/to/image/ в качестве локального пути для монтирования в /tmp/ конатинера, а /tmp/img.jpg — точное местоположение файла изображения по смонтированному локальному пути.
- tesseract:5 — созданное изображение conatiner.
- z изменяет метку selinux. Это указывает на то, что содержимое монтирования привязки используется несколькими контейнерами.
Используйте Tesseract OCR 5 в Rocky Linux 8 | AlmaLinux 8.
После установки Tesseract OCR 5 вы можете начать извлекать текст из отсканированных документов или изображений.
Для преобразования изображения в текстовый файл используется следующий синтаксис.
tesseract <image_name> <output file_name>
Например, для преобразования изображения в текстовый файл команда будет такой:
tesseract image.png new
Результатом будет текстовый файл new файла изображения image.png.
Для Docker/Podman команда будет такой, как показано ниже, при условии, что файл изображения image.png находится по адресу /home/thor/Desktop/image.png.
##For Docker
docker run --rm -v /home/thor/Desktop/:/tmp/:z tesseract:5 /tmp/image.png stdout
##For Podman
podman run --rm -v /home/thor/Desktop/:/tmp/:z localhost/tesseract:5 /tmp/image.png stdout
Или, альтернативно, сократите команду, как показано ниже (пример с Podman), после перехода в каталог с файлом изображения.
podman run --rm -v $(pwd)/:/tmp/:z localhost/tesseract:5 /tmp/image.png stdout
Это текстовый вывод файла image.png в каталоге.
Вы также можете перенести приведенный выше вывод в файл new.txt, как показано ниже.
tesseract image.png new
Пример для Докера:
docker run --rm -v $(pwd)/:/tmp/:z tesseract:5 /tmp/image.png /tmp/new
Или в файл PDF (new.pdf), как показано ниже.
tesseract image.png new pdf
Пример для докера
docker run --rm -v $(pwd)/:/tmp/:z tesseract:5 /tmp/image.png /tmp/new pdf
Укажите язык.
При использовании Tesseract OCR вы можете указать язык, который хотите использовать, с помощью флага -l. Например, используйте чешский.
tesseract image.png new -l ces
Вы также можете указать несколько языков.
tesseract image.png new -l ces+eng
Конец!
Заключительные мысли.
Мы успешно установили и использовали Tesseract OCR 5 в Rocky Linux 8 | AlmaLinux 8. Теперь вы можете легко извлекать текст из изображений и отсканированных документов. Я надеюсь, что это было полезно.
Узнать больше:
- Лучший конвертер PDF в изображения для Windows и Mac
- Управление статусом SELinux, контекстом, портами и логическими значениями с помощью Ansible
- Разверните Collabora Online Office в Ubuntu с помощью Let’s Encrypt SSL
- Как установить FreeOffice на Ubuntu