java实现百度识图后台 | 您所在的位置:网站首页 › 百度始图 › java实现百度识图后台 |
1.百度识图 相信大家或许没对接过,但是肯定用过识图的功能,上个官网网址 https://ai.baidu.com/ai-doc/IMAGERECOGNITION/Nk3bcxfzd 说明一下 他这个例子包含两种方式 第一种
2.对接百度识图sdk 第一步 下载jar包 maven地址 https://search.maven.org/search?q=aip 版本自己选择 com.baidu.aip java-sdk ${version} //版本通过maven查询出来,填写第二步 开始整代码,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 options = new HashMap(); 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,百度识图,实现 |
CopyRight 2018-2019 实验室设备网 版权所有 |