别再体验百度AI了,自己搞起来吧,人工智能很简单!
刚看了百度AI的人脸识别,火了很久的python+人工智能,百度号称专做AI,很多宣传课设的主题,百度AI-让你轻松人脸识别,简直像个笑话。我之所以这么说,是因为研究了两个小时的百度AI,除了搞明白他们专属的access_token、FACE_TOKEN之外,基本上什么都弄明白。所谓的百度AI,只是留给大家一个接口,然后执行一套固定的算法,结果就出来了,而真正做了什么,人工智能是什么,我们无从可知。相反,为了跑通这个程序,我们必须要搞明白他们固定的格式等等。
比如一个简单的例子,人脸对比(实际上就是两张图片相似度对比,而不管做什么,百度AI都是一个套路,只是调用的url和传递的参数不同而已)。
import json import urllib2,base64request_url='https://aip.baidubce.com/rest/2.0/face/v3/match' access_token='24.be46cb0dfcf032f2bb5b6d0d7c5fe95d.2592000.1530841589.282335-1135***' f=open('image/me1.jpeg','rb') img1=base64.b64encode(f.read()) f=open('image/ge1.jpeg','rb') img2=base64.b64encode(f.read()) params=json.dumps([{'image':img1,'image_type':'BASE64','face_type':'LIVE','quality_control':'LOW'},{'image':img2,'image_type':'BASE64','face_type':'LIVE','quality_control':'LOW'}])request_url = request_url + "?access_token=" + access_token request = urllib2.Request(url=request_url, data=params) request.add_header('Content-Type', 'application/json') response = urllib2.urlopen(request) content = response.read() if content:print content
结果:
{"error_code":0,"error_msg":"SUCCESS","log_id":3458405637,"timestamp":1528269847,"cached":0,"result":{"score":9.794300079,"face_list":[{"face_token":"23a6c949e2dd346b255b04bfa37a3adf"},{"face_token":"2b63ae8fbf51b5a9c9159ee1963df73a"}]}}
事实上,无论你做什么,红色部分都是一样的,变化的就是url和params,做不同的事,传递不同的url和参数而已,而已,而已
注意1:
而我们为了跑通这个程序,必须要知道的是,access_token:百度AIP开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上accesss_token参数,为了获得这个参数,我们需要知道
- grant_type: 必须参数,固定为
client_credentials
; - client_id: 必须参数,应用的
API Key
; - client_secret: 必须参数,应用的
Secret Key
;
看吧,跟大街上扫码送东西是一个套路,想要东西,必须先注册,然后关注,验证。。。
你理解了吧,就是需要先注册成百度云的会员,然后关注一些东西,由关注的应用得到上面三个参数,在利用这三个参数得到accesss_token
import urllib,urllib2,sys import ssl host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=GzUAKFpteL0RdmvscP0ne***&client_secret=FWUGgeEr7ROV5ZCQEhXq9i6vWMUSZ***' request=urllib2.Request(host) request.add_header('Content-Type','application/json;charset=UTF-8') response=urllib2.urlopen(request) content=response.read() print(content)
得到的accesss_token有效期为一个月。
注意2:
即便已经弄清了这些,我们还需要了解FACE_TOKEN,BASE64,
图片类型BASE64:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M;URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长);FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
为了获得FACE_TOKEN,你需要先把你的照片传上去,得到照片的id
import base64 import urllib,urllib2access_token='24.be46cb0dfcf032f2bb5b6d0d7c5fe95d.2592000.1530841589.282335-11356***' f = open('image/timg.jpg', 'rb') img = base64.b64encode(f.read())params = {"face_fields":"faceshape,facetype","image":img,'image_type':'BASE64'} params = urllib.urlencode(params)request_url='https://aip.baidubce.com/rest/2.0/face/v3/detect' request_url = request_url + "?access_token=" + access_token request = urllib2.Request(url=request_url, data=params) request.add_header('Content-Type', 'application/json') response = urllib2.urlopen(request) content = response.read() if content:print content
结果:
{"error_code":0,"error_msg":"SUCCESS","log_id":3263712876,"timestamp":1528267900,"cached":0,"result":{"face_num":1,"face_list":[{"face_token":"a104e76591417d746c754dfd37113331","location":{"left":225.6935577,"top":191.730545,"width":270,"height":250,"rotation":-3},"face_probability":1,"angle":{"yaw":11.16189766,"pitch":-1.837561846,"roll":-1.425307155}}]}}
看吧,第二个坑也不小吧,而且你的照片一经传上去了哦!百度云AI就这样多了一张照片哦!
注意3:
再就是url,这个坑完全是版本问题,他们给的url对应的版本是v3,请大家一定要看好版本,在对应的版本文档里面查看代码,2和3是完全不同的。
#v2
# params = {"images":img1 + ',' + img2} # params = urllib.urlencode(params)
#v3 params=json.dumps([{'image':img1,'image_type':'BASE64','face_type':'LIVE','quality_control':'LOW'},{'image':img2,'image_type':'BASE64','face_type':'LIVE','quality_control':'LOW'}])
当你把这些大坑都趟完了,你输入数据,存储了他们的数据库,他们给你个结果,仅此而已,对于AI,你仍然一窍不通,所以,还是踏踏实实的学习算法吧。
其实,分类也没有那么复杂,如果你不做算法研究,而仅仅是使用的话非常简单,个人觉得比调用百度AI还要容易,而且直观。
分类有声音、图片、视频、文本等,现在的文本分类是基于自然语言的,而图片分类,就是所谓的图像识别,准确率已经很高了,我们只要调用算法创建模型,在测试就可以了。
比如下面的小demo
#训练数据
training_feature = [[6,180,12],[5.92,190,11],[5.58,170,12],[5.92,165,10],[5,100,6],[5.5,150,8],[5.42,130,7],[5.75,150,9]] training_classify = [1,1,1,1,0,0,0,0] #训练模型 model=GaussianNB() model.fit(training_feature,training_classify) #测试数据 testing_feature=[[6,130,8],[5.9,177,10]]
#测试模型,得出结果 predict_classify=model.predict(testing_feature) print predict_classifyfor sex in predict_classify:if sex==0:print "女" else:print "男"
不论是什么算法,都是训练模型fit(),测试predict(),看吧,是不是很简单!
最后,有人会问,既然那么简单,我们都自己训练模型自己测试就完了呗,调百度AI干什么?
鸟啊,训练模型是需要大量数据的,在这个信息贵如油的时代,谁有数据谁说了算。百度就凭个接口凭什么那么牛,因为他们有数据啊!他们的数据哪里来?你们传的啊!
别再体验百度AI了,自己搞起来吧,人工智能很简单!相关推荐
- Python调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序
调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序 1. 实验环境 Python3.8.Pycharm.window10 2.实验过程 1.首先登陆百度智能云:https ...
- 【舆情分析(1)】 舆情分析简介及百度AI开放接口搞定中文分词
1. 舆情分析简介 1) 基本概念 舆情 -- 是"舆论情况"的简称,是指在一定的社会空间内,围绕中介性社会事件的发生.发展和变化,作为主体的民众对作为客体的社会管理者.企业.个人 ...
- 百度AI城市又搞事情!一天三场签约 上海市民要全面迎来AI了
继百度"海淀城市大脑"在上个月落地西北旺镇以及百度与上海宝山区签署合作备忘录不久,11月27日,百度让人工智能全面走到了上海.这次动作似乎更大.一天三场签约--不仅与上海市政府签订 ...
- 百度ai智能写作工具-百度ai自动写文章
百度AI智能写作工具:让创作更快捷.高效! 在当今竞争激烈的文化创意市场中,创作一篇高质量的文章需要投入大量时间和精力.然而,有了百度AI智能写作工具,创作变得更快捷.高效了. 百度AI智能写作工具采 ...
- 微信小程序+百度AI OCR二代身份证识别
微信小程序内虽然有OCR识别功能 但是收费是按次计费的,还是选用了百度ai提供的OCR识别二代身份证. // 上传人面像upFileFront:function(e){let type = e.cur ...
- python调用百度AI识别文字和表格
python调用百度AI识别文字和表格 获取账户信息 1.需要先注册百度AI,获得ID和密钥.百度AI社区关于注册的详细说明:https://ai.baidu.com/forum/topic/show ...
- Python——调用百度AI实现图片上文字识别
Python--调用百度AI实现图片上文字识别 简介 步骤 安装百度AI库 注册百度AI开放平台 调用glob库 调用AipOcr库识别文字 可能会遇到的问题 批量操作 简介 Python免费调用百度 ...
- Yolov5+图像分割+百度AI接口——车牌实时检测识别系统
Hallo,各位小伙伴大家好呀!这两天一直在肝项目,都是关于计算机视觉方面的,所以这两天一直也没有更新(真的不是我懒)!在这个过程中我对Yolov5有了更深刻的理解,在原有的Yolov5框架上增加了图 ...
- 百度AI 汽车识别
百度AI 汽车识别 今天我对百度ai的汽车车型识别进行了上手,发现和百度ai的人脸识别流程没有相差很大,在学习过人脸识别后,对照百度的教程就很容易对汽车识别进行上手了. 我们直接进入正题 1.申请自己 ...
最新文章
- doxygen可以生成C/C++代码的文档(根据注释)
- mysql报错2_MySQL基于报错注入2
- BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
- 爬虫技术python流程图_基于Python的网络爬虫技术研究
- oracle 常用知识点整理
- Scientific Linux 6.4安装详程
- Hadoop/HBase 配置snappy压缩
- Linux下合并分解加密解密PDF文件
- 微擎支付返回商户单号_易宝支付哪个平台扣的,被易宝支付扣款怎么办
- aliplayer 直播在微信和支付宝浏览器自动播放兼容
- SpringBoot 生产中 16 条最佳实践
- c语言英文背单词软件下载,英语百词斩下载,背单词最好的软件排名?
- plupload插件上传总结(分片上传,php后端处理)
- Yate for Mac(音乐标签管理工具)
- vscode跳转返回快捷键
- (二)textarea中placeholder不显示
- 数据库将表的字段值查询为字段名
- Problem G: 开个餐馆算算账
- 【华为OD机试】1023 - 查找兄弟单词
- MySQL Binlog实现流式实时分析架构
热门文章
- 钱伟刚 计算机系,新媒体传播与应用
- 贵州云计算机考试,贵州人事考试信息网
- 智慧园区能耗监测系统,打造环保新生态
- 编辑器生成的html代码再显示的样式冲突问题
- 【刘文彬】以太坊RPC机制与API实例
- Delta Lake - 走进 Databricks
- SpringBoot/Mybatis/Druid, 多数据源MultiDataSource配置思路
- python 计算面积 比计算几何慢_计算几何_求面积_辛普森积分公式
- MySQL mysqlbackup backup databse on win2k12r2
- 英语语法检查工具Grammarly安装使用指南(20200415)