java实现百度识图后台

1.百度识图
相信大家或许没对接过,但是肯定用过识图的功能,上个官网网址
https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Nk3bcxfzd

说明一下 他这个例子包含两种方式
第一种

在这里插入图片描述
第二种
网址 https://ai.baidu.com/ai-doc/IMAGERECOGNITION/7k3bcxdn8
在这里插入图片描述
实现的时候看了一下两种的区别
(1)写法不同
第一种不需要写什么url,用下载的jar里面的方法直接使用
第二种比较麻烦,调用url要自己写,还要获取token什么的
(2)传参方式
第一种相对于第二种需要多传一个APP_ID
我自己用的第一种,比较简单,也好理解吧

2.对接百度识图sdk
第一步
下载jar包 maven地址 https://search.maven.org/search?q=aip
版本自己选择

<dependency>
    <groupId>com.baidu.aip</groupId>
    <artifactId>java-sdk</artifactId>
    <version>${version}</version>  //版本通过maven查询出来,填写
</dependency>

第二步

开始整代码,github官方地址 https://github.com/Baidu-AIP/java-sdk

我自己的demo

public class Sample {

    //设置APPID/AK/SK
    public static final String APP_ID = "";
    public static final String API_KEY = "";
    public static final String 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代理

        // 调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("baike_num", "5");  //返回百科信息的结果
        options.put("custom_lib", "false");


        // 参数为本地路径
        String image = "E:\\360MoveData\\Users\\wy\\Desktop\\369.png";
        JSONObject res = client.logoSearch(image, options);

        System.out.println(res.getJSONArray("result").toString());

    }
}

把对应的 APP_ID API_KEY SECRET_KEY 写上值,本地路径修改后,调用就成功了,返回结果

{
  "result": [
    {
      "probability": 0.90460052006487,
      "name": "阿迪达斯三叶草",
      "location": {
        "top": 378,
        "left": 99,
        "width": 556,
        "height": 226
      },
      "type": 1
    },
    {
      "probability": 0.74779063683969,
      "name": "阿迪达斯",
      "location": {
        "top": 78,
        "left": 102,
        "width": 558,
        "height": 559
      },
      "type": 0
    },
    {
      "probability": 0.1956473734387,
      "name": "阿迪达斯",
      "location": {
        "top": 78,
        "left": 102,
        "width": 558,
        "height": 559
      },
      "type": 1
    }
  ],
  "log_id": 6768713851368170883,
  "result_num": 3
}

识图分类以及返回结果值说明,请自行查看官方api,不在这解释了

3.总结
(1)JSONObject 获取里面key的值,直接getxxx,里面写返回值的key就好
在这里插入图片描述

(2)我启动appication的时候发生报错,LoggerFactory is not a Logback LoggerContext but Logback,具体解决方法在我另一篇文章里面
https://blog.csdn.net/m0_37712637/article/details/106524994

(3)官方api里面写的大概都是填写本地路径,真实项目大概率图片不是本地的。解决方法,前端传这个照片文件过来,然后后端直接把文件转为二进制图像数据

byte[] file = mf.getBytes();

然后在调用百度识图里面对应的方法即可

OK,百度识图,实现

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值