首页 > 其他分享 >百度图像识别

百度图像识别

时间:2022-10-28 20:48:20浏览次数:50  
标签:AipImageClassify 图像识别 String res client static public 百度

百度图像识别接口: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

相关文章