垃圾分类
Quick Start
本示例演示了基于 OSS 浏览器端文件直传的能力
本示例演示了基于 Python 语言开发调用阿里云视觉智能服务的能力
创建应用
登录阿里云Serverless云开发平台,进入应用列表,点击「创建新应用」,选择「实验室」,勾选「AIoT」,在「解决方案」中,选择「智能生成页面智能识别图片方案」,点击下一步,按照提示完成应用的创建
应用创建完成后,等待代码仓库完成初始化,代码仓库初始化完成后,可以看到「开发部署」入口,点击打开 CloudIDE
添加环境变量,部署验证效果
至此,我们通过 ImgCook 智能生成的代码都准备好了,现在离验证整个项目还差最后一步,我们为此应用输入测试用的图片上传和图片智能识别的环境变量,复制以下代码
AKID=xxxxx AKSK=xxxxxxxx REGION=cn-shanghai OSSBUCKET=wb-case-showroom2 OSSDIR=photo
在云开发平台应用列表,找到我们创建的应用,在应用卡片上点击「应用配置」,将上面复制的代码粘贴进来,保存即可
我们可以在开发时调试应用程序,首先在容器内安装aliyunsdk
sudo pip install aliyun-python-sdk-core --target ./ -i https://pypi.tuna.tsinghua.edu.cn/simple
然后在CloudIDE中点击左侧「WB」插件,点击「测试」,查看输出即可
现在我们可以部署查看效果了,回到 CloudIDE,点击左侧「WB」插件,点击「部署」,等待部署完成,点击平台分配的临时免费测试域名,在打开的浏览器地址栏后面加上 /imgcook/index.html 就可以查看线上效果了
如何在自己的真实业务中使用该方案?
开通服务
开通阿里云视觉智能 viapi_imagerecog_public_cn/图像识别服务 https://common-buy.aliyun.com/?commodityCode=viapi_imagerecog_public_cn#/open
打开此链接查看:https://vision.aliyun.com/ 更多阿里云视觉智能开放能力
utils/oss_upload.py 中的 AKID、AKSK、OSSBUCKET、OSSDIR 需要替换为自己的 OSS 账号相关变量,推荐创建子账号进行授权,本示例中采用环境变量来配置这些敏感信息而不直接 hardcode 在代码中,参见下面「测试用环境变量」
algo.py 中的 AKID、AKSK 需要替换为自己的变量,该 AKSK 需要能够调用阿里云视觉智能图像识别服务,建议新建子账号,对子账号进行授权,授权策略如下:https://help.aliyun.com/document_detail/145025.html
由于图片是前端直传 OSS,OSS 需要打开跨域设置,设置过程参考这位同学的分享:https://blog.csdn.net/qq_41570658/article/details/106492447
OSS需要设置权限为公共读
使用安全的子账号授权策略
不要用主账号 AK/SK 信息在自己的应用里直接使用,可以创建一个子账号,为它授予指定的 OSS Bucket 读写权限和阿里云视觉智能服务的访问权限。可以将以下授权策略直接复制过去即可。最后使用这个子账号的 AK/SK 在应用中使用(注意OSS的bucket设置)。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "viapi-imageenhan:*",
"Resource": "acs:viapi-imageenhan:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-imagerecog:*",
"Resource": "acs:viapi-imagerecog:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-imageseg:*",
"Resource": "acs:viapi-imageseg:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-imageaudit:*",
"Resource": "acs:viapi-imageaudit:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-ocr:*",
"Resource": "acs:viapi-ocr:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-facebody:*",
"Resource": "acs:viapi-facebody:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-objectdet:*",
"Resource": "acs:viapi-objectdet:*:*:*"
},
{
"Effect": "Allow",
"Action": "viapi-goodstech:*",
"Resource": "acs:viapi-goodstech:*:*:*"
},
{
"Effect": "Allow",
"Action": "oss:*",
"Resource": [
"acs:oss:*:*:wb-case-showroom",
"acs:oss:*:*:wb-case-showroom/*"
]
}
]
}
环境变量替换成自己的真实内容
AKID=你自己的可控的AccessKeyID信息
AKSK=你自己的可控的AccessKeySecret信息
REGION=你的OSS所在的Region
OSSBUCKET=你的OSS Bucket
OSSDIR=你的OSS Bucket 里用来上传文件的目录