83. 云服务识别增值税发票#
83.1. 介绍#
本次挑战中,你需要调用百度云提供的增值税发票识别接口,完成对增值税发票图片识别任务。
83.2. 知识点#
云服务调用
发票识别
前面的实验中,我们学习并使用了百度云提供的 AI 服务。同时,借助于百度云提供的 SDK 完成了几个自然语言处理任务和图像识别任务示例。本次挑战中,你需要独立完成对现有 API 的学习和调用,但这又与实验内容稍有不同。
开放型挑战
挑战:找到百度云提供的增值税发票识别接口,完成对增值税发票图片识别任务。
规定:不能使用百度云提供的 SDK,只能通过官方技术文档给出的 HTTP 请求方法完成本次挑战。
首先,挑战提供了一张示例的增值税发票图片如下:
图片 URL 链接为:https://cdn.aibydoing.com/aibydoing/files/invoice-demo.png
接下来,你需要构建一个用于该增值税发票图片识别的函数,完成对输入链接图片识别任务,并返回识别信息。值得注意的是,百度现有的 SDK 中并没有提供针对增值税发票图片的识别接口,所以你无法像实验那样快速调用。不过相关文档中提供的 HTTP 请求方式调用接口的方法。
你需要 自行注册 百度云账号,申请增值税发票识别授权码,并最终完成对输入图片链接的识别任务。挑战不会提供任何参考资料,需要你独立完成。
# 请在 Notebook 中完成本次挑战
参考答案 Exercise 83.1
import base64
import requests
from PIL import Image
from io import BytesIO
# 请求网络图片
def vat_ocr(url):
response = requests.get(url)
image = base64.b64encode(response.content) # 需按照 API 将图片处理成 Base64 编码
# 参考官方文档使用 AK 和 SK 获取 access_token 授权码
API_KEY = '0HUECBnp7enxo2EpiI8kqP5I'
SECRET_KEY = 'DdomRyxgwZepSX4mSlo1mroZu2YLN8jN'
token_url = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_KEY}&client_secret={SECRET_KEY}'
access_token = requests.get(url=token_url).json()['access_token']
# 将 access_token 添加至请求 URL 参数中
vat_url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice?access_token={access_token}"
# 请求增值税发票识别 API
r = requests.post(url=vat_url, data={'image': image, 'accuracy': 'normal'})
return r.json()
vat_ocr("https://cdn.aibydoing.com/aibydoing/files/invoice-demo.png")
期望输出:
○ 欢迎分享本文链接到你的社交账号、博客、论坛等。更多的外链会增加搜索引擎对本站收录的权重,从而让更多人看到这些内容。