人脸识别相机设备端CGI接口文档
适用于二代产品
- accessCheck
- 设备登录密码验证
- modifyPasswd
- 修改设备登录密码
- setNetcfg
- 设置设备网络参数
- getNetcfg
- 获取设备网络参数
- setCapture
- 设置抓图及过滤参数
- getCapture
- 获取抓图及过滤参数
- setInterface
- 设置传图地址,推流地址等参数
- getInterface
- 获取传图地址,推流地址等参数
- getDevInfo
- 获取设备的基本信息,包括CID,固件版本号等
- setGpio
- 设置门禁及闸机参数
- getGpio
- 获取门禁及闸机参数
- setWarn
- 设置报警计划参数
- getWarn
- 获取报警计划参数
- uploadLog
- 上传设备日志
- SetGpio0Level
- 远程控制门禁或闸机
- FaceImageRegister
- 使用人脸图片注册
- FaceImageRegisterByFeature
- 使用人脸特征值注册
- GetFaceLib
- 获取多个人脸信息(按顺序查找)
- DeleteMultiFace
- 删除已注册人脸
- EditFaceLable
- 编辑人脸标签
公共参数
字段 | 描述 |
---|---|
Msg | 消息ID |
user | 用户名 |
passwd | 密码 |
accessCheck
用户名密码验证
参数(无)
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
例:
http://192.168.103.108:80/ctrl.cgi?Msg=accessCheck&user=admin&passwd=admin
modifyPasswd
修改用户密码
参数
字段 | 描述 |
---|---|
newPasswd | 新密码 |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
setDevTime
设置设备时间
参数
字段 | 描述 |
---|---|
time | 当前的utc时间,同步本机时间时,下发此字段,单位:秒。 |
timeZone | 当前时区,单位:秒,如北京时区:8 x 3600=28800。 |
ntpServer | ntp校时服务器.同步ntp服务器时间时,下发此字段.(ntpServer 和 time 字段都下发时,只同步ntpServer的时间) |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
例:
getDevTime
获取设备时间
返回参数
字段 | 描述 |
---|---|
time | 设备当前的utc时间,单位:秒。 |
timeZone | 设备当前时区,单位:秒,时区 x 3600。如北京时区:8 x 3600=28800。 |
ntpServer | ntp校时服务器. |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
"time": 1558946607,
"timeZone": 28800,
"ntpServer":"ntp2.netwrx1.com:123"
}
例:
http://192.168.102.55/ctrl.cgi?Msg=getDevTime&user=admin&passwd=admin
例:
http://192.168.103.108:80/ctrl.cgi?Msg=modifyPasswd&user=admin&passwd=admin&newPasswd=admin
setNetcfg
设置网络参数
参数
字段 | 描述 |
---|---|
EnVitualNet | 启用虚拟网卡,1:启用,0:不启用。 |
NetType | 网络模式,1:DHCP, 0:静态IP。 |
BuildType | 部署模式 1:单机模式, 0:平台模式。 |
IpEth0 | 有线网卡IP |
NetmaskEth0 | 有线网卡子网掩码 |
GetwayEth0 | 有线网卡网关 |
DnsServerEth0 | DNS地址 |
IpRndis0 | 虚拟网卡IP |
WifiSsid | 无线路由名称 |
WifiPsk | 无线路由密码 |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
例:
getNetcfg
获取网络参数
参数(无)
例:
http://192.168.103.108:80/ctrl.cgi?Msg=getNetcfg&user=admin&passwd=admin
返回json示例(getNetcfg)
{
"NetType": 1,
"BuildType": 0,
"EnVitualNet": 0,
"NetState": 1, "IpEth0": "172.31.254.88",
"NetmaskEth0": "255.255.255.0",
"GetwayEth0": "192.168.1.1",
"DnsServerEth0": "192.168.1.1",
"IpRndis0": "172.168.1.10",
"Cid": "290200001002",
"MacEth0": "EC:3D:FD:28:33:48",
"MacWlan0": "EC:3D:FD:28:33:48",
"WifiSsid": "Xiaomi_ACF2",
"WifiPsk": "88888888"
}
SetTrackConfig
设置抓图参数
参数
字段 | 描述 |
---|---|
minWidth | 最小人脸宽度 1-1080px |
faceAngle | 正脸度值,0-100 |
clarity | 清晰度值,0-100 |
trackMode | 人脸追踪模式,0:机内识别,1:人脸抓拍 |
captureType | 人脸抓拍类型,只当trackMode为1时响应此参数.1:实时抓拍,2:间隔抓拍, 3:离开抓拍 |
recogType | 机内识别类型,只当trackMode为0时响应此参数.1:徘徊识别,2:单人识别, 3:多人识别 |
snapInterval | 抓拍间隔,只当trackMode为1时响应此参数.,单位秒 |
snapMaxNum | 抓拍次数,只当trackMode为1时响应此参数. |
confidence | 人脸识别置信度,只当trackMode为0时响应此参数. |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
例:
getTrackConfig
获取抓图参数
例:
http://192.168.103.173/ctrl.cgi?Msg=getTrackConfig&user=admin&passwd=admin
返回json示例(getTrackConfig)
{
"snapInterval": 3,
"snapMaxNum": 2,
"minWidth": 100,
"faceAngle": 80,
"clarity": 80,
"confidence": 80,
"captureType": 1,
"recogType": 1,
"trackMode": 0
}
setInterface
设置接口参数
参数
字段 | 描述 |
---|---|
UploadFace | 上传脸图,0:不启用,1:启用 |
UploadBackground | 上传底图,0:不启用,1:启用 |
RtmpEnable | 开启视频推流,0:不启用,1:启用 |
FaceRect | 叠加人脸追踪框,0:不启用,1:启用 |
HumanRect | 叠加人形追踪框,0:不启用,1:启用 (暂未实现) |
PlateRect | 叠加车牌追踪框,0:不启用,1:启用 (暂未实现) |
VehicleRect | 叠加车辆追踪框,0:不启用,1:启用 (暂未实现) |
FaceInfo | 添加识别信息,0:不启用,1:启用 |
TestToolEnable | 部署调试模式,0:不启用,1:启用 |
HumanCntInterval | 上传客流信息周期,0:不启用,大于0:启用,单位秒 |
DevInfoInterval | 上传设备状态信息周期,0:不启用,大于0:启用,单位秒 |
RtmpUrl | 视频推流地址 |
ProtocolType | 接口传输协议,0:默认传至赛蓝平台,1:第三方HTTP,2:第三方FTP |
HttpUrl | HTTP服务器地址 |
FtpAnonymous | FTP匿名开关,0:不启用,1:启用 |
FtpUser | FTP用户名 |
FtpPasswd | FTP用户密码 |
FtpUrl | FTP服务器地址 |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0,
}
例:
http://192.168.103.173/ctrl.cgi?Msg=setInterface&user=admin&passwd=admin&UploadFace=1&UploadBackground=0&RtmpEnable=1&FaceInfo=1&FaceRect=1&HumanRect=1&PlateRect=1&VehicleRect=1&TestToolEnable=1&HumanCntInterval=600&DevInfoInterval=60&RtmpUrl=http://192.168.102.55&ProtocolType=2 &HttpUrl=http://192.168.102.55:8091/devicewarn&FtpAnonymous=1&FtpUser=llm&FtpPasswd=123456&FtpUrl=ftp://192.168.102.55/%25CID%25
getInterface
获取接口参数
例:
http://192.168.103.173/ctrl.cgi?Msg=getInterface&user=admin&passwd=admin
返回json示例(getInterface)
{
"UploadFace": 1,
"UploadBackground": 1,
"RtmpEnable": 0,
"FaceInfo": 0,
"FaceRect": 1,
"HumanRect": 0,
"PlateRect": 0,
"VehicleRect": 0,
"HumanCntInterval": 600,
"DevInfoInterval": 600,
"HttpUrl": "http://192.168.103.55:8091/devicewarn",
"RtmpUrl": "rtmp://192.168.103.55/hls/%CID%",
"TestToolEnable": 1,
"ProtocolType": 0,
"FtpAnonymous": 0,
"FtpUrl": "",
"FtpUser": "",
"FtpPasswd": ""
}
getDevInfo
获取设备信息
返回参数
字段 | 描述 |
---|---|
Cid | 设备ID |
ret | 结果,0:成功,非0:失败 |
appVersion | 固件版本号 |
confVersion | conf版本号 |
RtmpServerUrl | 设备rtmp视频流播放地址 |
例:
http://192.168.103.173/ctrl.cgi?Msg=getDevInfo&user=admin&passwd=admin
返回json示例(getDevInfo)
{
"ret": 0,
"Cid": "293900000002",
"appVersion": "4.1.0.999",
"confVersion": "1.3.2.1",
"RtmpServerUrl": "rtmp://192.168.103.173:1935"
}
setGpio
设置GPIO参数
参数
字段 | 描述 |
---|---|
Gpio0Enable | 是否启用gpio,0:不启用,1:启用 |
Gpio0Direction | 信号模式,0:输入,1:输出 |
Gpio0Level | 信号类型,0:低电平触发,1:高电平触发(目前只支持高电平触发) |
Gpio0TimeOut | 触发时长,单位毫秒 |
例:
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0
}
getGpio
获取GPIO参数
返回参数
字段 | 描述 |
---|---|
Gpio0Enable | 是否启用gpio,0:不启用,1:启用 |
Gpio0Direction | 信号模式,0:输入,1:输出 |
Gpio0Level | 信号类型,0:低电平触发,1:高电平触发(目前只支持高电平触发) |
Gpio0TimeOut | 触发时长,单位毫秒 |
例:
http://192.168.103.108:80/ctrl.cgi?Msg=getGpio&user=admin&passwd=admin
返回json示例(getGpio)
{
"Gpio0Enable": 1,
"Gpio0Direction": 1,
"Gpio0Level": 1,
"Gpio0TimeOut": 1
}
setWarn
设置抓拍计划
参数
字段 | 描述 |
---|---|
WarnEnable | 人脸抓拍开关,0:不启用,1:启用 |
WarnBegin | 抓拍开始时间,距离零点的数值。按字节标识,低二位字节(0-15bit)标识分钟,高二位字节(15-31bit)标识小时。示例:00:00, 该值为0 |
WarnEnd | 抓拍结束时间距离零点的数值。按字节标识,低二位字节(0-15bit)标识分钟,高二位字节(15-31bit)标识小时。示例:23:59, 二进制为 0b00010111 00111011,该值为5947 |
WarnWeek | 抓拍周期:64,32,16,8,4,2,1分别代表周一至周日(请注意这是倒序的),每天是一个bit,如果七天都选上就是127 |
WarnRectEnable | 显示侦测区域线框,0:不启用,1:启用 |
例:
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0
}
getWarn
获取报警计划参数
参数
字段 | 描述 |
---|---|
WarnEnable | 人脸抓拍开关,0:不启用,1:启用 |
WarnBegin | 抓拍开始时间,距离零点的数值。按字节标识,低二位字节(0-15bit)标识分钟,高二位字节(15-31bit)标识小时。示例:00:00, 该值为0 |
WarnEnd | 抓拍结束时间距离零点的数值。按字节标识,低二位字节(0-15bit)标识分钟,高二位字节(15-31bit)标识小时。示例:23:59, 二进制为 0b00010111 00111011,该值为5947 |
WarnWeek | 抓拍周期:64,32,16,8,4,2,1分别代表周一至周日(请注意这是倒序的),每天是一个bit,如果七天都选上就是127 |
WarnRectEnable | 显示侦测区域线框,0:不启用,1:启用 |
例:
http://192.168.104.131:80/ctrl.cgi?Msg=getWarn&user=admin&passwd=admin
返回json示例(getWarn)
{
"WarnEnable": 1,
"CommandEnable": 0,
"CommandType": 0,
"WarnBegin": 0,
"WarnEnd": 5947,
"WarnWeek": 127
}
uploadLog
获取日志
参数
字段 | 描述 |
---|---|
无
例:
http://192.168.103.108:80/ctrl.cgi?Msg=uploadLog&user=admin&passwd=admin
返回参数
字段 | 描述 |
---|---|
ret | 结果,0:成功,非0:失败 |
cfgUrl | 日志文件下载地址 |
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0
"cfgUrl":http://192.168.104.10:80/290200000788_20181207-09:44:20_log.zip
}
SetGpio0Level
远程控制门禁或闸机
参数
字段 | 描述 |
---|---|
Gpio0Level | 结果,1:打开,0:关闭 |
无
例:
http://192.168.103.108:80/ctrl.cgi?Msg=SetGpio0Level&user=admin&passwd=admin&Gpio0Level=1
返回值ret, 0:成功,负数:失败,-2:用户名密码错误
{
"ret": 0
}
GetGpio0Level
获取开门GPIO参数
返回参数
字段 | 描述 |
---|---|
Gpio0Level | 结果,1:打开,0:关闭 |
例:
http://192.168.103.108:80/ctrl.cgi?Msg=GetGpio0Level&user=admin&passwd=admin
SetVolumeAndLight
设置音量和白光灯状态
参数
字段 | 描述 |
---|---|
volume | 音量 取值范围 0-100 |
light | 白光灯控制, 0:自动,1:总是关闭,2:总是打开 |
例:
http://192.168.103.173/ctrl.cgi?Msg=SetVolumeAndLight&user=admin&passwd=admin&volume=50&light=0
GetVolumeAndLight
获取音量和白光灯状态
参数
字段 | 描述 |
---|---|
ret | 结果,0:成功,非0:失败 |
volume | 音量 取值范围 0-100 |
light | 白光灯控制, 0:自动,1:总是关闭,2:总是打开 |
例:
http://192.168.103.173/ctrl.cgi?Msg=GetVolumeAndLight&user=admin&passwd=admin
FaceImageRegister
使用人脸图片注册
参数
字段 | 描述 | 必要性 | 长度限制 | |
---|---|---|---|---|
user | 必填 | 最大长度32字节 | 用户名 | |
passwd | 必填 | 最大长度32字节 | 当前密码 | |
Msg | 必填 | 无 | 消息ID FaceImageRegister | |
PersonID | 必填 | 最大长度32字节 | 只支持阿拉伯数字和英文字母组合,用于人物的唯一标识,不能重复 | |
Name | 必填 | 最大长度32字节 | 姓名 | |
file | 必填 | 最大长度32字节 | 注册图片,使用post方式传图.postman测试方法:填写其他字段之后,body中选择form-data,key=file,value=ronaldo.jpg(选择需要注册的图片上传) | |
resultFeature | 非必填 | int | 是否返回特征值, base64 |
(如果resultFeature设置非0,设备不保存注册人脸信息,当作获取人脸特征值服务端)
(人脸图片格式要求: 1:不超过60k 2:yuv420的jpeg格式 3:无遮挡清晰人脸,人脸区域大于100100像素,即瞳距大于等于50像素 4:图片小于等于1280720,且边长尺寸为16的倍数,推荐800*640)
例:
返回值ret, 0:成功,成功时会返回本次注册产生的PersonID,负数:失败,-2:用户名密码错误
{
"ret": 0
}
FaceImageRegisterByFeature
使用人脸特征值注册
参数
字段 | 描述 | 必要性 | 长度限制 | |
---|---|---|---|---|
user | 必填 | 最大长度32字节 | 用户名 | |
passwd | 必填 | 最大长度32字节 | 当前密码 | |
Msg | 必填 | 无 | 消息ID FaceImageRegisterByFeature | |
PersonID | 必填 | 最大长度32字节 | 只支持阿拉伯数字和英文字母组合,第三方可用于人物的唯一标识,不能重复 | |
Name | 必填 | 最大长度32字节 | 姓名 | |
Feature | 必填 | string | 特征值, base64 (使用post方式传特征值,body中选择form-data,key=Feature,value=base64) |
例:
返回值ret, 0:成功;负数:失败,-2:用户名密码错误, -3:有数据为空,-4:特征值不对
{
"ret": 0,
"PersonID": "m2019090414232300000002064324484",
}
GetFaceLib
获取多个人脸信息(按顺序查找)
参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
user | 用户名 | 必填 | 最大长度32字节 |
passwd | 当前密码 | 必填 | 最大长度32字节 |
Msg | 消息ID GetFaceLib | 必填 | 无 |
Number | 需要获取的人脸信息数量,单次获取数量小于等于100(内存有限) | 必填 | 最大长度32字节 |
Offset | 偏移量,从第Offset个开始获取 | 必填 | 无 |
返回参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
ret | 结果,0:成功,非0:失败 | ||
Data | 人脸信息数组 | 必填 | object array类型 |
Number | 返回人脸数量 | 必填 | uint_32类型 |
PersonID | 既PersonID | 必填 | 最大长度32字节 |
Name | 姓名 | 非必填 | 最大长度32字节 |
Lable | 标签 | 非必填 | 最大长度64字节 |
例:
http://192.168.103.171/ctrl.cgi?Msg=GetFaceLib&user=admin&passwd=admin&Number=20&Offset=0
返回值ret, 0:成功,负数:失败
{
{
"ret": 0,
"Number": 2,
"Data":
[
{ "PersonID": "20190318150659n0ymnEi9EOs3IP0XA5", "Name": "小王", "Lable":""},
{ "PersonID": "20190318164310SMnMlvdZylYF8MSUx7", "Name": "老李", "Lable":""}
]
}
}
GetFaceLib
获取多个人脸信息(按条件查找)
参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
user | 用户名 | 必填 | 最大长度32字节 |
passwd | 当前密码 | 必填 | 最大长度32字节 |
Msg | 消息ID GetFaceLib | 必填 | 无 |
Number | 需要获取的人脸信息数量,单次获取数量小于等于100(内存有限) | 必填 | 最大长度32字节 |
Condition | 查找条件,可以是PersonID或者Name | 必填 | 最大长度32字节 |
返回参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
ret | 结果,0:成功,非0:失败 | 必填 | uint_32类型 |
Data | 人脸信息数组 | 必填 | object array类型 |
Number | 设备内的人脸库存总数 | 必填 | uint_32类型 |
PersonID | 既PersonID | 必填 | 最大长度32字节 |
Name | 姓名 | 非必填 | 最大长度32字节 |
Lable | 标签 | 非必填 | 最大长度64字节 |
例:
返回值ret, 0:成功,负数:失败
{ { "ret": 0, "Number": 2, "Data": [ { "PersonID": "20190318150659n0ymnEi9EOs3IP0XA5", "Name": "小王", "Lable":""}, { "PersonID": "20190318164310SMnMlvdZylYF8MSUx7", "Name": "老李", "Lable":""} ] } }
DeleteMultiFace
删除已注册人脸
参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
user | 用户名 | 必填 | 最大长度32字节 |
passwd | 当前密码 | 必填 | 最大长度32字节 |
Msg | 消息ID DeleteMultiFace | 必填 | 无 |
PersonID | 既PersonID,删除多个人脸时,personid之间以‘,’隔开 | 必填 | 最大长度(32+1)*100字节 |
PersonNum | 要删除的人脸数,单次删除数量小于等于100(内存有限) | 必填 | uint_32类型 |
例:
返回值ret, 0:成功,负数:失败
{ "ret": 0 }
EditFaceLable
编辑人脸标签
参数
字段 | 描述 | 必要性 | 长度限制 |
---|---|---|---|
user | 用户名 | 必填 | 最大长度32字节 |
passwd | 当前密码 | 必填 | 最大长度32字节 |
Msg | 消息ID EditFaceLable | 必填 | 无 |
PersonID | 既PersonID | 必填 | 最大长度32字节 |
Name | 姓名 | 非必填 | 最大长度32字节 |
Lable | 标签 | 非必填 | 最大长度64字节 |
例:
返回值ret, 0:成功,负数:失败
{
"ret": 0
}