垃圾分类识别
关爱环境卫生,人人有责,怎么快速识别垃圾的种类扔进相应的垃圾桶中,那接下来看如何快速识别垃圾分类。
功能描述
利用ClassifyingRubbish可以对图片中的物品垃圾进行分类,并给出具体的物品名称。
开通图像识别服务
阿里云控制台获取accesskey
安装SDK
安装Python SDK核心库。
执行如下命令,安装阿里云SDK核心库。pip install aliyun-python-sdk-core
安装视觉智能API相关服务Python SDK。pip install aliyun-python-sdk-imagerecog
编写代码
导入需要使用的模块,以及阿里云视觉相关的模块
import os
import json
from urllib import request
import numpy as np
import cv2from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkimagerecog.request.v20190930.ClassifyingRubbishRequest import ClassifyingRubbishRequest
配置AccessKey
将阿里云的AccessKey和AccessSecret写入配置文件,需要的时候通过函数调用,代码如下。
#获取accesskeyId和accessSecret
def get_access():
with open(r'accesskey.conf', 'r') as f:
KeyId, Secret = f.read().split() #split切割
return accessKey, accessSecret
编写代码调用阿里云视觉平台的垃圾分类功能
def Rubbish_Check(accessKeyId, accessSecret, oss_url):
client = AcsClient(accessKeyId, accessSecret, 'cn-shanghai')
request = ClassifyingRubbishRequest()
request.set_accept_format('json')
request.set_ImageURL(oss_url)
response = client.do_action_with_exception(request)
return response
print(str(response, encoding='utf-8'))
程序测试
使用下图测试程序
测试结果
{
"RequestId": "7C8AFC06-3A25-4DE4-A52E-6676D45F9B0C",
"Data": {
"Sensitive": false,
"Elements": [
{
"Rubbish": "果蔬",
"Category": "湿垃圾",
"CategoryScore": 1,
"RubbishScore": 1
}
]
}
} }
识别结果
是否存在敏感信息:不存在敏感信息
垃圾是否可回收:否
垃圾识别置信度:100%
具体物品名称:果蔬
物品名称置信度:100%
结语
欢迎小伙伴们一起讨论。