【十一】阿里云视觉识别方案-垃圾分类
在接下来的垃圾分类的项目中,我们采用阿里云视觉智能开发平台的接口来做垃圾分类的识别方案,通过上传本地的拍照下的垃圾图片,通过阿里提供的接口来识别出该垃圾是干垃圾、湿垃圾、回收垃圾还是有害垃圾。
接入指引:
- 注册阿里云账号:打开阿里云官网,在阿里云官网右上角,单击立即注册,按照操作提示完成账号注册。
- 开通能力:请确保您已开通图像识别服务,若未开通服务请立即开通。
- 创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权。
- 在线调试(可选):您可以通过OpenAPI Explorer在线调试能力,查看完整的调用示例代码及SDK依赖信息,也可以下载完整的工程。
- 开发接入步骤:
-
在SDK总览中选择您要接入使用的SDK语言。
-
在对应语言的SDK文档中找到AI类目为图像识别(imagerecog)的SDK包进行安装。
-
参考文档中提供的示例代码进行适当修改后调用。
-
示例代码:该能力常用语言的示例代码,请参见垃圾分类识别示例代码。(对应下面第三点)
-
客户端直接调用:该能力常用的客户端调用方式包括以下几种。
输入限制
- 图像类型:JPEG、JPG、PNG。
- 图像大小:不大于3 MB。
- 图像分辨率:不限制图像分辨率,但图像分辨率太高可能会导致API识别超时,超时时间为5秒。
- URL地址中不能包含中文字符。
1.接入阿里云
官网地址如下:https://vision.aliyun.com/
1.1首先登录注册(淘宝、支付宝账号都可以),之后在产品内容一栏搜索:垃圾分类
1.2点击立即开通,开通垃圾分类后,再返回点击技术文档查看使用说明。
1.3创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权。
1.4 在SDK总览中选择您要接入使用的SDK语言。
我们的垃圾分类属于图像识别,在Linux下进行pip安装
2.配置环境变量
配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
-
Linux和macOS系统配置方法
-
在IntelliJ IDEA中打开终端Terminal。
-
执行以下命令,配置环境变量。
<access_key_id>
需替换为您RAM用户的AccessKey ID,<access_key_secret>
替换为您RAM用户的AccessKey Secret。如果后续需要进行更多权限相关的配置,具体操作请参见使用RAM Policy控制访问权限。示例:export ALIBABA_CLOUD_ACCESS_KEY_ID=“123456789”
export命令可查看当前环境变量
export ALIBABA_CLOUD_ACCESS_KEY_ID="你的ID" #根据自己实际的ID填写 export ALIBABA_CLOUD_ACCESS_KEY_SECRET="你的SECRET" #根据自己实际的SECRET填写
关于环境变量的配置,如果下次重启再次打开的话,会丢失我们配置的。如何做到一劳永逸呢?
//把环境变量放到这个文件里面, #然后在末尾输入上面两行后保存 vi ~/.bashrc
然后退出终端重新登录下,此时再执行export,能看到这两个Key的存在
-
- Windows系统配置方法
新建环境变量文件,添加环境变量ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并写入已准备好的AccessKey ID和AccessKey Secret。然后重启Windows系统。本操作以Windows 10为例进行说明。
1. 打开文件资源管理器,在**此电脑**上右键单击**属性。**
2. 在右侧导航栏,单击**高级系统配置**。
3. 在**系统属性**对话框的**高级**页签下,单击**环境变量**。
4. 在**环境变量**对话框中,单击**新建(W)**。
-
在弹出的新建系统变量对话框中,添加环境变量
ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
,并写入已准备好的AccessKey ID和AccessKey Secret。 -
重启Windows系统,使配置生效。
3.示例代码
文件在本地或可访问的URL
garbage.py
# -*- coding: utf-8 -*-
# 引入依赖包
# pip install alibabacloud_imagerecog20190930
import os
import io
from urllib.request import urlopen
from alibabacloud_imagerecog20190930.client import Client
from alibabacloud_imagerecog20190930.models import ClassifyingRubbishAdvanceRequest
from alibabacloud_tea_openapi.models import Config
from alibabacloud_tea_util.models import RuntimeOptions
config = Config(
# 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。
# 如果您用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html
# 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。
access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
# 访问的域名
endpoint='imagerecog.cn-shanghai.aliyuncs.com',
# 访问的域名对应的region
region_id='cn-shanghai'
)
#场景一:文件在本地
#img = open(r'/tmp/ClassifyingRubbish1.jpg', 'rb')
#场景二:使用任意可访问的url
url = 'https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/imagerecog/ClassifyingRubbish/ClassifyingRubbish1.jpg'
img = io.BytesIO(urlopen(url).read())
classifying_rubbish_request = ClassifyingRubbishAdvanceRequest()
classifying_rubbish_request.image_urlobject = img
runtime = RuntimeOptions()
try:
# 初始化Client
client = Client(config)
response = client.classifying_rubbish_advance(classifying_rubbish_request, runtime)
# 获取整体结果
print(response.body)
except Exception as error:
# 获取整体报错信息
print(error)
# 获取单个字段
print(error.code)
附录:
1.AccessKey的创建
您可以为阿里云账号(主账号)和RAM用户(子账号)创建一个访问密钥(AccessKey)。在调用视觉智能开放平台API时您需要使用AccessKey完成身份验证。
您可以使用AccessKey构造一个API请求来调用视觉智能开放平台的各个能力。AccessKey包括AccessKey ID和AccessKey Secret。
- AccessKey ID:用于标识用户。
- AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。
警告
- 账号的AccessKey非常重要,创建成功后,请您确保AccessKey ID和AccessKey Secret的安全。一旦有泄漏的风险,请及时更新AccessKey。
- 由于主账号泄漏风险较大,建议您使用子账号进行操作。
- 阿里云视觉智能开放平台各类目视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。
主账号AccessKey
- 使用阿里云账号登录控制台。
- 将鼠标悬浮在右上方的账号图标上,单击AccessKey管理。
- 在安全提示对话框,阅读安全提示信息,然后单击继续使用AccessKey。
- 在AccessKey页面,单击创建AccessKey。
- 根据界面提示完成安全验证。
子账号AccessKey
子账号AccessKey需要通过主账号进行创建。
-
登录RAM控制台。
-
在左侧导航栏,选择身份管理 > 用户。
-
在用户页面,单击目标RAM用户名称。
-
在用户AccessKey区域,单击创建AccessKey。
-
根据界面提示完成安全验证。
-
在创建AccessKey对话框,查看AccessKey ID和AccessKey Secret。
您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。
本文介绍了如何使用阿里云视觉智能开放平台相关服务的Python SDK,具体包括SDK的获取、安装方法以及SDK代码示例。
说明
阿里云视觉智能开放平台各类目视觉AI能力SDK接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。
该版本SDK只支持Python3及以上,如不满足请升级Python版本。如必须使用Python2请使用Python老版(不推荐)。
2.Python-SDK安装
在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。具体操作,请参见创建AccessKey。
-
安装视觉智能API相关服务Python SDK。
-
使用依赖包工具安装(推荐)。
-
执行以下命令,安装需要的SDK包。
说明
仅安装所需的SDK包即可。
- 生成专区:
pip install alibabacloud_aigen20240111
- 人脸人体:
pip install alibabacloud_facebody20191230
- 文字识别:
pip install alibabacloud_ocr20191230
- 商品理解:
pip install alibabacloud_goodstech20191230
- 内容审核:
pip install alibabacloud_imageaudit20191230
- 图像识别:
sudo pip install alibabacloud_imagerecog20190930
- 图像生产:
pip install alibabacloud_imageenhan20190930
- 分割抠图:
pip install alibabacloud_imageseg20191230
- 目标检测:
pip install alibabacloud_objectdet20191230
- 图像分析处理:
pip install alibabacloud_imageprocess20200320
- 视觉搜索:
pip install alibabacloud_imgsearch20200320
- 视频理解:
pip install alibabacloud_videorecog20200320
- 视频生产:
pip install alibabacloud_videoenhan20200320
- 视频分割:
pip install alibabacloud_videoseg20200320
- 异步任务管理:
pip install alibabacloud_viapi20230117
- 自学习:
pip install alibabacloud_viapi_regen20211119
- 人脸核身服务端20200910专用版本:
pip install alibabacloud_facebody20200910
- 生成专区:
-
-
自行下载安装:使用
git clone
或其它方式下载SDK包并自行添加解决方案。详细下载地址如下所示。
3.pip安装
#1.查看是否安装了pip及版本
pip --version
pip3 --version
#2.如果没有,更新apt源
sudo apt update
#3.安装pip包,对于 Ubuntu/Debian 系统:
sudo apt install python3 python3-pip
-
添加 pip 到 PATH: 如果
pip
已经安装但系统找不到它,您可能需要将pip
的路径添加到 PATH 环境变量中。通常pip
会安装在/usr/local/bin/pip
(在类 Unix 系统上)。您可以将以下行添加到您的~/.bashrc
或~/.profile
文件中:#export PATH=$PATH:/usr/local/bin export PATH=$PATH:/usr/lib/python3/dist-packages/pip
然后,运行
source ~/.bashrc
或重新登录终端,以使更改生效。-
对于当前用户查看 PATH:
echo $PATH
/usr/lib/python3/
-
4.收费标准
购买地址:https://vision.console.aliyun.com/cn-shanghai/detail/imagerecog
垃圾分类识别能力支持按量付费、单类目预付费资源包和通用预付费资源包方式进行计费。
-
按量付费
调用量 价格 QPS限制 0<调用量(次/月)≤1,000,000 0.060元/次 2QPS 1,000,000<调用量(次/月)≤5,000,000 0.050元/次 调用量(次/月)>5,000,000 0.040元/次
重要
- 如果您未购买资源包,系统将会按照按量付费的价格计费,请留意并及时支付账单,避免因欠费等原因影响您的业务。欠费24小时后会冻结调用该能力,支付欠费账单后可恢复使用。
- 调用失败不计费。
- 价格费用计算详情请参见计费方式。
- 单类目预付费资源包
阿里云视觉智能开放平台提供首次购买5000点规格享全单免费试用优惠活动。资源包支持叠加购买,当资源包点数耗尽或过期后,将按照按量付费进行计费。您可根据实际情况按需购买资源包。资源包有效期1年,价格如下所示。
资源包规格 | 可调用次数 | 抵扣系数 | 标准价格 | 优惠政策 | QPS限制 |
---|---|---|---|---|---|
5,000点 | 208次 | 24点/次 | 12.5元 | 首次享0元免费试用 | 5QPS(次日8点后生效) |
500,000点 | 20,833次 | 24点/次 | 1,250元 | 无 | |
5,000,000点 | 208,333次 | 24点/次 | 12,500元 | 无 | |
30,000,000点 | 1,250,000次 | 24点/次 | 75,000元 | 无 | |
50,000,000点 | 2,083,333次 | 24点/次 | 125,000元 | 无 |
重要
- 通用预付费资源包
阿里云视觉智能开放平台提供首次购买5000点规格享全单免费试用优惠活动。资源包支持叠加购买,当资源包点数耗尽或过期后,将按照按量付费进行计费。您可根据实际情况按需购买资源包。资源包有效期1年,价格如下所示。
资源包规格 | 可调用次数 | 抵扣系数 | 标准价格 | 优惠政策 | QPS限制 |
---|---|---|---|---|---|
5,000点 | 833次 | 6点/次 | 50元 | 首次享0元免费试用 | 5QPS(次日8点后生效) |
10,000点 | 1,666次 | 6点/次 | 100元 | 无 | |
100,000点 | 16,666次 | 6点/次 | 1,000元 | 无 | |
1,000,000点 | 166,666次 | 6点/次 | 10,000元 | 无 | |
5,000,000点 | 8,333,333次 | 6点/次 | 50,000元 | 无 | |
10,000,000点 | 1,666,666次 | 6点/次 | 100,000元 | 无 | |
20,000,000点 | 3,333,333次 | 6点/次 | 200,000元 | 无 | |
50,000,000点 | 83,333,333次 | 6点/次 | 500,000元 | 无 | |
150,00,000点 | 25,000,000次 | 6点/次 | 1,500,000元 | 无 |