​百度智能云于2015年正式对外开放运营,以“云智一体”为核心赋能千行百业,致力于为企业和开发者提供全球领先的人工智能、大数据和云计算服务及易用的开发工具。凭借先进的技术和丰富的解决方案,全面赋能各行业,加速产业智能化。百度智能云为金融、制造、能源、城市、医疗、媒体等众多领域的领军企业提供服务,其中包含大量的API接口以及非常成熟的技术指导,适合各个行业的应用开发。(百度百科)​

        由于作者最近在做植被识别方面的项目,所以将项目中使用过的代码和经验分享出来,与大家一起交流学习。

一、获取token

1.首先要去百度智能云的官网,创建应用。获取需要的API Key和Secret Key。

在官网中找到产品中的图像技术的植物识别,跳转页面后点击“立即使用”,之后在“应用列表”中创建应用。创建完成后就可以看到应用的API Key和Secret Key,这两个用于Token的获取。

2.Python编写代码获取Token

有了API Key和Secret Key后就可以编写Python代码,实现Token的获取了。官方指导文档中也有相应的方法,我这里直接展示我的代码,代码中有注释。

def Get_Token(client_id, client_secret):
"""
:param client_id: 输入API Key
:param client_secret: 输入Secret Key
:return: 返回token
"""
print("正在获取Token......")
try:
url_token = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' \
f'&client_id={client_id}&client_secret={client_secret}'
# 请求地址
respond = requests.post(url_token)
# 请求方式
token = respond.json()["access_token"] # result = response.json()
return token
except Exception as e:
print("Error:获取Token失败!")
print(e)

二、图片转码

由于官方文档中请求图片的参数只能是URL或是Base64编码的图片,所以这里需要对本地图片进行转码。

Python代码:

f = open('G:/1.jpg', 'rb')
# 图片路径按照自己的来
img = base64.b64encode(fn.read())
# 将图片转至base64编码
params = {"image": img}
# 将图片转为对象

三、图片识别

前面的准备工作完成后就可以调用百度智能云的接口进行图片中植物的识别了。接口返回的数据中包括多个对象,对应不同的置信度(如图片中植物是韭菜的置信度是0.9,小麦的置信度是0.1,说明植物大概率是韭菜)。官方指导文件中也有相应的案例,可以去参考一下。

Python代码:

try:
headers = {'content-type': 'application/x-www-form-urlencoded'}
url_Identify_image = f'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant?access_token={token}'
respond = requests.post(url_Identify_image, data=params, headers=headers)
data = respond.json()
if respond:
for i in range(0, len(data['result'])):
# 遍历植物的所有可能性
print("置信度:%s,%s" % (data['result'][i]['score'], data['result'][i]['name']))
return data
else:
print("Error:请求响应失败!")
except Exception as e:
print("Error:识别图片失败!")
print(e)

四、代码组合

上面是分步的代码,接下来展示完整代码。运行时只需要修改API Key、Secret Key和图片路径即可。

import requests
import base64
# 图片转码模块
import tkinter.filedialog
# 创建窗口打开图片模块 def Get_Token(client_id, client_secret):
"""
:param client_id: 输入API Key
:param client_secret: 输入Secret Key
:return: 返回token
"""
print("正在获取Token......")
try:
url_token = f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' \
f'&client_id={client_id}&client_secret={client_secret}'
# 请求地址
respond = requests.post(url_token)
# 请求方式
token = respond.json()["access_token"] # result = response.json()
return token
except Exception as e:
print("Error:获取Token失败!")
print(e) def Identify_image(token):
"""
:param token: 输入token
:return: 返回植被信息
"""
f = open('G:/1.jpg', 'rb')
img = base64.b64encode(f.read())
# 将图片转至base64编码
params = {"image": img}
# 将图片转为对象
print("开始识别图片......")
try:
headers = {'content-type': 'application/x-www-form-urlencoded'}
url_Identify_image = f'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant?access_token={token}'
respond = requests.post(url_Identify_image, data=params, headers=headers)
data = respond.json()
if respond:
for i in range(0, len(data['result'])):
print("置信度:%s,%s" % (data['result'][i]['score'], data['result'][i]['name']))
return data
else:
print("Error:请求响应失败!")
except Exception as e:
print("Error:识别图片失败!")
print(e) if __name__ == "__main__":
loginName = "###"
# API Key,自己获取
password = "###"
# Secret Key,自己获取
token = Get_Token(loginName, password)
print("Token已获取成功......")
print()
Identify_image(token)
print("识别成功")

      本人才疏学浅,代码有不足的地方希望大家多多包涵。如果代码有问题或者有不懂的地方可以随时留言,一起学习交流Python方面的知识。

    本文章仅作为学习交流使用,API为百度智能云开放使用的,如有侵权请联系作者删除!

【Python&目标识别】调用百度智能云API实现植被识别的更多相关文章

  1. 百度智能云 API调用PythonSDK

    百度智能云 API调用PythonSDK 这是一个用于百度云部分开放AI功能的Python库.主要为ORC功能,可以对各种图像文件进行文字识别,包括车牌.手写文字.通用文字.人脸发现.人脸比对和人流量 ...

  2. 最新2019Java调用百度智能云人脸识别流程

    首先先注册账户 https://console.bce.baidu.com/?fromai=1#/aip/overview 点击链接 有账户直接登录  如无 则注册 进入控制台后 点击人脸识别 随便选 ...

  3. 基于百度智能云api下的车牌识别系统

    车牌识别在高速公路中有着广泛的应用,比如我们常见的电子收费(ETC)系统和交通违章车辆的检测,除此之外像小区或地下车库门禁也会用到,基本上凡是需要对车辆进行身份检测的地方都会用到. 简介 车牌识别系统 ...

  4. 百度智能云平台调用食物识别api Java实现

    纪录一下我小学期2天花了20小时写的菜品识别java程序. 1.2. 百度智能云简介 1.2.1 百度图像识别服务 百度图像识别服务,基于深度学习及大规模图像训练,准确识别图片中的物体类别.位置.置信 ...

  5. 利用百度智能云结合Python体验图像识别(转载来自qylruirui)

    https://blog.csdn.net/qylruirui/article/details/94992917 利用百度智能云结合Python体验图像识别只要注册了百度账号就可以轻松体验百度智能云中 ...

  6. laravel7 百度智能云检测内容及图片

    1:百度智能云,获取AppID,API Key,Secret Key https://console.bce.baidu.com/ai/?_=1642339692640&exraInfo=ai ...

  7. 基于百度智能云的OCR接口进行图文识别

    由于一些客户的内部系统需要提取一些记录信息,如果手工录入会变得比较麻烦,因此考虑使用百度云的OCR进行图片文字的提取处理,综合比较了一下开源免费的Tesseract 类库进行处理,不过识别效果不太理想 ...

  8. Java对接百度智能云人脸识别

    ------------------------->这篇文章就是自己做个笔记<------------------------- 首先登录or注册自己的百度智能云管理中心:https:// ...

  9. QT调用百度语音REST API实现语音合成

    QT调用百度语音REST API实现语音合成 1.首先点击点击链接http://yuyin.baidu.com/docs/tts 点击access_token,获取access_token,里面有详细 ...

  10. HTML实现调用百度在线翻译API

    HTML实现调用百度在线翻译API 本文章已收录于:   <!doctype html> <html lang="en"> <head> < ...

随机推荐

  1. flutter issue---->Scaffold.of(context)

    当我们想showSnackBar的时候,需要通过Scaffold.of(context)得到Scaffold.但是如果这个context用错的话,flutter就会抛出错误.下面我们通过代码仔细看一下 ...

  2. vite vue使用Markdown

    下载插件: npm i vite-plugin-md highlight.js github-markdown-css 配置插件: import Markdown from 'vite-plugin- ...

  3. 你绝对没想到的GPT的底层意义

    学会说话才是完整的人 有种说法在民间流传已久,在某些非洲部落中,孩子出生后往往会被称作"小人"或者"半个人",直到他们能够进行语言的交流才被认为是完全的人.这是 ...

  4. python入门教程之十四面向对象

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的 ...

  5. c#快速入门~在java基础上,知道C#和JAVA 的不同即可

    观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C# C# 学习参考文档和开发工具 微软c#官方文档:https://learn ...

  6. HTTP.sys漏洞的检测和修复(附补丁包下载)

    关于这个 HTTP.sys 漏洞,查了一些资料,没有一个写的比较全的,下面我来整理下. 这个漏洞主要存在Windows+IIS的环境下,任何安装了微软IIS 6.0以上的Windows Server ...

  7. 涨姿势了,有意思的气泡 Loading 效果

    今日,群友提问,如何实现这么一个 Loading 效果: 这个确实有点意思,但是这是 CSS 能够完成的? 没错,这个效果中的核心气泡效果,其实借助 CSS 中的滤镜,能够比较轻松的实现,就是所需的元 ...

  8. 人群定向SQL表

    SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for rc_throng -- ------ ...

  9. [git] 规范Commit格式

    规范Commit格式 Jenkins根据对比当次构建和上次构建的Commit信息来生成ChangeLog,但因为我们目前的提交不够规范,经常有类似"#","update& ...

  10. MySQL(十二)索引使用的情况分析

    索引使用的情况分析 数据准备 创建表student_info.course CREATE TABLE `student_info` ( `id` int NOT NULL AUTO_INCREMENT ...