【人工智慧】動物、植物、車型、菜品、LOGO識別示例程式碼
阿新 • • 發佈:2022-05-03
影象識別部分介面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