基于百度文字识别接口的图片中文识别

十点数据 1年前 ⋅ 3528 阅读

基于1百度文1字识别接口.jpg

最近在做基于模拟器的微信自动添加好友的应用时,模拟器中的打开的微信总是会出现一些异常,如下图:

图片_20200419233016.jpg

此时,就需要识别一下,然后重新启动模拟器。

有时,有些手机号对应的微信号不存在,如下图:

bucunz.png

此时,就需要识别出提示信息(该用户不存在),然后决定下一步操作。

本来想基于Tesseract-OCR+pytesseract自己做一个简单的识别,但是中文识别效果太差,最后决定测试一下百度的免费识别接口,发现识别的效果还是挺好的,如下图:

997121DE-E3C9-4fba-BC97-554A270B9B79.png

百度图片识别接口获取步骤:

一:注册百度智能云账户

注册百度智能云账户。如果大家有百度搜索、百度贴吧、百度云盘、百度知道、百度文库等产品的账户,这里可以直接登录,他们是通用的。

二:创建应用

登录进入控制台,选择“产品服务”--->搜索“文字"--->选择“文字识别”--->"创建应用",如下图:

CBD206BB-508F-4716-8FD2-07AC743651CC.png

创建完以后,会显示如下图信息: CD8E3AD0-5518-4755-B533-F0C2F2B83AC4.png

三:应用(接口调用)

由于我用的是Python,所以就展示一下Python的调用方式;

1》:获取session:

    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[你创建的要用的API Key]&client_secret=【你创建的要用的Secret Key】'
    response = requests.get(host)
    self.access_token = None
    if response:
        self.access_token = response.json()['access_token']
    print("access_token:", self.access_token)

2》:调用接口,识别图片

'''通用文字识别    更新时间:2020-01-16
    接口描述:基于业界领先的深度学习技术,提供多场景、多语种、高精度的整图文字检测和识别服务,多项ICDAR指标居世界第一。
    通用文字识别    免费使用    https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic    50000次/天免费    2QPS
'''
def generalOcr(self, imageFilePath):
    startTime = self.du.getCurrentTimeLong()
    result = None
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
    f = open(imageFilePath, 'rb') # 二进制方式打开图片文件
    img = base64.b64encode(f.read())
    params = {"image":img}
    request_url = request_url + "?access_token=" + self.access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        result = (response.json()['words_result'])
    endTime = self.du.getCurrentTimeLong()
    print("历时:", (endTime - startTime))
    return result

识别效果如下图:

69282F02-8E7B-4ff4-8EF2-5AAC424D7A52.png

E899C775-9952-4bca-B040-3F831E518C48.png

全部评论: 0

    我有话说: