-
2022-03-18 00:07:28
调用百度API 走了很多坑。。。
首先去百度AI开放平台 百度AI开放平台-全球领先的人工智能服务平台 进行注册 百度智能云 进行认证 不进行认证 不能使用api 。
APP_ID = '' """ 这里为百度智能云给自己的密钥 """ API_KEY = '' SECRET_KEY = ''
然后使用下面的代码进行base64 格式的转换
def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read()
下面试一试它的识别效果
首先,是直接在终端打印看识别的结果
使用代码
image = get_file_content('your/jpg_path') options = {} print("车辆识别结果为:") print(client.carDetect(image,options={"top_num": 5}).get('result')[0].get("name"))
这是我找的一张路虎揽胜的图片
完美打印出来车辆名字
下面说一下 如何在图片上显示出识别的结果
导入的库如下
因为cv 不能在图片上显示中文 ,因此我们要进行格式的转换。
首先是opencv 读取图片
img=cv2.imread('your/jpg_path') cv2img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 转换为 PIL格式的图片 pilimg = Image.fromarray(cv2img)
然后是在 PIL图片上打印汉字
draw = ImageDraw.Draw(pilimg) font = ImageFont.truetype("./simhei.ttf", 20, encoding="utf-8") draw.text((0, 20), '车型为:%s 车身颜色为:%s'%(client.carDetect(image,options={"top_num": 1}).get('result')[0].get('name'),client.carDetect(image,options={"top_num": 1}).get('color_result')), (0, 0, 255), font=font)
最后PIL图片转换回cv格式
cv2cimg = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)
显示结果
cv2.imshow("car", cv2cimg) cv2.waitKey(0) cv2.destroyAllWindows()
最后附上检测的结果图
小伙伴们快快动手试试吧!动手的过程会发现调用第三方接口的一些注意事项和解决问题。😁😁😁 还请大佬们轻喷🤢🤢
更多相关内容 -
调用百度API实现人像动漫化(C++)
2021-09-13 15:18:46介绍了调用百度API实现人像动漫化特效(C++)作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处准备工作
1)登录网站:人像动漫化-百度AI开放平台 。登录百度AI平台。
图1 登录百度AI平台 2)创建应用,领取免费次数。
图2 创建应用 图3 领取免费次数 3)复制AppID、API Key、Secret Key,调用接口的密钥。
图4 获取密钥 4)下载SDK,我用的C++,所以我只介绍C++的相关使用。
图5 SDK下载 图6 选择C++SDK 5)VS创建项目,包含SDK路径。
图7 包含SDK路径 6)项目配置OpenSSL库,详情见:
Windows下配置OpenSSL(傻瓜式教程,一看就会)_翟天保的博客-CSDN博客
7)项目配置libcurl库,详情见:
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)_翟天保的博客-CSDN博客
8)项目配置JsonCpp库,详情见:
Windows下用CMake编译JsonCpp及配置(适合新手)_翟天保的博客-CSDN博客
9)配置好环境,开始测试,见下方代码。C++比其其他语言确实是麻烦的多。。。
C++测试代码
#include <iostream> #include <curl/curl.h> #include <image_process.h> #include <opencv2/opencv.hpp> #include <json/json.h> using namespace std; using namespace cv; int main() { std::string app_id = "XXXXX";//id std::string api_key = "XXXXXXX";//api_key std::string secret_key = "XXXXXXXXX";//secret_key // 图像处理接口 aip::Imageprocess client(app_id, api_key, secret_key); // 选择图片 Json::Value result;; std::string image; aip::get_file_content("test2.jpg", &image); // 参数设置 std::map<std::string, std::string> options; options["type"] = "anime_mask"; options["mask_id"] = "3"; // 人像动漫化函数 result = client.selfieanime(image, options); // 获取结果 std::string res = result["image"].asString(); std::string result_dec; result_dec = aip::base64_decode(res); std::vector<char> base64_img(result_dec.begin(), result_dec.end()); cv::Mat img_decode = cv::imdecode(base64_img, IMREAD_COLOR); cv::Mat mask = img_decode * 255; // 保存图像 cv::imwrite("nresult.jpg", img_decode); cv::imwrite("nresultm.jpg", mask); return 0; }
测试效果
图1 原图 图2 戴口罩的动漫图 图3 不带口罩的动漫图 人像动漫化的API文档:
https://cloud.baidu.com/doc/IMAGEPROCESS/s/Mk4i6olx5
如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
-
Python调用百度API进行动植物识别
2022-03-21 21:07:48百度API动植物识别接口介绍2.1 百度API2.2 动植物识别中用到的技术2.2.1 深度学习3. 实验过程3.1 实验环境3.2 数据集3.3 实验步骤3.4 完整实验代码3.5 实验结果与分析4. 参考 1. 作者介绍 何昕,女,西安工程大学...Python调用百度API进行动植物识别
1. 作者介绍
何昕,女,西安工程大学电子信息学院,2021级硕士研究生
研究方向:计算机视觉
电子邮件:979839448@qq.com孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2425613875@qq.com2. 百度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/ -
Python调用百度API进行语音识别
2022-03-21 20:52:53本博文实现Python调用百度API进行普通话识别1.作者介绍
高志翔,男,西安工程大学电子信息学院,2021级研究生
研究方向:机器视觉与人工智能
电子邮件:562076173@qq.com刘帅波,男,西安工程大学电子信息学院,2021级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:1461004501@qq.com2.基于百度API的普通话识别
2.1语音识别
语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,此外为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等音频数据预处理工作,将需要分析的音频信号从原始信号中合适地提取出来。
一般流程:
2.2百度API调用方法
通过在百度智能开发平台,建立语音技术等应用,会获取相对技术权限功能。
创建完毕后百度会给你一个应用列表,使用这里的AppID,API Key及Secret Key便可以进行API的调用。3.实验
3.1实验准备
本次实验我们采用的是百度API进行识别,故需要安装baidu-aip模块
首先打开命令行,在里面输入pip install baidu-aip。
如上图,即是安装成功。
因为本项目采用pyqt5进行了界面编写,故还需要安装pyqt5模块。
打开命令行,在里面输入pip install pyqt5即可安装。
接下来需要去百度AI的官网去创建应用,获取AppID,APIKey,Secret Key。3.2实验结果
在此就可直接输入对应的数字,enter键后便开始录音,随即弹出百度搜索界面,可直接进行搜索,即实验成功!4.实验代码
import wave import requests import time import base64 from pyaudio import PyAudio, paInt16 import webbrowser framerate = 16000 # 采样率 num_samples = 2000 # 采样点 channels = 1 # 声道 sampwidth = 2 # 采样宽度2bytes FILEPATH = 'speech.wav' base_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s" APIKey = "********" # 填写自己的APIKey SecretKey = "**********" # 填写自己的SecretKey HOST = base_url % (APIKey, SecretKey) def getToken(host): res = requests.post(host) return res.json()['access_token'] def save_wave_file(filepath, data): wf = wave.open(filepath, 'wb') wf.setnchannels(channels) wf.setsampwidth(sampwidth) wf.setframerate(framerate) wf.writeframes(b''.join(data)) wf.close() def my_record(): pa = PyAudio() stream = pa.open(format=paInt16, channels=channels, rate=framerate, input=True, frames_per_buffer=num_samples) my_buf = [] # count = 0 t = time.time() print('正在录音...') while time.time() < t + 4: # 秒 string_audio_data = stream.read(num_samples) my_buf.append(string_audio_data) print('录音结束.') save_wave_file(FILEPATH, my_buf) stream.close() def get_audio(file): with open(file, 'rb') as f: data = f.read() return data def speech2text(speech_data, token, dev_pid=1537): FORMAT = 'wav' RATE = '16000' CHANNEL = 1 CUID = '*******' SPEECH = base64.b64encode(speech_data).decode('utf-8') data = { 'format': FORMAT, 'rate': RATE, 'channel': CHANNEL, 'cuid': CUID, 'len': len(speech_data), 'speech': SPEECH, 'token': token, 'dev_pid': dev_pid } url = 'https://vop.baidu.com/server_api' headers = {'Content-Type': 'application/json'} # r=requests.post(url,data=json.dumps(data),headers=headers) print('正在识别...') r = requests.post(url, json=data, headers=headers) Result = r.json() if 'result' in Result: return Result['result'][0] else: return Result def openbrowser(text): maps = { '百度': ['百度', 'baidu'], '腾讯': ['腾讯', 'tengxun'], '网易': ['网易', 'wangyi'] } if text in maps['百度']: webbrowser.open_new_tab('https://www.baidu.com') elif text in maps['腾讯']: webbrowser.open_new_tab('https://www.qq.com') elif text in maps['网易']: webbrowser.open_new_tab('https://www.163.com/') else: webbrowser.open_new_tab('https://www.baidu.com/s?wd=%s' % text) if __name__ == '__main__': flag = 'y' while flag.lower() == 'y': print('请输入数字选择语言:') devpid = input('1536:普通话(简单英文),1537:普通话(有标点),1737:英语,1637:粤语,1837:四川话\n') my_record() TOKEN = getToken(HOST) speech = get_audio(FILEPATH) result = speech2text(speech, TOKEN, int(devpid)) print(result) if type(result) == str: openbrowser(result.strip(',')) flag = input('Continue?(y/n):')
-
智能语音转换文字——百度API
2022-04-16 20:39:22百度API很好提供了这个功能——语音技术 (baidu.com) 新用户有五万次的免费请求次数,使用也不难,申请成功之后区控制台添加应用即可看到对应三个码 复制好这三个码,后面有用。 使用步骤: 1.导入依赖 &... -
调用百度API(七)——获取百度API token 通用代码
2021-02-19 10:55:44获取百度API token 通用代码 调用百度api有时需要获取token,基本方法都是一样的,所以我放在这里方便大家使用 import requests import json #======================================百度api请求token通用块儿==... -
调用百度API 报错:Open api qps request limit reached
2021-07-14 14:53:49最近在做车辆检测的项目需要用到百度车辆检测接口,遇到此问题。目前网上大部分回答都是说额度不够的原因,但我这里还剩余几千额度。最后发现是QPS(服务器每秒查询率)限额问题,如图QPS限制为2。 而我这里的... -
【物联网树莓派毕设03】树莓派4B调用百度API快速实现人脸识别
2022-01-08 22:34:24树莓派4B,调用百度API快速实现人脸识别,以及利用树莓派摄像头拍照实现人脸识别。 -
Python调用百度API实现人脸融合
2022-03-21 19:20:05本博文实现了调用百度API接口进行人脸特征信息融合。人脸特征融合技术适用于企业互动娱乐,相机,美妆,换脸换发等小程序、APP,可以为产品应用增加亮点和趣味性,感兴趣的小伙伴行动起来啊 -
使用百度API获取位置信息
2021-11-14 17:48:16espresso-core:3.1.1',{ exclude group: 'com.android.support', module: 'support-annotations' }) } 二、定位的实现部分 参考官方文档:Android定位SDK - 获取经纬度 | 百度地图API SDK 1.前端的界面就一个... -
python 调用百度api 文字转语音
2022-04-16 10:24:01先创建一个应用 然后把appid apikkey secret...API_KEY = '输入你的' SECRET_KEY = '输入你的' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) str = "此处输入文本" result = client.synthesis(str, 'zh', 3, { -
百度api语音识别
2020-11-29 14:57:40百度API进行音频识别(包括长音频)api注册短音频识别长音频识别音频格式转换项目地址参考网页 api注册 首先进度百度智能云,之后在里面注册一个语音识别api,获得密钥进行拼接使用 百度智能云 2.创建应用 3.... -
了解百度API
2020-11-02 18:02:42什么是百度API 百度地图API是一套有javascript语言编写的应用程序接口,他能帮助您在网站中构建功能丰富、交互性强的地图应用程序。百度地图API不仅包含构建地图的基本接口,还提供了诸如本地搜索、路线规划等数据... -
百度api验证码识别
2021-06-02 09:54:38在爬虫操作中难免会遇到文字验证码识别,处理方法有很多这次要说得是百度api的调用来对文字进行识别。分两步走第一:百度AI开放平台注册并建立自己的项目。第二:写代码。 百度AI平台创建项目 创建自己的账号,登录... -
调用百度API(一)——百度翻译
2021-01-27 16:25:28我喜欢把CSDN当做笔记,把我学的的比较完整的东西记录下来,最近在学调用百度的API,先拿比较简单的百度翻译入手(后面还会发一个案例出来),后续会调用百度的语音功能以及对应的的案例发出来给大家分享。... -
如何使用百度API提交收录?
2020-06-22 16:02:24百度收录有快速收录和普通收录,当前快速... 2、API提交和手动提交共享配额,每日至多提交10万条有价值的内容,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准,提交内容会进入百度搜索统一管理。 -
Python实例之调用百度API实现车牌识别
2021-05-09 21:48:59目录作者介绍API介绍调用过程代码实现Reference 作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。 研究方向:机器视觉与...首先打开百度智能云官网注册登录。 登录之后选 -
Python之调用百度API实现手势识别
2021-05-27 19:36:19目录作者介绍一、注册登录百度智能云二、创建应用获取SDK2.1 进入百度智能云---人体分析2.2 创建手势识别应用2.3 获取SDK三、手势识别附源码 作者介绍 周新龙,男,西安工程大学电子信息学院,2019级研究生,张宏伟... -
百度API调用方法
2020-04-13 13:15:04本文将介绍百度API的调用方法。 先介绍一下百度API叭。通俗点讲,平时用得到的大多数算法百度API都有,而且还非常好用,比如人脸识别、自然语言处理,这些都属于百度智能云的人工智能部分。百度API可以在云端使用,... -
小程序调用百度api实现图像识别
2021-10-05 18:47:511.1首先需要去百度智能云搜索图像识别 1.2创建应用--领取免费资源(我已经创建了应用,这个是可以免费使用一年的,测试够了) 1.3获取app_key和secret_key 点进上一张图的管理应用即可查看相应信息 二、... -
百度识图API教程一:使用百度api识别物体
2020-11-14 14:54:19百度API识别物体 百度在人工只能这个方向已经走了很多年了 再加上强大的搜索引擎和百度图库 在这么多条件的加持下将会创造一个强大的生态 不过目前只是能玩玩而已 但是可以进行持续性的关注 开始 浏览器打开:... -
百度API调用系列
2021-02-05 22:54:04百度API调用系列笔记 笔者最近这段时间一直在做百度API的调用,然后学到的一些东西就尽数记录在这里和大家分享 百度API的调用可能要做比较多的东西所以就在这里整理一下,有些还没写,但是在规划中,我会尽早更新 ... -
百度API语音识别
2020-12-29 11:36:40主要介绍百度API调用的方法,以语音识别为例 目录1)前往AI开放平台创建应用2)代码及注意事项3)python调用API1.识别本地文件2.录音识别4)报错信息 1)前往AI开放平台创建应用 首先,先进入百度API开发的网址... -
调用百度API实现人脸识别
2020-06-30 10:13:581、代码 from aip import AipFace import cv2 import time import base64 from PIL import Image from io import BytesIO ...API_KEY = 'YXL65ekIloykyjrT4kzc####' SECRET_KEY = 'lFiapBoZ5eBwOFyxMbiwQDmClg1u####' -
百度api爬虫(1)从百度api中爬取地点数据
2019-05-30 17:18:00百度api就是基于百度地图的开发接口,这么大的地图公司居然给开发接口真的很感激哎! 所以,言归正传。现在项目需求要把乌鲁木齐市内的所有清真寺都用矢量圈出来,然后做点统计啥的,最后做个专题图产品。 怎么把... -
使用百度API进行情感分析(python)(一)
2020-05-24 21:28:331. 获取百度API的ACCEESS_TOKEN 按照如下步骤(来自百度API接入官方文档): 百度API接入官方文档链接 百度帐户注册链接 ,点击注册即可 4. 获取Access Token 获取AccessToken百度官方文档 即访问向授权服务地址... -
Python调用百度API实现语音识别
2021-07-29 11:02:41Python调用百度API实现语音识别(一)前言上篇文章介绍了下如何用 Python 剪辑视频,想回顾的同学可以拉到文章最下面,有历史链接。有了上篇文章野狼disco的音频,今天就来带大家玩一下百度的API,如何借用百度 API ... -
百度API调用(六)——调用百度UNIT对话机器人
2021-02-07 16:51:31调用百度UNIT对话机器人一、功能描述二、创建机器人应用二、在原来的语音识别应用中添加UNIT功能 (或者直接新开一个应用也可以)三、python调用百度对话机器人四、使用实例 一、功能描述 调用百度UNIT平台中... -
百度js推送没法用了?帝国CMS结合百度API推送方法来了
2022-03-29 14:57:11网站建好了,想查看百度收录情况,自然是通过百度站长平台。之前百度站长提供了js自动推送方法,熊掌号还有什么天级推送。但是现在失效了,百度站长平台只能看到API提交和sitemap方式。 -
百度API调用失败解决方法
2021-06-03 15:56:44由于收到反馈,近几天百度API接口调用失败,报错提示为Open api qps request limit reached,解决方法如下。 领取免费接口资源 首先打开百度智能云官网登录。 登录之后选择一项产品查看该API的调用量限制和QPS限制...