​百度智能云于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. 一次spark任务提交参数的优化

    起因 新接触一个spark集群,明明集群资源(core,内存)还有剩余,但是提交的任务却申请不到资源. 分析 环境 spark 2.2.0 基于yarn集群 参数 spark任务提交参数中最重要的几个 ...

  2. ByteHouse MaterializedMySQL 增强优化

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前言 社区版 ClickHouse 推出了MaterializedMySQL数据库引擎,用于将 MySQL 中的表 ...

  3. Algorithm参数记录

    一.vector<Point2f> vector是一个存储二维点坐标的容器,其中每个元素都是一个Point2f类型的对象.在OpenCV中,Point2f表示一个由两个单精度浮点数构成的二 ...

  4. 08列表(list)与元组(tuple)

    列表(list)与元组(tuple) 列表的格式 >- [数据1,数据2,数据3,数据4,......] >- 列表可以存储多个数据,数据之间的逗号以英文分割而且可以数据是不同类型的数据, ...

  5. 【SSM项目】尚筹网(四)JWT以及基于拦截器的前后端分离登录验证

    引入JWT前后端交互 JsonWebToken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.JWT就是一段字符串,分为三段[头部.载荷.签证]. 1 后端配置 1.1 ...

  6. ES日志存储以及备份压缩到COS

    导语 为了满足用户日益增长的日志存储大小,不影响用户的写入和查询性能.满足不同用户写入流量.同时用户日志长期保存,日志存储比较占用空间和成本.ES集群规格配置高,消耗资源和成本.我们基于Go语言设计了 ...

  7. OI 数论中的上界估计与时间复杂度证明

    预备 0.1 渐进符号 其实不少高等数学 / 数学分析教材在讲解无穷小的比较时已经相当严谨地介绍过大 O.小 O 记号,然而各种历史习惯记法的符号滥用(abuse of notation)[1] 直到 ...

  8. 批量更新Postgresql的序列

    序列(sequence)是 PostgreSQL 中的一种对象,用于生成自动递增的唯一标识符.通常,序列会与表的自增主键一起使用,以确保每个新插入的行都有一个唯一的标识符.在某些情况下,可能需要更新序 ...

  9. 基于ChatGPT用AI实现自然对话

    1.概述 ChatGPT是当前自然语言处理领域的重要进展之一,通过预训练和微调的方式,ChatGPT可以生成高质量的文本,可应用于多种场景,如智能客服.聊天机器人.语音助手等.本文将详细介绍ChatG ...

  10. Mastering Regular Expressions(精通正则表达式) 阅读笔记:第一章,概念

    Real Scenario(现实场景) Here's the scenario: you're given the job of checking the pages on a web server ...