Professional Documents
Culture Documents
V0.95
0 / 55
变更版本 变更日期 变更内容
V 0.6 2019-06-05 创建基础版本,包含应用数据和设
备管理接口
V0.7 2019-06-28 适配 1.2.5 版本
V0.8 2019-07-02 Resnapthr 0 表示 disable
V0.9 2019-07-03 移除设备管理部分
V0.91 2019-07-08 Imgtype 值改为 0
V0.92 2019-08-04 补充版本信息
V0.93 2019-08-27 中性版本
V0.94 2019-09-10 基于 MQTT 协议的客户 SaaS 的设
备管理接口初始版本;
V0.95 2019-09-16 变更导入导出接口
1
目 录
1. 概述........................................................................................................................................................................................ 3
2. 产品架构............................................................................................................................................................................... 4
2.1. 产品部署..................................................................................................................................................................... 4
3. 应用数据推送...................................................................................................................................................................... 4
3.1. 应用数据推送............................................................................................................................................................ 5
3.2. 数据推送配置............................................................................................................................................................ 5
4. 设备管理............................................................................................................................................................................. 20
4.2. 详细接口描述.......................................................................................................................................................... 22
2
1. 概述
本文档适用于智能人脸抓拍摄像机,智能人脸识别摄像机和智能客流识别一体摄像机。
本文档主要包括两个部分,应用数据推送以及设备管理数据推送。其中,设备管理部分
数据推送到用户的应用服务器。
设备截图以及本地建库等。
不限于以下数据:
➢ 客流人次统计
➢ 人脸抓拍图片及其时间戳、人脸框坐标等信息
➢ 人脸结构化数据(年龄、性别等)
➢ 人脸识别结果,包含特征及用户 id,相似度,人脸库照片等信息
本文档对应的摄像机固件版本为:
版本 备注
智能人脸抓拍摄像机 1.3.2
智能客流分析摄像机 1.3.2
智能人脸识别摄像机 1.3.2
3
2. 产品架构
2.1. 产品部署
HTTP 应用服务器
摄像机
MQTT 设备管理服务
图 2-1 产品部署示意图
摄像机支持跨公共网络的部署。
从设备管理服务器得到指令;摄像机根据指令的内容完成相应的处理,并将处理结果上报给
设备管理服务器。
3. 应用数据推送
应用数据包括智能人脸抓拍数据、识别数据和客流分析数据。
4
3.1. 应用数据推送
图 3-1 应用数据推送交互时序图
3.2. 数据推送配置
数据推送相关配置需要通过使用智能摄像机展示客户端进行配置。
图 3-2 智能摄像机展示端工具界面
1. 通过 IP 地址连接目标 IPC,确认设备在线;
5
3.2.1. 身份信息配置
图 3-3 摄像机身份设置界面
设置摄像机身份信息,摄像机在推送数据时会将身份信息加入到推送消息中,应用服务器可
以根据摄像机的身份信息来区分连接的摄像机。
名称 说明 消息定义 示例 必选
一级 ID 数字,用于标识摄像一级分类 ID,如组织 ID。 LevelOneId 123 是
一级 ID 名称 字符,用于标识摄像机一级分类名称,如组织名称。 LevelOneName site 是
二级 ID 数字,用于标识摄像二级分类 ID,如组织 ID LevelTwoId 123 是
二级 ID 名称 字符,用于标识摄像机二级分类名称,如组织名称 LevelTwoName division 是
设备 ID 标识摄像机的唯一 ID DeviceID 123 是
设备名称 标识摄像机的唯一名称 DeviceName IPC-Entrance 是
6
3.2.2. 数据推送配置
图 3-4 摄像机应用服务器地址设置页面
名称 说明 示例 必选
服务器地址 接收数据推送的服务器地址 http://example.com 是
端口 服务器的端口号,默认 80 端口 8080 否
url 接收数据推送的服务器 url /api/xxx 否
配置。
3.3.1. 请求 API
7
3.3.2. 请求方法
标准 HTTP POST
3.3.3. 请求参数
Headers
参数 类型 说明
Content-Type String application/json
3.3.4. 参数说明
注意:
1、 这里的数据内容,会不断更新,再提供更多维度信息的同时确保向下兼容。
到更新
参数 类型 是否必 描述
填
Properties 是 IPC 设备基本信息的父节点
LevelOneId String 是 可用作 IPC 安装地所属 SiteId,由管理工具配置
LevelOneName String 是 可用作 IPC 安装地所属 Site 名称,由管理工具配
置
LevelTwoId String 否 可用作 IPC 安装所属部门,由管理工具配置
LevelTwoName String 否 可用作 IPC 设备 ID,由管理工具配置
DeviceId String 否 IPC 设备 ID,由管理工具配置
DeviceName String 否 IPC 设备名称,由管理工具配置
TransmitTime String 是 本条数据发送的时间戳,相对于 UTC 1970 年 1
月 1 日 0 时 0 分 0 秒的总毫秒数
MacAddress String 是 IPC 的 Mac 地址
IPv4Address String 是 IPC 的 IPV4 地址
TimeZone String 是 IPC 的时区信息
TimezoneName String 是 IPC 的时区名字
8
BaseVer String 是 IPC 的基础版本信息
OTAVer String 是 IPC 的 OTA 版本
ModelVer String 是 IPC 的模型版本
FirmwareVer String 是 IPC 的固件版本
SDKVer String 是 IPC 的 SDK 版本
SmartVer String 是 IPC 的智能版本
SerialNumber String 是 IPC 的序列号
SmartData String 是 智能数据父节点
Face String 否 智能数据类型为抓拍的根节点
TimeStamp Number 是 抓拍数据时间戳,相对于 UTC 1970 年 1 月 1 日
0 时 0 分 0 秒的总毫秒数
PersonId Number 是 抓拍人脸 Id
SnapShot Base64 是 抓拍图片数据
ImgType Number 是 图片类型
PicBox [Numbe 是 抓拍框的坐标,参见 “图 3-5 人脸抓拍图片坐
r, Numb 标示意图
er, Num “
ber, Nu
mber]
FaceBox [Numbe 是 人脸框中的坐标, 参见” 图 3-5 人脸抓拍图片
r, Numb 坐标示意图
er, Num ”
ber, Nu
mber]
Gender Number 是 性别,数值型 1 男性 0 女性
Age Number 是 年龄区间,1: [0-18], 2: [19-35], 3: [36-55], 4
56+
LivingScore Number 是 活体打分:0 ~ 100
Pose Number 是 三轴角度归一化值:-2000 ~ 2000
Yaw Number 是 绕 Y 轴旋转偏角:-90 ~ 90
Pitch Number 是 绕 X 轴旋转偏角:-90 ~ 90
Roll Number 是 绕 Z 轴旋转偏角:-90 ~ 90
Quality Number 是 图片质量:-200 ~ 200
FlowEvent 否 过线事件
Timestamp Number 是 过线时间戳,相对于 UTC 1970 年 1 月 1 日 0 时
0 分 0 秒的总毫秒数
PersonId Number 是 过线人员 ID
FlowType Number 是 过线事件类型,0 表示进线,1 表示出线
FlowStats 否 客流统计数据
Timestamp Number 是 开始统计时间,相对于 UTC 1970 年 1 月 1 日 0
时 0 分 0 秒的总毫秒数
Interval Number 是 统计时长
InNumber Number 是 进线人次
9
OutNumber Number 是 出线人次
LineId Number 是 线 ID
LineType Number 是 线类型, 0 表示进出线;1 表示途径线
TotalNumber Number 是 总人数,过线(进出线/途径线)人次之和
FrontNumber Number 是 正脸抓拍人数
InFemaleNumber Number 是 进线总女性人数
InMaleNumber Number 是 进线总男性人数
InMale06Number Number 是 进线 0-6 岁总男性人数
InMale712Number Number 是 进线 7-12 岁总男性人数
InMale1318Number Number 是 进线 13-18 岁总男性人数
InMale1928Number Number 是 进线 19-28 岁总男性人数
InMale2935Number Number 是 进线 29-35 岁总男性人数
InMale3645Number Number 是 进线 36-45 岁总男性人数
InMale4655Number Number 是 进线 46-55 岁总男性人数
InMaleGt56Number Number 是 进线大于等于 56 岁总男性人数
InFemale06Number Number 是 进线 0-6 岁总女性人数
InFemale712Numbe Number 是 进线 7-12 岁总女性人数
r
InFemale1318Numb Number 是 进线 13-18 岁总女性人数
er
InFemale1928Numb Number 是 进线 19-28 岁总女性人数
er
InFemale2935Numb Number 是 进线 29-35 岁总女性人数
er
InFemale3645Numb Number 是 进线 36-45 岁总女性人数
er
InFemale4655Numb Number 是 进线 46-55 岁总女性人数
er
InFemaleGt56Numb Number 是 进线大于等于 56 岁总女性人数
er
OutFemaleNumber Number 是 出线总女性人数
OutMaleNumber Number 是 出线总男性人数
OutMale06Number Number 是 出线 0-6 岁总男性人数
OutMale712Number Number 是 出线 7-12 岁总男性人数
OutMale1318Numb Number 是 出线 13-18 岁总男性人数
er
OutMale1928Numb Number 是 出线 19-28 岁总男性人数
er
OutMale2935Numb Number 是 出线 29-35 岁总男性人数
er
OutMale3645Numb Number 是 出线 36-45 岁总男性人数
er
OutMale4655Numb Number 是 出线 46-55 岁总男性人数
10
er
OutMaleGt56Numbe Number 是 出线大于等于 56 岁总男性人数
r
OutFemale06Numbe Number 是 出线 0-6 岁总女性人数
r
OutFemale712Numb Number 是 出线 7-12 岁总女性人数
er
OutFemale1318Num Number 是 出线 13-18 岁总女性人数
ber
OutFemale1928Num Number 是 出线 19-28 岁总女性人数
ber
OutFemale2935Num Number 是 出线 29-35 岁总女性人数
ber
OutFemale3645Num Number 是 出线 36-45 岁总女性人数
ber
OutFemale4655Num Number 是 出线 46-55 岁总女性人数
ber
OutFemaleGt56Num Number 是 出线大于等于 56 岁总女性人数
ber
Feature 否 识别数据
Timestamp Number 是 抓拍时间戳,相对于 UTC 1970 年 1 月 1 日 0 时
0 分 0 秒的总毫秒数
trackId Number 是 被识别的人的 Id,与抓拍图的 PersonId 对应
FeatureInfo Byte 是 人脸特征值 128 位
MatchedImg Base64 是 被识别的底库照片,Base64 编码
MatchedId String 是 人脸特征库存中匹配的 ID,与增改 ID 接口中传
入的参数 uid 一致
MatchedRate Number 是 人脸特征匹配相似度
DatabaseId Number 是 人脸特征数据库 ID
CropImg Base64 是 被识别的抓拍照片,Base64 编码
Name String 是 人脸对应 Name 字段
Ext1 String 是 人脸对应 Ext1 字段
Ext2 String 是 人脸对应 Ext2 字段
Ext3 String 是 人脸对应 Ext3 字段
Ext4 String 是 人脸对应 Ext4 字段
Ext5 String 是 人脸对应 Ext5 字段
3.3.5. 响应参数
参数 类型 是否必填 描述 示例值
RequestId String 是 用于区分每一次请求的唯一的字符串。除非发生
404(API_NOT_FOUND)错误,否则此字段必定返回
11
Code Number 是 当前 request 返回状态码,0 表示成功,其他详见错
误码
Message String 是 当前 request 返回描述信息
Data object 是 当前 request 返回的数据
背景图框
人脸框
抓拍框
图 3-5 人脸抓拍图片坐标示意图
3.3.6. 报文示例
3.3.6.1. 人脸抓拍请求示例
适用于抓拍机,识别机人脸抓拍但未识别,客流机人脸抓拍数据推送。
请求 api
POST 数据推送服务器的配置
请求 body
{
"Properties": {
"LevelOneId": "level1Id",
"LevelOneName": "level1Name",
"LevelTwoId": "level2Id",
"LevelTwoName": "level2Name",
"DeviceId": "deviceId",
12
"DeviceName": "deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"TimezoneName": "GMT+08 Taipei, Beijing, Chongqing, Urumqi, Hong Kong,
Perth, Singapore",
"BaseVer":"3519V101_IMX385_H_BASE_W_9.1.21.3",
"OTAVer":"HR-IPC2XX5-X1B-V1.2.2-FLOW-20190430",
"ModelVer":"MD-0.2.12",
"FirmwareVer":"FW-1.7.2-01.01.01",
"SDKVer":"SDK-1.3.8-01.01.01-02",
"SmartVer":"SMART-2.1.1-beta.pa1-01.01.05-01",
"SerialNumber":"068B3001010110077L"
},
"SmartData": {
"Face":{
"TimeStamp":"1557061092",
"PersonId":"xxxxxxxx",
"SnapShot":"aaaasdfasfsafsafsadf",
"ImgType":"1",
"PicBox":"10,10,30,30",
"FaceBox":"15,15,45,45",
"Gender":"0",
"Age":"1",
"LivingScore":"1",
"Pose":"0",
"Yaw":"0",
"Pitch":"0",
"Roll":"1",
"Quality":"1"
}
}
}
3.3.6.2. 人脸识别请求示例
适用于识别机比对成功的数据推送。此时,识别结果,和识别对应的抓拍图会分成两个报文
上报。
请求 url
13
POST 数据推送服务器的配置
请求 body
{
"Properties": {
"LevelOneId": "level1Id",
"LevelOneName": "level1Name",
"LevelTwoId": "level2Id",
"LevelTwoName": "level2Name",
"DeviceId": "deviceId",
"DeviceName": "deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"TimezoneName": "GMT+08 Taipei, Beijing, Chongqing, Urumqi, Hong Kong,
Perth, Singapore",
"BaseVer":"3519V101_IMX385_H_BASE_W_9.1.21.3",
"OTAVer":"HR-IPC2XX5-X1B-V1.2.2-FLOW-20190430",
"ModelVer":"MD-0.2.12",
"FirmwareVer":"FW-1.7.2-01.01.01",
"SDKVer":"SDK-1.3.8-01.01.01-02",
"SmartVer":"SMART-2.1.1-beta.pa1-01.01.05-01",
"SerialNumber":"068B3001010110077L"
},
"SmartData": {
"Face":{
"TimeStamp":"1557061092",
"PersonId":"xxxxxxxx",
"SnapShot":"aaaasdfasfsafsafsadf",
"ImgType":"1",
"PicBox":"10,10,30,30",
"FaceBox":"15,15,45,45",
"Gender":"0",
"Age":"1",
"LivingScore":"1",
"Pose":"0",
"Yaw":"0",
"Pitch":"0",
"Roll":"1",
"Quality":"1"
}
}
14
}
以及识别结果
{
"Properties": {
"LevelOneId": "level1Id",
"LevelOneName": "level1Name",
"LevelTwoId": "level2Id",
"LevelTwoName": "level2Name",
"DeviceId": "deviceId",
"DeviceName": "deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"TimezoneName": "GMT+08 Taipei, Beijing, Chongqing, Urumqi, Hong Kong,
Perth, Singapore",
"BaseVer":"3519V101_IMX385_H_BASE_W_9.1.21.3",
"OTAVer":"HR-IPC2XX5-X1B-V1.2.2-FLOW-20190430",
"ModelVer":"MD-0.2.12",
"FirmwareVer":"FW-1.7.2-01.01.01",
"SDKVer":"SDK-1.3.8-01.01.01-02",
"SmartVer":"SMART-2.1.1-beta.pa1-01.01.05-01",
"SerialNumber":"068B3001010110077L"
},
"SmartData": {
"Feature":{
"PersonId":"xxxxxxxx",
"MatchedImg":"aaaaaaaaaaaa…"
"Timestampe":"1557061092",
"FeatureInfo":"1.0000,10000,10000 ...",
"MatchedId":"xxxx-xxxx-xxxx-xxxx",
"MatchedRate":0.80,
"DatabaseId":"123",
"CropImg":"bbbbbbbbbbbb…"
}
}
}
15
3.3.6.3. 客流统计结果请求示例
适用于客流机设置为按时间段统计结果的推送。
请求 url
POST 数据推送服务器的配置
请求 body
{
"Properties": {
"LevelOneId": "level1Id",
"LevelOneName": "level1Name",
"LevelTwoId": "level2Id",
"LevelTwoName": "level2Name",
"DeviceId": "deviceId",
"DeviceName": "deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"TimezoneName": "GMT+08 Taipei, Beijing, Chongqing, Urumqi, Hong Kong,
Perth, Singapore",
"BaseVer":"3519V101_IMX385_H_BASE_W_9.1.21.3",
"OTAVer":"HR-IPC2XX5-X1B-V1.2.2-FLOW-20190430",
"ModelVer":"MD-0.2.12",
"FirmwareVer":"FW-1.7.2-01.01.01",
"SDKVer":"SDK-1.3.8-01.01.01-02",
"SmartVer":"SMART-2.1.1-beta.pa1-01.01.05-01",
"SerialNumber":"068B3001010110077L"
},
"SmartData": {
"FlowStats":{
分 0 秒的总秒数"LineId":1,
"LineType":0,
"Interval":1800, //单位秒
16
"TotalNumber":530,
"InNumber":300,
"OutNumber":230,
"TotalNumber":1
"FrontNumber":1
"InFemaleNumber":1
"InMaleNumber":1
"InMale06Number":1
"InMale712Number":1
"InMale1318Number":1
"InMale1928Number":1
"InMale2935Number":1
"InMale3645Number":1
"InMale4655Number":1
"InMaleGt56Number":1
"InFemale06Number":1
"InFemale712Number":1
"InFemale1318Number":1
"InFemale1928Number":1
"InFemale2935Number":1
"InFemale3645Number":1
"InFemale4655Number":1
"InFemaleGt56Number":1
"OutFemaleNumber":1
"OutMaleNumber":1
"OutMale06Number":1
"OutMale712Number":1
"OutMale1318Number":1
"OutMale1928Number":1
"OutMale2935Number":1
"OutMale3645Number":1
"OutMale4655Number":1
"OutMaleGt56Number":1
"OutFemale06Number":1
"OutFemale712Number":1
"OutFemale1318Number":1
"OutFemale1928Number":1
"OutFemale2935Number":1
"OutFemale3645Number":1
"OutFemale4655Number":1
"OutFemaleGt56Number":1
},
17
}
3.3.6.4. 客流统计事件请求示例
适用于客流机统计时间设置为 0,即实时客流事件的统计数据推送。
请求 url
POST 数据推送服务器的配置
请求 body
{
"Properties": {
"LevelOneId": "level1Id",
"LevelOneName": "level1Name",
"LevelTwoId": "level2Id",
"LevelTwoName": "level2Name",
"DeviceId": "deviceId",
"DeviceName": "deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"TimezoneName": "GMT+08 Taipei, Beijing, Chongqing, Urumqi, Hong Kong,
Perth, Singapore",
"BaseVer":"3519V101_IMX385_H_BASE_W_9.1.21.3",
"OTAVer":"HR-IPC2XX5-X1B-V1.2.2-FLOW-20190430",
"ModelVer":"MD-0.2.12",
"FirmwareVer":"FW-1.7.2-01.01.01",
"SDKVer":"SDK-1.3.8-01.01.01-02",
"SmartVer":"SMART-2.1.1-beta.pa1-01.01.05-01",
"SerialNumber":"068B3001010110077L"
},
"SmartData": {
"Face":{
"TimeStamp":"1557061092",
"PersonId":"xxxxxxxx",
"SnapShot":"aaaasdfasfsafsafsadf",
"ImgType":"1",
"PicBox":"10,10,30,30",
"FaceBox":"15,15,45,45",
"Gender":"0",
18
"Age":"1-18"
},
"FlowEvent":{
"TimeStamp":"1557061092",
"LineId":1,
"LineType":0,
"PersonId":1558685460,
"FlowType":0
},
}
}
客流事件
{
"Properties":{
"LevelOneId":"level1Id",
"LevelOneName":"level1Name",
"LevelTwoId":"level2Id",
"LevelTwoName":"level2Name",
"DeviceId":"deviceId",
"DeviceName":"deviceName",
"TransmitTime":"1557061092",
"MacAddress":"ff:ff:ff:ff:ff:ff",
"Ipv4Address":"127.0.0.1",
"TimeZone":"UTC+8",
"DST":0,
"OTAVer":"",
"ModelVer":"",
"FirmwareVer":"",
"SDKVer":"",
"SmartVer":"",
"SerialNumber":"xxxxxxxx"
},
"SmartData":{
"FlowEvent":{
"TimeStamp":"1557061092",
"PersonId":"xxxxxxxx",
"FlowType":1
}
}
}
返回成功示例
19
{
"request_id":"911b9802-732c-4a4c-a3f4-e2735ab59bc0",
"message":"success",
"code":0,
"data":null
}
返回失败示例
{
"request_id":"911b9802-732c-4a4c-a3f4-e2735ab59bc0",
"message":"缺少必须的参数",
"code":10003,
"data":null
}
4. 设备管理
4.1. 设备管理服务器配置
摄像机与设备管理服务器的交互时序简单表示如下:
图 4-2 摄像机与设备管理服务器交互时序示意图
20
图 4-1 设备管理接入设置
{
"activation":{
"url":"xxxxxxxx",
"http_method":"POST",
"headers":{},
"body":{}
}
}
如下:
21
⚫ 参数 mqtt_broker 为 broker 地址,连接成功后,即订阅、发布主题消息;
{
"thing_id":"xxx", //IPC 在 broker 上唯一标识
"app_id":"xxxx",
"space_id":"xxxxxxxx",
"connection":{
"mqtt_broker":"tcp://10.64.35.117:1883" //broker 地址
},
"oss_infos":[
{
"vendor_list":[
"aliyunoss"
],
"bucket":"bucket",
"endpoint":"xxx",
"region":"region",
"access_key":"xxx",
"secret_key":"xxx"
}
]
}
4.2. 详细接口描述
4.2.1.1. 属性相关
22
Topic
topic
发布/订阅 用途
hobot/{ClientId}/property/asyncupd/req
IPC 订阅 属性变更(异步请求)
uest
hobot/{ClientId}/property/asyncupd/res
IPC 发布 属性变更应答
ponse
hobot/{ClientId}/property/syncupd/requ
IPC 订阅 属性变更(同步请求)
est
hobot/{ClientId}/property/syncupd/{Req
IPC 发布 属性变更应答
uestId}/response
Payload
属性周期上报
⚫ Topic:$hobot/${ClientId}/property/report //IPC 订阅(Saas 发布)
⚫ Payload:
{
"reported_version":0,
"reported":{
},
}
⚫ 参数说明:
reported_version:int 类型,IPC 当前属性版本,设备从 PropertyUpdate 消
息体中获取,初始状态默认 0
reported:map[string]interface{}类型,IPC 当前改模块属性,格式见属性定
义
timestamp:int 类型,发送该消息体的时间戳,精确到毫秒
属性变更相关操作:
⚫ 请求下发至 IPC 端:
⚫ Topic:$hobot/${ClientId}/asyncupd/request //IPC 订阅(Saas 发布)
23
$hobot/${ClientId}/syncupd/request //IPC 订阅(Saas 发布)
⚫ Payload:
{
"request_id":"",
"desired_version":1,
"desired":{
},
"timestamp":0
}
⚫ 参数说明:
request_id:string 类型,作为该次请求标志
desired_version:int 类型,属性版本,下发 desired_version 须大于等于
IPC 当前属性版本
desired:map[string]interface{}类型,更改属性,格式见属性定义
timestamp:int 类型,可选,下发该 request 的时间戳
⚫ IPC 端应答:
⚫ Topic:$hobot/${ClientId}/asyncupd/response //IPC 发布(Saas 订阅)
$hobot/${ClientId}/syncupd/${RequestID}/response //IPC 发
布(Saas 订阅)
⚫ Payload:
{
"code":0,
"message":"",
"reported_version":0:
"reported":{
},
"timestamp":0
}
⚫ 参数说明:
code:int 类型,返回码,非 0 表示属性更新失败
message: string 类型,返回信息
reported_version:int 类型,IPC 当前属性版本
reported:map[string]interface{}类型,IPC 当前改模块属性,格式见属性定
义
timestamp:int 类型,可选,发送该消息体的时间戳
4.2.1.2. 服务相关
24
指令中描述。
Topic
topic
发布/订阅 用途
hobot/{ClientId}/service/sync/{RequestId}/r
IPC 发布 同步服务应答
esponse
Payload
⚫ 请求下发至 IPC 端:
⚫ Topic:$hobot/${ClientId}/service/async/request //IPC 订阅(Saas
发布)
$hobot/${ClientId}/service/sync/request //IPC 订阅(Saas 发
布)
⚫ Payload:
{
"request_id":"",
"service_id":"",
"payload":{
},
"timestamp":0
}
⚫ 参数说明:
request_id:string 类型,作为该次请求标志,指令 id
service_id:string 类型,指令类型,表示操作类型
payload:[]byte 类型,指令内容,格式见服务指令
timestamp:int 类型,发送该消息体的时间戳
⚫ IPC 端应答:
25
异步服务应答
同步服务应答
⚫ Topic:$hobot/${ClientId}/service/sync/${requestid}/response
//IPC 发布(Saas 订阅)
⚫ Payload:
{
"payload":{
},
"timestamp":0
}
参数说明:
request_id:string 类型,作为该次请求标志,指令 id
payload:interface{}类型,包括 code,status 等信息
timestamp:int 类型,发送该消息体的时间戳
4.2.1.3. 事件相关
26
Topic
topic
发布/订阅 用途
Payload
4.2.2. 属性定义
器指令执行状态和最新模块参数值。
27
4.2.2.1. Smart 版本信息
仅周期上报,不支持更新
{
"smartinfo":{
"model":"",
"firmware":"",
"sdk":"",
"ota":"",
"smart":""
}
}
4.2.2.2. 设备信息
仅周期上报,不支持更新
{
"deviceInfo":{
"SerialNo":"",
"DeviceType":"",
"FirmwareVersion":""
}
}
28
4.2.2.3. 网络信息
仅周期上报,不支持更新
{
"network":{
"MacAddresss":"",
"LocalIp":"",
"NetMask":"",
"GateWay":"",
"Dns1":"",
"Dns2":""
}
}
4.2.2.4. 抓拍参数
29
参数名 值类型 有效范围 含义
注意:仅抓拍机,识
别机可设置;
若 resnapthr 非
disable 时,限制
resnapthr>=
beginpostframethr
;
snapscale double 1.0~4.0 人脸外廓系数
firstnumavailthr int 抓拍机有效 单个 trackID 抓拍数
1~3
仅抓拍机可设置
numaftervanish int 1~100 消失帧数(捕获对象连续消失若干帧后,停止追踪)
switchregion bool 抓拍机/识别机有效 是否仅在指定区域中抓拍
false, true,
captregion array 抓拍机/识别机有效 抓拍区域坐标
x: 0~1920
y : 0~1080
captbackground bool false, true, 是否抓拍人脸出现时的背景图
track_score_eliminate uint 1~10 灵敏度
snap_mode uint 客流机有效 开关,是否开启全量抓拍
0~1
living_en bool False,true 是否使能 x1 侧活体模型
0:默认活体模型不开启;
1:使能活体模型
living_thr int 1-100 活体阈值
win int 默认 25 活体检测滑动窗口大小,只读
sel_face_mode uint 0-1 大脸模式
0-正常优选识别
1-大脸模式优选识别
hieldregion_working bool true,false 是否开启隐私区域
shieldgion array x: 0~1920 隐藏区域坐标,最大支持 4 个区域
y : 0~1080
默认值为(-1,-1,-
1,-1)表示未开启
q_factor uint 0 – 低,1 – 中,2 – 背景图压缩 QFactor
高
resolution uint 0 – 1920 * 1080, 背景图分辨率
1 – 1280 * 720,
2 – 720 * 480
30
"capecfg":{
"snapsizethr":64,
"frontthr":1,
"beginpostframethr":1,
"snapscale":1,
"resnapthr":1,
"firstnumavailthr":2,
"numaftervanish":1,
"switchregion":true,
"captregion":[
{
"id":0,
"type":0,
"x1":402,
"x2":707,
"y1":160,
"y2":315
}
],
"captbackground":true,
"track_score_eliminate":3,
"snap_mode":true,
"hieldregion_working":false,
"living_en":false,
"living_thr":0,
"sel_face_mode":0,
"shieldgion":[
{
"d":0,
"type":0,
"x1":-1,
"x2":-1,
"y1":-1,
"y2":-1
}
]
}
}
4.2.2.5. 客流参数
客流参数定义如下:
31
参数名 值类型 有效范围 含义
type int 0~1 0 - 仅做过线
1 - 过线+年龄+性别
lines array x1, x2: 0~1920 越界线设置
y1, y2: 0~1080 x1, y1, x2, y2: 线段坐标
type:0~1 线的两个点坐标,左上为坐标原点,右下为(1920,1080),
linetype:0~1 其他分辨率映射到该区域
每种线最多设置一条,可 type:越线判定类型
以有折现,一条线的折现 0 – 从左到右,从上到下为进入
最多 6 条,且下条折线的 1 - 从左到右,从上到下为出去
起点和上条折线的终点 linetype: 线的类型
一致 0 - 客流线
1 - 途径线
crontab string 1~127 位 ASCII 可 任务的开始时间转为 crontab 格式"秒 分 时 日 月 周
打印字符 ",时间为 UTC 时间,如任务开始时间为每天 2:30 CST,
转为 crontab 格式为"0 30 18 * * *"。客流起始时间不能跨
天。不允许出现? /等符号
duration int 0-86340 任务持续时长,单位秒,如任务周期 2:30-8:20,则
duration 为 21000
start_time string string 12:44 格式的时间字符串,为当地时间,该参数不为空时,
忽略 crontab 参数,start_time+ duration 不能超出一天
upload_interval int 0~1440 0 表示不输出统计数据 N(非 0 值)表示客流统计上报间
隔,单位为分钟
upload_event bool true, false 是否上报客流事件
表 4-2 客流参数列表
{
"passflow":{
"type":1,
"lines":[],
"crontab":"",
"duration":"",
"start_time":"",
"upload_interval":9,
"upload_event":true
}
}
32
4.2.2.6. 识别参数
识别参数定义如下:
{
"RecogApp":{
"recog_switch":true,
"recog_snap":true,
"send_origin_img":true
}
}
4.2.2.7. 商业部署
{
"commdeploy":{
"app_port":117,
"app_svr":"10.64.35.117",
"app_path":"",
"dm_port":80,
"dm_svr":"",
"reserved":""
}
}
33
4.2.2.8. FTP 参数
FTP 参数定义如下:
{
"ftpupload":{
"serveraddr":"",
"port":80,
"user":"",
"password":"",
"savebackground":true,
"istest":true,
"configresult":0,
"testresult":0
}
}
4.2.2.9. 人脸曝光参数
34
luminance int 1-100
参考亮度
{
"face_exposure":{
"enable":true,
"luminance":18,
"duration":28
}
}
4.2.2.10. 补光参数
{
"image_lighting":{
"lighting_mode":0,
"lg_sensitivity":0,
"lg_filtrationtime":8,
"lg_gain":10,
35
"lg_lighthour":10,
"lg_lightmin":10,
"lg_darkhour":10,
"lg_darkmin":10
}
}
4.2.2.11. 曝光参数
{
"image_exposure":{
"exposure_mode":0,
"aegain":0,
"shutter":8
}
}
36
4.2.2.12. 聚焦
{
"image_focus":{
"focus_mode":0,
"focus_control":0
}
}
4.2.2.13. 视频调节
{
"image_dnr":{
"dnr_mod":1,
"dnr_3d_value":0,
"dnr_2d_value":0
}
}
37
4.2.2.14. 背光
{
"image_backlight":{
"backlight_enable":0,
"backlight_level":0
}
}
4.2.2.15. 去雾
{
"image_defog":{
"defog_enable":0,
"defog_level":0
}
}
4.2.2.16. 白平衡
38
wbgreen_g int 0-255 绿色增益
ain
wbblue_gai int 0-255 蓝色增益
n
{
"image_whitebalance":{
"whitebalance_mode":0,
"wbred_gain":0
"wbgreen_gain":0
"wbblue_gain":0
}
}
4.2.2.17. 图像增强
参数名 值类 有效范围 含义
型
flicker_contr int 0:室内 NTSC 抗闪控制
ol 1:室内 PAL
2:室外
wdr_enable int 0:关闭 宽动态设置
1:自动
2:弱
3:适中
4:强
5:超强
6: 数字宽动态
drc_strength Int 0-100 数字宽动态等级
{
"image_enhance":{
"flicker_control":0,
"wdr_enable":0
"drc_strength":0
}
}
39
4.2.2.18. 图像调节参数
{
"image_adjust":{
"brightness":128,
"contrast":128,
"saturation":128,
"sharpness":128
}
}
4.2.2.19. 视频流参数
模块名:
主码流 video_config_main
子码流 video_config_sub
三码流 video_config_third
0 静码率
1 变码率
H264 =2
H265 = 3
MJPEG=4
40
profile int 0-2 profile
0 baseline
1 main
2 high
0:D1,720*480
1:CIF 352*288
2:1080P 1920*1080
3:720P 1280*720
{
"video_config":{
"bit_rate":128,
"frame_rate":12,
"iframe_interval":1,
"is_variable_rate":1,
"encodetype":1,
"profile":1,
"resolution":1
}
}
4.2.2.20. 身份认证参数
{
"identification":{
"device_id":"",
"device_name":"",
"levelone_id":"",
"levelone_name":"",
"leveltwo_name":"",
"leveltwo_id":""
41
}
}
4.2.3. 服务指令
以下各个指令的内容与的服务相关格式相对应
service_id 意义 备注
8210
测试应用服务器通路 将当前 IPC 画面截屏发送至
应用服务器
1025
设备升级
8208
设备截图 将当前 IPC 画面截屏发送至
指定地址
8209
历史数据上报 智能数据上报至应用服务器
8211
设备日志上传 设备传统日志上报
8193
设备重启
8801
创建底库
8802
删除底库
8813
更新底库
8804
添加图片
底库管理相关
8805
删除图片
8806
删除底库所有图片 保留特征等信息
8810
查询用户信息
8812
查询所有底库信息
42
9904
批量添图
4.2.3.1. 测试应用服务器通路
{
"request_id":"xxx",
"service_id":"8210",
"payload":{}
}
返回应答示例:
{
"code":0,
"message":"",
"status":""
}
4.2.3.2. OTA 升级
等;
{
"request_id":"xxx",
"service_id":"1025",
"payload":{
"artifact": {
"source": {
43
"uri": "http://xxxx"
}
},
"version": "xxxxx"
}
}
返回应答示例:
{
"code":0,
"message":"",
"status":""
}
4.2.3.3. 设备截图
注意 url 中末尾的字符
{
"request_id":"xxx",
"service_id":"8208",
"payload":{"instructions": "{\"callback\":\"http://xx/:thing_id\"}"}
} //图片上传地址中:thing_id 固定,由 IPC 封装为当前 IPC 唯一标志
返回应答示例
{
"code":0,
"message":"",
"status":""
}
4.2.3.4. 历史数据上报
向应用服务器上报历史数据,仅用于 sd 卡设备
{
"request_id":"xxx",
44
"service_id":"8209",
"payload":{
"instructions": "{\"start_time\":xxx, \"end_time\":xxx, \"type\":xx}"
}
}
参数说明:
应答示例:
{
"code":0,
"message":"",
"status":""
}
4.2.3.5. 设备重启
{
"request_id":"xxx",
"service_id":"8193",
"payload":{}
}
应答示例:
{
"code":0,
"message":"",
"status":""
}
4.2.3.6. 设备日志上传
{
"request_id":"xxx",
45
"service_id":"8211",
"payload":{
"instructions": "{\"start_time\":xxx, \"end_time\":xxx, \"type\":xx}"
}
}
参数说明:
{
"code":0,
"message":"",
"status":""
}
4.2.3.7. 底库管理相关
遵从服务相关定义。
底库操作参数说明:
底库 参数 定义 备注
libid
底库 id 唯一标志;
仅支持大小写字母,数字,下划线,短划
线;
有效长度 1-45
name
底库名称 仅支持中文,大小写字母,数字,下划线,
短划线;
有效长度 1-16
46
threshold
底库阈值 整数,有效范围 0-100
图片 参数 定义 备注
uid
用户 id 唯一标志;
仅支持大小写字母,数字,下划线,短划
线;
有效长度 1-45
name
图片名称 支持所有可输入字符;
有效长度 1-32
extra
自定义字段 支持大小写字母,数字,下划线,短划线,
中文
有效长度 0-32
base64
图片编码 支持 jpg 格式;
图片大小不超过 100kb;
4.2.3.7.1. 创建底库
{
"request_id":"xxx",
"service_id":"8801",
"payload":{"libid": "xxxx", "name": "xxxx", "threshold" : xx}
}
47
4.2.3.7.2. 删除底库
{
"request_id":"xxx",
"service_id":"8802",
"payload":{"libid": "xxxx"}
}
4.2.3.7.3. 全量更新底库
{
"request_id":"xxx",
"service_id":"8813",
"payload":{"libid": "xxxx", "name": "xxxx", "threshold" : xx}
}
4.2.3.7.4. 增改图片
删除。
{
"request_id":"xxx",
"service_id":"8804",
"payload":{
"libid": "xxxxxxx",
"user_info":{
"uid": "xxxx",
"name": "xxxx",
"base64":["xxxx"],
"img_url": "xxxx",
"extra": ["xxx","xxx"]
}
48
}
}
4.2.3.7.5. 删除图片
{
"request_id":"xxx",
"service_id":"8805",
"payload":{"libid": "xxxxxxx","uid": "xxxx"}
}
4.2.3.7.6. 删除底库所有图片
{
"request_id":"xxx",
"service_id":"8806",
"payload":{"libid": "xxxxxxx"}
}
4.2.3.7.7. 查询用户信息
{
"request_id":"xxx",
"service_id":"8810",
"payload":{"libid": "xxxxxxx","uid": "xxxx"}
}
4.2.3.7.8. 查询所有底库信息
{
"request_id":"xxx",
"service_id":"8812",
"payload":{}
49
}
4.2.3.7.9. 批量添图
在收到指令开始执行后,会上报添加图片进度。最后上报指令最终结果为错误码列表。错误码列
表如下:
success 0
uid 或 name 无效 1
附加信息无效 2
查询 ID 失败 3
删除原 uid 失败 4
图片文件无效 5
添加图片失败 6
添加 extra 信息失败 7
抽取特征失败 8
查询特征状态失败 9
其他错误 10
{
"request_id":"xxx",
"service_id":"9904",
"payload":{
"libid":"repo",
"user_info":{
"uid_list": ["11","22","33"],
"name_list": ["11","22","33"],
"img_url": "http://10.64.33.40:17901/static/test.zip",
"extra_list":[["xxxxxx", "xxxxx"], ["xxxxx"],["xxxxx"]]
}
}
}
50
4.2.3.7.10. 导入指定用户信息
{
"request_id":"xxx",
"service_id":"8816",
"payload":{
"libid":"repo",
"user_info":[
{
"uid": "001",
"name":"string",
"ext1": "string",
"ext2": "string",
"ext3": "string",
"ext4": "string",
"ext5": "string",
"status": 0,
"feature": "string",
"img_url":"string", //S3 address
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{
"uid": "002",
"name":"string",
"ext1": "string",
"ext2": "string",
"ext3": "string",
"ext4": "string",
"ext5": "string",
"status": 0,
"feature": "string",
"img_url":"string", //S3 address
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{
"uid": "003",
"name":"string",
"ext1": "string",
"ext2": "string",
51
"ext3": "string",
"ext4": "string",
"ext5": "string",
"status": 0,
"feature": "string",
"img_url":"string", //S3 address
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{
"uid": "004",
"name":"string",
"ext1": "string",
"ext2": "string",
"ext3": "string",
"ext4": "string",
"ext5": "string",
"status": 0,
"feature": "string",
"img_url":"string", //S3 address
"url": "string",
"feature_attr":"string",
"model_version":"string"
}
]
}
}
52
"code": 0,
},
{
"uid": "004",
"code": 0,
}
],
"timestamp":"12345467"
}
4.2.3.7.11. 导出指定用户信息
{
"request_id":"xxx",
"service_id":"8815",
"payload":"{"libid": "xxxxxxx",”uids”: [”001”,”002”,”003”,”004”]"}"
}
导出 uids 数组中对应的所有信息如下:
{
"request_id": "xxx",
"code": 0,
"message":"success",
"payload":[
{
"uid": "001",
"status": 0,
"feature": "string",
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{"uid": "002",
"status": 0,
"feature": "string",
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{"uid": "003",
"status": 0,
53
"feature": "string",
"url": "string",
"feature_attr":"string",
"model_version":"string"
},
{"uid": "004",
"status": 0,
"feature": "string",
"url": "string",
"feature_attr":"string",
"model_version":"string"
}
],
"timestamp":"12345467"
}
注意:
54