行为 API 指南#
视觉行为由所有物体随时间的轨迹以及相关的元数据属性(如距离、速度等)组成。
行为 API 端点#
分析 Web API 通过 Ingress 控制器公开。
URL 前缀是 http://<INGRESS-HOST-IP>:<INGRESS-PORT>/emdx/
将 INGRESS-HOST-IP 替换为 Jetson 设备 IP。将 INGRESS-PORT 替换为 30080 或 Ingress 配置中定义的最后一个值。
注意
URL 前缀路径在未来版本中可能会更改。
行为 API 版本 v2#
行为 API 有一个新的主版本 v2,它与早期版本不向后兼容。此版本仍然支持 JPS 1.0 版本附带的先前版本。但是,强烈建议采用/迁移到 v2 版本。v2 版本在路径 /api/v2 下提供。早期版本仍然在 /api 下可用。
检索特定时间范围内的所有行为#
获取给定传感器在给定时间段内的行为
HTTP GET
/api/v2/behavior?sensorId=Amcrest_3&fromTimestamp=2020-10-30T20:00:00.000Z&toTimestamp=2020-10-31T01:00:00.000Z
必需的查询参数#
sensorId
description: 要返回元数据的传感器。
type: 字符串
example: sensorId=Amcrest_3
fromTimestamp
description: 需要返回元数据的起始时间戳下限。
type: UTC / GMT 时间戳字符串
example: 2020-10-30T20:00:00.000Z
toTimestamp
description: 需要返回元数据的结束时间戳上限。
type: UTC / GMT 时间戳字符串
example: 2020-10-30T20:05:00.000Z
可选参数#
objectType
description: 一个可选的 objectTypes 参数,用于按对象类型进行过滤(例如,人、汽车...)
type: 字符串
按对象类型过滤的可能方法如下
1) 除了所有对象类型的累积计数外,仅返回特定对象类型的计数。objectType=person,car
2) 除了所有对象类型的累积计数外,返回所有对象类型的计数。objectType=*
当未指定 objectTypes 时,它仅返回所有对象类型的累积计数。
响应#
HTTP GET
{ "behavior": [ { "sensor": { "id": "RedJD8H265" }, "object": { "id": "134", "type": "person" }, "locations": { "coordinates": [ [ 1708598580297, [ 291, 594 ] ], [ 1708598580364, [ 285, 594 ] ], [ 1708598580474, [ 385, 694 ] ], [ 1708598580372, [ 281, 595 ] ] ], "type": "linestring" }, "length": 4, "endLocations": { "start": [ 1708598580297, [ 291, 594 ] ], "end": [ 1708598580372, [ 281, 595 ] ] }, "start": "2024-02-22T10:43:00.297Z", "end": "2024-02-22T10:43:01.255Z", "distance": 204.81118737109063, "speed": 213.7903834771301, "timeInterval": 0.958 "partial": true, "bearing": 175.4933931162317, "direction": "Left" } ] }
响应主体#
sensor.id
传感器的唯一 ID。
object.id
对象的唯一 ID。
locations.coordinates
- 例如
[ 1708598580364, [ 285, 594 ] ]
轨迹项的数组,其中每个项是包含两个元素的数组。
第一个元素是时间戳,例如,1708598580364。
第二个元素是坐标数组 [x,y],例如 [285,594],其中 x=285,y=594。
length
locations.coordinates 数组中轨迹项的数量。
start
第一个轨迹项的时间戳。
end
最后一个轨迹项的时间戳。
endLocations.start
第一个轨迹项。这对应于 location.coordinates 数组中的第一个条目。
endLocations.end
最后一个轨迹项。这对应于 location.coordinates 数组中的最后一个条目。
distance
对象覆盖的总距离,即每个轨迹段长度的总和。距离单位是像素。由于目前不支持相机校准,因此一切都在相机坐标系中,单位是像素。
speed
对象的平均速度。每秒行进的距离(像素为单位)。
partial
指示轨迹项表示此对象的完整轨迹。如果轨迹项未完全落在请求的 fromTimestamp 和 toTimestamp 范围内,则 partial 将为 false。
错误响应#
响应主体:请参阅页面末尾的错误响应主体定义。
HTTP 状态代码
422:未找到请求的 sensorId 和时间范围的行为 500:内部服务器错误
错误响应主体#
所有 API 的错误响应都是具有以下属性的 JSON 对象。
{
"error": "#Detailed error string"
}