刚看了百度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了,自己搞起来吧,人工智能很简单!相关推荐

  1. Python调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序

    调用百度AI接口用以实现在线语音合成 并创建简单的GUI界面 生成可执行应用程序 1. 实验环境 Python3.8.Pycharm.window10 2.实验过程 1.首先登陆百度智能云:https ...

  2. 【舆情分析(1)】 舆情分析简介及百度AI开放接口搞定中文分词

    1. 舆情分析简介 1) 基本概念 舆情 -- 是"舆论情况"的简称,是指在一定的社会空间内,围绕中介性社会事件的发生.发展和变化,作为主体的民众对作为客体的社会管理者.企业.个人 ...

  3. 百度AI城市又搞事情!一天三场签约 上海市民要全面迎来AI了

    继百度"海淀城市大脑"在上个月落地西北旺镇以及百度与上海宝山区签署合作备忘录不久,11月27日,百度让人工智能全面走到了上海.这次动作似乎更大.一天三场签约--不仅与上海市政府签订 ...

  4. 百度ai智能写作工具-百度ai自动写文章

    百度AI智能写作工具:让创作更快捷.高效! 在当今竞争激烈的文化创意市场中,创作一篇高质量的文章需要投入大量时间和精力.然而,有了百度AI智能写作工具,创作变得更快捷.高效了. 百度AI智能写作工具采 ...

  5. 微信小程序+百度AI OCR二代身份证识别

    微信小程序内虽然有OCR识别功能 但是收费是按次计费的,还是选用了百度ai提供的OCR识别二代身份证. // 上传人面像upFileFront:function(e){let type = e.cur ...

  6. python调用百度AI识别文字和表格

    python调用百度AI识别文字和表格 获取账户信息 1.需要先注册百度AI,获得ID和密钥.百度AI社区关于注册的详细说明:https://ai.baidu.com/forum/topic/show ...

  7. Python——调用百度AI实现图片上文字识别

    Python--调用百度AI实现图片上文字识别 简介 步骤 安装百度AI库 注册百度AI开放平台 调用glob库 调用AipOcr库识别文字 可能会遇到的问题 批量操作 简介 Python免费调用百度 ...

  8. Yolov5+图像分割+百度AI接口——车牌实时检测识别系统

    Hallo,各位小伙伴大家好呀!这两天一直在肝项目,都是关于计算机视觉方面的,所以这两天一直也没有更新(真的不是我懒)!在这个过程中我对Yolov5有了更深刻的理解,在原有的Yolov5框架上增加了图 ...

  9. 百度AI 汽车识别

    百度AI 汽车识别 今天我对百度ai的汽车车型识别进行了上手,发现和百度ai的人脸识别流程没有相差很大,在学习过人脸识别后,对照百度的教程就很容易对汽车识别进行上手了. 我们直接进入正题 1.申请自己 ...

最新文章

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
  2. PHP中foreach详细分析—一般数组与对象数组
  3. 简单阐述hdfs的体系结构_HDFS主要特性和体系结构
  4. 我应该在CSS中使用px或rem值单位吗?
  5. Hadoop权威指南 _01前言感悟
  6. Ajax联手SOA打造企业级应用
  7. SpringBoot入门-基础入门
  8. 良田高拍仪集成WEB说明
  9. MP-SPDZ开源库——将结果输出到文件
  10. 语言认知模型--的学习笔记
  11. 推荐一款 GitHub 星标 11.5K 的神器,可将任何设备转换为电脑辅助屏幕
  12. 详细流程,新手做情感视频,上个月收入6千,适合没才艺的普通人
  13. 区块链开发之windows环境配置
  14. RxJava2 Flowable debounce(过滤操作符)去重复操作
  15. VMware CentOS6.5 安装VMware Tools
  16. 苹果在天猫新开旗舰店,狙击小程序还是为拿下中国市场?
  17. springboot 拦截器 及 可能失效原因
  18. 鸿蒙系统不得不知的技术要点
  19. 计算机教室电气设计规范,教育建筑电气设计规范 [附条文说明] JGJ310-2013
  20. pycharm运行虚拟环境Django项目报错

热门文章

  1. 如何在Tableau中的县级上映射数据
  2. Linux中将tab与空格互换
  3. 游戏产业链:主机游戏
  4. 手机游戏服务端怎么找到_当孩子下载了三页手机游戏后
  5. 待办事项app哪个好用?
  6. 高级选项修复计算机,Win7高级启动选项修复计算机的方法(图文)
  7. pygame教你从0到1一步步实现点到点的智能追踪系统(其三)
  8. 2022上海电动物流车|快递物流展浅谈顺丰、三通一达、京东等财报里“黑科技”
  9. Web前端学习笔记(三)---白色/黑暗背景切换
  10. 小米手机做USB电脑摄像头啦,亲测可用,附有详细教程!