1. 程式人生 > 其它 >【人工智慧】動物、植物、車型、菜品、LOGO識別示例程式碼

【人工智慧】動物、植物、車型、菜品、LOGO識別示例程式碼

影象識別部分介面Java-API呼叫示例程式碼

https://gitee.com/xshuai/ai/不是完整的web專案大家沒必要下載執行。複製|下載相關程式碼即可

  • 準備工作 已經建立了影象識別應用並且拿到apikey sercetkey得到AccessToken
  • 程式碼中所用到的Java物件類所在目錄https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/pojo/image
  • 程式碼中所用到的工具類 https://gitee.com/xshuai/ai/tree/master/AIDemo/src/main/java/com/xs/util/baidu 只需要Base64Util FileUtil HttpUtil三個哦
  • 動物識別-JavaAPI示例程式碼
package com.xs.image;

import java.net.URLEncoder;

import com.alibaba.fastjson.JSON;
import com.xs.common.image.ImageAPI;
import com.xs.pojo.image.Animal;
import com.xs.pojo.image.Plant;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;

/**
 * 動物識別Demo
 * @author 小帥丶
 *
 */
public class AnimalDemo {
	public static void main(String[] args) throws Exception {
		//返回字串
//		String result = getAnimalResult("G:/animal.jpg", "24.509012e6b7fd242cff7557c13dc436de.2592000.1512873097.282335-10131029");
//		System.out.println(result);
		//返回java物件
		Animal plant = getAnimalBean("圖片路徑", "自己應用apikey&sercetkey生成的AccessToken");
		System.out.println(plant.getResult().get(0).getName());
	}
	/**
	 * 動物識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return 字串
	 * @throws Exception
	 */
	public static String getAnimalResult(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.ANIMAL_API, accessToken, param);
        System.out.println(result);
        return result;
	}
	/**
	 * 動物識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return LOGO物件
	 * @throws Exception
	 */
	public static Animal getAnimalBean(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.ANIMAL_API, accessToken, param);
		Animal animal = JSON.parseObject(result,Animal.class);
        System.out.println(result);
        return animal;
	}
}
  • 植物識別-JavaAPI示例程式碼
package com.xs.image;

import java.net.URLEncoder;

import com.alibaba.fastjson.JSON;
import com.xs.common.image.ImageAPI;
import com.xs.pojo.image.Plant;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;

/**
 * 植物識別
 * @author 小帥丶
 *
 */
public class PlantDemo {
	public static void main(String[] args) throws Exception {
		//返回字串
//		String result = getPlantResult("圖片路徑", "自己應用apikey&sercetkey生成的AccessToken");
//		System.out.println(result);
		//返回java物件
//		Plant plant = getPlantBean("圖片路徑", "自己應用apikey&sercetkey生成的AccessToken");
//		System.out.println(plant.getResult().get(0).getName());
	}
	/**
	 * 植物識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return 字串
	 * @throws Exception
	 */
	public static String getPlantResult(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.PLANT_API, accessToken, param);
        System.out.println(result);
        return result;
	}
	/**
	 * 植物識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return LOGO物件
	 * @throws Exception
	 */
	public static Plant getPlantBean(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.PLANT_API, accessToken, param);
		Plant plant = JSON.parseObject(result,Plant.class);
        System.out.println(result);
        return plant;
	}
}
  • 車型識別-JavaAPI示例程式碼
package com.xs.image;

import java.net.URLEncoder;

import com.alibaba.fastjson.JSON;
import com.xs.common.image.ImageAPI;
import com.xs.pojo.image.Animal;
import com.xs.pojo.image.CarMode;
import com.xs.util.baidu.Base64Util;
import com.xs.util.baidu.FileUtil;
import com.xs.util.baidu.HttpUtil;

/**
 * 車型識別Demo
 * @author 小帥丶
 *
 */
public class CarModelDemo {
	public static void main(String[] args) throws Exception {
		//返回字串
//		String result = getCarModeResult("圖片路徑", "自己應用apikey&sercetkey生成的AccessToken");
//		System.out.println(result);
		//返回java物件
		CarMode plant = getCarModeBean("圖片路徑", "自己應用apikey&sercetkey生成的AccessToken");
		System.out.println(plant.getResult().get(0).getName());
	}
	/**
	 * 車型識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return 字串
	 * @throws Exception
	 */
	public static String getCarModeResult(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.CAR_API, accessToken, param);
        System.out.println(result);
        return result;
	}
	/**
	 * 車型識別Demo
	 * @param imagePath
	 * @param accessToken
	 * @return CarMode物件
	 * @throws Exception
	 */
	public static CarMode getCarModeBean(String imagePath,String accessToken) throws Exception{
		byte[] imgData = FileUtil.readFileByBytes(imagePath);
        String imgStr = Base64Util.encode(imgData);
		String param = "image=" + URLEncoder.encode(imgStr,"UTF-8");
        // 注意這裡僅為了簡化編碼每一次請求都去獲取access_token,線上環境access_token有過期時間, 客戶端可自行快取,過期後重新獲取。
		String result = HttpUtil.post(ImageAPI.CAR_API, accessToken, param);
		CarMode carMode = JSON.parseObject(result,CarMode.class);
        System.out.println(result);
        return carMode;
	}
}

如何獲取AccessToken:http://ai.baidu.com/forum/topic/show/496505

官網文件中心:http://ai.baidu.com/docs#/ImageClassify-API/top