Python调用百度API进行动植物识别

1. 作者介绍

何昕,女,西安工程大学电子信息学院,2021级硕士研究生
研究方向:计算机视觉
电子邮件:[email protected]

孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:[email protected]

2. 百度API动植物识别接口介绍

2.1 百度API

百度API是百度平台对外开放的一系列应用程序接口。开发人员能够调用API与搜索平台直接交互,基于API开发自己的应用程序。目前百度开放的API涵盖了图像技术、语音技术、文字识别、人脸与人体识别,AR与VR,自然语言处理、知识图谱等接口,并且有些接口是可以免费使用的。
在这里插入图片描述

本次实验使用的是百度API中动物识别与植物识别两个接口。

2.2 动植物识别中用到的技术

2.2.1 深度学习

深度学习是目前图像领域非常主流和热门的算法。它是机器学习的一种,区别于传统的浅层学习,深度学习的不同之处在于:
(1) 强调了模型结构的深度;
(2) 明确了特征学习的重要性
在这里插入图片描述

目前我们比较熟悉的典型的深度学习算法有卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)以及深度强化学习(RL)。
这些网络都有非常优秀的学习能力,覆盖范围广,泛化能力强,有着很高的上线,并且还有很好的可移植性。
所以深度学习很适合用来进行图像的特征提取与匹配,这也是为什么目前大部分的图像检测与识别都会使用深度学习网络的原因。

3. 实验过程

3.1 实验环境

Python版本:3.6
IDLE:Pycharm
集成环境:Anaconda3
API:百度动/植物识别API
第三方库:requests库,百度api库

3.2 数据集

因为百度AI开放平台给出的是已经训练好的模型,所以我只用准备测试集,但是目前可找的数据集并不符合我的测试要求,所以我自己准备了一套小的数据集。里面分别有不同种类的动物20张,不同种类的植物20张。
在这里插入图片描述
在这里插入图片描述

3.3 实验步骤

1.搜索百度AI开放平台,登录账号,点击控制台
在这里插入图片描述

2.搜索需要使用的功能
在这里插入图片描述

3.进入功能页面后点击立即使用

在这里插入图片描述
在这里插入图片描述

4.点击创建应用,然后选择需要用到的接口,这里已经选用了图像识别的接口,如果无法使用可以点击下面的免费领取来领取需要的接口资源

在这里插入图片描述

在这里插入图片描述

5.然后我们就会得到使用这个端口的AppID、API Key 和Secret Key
在这里插入图片描述

6.接下里打开配置好环境的pycharm,根据百度AI开放平台提供的教程,获取使用端口的token(该教程在百度AI开放平台的API参考文档中)
在这里插入图片描述

#获取access token 
#encoding:utf-8
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())

上述代码运行结果如下,这里我们需要的是access token。
在这里插入图片描述

7.最后我们便可以来使用这个端口进行动植物识别了。由于这个端口拥有动物识别和植物识别两个功能的token,所以我们可以使用这一个token来进行动物识别和植物识别。

3.4 完整实验代码

这里是动物识别的代码,植物识别类似。

# encoding:utf-8

import requests
import base64

#动物识别

request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/animal"
#二进制方式打开图片文件
f = open('图片路径', 'rb')
img = base64.b64encode(f.read())

params = {
    
    "image":img}
access_token = '你的access token'
request_url = request_url + "?access_token=" + access_token
headers = {
    
    'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
   print (response.json())

3.5 实验结果与分析

在这里插入图片描述
在这里插入图片描述

识别相似的动植物时也有比较好的准确率,但是在识别桃花的图片时发生了误判,将其识别为美人梅,可能与我的图片清晰度有关。

4. 参考

百度AI开放平台技术文档
AI知识库:一文看懂深度学习/ https://easyai.tech/ai-definition/deep-learning/

猜你喜欢

转载自blog.csdn.net/m0_37758063/article/details/123646226
今日推荐