基本流程理解:
我们要使用百度提供的接口去实现某些功能,大致流程如下:
1.注册百度开放平台帐号;
浏览器打开http://ai.baidu.com/,进入百度ai的页面,点击右上角的控制台按钮进行登录或者注册;
注册就不详解了,相信大家都会,拥有了百度开放平台的帐号之后偶,我们登录进去:

2.创建应用
在右边选择你需要的服务

这里我们以人脸识别这一块为例子,点击进去之后可以在页面看到创建应用的按钮:
进去之后,输入应用名称和应用描述就行了,接口选择这里由默认的,如果西药其他功能也可以自己酌情勾选,
创建好应用之后,我们在应用管理页面可以看到我们刚刚创建好的应用:

这里我们特别注意API Key和Secret Key(Secret Key的值以*隐藏的,我们可以点击后面的显示让他显示出来),这两个码我们在后面会使用,可以先记录下来或者后面再来查看。

3.下载sdk
我们在百度AI的官网上如图操作:

在开发资源导航按钮点击SDK下载,进入sdk下载页面

在左边选择人脸识别,然后在后面对应的语言(java HTTP SDK)进行下载(我们这里是java),点击java对应的后面的下载按钮进行下载。

下载完成之后,我们对下载的压缩文件进行解压,是三个jar包,我们导入我们的项目;

现在可以开始写我们的代码了,代码大致步骤如下:
1.请求指定的url(get方式请求,url后面接上参数,下面详细说);
2.第一步的访问,会返回给我们一个json字符串,其中的access_token很重要;
3.另一个url链接,再加上第二步获取到的access_token值进行访问(post方式,参数放在请求体中);
4.根据第三步url访问,也会返回给我们一个json字符串,这个字符串里面就是我们想要的东西下面详细说明;

注:这里我们可以参考百度ai的开发文档,然后里面有详细的介绍,还有写好的代码,我们可以直接复制,
还是在 百度ai的首页-开发资源导航按钮-文档中心
1.
根据我们的需要,这里选择“人脸识别”,


我们可以看到人脸识别下面由很多功能模块(人脸检测、人脸对比、人脸搜索等),我们这里例子就做人脸对比,所以选择人脸对比栏,我们在右边正文区下翻,翻到代码区域这里,这里由不同的语言写的demo,我们查看java的,

这个java类是用来获取前面说道的access_token的
// 官网获取的 API Key 更新为你注册的
String clientId = “百度云应用的AK”;
// 官网获取的 Secret Key 更新为你注册的
String clientSecret = “百度云应用的SK”;
return getAuth(clientId, clientSecret);

我们可以直接把这个代码复制到我们的项目中就行了(可以新建一个.java文件,把代码放到文件中),修改一下包名,这里填上我们之前在开放平台创建的应用的两个码(API Key 和 Secret Key );
做到这一步,我们可以测试一下了,我们在类中添加一个main方法,然后调用上面复制的这个方法,并且打印出返回值,看看能否成功。

上面这几个步骤,实际上是访问的url:
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=这里填写你应用的API Key&client_secret=这里填写你应用的Secret Key

访问了这个url之后,会返回给我们一个json字符串,其中的access_token的值我们可以提取出来,后面会用到吗,这里详细说明一下,这个access_token值有效期是30天,所以我们要及时更换,或者每一次调用access_token值都重新执行上面的步骤(获取access_token),这样每次都是重新生成,就不需要30天更换一次了。这里特别注意:我们在提取返回的json字符串的时候,一定不要提取错了,其中第一个键值对和access_token格式很像,我们要提取的键名是access_token,我在这里就入过坑的。

当我们完成上面的步骤之后,能够成功返回json字符串,也能成功提取到access_token值就可以看下面的继续做了。

我们回到开放平台的文档中心,然后继续往下翻,我们翻到请求代码示例这里:


人脸对比的功能是我们上传两张照片,然后可以返回给我们相似度等等数据。
我们再建一个java类,或者直接在刚才的类中再加这个方法,把这个代码复制进去。

这里的流程是:
1.上传本地的图片两张,然后再把图片的文件流转换为base64(这是必须的),然后把转换好的base64编码放入到请求体中(post请求方式),这里都给我们写好了,所以不会写的小伙伴也可以用,如果不会文件上传或者base64编码也没关系,在这个代码中上面注释里写了,四个地址,我们每个都访问一下,就会下载四个工具类(FileUtil,Base64Util,HttpUtil,GsonUtils):
FileUtil.java:是用来上传文件的;
Base64Util:用来转换base64编码的;
HttpUtil:发送http请求的;
GsonUtils:json字符串封装和解封的;


这里是两个图片对比,所以需要两次,FileUtil.readFileByBytes(这里填写你图片的路径“”);


这一步是把我们的请求数据用map封装起来(然后转换为json字符串),后面放入请求体中;image键表示你刚刚转换号的base64码,image_type表示请求的照片格式,这里就填写BASE64,当然也有其他的格式,然后其他的键值对在开放平台的文档中都有详细介绍,这里就不详细说了。

我们看到下面
String result = HttpUtil.post(url, accessToken, “application/json”, param);
这个代码
这个是调用我们刚刚下载的四个工具类中的HttpUtil.java里面的方法进行url访问,
第一个参数url:表示我们请求的地址,在这个类上面已经写好了;
第二个参数accessToken:这里就是我们最开始获取到的access_token值;
第三个参数"application/json”:表示请求方式,我们前面把map封装好了之后通过GsonUtils封装成了json字符串;
第四个参数param:这个就是我们封装好的json字符串。

我们在主方法中调用这个方法,会返给给我们一个json字符串,就是我们想要的值了。
其他操作类似,
就说到这里,大神勿喷 小弟新人

【java】调用百度开发平台ai接口,完成人脸识别(人脸搜索、人脸对比、人脸检测等)功能--------超详细,适合小白相关推荐

  1. Java调用.net开发的webService接口

    若一个webservice接口是以.asmx格式来结尾的话,则表明该接口是.net开发的接口 例如:http://www.webxml.com.cn/WebServices/TranslatorWeb ...

  2. 百度智能云AI接口的植物识别

    文章目录 一个10学时的课程作业 一.在百度智能云(https://cloud.baidu.com/)注册账号并实名认证 二.获取接口 1.在用户中心的产品服务中选择图像识别 2.获取accessTo ...

  3. 百度AI人工智能开发平台api接口强---使用有感

    2019年上半年由于期末要求,无意中想到想做一个识别植物得小程序,但由于时间以及自己没有接触识别算法这方面知识,所以调用接口,后再搜索过程中,了解到了百度AI人工智能开发平台api接口(https:/ ...

  4. Java调用百度AI实现人体属性分析

    Java调用百度AI实现人体属性分析 好久没有更新了...闲来无事发一下模仿百度AI的人体属性分析. 百度AI效果图如下: 本人开发效果图如下: 界面大家可以忽略........下面讲讲代码实现 1. ...

  5. 基于百度云的 AI 接口调用

    基于百度云的 AI 接口调用   人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. ...

  6. java调用百度地图API依据地理位置中文获取经纬度

    百度地图api提供了非常多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/. 博主使用过依据地理依据地理位置中文获取经纬 ...

  7. Java调用百度API实现图像识别

    Java调用百度API实现图像识别 最近在做一个关于识别的小功能,翻阅了一堆资料,也实践自己去实现这个功能,最后识别的结果不是那么理想.这里介绍一个完全可以商用以及识别率超高的百度ai接口 1.为什么 ...

  8. 分享一个关于Java调用百度、高德API、ArcGIS地图获取逆地理的代码

    百度地图和高德地图用户获取国内地址, 区别在于高德地图的精确度比百度地图要高一点, 百度经纬度和高德地图经纬度位置相反, 高德地图不支持国外地址, ArcGIS地图获取国外地址 1.首先需要到高德开发 ...

  9. java调用百度翻译_Java调用百度API实现翻译-Go语言中文社区

    下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见点击打开链接 申请之后,会得到APP_ID和SECURITY_KEY 二.j ...

最新文章

  1. [CODEVS] 2189 数字三角形W
  2. Android开发之适配器模式初探
  3. hdfs文档存储服务器,一文读懂HDFS分布式存储框架分析
  4. 论文笔记:Unsteady Multi-Element Time Series Analysis and Prediction Based on Spatial-Temporal Attention
  5. html使用js的变量_JS变异小技巧:使用JavaScript全局变量绕过XSS过滤器
  6. HDU - 3746 Cyclic Nacklace(KMP的next数组判循环节)
  7. android config.mk,android编译分析之10—config.mk
  8. Hibernate--关系映射和关联关系的CRUD
  9. 天眼查数据采集、分析、深度挖掘
  10. ThinkpadE450 Win8改Win7 BIOS设置图解
  11. 计算机与经济学:天造地设的一对
  12. 哪款立体声骨传导蓝牙耳机好,推荐几款目前主流的骨传导耳机
  13. 详解项目管理中任务、成本、产品三者的关系
  14. 对于大型公司项目平台选择j2ee的几层认识(二)
  15. # 驱动安全编码排查指南
  16. 如何发布一款Android应用到安卓市场
  17. 运营商大数据 精准 实时为企业营销助力
  18. 学生宿舍管理系统 完成总结
  19. 利用apache+wsgi运行你的django网站 - Open Idea - 博客大巴
  20. 免费 SSL 安全证书

热门文章

  1. BUU-Crypto-世上无难事
  2. 精度更高,视野更大的Photoneo3D相机
  3. mysql report-port_mysql性能优化工具mysqlreport
  4. 宇宙无敌第一帅的Java笔记
  5. 手机android.sys木马,使用kali生成木马入侵安卓手机
  6. C语言中常常被忽略的知识-特殊字符打印、多组输入输出等等问题。
  7. html/html5学习
  8. 极客mysql45讲学习总结
  9. [python小工具]随机调用一个浏览器打开网页
  10. 5月15日,心情惆怅