调用百度AI平台API进行文字识别和图片识别
这篇博客主要介绍的是百度AI开放平台的OCR识别,包括文字识别和车型识别,个人感受是功能强大,但也还有提升的空间。
- 语言环境:Python3.7
- 编译工具:Spyder
相关接口和秘钥申请
首先上两个接口的地址:
- 文字识别
- 车型识别
在调用API之前,你得按百度要求申请API Key和Secret Key(简称AK、SK),然后根据AK和SK获取access_token
先上一下access_token获取的代码
importrequestsimportbase64client_id 为官网获取的AK, client_secret 为官网获取的SKak=youraksk=yourskhost=https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s % (ak, sk)response=requests.get(host).json()token=response[access_token]
ak和sk都要换成自己申请的,有了ak和token后就可以进行下面的工作了。
手写字体识别
首先上一张自己随手写的文字,辛弃疾的《永遇乐》,多少年来最爱的宋词之一
觉得能把上面的文字识别出来不,我觉得费劲。
好了,上文字识别的代码
request_url ="https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting"二进制方式打开图片文件
f = open(手写识别-草书风格.jpg,rb)
img = base64.b64encode(f.read())
params = {"image":img}
access_token = token
request_url = request_url +"?access_token="+ access_token
headers = {content-type:application/x-www-form-urlencoded}
response2 = requests.post(request_url, data=params, headers=headers).json()
result = response2[words_result]
results = []fori inrange(len(result)):
results.append(result[i][words])print(result[i][words])
请求过程很简单,结果在response2[‘words_result’]中,看看识别成啥玩意儿了:
哈哈,这么难识别的文字,居然还有不少是对的。那我换个正楷一点的字体呢,会不会好一点,说干就干。
换一张写的标准一点的手写照片
看看结果
wow,只有三个字识别错了,还是很棒的。这玩意儿可以用在很多地方,比如小学老师批改作业,最合适不过了,不过就得要求孩子们把字写好,不然容易扣分哦。
车型识别
代码差不多,我直接写上来了
request_url="https://aip.baidubce.com/rest/2.0/image-classify/v1/car"二进制方式打开图片文件f= open(车辆识别.jpg,rb)img= base64.b64encode(f.read())params= {"image":img,"top_num":5}access_token= tokenrequest_url= request_url +"?access_token="+ access_tokenheaders= {content-type:application/x-www-form-urlencoded}response= requests.post(request_url, data=params, headers=headers).json()
看看我在网上找的一张比亚迪的照片
看看识别情况
识别的很准确呢,真棒。
当然这是比较清晰的照片,如果遇到模糊的照片,识别成功率不到一半,百度AI加油哦。
小结
很棒的工具,这里只提到了两个功能,其他的应用各行各业似乎都能找到对应的接口,总之技术在进步,学习的脚步不能停。
共勉~~
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:01即可领取。
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。