UiBot 调用 UmiOCR 实现本地/内网 OCR 识别
本项目通过UiBot流程自动化平台集成UmiOCR实现本地/内网图片文字识别。UmiOCR作为开源离线OCR工具,支持多语言识别、PDF处理和二维码生成。项目提供完整的调用流程,包括本地识别(数据不出本机)和内网识别(多机共享服务)两种模式,适用于对数据安全要求高的场景。核心功能通过HTTP请求调用OCR API,支持图片转base64识别。文档包含详细的项目结构、调用示例、适用场景及常见问题解决
·
目录
一、项目简介
本项目通过 UiBot 流程自动化平台,调用 UmiOCR 实现图片文字的本地或内网 OCR 识别。适用于对数据安全有较高要求、不希望将图片上传到外网的场景。
UmiOCR 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
二、Umi-OCR设置
三、项目结构

├── UmiOCR.flow # UiBot 主流程文件,定义流程节点与变量
├── pubb.task # 公共任务模块,存放可复用的流程片段或参数配置
├── 识别测试.task # 主要的 OCR 识别任务实现
└── ... # 其他可能的辅助文件(如配置、日志等)
- UmiOCR.flow:UiBot 流程主文件,建议结合 UiBot Studio 查看流程图与节点说明。
- pubb.task:公共方法或参数配置节点,便于流程复用。
- 识别测试.task:调用 UmiOCR 进行 OCR 识别的主要任务节点。
- 其他辅助文件:如有配置文件、日志文件等,可根据实际项目补充。
pubb.task代码
/*
公共方法模块,存储可能用到的数据处理方法
*/
UnitTest
StartOCR(False)
Exit()
End UnitTest
Function StartOCR(kill=False)
Dim bRet
Dim iPID
Dim sRet
Dim json_obj
If kill = True
Try 3
App.Kill("Umi-OCR.exe")
Catch ex
log.Error(ex)
End Try
End If
For i=0 To 10
Try
bRet=App.GetStatus("Umi-OCR.exe")
If bRet = False
iPID = App.Run(@res"UmiOCR\\Umi-OCR.exe", "0", 0)
Delay(3000)
Else
TracePrint "正常启动"
Break
End If
Catch ex
Log.Error(ex)
End Try
Next
End Function
识别测试.task
Dim arrayRet ,base_url ,image_b64 ,ocr_obj , ocr_res ,ocr_text, sName
pubb.StartOCR(False)
arrayRet = File.DirFileOrFolder(@res'''output_captcha''',"fileandfolder",{"hasPath":True})
For Each file_path In arrayRet
sName = File.BaseName(file_path,False)
// 文件转base64
image_b64 = utils.FileToBase64(file_path)
base_url = "http://127.0.0.1:1953"
HTTP.SetHeaders({"Content-Type": "application/json"})
// 调用识别呃
ocr_res = HTTP.PostJson(base_url & "/api/ocr", {"base64": image_b64,"options":{"ocr.language":"models/config_chinese.txt","ocr.cls":True,"data.format":"text"}}, 60000)
ocr_obj = JSON.Parse(ocr_res)
TracePrint ocr_obj
Continue
Next
四、本地识别与内网识别说明
1. 本地识别
本地识别是指 UiBot 直接调用部署在本机的 UmiOCR 服务进行图片文字识别。
优点:数据不出本地,安全性高,速度快,无需联网。
步骤示例
- 下载本项目代码。
- 启动项目。
2. 内网识别
内网识别是指 UmiOCR 部署在局域网内的某台服务器上,UiBot 通过内网 IP 调用 UmiOCR 服务。
优点:数据仅在内网流转,适合多台机器共享 OCR 服务,安全性高。
步骤示例
- 在内网服务器上部署并启动 UmiOCR 服务,确保端口可被局域网访问。
- 在 UiBot 的“识别测试”任务中,调用内网服务器的 UmiOCR API(如 http://192.168.x.x:port/ocr)。
- 传入待识别图片路径或图片数据,获取识别结果。
五、UiBot 调用 UmiOCR 的常见方式
- HTTP 请求
UiBot 可通过“HTTP请求”模块,向 UmiOCR 的 API 发送图片识别请求,获取返回的文字结果,本项目代码的调用方式。 - 命令行调用
也可通过 UiBot 的“运行命令行”模块,直接调用 UmiOCR 的命令行工具进行识别。
六、适用场景
- 需要本地化部署,数据不出本地/内网的企业或个人。
- 多台 UiBot 机器人共享同一套 OCR 服务。
- 对识别速度和数据安全有较高要求的自动化场景。
七、常见问题与建议
- 端口被占用:确保 UmiOCR 服务端口未被其他程序占用。
- 内网访问失败:检查防火墙设置,确保端口已开放。
- 识别准确率:可根据实际需求调整 UmiOCR 的识别参数或更换模型。
八、项目代码
如需进一步定制流程或遇到问题,欢迎随时私聊!
九、后续扩展方向
- 多格式输入支持
- 支持 PDF、扫描件批量识别,自动拆分与合并结果。
- 识别结果结构化
- 增加表格、票据等结构化数据提取,便于后续自动化处理。
- 多语言识别能力
- 集成更多语言模型,满足跨国/多语种场景需求。
- 识别结果自动校正
- 增加后处理模块,如拼写检查、版面还原等。
- 与其他系统集成
- 通过 API/Webhook 等方式,将识别结果自动推送到 ERP、OA 等业务系统。
- 权限与日志管理
- 增加用户权限控制、识别日志记录,提升系统安全与可追溯性。
- 分布式/高可用部署
- 支持多节点部署,提升识别服务的并发能力与稳定性。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐


所有评论(0)