заглавие
Сервис распознавания текста с глубоким обучением Xiaoxin Discovery
вводить
Фреймворк для глубокого обучения, на который я наткнулся, PaddlePaddle — это фреймворк для глубокого обучения с открытым исходным кодом от Baidu. По сравнению с Tensor и Pytorch, это в основном вся его экология, которая предоставляет несколько инструментов для использования, облегчая нам понимание и использование.
На этот раз я просто приношу OCR, включенный в Paddle-hub, чтобы выпустить распознавание текста, чтобы каждый мог использовать минимум кода для создания службы OCR и ощутить прелесть paddle.
В последующем я медленно познакомлюсь с Пэдлом и резюмирую набор реальных боев Пэдла.
Версии и загрузки
paddlepaddle 2.0.0rc1 ссылка для скачивания
python 3.7
среда сборки
Я система Mac, поэтому я выбираю среду Mac, и ему также очень удобно предоставлять докер.
Кроме того, вот два источника, один Baidumirror.baidu.com/pypi/simple
Один из них Цинхуаpypi.tuna.tsinghua.edu.cn/simple
Выполните следующие операторы соответственно, и я не буду иметь здесь эффекта, потому что я уже установил его снова, серьезных проблем нет, и он очень плавный.
$ pip install paddlepaddle==2.0.0rc -i https://mirror.baidu.com/pypi/simple
$ pip install paddlehub==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple
$ pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip install pyclipper -i https://pypi.tuna.tsinghua.edu.cn/simple
Этот модуль зависит от сторонних библиотек shapely и pyclipper. Прежде чем использовать этот модуль, сначала установите shapely и pyclipper.
Загрузка предназначена для загрузки обученной модели.На официальном сайте представлены две модели, однаchinese_ocr_db_crnn_server
иchinese_ocr_db_crnn_mobile
, можно временно не знать что это, можно понять, что у первого высокая точность, а у второго небольшие размеры. Мы используем высокую точность.
Давайте сначала протестируем это изображение, адрес загрузкиhttps://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c555f23d746a4fdc83118b3d44a004d5~tplv-k3u1fbpfcp-zoom-1.image
, названный test_ocr.jpg после загрузки
$ hub run chinese_ocr_db_crnn_mobile --input_path test_ocr.jpg --visualization=True --output_dir='ocr_result'
Приведенная выше команда поясняет, что она запускается локально для обнаружения проблем в изображении и в настоящее время не ориентирована на службы.
Кроме того, команды и файлы, которые нужно запустить, на этот раз находятся в одной папке, и каждый создает их сам, то есть команды выполняются в этом файле, а картинки находятся в этой папке.
--input_path — изображение для ввода
--output_dir — это каталог вывода результата, и после этого он будет создан в текущем каталоге
--visualization=True Я тоже этого не понимаю. Все, что я знаю, это то, что его можно сохранить при использовании с вышеуказанной командой.
Сделайте снимок экрана.
Результат выполнения команды не интуитивно понятен? Тогда вы еще помните картинку с результатом вывода, прямо вверху.
Лично для меня точность все равно достаточно высока. Повторите попытку с идентификатором. Адрес картыhttp://ww1.sinaimg.cn/large/8a53ebb9ly1gn147b5eq4j20n20fe76n.jpg
$ hub run chinese_ocr_db_crnn_mobile --input_path test_ocr1.jpg --visualization=True --output_dir='ocr_result'
результат
Следующим шагом является создание сервисной службы и предоставление интерфейса.
$ hub serving start -m chinese_ocr_db_crnn_server
-m — какой модуль загрузить, то есть обучающую модель
-p установить порт, по умолчанию 8866
Начните, см. выше подсказку, вы должны обратить внимание.
Адрес протестированного интерфейса ocr:http://127.0.0.1:8866/predict/chinese_ocr_db_crnn_server
, отправить запрос, заголовок запроса должен иметь "Content-type": "application/json"
На этот раз картинаhttp://ww1.sinaimg.cn/large/8a53ebb9ly1gn14laee68j20iw0ck40o.jpg
Тело запроса, в изображениях - это адрес изображения base64. Я думаю, что base64 слишком велик, поэтому я не буду вставлять его сюда и конвертировать в веб-сайт.https://tool.lu/base64image/
, но помните, это не нужно преобразовывать в предыдущий логотип, а это значит, чтоdata:image/jpeg;base64,
Удалите это в начале, если содержимое base64, имейте в виду, иначе будет ошибка объекта.
{
"images": [
""
]
}
{
"msg": "",
"results": [
{
"data": [
{
"confidence": "" , // 这个是识别文本结果置信度
"text": "", // 这个是识别到的文本
"text_box_position": [] // 这是文本框在原图中的像素坐标,4*2的矩阵,依次表示文本框左下、右下、右上、左上顶点的坐标 如果无识别结果则data为[]
}
],
"save_path": "" //识别结果的保存路径,如不保存图片则save_path为'',咱们这次启动服务没有配置
}
],
"status": "000"
}
Суммировать
Все здесь.Это кажется очень простым?Конечно, это попытка начального уровня, и модель обучения также официально предоставлена.На самом деле, после углубленного исследования вы можете использовать paddlepaddle для создания собственной модели обучения , модель предсказания, модель распознавания и т. д.
Ссылка на ссылку
PaddleHub распознает OCR одним щелчком мыши
Официальный сайт PaddlePaddle