http://ai.baidu.com/forum/topic/show/496543 该帖子告知了如何创建应用并且申请建库
加入开发者群:630770006
本帖子主要是给出了Java-API 调用相似图检索接口示例代码。
- 相似图检索-入库
package com.xiaoshuai.baidu.imageserach;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import com.baidu.aip.util.Base64Util;
import com.xiaoshuai.baidu.util.FileUtil;
import com.xiaoshuai.baidu.util.HttpUtil;
/**
* @author 小帅丶
* @类名称 Test
* @remark
* @date 2017-11-10
*/
public class Test {
/**
* 相似图检索-入库
*/
public static String IMAGESEARCH_ADD = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add";
/**
* 相似图检索-检索
*/
public static String IMAGESEARCH_SEARCH = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search";
/**
* 相似图检索-删除
*/
public static String IMAGESEARCH_DELETE = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete";
public static void main(String[] args) throws Exception {
String Filepath = "G:/animal.jpg";
String image = Base64Util.encode(FileUtil.readFileByBytes(Filepath));
String id = new Date().getTime()/1000+"";
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(image, "UTF-8")+"&brief={\"name\":\"小动物\", \"id\":\""+id+"\"}";
System.out.println("请求的参数为:"+params);
String result = HttpUtil.post(IMAGESEARCH_ADD, "自己应用获取的AccessToken", params);
System.out.println("入库返回的数据:"+result);
}
}
- 相似图检索入库返回的JSON字符串
{
"log_id": 941058339586895600,
"cont_sign": "870078332,3208787951"
}
- 相似图检索-检索
package com.xiaoshuai.baidu.imageserach;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import com.baidu.aip.util.Base64Util;
import com.xiaoshuai.baidu.util.FileUtil;
import com.xiaoshuai.baidu.util.HttpUtil;
/**
* @author 小帅丶
* @类名称 Test
* @remark
* @date 2017-11-10
*/
public class Test {
/**
* 相似图检索-入库
*/
public static String IMAGESEARCH_ADD = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add";
/**
* 相似图检索-检索
*/
public static String IMAGESEARCH_SEARCH = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search";
/**
* 相似图检索-删除
*/
public static String IMAGESEARCH_DELETE = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete";
public static void main(String[] args) throws Exception {
String Filepath = "G:/animal.jpg";
String image = Base64Util.encode(FileUtil.readFileByBytes(Filepath));
String id = new Date().getTime()/1000+"";
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(image, "UTF-8");
System.out.println("请求的参数为:"+params);
String result = HttpUtil.post(IMAGESEARCH_SEARCH, "自己应用获取的AccessToken", params);
System.out.println("检索返回的数据:"+result);
}
}
- 相似图检索检索返回的JSON字符串
{
"log_id": 3643518697709272000,
"result_num": 1,
"result": [
{
"source_id": "bs25",
"score": 1,
"brief": null,
"origin_score": 1.0000001192093,
"cont_sign": "870078332,3208787951"
}
]
}
- 相似图检索—删除
package com.xiaoshuai.baidu.imageserach;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import com.baidu.aip.util.Base64Util;
import com.xiaoshuai.baidu.util.FileUtil;
import com.xiaoshuai.baidu.util.HttpUtil;
/**
* @author 小帅丶
* @类名称 Test
* @remark
* @date 2017-11-10
*/
public class Test {
/**
* 相似图检索-入库
*/
public static String IMAGESEARCH_ADD = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add";
/**
* 相似图检索-检索
*/
public static String IMAGESEARCH_SEARCH = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search";
/**
* 相似图检索-删除
*/
public static String IMAGESEARCH_DELETE = "https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete";
public static void main(String[] args) throws Exception {
String Filepath = "G:/animal.jpg";
String image = Base64Util.encode(FileUtil.readFileByBytes(Filepath));
String id = new Date().getTime()/1000+"";
//2种删除方式 image or cont_sign
String params = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(image, "UTF-8");
// String params = "cont_sign=870078332,3208787951";
System.out.println("请求的参数为:"+params);
String result = HttpUtil.post(IMAGESEARCH_DELETE, "自己应用获取的AccessToken", params);
System.out.println("删除返回的数据:"+result);
}
}
- 相似图检索删除正确返回的JSON
{
"log_id": 5761085594940259000
}
- 相似图检索删除错误返回的JSON
{
"log_id": 5726194430880976000,
"error_code": 216680,
"error_msg": "item not existed"
}
代码挺简单的。转给需要的开发者们
小帅丶的个人微信小程序 可以扫码支持一下哦
TOP
切换版块
自己创建的图库
相似图这回好找多了
示例清晰规范
感恩大家的分享
自建库入库的图片
您好,请问,相似图检索是检索的自建库的图片的,还是百度图片搜索的结果啊???
好的。谢谢了。
我测试了。确实会返回你那样的结果。 要不你提交个工单咨询一下百度人员
返回的不是空{"score": 1, "brief": "{\"name\":\"q\n\", \"id\":\"1530087584\", \"code\":\"\u0011e\"
代码可以用代码块。发的图片看不清楚。
隐约看着是入库 name为 上
你返回的brief为空?
我的代码是这样的
你用什么语言?你发送请求用UTF-8那检索请求返回接收内容也要UTF-8
比如说我传的\"name\":\"山上\",返回来的\"q\n\"
那返回了什么呢?返回的格式也是UTF-8记得自己处理一下哦
brief里面存在中文的时候。返回的为什么不是中文字呀
感谢大佬,只传一个image,result有结果了,问题解决了,感谢。
你只传递image参数试试。其他参数都是非必须的
相似图像的搜索
相似图像的搜索
具体是哪个接口返回的呢。