资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

EM-LINK接口说明

本文档提供了EM-LINK的接口文档,支持进行二次开发。

接口整体说明

  1. 每个接口的完整调用地址由 IP:端口+接口地址 拼接而成。默认端口为:8001
  2. 下文将讲述的接口列表总体分为这几类:

    • 事件相关接口:用于查询事件列表与事件详情,配置事件推送方案
    • 边缘设备(EM-BOX)管理接口:用于查看边缘设备
    • 设备(摄像头)管理接口:用于添加设备、设置抽帧功能、以及进行设备的增删改
    • 技能管理接口:用于设置以及查看某个技能的配置详情
    • 人脸库相关接口:用于进行人脸库的管理,进行用户的增删改查
    • 系统设置相关接口:用于对系统进行设置

接口列表

以下为全部接口的列表以及详情信息。

事件相关接口

查询事件列表

  • /rpc/2.0/cvsaas/v1/event/list [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询事件列表

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 边缘设备token,即EM-BOX的设备编码
    deviceToken String (摄像头)设备token
    skillId int 技能ID
    pageNo int 页码
    pageSize int 单页记录数
    startTime int 开始时间 "yyyy-MM-dd HH: mm:ss"
    endTime int 结束时间 "yyyy-MM-dd HH: mm:ss"

请求示例

{
  "edgeToken":"16049721218a",
  "deviceToken": "20BF-DEPQ-FFDG-GNKT",
  "skillId": 10,
  "pageNo": 1,
  "pageSize": 10,
  "startTime":"2021-9-12 0:0:0",
  "endTime":"2022-9-12 0:0:0"
}

返回说明

字段名 类型 说明
log_id Long 调用唯一ID
error_code Int 服务调用提示码,失败才返回,成功不返回
error_msg String 服务调用提示信息,失败才返回,成功不返回
result Object 返回结果
+pageNo int 页码
+pageSize int 单页记录数
+totalCount int 总记录数
+totalPage int 总页数
+data List 数据
++eventId string 事件ID
++skillId Long 技能ID
++skillName String 技能名称(中文)
++deviceToken String 设备token
++originResourceFileKey String 原始资源fileKey,
http://盒子ip:8000/app/data/storage/拼接上fileKey 即可得到完整的访问地址,下同
注意:如果您想永久保存该图片,请将图片下载到服务器单独保存,由于盒子存储空间有限,会定期删除图片(删除策略见"系统设置-事件设置-事件保存时长"),图片被删后,地址将无法访问。
++originImageFileKey String 原始图片fileKey,
originImageFileKey与originResourceFileKey的关系及区别:
资源包含图片及视频,当资源类型是图片时,image==resource;
当资源类型是视频时,image代表视频的封面图片,resource为真正视频;由于目前资源都是图片,所以目前image字段和resource字段是相同的。
++renderResourceFileKey String 渲染资源fileKey,为节省盒子计算及存储资源,渲染图没有在后端生成渲染图,因此renderResourceFileKey==originResourceFileKey
++renderImageFileKey String 渲染图片fileKey,renderImageFileKey==renderResourceFileKey
++requestTime String 抓拍时间"yyyy-MM-dd HH: mm:ss"
++createTime String 事件发生时间"yyyy-MM-dd HH: mm:ss"
++isFalseAlarm byte 事件是否是误报事件,0:否 1:是

返回示例

{
    "error_code": 0,
    "log_id": 1603933898182943,
    "trace_id": "38d33531c0f24a21a6e10980f80fcba7",
    "result": {
        "pageNo": 1,
        "pageSize": 20,
        "totalCount": 1,
        "totalPage": 1,
        "data": [
            {
                "eventId": 1,
                "skillId": 19,
                "title": "烟火检测",
                "skillName": "烟火检测",
                "deviceToken": "QDHG-LWMS-8DHY-G09F",
                "deviceName": "test",
                "originImageFileKey": "/resource/event/QDHG-LWMS-8DHY-G09F/1603920042988_48548396908690.jpg",
                "originResourceFileKey": "/resource/event/QDHG-LWMS-8DHY-G09F/1603920042988_48548396908690.jpg",
                "renderImageFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/QDHG-LWMS-8DHY-G09F/1603920045286_662456897570735.jpg",
                "renderResourceFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/QDHG-LWMS-8DHY-G09F/1603920045286_662456897570735.jpg",
                "requestTime": 1603920043000,
                "createTime": 1603920045000,
              	"isFalseAlarm":0
            }
        ]
    }
}

事件详情接口

接口描述: 查询事件详情

接口地址: /rpc/2.0/cvsaas/v1/event/detail

请求方式: POST

请求格式: application/json

参数说明:

参数名称 数据类型 是否必须 备注 样例
id(或eventId) Int 事件id

请求示例

{
  "id": 1
}

返回结果说明:以json格式返回。

字段名 类型 备注 样例
log_id Long 调用唯一ID
error_code Int 服务调用提示码,失败才返回,成功不返回
error_msg String 服务调用提示信息,失败才返回,成功不返回
result Object 返回结果
+eventId Int 事件id
+title String 事件标题
+deviceToken String 设备token
+deviceName String 设备名称
+skillId Int 技能id
+skillName String 技能名称
+mediaType Int 媒体类型,0:图片,1:视频,目前都是0
+requestTime Long 请求时间
+createTime Long 事件生成时间
+originResourceFileKey String 原始资源fileKey,
http://盒子ip:8000/app/data/storage/拼接上fileKey即可得到完整的访问地址,下同
注意:如果您想永久保存该图片,请将图片下载到服务器单独保存,因为盒子存储空间有限,会定期删除图片(删除策略在"系统设置-事件设置-事件保存时长"),图片被删后,这个地址就访问不到了。
+originImageFileKey String 原始图片fileKey,
originImageFileKey与originResourceFileKey的关系及区别:
资源是包含图片及视频的,当资源类型是图片时,image==resource;
当资源类型是视频时,image代表视频的封面图片,resource是真正的视频;因为目前资源都是图片,所以目前image字段和resource字段是相同的。
+renderResourceFileKey String 渲染资源fileKey,为节省盒子计算及存储资源,目前渲染图是在浏览器做的,没有在后端生成渲染图,所以目前renderResourceFileKey==originResourceFileKey
+renderImageFileKey String 渲染图片fileKey,renderImageFileKey==renderResourceFileKey
+skillInput Object 启动技能时的入参
++resource Object 启动技能时的资源(比如抽帧的图片)
+++areas List 框选的检测区域
++++nodes List 框选的检测节点
++customParameter Object 自定义技能参数,比如模型的阈值
+skillOutput Object 技能输出参数,每个技能格式有所区别,
具体请参考:技能执行结果
+isFalseAlarm byte 事件是否是误报事件,0:否 1:是

返回示例

{
    "error_code": 0,
    "log_id": 1632392126291050,
    "trace_id": "96d6c71a1fbc438ca0aeaeb81e0d32eb",
    "result": {
        "eventId": 9265,
        "title": "电子围栏",
        "deviceToken": "20BF-DEPQ-FFDG-GNKT",
        "deviceName": "",
        "skillId": 10,
        "skillName": "电子围栏",
        "mediaType": 0,
        "requestTime": 1631867746000,
        "createTime": 1631867829000,
        "originResourceFileKey": "/resource/event/20BF-DEPQ-FFDG-GNKT/1631867745943_783265707929380.jpg",
        "originImageFileKey": "/resource/event/20BF-DEPQ-FFDG-GNKT/1631867745943_783265707929380.jpg",
        "renderImageFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/20BF-DEPQ-FFDG-GNKT/1631867828710_3630586607441415.jpg",
        "renderResourceFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/20BF-DEPQ-FFDG-GNKT/1631867828710_3630586607441415.jpg",
        "skillInput": {
            "skillName": "电子围栏",
            "ext": {
                "alarmContext": {
                    "mode": "INSTANT"
                },
                "skillModel": {
                    "0:1:0": {
                        "vendorModelId": 1,
                        "vendorModelVersionId": 0,
                        "vendor": 0,
                        "name": "人体检测",
                        "serviceAddress": "http://localhost:8082",
                        "id": 1,
                        "userId": "system",
                        "runEnvironment": 0
                    }
                }
            },
            "requestTime": 1631867745950,
            "skillId": 10,
            "debug": false,
            "resource": {
                "path": "/resource/origin/20BF-DEPQ-FFDG-GNKT/1631867745943_783265707929380.jpg",
                "areas": [
                    {
                        "nodes": [
                            [
                                209,
                                388
                            ],
                            [
                                249,
                                747
                            ],
                            [
                                355,
                                982
                            ],
                            [
                                1124,
                                1017
                            ],
                            [
                                1734,
                                1012
                            ],
                            [
                                1810,
                                537
                            ],
                            [
                                1364,
                                253
                            ],
                            [
                                506,
                                345
                            ]
                        ],
                        "name": "area0"
                    }
                ],
                "type": "object_storage"
            },
            "appId": "10000_0",
            "customParameter": {
                "skillId": 10,
                "modelThresholds": {
                    "bodyProbabilityThreshold": {
                        "lowerLimit": 0.3
                    }
                },
                "skillVersion": 1,
                "alarmSetting": {
                    "bodyFrameAlarmControl": 0
                }
            },
            "deviceName": "11",
            "userId": "10000_0",
            "sync": false,
            "deviceToken": "20BF-DEPQ-FFDG-GNKT"
        },
        "skillOutput": {
            "persons": [
                {
                    "score": 0.646538496017456,
                    "top": 823,
                    "left": 1721,
                    "width": 188,
                    "height": 248
                }
            ],
            "normal": false
        },
        "isFalseAlarm": 1
    }
}

事件删除接口

接口描述: 查询事件列表,技能分析的结果

接口地址: /rpc/2.0/cvsaas/v1/event/delete

请求方式: POST

请求格式: application/json

请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

(YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

参数说明:如果都为空,则删除所有事件

参数名称 数据类型 是否必须 备注 样例
edgeToken String 边缘设备token
skillId Int 技能id
deviceToken String 设备token
startTime String 起始时间 2020-11-20 11:11:11
endTime String 终止时间 2020-11-20 11:11:11

请求示例

{
  "edgeToken":"6b5c8c4c8c0c",
  "skillId": 10,
  "deviceToken":"ABCD-ABCD-DFDF-DFDF",
  "startTime":"2020-11-19 11:11:11",
  "endTime":"2020-11-20 11:11:11"
}

返回结果说明:以json格式返回。

字段名 类型 是否必须 备注 样例
log_id Long 调用唯一ID
error_code Int 服务调用提示码,失败才返回,成功不返回
error_msg String 服务调用提示信息,失败才返回,成功不返回
result JSON 返回结果
+successCount Int 成功删除记录条数
+failureCount Int 失败删除条数

返回示例

{
    "error_code": 0,
    "log_id": 1607341423989015,
    "trace_id": "49c03db9fbbb41238f613f57e6711db2",
    "result": {
        "successCount": 0,
        "failureCount": 0
    }
}

下载事件相关图片

  • /rpc/2.0/cvsaas/v1/event/downloadImage [GET]

    请求格式:form表单,key=value的键值对形式

    接口说明:下载事件相关图片,对http://盒子ip:8000/app/data/storage/图片fileKey访问的图片下载。

    请求说明

    参数名称 类型 是否必填 说明
    fileKey String 待下载图片fileKey

    请求示例

    fileKey:/resource/event/YMXN-BXCF-H5IB-YIWY/1637064321733_965087935020196.jpg

    返回说明

    ​ 文件流,下载指定图片。

边缘设备(EM-BOX)管理接口

边缘设备列表

  • /rpc/2.0/cvsaas/v1/edge/list [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:边缘设备列表

    请求说明

    参数名称 类型 是否必填 说明
    name String 筛选条件:名称
    tag String 筛选条件:EM-BOX分类tag
    status Long 筛选条件:EM-BOX状态
    0:在线
    3:重启
    4:离线
    pageNo Long 页码,默认1
    pageSize Long 每页数量,默认20

    请求示例

    {
        "name":"test",
        "tag":"123",
        "status":4
    }

    返回说明

    参数名称 类型 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 返回结果
    +pageNo Long 页码
    +pageSize Long 每页数量
    +totalCount Long 总数
    +totalPage Long 总页数
    +data Object
    ++name String 边缘设备名称
    ++edgeToken String 边缘设备token
    ++tags List EM-BOX分类
    ++deviceCount Long 已配置的摄像头数量
    ++skills List 已安装技能名称
    ++status Long EM-BOX状态
    0:在线
    3:重启
    4:离线
    ++allowUploadingEvents Boolean 是否接收数据,
    true:接收
    false:不接收

    返回示例

    {
       "error_code": 0,
       "log_id": 1615382618643042,
       "trace_id": "39e495ac0c174a7995be516108546f30",
       "result": {
           "pageNo": 1,
           "pageSize": 20,
           "totalCount": 2,
           "totalPage": 1,
           "data": [
               {
                   "name": "29",
                   "edgeToken": "6b5c8c4c8c0c",
                 	"tags": [
                       "123"
                   ],
                   "deviceCount": 1,
                   "skills": [
                       "陌生人检测",
                       "电子围栏"
                   ],
                   "status": 0,
                   "allowUploadingEvents": true
               },
               {
                   "name": "45",
                   "edgeToken": "67578717377e",
                 	"tags": [
                       "123"
                   ],
                   "deviceCount": 3,
                   "skills": [
                       "烟火检测",
                       "陌生人检测",
                       "安全帽佩戴合规检测",
                       "电子围栏"
                   ],
                   "status": 0,
                   "allowUploadingEvents": true
               }
           ]
       }
    }

边缘设备硬件信息

  • /rpc/2.0/cvsaas/v1/edge/hardware [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:边缘设备硬件信息

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 边缘设备token

    请求示例

    {
        "edgeToken":"6b5c8c4c8c0c"
    }

    返回说明

    参数名称 类型 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 返回结果
    +ramTotal String 总内存
    +ramUsed String 已使用内存
    +ramUsage Long 内存使用率%
    +diskTotal String 磁盘总空间
    +diskUsed String 磁盘已使用空间
    +diskUsage Long 磁盘使用率%
    +cpuUsage Long cpu使用率

    返回示例

    {
        "error_code": 0,
        "log_id": 1615383434981043,
        "trace_id": "e1e678585f4149579b87461075bb1a64",
        "result": {
            "ramTotal": "5953 M",
            "ramUsed": "5164 M",
            "ramUsage": 86,
            "diskTotal": "29227 M",
            "diskUsed": "6854 M",
            "diskUsage": 23,
            "cpuUsage": 21
        }
    }

边缘设备重启/关机

  • /rpc/2.0/cvsaas/v1/edge/shutdown [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:边缘设备重启/关机

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 边缘设备token
    reboot Boolean 是否重启:
    true:重启
    false:关机

    请求示例

    {
        "edgeToken":"6b5c8c4c8c0c",
      	"reboot":true
    }

    返回说明

    参数名称 类型 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1615383434981043,
        "trace_id": "e1e678585f4149579b87461075bb1a64"
    }

设备(摄像头)管理接口

添加设备

  • /rpc/2.0/cvsaas/v1/device/add [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:添加设备

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 该摄像头所属的边缘设备token
    deviceName String 设备名称。长度不超过30。
    deviceAddress String 视频流地址。长度不超过1000。
    remark String 备注。长度不超过255。
    tags List 设备tag
    deviceType Byte 设备类型
    0:视频设备,1:虚拟设备,2:视频文件(用于图片上传接口使用)
    默认是0
    deviceProtocol Byte 设备协议
    controlTransport Byte 信令控制协议

请求示例

{
    "edgeToken":"67578717377e",
    "deviceName":"工地大门摄像头",
    "deviceAddress":"rtsp://admin:admin123456@172.20.76.10:8888//Streaming/Channels/1",
    "remark":"大门一"
}

返回说明

参数名称 类型 说明
log_id Long logid,调用唯一ID
error_code int 服务调用提示码,0表示成功,非0表示失败
error_msg String 服务调用提示信息,失败时返回
result Object 返回结果
+deviceToken String 摄像头token

返回示例

{
    "error_code": 0,
    "log_id": 1615275234572097,
    "trace_id": "507fc09278b740bc939541df0653dc0d",
    "result": {
        "deviceToken": "DHWR-CGRH-SSGO-FDFY"
    }
}

删除设备

  • /rpc/2.0/cvsaas/v1/device/delete [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:删除设备

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token

    请求示例

    {
        "deviceToken": "KYAX-AOJ0-21DE-5853"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1579088750143069
    }

查询设备详情

  • /rpc/2.0/cvsaas/v1/device/detail [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询设备详情

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token

    请求示例

    {
        "deviceToken": "KYAX-AOJ0-21DE-5853"
    }

    返回说明

    参数名称 类型 说明
    logId Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    errorMsg String 服务调用提示信息,失败时返回
    result Object 返回结果体
    +edgeToken String 摄像头所属边缘设备的token
    +deviceType byte 设备类型
    0:视频设备
    1:虚拟设备
    2:视频文件
    +rtspAddress String 视频流地址
    +deviceToken String 设备token
    +deviceName String 设备名称
    +deviceStatus int 设备状态码。
    0:设备已离线
    1:未配置技能
    2: 抽帧成功
    3:抽帧失败
    4:图片上传成功
    5:图片上传失败
    6:抽帧暂停
    7:不在配置的运行时间
    8:(因为磁盘空间不足)抽帧停止
    +updateTime Date 设备更新时间
    +remark String 备注
    +skills List 技能列表
    +tags List 摄像头tag
    +deviceProtocol Byte 设备协议
    +controlTransport Byte 信令控制协议
    +mediaTransport Byte 媒体数据协议

    返回示例

    {
        "error_code": 0,
        "log_id": 1615277237708002,
        "trace_id": "828a8d2eced64ba1a42e8e0a6c1e83f2",
        "result": {
            "edgeToken": "67578717377e",
            "rtspAddress": "rtsp://admin:Aa123456@192.168.1.9:554",
            "deviceToken": "04BW-CMMZ-HCY9-CZKN",
            "deviceName": "工地大门摄像头",
            "deviceStatus": 4,
            "updateTime": 1614743969000,
          	"remark": "",
            "tags": [
                "11"
            ],
          	"skills": [
            "电子围栏"
        		],
        		"deviceProtocol": 0,
        		"controlTransport": 0,
        		"mediaTransport": 0
          
        }
    }

查询设备列表

  • /rpc/2.0/cvsaas/v1/device/list [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询设备列表

    请求说明

    参数名称 类型 是否必填 说明
    pageNo int 页码。默认为1。
    pageSize int 单页记录数。默认为20。
    edgeToken String 边缘设备token

请求示例

{
    "pageNo":1,
    "pageSize":20,
    "edgeToken":"67578717377e"
}

返回说明

参数名称 类型 说明
logId Long logid,调用唯一ID
error_code int 服务调用提示码,0表示成功,非0表示失败
error_msg String 服务调用提示信息,失败时返回
result Object 返回结果体
+pageNo int 页码
+pageSize int 每页记录数
+totalCount int 总记录数
+totalPage int 总页数
+data List 设备列表
++edgeToken String 摄像头所属的边缘设备token
+deviceType byte 设备类型
0:视频设备
1:虚拟设备
2:视频文件
++rtspAddress String 视频流地址
++deviceToken String 设备token
++deviceName String 设备名称
+deviceStatus int 设备状态码。
0:设备已离线
1:未配置技能
2: 抽帧成功
3:抽帧失败
4:图片上传成功
5:图片上传失败
6:抽帧暂停
7:不在配置的运行时间
8:(因为磁盘空间不足)抽帧停止
++updateTime Date 设备更新时间
++remark String 备注
++tags List 摄像头tag
+deviceProtocol Byte 设备协议
+controlTransport Byte 信令控制协议
+mediaTransport Byte 媒体数据协议

返回示例

{
    "error_code": 0,
    "log_id": 1615277698068005,
    "trace_id": "9634a4228c3e4ffcb4ed549590519d6c",
    "result": {
        "pageNo": 1,
        "pageSize": 20,
        "totalCount": 2,
        "totalPage": 1,
        "data": [
            {
                "edgeToken": "67578717377e",
                "rtspAddress": "rtsp://admin:Aa123456@192.168.1.9:554",
                "deviceToken": "04BW-CMMZ-HCY9-CZKN",
                "deviceName": "111",
                "deviceStatus": 4,
                "updateTime": 1614743969000,
                "remark": "",
                "tags": [
                    "11"
                ],
              	"deviceProtocol": 0,
                "controlTransport": 0,
                "mediaTransport": 0
            },
            {
                "edgeToken": "67578717377e",
                "rtspAddress": "rtsp://admin:Aa123456@192.168.1.9:554",
              	"deviceToken": "KMPP-9SCC-XSPJ-DIJM",
                "deviceName": "test",
                "deviceStatus": 4,
                "updateTime": 1614657687000,
                "remark": "",
              	"deviceProtocol": 0,
                "controlTransport": 0,
                "mediaTransport": 0
            }
        ]
    }
}

更新设备信息

  • /rpc/2.0/cvsaas/v1/device/update [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:更新设备信息

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    deviceName String 设备名称。长度不超过30。
    rtspAddress String 视频流地址。长度不超过1000。
    deviceType Byte 设备类型
    0:视频设备,1:虚拟设备,2:视频文件(用于图片上传接口使用)
    默认是0
    deviceStatus Byte 设备状态码。
    0:设备已离线
    1:未配置技能
    2: 抽帧成功
    3:抽帧失败
    4:图片上传成功
    5:图片上传失败
    6:抽帧暂停
    7:不在配置的运行时间
    8:(因为磁盘空间不足)抽帧停止
    remark String 备注。长度不超过255。
    tags List 设备tag
    deviceProtocol Byte 设备协议
    controlTransport Byte 信令控制协议
    mediaTransport Byte 媒体数据协议

请求示例

  {
      "deviceToken":"4REQ-XOQV-T5TV-0NDP",
      "deviceName":"工地大门摄像头",
      "deviceAddress":"rtsp://admin:admin123456@172.20.76.10:8888//Streaming/Channels/1",
  	  "remark":"hello",
      "tags":["大门","高清"]
  }

返回说明

参数名称 类型 是否一定存在 说明
log_id Long logid,调用唯一ID
error_code int 服务调用提示码,0表示成功,非0表示失败
error_msg String 服务调用提示信息,失败时返回

返回示例

{
    "error_code": 0,
    "log_id": 1579088750143069
}

获取设备所绑定的技能列表

  • /rpc/2.0/cvsaas/v1/device/skill/bind/list [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询设备上绑定了哪些技能

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    pageNo int 页码
    pageSize Int 单页记录数

    请求示例

    {
        "deviceToken":"4REQ-XOQV-T5TV-0NDP"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result List 技能id数组

    返回示例

    {
        "error_code": 0,
        "log_id": 1579088750143069,
      	"result": [
            13,
            10
        ]
    }

设备绑定技能

  • /rpc/2.0/cvsaas/v1/device/skill/bind [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:将设备配置上对应的技能,注意该接口为增量的绑定,即假如设备A已经绑定了技能10,此时调用该接口将设备A再与技能11绑定,则最终结果是设备A绑定了[10,11]

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    skillId Long 技能id,请参考技能id列表

    请求示例

    {
        "deviceToken":"4REQ-XOQV-T5TV-0NDP",
        "skillId":10
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1579088750143069
    }

设备绑定多技能

  • /rpc/2.0/cvsaas/v1/device/skills/bind [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:将设备配置上对应的技能,注意该接口为全量的绑定,即假如设备A已经绑定了技能10,此时调用该接口将设备A再与技能11,12绑定,则最终结果是设备A绑定了[11,12],之前的10会自动解绑

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    skills Array 技能id数组,请参考技能id列表

    请求示例

    {
        "deviceToken":"4REQ-XOQV-T5TV-0NDP",
        "skills":[11,12]
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1579088750143069
    }

设备解绑技能

  • /rpc/2.0/cvsaas/v1/device/skill/unbind [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:将设备与技能解除绑定

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    skillId Long 技能id,请参考技能id列表

    请求示例

    {
        "deviceToken":"4REQ-XOQV-T5TV-0NDP",
        "skillId":10
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1579088750143069
    }

获取设备绑定的技能的配置

  • /rpc/2.0/cvsaas/v1/device/skill/config/get [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:在此先要说明一点,每个技能有一套默认的配置模板,当设备与技能进行绑定时,会根据技能的配置模版复制出一套配置与设备相关联。也就是说,同一个技能,在与不同的设备绑定时,可以有不同的配置。这个接口就是查询某技能在与某设备绑定时的配置。

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    skillId Long 技能id,请参考技能id列表

    请求示例

    {
        "deviceToken":"4REQ-XOQV-T5TV-0NDP",
        "skillId":10
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 结果
    +deviceToken String 请求参数中的deviceToken原样返回
    +skillId Long 请求参数中的skillId原样返回
    +configInfo String 技能配置,是String类型,值是json的格式,每一个技能的configInfo格式不同,格式参考文档技能配置说明
    +extraction Object 抽帧配置
    ++timePeriods[] List 运行时间段
    +++startTime String 开始时间,例如11:00
    +++endTime String 结束时间,如果结束时间等于开始时间,则表示全天抽帧
    ++image Object 图片抽帧配置
    +++frames Int 帧数
    +++duration Int 时间段
    +++durationUnit Int 时间段单位,0:秒,1:分钟
    +++durationInSeconds Int 时间段(换算成秒),fps即frames/durationInSeconds
    +areas[] Array 技能分析区域,如果为空,则表示分析区域为全图
    ++name String 区域名称
    ++nodes Array 顶点,参考返回示例
    +createTime Date 创建时间
    +updateTime Date 更新时间

    返回示例

    {
        "error_code": 0,
      "log_id": 1607341754739206,
        "trace_id": "fae1dbab65d24ab3be5f03f7f7303dad",
        "result": {
            "deviceToken": "NRVO-59QL-PUBM-BJVL",
            "skillId": 10,
            "configInfo": "{\"skillId\":10,\"skillVersion\":1,\"faceSet\":{},\"modelThresholds\":{\"faceScoreThreshold\":{\"lowerLimit\":80},\"faceQualityControl\":0,\"bodyProbabilityThreshold\":{\"lowerLimit\":0.3}},\"alarmSetting\":{\"bodyFrameAlarmControl\":0}}",
            "extraction": {
                "timePeriods": [
                    {
                        "startTime": "00:00",
                        "endTime": "00:00"
                    }
                ],
                "image": {
                    "frames": 1,
                    "duration": 2,
                    "durationUnit": 0,
                    "durationInSeconds": 2
                }
            },
            "areas": [
                {
                  	"name":"area0",
                    "nodes": [
                        [
                            114,
                            141
                        ],
                        [
                            1168,
                            83
                        ],
                        [
                            1195,
                            596
                        ],
                        [
                            131,
                            666
                        ]
                    ]
                }
            ],
            "createTime": 1607340692000,
            "updateTime": 1607391091000
        }
    }

设置设备绑定的技能的配置

  • /rpc/2.0/cvsaas/v1/device/skill/config/set [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:在此先要说明一点,每个技能有一套默认的配置模板,当设备与技能进行绑定时,会根据技能的配置模版复制出一套配置与设备相关联。也就是说,同一个技能,在与不同的设备绑定时,可以有不同的配置。这个接口就是设置某技能在与某设备绑定时的配置。

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token
    skillId Long 技能id,请参考技能id列表
    configInfo String 技能配置,是String类型,值是json的格式,每一个技能的configInfo格式不同
    extraction Object 抽帧配置,具体格式请参考上个接口中的返回即可
    areas Array 分析区域,具体格式请参考上个接口中的返回即可
    createTime Date 创建时间
    updateTime Date 更新时间

    注:configInfo/extraction/areas不需要一起传,比如只传extraction,则只更新extraction部分,configInfo和areas则保持不变。

    请求示例

    {
          "deviceToken": "NRVO-59QL-PUBM-BJVL",
            "skillId": 10,
          "configInfo": "{\"skillId\":10,\"skillVersion\":1,\"faceSet\":{},\"modelThresholds\":{\"faceScoreThreshold\":{\"lowerLimit\":80},\"faceQualityControl\":0,\"bodyProbabilityThreshold\":{\"lowerLimit\":0.3}},\"alarmSetting\":{\"bodyFrameAlarmControl\":0}}",
            "extraction": {
                "timePeriods": [
                    {
                        "startTime": "00:00",
                        "endTime": "00:00"
                    }
                ],
                "image": {
                    "frames": 1,
                  	"duration": 2,
                    "durationUnit": 0,
                  	"durationInSeconds": 2
                }
            },
            "areas": [
                {
                    "nodes": [
                        [
                            114,
                            141
                        ],
                        [
                            1168,
                            83
                        ],
                        [
                          1195,
                            596
                        ],
                        [
                            131,
                            666
                        ]
                    ]
                }
            ]
        }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1603345106274424,
        "trace_id": "a8fd8896f0bd48209d94171b0909a40c"
    }

设备暂停

  • /rpc/2.0/cvsaas/v1/device/pause [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:让设备暂停抽帧

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token

    请求示例

    {
       "deviceToken": "NRVO-59QL-PUBM-BJVL",
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1603345106274424
    }

设备恢复

  • /rpc/2.0/cvsaas/v1/device/resume [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:让设备重新开始抽帧

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token

    请求示例

    {
       "deviceToken": "NRVO-59QL-PUBM-BJVL",
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1603345106274424
    }

设备预览(通过设备token)

  • /rpc/2.0/cvsaas/v1/device/preview [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:根据设备token获取一张预览图

    请求说明

    参数名称 类型 是否必填 说明
    deviceToken String 设备token

    请求示例

    {
       "deviceToken": "NRVO-59QL-PUBM-BJVL",
    }

    返回说明

    参数名称 类型 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object
    +key String 预览图片的fileKey,完整访问地址为:http://emlink地址:9000/aipe-cvsaas/{key}
    +url String 请忽视该字段

    返回示例

    {
        "error_code": 0,
        "log_id": 1615376831911016,
        "trace_id": "79ea714482af45a9a949fb44d9f05b2c",
        "result": {
            "key": "/resource/preview/8af1ba3903329c0c096ccfc660deb4ac",
            "url": "http://easymonitor-storage:9000/aipe-cvsaas/resource/preview/8af1ba3903329c0c096ccfc660deb4ac"
        }
    }

设备预览(通过设备地址)

  • /rpc/2.0/cvsaas/v1/device/preview-address [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:根据设备地址获取一张预览图,需要指明通过哪个盒子进行预览(盒子需要能访问到摄像头,一般他们在一个局域网内)

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 边缘设备token
    deviceAddress String 设备地址
    deviceType Byte 设备类型
    deviceProtocol Byte 设备协议
    controlTransport Byte 信令控制协议
    mediaTransport Byte 媒体数据协议

    请求示例

    {
    		"edgeToken": "xxxx",
    		"deviceAddress":"xxxx"
    }

    返回说明

    参数名称 类型 说明
    log_id Long logid,调用唯一ID
    error_code int 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result String 预览图(base64格式)

    返回示例

    {
        "error_code": 0,
        "log_id": 1615376831911016,
        "trace_id": "79ea714482af45a9a949fb44d9f05b2c",
        "result": "/9j//gAQTGF..."
    }

技能相关接口

获取技能列表

  • /rpc/2.0/cvsaas/v1/skill/list [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:获取技能的配置schema,这个schema用于校验技能的自定义参数格式是否合法,schema为json schema

    请求说明

    参数名称 类型 说明
    skillType Set 技能类型,
    0:预置技能
    1:自定义技能
    2:模板技能
    skillStatus Byte 技能状态,配置界面上只能看到状态为启用的技能
    0:禁用
    1:启用
    edgeToken String 盒子token
    deviceToken String 设备token

    请求示例

    {
        "skillType":[0],
        "skillStatus":1,
        "deviceToken":"OAAN-4DLE-SFKH-LYVS",
        "edgeToken":"16057824301d"
    }

    返回说明:(未列出字段一般可忽略)

    参数名称 类型 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 结果
    +id Long 技能id
    +forkFrom Long 如果从其他技能复制(fork)而来,则此id为其源技能id;
    预置技能不从其他技能form而来,这个值都为0;
    自定义easydl技能是从其他技能模版fork而来,此id就为模版技能的id
    不过一般不需要关注这个字段。
    +userId String 预置技能都为system
    +name String 技能中文名
    +engName String 技能英文名
    +desc String 描述信息
    +skillType Long 技能类型,
    0:预置技能
    1:自定义技能
    2:模板技能
    +skillStatus Long 技能状态,配置界面上只能看到状态为启用的技能
    0:禁用
    1:启用
    +maxConfigAreaNum Long 该技能最大可划定几个监控区域
    +version Long 技能版本,技能元信息变化时,此字段需+1,才能应用到盒子

    返回示例

    {
        "error_code": 0,
        "log_id": 1615379785518020,
        "trace_id": "d0b8b5ea257843b6b5e50038bc60a468",
        "result": [
            {
                "id": 10,
                "forkFrom": 0,
                "userId": "system",
                "name": "电子围栏",
                "engName": "system_aipe_trespassers",
                "logoBosKey": "",
                "logoBosUrl": "",
                "desc": "实时监控核心区域,基于人体识别技术,判断是否有人员闯入;可进一步结合人脸识别判定身份信息,事先定义白名单人脸库,当闯入人员不在白名单里,才进行告警",
                "skillType": 0,
                "skillStatus": 1,
                "demoStatus": -1,
                "viewOrder": 1,
                "publishVersion": 0,
                "runEnvironment": 0,
                "gpuTypes": "1,2",
                "maxConfigAreaNum": 5,
                "version": 0,
                "createTime": 1564542371000,
                "updateTime": 1602647146000,
                "publishTime": 1602647146000
            },
            {
                "id": 12,
                "forkFrom": 0,
                "userId": "system",
                "name": "陌生人检测",
                "engName": "system_aipe_stranger_detect",
                "logoBosKey": "",
                "logoBosUrl": "",
                "desc": "在园区、工地/工厂、学校等场所布控,事先定义白名单人脸库,发现不在白名单中的陌生人则告警提醒(检测不到人脸的人员亦视作陌生人),加强环境安全监督",
                "skillType": 0,
                "skillStatus": 1,
                "demoStatus": 2,
                "viewOrder": 3,
                "publishVersion": 0,
                "runEnvironment": 0,
                "gpuTypes": "1,2",
                "maxConfigAreaNum": 5,
                "version": 0,
                "createTime": 1568113130000,
                "updateTime": 1586846860000
            },
            {
                "id": 18,
                "forkFrom": 0,
                "userId": "system",
                "name": "安全帽佩戴合规检测",
                "engName": "system_aipe_safety_helmet_detect",
                "logoBosKey": "",
                "logoBosUrl": "",
                "desc": "面向工地、工厂车间、工业园区等场所,若检测到有工人未佩戴安全帽(含拿在手里等情况),则发出告警提醒,减少安全隐患",
                "skillType": 0,
                "skillStatus": 1,
                "demoStatus": 2,
                "viewOrder": 2,
                "publishVersion": 0,
                "runEnvironment": 0,
                "gpuTypes": "1,2",
                "maxConfigAreaNum": 5,
                "version": 1,
                "createTime": 1571896906000,
                "updateTime": 1586846864000
            },
            {
                "id": 19,
                "forkFrom": 0,
                "userId": "system",
                "name": "烟火检测",
                "engName": "system_aipe_smokefire_detect",
                "logoBosKey": "",
                "logoBosUrl": "",
                "desc": "在建筑工地、工厂车间、餐饮后厨、户外林区等场景下,监控是否有烟火出现,及时告警提醒,减少人身财产安全损伤",
                "skillType": 0,
                "skillStatus": 1,
                "demoStatus": 2,
                "viewOrder": 4,
                "publishVersion": 0,
                "runEnvironment": 0,
                "gpuTypes": "1,2",
                "maxConfigAreaNum": 5,
                "version": 0,
                "createTime": 1571897020000,
                "updateTime": 1586846865000
            }
        ]
    }

获取技能自定义参数schema(一般用不到)

  • /rpc/2.0/cvsaas/v1/skill/config/schema/get [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:获取技能的配置schema,这个schema用于校验技能的自定义参数格式是否合法,schema为json schema

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id

    请求示例

    {
        "skillId":"18"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 结果
    +skillId Long 技能id
    +schema String 技能配置schema,String类型,其实是json格式;
    json-schema可参考:https://json-schema.org/

    返回示例

    {
        "error_code": 0,
        "log_id": 1612152722875472,
        "trace_id": "f96bf24f001c4401ab780ec95cee93ba",
        "result": {
            "skillId": 18,
            "schema": "{\n    \"definitions\":{\n        \"modelThresholds\":{\n            \"type\":\"object\",\n            \"required\":[\n                \"bodyProbabilityThreshold\",\n                \"helmetProbabilityThreshold\",\n                \"helmetMatchHeadThreshold\"\n            ],\n            \"properties\":{\n                \"bodyProbabilityThreshold\":{\n                    \"title\":\"人体置信度\",\n                    \"description\":\"人体置信度得分≥设定阈值时,才会被识别为有效人体,进行分析告警。推荐阈值范围:0.2~1,阈值越高,识别越精准,但漏识别概率增大\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.2\n                        }\n                    }\n                },\n                \"helmetProbabilityThreshold\":{\n                    \"title\":\"安全帽置信度\",\n                    \"description\":\"安全帽置信度得分≥设定阈值时,才会被识别为有效安全帽。推荐阈值范围:0.2~1,阈值越高,识别越精准,但漏识别概率增大\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.2\n                        }\n                    }\n                },\n                \"helmetMatchHeadThreshold\":{\n                    \"title\":\"佩戴安全帽置信度\",\n                    \"description\":\"员工佩戴安全帽的置信度,分数越高,佩戴安全帽的概率越大,以排除拿在手里、夹在腋下等情况。推荐阈值范围:0.8~1\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.8\n                        }\n                    }\n                }\n            }\n        }\n    },\n    \"type\":\"object\",\n    \"required\":[\n        \"skillId\",\n        \"skillVersion\",\n        \"modelThresholds\"\n    ],\n    \"properties\":{\n        \"skillId\":{\n            \"type\":\"integer\",\n            \"enum\":[\n                18\n            ],\n            \"default\":18\n        },\n        \"skillVersion\":{\n            \"type\":\"integer\",\n            \"enum\":[\n                1\n            ],\n            \"default\":1\n        },\n        \"modelThresholds\":{\n            \"title\":\"设置模型阈值\",\n            \"$ref\":\"#/definitions/modelThresholds\"\n        }\n    }\n}"
        }
    }

设置技能自定义参数schema(一般用不到)

  • /rpc/2.0/cvsaas/v1/skill/config/schema/set [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:设置技能的自定义参数配置schema,这个schema用于校验技能的自定义参数格式是否合法,schema为json schema。如果要用该接口设置schema,请先调用schema/get,在其结果上修改后,确认合法再进行修改。

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id
    schema String schema

    请求示例

    {
            "skillId": 18,
            "schema": "{\n    \"definitions\":{\n        \"modelThresholds\":{\n            \"type\":\"object\",\n            \"required\":[\n                \"bodyProbabilityThreshold\",\n                \"helmetProbabilityThreshold\",\n                \"helmetMatchHeadThreshold\"\n            ],\n            \"properties\":{\n                \"bodyProbabilityThreshold\":{\n                    \"title\":\"人体置信度\",\n                    \"description\":\"人体置信度得分≥设定阈值时,才会被识别为有效人体,进行分析告警。推荐阈值范围:0.2~1,阈值越高,识别越精准,但漏识别概率增大\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.2\n                        }\n                    }\n                },\n                \"helmetProbabilityThreshold\":{\n                    \"title\":\"安全帽置信度\",\n                    \"description\":\"安全帽置信度得分≥设定阈值时,才会被识别为有效安全帽。推荐阈值范围:0.2~1,阈值越高,识别越精准,但漏识别概率增大\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.2\n                        }\n                    }\n                },\n                \"helmetMatchHeadThreshold\":{\n                    \"title\":\"佩戴安全帽置信度\",\n                    \"description\":\"员工佩戴安全帽的置信度,分数越高,佩戴安全帽的概率越大,以排除拿在手里、夹在腋下等情况。推荐阈值范围:0.8~1\",\n                    \"type\":\"object\",\n                    \"required\":[\n                        \"lowerLimit\"\n                    ],\n                    \"properties\":{\n                        \"lowerLimit\":{\n                            \"type\":\"number\",\n                            \"minimum\":0,\n                            \"maximum\":1,\n                            \"multipleOf\":0.01,\n                            \"default\":0.8\n                        }\n                    }\n                }\n            }\n        }\n    },\n    \"type\":\"object\",\n    \"required\":[\n        \"skillId\",\n        \"skillVersion\",\n        \"modelThresholds\"\n    ],\n    \"properties\":{\n        \"skillId\":{\n            \"type\":\"integer\",\n            \"enum\":[\n                18\n            ],\n            \"default\":18\n        },\n        \"skillVersion\":{\n            \"type\":\"integer\",\n            \"enum\":[\n                1\n            ],\n            \"default\":1\n        },\n        \"modelThresholds\":{\n            \"title\":\"设置模型阈值\",\n            \"$ref\":\"#/definitions/modelThresholds\"\n        }\n    }\n}"
        }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1612152722875472,
        "trace_id": "f96bf24f001c4401ab780ec95cee93ba"
    }

获取技能的ui schema(一般用不到)

  • /rpc/2.0/cvsaas/v1/skill/ui/schema/get [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:获取技能的界面schema,这个schema指定了各个参数在界面上的配置形式(滑块、输入框等...)

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id

    请求示例

    {
        "skillId":"18"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 结果
    +skillId Long 技能id
    +schema String UI schema

    返回示例

    {
        "error_code": 0,
        "log_id": 1615379001959018,
        "trace_id": "469e3e4a36d44dfd846d8c33cd76b1c7",
        "result": {
            "skillId": 18,
            "schema": "{\n    \"skillId\":{\n        \"ui:widget\":\"hidden\"\n    },\n    \"skillVersion\":{\n        \"ui:widget\":\"hidden\"\n    },\n    \"modelThresholds\":{\n        \"bodyProbabilityThreshold\":{\n            \"ui:field\":\"slider\"\n        },\n        \"helmetProbabilityThreshold\":{\n            \"ui:field\":\"slider\"\n        },\n        \"helmetMatchHeadThreshold\":{\n            \"ui:field\":\"slider\"\n        }\n    }\n}"
        }
    }

设置技能的ui schema(一般用不到)

  • /rpc/2.0/cvsaas/v1/skill/ui/schema/set [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:设置技能的界面schema,这个schema指定了各个参数在界面上的配置形式(滑块、输入框等...),如果要用该接口设置schema,请先调用schema/get,在其结果上修改后,确认合法再进行修改。

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id
    schema String UI schema

    请求示例

    {
            "skillId": 18,
            "schema": "{\n    \"skillId\":{\n        \"ui:widget\":\"hidden\"\n    },\n    \"skillVersion\":{\n        \"ui:widget\":\"hidden\"\n    },\n    \"modelThresholds\":{\n        \"bodyProbabilityThreshold\":{\n            \"ui:field\":\"slider\"\n        },\n        \"helmetProbabilityThreshold\":{\n            \"ui:field\":\"slider\"\n        },\n        \"helmetMatchHeadThreshold\":{\n            \"ui:field\":\"slider\"\n        }\n    }\n}"
        }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1615379001959018,
        "trace_id": "469e3e4a36d44dfd846d8c33cd76b1c7"
    }

获取技能的默认配置

  • /rpc/2.0/cvsaas/v1/skill/config/get [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:获取技能的默认配置。默认配置指的是当设备与技能初次进行绑定时,如果未通过/rpc/2.0/cvsaas/v1/device/skill/config/set设置自定义配置,则默认使用此配置。这个配置也就是当您从界面上初次配置技能时,所展示的默认配置。注意:一般请不要使用该接口修改默认配置,如果想修改某个设备上绑定的技能的参数,请通过/rpc/2.0/cvsaas/v1/device/skill/config/set接口修改,/rpc/2.0/cvsaas/v1/device/skill/config/set影响的只有当前设备

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id

    请求示例

    {
            "skillId": 18
        }

    返回说明

    参数名称 类型 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object
    +skillId Long 技能id
    +configInfo String json格式,默认配置参数

    返回示例

    {
        "error_code": 0,
        "log_id": 1615379440753019,
        "trace_id": "c1154d32e8324211819f9f27440a26f5",
        "result": {
            "id": 7,
            "skillId": 18,
            "configInfo": "{\n    \"skillId\":18,\n    \"skillVersion\":1,\n    \"modelThresholds\":{\n        \"bodyProbabilityThreshold\":{\n            \"lowerLimit\":0.2\n        },\n        \"helmetProbabilityThreshold\":{\n            \"lowerLimit\":0.2\n        },\n        \"helmetMatchHeadThreshold\":{\n            \"lowerLimit\":0.8\n        }\n    }\n}",
            "createTime": 1597821185000,
            "updateTime": 1600678078000
        }
    }

设置技能的默认配置

  • /rpc/2.0/cvsaas/v1/skill/config/set [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:设置技能的默认配置。默认配置指的是当设备与技能初次进行绑定时,如果未通过/rpc/2.0/cvsaas/v1/device/skill/config/set设置自定义配置,则默认使用此配置。这个配置也就是当您从界面上初次配置技能时,所展示的默认配置。注意:一般请不要使用该接口修改默认配置,如果想修改某个设备上绑定的技能的参数,请通过/rpc/2.0/cvsaas/v1/device/skill/config/set接口修改,/rpc/2.0/cvsaas/v1/device/skill/config/set影响的只有当前设备,而/rpc/2.0/cvsaas/v1/skill/config/set影响的是之后添加的所有设备。

    请求说明

    参数名称 类型 是否必填 说明
    skillId Long 技能id
    configInfo String 默认配置

    请求示例

    {
            "skillId": 18,
            "configInfo": "{\n    \"skillId\":18,\n    \"skillVersion\":1,\n    \"modelThresholds\":{\n        \"bodyProbabilityThreshold\":{\n            \"lowerLimit\":0.2\n        },\n        \"helmetProbabilityThreshold\":{\n            \"lowerLimit\":0.2\n        },\n        \"helmetMatchHeadThreshold\":{\n            \"lowerLimit\":0.8\n        }\n    }\n}"
        }

    返回说明

    参数名称 类型 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "error_code": 0,
        "log_id": 1615379440753019,
        "trace_id": "c1154d32e8324211819f9f27440a26f5"
    }

人脸库相关接口

添加用户人脸

  • /rpc/2.0/cvsaas/v1/faceset/face/add [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:增加用户的人脸图片信息

    请求说明

    参数名称 类型 是否必填 说明
    image String 用户图片信息(总数据大小应小于10M)。
    图片的base64值,base64编码后的图片数据(编码后的图片大小不超过2M)。
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    userId String 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024))

    请求示例

    {
        "image":"/9j/4AAQSkZJRgABAQAAAQABAADs...",
        "groupId":"pig_face",
        "userId":"pig_1"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572936858518049,
        "error_code":0
    }

删除用户人脸

  • /rpc/2.0/cvsaas/v1/faceset/face/del [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:删除用户人脸图片(删除用户的某一张人脸,如果该用户只有一张人脸图片,则同时删除用户)

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    userId String 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024))
    faceToken String 人脸图片token,人脸图片的唯一标识

    请求示例

    {
        "groupId":"pig_face",
        "userId":"pig_2",
        "faceToken":"86b8e1ed31bf87b661f31887cdfc1677"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572937218173051,
        "error_code":0
    }

查询用户人脸列表

  • /rpc/2.0/cvsaas/v1/faceset/face/getlist [POST]

    请求格式:header应为Content-Type:application/json;

    接口说明:查询用户人脸列表

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    userId String 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024))

    请求示例

    {
        "groupId":"pig_face",
        "userId":"pig_1"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result jsonObject 人脸图片信息列表
    +faceImage String 人脸图片
    +faceToken String 人脸token,人脸图片的唯一标识
    +createTime String 人脸创建时间

    返回示例

    {
        "log_id":1572936303776047,
        "error_code":0,
        "result":[
            {
                "faceImage":"/9j/4AAQSkZJRgABAQAAAQABAAD...",
                "faceToken":"86b8e1ed31bf87b661f31887cdfc1677",
                "createTime":"2019-11-22 00:00:00"
            }
        ]
    }

创建用户组

  • //rpc/2.0/cvsaas/v1/faceset/group/add [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:创建用户组

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))
    groupName jsonArray 用户组名称(长度:1~32(数据库长度为1024))
    groupRemark String 用户组备注(长度:0~128(数据库长度为1024))

    请求示例

    {
        "groupId":"pig_user",
        "groupName":"小猪组",
        "groupRemark":"小猪用户"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572937218173051,
        "error_code":0
    }

删除用户组

  • /rpc/2.0/cvsaas/v1/faceset/group/del [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:删除用户组

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。

    请求示例

    {
        "groupId":"pig_face"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572937372320054,
        "error_code":0
    }

查询全量用户组

  • /rpc/2.0/cvsaas/v1/faceset/group/getall [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询所有用户组,按照创建时间倒序排列

    请求说明

    参数名称 类型 是否必填 说明
    edgeToken String 盒子token

    请求示例

    {
      	"edgeToken":"xxxxxxx"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result jsonObject 查询结果
    +groupId String 用户组ID
    +groupName String 用户组名称
    +groupRemark String 用户备注
    +createTime String 用户组创建时间
    +version Long 用户组版本

    返回示例

    {
        "log_id":1572924558271921,
        "error_code":0,
        "result":[
            {
                "groupId":"1",
                "groupName":"TEST",
                "groupRemark":"",
                "createTime":"2019-11-22 00:00:00",
              	"version": 1
            },
            {
                "groupId":"pig_face",
                "groupName":"小猪脸组",
                "groupRemark":"一张张小猪脸",
                "createTime":"2019-11-22 00:00:00",
              	"version": 1
            }
        ]
    }

查询用户组列表

  • /rpc/2.0/cvsaas/v1/faceset/group/getlist [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询用户组列表(可分页查询),按照创建时间倒序排列

    请求说明

    参数名称 类型 是否必填 说明
    pageNo int 页码(默认为1)
    pageSize int 每页记录数(默认为20,最大为200)

    请求示例

    {
        "pageNo":1,
        "pageSize":20
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result jsonObject 查询结果
    +totalCount int 总记录数
    +totalPage Int 总页数
    +pageNo int 页码
    +pageSize int 每页记录数
    +data jsonArray 用户组列表
    ++groupId String 用户组ID
    ++groupName String 用户组名称
    ++groupRemark String 用户组备注
    ++createTime String 用户组创建时间
    +version Long 用户组版本
    +edges jsonArray 人脸组同步信息
    ++edgeToken String EM-BOX的token
    ++edgeName String EM-BOX名称
    ++reportedVersion Long 人脸组在EM-BOX上的最新版本号
    +syncStatus int 人脸组同步状态
    0:未同步
    1:同步中
    2:已同步

    返回示例

    {
        "log_id":1572924558271920,
        "error_code":0,
        "result":{
            "totalCount":2,
            "totalPage":1,
            "pageNo":1,
            "pageSize":20,
            "data":[
                {
                    "groupId":"1",
                    "groupName":"TEST",
                    "groupRemark":"",
                    "createTime":"2019-11-22 00:00:00",
                  	"version": 0,
                    "edges": [
                        {
                            "edgeToken": "16057824301d",
                            "edgeName": "测试link",
                            "reportedVersion": -1
                        }
                    ],
                    "syncStatus": 1
                },
                {
                    "groupId":"pig_face",
                    "groupName":"小猪脸组",
                    "groupRemark":"一张张小猪脸",
                    "createTime":"2019-11-22 00:00:00",
                  	"version": 0,
                    "edges": [
                        {
                            "edgeToken": "16057824301d",
                            "edgeName": "南网测试link",
                            "reportedVersion": -1
                        }
                    ],
                    "syncStatus": 1
                }
            ]
        }
    }

查询用户列表

  • /rpc/2.0/cvsaas/v1/faceset/group/getuserlist [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询用户组列表(可分页查询),按照创建时间倒序排列

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    pageNo int 页码(默认为1)
    pageSize int 每页记录数(默认为20,最大为200)
    userName String 用户组name

    请求示例

    {
        "groupId":"pig_face",
        "pageNo":1,
        "pageSize":20,
      	"userName":"xxxx"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result jsonObject 查询结果
    +totalCount int 总记录数
    +totalPage Int 总页数
    +pageNo int 页码
    +pageSize int 每页记录数
    +data jsonArray 用户组列表
    ++userId String 用户ID
    ++userName String 用户名称
    ++userRemark String 用户备注
    ++createTime String 用户创建时间

    返回示例

    {
        "log_id":1572935213678040,
        "error_code":0,
        "result":{
            "totalCount":2,
            "totalPage":1,
            "pageNo":1,
            "pageSize":20,
            "data":[
                {
                    "userId":"pig_1",
                    "userName":"小猪1号",
                    "userRemark":"小猪崽",
                    "createTime":"2019-11-22 00:00:00"
                },
                {
                    "userId":"pig_2",
                    "userName":"小猪2号",
                    "userRemark":"小猪崽",
                    "createTime":"2019-11-22 00:00:00"
                }
            ]
        }
    }

注册用户

  • /rpc/2.0/cvsaas/v1/faceset/user/add [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:在用户组中新增用户信息,并保存用户人脸图片

    请求说明

    参数名称 类型 是否必填 说明
    userId String 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024))
    userName String 用户名称(长度:1~32(数据库长度为1024))
    userImage String 用户图片信息(总数据大小应小于10M)。
    图片的base64值,base64编码后的图片数据(编码后的图片大小不超过2M)。
    userRemark String 用户组备注(长度:0~128(数据库长度为1024))
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。

    请求示例

    {
        "userId":"pig_1",
        "userName":"小猪1号",
        "userImage":"/9j/4AAQSkZJRgABAQAAAQABAADs...",
        "userRemark":"小猪崽",
        "groupId":"pig_face"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572927268813037,
        "error_code":0
    }

删除用户

  • /rpc/2.0/cvsaas/v1/faceset/user/del [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:删除用户

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    userId String 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024))

    请求示例

    {
        "groupId":"pig_face",
        "userId":"pig_2"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572935959767041,
        "error_code":0
    }

建立人脸组和EM-BOX的同步关系

  • /rpc/2.0/cvsaas/v1/faceset/group/sync [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:建立同步关系,当建立同步关系后,EM-LINK上的人脸组发生变更后,会自动同步更新到EM-BOX。

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。
    edges List 边缘设备token

    请求示例

    {
        "groupId":"pig_face",
        "edges":["xxxxxx","yyyyyy"]
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回

    返回示例

    {
        "log_id":1572935959767041,
        "error_code":0
    }

查询人脸组和EM-BOX的同步进度

  • /rpc/2.0/cvsaas/v1/faceset/group/sync-detail[POST]

    请求格式:header应为Content-Type:application/json

    接口说明:查询同步进度

    请求说明

    参数名称 类型 是否必填 说明
    groupId String 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。

    请求示例

    {
        "groupId":"pig_face"
    }

    返回说明

    参数名称 类型 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object
    +desiredVersion Long EM-LINK上该人脸组的版本号
    +edges List 所有边缘设备列表
    ++edgeToken String 边缘设备token
    ++edgeName String 边缘设备名称
    ++reportedVersion Long EM-BOX上该人脸组的版本号:
    如果reportedVersion==desiredVersion,说明已跟EM-LINK完成同步
    如果reportedVersion<desiredVersion,说明j正在同步中,desiredVersion-reportedVersion就是当前落后的版本数
    +synchronizedEmboxList List 已同步完成的边缘设备列表
    +inSyncEmboxList List 正在同步的边缘设备列表

    返回示例

    {
        "error_code": 0,
        "log_id": 1615381065529025,
        "trace_id": "678f3fa553134daaab5d18cae23c665d",
        "result": {
            "desiredVersion": 1,
            "synchronizedEmboxList": [],
            "inSyncEmboxList": [
                {
                    "edgeToken": "67578717377e",
                    "edgeName": "45",
                    "reportedVersion": 0
                }
            ],
            "edges": [
                {
                    "edgeToken": "67578717377e",
                    "edgeName": "45",
                    "reportedVersion": 0
                }
            ]
        }
    }

系统配置相关接口

获取系统配置

  • /rpc/2.0/cvsaas/v1/config/get [POST]

    请求格式:header应为Content-Type:application/json

    接口说明:获取系统配置

    请求说明

    参数名称 类型 是否必填 说明
    group String 配置组,配置组包含了一批关联的配置,目前可选为:event-notify,event-cleaner

    请求示例

    {
        "group":"event-notify"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 各配置项的值,根据group不同而不同

    返回示例

    {
        "error_code": 0,
        "log_id": 1607343358450854,
        "trace_id": "4e2c8da82e6b49918a7960da9dee615c",
        "result": {
            "retry-interval": "6",
            "retry-times": "1",
            "enabled": "true",
            "url": "http://172.20.76.9:8002/easymonitor/edge/#/eventsetting"
        }
    }

设置系统配置

  • /rpc/2.0/cvsaas/v1/config/set [POST]

    请求格式:header应为Content-Type:application/json

    请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==

    (YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)

    接口说明:获取系统配置

    请求说明

    参数名称 类型 是否必填 说明
    group String 配置组,配置组包含了一批关联的配置,目前可选为:event-notify,event-cleaner
    name String 配置名,比如retry-times
    value String 配置值,比如11

    请求示例

    {
        "group":"event-notify",
        "name":"retry-interval",
        "value":"6"
    }

    返回说明

    参数名称 类型 是否一定存在 说明
    log_id Long log_id,请求唯一标识。
    error_code String 服务调用提示码,0表示成功,非0表示失败
    error_msg String 服务调用提示信息,失败时返回
    result Object 各配置项的值,根据group不同而不同

    返回示例

    {
        "error_code": 0,
        "log_id": 1607343358450854,
        "trace_id": "4e2c8da82e6b49918a7960da9dee615c"
    }

配置项说明

# 配置名 默认值 说明
1 event-notify enabled false 是否启用事件推送
2 event-notify url 推送地址,系统将向该地址发起post请求
3 event-notify retry-times 0 重试次数,如果往url推送失败,需重试几次,默认0,举例:
1.如果retry-times==0,则先推送1次,失败后重试0次;
2.如果retry-times==2,则先推送1次,失败后重试2次
4 event-notify retry-interval 0 重试间隔,单位秒
5 event-cleaner max-retain-time 720 事件最大保留时间,单位小时

推送说明

当成功调用接口设置event-notify,且enabled为true时,系统中如果再产生告警事件,会向url的地址发送一个http POST请求,请求报文为json格式,携带如下参数:

参数名称 类型 说明
eventId Long 事件id,可凭借此id调用event/detail接口,获取事件详情
deviceToken String 设备token
deviceName String 设备名称
skillId int 技能id
skillInput Object 技能输入参数(系统抽帧后,启动技能时)
+debug Boolean 是否调试模式,true:是,false:否
调试模式下,不管是否符合告警条件,都会触发告警;
+customParameter Object 技能自定义参数,即配置技能时设置的阈值等参数,
具体请参考:技能配置
+resource Object 请求资源
++type String 一般都为object_storage,表示对象存储
++path String 请求资源(图片)的对象存储文件Key
++areas List 框选区域
+++nodes List 框选区域的顶点坐标
skillOutput Object 技能输出参数,每个技能格式有所区别,
具体请参考:技能执行结果
originImage String 事件原图(base64格式)

推送示例

{
    "eventId":47,
    "skillId":18,
    "deviceToken":"EHBU-LRMR-HLHT-26TX",
    "deviceName":"测试设备",
    "skillInput":{
        "debug":false,
        "resource":{
            "type":"object_storage",
            "path":"/resource/origin/RSE2-7TQX-DLJ2-K9Z5/1615800180143_271843524996.jpg",
            "areas":[
                {
                    "nodes":[
                        [
                            63,
                            68
                        ],
                        [
                            1828,
                            76
                        ],
                        [
                            1851,
                            988
                        ],
                        [
                            86,
                            1003
                        ]
                    ]
                }
            ],
            "requestTime":1615800180141
        },
        "customParameter":{
            "skillId":10,
            "modelThresholds":{
                "bodyProbabilityThreshold":{
                    "lowerLimit":0.3
                }
            },
            "skillVersion":1,
            "alarmSetting":{
                "bodyFrameAlarmControl":0
            }
        },
        "userId":"10000_0",
        "deviceToken":"RSE2-7TQX-DLJ2-K9Z5"
    },
    "skillOutput":{
        "normal":false,
        "personsWearingHelmet":[

        ],
        "personsNotWearingHelmet":[
            {
                "helmet":{
                    "probability":0
                },
                "location":{
                    "score":0.9685283303260803,
                    "top":420,
                    "left":560,
                    "width":125,
                    "height":297
                },
                "matchRatio":0
            },
            {
                "helmet":{
                    "probability":0
                },
                "location":{
                    "score":0.3193097412586212,
                    "top":379,
                    "left":641,
                    "width":535,
                    "height":338
                },
                "matchRatio":0
            }
        ]
    },
    "originImage":"iVBORw0KGgoAAAANSU..."
}

业务系统接收到推送请求后,应返回(code==0表示接收推送成功):

{
    "code":0,
    "message":"success"
}

如果业务系统无响应,或者code!=0,则会根据retry-times和retry-interval进行重试推送。

上一篇
EM-LINK平台使用手册
下一篇
EM-LINK部署文档