Python调用万能识别接口,英文数字、点选和问答
【摘要】 同一套接口就能做万能识别,不用换地址。英文和数字用 question「识别图中文本」,返回的 msg 是图里的字母或数字。问答用「回答图中问题」,msg 是答案。点选用「框出正确位置」,msg 是坐标。本地图片先转成 base64,不要带 data:image 前缀,再 POST JSON。keyCode 从控制台复制。免费模型用来先测通,正式调用换成普通模型。import base64im...
同一套接口就能做万能识别,不用换地址。
英文和数字用 question「识别图中文本」,返回的 msg 是图里的字母或数字。问答用「回答图中问题」,msg 是答案。点选用「框出正确位置」,msg 是坐标。本地图片先转成 base64,不要带 data:image 前缀,再 POST JSON。keyCode 从控制台复制。免费模型用来先测通,正式调用换成普通模型。
import base64
import requests
API = "http://ai.xinyuocr.xyz/api/qrcode/predict"
# question:
# 识别图中文本 英文和数字
# 回答图中问题 问答
# 框出正确位置 点选,坐标在 msg
# modelName: 免费模型先测,普通模型正式用
# base64 不要带 data:image/...;base64, 前缀
# 控制台:ai.xinyuocr.xyz 登录后复制 keyCode
def predict(image_path, key_code, question="识别图中文本", model_name="普通模型"):
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
payload = {
"base64Image": image_b64,
"modelName": model_name,
"keyCode": key_code,
"question": question,
}
data = requests.post(API, json=payload, timeout=60).json()
if data.get("errCode") != 0:
return data.get("err")
return data.get("msg")
if __name__ == "__main__":
print(predict("demo.png", "YOUR_KEYCODE"))
errCode 为 0 才算成功,文本或坐标都在 msg,失败原因在 err。返回 2003 时先等一会再请求,不要立刻重试。查余额走同一主机的 /api/qrcode/balance?keyCode=YOUR_KEYCODE,用 success 判断,付费余额看 money,积分看 freeMoney。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)