1、产品简介
基于专用视觉模型构建的商品陈列检测产品,直接识别图片中可见商品的位置和名称。产品支持元气森林业务类型的默认识别规则,也支持调用方提供自定义规则,输出逐商品位置与名称,适用于饮料陈列巡检和商品定位展示。
2、适用场景
饮料陈列识别:使用元气森林业务类型的默认规则识别可见饮料商品。
自定义检测规则:通过 rule 指定符合输出约束的商品识别任务。
商品定位展示:将逐商品名称和位置框用于展示、统计或人工复核。
3、功能介绍
直接识别商品:每个商品输出一个位置框和名称,名称无法确定时返回 unknown。
两种规则入口:非空 rule 优先;未提供有效 rule 时,type 必须为元气森林。
统一结果校验:框坐标转整数并限制在 0–1000,反向坐标交换;名称缺失时使用 unknown;任一项不是有效商品对象、框非法或无面积时整批失败。
结果范围:当前输出检测名称和位置,不包含向量库召回、SKU 编码或相似度分数。
4、开发指南
本文请求和响应字段遵循对应搭建文档的实际大小写及结构。示例为业务工作流输入输出,不额外假设平台网关封装;对外调用地址、鉴权方式和网关封装应以实际发布接口为准。
4.1 请求参数
参数名 | 类型 | 必填 | 说明 |
imageUrl | String | 是 | 待识别原图的 HTTPS 地址;须可访问,不含空白或 URL 用户名密码 |
rule | String | 否 | 自定义识别规则;非空时优先,忽略 type |
type | String | 条件必填 | rule 未提供或为空时,必须为 元气森林 |
4.2 请求示例
{
"imageUrl": "https://example.com/images/api-09.jpg",
"type": "元气森林"
}示例图片地址和知识库标识(如有)为占位值,调用时替换为实际资源。
自定义规则示例:
{
"imageUrl": "https://example.com/images/api-09.jpg",
"rule": "定位图中可见饮料商品。只输出 JSON 数组,每项包含 bbox_2d(0–1000 整数坐标)和 sku_name(商品名称,无法确认时为 unknown)。每件商品独立一项。"
}4.3 响应参数
通用字段:
字段路径 | 类型 | 说明 |
success | Boolean | 调用是否成功;有效业务结论不等于审核通过 |
errorCode | String | 成功为空字符串;失败为错误码 |
errorMessage | String | 成功为空字符串;失败为具体错误说明 |
usageMap | Object | 成功为 {"ProcessingCount":1};失败为空对象 |
usageMap.ProcessingCount | Integer | 成功处理计数为 1;失败时该字段不返回 |
业务字段:
字段路径 | 类型 | 说明 |
data | Array | 逐商品结果数组,成功时非空,失败时为空数组 |
| data[ ].idx | Integer | 商品序号,从 1 开始递增 |
| data[ ].bbox_2d | Integer[4] | [左上x,左上y,右下x,右下y],范围 0–1000,框必须有面积 |
| data[ ].detected_sku_name | String | 商品名称;名称缺失或无法确定时为 unknown |
| boxCount | Integer | 商品框数量,与 data 长度一致;失败时为 0 |
rule 直接作为模型提示词使用,应要求输出完整 JSON 数组,每项包含 bbox_2d 和非空 sku_name。默认规则识别饮料商品,不应理解为只输出单一品牌。空商品数组、无效项或无法解析的截断响应均导致失败,不保留部分商品结果。
4.4 响应示例
以下均为结构示例,非实测结果。
1)成功响应
{
"success": true,
"errorCode": "",
"errorMessage": "",
"data": [
{
"idx": 1,
"bbox_2d": [
100,
200,
300,
600
],
"detected_sku_name": "元气森林 气泡水"
},
{
"idx": 2,
"bbox_2d": [
320,
200,
520,
600
],
"detected_sku_name": "unknown"
}
],
"boxCount": 2,
"usageMap": {
"ProcessingCount": 1
}
}参数错误响应
{
"success": false,
"errorCode": "InvalidParameter",
"errorMessage": "未提供有效 rule 时,type 必须为元气森林",
"usageMap": {},
"data": [ ],
"boxCount": 0
}处理失败响应
{
"success": false,
"errorCode": "DownstreamUnavailable",
"errorMessage": "未获得有效商品数组",
"usageMap": {},
"data": [ ],
"boxCount": 0
}4.5 错误码
错误码 | 含义 | 处理建议 |
InvalidParameter | 输入不合法或识别服务明确返回业务错误 | 根据 errorMessage 修正参数或业务输入后重新调用 |
DownstreamUnavailable | 鉴权、限流、超时、空响应、缺字段或解析等处理异常 | 根据 errorMessage 检查资源与服务状态;临时故障可稍后重试 |
应结合 success、errorCode、errorMessage 判断结果。源搭建文档未约定每类业务错误对应的 HTTP 状态码。平台公共错误码可参考错误码,本接口工作流错误码以上表为准。