基于百度AI的垃圾分类系统

基于百度AI提供的接口,使用通用物体和场景识别API,根据接口返回图片内1个或多个物体的名称,获取百科信息,实现图像或视频内容分析、拍照识图等应用场景。

1.1 总体设计

本部分包括系统整体结构、系统流程和PC端系统流程。

1.1.1 系统整体结构

系统整体结构如图1-1所示。
在这里插入图片描述

1.1.2 系统流程

系统流程如图2所示。
在这里插入图片描述

1.1.3 PC端系统流程

PC端系统流程如图1-3所示。
在这里插入图片描述

1.2 运行环境

本部分包括Python环境、微信开发者工具和百度AI。

1.2.1 Python环境

需要Python 3.6及以上配置,在Windows环境下载Anaconda完成Python所需的配置,下载地址为https://www.anaconda.com/,也可下载虚拟机在Linux环境下运行代码。

1.2.2 微信开发者工具

下载地址为https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html。
创建项目:扫码登录微信小程序Web开发工具,填写APPID、项目名称、本地开发目录。

1.2.3 百度AI

相关步骤如下:
(1)网站地址为https://console.bce.baidu.com/? _=1535519624081&fromai=1#/aip/overview。
(2)选择产品服务中的通用物体与场景识别,单击创建应用。
(3)选择通用物体与场景识别及语音识别,创建完成。
(4)创建后选择应用,里面有APPID、API Key、Secret Key,这三个参数会在API时调用。
(5)使用创建应用所分配到的APPID、API Key及Secret Key,进行Access Token的生成。

1.3 模块实现

本部分包括2个模块:PC端垃圾分类和移动端微信小程序,下面分别给出各模块的功能介绍及相关代码。

1.3.1 PC端垃圾分类

PC端共分为获取access_token、载入图片函数、百度AI调用函数、获得html、main函数和GUI。
1.获取access_token
根据百度AI开放平台的技术文档,调用AI相关的接口向API服务接口使用POST发送请求,必须在URL中带上参数access_token,相关代码如下:

import requests
#client_id为官网获取的AK,client_secret为官网获取的SK
host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=
[AK]&client_secret=[SK]'
response = requests.get(host)
if response:
print(response.json())

获取的参数如图16-4中画线部分所示。
在这里插入图片描述
图16-4 获取参数

2.载入图片函数

垃圾分类图像识别的图片来自本地文件,而百度AI要求识别的图片用64位编码,所以导入win32ui和base64库。win32ui库用于生成文件对话框;base64库用于对图片文件进行编码。
在这里插入图片描述

3.百度AI调用函数

根据百度AI的技术文件修改而成,通过request库和access_token参数对接口进行请求,会返回一个列表,取出其中准确度最高的第一个字典,把root和keyword两个键值存为一个新的列表keyword并返回,如图16-5所示。
在这里插入图片描述

图16-5 列表

4.get_html函数

在网站https://lajifenleiapp.com/中获取其网页源码。
在这里插入图片描述

5.main函数

相关步骤如下:

1)根据API返回的内容爬取垃圾分类内容

借助beautifulsoup库,对网页https://lajifenleiapp.com/sk/和查询的关键字进行爬取,使用soup.find函数查找标签为div class=“col-md-9 col-xs-12” /div的节点,如果节点存在,则代表没有关键字相匹配的内容;如果soup.find的结果是None,则说明有该垃圾的相关信息,用string获得内容。
在这里插入图片描述

2)根据输入的关键字进行垃圾分类

输入关键字,爬取垃圾分类相应结果,如果未搜索到,则返回“没有与此物品名称匹配的词条”。
在这里插入图片描述

6.GUI

#此部分为GUI界面设计class Classification(object):def init(self):
#创建主窗口用于容纳其他组件
self.root =tkinter.Tk()
#给主窗口设置标题内容self.root.title("智能垃圾分类")
#创建一个输入框,并设置尺寸
self.trash input= tkinter.Entry(self.root,width=30,text="请输人垃圾的名称"self.trash input.grid(row=0,column=1)
#创建一个回显列表
self.display info =tkinter.Listbox(self.root, width=50,height = 10)self.display info.grid(row=10,columnspan=8,sticky= tkinter.E)
#创建查询按钮self,result button1 = tkinter.Button(self.root,comand = self.waste sortingl"文字查询")text =
self.result button1.grid(row=0,column=0)
self.result button2=tkinter.Button(self.root,command =self.waste sorting2text="图片查询")
self.result button2.grid(row=1,column=0)
#完成布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值