目录

一、项目简介

二、Umi-OCR设置

​编辑

三、项目结构

四、本地识别与内网识别说明

1. 本地识别

步骤示例

2. 内网识别

步骤示例

五、UiBot 调用 UmiOCR 的常见方式

六、适用场景

七、常见问题与建议

八、项目代码

九、后续扩展方向


一、项目简介

本项目通过 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 服务进行图片文字识别。
优点:数据不出本地,安全性高,速度快,无需联网。

步骤示例
  1. 下载本项目代码。
  2. 启动项目。

2. 内网识别

内网识别是指 UmiOCR 部署在局域网内的某台服务器上,UiBot 通过内网 IP 调用 UmiOCR 服务。
优点:数据仅在内网流转,适合多台机器共享 OCR 服务,安全性高。

步骤示例
  1. 在内网服务器上部署并启动 UmiOCR 服务,确保端口可被局域网访问。
  2. 在 UiBot 的“识别测试”任务中,调用内网服务器的 UmiOCR API(如 http://192.168.x.x:port/ocr)。
  3. 传入待识别图片路径或图片数据,获取识别结果。

五、UiBot 调用 UmiOCR 的常见方式

  1. HTTP 请求
    UiBot 可通过“HTTP请求”模块,向 UmiOCR 的 API 发送图片识别请求,获取返回的文字结果,本项目代码的调用方式。
  2. 命令行调用
    也可通过 UiBot 的“运行命令行”模块,直接调用 UmiOCR 的命令行工具进行识别。

六、适用场景

  • 需要本地化部署,数据不出本地/内网的企业或个人。
  • 多台 UiBot 机器人共享同一套 OCR 服务。
  • 对识别速度和数据安全有较高要求的自动化场景。

七、常见问题与建议

  • 端口被占用:确保 UmiOCR 服务端口未被其他程序占用。
  • 内网访问失败:检查防火墙设置,确保端口已开放。
  • 识别准确率:可根据实际需求调整 UmiOCR 的识别参数或更换模型。

八、项目代码


如需进一步定制流程或遇到问题,欢迎随时私聊!


九、后续扩展方向

  1. 多格式输入支持
    • 支持 PDF、扫描件批量识别,自动拆分与合并结果。
  2. 识别结果结构化
    • 增加表格、票据等结构化数据提取,便于后续自动化处理。
  3. 多语言识别能力
    • 集成更多语言模型,满足跨国/多语种场景需求。
  4. 识别结果自动校正
    • 增加后处理模块,如拼写检查、版面还原等。
  5. 与其他系统集成
    • 通过 API/Webhook 等方式,将识别结果自动推送到 ERP、OA 等业务系统。
  6. 权限与日志管理
    • 增加用户权限控制、识别日志记录,提升系统安全与可追溯性。
  7. 分布式/高可用部署
    • 支持多节点部署,提升识别服务的并发能力与稳定性。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐