阿里云垃圾识别方案
在垃圾分类的项目中,我们采用阿里云视觉智能开发平台的接口来做垃圾分类的识别方案,通过上传 本地的拍照下的垃圾图片,通过阿里提供的接口来识别出该垃圾是干垃圾、湿垃圾、回收垃圾还是有害 垃圾。
对应官网地址如下:
进入网址后鼠标选中能力广场,然后滑倒图像理解,最后点击垃圾分类,操作如下图
一、点击开通账号
二、然后进入技术文档看看使用步骤,点击创建 AccessKey 跳转
根据上面描述的指引,蓝色为可点进去的详细说明,完成注册及运行环境的搭建。
重点: 1. 开通阿里云账号及图像识别服务,用自己支付宝即可开通
- 创建并获取 AccessKey ID 和 Secret
-
- 在 Linux 或开发板上安装所需的 SDK
-
- 根据示例代码进行修改垃圾分类识别
具体操作如下图
点击创建 AccessKey 跳转后,光标选中账号出线一个弹窗点击 AccessKey 管理
点击继续使用,然后再创建 AccessKey
接下来验证
在第一次获取到 AccessKey ID 和 AccessKey Secret,需要点击创建 AccessKey, 然后最好把 AccessKey.csv 下载下来备份,不然会找不到 AccessKey Secret 就需要重新创建。
三、SDK下载
在 ubuntu 22.04 或者众志开发板(orangepi 3.0.6)上安装图像识别(imagerecog)SDK
在下面图片中选中 SDK 总览 ,然后跳转
到下面页面后点击 Python 语言后跳转
找到阿里的图像相关的 SDK
在命令终端执行下面 2 条命令,下载系统需要的 sDK
sudo apt install python3-pip
install alibabacloud_imagerecog20190930
SDK 安装好了出现如下面,安装成功
同时配置 Linux 环境,根据自己实际的 ACCESS_KEY_ID 和 ACCESS_KEY_SECRET,下面的两行写入到家目 录下的目录中:
vi ~/.bashrc 和 /etc/profile #然后在末尾输入下面两行后保存
export ALIBABA_CLOUD_ACCESS_KEY_ID=“你的ID” #根据自己实际的ID填写
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="你的SECRET" #根据自己实际的SECRET填写
然后退出终端重新登录下,此时再执行 export,能看到这两个 Key 的存在
orangepi@orangepizero2:~$ export
declare -x ALIBABA_CLOUD_ACCESS_KEY_ID="你的阿里云Key ID"
declare -x ALIBABA_CLOUD_ACCESS_KEY_SECRET="你的阿里云Key Secret"
四、官方代码测试
使用官方示例代码测试是否执行成功,操作具体如下
复制”文件在本地或或可访问的 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'
)
def alibaba_garbage():
#场景一:文件在本地
img = open(r'/tmp/4.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)
if __name__== "__main__":
alibaba_garbage()
其中"/tmp/4.jpg"为本地测试用图片(根据在线文档要求:图像类型:JPEG、JPG、PNG,图像 大小:不大于 3 MB,图像分辨率:不限制图像分辨率,但图像分辨率太高可能会导致 API 识别超时,超 时时间为 5 秒)
测试图片如下:
然后用 python3 garbage.py 命令测试运行:
如上,测试成功,说明阿里云垃圾分类方案对接成功。
标签:AccessKey,ACCESS,阿里,垃圾,KEY,import,识别,ID From: https://blog.csdn.net/2401_84019382/article/details/139534748