全部产品

Re ID算法服务

更新时间:2020-11-09 11:05:56

前言

基于图像识别技术,提取视频中人脸、人体特征值信息,进行云端归并去重生成Re id身份,实现客流人数去重、特征值比对、轨迹动线汇总算法服务。

1.根据图片查询人脸Re id

  1. /commercial/paas/face/query/by/image
  • 当前版本 1.0.0

入参

参数 类型 是否必填 备注
faceUrl String 人脸图url, 目前只支持jpg

出参
返回结果使用通用结果类型,data域是分页查询结果对象(下表中的data是分页结果中的数据),见下表的详细说明:

参数 类型 备注
faceId String 人脸ID
faceIdEffectiveTime Long 人脸有效时间戳
faceUrl String 人脸数据库中地址

示例
请求示例

  1. {
  2. "faceUrl":"https://www.aliyun.com/logo.ipg",
  3. }

返回示例

  1. {
  2. "code": 200,
  3. "message": "success",
  4. "data": {
  5. "faceId":"12345",
  6. "faceIdEffectiveTime":1574653269573
  7. "faceUrl":"xxx.com/xx.jpg?ak=xx&sign=xxx"
  8. }
  9. }

2.人脸服务

以图搜图

• 描述: 返回分组中相似度最高的topk个faceId

• path: /solution/commercial/paas/global/face/search

• 版本号: 1.0.1• 约束: 只支持jpg/jpeg图片,标准清晰人脸图片

• 请求参数

字段名称 类型 描述 是否必须
group String 分组 否,数据按分组隔离
faceUrl String 人脸图片地址 否,和faceBase64必选其一
faceBase64 String 人脸图片base64字符串 否,和faceUrl必选其一
threshold String 阈值, [0, 2] 否,默认1.0,人脸图片特征距离大于该阈值时不返回faceId
needAdd Boolean 没有匹配faceId,是否添加 否,默认为false,false:搜不到人脸时不添加,true:搜不到人脸时则添加该人脸,返回新的faceId
startTime String 起始日期 否,按日期段搜索,与endTime同时存在时生效,例如: 2020-09-09
endTime String 截止日期 否,与startTime同时存在时生效,例如: 2020-09-10
topk int 返回符合条件的记录数量 否, [1, 5],默认1

• 返回参数

字段名称 类型 描述
code Integer 返回码
message String 返回描述
data JSONArray

• FaceSearchResult

字段名称 类型 描述
faceId String 人脸图片
distance String 距离, [0, 2]
gmtCreate String 创建日期
faceUrl String 人脸图片

3. API调用方式

SDK依赖

本例提供java sdk pom依赖示例,更多语言SDK详情请参考API调用对接指引

  1. <dependency>
  2. <groupId>com.aliyun.api.gateway</groupId>
  3. <artifactId>sdk-core-java</artifactId>
  4. <version>1.6.0.3</version>
  5. </dependency>

示例代码

  1. HttpClientBuilderParams builderParams = new HttpClientBuilderParams();
  2. builderParams.setAppKey("${appKey}"); // 请填写正确的AppKey
  3. builderParams.setAppSecret("${appSecret}"); // 请填写正确的AppSecret
  4. ApacheHttpClient apacheHttpClient = new ApacheHttpClient(builderParams);
  5. IoTApiRequest request = new IoTApiRequest();
  6. //设置api的版本
  7. request.setApiVer("1.0.0");
  8. //如果需要登陆,设置当前的会话的token
  9. //设置参数
  10. request.putParam("model", "xxxxxx");
  11. request.putParam("projectId", "yyyyy");
  12. Map<String, Object> param = new HashMap<>(8);
  13. param.put("startTime", "2019-01-01");
  14. param.put("endTime", "2019-01-31");
  15. param.put("limit", 10);
  16. request.putParam("paramJson", JSONObject.toJSONString(param));
  17. //请求参数域名、path、request
  18. String host = "api.link.aliyun.com";
  19. String path = "/tourism/statistics/query";
  20. System.out.println(JSON.toJSONString(request));
  21. ApiRequest apiRequest = new ApiRequest(HttpScheme.HTTP, host,
  22. HttpMethod.POST_BODY, path, JSON.toJSONBytes(request));
  23. apiRequest.setHttpConnectionMode(HttpConnectionModel.MULTIPLE_CONNECTION);
  24. ApiResponse response = apacheHttpClient.sendSyncRequest(apiRequest);
  25. System.out.println(request.getId());
  26. System.out.println(
  27. "response code = " + response.getCode() + " response message = " + response.getMessage()
  28. + " response content = " + new String(response.getBody(),
  29. "utf-8"));