Many user hopes package the PaddleOCR service into an docker image, so that it can be quickly released and used in the docker or k8s environment.
This page provide some standardized code to achieve this goal. You can quickly publish the PaddleOCR project into a callable Restful API service through the following steps. (At present, the deployment based on the HubServing mode is implemented first, and author plans to increase the deployment of the PaddleServing mode in the futrue)
## 1. Prerequisites
You need to install the following basic components first:
a. Docker
b. Graphics driver and CUDA 10.0+(GPU)
c. NVIDIA Container Toolkit(GPU,Docker 19.03+ can skip this)
b. Goto Dockerfile directory(ps:Need to distinguish between cpu and gpu version, the following takes cpu as an example, gpu version needs to replace the keyword)
```
cd docker/cpu
```
c. Build image
```
docker build -t paddleocr:cpu .
```
## 3. Start container
a. CPU version
```
sudo docker run -dp 8866:8866 --name paddle_ocr paddleocr:cpu
```
b. GPU version (base on NVIDIA Container Toolkit)
```
sudo nvidia-docker run -dp 8866:8866 --name paddle_ocr paddleocr:gpu
```
c. GPU version (Docker 19.03++)
```
sudo docker run -dp 8866:8866 --gpus all --name paddle_ocr paddleocr:gpu
```
d. Check service status(If you can see the following statement then it means completed:Successfully installed ocr_system && Running on http://0.0.0.0:8866/)
```
docker logs -f paddle_ocr
```
## 4. Test
a. Calculate the Base64 encoding of the picture to be recognized (if you just test, you can use a free online tool, like:https://freeonlinetools24.com/base64-image/)
b. Post a service request(sample request in sample_request.txt)
```
curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"Input image Base64 encode(need to delete the code 'data:image/jpg;base64,')\"]}" http://localhost:8866/predict/ocr_system
```
c. Get resposne(If the call is successful, the following result will be returned)
Many user hopes package the PaddleOCR service into an docker image, so that it can be quickly released and used in the docker or k8s environment.
## 1.实施前提准备
This page provide some standardized code to achieve this goal. You can quickly publish the PaddleOCR project into a callable Restful API service through the following steps. (At present, the deployment based on the HubServing mode is implemented first, and author plans to increase the deployment of the PaddleServing mode in the futrue)
需要先完成如下基本组件的安装:
## 1. Prerequisites
a. Docker环境
b. 显卡驱动和CUDA 10.0+(GPU)
You need to install the following basic components first:
c. NVIDIA Container Toolkit(GPU,Docker 19.03以上版本可以跳过此步)
a. Docker
b. Graphics driver and CUDA 10.0+(GPU)
c. NVIDIA Container Toolkit(GPU,Docker 19.03+ can skip this)
b. Goto Dockerfile directory(ps:Need to distinguish between cpu and gpu version, the following takes cpu as an example, gpu version needs to replace the keyword)
```
```
cd docker/cpu
cd docker/cpu
```
```
c.生成镜像
c. Build image
```
```
docker build -t paddleocr:cpu .
docker build -t paddleocr:cpu .
```
```
## 3.启动Docker容器
## 3. Start container
a. CPU 版本
a. CPU version
```
```
sudo docker run -dp 8866:8866 --name paddle_ocr paddleocr:cpu
sudo docker run -dp 8866:8866 --name paddle_ocr paddleocr:cpu
```
```
b. GPU 版本 (通过NVIDIA Container Toolkit)
b. GPU version (base on NVIDIA Container Toolkit)
```
```
sudo nvidia-docker run -dp 8866:8866 --name paddle_ocr paddleocr:gpu
sudo nvidia-docker run -dp 8866:8866 --name paddle_ocr paddleocr:gpu
```
```
c. GPU 版本 (Docker 19.03以上版本,可以直接用如下命令)
c. GPU version (Docker 19.03++)
```
```
sudo docker run -dp 8866:8866 --gpus all --name paddle_ocr paddleocr:gpu
sudo docker run -dp 8866:8866 --gpus all --name paddle_ocr paddleocr:gpu
```
```
d. 检查服务运行情况(出现:Successfully installed ocr_system和Running on http://0.0.0.0:8866/等信息,表示运行成功)
d. Check service status(If you can see the following statement then it means completed:Successfully installed ocr_system && Running on http://0.0.0.0:8866/)
```
```
docker logs -f paddle_ocr
docker logs -f paddle_ocr
```
```
## 4.测试服务
## 4. Test
a. 计算待识别图片的Base64编码(如果只是测试一下效果,可以通过免费的在线工具实现,如:http://tool.chinaz.com/tools/imgtobase/)
a. Calculate the Base64 encoding of the picture to be recognized (if you just test, you can use a free online tool, like:https://freeonlinetools24.com/base64-image/)
b. 发送服务请求(可参见sample_request.txt中的值)
b. Post a service request(sample request in sample_request.txt)
```
```
curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"填入图片Base64编码(需要删除'data:image/jpg;base64,')\"]}" http://localhost:8866/predict/ocr_system
curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"Input image Base64 encode(need to delete the code 'data:image/jpg;base64,')\"]}" http://localhost:8866/predict/ocr_system
```
```
c. 返回结果(如果调用成功,会返回如下结果)
c. Get resposne(If the call is successful, the following result will be returned)