基于百度AI平台的植物识别系统 新手适用!!

前言:这学期选了模式识别和数字图像处理,这两门课的实验部分都需要使用python语言,所以学习了python并且写这个demo练一下手。

因为是练手,所以 模式识别 部分是调用百度提供的API完成的,主要是pyqt5和python常用模块,语法的使用,适合新手学习。

一.项目演示

运行exe程序,会出现如此弹窗:

基于百度AI平台的植物识别系统 新手适用!!_第1张图片

当你选择植物的图片,上边的文本框会显示选中的这张图片的绝对路径,右边文本框就会显示该植物的名称。

基于百度AI平台的植物识别系统 新手适用!!_第2张图片

二. 程序原理

原理很简单,先用pyqt5构建一个如图的Gui界面,然后选择图片,选择图片后,通过图片的绝对路径构建request请求,调用百度AI平台提供的关于植物识别的接口,返回值是一个json格式的数据块,解析这个数据块就可以得到我们需要的结果。

三.程序实现

1.环境

开发语言:python3.7.9

开发模块:urllib urllib.request json PyQt5

API接口:百度API接口

os: win10

2.申请百度API接口

(1)进入 http://ai.baidu.com/ 网页,登录,然后访问控制台,再点击图像识别

(2)点击创建应用,然后添加应用名称,“植物识别”这个功能是百度默认添加的(每天可以免费调用500次),你也可以根据不同的API接口完成不同的识别功能。

最后点击创建,完成应用创建。

基于百度AI平台的植物识别系统 新手适用!!_第3张图片

(3)点击管理应用,会看到API key 和 Secret Key ,这两个值在之后的项目中会用到。

(4)获取access_key

调用api接口需要用到access_key,所以我们先获取access_key.代码如下:
 

#获取access_key
import urllib.request
API_key="your API_KEY"
SECRET_KEY="your_secret_key"
host="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="+API_key+"&client_secret="+SECRET_KEY
request=urllib.request.Request(host)
request.add_header('Content-Type','application/json;charset=utf-8')
response=urllib.request.urlopen(request)
print(response.read())

3.GUI程序

这里的Gui,我们使用的是Pyqt5,所有的Gui无非是两点,一个是布局,一个事件处理,当然组件的使用是最基础的。

这里的开发有两个难点:
一是如何打开文件框选择图片

使用QFileDialog组件

二是选择的图片如何在标签框上显示

使用QPixmap组件

其他没什么好说的

4.调用API接口,解析json模块

四. 源码

程序源码,我放在了GitHub上,https://github.com/HHUdirewolf/Plant-identification

基于百度AI平台的植物识别系统 新手适用!!_第4张图片

下载后,你运行或打包AIGUI.py即可。

总结:通过这个项目,可以了解python常用模块,类,函数,和元组,字典等数据类型的基本用法。完整的编写一个小demo,有助于你从宏观的角度了解这个语言的优势和运行机制。

写完,你会发现python真的太简便了,整个项目都不超过200行代码,库太强大了,我们只需要调用别人的“api”就可以完成所有功能。

 

你可能感兴趣的:(python,python,编程语言)