百度AI 汽车识别

今天我对百度ai的汽车车型识别进行了上手,发现和百度ai的人脸识别流程没有相差很大,在学习过人脸识别后,对照百度的教程就很容易对汽车识别进行上手了。

我们直接进入正题

1.申请自己的百度app
2.申请access_token码
3.代码进行调用
4.成品展示
5.解析json

1.申请自己的百度app

我们依然打开老网址:http://ai.baidu.com

找到车型识别,点击进入


进入以后,点击立即使用。

点击创建应用,然后创建一个新应用。

在填写完资料后,我们会得到自己的API Key,Sercet Key。我们要保存下来,然后去获取access_token码。

2.申请access_token码

然后新建一个java文件。
去获取access_token码。


import org.json.JSONObject;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;/*** 获取token类*/
public class AuthService {/*** 获取权限token* @return 返回示例:* {* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",* "expires_in": 2592000* }*/public static String getAuth() {// 官网获取的 API Key 更新为你注册的String clientId = "APIKey";// 官网获取的 Secret Key 更新为你注册的String clientSecret = "Secret Key";return getAuth(clientId, clientSecret);}/*** 获取API访问token* 该token有一定的有效期,需要自行管理,当失效时需重新获取.* @param ak - 百度云官网获取的 API Key* @param sk - 百度云官网获取的 Securet Key* @return assess_token 示例:* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/public static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参数+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.err.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String result = "";String line;while ((line = in.readLine()) != null) {result += line;}/*** 返回结果示例*/System.err.println("result:" + result);JSONObject jsonObject = new JSONObject(result);String access_token = jsonObject.getString("access_token");return access_token;} catch (Exception e) {System.err.printf("获取token失败!");e.printStackTrace(System.err);}return null;}public static void main(String[] args) {getAuth();}}

我们在代码中的API Key和Sercet Key的地方填入自己在百度获取的相对应的API Key和Sercet Key。
点击运行获取相对应的access_token码。
我们在系统返回的result值里面找到相对应的access_token码复制。

3.代码进行调用

然后依照百度的下一步

package com.baidu.ai.aip;import com.baidu.ai.aip.utils.Base64Util;
import com.baidu.ai.aip.utils.FileUtil;
import com.baidu.ai.aip.utils.HttpUtil;import java.net.URLEncoder;/**
* 车型识别
*/
public class Car {/*** 重要提示代码中所需工具类* FileUtil,Base64Util,HttpUtil,GsonUtils请从* https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72* https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2* https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3* https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3* 下载*/public static String car() {// 请求urlString url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/car";try {// 本地文件路径String filePath = "[本地文件路径]";byte[] imgData = FileUtil.readFileByBytes(filePath);String imgStr = Base64Util.encode(imgData);String imgParam = URLEncoder.encode(imgStr, "UTF-8");String param = "image=" + imgParam + "&top_num=" + 5;// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。String accessToken = "[调用鉴权接口获取的token]";String result = HttpUtil.post(url, accessToken, param);System.out.println(result);return result;} catch (Exception e) {e.printStackTrace();}return null;}public static void main(String[] args) {Car.car();}
}

FileUtil,Base64Util,HttpUtil,GsonUtils这四个工具类都要在百度提供的网址里面下载好,不然程序无法运行。除此之外,这段程序需要两个jar包,org.json.jar和gson-2.8.0.jar,有需要的小伙伴可以自己去下载。

现在我们只需要在网上照一张汽车图片然后保存到本地,把地址复制到相对应的 [本地文件路径] 。
然后在 [调用鉴权接口获取的token] 里,填写自己的access_token码。

4.成品展示

博主在网上随便找了一张保时捷图片。

然后开始进行识别。

我们可以看到结果如下:

5.解析json

百度依然返回类型为json的result值。我们依然将它一步步分解。
博主是在复制记事本到记事本后进行分解。
汽车识别的json感觉比人脸识别返回的json短一些,更加容易分解。


详细分解大家可以看我人脸识别解析json的博客,比本文详细一点。

然后如果我们想要到返回值的话,就是必须要解析json的。我在eclipse里面对汽车识别的进行了简单分解。
代码如下:

  JSONObject jsonObject = new JSONObject(result);String result1 = jsonObject.getString("result");System.out.println("result1="+result1);JSONObject json1 = new JSONObject(result);String color_result = json1.getString("color_result");System.out.println("color_result=" + color_result);JSONArray json2 = new JSONArray(result1);int length1 = json2.length();for(int n=0;n<length1;n++) {string = json2.getString(n);System.out.println("string="+string);}

让我们来看一下效果如何。


到了这里我们已经可以完成初步解析了,像color_result的值已经可以直接使用了。

除此之外,百度还提供了百度百科的相关返回值。

不过这个和人脸识别的申请参数有些不同
我们需要在这一句后面加申请参数

 String param = "image=" + imgParam + "&top_num=" + 5 + "&baike_num" + 3;

baike_num后面的3是返回百科信息的结果数,默认值为0,不返回;2为返回前2个结果的百科信息,以此类推。范围是0-10。

然后我对返回值也在记事本里面进行了分解。
给大家一起看一下

可以看到百度返回了我们想用到的百度百科的相关内容。
到这里我们就已经掌握百度AI的汽车识别的应用了。
大家可以根据自己的想法爱好,继续包装成一个app。
博主目前在接着人脸识别写一个小程序,如果以后做好了有机会再给大家分享展示。

百度AI 汽车识别相关推荐

  1. 基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别

    基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别 一.前言概述 二.实时时间显示 三.百度AI人脸识别 3.1 获取access_token 3.2 发送请求,通过网络请求方 ...

  2. C# pdf 转图片 and 创建百度AI文字识别应用(识别图片中的文字和数字)

    /// <summary>/// pdf 转图片/// </summary>public static void Turnpicture(){string str = &quo ...

  3. python调用百度AI接口识别营业执照

    上一篇文章介绍了应用python中的pytesseract库和OCR识别软件进行文字识别.本文介绍应用百度AI的文字识别功能对营业执照进行识别,感兴趣的朋友一起来看看效果吧.    一.安装baidu ...

  4. 基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)

    基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别) 资源: download.csdn.net/download/weixin_53403301/43644312 ...

  5. 人脸检测颜值软件_百度AI人脸识别测颜值源码

    百度AI人脸识别测颜值由百度AI官方推出百度AI人脸识别测颜值源码,目前已将人脸识别氛围V2和V3两个接口,使用前需要参考相应的文档权限来选择接口类型.今天为大家带来的源码,就是让大家能够了解学习到百 ...

  6. 人脸检测颜值软件_百度AI人脸识别颜值-百度AI人脸识别测颜值源码下载-西西软件下载...

    百度AI人脸识别测颜值由百度AI官方推出,目前已将人脸识别氛围V2和V3两个接口,使用前需要参考相应的文档权限来选择接口类型.本次为大家带来百度AI人脸识别测颜值平台源码资源下载,相关的测量源码数据都 ...

  7. 百度AI人脸检测测颜值php,百度AI人脸识别测颜值源码app

    百度AI人脸识别测颜值源码app是由百度AI官方提供的,将人脸识别分为了两个接口,v2与vv3.需要根据文档权限来选择接口类型,这款软件非常方便用户学习和体验.想要学习相关信息的朋友可以来看看哦. 百 ...

  8. Java使用百度AI实现识别身份证照片信息,根据身份证号码,获取相关个人信息

    Java使用百度AI实现识别身份证照片信息 百度智能云-登录 1.登录百度智能云,选择文字识别,创建相关信息 2.获取APP_ID.API_KEY.SECRET_KEY 核心处理代码 import c ...

  9. 百度AI - 对接百度AI 增值税发票识别接口

    文章目录 百度AI - 对接百度AI 增值税发票识别接口 相关内容:Python 实用内容 1.注册应用并获取应用AK,SK 2.编写请求方法 3.上传发票并读取发票内容 4.输出结果 百度AI - ...

最新文章

  1. 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题
  2. XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件
  3. postgresql安装指南
  4. opencv安装与python cv2安装
  5. C++CLR类库封装Native类库并用C#调用
  6. kasp技术原理_KASP基因型测定技术在各个学科的应用实践(内附官方重要资料)...
  7. mysql影响行数解析_详解MySQL的数据行和行溢出机制
  8. 14.软件架构设计:大型网站技术架构与业务架构融合之道 --- 业务架构思维
  9. java自动识别文件编码格式
  10. 配置sharepoint站点为Form认证(下)
  11. sklearn--各分类算法简单应用
  12. (一)区块链的共识算法:整体介绍 及 分叉 的通俗讲解
  13. cass转换jpg_【转】南方CASS作原有地形图数字化--对扫描栅格图像进行校正及矢量化...
  14. 太开放计算机软件快上课,[计算机软件及应用]CAXA电子图版上课.ppt
  15. 手机APP测试——Perfecto
  16. 人脸识别中怎么区分人脸和照片
  17. kali Linux命令大全
  18. OUC软件开发实验1
  19. 创意者更新发布在即:欧美Win10份额已超Win7
  20. 区块链技术与应用实验报告(实验五)

热门文章

  1. UBOOT NVME驱动(一路io队列和一路admin队列的例程分析)(未完成)
  2. C语言编写仓库管理系统
  3. 线性系统与非线性系统、定常系统和时变系统、连续系统和离散系统、单输入单输出系统与多输入多输出系统(自动控制原理)
  4. 许多人不了解seo中的long tail关键字是什么。今天的小编为大家提供了一些示例说明
  5. 181216 MacOs上如何将多页PDF文件合成打印在一张PDF表单上面
  6. ppi转以太网连接西门子smart/200PLC连接软件配置方法
  7. 系统项目验收测试报告怎么做,2021最新测试报告收费情况
  8. Hi3519音频单声道改双声道
  9. eclipse2019详细安装教程
  10. 华为音频编辑服务,实时分离人声、伴奏和乐器声