PaddleOCR реализует технологию OCR и использует фреймворк Baidu PaddlePaddle.
PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice.
Самое замечательное в этом проекте то, что он может распознавать вертикальный текст с высокой скоростью распознавания.
адрес проекта на гитхабе:GitHub.com/paddle pad DL…
Краткое введение в проект (в основном взято из Readme проекта):
Мы можем быстро найти эту область на главной страницеTutorials
, В этой части руководства мы можем быстро найти две части Установка и Быстрый запуск, которых достаточно для нашего тестирования и использования.В части глубокого понимания кода мы можем посмотреть на следующую часть алгоритма модели, часть модели, часть вывода, часть данных и т. д.
Requirements
- PaddleOCR working environment:
- PaddlePaddle 2.0.0
- python3.7
- glibc 2.23 (при тестировании использовалась glibc 2.27)
Примечания по установке:GitHub.com/paddle pad DL…
- На сайте указано, что лучше всего ставить в виде докера (я им не пользовался)
- Устанавливать напрямую в виде инсталляционной библиотеки окружения
контрольная работа
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/007.png" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True
Практические шаги
Во-первых, для версии gpu нужно установить окружение CUDA 10.1 и cuDNN 7.6.5, здесь используем уже готовое окружение (易学智能平台
), что позволяет избежать различных проблем среды установки и быстро реализовать конструкцию проекта.费钱
1. Конфигурация среды
1.0 Пропустить предыдущий процесс покупки простых в освоении умных машин
Эта часть хорошо задокументирована в моем предыдущем блоге:Наггетс.Талант/пост/696575…
1.1 Откройте терминал и переключитесь в указанную среду
Нам нужна среда py37-cuda101, а команда переключения
conda activate py37-cuda101
1.2 Установка весла
Команду установки можно найти в Installation.md
python3 -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple
1.3 Загрузите проект PaddleOCR
Эта загрузка выполняется быстро и может быть выполнена напрямую с помощью git clone.
git clone https://github.com/PaddlePaddle/PaddleOCR
1.4 Войдите в проект и установите среду
При установке requirements.txt установка будет много раз давать сбой из-за колебаний сети, просто попробуйте несколько раз.
cd PaddleOCR
pip3 install -r requirements.txt
2. Загрузите модель
Эту часть мы можем прочитать в разделе Quick Start
На изображении выше мы видим, что есть список из двух моделей,относительно небольшой, легкий, эта меньшая часть手机端
;Кроме тогоОдин крупнее и громоздче,Да服务器端
из.
2.1 Загрузите модель в соответствии с инструкциями
2.1.1 Создайте папку и войдите в папку
mkdir inference && cd inference
2.1.2 Скачайте модель и разархивируйте ее
点击右键,获得下载链接,使用wget下载
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar
下载完成后,使用tar命令进行解压
tar -xvf ch_ppocr_server_v2.0_det_infer.tar
2.1.3 Структура дерева каталогов после загрузки
├── ch_ppocr_mobile_v2.0_cls_infer
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
│ └── inference.pdmodel
├── ch_ppocr_mobile_v2.0_det_infer
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
│ └── inference.pdmodel
├── ch_ppocr_mobile_v2.0_rec_infer
├── inference.pdiparams
├── inference.pdiparams.info
└── inference.pdmodel
Протестируйте модель
Следующий код реализует обнаружение текста, класс угла и процесс распознавания.
Измените параметр на соответствующий путь вашего собственного проекта.
-
parameter
-
image_dir
:the path of a single image or image set -
det_model_dir
:the path to the detection inference model -
rec_model_dir
:the path to the recognition inference model -
use_angle_cls
: whether to use the direction classifier -
cls_model_dir
:the path to the direction classifier model -
use_space_char
: whether to predict the space char
-
-
result
- saved to the ./inference_results folder by default
# Predict a single image specified by image_dir
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/007.png" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True
# Predict imageset specified by image_dir
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True
# If you want to use the CPU for prediction, you need to set the use_gpu parameter to False
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/007.png" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/" --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False
Показать результаты
Первая группа (в основном все пары)