私有化部署PaddleOCR图片中文字识别

网极科技9个月前代码笔记222

图片文字识别(OCR)的技术目前已经比较成熟,有很多开源模型可以使用。本文主要以百度开源的PaddleOCR为例,进行私有化部署

为什么要进行文字识别私有化

很多图片是比较隐私的,比方身份证,虽然市面上有很多很优质价格也不高的身份证图片识别API(比方我司也有,点此查看)。但是毕竟是隐私内容,图片识别需要上传到公网,公网那边留存多久呢?我司的身份证识别接口是使用的阿里云对象存储定时删除(24小时),该对象存储不对外访问,在一定程度上杜绝了风险以及隐私泄露的可能。
但是要完全杜绝这种可能,私有化是唯一有效的处理方式。

私有化很贵吗?运维很难吗?

私有化不贵而且运维不难,因为我司已经有了成熟的方案,可以直接部署在阿里云函数计算上面,按调用消耗计费,无需预付,每个小时阿里云自动生成账单,用阿里云余额抵扣。综合成本来看,还要比市面上的商用接口便宜很多。
运维上来说,依托阿里云的自动化流水线,可以自动完成性能配置上的弹性伸缩,基本无需运维。

私有化后原来的API接口替换麻烦吗?

私有化后会有新的API接口,可能与原来的API接口的请求方式和返回参数有所区别,需要开发人员稍微修改一下,不是很复杂。

私有化不能离线使用吗?

离线使用是可以的,但是需要本地服务器有GPU,而且运维来说相对麻烦,只能依赖公司内部人员。所以最优解决方案是在阿里云私有化部署。

私有化部署步骤

部署 PaddleOCR 到本地

# 阿里云的镜像仓库地址
docker run -itd --name ppocr -p 9000:9000 registry.cn-hongkong.aliyuncs.com/llapi/ppocr:1.8 /bin/bash -c "sh /PaddleOCR/start.sh"

# 阿里云的镜像仓库地址 服务器端模型
docker run -itd --name ppocr -p 9000:9000 registry.cn-hongkong.aliyuncs.com/llapi/ppocr:1.6.server /bin/bash -c "sh /PaddleOCR/start.sh"

调用 OCR

计算待识别图片的Base64编码
发送服务请求(发送参数,参考下面命令)

curl -H "Content-Type:application/json" -X POST --data "{\"images\": [\"图片base64\"]}"  http://127.0.0.1:9000/predict/ocr_system

返回结果(如果调用成功,会返回如下结果)
{"msg":"","results":[[{"confidence":0.9853195548057556,"text":"测试图像路径,可以是单张图片路径,也可以是图像集合目录路径","text_region":[[5,10],[466,10],[466,24],[5,24]]}]],"status":"000"}

代码示例

import requests
import base64

def ocr(文件地址):
    with open(文件地址, 'rb') as f:
        data = f.read(-1)
    image = str(base64.b64encode(data), encoding='utf-8')
    data = '{"images":["' + image + '"]}'
    txt = requests.post("http://127.0.0.1:9000/predict/ocr_system", data=data,
                        headers={'Content-Type': 'application/json'})
    return txt.content.decode("utf-8")

print(ocr("./test.png"))

相关文章

将股票日K转换为年K的PHP代码

将股票日K转换为年K的PHP代码

以下是将股票日K转换为年K的PHP代码示例: <?php // 股票日K数据 $dailyK = [ ['date' => '2022-12-3...

明道云集成我司API接口范例

明道云集成我司API接口范例

有个客户购买了我司的智能快递地址解析接口,需要集成到明道云系统,所以写这个教程帮助大家。 第一步,在明道云创建如下表单其中第二个解析地址查询按钮为:左侧组件–高级–API查询 第二步,在集...

通过阿里云实现IPv6升级改造

通过阿里云实现IPv6升级改造

场景示例某些企业现有的IT系统部署在本地IDC机房,IDC机房为纯IPv4网络,企业因业务发展需求,需要面向IPv6客户端提供服务。但是,使企业现有IT系统支持IPv6是一个复杂的系统工程,改造难度大...

table表格css样式

table表格css样式

效果图 table { border-collapse: collapse; margin: 0 auto;...

将网页文字保存为Word文档的PHP代码

将网页文字保存为Word文档的PHP代码

以下是将网页文字保存为Word文档的PHP代码示例: <?php // 获取网页内容并保存为Word文件 function saveAsWord($url, $fileName) {...

宝塔面板Nginx设置任意路径301重定向

宝塔面板Nginx设置任意路径301重定向

接到一个客户的诉求,需要将指定路径进行301重定向,由于宝塔设置重定向只有域名(即根目录),无法对子目录或其他任意路径进行重定向,所以需要手写Nginx的重定向规则。 301重定向和伪静态有...