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

绘本图片搜索

使用说明

可在自建图库中找到与检索图相同的绘本图片、儿童书本教材。支持用局部绘本页,找到内容相同的大图;可用于绘本、图书、教材的精确查找、重复图片过滤等场景。

  • 典型应用场景:进行儿童绘本、教材书本的“拍照搜书”,儿童通过学习机、pad等设备拍摄绘本、书本的照片,在学习库中自动检索出对应的封面或者书页,实现绘本跟读、教材讲解等功能
  • 适用的图片类型:各种网络图片、实拍图均可

绘本图片搜索包含入库、检索、删除、更新4个子接口;在正式使用之前请在控制台创建应用后,在应用详情页申请建库,建库成功后方可正常使用入库、检索、删除、更新接口

申请建库时,图库的图片数量上限为50万,避免浪费资源;如果容量不够用,可在控制台-应用详情页 申请扩容,工作人员会在1-3个工作日内审批,每次扩容的申请上限也是50万,可以反复申请扩容,原则上图库总量无上限,百万级、千万级、甚至亿级的图片量都可以做到实时检索,秒级返回检索结果。

绘本图片搜索—入库

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

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

    Json::Value result;

    std::string image;
    aip::get_file_content("/assets/sample.jpg", &image);

    // 调用商品检索—入库, 图片参数为本地图片
    result = client.picturebook_add(image, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["brief"] = "{\"name\":\"手机\", \"id\":\"666\"}";

    // 带参数调用商品检索—入库, 图片参数为本地图片
    result = client.picturebook_add(image, options);

    Json::Value result;

    std::string url = "http//www.x.com/sample.jpg";

    // 调用商品检索—入库, 图片参数为远程url图片
    result = client.picturebook_add_url(url, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["brief"] = "{\"name\":\"手机\", \"id\":\"666\"}";
    options["tags"] = "1";

    // 带参数调用商品检索—入库, 图片参数为远程url图片
    result = client.picturebook_add_url(url, options);

请求参数

参数 是否必选 类型 可选值范围 说明
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" ;检索时可圈定分类维度进行检索

返回说明

返回参数

字段 是否必选 类型 说明
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,)

  Json::Value result;

    std::string image;
    aip::get_file_content("/assets/sample.jpg", &image);

    // 调用商品检索—检索, 图片参数为本地图片
    result = client.picturebook_search(image, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["tags"] = "100,11"";
    options["pn"] = "100";
    options["rn"] = "250";

    // 带参数调用绘本检索—检索, 图片参数为本地图片
    result = client.picturebook_search(image, options);

    Json::Value result;

    std::string url = "http//www.x.com/sample.jpg";

    // 调用绘本检索—检索, 图片参数为远程url图片
    result = client.picturebook_search_url(url, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["pn"] = "100";
    options["rn"] = "250";

    // 带参数调用商品检索—检索, 图片参数为远程url图片
    result = client.product_search_url(url, options);

请求参数

参数 是否必选 类型 可选值范围 说明
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 - 999范围内的整数 分页功能,起始位置,例:0,代表从第1个结果开始。注:未指定分页时,默认返回前300个结果;接口返回数量最大限制1000个,例如:起始位置为900,截取条数500条,接口也只返回第901 - 1000条的结果,共计100条
rn string 1 - 1000范围内的整数 分页功能,截取条数,例:250

返回说明

返回参数

字段 是否必选 类型 说明
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
}

绘本图片搜索—更新

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

    Json::Value result;

    std::string image;
    aip::get_file_content("/assets/sample.jpg", &image);

    // 调用商品检索—更新, 图片参数为本地图片
    result = client.picturebook_update(image, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["brief"] = "{\"name\":\"周杰伦\", \"id\":\"666\"}";
    options["tags"] = "100,11"";

    // 带参数调用绘本检索—更新, 图片参数为本地图片
    result = client.picturebook_update(image, options);

    Json::Value result;

    std::string url = "http//www.x.com/sample.jpg";

    // 带参数调用绘本检索—更新, 图片参数为远程url图片
    result = client.picturebook_update_url(url, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["brief"] = "{\"name\":\"周杰伦\", \"id\":\"666\"}";
     options["tags"] = "100,11"";

    //带参数调用绘本检索—更新, 图片参数为远程url图片
    result = client.picturebook_update_url(url, options);

    Json::Value result;

    std::string cont_sign = "8cnn32frvrr2cd901";

    // 带参数调用绘本检索—更新, 图片参数为图片签名
    result = client.picturebook_update_cont_sign(cont_sign, aip::null);

    // 如果有可选参数
    std::map<std::string, std::string> options;
    options["brief"] = "{\"name\":\"周杰伦\", \"id\":\"666\"}";
    options["tags"] = "100,11"";

    // 带参数调用商品检索—更新, 图片参数为图片签名
    result = client.picturebook_update_cont_sign(cont_sign, options);

请求参数

参数 是否必选 类型 可选值范围 说明
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"

返回说明

返回参数

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

返回示例

{
    "log_id": 2263663554
}

绘本图片搜索—删除

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

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

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

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

    Json::Value result;

    std::string image;
    aip::get_file_content("/assets/sample.jpg", &image);

    // 调用删除绘本图片,传入参数为图片
    result = client.picturebook_delete(image, aip::null);

    Json::Value result;

    std::string url = "http//www.x.com/sample.jpg";

    // 调用删除绘本图片,图片参数为远程url图片
    result = client.picturebook_delete_url(url, aip::null);

    Json::Value result;

    std::string cont_sign = "8cnn32frvrr2cd901";

    // 调用删除绘本图片,传入参数为图片签名
    result = client.picturebook_delete_cont_sign(cont_sign, aip::null);

请求参数

参数 是否必选 类型 可选值范围 说明
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"

返回说明

返回参数

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

返回示例

{
  "log_id": 50488417
}
上一篇
相似图片搜索
下一篇
常见问题