百度图像识别接口:https://ai.baidu.com/ai-doc/IMAGERECOGNITION/rk3bcxg71
1、在网站找到控制台,创建账号,创建应用,然后获取APP_ID 、API_KEY、SECRET_KEY
2、导坐标或者导jar包
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>${version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
3、新建AipImageClassify
AipImageClassify是图像识别的Java客户端,为使用图像识别的开发人员提供了一系列的交互方法。
用户可以参考如下代码新建一个AipImageClassify,初始化完成后建议单例使用,避免重复获取access_token:
public class Sample { //设置APPID/AK/SK public static final String APP_ID = "你的 App ID"; public static final String API_KEY = "你的 Api Key"; public static final String SECRET_KEY = "你的 Secret Key"; public static void main(String[] args) { // 初始化一个AipImageClassify AipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); // 可选:设置网络连接参数 client.setConnectionTimeoutInMillis(2000); client.setSocketTimeoutInMillis(60000); // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 // 调用接口 String path = "test.jpg"; JSONObject res = client.objectDetect(path, new HashMap<String, String>()); System.out.println(res.toString(2)); } }
4、接口说明:https://ai.baidu.com/ai-doc/IMAGERECOGNITION/rk3bcxg71 里面有详细的参数说明
public void sample(AipImageClassify client) { // 传入可选参数调用接口 HashMap<String, String> options = new HashMap<String, String>(); options.put("baike_num", "5"); // 参数为本地路径 String image = "test.jpg"; JSONObject res = client.advancedGeneral(image, options); System.out.println(res.toString(2)); // 参数为二进制数组 byte[] file = readFile("test.jpg"); res = client.advancedGeneral(file, options); System.out.println(res.toString(2)); }
可以选择参数为本地路径或者二进制数组,在这里我的readFile会报错,经过查询,我改为了 Util.readFileByBytes
5、自己写的一个小例子,
package util; import com.baidu.aip.imageclassify.*; import org.json.JSONObject; import com.baidu.aip.util.*; import java.io.IOException; import java.util.HashMap; import static com.baidu.aip.util.Util.readFileByBytes; public class AipImageClassifyUtil { //设置APPID/AK/SK public static final String APP_ID = "28090873"; public static final String API_KEY = "FPSnWgXK2sbbyy3my1IncIYK"; public static final String SECRET_KEY = "sryr1ZvTF9QHMYCD4o646Xmm9X4Bk0UK"; public static void main(String[] args) { // 初始化一个AipImageClassify AipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); // 可选:设置网络连接参数 client.setConnectionTimeoutInMillis(2000); client.setSocketTimeoutInMillis(60000); // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 // client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 // client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 // 调用接口 // String path = "D:\\5.png"; // JSONObject res = client.objectDetect(path, new HashMap<String, String>()); // System.out.println(res.toString(2)); sample(client); } public static void sample(AipImageClassify client) { // 传入可选参数调用接口 HashMap<String, String> options = new HashMap<String, String>(); // options.put("top_num", "3"); // options.put("baike_num", "0"); options.put("with_face", "0"); // 参数为本地路径 String image = "D:\\4.png"; // JSONObject res = null; JSONObject res = client.advancedGeneral(image, options); System.out.println(res.toString(2)); System.out.println("********************"); // // 参数为二进制数组 // byte[] file = new byte[0]; // try { // file = Util.readFileByBytes("D:\\5.png"); // res = client.advancedGeneral(file, options); // } catch (IOException e) { // e.printStackTrace(); // } // System.out.println("-------------------------------"); // System.out.println(res.toString(2)); } }
遇到的问题:显示的结果有多种,想让他只显示一种结果。
标签:AipImageClassify,图像识别,String,res,client,static,public,百度 From: https://www.cnblogs.com/zhaolei0419/p/16837404.html