开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

接口说明

相似图片搜索

在自建图库中找到与检索图片语义相似的图片集,并给出相似度打分(综合图片类型、颜色、内容、布局等特征)

  • 典型应用场景:找相似的图片集合(返回的结果包含相同的图片),各种设计素材、美术作品、UGC内容等
  • 适用的图片类型:各种网络图片、实拍图均可;注意检索图和入库的原图要尽量保持场景一致性,比如入库的原图为标准的广告图(无背景干扰),则检索图要尽量避免背景、其他干扰特征,否则模型计算图片的相似度时会有噪声,造成检索结果不准确。

相似图片搜索 - 入库

请求说明

该接口实现单张图片入库,入库时需要同步提交图片及可关联至本地图库的摘要信息(具体变量为brief,具体可传入图片在本地标记id、图片url、图片名称等);同时可提交分类维度信息(具体变量为tags,最多可传入2个tag),方便对图库中的图片进行管理、分类检索。 注:重复添加完全相同的图片会返回错误。

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url二选一,image优先级更高),注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式。重复添加完全相同的图片会返回错误,提示不能重复入库。
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
brief string - 检索时原样带回,最长256B。样例:{"name":"周杰伦", "id":"666"} 。请注意,检索接口不返回原图,仅返回入库时填写的brief信息,所以调用该入库接口时,brief信息请尽量填写可关联至本地图库的图片id或者图片url、图片名称等信息,且不要重复
tags string 1 - 65535范围内的整数 tag间以逗号分隔,最多2个tag,2个tag无层级关系,检索时支持逻辑运算。样例:"100,11" ;检索时可圈定分类维度进行检索

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SimilarAddTest 相似图片搜索 - 入库
func SimilarAddTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarAdd(image, brief, options))
}

// SimilarAddUrlTest 相似图片搜索 - 入库
func SimilarAddUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarAddUrl(url, brief, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,无实际意义,用于问题定位
cont_sign string 输入图片的签名信息,请务必保存至本地,以便后续用作批量删除、查询某张图是否已经入过库等用途

返回示例

{
    "log_id": 2263663554,
    "cont_sign": "4261577168,501945506"
}

相似图片搜索 - 检索

请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。和url二选一,image优先级更高,注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式.
url string - 图片URL,和image二选一,image优先级更高 ,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
tags string 1 - 65535范围内的整数 分类维度信息,tag间以逗号分隔,最多可传入2个tag,2个tag无层级关系,检索时支持逻辑运算。示例:"100,11"
tag_logic string 0,1 检索时tag之间的逻辑, 0:逻辑and,1:逻辑or
pn string 0 - 999范围内的整数 分页功能,起始位置,例:0。未指定分页时,默认返回前300个结果;接口返回数量最大限制1000条,例如:起始位置为900,截取条数500条,接口也只返回第900 - 1000条的结果,共计100条
rn string 1 - 1000范围内的整数 分页功能,截取条数,例:250

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SimilarSearchTest 相似图片搜索 - 检索
func SimilarSearchTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarSearch(image, options))
}

// SimilarSearchUrlTest 相似图片搜索 - 检索
func SimilarSearchUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarSearchUrl(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位
result_num uint32 检索结果数
result object[] 结果数组
+cont_sign string 图片签名,可以用来删除图片或定位问题
+score float 图片相关性,取值范围0-1,越接近1代表越相似
+brief string add时添加的brief信息
has_more bool 是否还有下一页,返回值:true、false;如果不分页,不用关注该字段

返回示例

{
    "result_num": 1,
    "result": [
        {
            "score": 0.97976700290421,
            "brief": "./data/jay1.jpg",
            "cont_sign": "475124309,1080176642"
        }
    ],
    "has_more": "false",
    "log_id": 1968648150
}

相似图片搜索 - 删除

请求说明

删除图库中的图片,支持批量删除,批量删除时请传cont_sign参数,勿传image,最多支持100个cont_sign

图片删除延时生效,每天数据库定时更新进行物理删除,刚删除时仍然可以在图库中检索到(但图库管理后台是同步清除),请过一段时间再验证,一般最多延时4小时左右

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。和url、cont_sign三选一,优先级:image > url > cont_sign注意要去掉图片头部,如(data:image/jpg;base64,)。最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,image优先级更高
cont_sign string - 图片签名(和image、url三选一),支持批量删除,批量删除时请勿传image、url,最多支持100个cont_sign列表,样例:"932301884,1068006219;316336521,553141152;2491030726,1352091083"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SimilarDeleteTest 相似图片搜索 - 删除
func SimilarDeleteTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarDelete(image, options))
}

// SimilarDeleteUrlTest 相似图片搜索 - 删除
func SimilarDeleteUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarDeleteUrl(url, options))
}

// SimilarDeleteSignTest 相似图片搜索 - 删除
func SimilarDeleteSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarDeleteSign(contSign, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
  "log_id": 50488417
}

相似图片搜索 - 更新

请求说明

更新图库中图片的摘要和分类信息(具体变量为brief、tags)

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/update

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image 和url、cont_sign三选一 string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。和url、cont_sign三选一,优先级:image > url > cont_sign,注意要去掉图片头部,如(data:image/jpg;base64,),要求base64编码后大小不超过4M,最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式。
url 和image、cont_sign三选一 string - 图片URL,和image、cont_sign三选一,优先级:image > url > cont_sign,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign 和image、url三选一 string - 图片签名,和image、url三选一,优先级:image > url > cont_sign;不支持批量传入签名,样例:"932301884,10680062193"
brief string - 更新的摘要信息,最长256B。样例:{"name":"周杰伦", "id":"666"}
tags string 1 - 65535范围内的整数 更新的分类信息,tag间以逗号分隔,最多2个tag。样例:"100,11"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SimilarUpdateTest 相似图片搜索 - 更新
func SimilarUpdateTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarUpdate(image, options))
}

// SimilarUpdateUrlTest 相似图片搜索 - 更新
func SimilarUpdateUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarUpdateUrl(url, options))
}

// SimilarUpdateSignTest 相似图片搜索 - 更新
func SimilarUpdateSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarUpdateSign(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
    "log_id": 2263663554
}

相同图片搜索

在自建库中搜索相同图片,仅返回完全相同或局部相同的图片结果。

  • 典型应用场景:图片去重、图片精确查找,如图片类站点对海量库存图片进行查重过滤
  • 适用的图片类型:各种网络图片、实拍图均可;注意检索图和入库的原图要保持场景一致性,比如入库的原图为标准的广告图(无背景干扰),则检索图要尽量避免背景、其他干扰特征,否则模型计算图片的相似度时会有噪声,造成检索结果不准确。

举个例子:小张入库了5万张海报设计图,都是标准的电子版海报图片,无任何背景干扰;在线下活动时,要根据手机拍摄的海报图片判断是不是跟图库里的设计图重复了,手机实拍时要避免拍到海报图片之外的物体(如墙上的装饰、参加活动的人等各种背景元素),同时要拍到海报的全部或者大部分主体内容,不能只拍到一个海报的小角落就去检索,以免影响检索效果。

相同图片搜索 - 入库

请求说明

该接口实现单张图片入库,入库时需要同步提交图片及可关联至本地图库的摘要信息(具体变量为brief,具体可传入图片在本地标记id、图片url、图片名称等);同时可提交分类维度信息(具体变量为tags,最多可传入2个tag),方便对图库中的图片进行管理、分类检索。

注:重复添加完全相同的图片会返回错误。

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/add

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url二选一,image优先级更高),注意要去掉图片头部,如(data:image/jpg;base64,);最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式。重复添加完全相同的图片会返回错误,提示不能重复入库。
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
brief string - 检索时原样带回,最长256B。样例:{"name":"周杰伦", "id":"666"} 。请注意,检索接口不返回原图,仅返回入库时填写的brief信息,所以调用入库接口时,brief信息请尽量填写可关联至本地图库的图片id或者图片url、图片名称等信息,且不要重复
tags string 1 - 65535范围内的整数 tag间以逗号分隔,最多2个tag,2个tag无层级关系,检索时支持逻辑运算。样例:"100,11" ;检索时可圈定分类维度进行检索

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SameHqAddTest 相同图片搜索 - 入库
func SameHqAddTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqAdd(image, brief, options))
}

// SameHqAddUrlTest 相同图片搜索 - 入库
func SameHqAddUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarAddUrl(url, brief, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,无实际意义,用于问题定位
cont_sign string 输入图片的签名信息,请务必保存至本地,以便后续用作批量删除、查询某张图是否已经入过库等用途

返回示例

{
    "log_id": 2263663554,
    "cont_sign": "4261577168,501945506"
}

相同图片搜索 - 检索

请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/search

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url二选一,image优先级更高),注意要去掉图片头部,如(data:image/jpg;base64,);最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
tags string 1 - 65535范围内的整数 分类维度信息,tag间以逗号分隔,最多可传入2个tag,tag间无层级关系,示例:"100,11"
tag_logic string 0,1 检索时tag之间的逻辑, 0:逻辑and,1:逻辑or
pn string 0 - 999范围内的整数 分页功能,起始位置,例:0。未指定分页时,默认返回前300个结果;接口返回数量最大限制1000条,例如:起始位置为900,截取条数500条,接口也只返回第900 - 1000条的结果,共计100条
rn string 1 - 1000范围内的整数 分页功能,截取条数,例:250

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SameHqSearchTest 相同图片搜索 - 检索
func SameHqSearchTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqSearch(image, options))
}

// SameHqSearchUrlTest 相同图片搜索 - 检索
func SameHqSearchUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqSearchUrl(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,无实际含义,用于问题定位
result_num uint32 检索结果数
result object[] 结果数组
+cont_sign string 图片签名,可以用来删除图片或定位问题
+score float 图片相关性,取值范围0-1,越接近1表示越相关
+brief string 调用add接口时添加的brief信息,为保证该结果有效性,请入库时填写可关联至本地图片库的有效id信息
has_more bool 是否还有下一页,返回值:true、false;如果不分页,不用关注该字段

返回示例

{
    "result_num": 1,
    "result": [
        {
            "score": 0.97976700290421,
            "brief": "./data/jay1.jpg",
            "cont_sign": "475124309,1080176642"
        }
    ],
    "has_more": "false",
    "log_id": 1968648150
}

相同图片搜索 - 删除

请求说明

删除图库中的图片,支持批量删除,批量删除时请传cont_sign参数,勿传image、url,最多支持100个cont_sign。

图片删除延时生效,每天数据库定时更新进行物理删除,刚删除时仍然可以在图库中检索到(但图库管理后台是同步清除),请过一段时间再验证,一般最多延时4小时左右

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/delete

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图片数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,(和url、cont_sign三选一,优先级:image > url > cont_sign),注意要去掉图片头部,如(data:image/jpg;base64,)。最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名(和image、url三选一),支持批量删除,批量删除时请勿传image、url,最多支持100个cont_sign列表,样例:"932301884,1068006219;316336521,553141152;2491030726,1352091083"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SameHqDeleteTest 相同图片搜索 - 删除
func SameHqDeleteTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqDelete(image, options))
}

// SameHqDeleteUrlTest 相同图片搜索 - 删除
func SameHqDeleteUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SimilarDeleteUrl(url, options))
}

// SameHqDeleteSignTest 相同图片搜索 - 删除
func SameHqDeleteSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqDeleteSign(contSign, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
  "log_id": 50488417
}

相同图片搜索 - 更新

请求说明

更新图库中图片的摘要和分类信息(具体变量为brief、tags)

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/update

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图片数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,和url、cont_sign三选一,优先级:image > url > cont_sign,注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,优先级:image > url > cont_sign ,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名,和image、url三选一,优先级:image > url > cont_sign;不支持批量传入签名,样例:"932301884,10680062193"
brief string - 更新的摘要信息,最长256B。样例:{"name":"周杰伦", "id":"666"}
tags string 1 - 65535范围内的整数 更新的分类信息,tag间以逗号分隔,最多2个tag。样例:"100,11"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// SameHqUpdateTest 相同图片搜索 - 更新
func SameHqUpdateTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqUpdate(image, options))
}

// SameHqUpdateUrlTest 相同图片搜索 - 更新
func SameHqUpdateUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqUpdateUrl(url, options))
}

// SameHqUpdateSignTest 相同图片搜索 - 更新
func SameHqUpdateSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.SameHqUpdateSign(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
    "log_id": 2263663554
}

商品图片搜索

针对商品类图片,专项训练检索模型,在自建图库中搜索相同及相似的商品图片集,可找到不同颜色、背景、角度的同款商品

  • 典型应用场景:各类B2B、B2C电商平台,相似商品推荐、拍照搜同款或者相似商品
  • 适用的图片类型:电商商品图片(实体商品为主,如数码3C、服装鞋帽、日化百货等)

注意:部分特殊商品,如面料、木材、瓷砖等,建议同步对比测试相似图搜索的效果,择优使用

商品图片搜索 - 入库

请求说明

该接口实现单张图片入库,入库时需要同步提交图片及可关联至本地图库的摘要信息(具体变量为brief,具体可传入图片在本地标记id、图片url、图片名称等)。同时可提交分类维度信息(具体变量为class_id1、class_id2),方便对图库中的图片进行管理、分类检索。

注:重复添加完全相同的图片会返回错误。

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/add

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。和url二选一,image优先级更高,注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少300px,最长边最大4096px,支持jpg/png/bmp格式。重复添加会返回错误。
url string - 图片URL,和image二选一,image优先级更高 ,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
brief string - 检索时原样带回,最长256B。样例{"name":"周杰伦", "id":"666"} 请注意,检索接口不返回原图,仅返回当前填写的brief信息,所以调用入库接口时,brief信息请尽量填写可关联至本地图库的图片id或者图片url、图片名称等信息,且不要重复
class_id1 int32 1-65535范围内的整数 商品分类维度1,检索时可圈定该分类维度进行检索;只传入class_id1,则检索结果中包含class_id1内容的都会被检索到;同时传入class_id1与class_id2,则检索结果中同时包含class_id1和class_id2内容的才会被检索到
class_id2 int32 1-65535范围内的整数 商品分类维度2,检索时可圈定该分类维度进行检索 ,class_id1和class_id2无层级关系,检索时支持逻辑运算

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// ProductAddTest 商品图片搜索 - 入库
func ProductAddTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductAdd(image, brief, options))
}

// ProductAddUrlTest 商品图片搜索 - 入库
func ProductAddUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductAddUrl(url, brief, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位
cont_sign string 上传图片的签名信息,请务必保存至本地,以便后续用作批量删除、查询某张图是否已经入过库等用途

返回示例

{
    "log_id": 2263663554,
    "cont_sign": "4261577168,501945506"
}

商品图片搜索 - 检索

请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/search

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。和url二选一,image优先级更高,注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少300px,最长边最大4096px,支持jpg/png/bmp格式。
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
class_id1 int32 - 商品分类维度1,支持1-65535范围内的整数。
class_id2 int32 - 商品分类维度2,支持1-65535范围内的整数。
tag_logic string 0,1 检索时tag之间的逻辑, 0:逻辑and,1:逻辑or
pn string 0 - 999范围内的整数 分页功能,起始位置,例:0。未指定分页时,默认返回前300个结果;接口返回数量最大限制1000条,例如:起始位置为900,截取条数500条,接口也只返回第900 - 1000条的结果,共计100条
rn string 1 - 1000范围内的整数 分页功能,截取条数,例:250

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// ProductSearchTest 商品图片搜索 - 检索
func ProductSearchTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductSearch(image, options))
}

// ProductSearchUrlTest 商品图片搜索 - 检索
func ProductSearchUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductSearchUrl(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位
result_num uint32 检索结果数
result realtime-search-item 结果数组
+cont_sign string 图片签名,可以用来删除图片或定位问题
+score float 图片相关性,取值范围0-1,越接近1代表越相似
+brief string 入库时添加的brief信息
has_more bool 是否还有下一页,返回值:true、false;如果不分页,不用关注该字段

返回示例

{
    "result_num": 1,
    "result": [
        {
            "score": 0.97976700290421,
            "brief": "./data/jay1.jpg",
            "cont_sign": "475124309,1080176642"
        }
    ],
    "has_more" : "false",
    "log_id": 1968648150
}

商品图片搜索 - 删除

请求说明

删除图库中的图片,支持批量删除,批量删除时请传cont_sign参数,勿传image,最多支持100个cont_sign。

图片删除延时生效,每天数据库定时更新进行物理删除,刚删除时仍然可以在图库中检索到(但图库管理后台是同步清除),请过一段时间再验证,一般最多延时4小时左右

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/delete

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url、cont_sign三选一,优先级:image > url > cont_sign),注意要去掉图片头部,如(data:image/jpg;base64,)。要求base64编码后大小不超过4M,最短边至少300px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名(和image、url三选一,优先级最低),支持批量删除,批量删除时请勿传image、url,最多支持100个cont_sign列表,样例:"932301884,1068006219;316336521,553141152;2491030726,1352091083"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// ProductDeleteTest 商品图片搜索 - 删除
func ProductDeleteTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductDelete(image, options))
}

// ProductDeleteUrlTest 商品图片搜索 - 删除
func ProductDeleteUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductDeleteUrl(url, options))
}

// ProductDeleteSignTest 商品图片搜索 - 删除
func ProductDeleteSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductDeleteSign(contSign, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
  "log_id": 50488417
}

商品图片搜索 - 更新

请求说明

更新图库中图片的摘要和分类信息(具体变量为brief、class_id1/class_id2)

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/update

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像base64编码,和url、cont_sign三选一,优先级:image > url > cont_sign,注意要去掉图片头部,如(data:image/jpg;base64,),要求base64编码后大小不超过4M,最短边至少300px,最长边最大4096px,支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,优先级:image > url > cont_sign,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名,和image、url三选一,优先级:image > url > cont_sign;不支持批量传入签名,样例:"932301884,10680062193"
brief string - 更新的摘要信息,最长256B。样例:{"name":"周杰伦", "id":"666"}
class_id1 int32 - 更新的商品分类1,支持1-65535范围内的整数。
class_id2 int32 - 更新的商品分类2,支持1-65535范围内的整数。

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// ProductUpdateTest 商品图片搜索 - 更新
func ProductUpdateTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductUpdate(image, options))
}

// ProductUpdateUrlTest 商品图片搜索 - 更新
func ProductUpdateUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductUpdateUrl(url, options))
}

// ProductUpdateSignTest 商品图片搜索 - 更新
func ProductUpdateSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.ProductUpdateSign(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
    "log_id": 2263663554
}

绘本图片搜索

绘本图片搜索 - 入库

请求说明

该接口实现单张图片入库,入库时需要同步提交图片及可关联至本地图库的摘要信息(具体变量为brief,具体可传入图片在本地标记id、图片url、图片名称等);同时可提交分类维度信息(具体变量为tags,最多可传入2个tag),方便对图库中的图片进行管理、分类检索。

注:重复添加完全相同的图片会返回错误。

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/imagesearch/v1/realtime_search/picturebook/add

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url二选一,image优先级更高),注意要去掉图片头部,如(data:image/jpg;base64,);最短边至少150px,最长边最大4096px,长宽比在1:10-10:1之间。支持jpg/png/bmp格式。重复添加完全相同的图片会返回错误,提示不能重复入库。
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
brief string - 检索时原样带回,最长256B。样例:{"name":"周杰伦", "id":"666"} 。请注意,检索接口不返回原图,仅返回入库时填写的brief信息,所以调用入库接口时,brief信息请尽量填写可关联至本地图库的图片id或者图片url、图片名称等信息,且不要重复
tags string 1 - 65535范围内的整数 tag间以逗号分隔,最多2个tag,2个tag无层级关系,检索时支持逻辑运算。样例:"100,11" ;检索时可圈定分类维度进行检索

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// PictureBookAddTest 绘本图片搜索 - 入库
func PictureBookAddTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookAdd(image, brief, options))
}

// PictureBookAddUrlTest 绘本图片搜索 - 入库
func PictureBookAddUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookAddUrl(url, brief, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,无实际意义,用于问题定位
cont_sign string 入库图片的签名信息,请务必保存至本地,以便后续用作批量删除、查询某张图是否已经入过库等用途

返回示例

{
    "log_id": 2263663554,
    "cont_sign": "4261577168,501945506"
}

绘本图片搜索 - 检索

请求说明

完成入库后,可使用该接口实现绘本图检索。支持传入指定分类维度(具体变量tags)进行检索,返回结果支持翻页(具体变量pn、rn)。

注意:检索接口不返回原图,仅反馈当前填写的brief信息,请调用入库接口时尽量填写可关联至本地图库的图片id或者图片url等信息

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/imagesearch/v1/realtime_search/picturebook/search

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。(和url二选一,image优先级更高),注意要去掉图片头部,如(data:image/jpg;base64,);最短边至少150px,最长边最大4096px,长宽比在1:10-10:1之间。支持jpg/png/bmp格式
url string - 图片URL,和image二选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
tags string 1 - 65535范围内的整数 分类维度信息,tag间以逗号分隔,最多可传入2个tag,tag间无层级关系,示例:"100,11"
tag_logic string 0,1 检索时tag之间的逻辑, 0:逻辑and,1:逻辑or
pn string 0 - 99范围内的整数 分页功能,起始位置,例:0,代表从第1个结果开始。注:未指定分页时,默认返回第1个结果;接口返回数量最大限制100个,例如:起始位置为90,截取条数100条,接口也只返回第91 - 100条的结果,共计10条
rn string 1 - 100范围内的整数 分页功能,截取条数,例:10

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// PictureBookSearchTest 绘本图片搜索 - 检索
func PictureBookSearchTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookSearch(image, options))
}

// PictureBookSearchUrlTest 绘本图片搜索 - 检索
func PictureBookSearchUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookSearchUrl(url, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,无实际含义,用于问题定位
result_num uint32 检索结果数
result object[] 结果数组
+cont_sign string 入库图片签名,可以用来删除图片或定位问题
+score float 图片相关性,取值范围0-1,越接近1表示越相关
+brief string 调用入库add接口时添加的brief信息,为保证该结果有效性,请入库时填写可关联至本地图片库的有效id信息
has_more bool 是否还有下一页,返回值:true、false;如果不分页,不用关注该字段

返回示例

{
    "result_num": 1,
    "result": [
        {
            "score": 0.97976700290421,
            "brief": "./data/jay1.jpg",
            "cont_sign": "475124309,1080176642"
        }
    ],
    "has_more": "false",
    "log_id": 1968648150
}

绘本图片搜索 - 删除

请求说明

删除图库中的图片,支持批量删除,批量删除时请传cont_sign参数,勿传image、url,最多支持100个cont_sign。

图片删除延时生效,每天数据库定时更新进行物理删除,刚删除时仍然可以在图库中检索到(但图库管理后台是同步清除),请过一段时间再验证,一般最多延时4小时左右

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/imagesearch/v1/realtime_search/picturebook/delete

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图片数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,(和url、cont_sign三选一,优先级:image > url > cont_sign),注意要去掉图片头部,如(data:image/jpg;base64,)。最短边至少150px,最长边最大4096px,长宽比在1:10-10:1之间。支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,image优先级更高,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名(和image、url三选一),支持批量删除,批量删除时请勿传image、url,最多支持100个cont_sign列表,样例:"932301884,1068006219;316336521,553141152;2491030726,1352091083"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// PictureBookDeleteTest 绘本图片搜索 - 删除
func PictureBookDeleteTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookDelete(image, options))
}

// PictureBookDeleteUrlTest 绘本图片搜索 - 删除
func PictureBookDeleteUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookDeleteUrl(url, options))
}

// PictureBookDeleteSignTest 绘本图片搜索 - 删除
func PictureBookDeleteSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookDeleteSign(contSign, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
  "log_id": 50488417
}

绘本图片搜索 - 更新

请求说明

更新图库中图片的摘要和分类信息(具体变量为brief、tags)

请求图片需经过base64编码:图片的base64编码指将一幅图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。

注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/imagesearch/v1/realtime_search/picturebook/update

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图片数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,和url、cont_sign三选一,优先级:image > url > cont_sign,注意要去掉图片头部,如(data:image/jpg;base64,),最短边至少150px,最长边最大4096px,长宽比在1:10-10:1之间。支持jpg/png/bmp格式
url string - 图片URL,和image、cont_sign三选一,优先级:image > url > cont_sign ,由于图床的差异性,抓图服务无法适配所有的图床,部分URL可能抓不到图,或者图片下载超时,遇到上述情况时请更换图片URL、或者将图片下载到本地转码后上传
cont_sign string - 图片签名,和image、url三选一,优先级:image > url > cont_sign;不支持批量传入签名,样例:"932301884,10680062193"
brief string - 更新的摘要信息,最长256B。样例:{"name":"周杰伦", "id":"666"}
tags string 1 - 65535范围内的整数 更新的分类信息,tag间以逗号分隔,最多2个tag。样例:"100,11"

示例代码

package main

import (
	"fmt"

	"github.com/Baidu-AIP/golang-sdk/aip/imagesearch"

	"github.com/Baidu-AIP/golang-sdk/util"

	"github.com/Baidu-AIP/golang-sdk/test/resources"
)

var image = util.ReadFileToBase64("test/resources/image/baidu_image.png")
var url = "https://baidu.aip.test.com"
var brief = "{\"name\":\"百度\", \"id\":\"123\"}"
var options = make(map[string]interface{})
var contSign = "123"

// PictureBookUpdateTest 绘本图片搜索 - 更新
func PictureBookUpdateTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookUpdate(image, options))
}

// PictureBookUpdateUrlTest 绘本图片搜索 - 更新
func PictureBookUpdateUrlTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookUpdateUrl(url, options))
}

// PictureBookUpdateSignTest 绘本图片搜索 - 更新
func PictureBookUpdateSignTest(client *imagesearch.ImageSearchClient) {
	fmt.Println(client.PictureBookUpdateSign(contSign, options))
}

返回说明

返回参数

字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位

返回示例

{
    "log_id": 2263663554
}
上一篇
快速入门
下一篇
错误信息