UiPath如何调用百度OCR

  • 一、百度OCR的介绍
  • 二、百度OCR在UiPath中的使用
  • 1.在使用百度OCR之前, 我们需要先在百度注册一个账号, 然后在此地址登录https://login.bce.baidu.com/?account
  • 2.登录后, 点击左侧产品服务—人工智能—文字识别, 进入文字识别的控制台, 在此处新建一个应用, 根据提示, 填写应用的相关信息, 之后点击”立即创建”
  • 3.创建完成后, 我们可以在应用列表看到刚才创建的应用, 可以看到相应的API Key, Secret Key. 此处可以先记录API Key和Secret Key, 稍后我们将会用到
  • 4.打开UiPath Studio设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径,然后在Activities中搜索Take screenshot,并将其拖至设计区,点击Indicate on screen, 之后点击需要识别的文字或数字验证码图片. 本案例使用的是一个数字验证码7364, 在Screenshot 属性中, 使用快捷键Ctrl + k自定义Image类型的变量img_code
  • 5.在Activities中搜索Save Image,并将其拖至设计区, 在Image属性中, 输入步骤4返回的Image类型变量img_code, 并在FileName属性中, 输入你要保存图片的地址
  • 6.在Activities中搜索Python scope,并将其拖至设计区, 在Path属性中, 输入你的Python 安装路径, Target属性32位选择x86, 64选择x64, Version属性根据你的Python 属性来选择
  • 7.在Activities中搜索open browser,并将其拖至Python Scope的设计区, 在File 属性中, 输入Python 调用百度OCR的.py文件, 具体代码参考文末. 在Result属性中使用快捷键Ctrl + k自定义变量pyObject, 用来接收返回结果
  • 8.在Activities中搜索Invoke Python Method,并将其拖至Python Scope的设计区, 在InputParameters属性中, 输入参数(需要被识别的图片) {“E:\uipath\BlankProcess\BlankProcess\code.png”}, 这里需要用中括号括起来, 在instance属性中输入步骤7的返回结果pyObject, Name属性中输入代码中的调用方法名称baidu_ocr, 在Result属性中使用快捷键Ctrl + k自定义变量outObject, 用来接收返回结果
  • 9.在Activities中搜索Get Python Object,并将其拖至Python Scope的设计区, 在PythonObject属性中输入步骤8的返回结果outObject, 在Result属性中使用快捷键Ctrl + k自定义变量result, 用来接收返回结果
  • 10.
  • 11.在Activities中搜索Log Message,并将其拖至Python Scope的设计区, 在Message 属性中输入result.ToString, 用来打印百度OC识别的结果
  • 12.完整流程图及变量



一、百度OCR的介绍

百度OCR提供了多种场景下精准图像文字识别技术服务, 精准识别超99%, 并且可以免费试用. 详情大家可以去百度智能云官网了解, 地址是https://cloud.baidu.com/product/ocr_others/?_=1575858782543

二、百度OCR在UiPath中的使用

1.在使用百度OCR之前, 我们需要先在百度注册一个账号, 然后在此地址登录https://login.bce.baidu.com/?account
2.登录后, 点击左侧产品服务—人工智能—文字识别, 进入文字识别的控制台, 在此处新建一个应用, 根据提示, 填写应用的相关信息, 之后点击”立即创建”

uipath 调用python作用域没反应 uipath调用ocr接口_百度


uipath 调用python作用域没反应 uipath调用ocr接口_百度_02

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_03

3.创建完成后, 我们可以在应用列表看到刚才创建的应用, 可以看到相应的API Key, Secret Key. 此处可以先记录API Key和Secret Key, 稍后我们将会用到

uipath 调用python作用域没反应 uipath调用ocr接口_Python_04

4.打开UiPath Studio设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径,然后在Activities中搜索Take screenshot,并将其拖至设计区,点击Indicate on screen, 之后点击需要识别的文字或数字验证码图片. 本案例使用的是一个数字验证码7364, 在Screenshot 属性中, 使用快捷键Ctrl + k自定义Image类型的变量img_code

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_05


uipath 调用python作用域没反应 uipath调用ocr接口_搜索_06


uipath 调用python作用域没反应 uipath调用ocr接口_搜索_07

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_08

5.在Activities中搜索Save Image,并将其拖至设计区, 在Image属性中, 输入步骤4返回的Image类型变量img_code, 并在FileName属性中, 输入你要保存图片的地址

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_09

uipath 调用python作用域没反应 uipath调用ocr接口_Python_10


uipath 调用python作用域没反应 uipath调用ocr接口_百度_11

6.在Activities中搜索Python scope,并将其拖至设计区, 在Path属性中, 输入你的Python 安装路径, Target属性32位选择x86, 64选择x64, Version属性根据你的Python 属性来选择

uipath 调用python作用域没反应 uipath调用ocr接口_百度_12


uipath 调用python作用域没反应 uipath调用ocr接口_uipath_13

7.在Activities中搜索open browser,并将其拖至Python Scope的设计区, 在File 属性中, 输入Python 调用百度OCR的.py文件, 具体代码参考文末. 在Result属性中使用快捷键Ctrl + k自定义变量pyObject, 用来接收返回结果

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_14


uipath 调用python作用域没反应 uipath调用ocr接口_百度_15


uipath 调用python作用域没反应 uipath调用ocr接口_百度_16

8.在Activities中搜索Invoke Python Method,并将其拖至Python Scope的设计区, 在InputParameters属性中, 输入参数(需要被识别的图片) {“E:\uipath\BlankProcess\BlankProcess\code.png”}, 这里需要用中括号括起来, 在instance属性中输入步骤7的返回结果pyObject, Name属性中输入代码中的调用方法名称baidu_ocr, 在Result属性中使用快捷键Ctrl + k自定义变量outObject, 用来接收返回结果

uipath 调用python作用域没反应 uipath调用ocr接口_百度_17


uipath 调用python作用域没反应 uipath调用ocr接口_搜索_18


uipath 调用python作用域没反应 uipath调用ocr接口_uipath_19

9.在Activities中搜索Get Python Object,并将其拖至Python Scope的设计区, 在PythonObject属性中输入步骤8的返回结果outObject, 在Result属性中使用快捷键Ctrl + k自定义变量result, 用来接收返回结果
10.

uipath 调用python作用域没反应 uipath调用ocr接口_搜索_20


uipath 调用python作用域没反应 uipath调用ocr接口_Python_21


uipath 调用python作用域没反应 uipath调用ocr接口_uipath_22

11.在Activities中搜索Log Message,并将其拖至Python Scope的设计区, 在Message 属性中输入result.ToString, 用来打印百度OC识别的结果

uipath 调用python作用域没反应 uipath调用ocr接口_百度_23

12.完整流程图及变量

uipath 调用python作用域没反应 uipath调用ocr接口_uipath_24


uipath 调用python作用域没反应 uipath调用ocr接口_Python_25


uipath 调用python作用域没反应 uipath调用ocr接口_搜索_26

#运行完成,你会看到日志窗口打印了百度OCR识别后打印的文本值

总结:以上流程就用到了百度OCR识别的操作,大家可以动手试试

附:Baidu_ocr.py的代码

from aip import AipOcr
 APP_ID = ‘你的AppID’
 API_KEY = ‘你的API_KEY’
 SECRET_KEY = ‘你的SECRET_KEY’
 client = AipOcr(APP_ID, API_KEY, SECRET_KEY)def get_file_content(filePath):
 with open(filePath, ‘rb’) as fp:
 return fp.read()def baidu_ocr(path):
 image = get_file_content(path)
 client.basicGeneral(image)
 options = {}
 options[“language_type”] = “CHN_ENG”
 options[“detect_direction”] = “true”
 options[“detect_language”] = “true”
 options[“probability”] = “true”
 res = client.basicGeneral(image, options)
 res_str = res[‘words_result’]
 res_str_all = ‘’
 for i in range(len(res_str)):
 res_str_a = res[‘words_result’][i][‘words’]
 res_str_all += res_str_a
 return res_str_all