百度PaddleOCR Docker GPU版安装全指南

3 篇文章 0 订阅
1 篇文章 0 订阅

最近有一个项目需要用到文字识别,但是又是内网项目,不能用在线的第三方接口。

在Github找了一些包,都对比了一番

最终还是决定使用百度开源的PaddleOCR

机器配置:

12核CPU、16GB DDR4内存、RTX 2060-6G、1TB固态硬盘、1TB机械硬盘

环境:

系统Centos 7.9、Docker CE 20.10、Python3.7

安装CentOS和Docker的过程就略过了,这也不是本文讨论的重点,网上一大把安装教程。

安装英伟达显卡驱动

参考我另外一篇博文 CentOS7 安装 英伟达显卡驱动

在Docker 19.3之后,要使用GPU无需安装nvidia-docker

可以直接在docker启动的时候带上gpu参数即可

只需要安装container-runtime这个包即可

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo

使用yum安装

yum install nvidia-container-runtime

如果连不了Github.io,可以尝试修改hosts(失效了给我留言,我会及时更新)


185.199.109.153 nvidia.github.io

另外国内Docker的镜像下载速度有点慢

这里用阿里云的镜像加速

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

把加速器地址复制下来

然后在Linux服务器上修改文件

vi /etc/docker/daemon.json

最终修改效果如下,为了方便,这里直接提供了文件,只需要替换掉加速地址即可

{
  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  },
  "registry-mirrors": [
    "https://xxxxxx.mirror.aliyuncs.com"
  ]
}

重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

查看docker的安装情况

docker info

结果如下

[root@localhost soft]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  scan: Docker Scan (Docker Inc.)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 20.10.6
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux nvidia runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc version: ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1160.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 15.42GiB
 Name: localhost.localdomain
 ID: G2GD:OFY7:RJI5:JTSX:MOFP:TP7X:PIDQ:KLLF:NROF:CQXR:OJHG:TJO2
 Docker Root Dir: /server/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://xxxxxx.mirror.aliyuncs.com/
 Live Restore Enabled: false

在安装paddleOCR之前需要安装paddlepaddle

官网地址 飞桨PaddlePaddle-源于产业实践的开源深度学习平台

cuda版本根据你的具体版本来进行选择

如果不知道cuda版本输入命令查看

nvidia-smi

我的机器CUDA版本是11,选择如图

官网还是使用的nvidia-docker进行安装的,我们不需要这么麻烦,直接在docker HUB上面找镜像

https://hub.docker.com/r/paddlepaddle/paddle/tags/?page=1&ordering=last_updated

复制红框内的地址

等待下载,下载完毕之后输入

docker images

镜像文件

构建和启动容器

docker run -d -p 19196:19196 --name ppocr --gpus all -it -v $PWD:/paddle paddlepaddle/paddle:2.0.2-gpu-cuda11.0-cudnn8 /bin/bash

注:

这里 --gpus 是用GPU模式启动

all代表使用所有显卡

需要单独使用某一张显卡的话,例如使用3号显卡 --gpus "device=3"

附录一个命令:查看容器列表

docker container ls

进入容器后,查看GPU环境

pip show paddlepaddle-gpu

PaddlePaddle-gpu环境已经有了

开始下载PaddleOCR

git clone https://github.com/PaddlePaddle/PaddleOCR.git

如果github慢,可以选择官方的gitee

git clone https://gitee.com/paddlepaddle/PaddleOCR

到这里应该开始安装依赖了

但是注意!坑来了

镜像里面默认的是python2.7

输入python3 -V 命令 输出的是python3.5

尤其注意,其实镜像里面是带了python 3.5 3.6 3.7甚至3.8

只是我们需要这样使用

python3.7 -V

目前官方推荐的是使用python3.7

3.8目前还不能完全兼容,当然之后肯定会优先使用更新的版本

我这里没有使用多应用程序,直接使用的docker里面自带的python安装的环境和包

如果有需要用多个应用程序的建议使用anaconda或者virtualenv

进入项目目录

cd PaddleOCR

使用python3.7安装依赖

pip3.7 install -r requirements.txt -i https://mirror.baidu.com/pypi/simple --default-timeout=10000

接着就可以开心的使用OCR了

参考官方文档

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.0/doc/doc_ch/quickstart.md

=============分割线================

使用paddleocr.wheel来进行快速部署

pip3.7 install "paddleocr>=2.0.1" -i https://mirror.baidu.com/pypi/simple --default-timeout=10000

随便写个py文件,代码如下

from paddleocr import PaddleOCR, draw_ocr
# Paddleocr目前支持中英文、英文、法语、德语、韩语、日语,可以通过修改lang参数进行切换
# 参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`。
ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memory
img_path = './1.jpg'  # 这里写图片地址
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)

这里会自动下载轻量级的模型,如果需要替换为服务端更强大的模型文件,参考https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.0/doc/doc_ch/algorithm_overview.md

运行我们写的脚本文件

python3.7 main.py

我放了一张文字较多的图片

识别的时间0.5秒,识别的中文也挺准确的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九城科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值