ocr通过paddle serving部署 docker
时间: 2023-11-29 16:06:45 浏览: 191
以下是通过Paddle Serving部署OCR的Docker的步骤:
1.首先,需要拉取Paddle Serving的镜像。可以使用以下命令拉取最新版本的Paddle Serving镜像:
```shell
docker pull hub.baidubce.com/paddlepaddle/serving:latest-cpu
```
2.接下来,需要将OCR模型部署到Paddle Serving中。可以使用以下命令将模型部署到Paddle Serving中:
```shell
python3 -m paddle_serving_server.serve --model ocr_system --port 9292 --gpu_id 0
```
其中,`ocr_system`是OCR模型的名称,`9292`是服务端口号,`0`是GPU的ID。
3.最后,需要使用Docker将Paddle Serving部署到容器中。可以使用以下命令将Paddle Serving部署到Docker容器中:
```shell
docker run -p 9292:9292 -it hub.baidubce.com/paddlepaddle/serving:latest-cpu
```
其中,`9292`是服务端口号。
相关问题
ocr通过paddle serving部署
OCR(Optical Character Recognition)是一种将图像中的文字转换为可编辑和可搜索文本的技术。Paddle Serving是一个高性能、灵活、易用的模型服务部署框架,可以帮助用户快速部署和管理机器学习模型服务。以下是通过Paddle Serving部署OCR的步骤:
1. 准备OCR模型和标签文件。可以使用PaddleOCR等OCR模型,标签文件是一个包含所有类别名称的文本文件。
2. 安装Paddle Serving。可以使用pip安装Paddle Serving:
```shell
pip install paddle-serving-server paddle-serving-client
```
3. 启动Paddle Serving服务端。可以使用以下命令启动服务端:
```shell
# 启动服务端
serving --model ocr_system/ --port 9292 --gpu_id 0
```
其中,--model指定OCR模型的路径,--port指定服务端口号,--gpu_id指定使用的GPU编号。
4. 在客户端中使用OCR服务。可以使用以下Python代码调用OCR服务:
```python
from paddle_serving_client import Client
from paddle_serving_app.reader import OCRReader
from paddle_serving_app.reader import Sequential, URL2Image
from paddle_serving_app.reader import Resize, File2Image
from paddle_serving_app.reader import Div, Normalize, Transpose
from paddle_serving_app.reader import ToTensor, KeepKeys
client = Client()
client.load_client_config("ocr_system/serving_client/serving_client_conf.prototxt")
client.connect(["127.0.0.1:9292"])
ocr_reader = OCRReader()
ocr_reader.init_hook()
seq = Sequential([
URL2Image(), Resize(resize_short=736),
Div(255.0),
Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225], True),
Transpose((2, 0, 1)),
ToTensor(),
KeepKeys(keys=["image"])
])
with open("doc/imgs_words_det.jpg", "rb") as f:
image_data = f.read()
image = seq({"url": image_data})["image"]
fetch_map = client.predict(feed={"image": image}, fetch=["ctc_greedy_decoder_0.tmp_0"])
print(fetch_map)
```
其中,--model指定OCR模型的路径,--port指定服务端口号,--gpu_id指定使用的GPU编号。
paddle ocr部署
### PaddleOCR 部署教程和指南
#### Python环境下的PaddleOCR部署
对于Python环境下PaddleOCR的安装与配置,按照官方提供的文档可以顺利完成。这包括但不限于确保环境中已正确安装Python以及pip工具,并利用pip命令来安装必要的依赖包[^1]。
```bash
pip install paddleocr
```
完成上述操作之后,便可以通过简单的几行代码实现OCR功能:
```python
from paddleocr import PaddleOCR, draw_ocr
ocr = PaddleOCR(use_angle_cls=True, lang='en') # need to run only once to download and load model into memory
result = ocr.ocr('example.jpg', cls=True)
for line in result:
print(line)
```
此段代码展示了如何加载预训练模型并对图像文件`example.jpg`执行字符识别任务。
#### Windows平台下C++版本的PaddleOCR部署
针对Windows平台上采用C++接口调用PaddleOCR的情况,则需准备Visual Studio 2019社区版及CMake 3.0以上的开发环境。此外,还需下载对应于目标系统的[Paddle Inference Library](https://www.paddlepaddle.org.cn/install/inference_lib),即PaddlePaddle C++预测库的一部分[^2]。
具体来说,在构建应用程序之前要先设置好这些外部依赖项的位置路径;接着编写源码链接至静态或动态链接库形式发布的推理引擎API接口函数,从而实现在本地机器上运行基于深度学习的文字检测与识别服务。
#### Jetson Nano设备上的PaddleOCR部署
当考虑在嵌入式计算单元如NVIDIA Jetson Nano上快速搭建起一套轻量级但高效的光学字符读取解决方案时,可参照特定硬件架构优化过的镜像资源简化前期准备工作。例如,通过预先打包好的Docker容器映像一键拉取所需软件栈,进而绕过繁琐的手动编译环节直接进入应用层测试阶段[^3]。
#### 基于RKNN加速器的移动端PaddleOCR部署
最后介绍一种面向边缘计算场景的应用案例——将PaddleOCR转换成ONNX格式再进一步转化为Rockchip NPU支持的目标文件(.rknn),以此充分利用ARM处理器内置的人工智能协处理单元提升性能表现。经实验验证,在小型化输入样本条件下平均响应时间不超过半秒钟,而面对复杂度较高的实例也能保持在一两秒之内完成整个流程[^4]。
阅读全文