阿里云【趣味视觉AI训练营】笔记4
一、笔记说明
- 本博客专栏《阿里云【达摩院特别版·趣味视觉AI训练营】》的所有文章均为趣味视觉AI训练营的学习笔记,当前【达摩院特别版·趣味视觉AI训练营】的学习路线内容为:
- 达摩院视觉AI介绍
- 分割抠图功能讲解及演示
- 文字识别项目讲解及使用说明
- 图像识别项目讲解及使用说明
- 实践课:人脸动漫化搭建
二、正文
本文将演示使用Python语言实现基于阿里云视觉智能开放平台的本地OSS方式场景识别和表情识别API调用。
2.1 调用前准备
2.1.1 激活AccessKey
AccessKey激活方法请前往本博客专栏阿里云【趣味视觉AI训练营】笔记3的正文->调用前准备->激活AccessKey部分查看。链接:https://blog.csdn.net/qq_35772105/article/details/115102789
2.1.2 开通服务
进入阿里云视觉智能开放平台,点击能力广场选项卡,选择人脸人体,点击表情识别选项进入表情识别详情页,点击免费开通。链接:https://vision.aliyun.com/experience/detail?spm=a211p3.14020179.J_7524944390.10.66cd35ccgX7O7A&tagName=facebody&children=RecognizeExpression
我们这里已经开通,直接使用API即可,若你没有开通,可参考本博客专栏阿里云【趣味视觉AI训练营】笔记1的正文-> 视觉智能开放平台初体验部分查看。链接:https://blog.csdn.net/qq_35772105/article/details/115073695
另外,我们还需要开通场景识别服务,步骤参考上文,链接:https://vision.aliyun.com/experience/detail?spm=a211p3.14020179.J_7524944390.89.66cd35ccO24kWq&tagName=imagerecog&children=RecognizeScene
2.1.3 安装SDK
视觉智能开放平台Python语言的SDK地址:https://help.aliyun.com/document_detail/145009.htm?spm=a2c4g.11186623.2.6.345971acNnGNQJ#concept-2145228
身份证识别SDK安装命令:
# 安装阿里云SDK核心库:
pip install aliyun-python-sdk-core
# 安装人脸人体SDK:
pip install aliyun-python-sdk-facebody
# 安装图像识别SDK:
pip install aliyun-python-sdk-imagerecog
2.1.4 准备OSS图像链接
根据阿里云的体验机制,在平台体验页上传图像后,其会在后台自动转为OSS对象,且在示例代码中自动更改为OSS链接。通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除(API必须在上海区)。可参考本博客专栏笔记阿里云【达摩院特别版·趣味视觉AI训练营】笔记1,链接地址:https://blog.csdn.net/qq_35772105/article/details/115073695
我们准备了3张图片,对比调用结果。
image1=“http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/1.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682508&Signature=l5gs30U4TeH2zLoNqxwykDEmZqE%3D”
image2=“http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/2.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682535&Signature=cYJqefDjCe5b2qAAGrKk15RTPSY%3D”
image3=“http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/3.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682557&Signature=AW0w2ip%2FdVoPJsFzyNp42JQKYXQ%3D”
2.2 API调用
#!/usr/bin/env python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkimagerecog.request.v20190930.RecognizeSceneRequest import RecognizeSceneRequest
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkfacebody.request.v20191230.RecognizeExpressionRequest import RecognizeExpressionRequest
import time
accessKeyId="LTAI5t72ALWDBt7Go12QV6EE"
accessSecret="7pQ2Aac5nwxPkNQWvn48nJic0bWwJP"
image1="http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/1.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682508&Signature=l5gs30U4TeH2zLoNqxwykDEmZqE%3D"
image2="http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/2.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682535&Signature=cYJqefDjCe5b2qAAGrKk15RTPSY%3D"
image3="http://explorer-image.oss-cn-shanghai.aliyuncs.com/uEJ2JhJT_DS2y1Zarw5ccISH/3.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1616682557&Signature=AW0w2ip%2FdVoPJsFzyNp42JQKYXQ%3D"
# 阿里云AccessKey账户验证
client = AcsClient(accessKeyId, accessSecret, 'cn-shanghai')
request_Expression = RecognizeExpressionRequest()# 表情识别
request_Scene = RecognizeSceneRequest()# 场景识别
request_Expression.set_accept_format('json')
request_Scene.set_accept_format('json')
# request_Expression.set_ImageURL(image1)
# request_Scene.set_ImageURL(image1)
# request_Expression.set_ImageURL(image2)
# request_Scene.set_ImageURL(image2)
request_Expression.set_ImageURL(image3)
request_Scene.set_ImageURL(image3)
response_Expression = client.do_action_with_exception(request_Expression)
print("表情识别结果:"+str(response_Expression, encoding='utf-8')+"/n/n")
time.sleep(3)# 延迟3秒,减少QPS
response_Scene = client.do_action_with_exception(request_Scene)
print("场景识别结果:"+str(response_Scene, encoding='utf-8')+"/n/n")
表情识别结果:{"RequestId":"A56AD661-6425-4746-8264-555CB260008E","Data":{"Elements":[{"Expression":"happiness","FaceRectangle":{"Left":188,"Top":136,"Height":130,"Width":104},"FaceProbability":0.99082750082015991}]}}/n/n
服务端异常:
C:\Users\kchacker\anaconda3\python.exe C:/Users/kchacker/Desktop/工作区/Python/数字图像处理/阿里云/阿里云表情识别和场景识别.py
Traceback (most recent call last):
File "C:/Users/kchacker/Desktop/工作区/Python/数字图像处理/阿里云/阿里云表情识别和场景识别.py", line 41, in <module>
response_Expression = client.do_action_with_exception(request_Expression)
File "C:\Users\kchacker\anaconda3\lib\site-packages\aliyunsdkcore\client.py", line 476, in do_action_with_exception
raise exception
aliyunsdkcore.acs_exception.exceptions.ServerException: HTTP Status: 400 Error:InvalidImage.Download ImageURL download failed. RequestID: 135B8000-D50E-41CC-A3A0-7AC71146B5B7
Process finished with exit code 1
场景识别API无法调用,报403错误,本地和开放调用平台均为此结果,异常均发生在服务端。
若需要Java语言的详细前后端工程代码,请前往GitHub下载官方Demo:https://github.com/aliyun/alibabacloud-viapi-demo
三、转载说明
- 本文内容完全原创,文章完成时间2021.3.25。
- 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/115102812
- 本文正文部分全部文本唯一MD5:4C7F5B6B38C5F8776403A9E8FA5700A9。
- 阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:https://developer.aliyun.com/adc/student/