合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

2026-10-04 15:46:23 1点赞 8收藏 1评论

哈喽小伙伴们好,我是Stark-C~

说到OCR(Optical Character Recognition,也就是“光学字符识别”),很多特定办公党都知道,它能够将图片、扫描件中的文字快速转换成可编辑、可搜索的文本内容。

简单来说,无论是合同、发票、票据,还是身份证、营业执照等证件材料,我们都可以借助OCR快速完成文字提取,省去手动录入的麻烦,大幅提升工作效率。

不过,目前大多数用户使用的仍然是各类在线OCR服务。虽然使用方便,但每次识别都需要先将文件上传到第三方服务器,再由云端完成处理。这就引来了两个问题:一个是很多在线OCR服务是收费的,另外就是安全问题,毕竟敏感信息交给第三方,多多少少还是有些顾虑的。

所以今天就为大家分享一个可以部署在NAS上的私有化OCR服务方案,既能让我们无限制的使用OCR识别,还能保证所有操作均在本地进行,最重要的是无需担心隐私泄露问题。

PS:需要提前说明的是,本地OCR并非轻量级应用,对NAS的性能有一定要求。本文使用极空间NAS进行演示,建议极空间 Z4 Pro 及以上机型部署使用,且内存不低于8GB~。

关于PaddleOCR

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺本文使用的OCR服务来自大名鼎鼎的百度飞桨PaddleOCR,它是目前国内应用最广泛的中文OCR项目之一,能够对图片、扫描件、PDF等文档中的文字内容进行高精度识别。据我所知,许多在线OCR工具和企业级文档识别方案,其底层能力实际上也是基于PaddleOCR构建的。

项目本身也是免费开源的,拥有十分活跃的开发者社区和完善的技术文档。如果大家想进一步了解PaddleOCR的功能特性、支持的识别能力以及官方部署方案,可以前往项目的 GitHub 主页查看详细介绍。

项目Github主页地址:https://github.com/PaddlePaddle/PaddleOCR

PaddleOCR部署

部署前的说明:

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺想要部署完整的PaddleOCR服务在NAS上几乎是不可能的,所以有热心网友对项目进行了二次封装,并打包成轻量化的 Docker 镜像,除了大幅降低部署门槛,最主要的是对NAS的CPU和内存消耗也低了很多,至少已经能够在当前绝大多数高性能NAS上跑起来了。

目前在某Hub上已经有不少基于PaddleOCR封装的项目可供选择,经过一番对比后,我最终选择的是sllwakeup大佬上传过来的“sllwakeup/paddleocr”镜像,主要是看中它更新的日期近,并且在某Hub发布页还有详细的部署说明。也就是说,本文教程其实就是基于这个镜像来进行的。

还有就是,我们在NAS上其实部署的是一个OCR API服务。简单来说,就是通过接口的方式接收图片、PDF等文件,并返回识别后的文字结果。虽然它没有传统软件那样开箱即用的操作界面,但胜在资源占用更低、部署更灵活,并且我们还可以通过很多工具和服务来调用它,比如说Dify、n8n、OpenWebUI等支持HTTP API的应用,以及目前很火的Ai智能体,比如说OpenClaw、Hermes,甚至是WorkBuddy。

开始部署:

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺本次部署以极空间NAS为例,打开文件管理器,在Docker目录下新建一个“paddleocr”的文件夹。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺然后点击极空间NAS的“Docker”应用,点击【Compose】 > 【新增项目】。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺在“创建项目”页面自定义项目名称,“存储位置”需要手动选择我们前面新建的“paddleocr”文件夹,在下方输入框输入以下Docker Compose 配置信息:

services: paddleocr: image: docker.1ms.run/sllwakeup/paddleocr:1.0.2 container_name: paddleocr restart: unless-stopped shm_size: 256m platform: linux/amd64 # 限制 OCR 容器资源,避免模型初始化或异常请求耗尽宿主机资源。 cpus: "2.0" mem_limit: 2g mem_reservation: 512m memswap_limit: 2g pids_limit: 64 env_file: - .env environment: TZ: Asia/Shanghai LANG: C.UTF-8 LC_ALL: C.UTF-8 FLAGS_use_mkldnn: "${FLAGS_USE_MKLDNN}" PADDLEOCR_DEVICE: ${PADDLEOCR_DEVICE:-cpu} PADDLEOCR_LANG: ${PADDLEOCR_LANG:-ch} PADDLEOCR_USE_DOC_ORIENTATION_CLASSIFY: "${PADDLEOCR_USE_DOC_ORIENTATION_CLASSIFY:-true}" PADDLEOCR_USE_DOC_UNWARPING: "${PADDLEOCR_USE_DOC_UNWARPING:-true}" PADDLEOCR_USE_TEXTLINE_ORIENTATION: "${PADDLEOCR_USE_TEXTLINE_ORIENTATION:-true}" PADDLEOCR_RETURN_LINES: "${PADDLEOCR_RETURN_LINES:-true}" ports: - "8060:8080" # 项目访问端口,冒号前面请勿与其它服务冲突 command: - uvicorn - main:app - --host - 0.0.0.0 - --port - "${PADDLEOCR_CONTAINER_PORT}" # - --limit-concurrency 这个是表示 仅允许有 1 个并发请求 # - "1" volumes: - ./data:/app/data - ./output:/app/output healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=5)"] interval: 30s timeout: 10s retries: 5 start_period: 30s networks: - paddleocr-network ​ networks: paddleocr-network: driver: bridge name: paddleocr-network ​ ​

以上代码需要修改的地方就看我给到的中文注释即可,镜像的拉取需要自行解决网络问题,粘贴到自己的NAS这边之前建议使用AI工具优化一下,以防止格式问题造成的部署失败。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺接着勾选下面的“添加.env”,输入以下配置信息,最后直接点“创建”即可:

# 推理设备:cpu;有 GPU 时可按镜像支持情况配置 gpu:0 PADDLEOCR_DEVICE=cpu ​ # OCR 识别语言:ch 表示中文 PADDLEOCR_LANG=ch ​ # 下载远程文件的超时时间(秒) PADDLEOCR_TIMEOUT=60 ​ # DOC/DOCX 转 PDF 的超时时间(秒) PADDLEOCR_CONVERT_TIMEOUT=120 ​ # 单个输入文件最大大小(字节,当前为 50 MiB) PADDLEOCR_MAX_DOWNLOAD_BYTES=52428800 ​ # 端口映射:宿主机端口:容器端口 PADDLEOCR_PORT=8060:8080 ​ # 容器内 Uvicorn 服务端口 PADDLEOCR_CONTAINER_PORT=8080 ​ # 是否启用 PaddlePaddle MKLDNN CPU 加速:0 关闭,1 开启 FLAGS_USE_MKLDNN=0 ​ # 跳过模型源连通性检查,使用镜像中已内置的模型 PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=true ​ # PaddleOCR 文档预处理模型开关:默认开启,识别旋转、弯曲或方向异常的文档时效果更好 ​ # 文档方向分类(0°/90°/180°/270°) PADDLEOCR_USE_DOC_ORIENTATION_CLASSIFY=false ​ # 文档畸变校正(透视、弯曲等) PADDLEOCR_USE_DOC_UNWARPING=false ​ # 文本行方向分类 PADDLEOCR_USE_TEXTLINE_ORIENTATION=false ​ # 是否返回逐行结果;false 可减小响应体,减少对内存持续消耗,只返回必要字段。 PADDLEOCR_RETURN_LINES=false ​ ​

以上每行代码都有中文注释,一般来说默认就可以了。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺项目部署之后可以看到容器显示正常,就说明可以使用了!

PaddleOCR体验

因为前面说了,我们部署的只是一个OCR API服务,需要通过其它工具或者AI智能体来调用。工具我目前这边没有测试,但AI智能体我倒是一直在用。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺先来试试小龙虾,我直接给小龙虾发了一段话:我通过 Docker 在本地部署了一个 PaddleOCR,接口地址是 http://192.168.31.122:8160 ,你测试一下能否正常使用。

然后小龙虾不到10秒就给出答案,告诉我们PaddleOCR服务可用。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺不过我最近常用的还是WorkBuddy,所以我把同样的话扔给它,让它也检测一下连通性。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺也给出了同样的答案!

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺直接实测,我在我个人张大妈主页这里截取了一张包含文字介绍的图。

合同、票据、证件识别全搞定!NAS部署私有OCR服务,免费又安全

🔺直接扔到WorkBuddy这边让它使用PaddleOCR识别,不到5s时间就给出结果,并且准确率100%!

最后

总的来说,借助NAS强大的存储和持续运行能力,我们其实完全可以根据本文思路搭建一套属于自己的私有化OCR识别平台。

以后我们不管日常的截图、扫描件、PDF文档,还是合同、票据、证件等这些包含敏感信息的重要文件,我们都可以直接在本地完成识别,既能享受OCR带来的高效与便捷,又无需担心隐私泄露和次数限制的问题,有需要的小伙伴赶快试试吧!

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

展开 收起
1评论

  • 精彩
  • 最新
  • 请教大佬,这个玩法攻略对绿联、铁威马等其他品牌的NAS也适用吗

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
8
扫一下,分享更方便,购买更轻松