100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java实现调用百度图像识别API 批量识别车辆车型 颜色等信息

java实现调用百度图像识别API 批量识别车辆车型 颜色等信息

时间:2023-08-12 13:19:39

相关推荐

java实现调用百度图像识别API 批量识别车辆车型 颜色等信息

java实现调用百度图像识别API,批量识别车辆车型、颜色等信息

在需要大量识别车辆车辆信息时,我们可以调用百度AI开放平台提供的API接口来完成批量处理。在百度AI开放平台申请好账号,创建应用后,我们就可以根据百题提供的APP_ID,APP_KEY,SECRET_KEYl来调用api接口,根据返回的识别数据,提取出自己所需要的车辆车型、颜色等信息,下面是利用java所实现的过程。

首先,下载百度图像识别API提供的Java SDK,地址为Java SDK,将SDK中的四个jar包添加到依赖。

接下来,调用百度API进行车型识别的具体代码如下:

import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.util.HashMap;import org.json.JSONArray;import org.json.JSONObject;import com.baidu.aip.imageclassify.AipImageClassify;public class CarRecognition {//填入自己申请的AAP_ID APP_KEY SECRET_KEYpublic static final String APP_ID = "AAP_ID";public static final String API_KEY = "APP_KEY";public static final String SECRET_KEY = "SECRET_KEY";public static void main(String[] args) {AipImageClassify aic = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); sample(aic); //调用识别方法 }public static void sample(AipImageClassify client) {HashMap<String, String> options = new HashMap<String, String>(); // 传入可选参数调用接口String color = null;//定义一个字符串用于后面存储车身颜色String type = null; //定义一个字符串用于后面存储车辆型号options.put("top_num", "3");//设置识别出的车型数量options.put("baike_num", "0");//设置给出的结果中是否需要包含车辆的百度百科描述信息String path = "car\\";//需要识别的本地图片所在文件夹路径File file = new File(path); File[] files = file.listFiles();try {BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("result\\carInfo.txt")),"gbk"));//建一个输出流用于输出车辆识别结果信息bufw.write("文件名 车型1 车型2 车型3 颜色"); //首先在文档中写出表头,使用$符号分割方便后期将txt文档数据导入excel中做分割bufw.newLine();for(int i=0;i<files.length;i++) {System.out.println(files[i].getName()); //打印一下当前正在处理的图片名称,方便看进度String image = files[i].getAbsolutePath(); //获取本地图片的绝对路径bufw.write(files[i].getName()+" ");//第一项数据为文件名JSONObject res = client.carDetect(image, options); //获取调用API接口所获取的车辆信息识别数据res,格式为JSONobject//下面进行JSONobjec数据的解析,提取出识别出的车型、颜色信息JSONArray results = res.getJSONArray("result"); //将返回的JSONObject中result数组的转化成JSONarray,下面利用循环分别获得每一种车型结果数据for(int j = 0;j<results.length();j++) {JSONObject obj = (JSONObject)results.get(j);//将JSONOarray中第j个JSONObject数据拿出type = (String) obj.get("name");//利用键“name”获取车型值bufw.write(type+" ");}color = (String) res.get("color_result");//利用键“color_result”获取返回的JSONObject中车辆颜色信息值bufw.write(color);bufw.newLine();bufw.flush();} bufw.flush();bufw.close();}catch (IOException e) {e.printStackTrace();}}}

示例:我们从网上找了一本田思域的照片:

运行程序输出结果如下:

识别结果中,排在第一位的就是可能性最大的车型。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。