商品检测API调用方法
更新时间:2024-07-15
接口描述
本文档主要说明定制化商品检测模型发布后获得的API如何使用,如有疑问可以通过以下方式联系我们:
- 在百度智能云控制台内提交工单,咨询问题类型请选择人工智能服务
- 进入EasyDL社区交流,与其他开发者进行互动
接口鉴权
- 进入EasyDL零售版的百度智能云控制台应用列表页面,如下图所示:
- 如果还未创建应用,请点击「创建应用」按钮进行创建。创建应用后,参考鉴权参考文档,使用API Key(AK)和Secret Key(SK)获取access_token
请求说明
请求示例
HTTP 方法:POST
请求URL: 请首先在EasyDL零售版进行定制商品检测模型训练,完成训练后申请上线,上线成功后可在服务列表中查看并获取url。
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考鉴权认证机制文档 |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/json |
注意:如果出现336001和336002的错误码很可能是因为请求方式错误,与其他图像识别服务不同的是定制化图像识别服务以json方式请求。
Body请求示例:
{
"image": "<base64数据>"
}
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
image | 是 | string | - | 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式 注意请去掉头部 |
threshold | 否 | number | 0~1 | 可精确到小数点后两位,默认值为建议阈值,请在 我的模型列表-完整评估结果 查看推荐阈值。阈值(threshold),是正确结果的判定标准,例如阈值是0.6,置信度大于0.6的识别结果会被当作正确结果返回。 |
split_shelf | 否 | boolean | True/False | True表示区分货架节数,False表示不区分货架节数。默认为False。当未开通货架层数识别服务功能时,传该参数不生效。 |
提示:image参数中“去掉头部”指的是图片经base64编码后的头部信息「data:image/jpeg;base64,」,如下图所示:
返回说明
排面数:同层同列去重后的SKU检测数量
开启模型服务功能可参考服务功能文档
返回参数
返回结果为JSON格式
字段 | 是否必选 | 类型 | 说明 | 需要开启的模型服务功能 |
---|---|---|---|---|
recapture_score | 否 | float | 图片是对手机屏幕翻拍的可能性评分。翻拍判定方法:设定一个判定为翻拍图片的阈值,即如果recapture_score大于这个值,则认为这张图片是翻拍。请结合业务实际情况和实测结果进行设定阈值 | 商品陈列翻拍识别 |
statistics | 否 | object{} | 对于整张图片的综合识别统计结果 | 商品排面占比统计 |
+known_sku_num | 否 | int | 定制模型识别的SKU总数量 | 商品排面占比统计 |
+unknown_sku_num | 否 | int | 定制模型未识别的SKU总数量 | 商品排面占比统计 |
+known_sku_facing | 否 | int | 定制模型识别的SKU总排面数量,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品排面占比统计 |
+unknown_sku_facing | 否 | int | 定制模型未识别的SKU总排面数量,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品排面占比统计 |
+vacancy_num | 否 | int | 货架上的空位数量,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品排面占比统计 |
+share_of_shelf | 否 | float | 定制商品检测模型识别SKU的排面占比= (known_sku_facing)/(known_sku_facing+ unknown_sku_facing)。 如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 |
商品排面占比统计 |
+known_sku_proportion | 否 | float | 定制商品检测模型识别SKU的数量占比= (known_sku_num)/(known_sku_num+ unknown_sku_num) |
商品排面占比统计 |
+utilization | 否 | float | 货架利用率= (known_sku_num)/(known_sku_num+ unknown_sku_num+vacancy_num)。 如果图片为非货架陈列场景(如冰柜、端架、普通货架等),结果不具参考意义 |
商品排面占比统计 |
sku_count | 否 | array[object] | 定制商品检测模型识别的各类SKU的总数和排面占比 | 商品排面占比统计 |
+name | 否 | string | 定制商品检测模型识别的SKU标签,SKU名称_品牌名称_规格参数,为在EasyDL零售版上创建SKU时填写的内容 | 商品排面占比统计 |
+sku_code | 否 | string | 定制商品检测模型识别的SKU编码,为在EasyDL零售版上创建SKU时填写的内容 | 商品排面占比统计 |
+sku_num | 否 | int | 定制商品检测模型识别的各类SKU的总数 | 商品排面占比统计 |
+proportion | 否 | float | 定制商品检测模型识别的各类SKU的数量占比= sku_num/(known_sku_num+unknown_sku_num) |
商品排面占比统计 |
+sku_facing | 否 | int | 定制商品检测模型识别的各类SKU的总排面数 | 商品排面占比统计 |
+sku_sos | 否 | float | 定制商品检测模型识别的各类SKU的排面数量占比= sku_facing/(known_sku_facing+ unknown_sku_facing)。 如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 |
商品排面占比统计 |
shelf_info | 否 | array[object] | 各组货架的每层货架的详细统计信息,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品排面占比统计 |
+shelf | 否 | int | 商品所在货架编号,”-1“表示未识别到货架,编号为图中货架最左从往右数依次增大 | 商品排面占比统计 |
+layer_info | 否 | array[object] | 各货架层的详细空位数信息 | 商品排面占比统计 |
++layer | 否 | int | 商品所在层数编号,”-1“表示未识别到层数,编号为从图中货架最上层往下依次增大 | 商品排面占比统计 |
++layer_vacancy | 否 | int | 每一层的空位数量 | 商品排面占比统计 |
++layer_known_sku_num | 否 | int | 每一层的可识别SKU数量 | 商品排面占比统计 |
++layer_unknown_sku_num | 否 | int | 每一层的未知SKU数量 | 商品排面占比统计 |
layer_count | 否 | array[object] | 图片中,各货架的总层数,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品陈列层数识别 |
+shelf | 否 | int | 商品所在货架编号,”-1“表示未识别到货架,编号为图中货架最左从往右数依次增大 | 商品陈列层数识别 |
+layer_num | 否 | int | 货架的总层数,如果图片为非货架陈列场景(如冰柜、端架、普通货架等),结果不具参考意义 | 商品陈列层数识别 |
layer_top | 否 | int | 判断是否拍摄到货架最上一层,0表示未拍摄到,1表示拍摄到,-1表示图片中未识别到货架 | 商品陈列层数识别 |
layer_complete | 否 | int | 表面货架是否拍摄完整,0表示不完整,1表示完整 | 商品陈列层数识别 |
scenes | 否 | array[string] | 图片中包含的陈列场景类型。返回所有场景去重后的集合,"GE"表示端架,"shelf"表示货架,"freezer"表示冰柜,"TG"表示地堆,"cutbox"表示割箱,"DL"表示地龙,"HS"表示挂钩货架,"OBS"表示斜口篮货架,"SGE"表示小端架,"barcounter"表示吧台,"HF"表示卧式冰柜,"OACR"表示冷风柜,"HGE"表示挂钩端架,"unknown"表示未识别到场景 | 商品陈列场景识别 |
log_id | 是 | int | 唯一的log id,用于问题定位 | 商品基本信息识别 |
results | 否 | array[object] | 图片中每个商品的详细信息 | - |
+name | 否 | string | SKU名称_品牌名称_规格参数 | 商品基本信息识别 |
+scene | 否 | string | 表示该SKU所在的陈列场景。"GE"表示端架,"shelf"表示货架,"freezer"表示冰柜,"TG"表示地堆,"cutbox"表示割箱,"DL"表示地龙,"HS"表示挂钩货架,"OBS"表示斜口篮货架,"SGE"表示小端架,"barcounter"表示吧台,"HF"表示卧式冰柜,"OACR"表示冷风柜,"HGE"表示挂钩端架,"unknown"表示未识别到场景 | 商品陈列场景识别 |
+shelf | 否 | int | 商品所在货架编号,"-1"表示未识别到货架,编号为图中货架最左从往右数依次增大,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品陈列层数识别 |
+layer | 否 | int | 商品所在层数编号,"-1"表示未识别到层数,编号为从图中货架最上层往下依次增大,如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品陈列层数识别 |
+sku_sn | 否 | string | 商品的陈列排序序号,返回"A-B"或"A-B-C",如"2-1"或"2-1-1",其中A、B、C分别为数字,A代表同一货架层的横向顺序,从左至右依次增大;B代表同一货架的层纵向序号,从下至上依次增大;如果存在大商品上下陈列有小商品或包含小商品的情况,会出现C,从左至右依次增大。如果图片为非货架陈列场景(如堆箱、割箱、地龙等),结果不具参考意义 | 商品陈列层数识别 |
+sku_code | 否 | string | 商品编号,由用户在模型训练页面创建SKU时自定义 | 商品基本信息识别 |
+score | 否 | float | 置信度 | 商品基本信息识别 |
+location | 否 | object{} | 每个商品在图上的像素位置 | 商品基本信息识别 |
++left | 否 | int | 检测到的目标主体区域到图片左边界的像素距离 | 商品基本信息识别 |
++top | 否 | int | 检测到的目标主体区域到图片上边界的像素距离 | 商品基本信息识别 |
++width | 否 | int | 检测到的目标主体区域的像素宽度 | 商品基本信息识别 |
++height | 否 | int | 检测到的目标主体区域的像素高度 | 商品基本信息识别 |
建议翻拍判定方法
设定一个判定为翻拍图片的阈值,即如果recapture的score大于这个值,则认为这张图片是翻拍。通常有两中对应的业务模式:
注:以下数值均为建议值,实际应用的阈值请结合业务实际情况和实测结果进行设定
- 业务里查翻拍的原则是宁可错杀一千,也不愿错放一个的,那么可以把认为是翻拍的阈值放在0.8~0.95。
- 业务里查翻拍的原则是允许错放过一些翻拍的图片,但是查到的一定要对,那么可以把认为是翻拍的阈值放在0.98甚至0.99。