最近发现了百度云开放AI,可以利用baidu-aip进行文字识别,这对于我们这种学生拿来做科研练手是最好不过了。接下来我会详细教大家如何创建百度云AI应用,以及Python与baidu-aip联合进行图像中的识别。
#1. 百度云帐号及应用申请
首先我们点击链接(https://cloud.baidu.com),然后用自己百度帐号登录(百度云盘之类的帐号就行,没有的话注册一个),然后点击右上角的管理控制台按钮进去(里面有好多免费的服务,感觉可以嗨一波),拉到下面选择文字识别点进去。找到创建应用这个按钮,点击后给应用取个名称,建议用字母数字的组合,写个应用描述其他的默认,然后立即创建即可。
创建完毕后我们可以选择下载SDK,然后利用Python的pip install命令进行安装。
安装好Python模块后可以返回应用列表,这里可以查看到我们的三个关键信息:APPP_ID、API_KEY、SECRET_KEY,这里后面编程需要用的。
#2. Python实现简单的图像文字识别官方介绍文档官方快速入门代码 通过上面2个链接的介绍,我们写出了下面的简单代码,识别的图片是前面从下往上数第三个图。
from aip import AipOcr
""" 你的 APP_ID API_KEY SECRET_KEY,上面的图已经展示了如何找自己的这三个信息,只需要复制信息,放进去单引号里面就行,均为字符串 """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
i = open(r'C:\Users\admin\Desktop\1.jpg','rb')
img = i.read()
message = client.basicGeneral(img)
for i in message.get('words_result'):
print(i.get('words'))
识别结果如下:
#可以看出,提取这种简单背景图片中的文字,baidu-aip与Python就短短十来行代码就行了,而且识别效果还挺好的,关键是不要钱啊,不怎么像百度,哈哈!
#更新:最近抓取验证码利用这个程序识别字母数字,发现这可怜的英文识别率哦,QQ手机版里面的图像识别都比它好用,不管是百度这个包里面的client.basicGeneral,client.accurate都不好用。上一张测试验证码图片:
上面2张是百度云和QQ手机版的测试结果,可以发现百度云这个不说大小写不准,还漏了个Z,QQ就很好了,全都识别出来了,还包括大小写。果然百度里面,免费的不靠谱,醉了。手动狗头