基于百度云通过Python实现简单的营业执照识别

先前在做图像文字识别这个需求的时候发现到百度云提供的SDK有一些有趣的小功能,提供了一些接口能实现身份证、银行卡、驾驶证、行驶证等图像识别,都尝试着玩了一下,发现营业执照的问题比较多,就以此为例简单写一下。

首先,进入百度云官网: https://cloud.baidu.com/

登陆后选择  产品→人工智能→文字识别→立即使用

进入下示界面后点击创建应用

最终我们是要得到

APPID,API Key,Secret Key这三个值

安装所需要的包:

pip install baidu-aip

 注意是 baidu-aip 而不是 baidu-api 

from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """
#图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

image = get_file_content('example.jpg')

""" 调用营业执照识别 """
text = client.businessLicense(image);

""" 可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

print(text)

其中涉及到几个参数的介绍

到此为止基本能实现基于百度云SDK的营业执照的图像识别,返回的格式为JSON。

功能演示:https://cloud.baidu.com/product/ocr/business

详细的我们可以参照 Python SDK 文档: https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html

当然,参考技术文档我们还能实现诸如驾驶证、行驶证、车牌识别,基本上大同小异,其中身份证、银行卡的识别效果较好,大家有兴趣可以自己简单实现一下。

同时也可以通过该SDK实现图像文字的提取,可以自己做一个截图工具,这个稍微复杂一些有空会另起一文补上。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

测试了一些营业执照图像,大致有如下几个问题:

1.只能满足 200次/天 免费,若是超过需要开通付费;

2.识别的效率低下,尤其是越模糊,识别难度大的;

3.未扩展实现对同一文件夹下的图片批量识别,由于识别效率低实在不想继续写了;

4.某些图片由于拍摄角度和清晰度的问题会导致识别不出值而返回 '无' 这个值,但是针对无水印扫描件没遇到问题;

5.营业执照有些格式与SDK的格式有差异,比如有些只有 '注册码' ,而非 '社会信用代码' ,会导致识别返回为空,这个问题还是比较大的。

大致上遇到这些问题,所以营业执照识别暂时放弃了百度云SDK方案,但是会对它继续关注。

同时也期盼能有可替代的开源版本。

猜你喜欢

转载自blog.csdn.net/Fowee/article/details/82430386
今日推荐