Skip to content

人脸识别

人脸检测

描述

给定一张图片,返回照片上的人脸坐标

支持的模式

  • client_credentials

请求方法

POST

请求地址

https://api.ecnu.edu.cn/api/v1/face/detect

请求参数

参数名是否必填备注
imagebase64 形式封装后,以 application/json 方式提交

返回参数

data
参数名类型备注
imageobject图片的基本信息
faceobject 数组人脸的基本信息
image
参数名类型备注
mimestring图片的MIME
sizenumber图片的大小,单位 byte
widthnumber图片宽度,像素
heightnumber图片的高度,像素
face
参数名类型备注
topnumber人脸的顶部坐标
bottomnumber人脸的底部坐标
rightnumber人脸的右侧坐标
leftnumber人脸的左侧坐标

请求示例

echo -e {\"image\":\"$(base64 face.jpeg)\"\} > body.json
curl -v -X POST -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" -H "Content-Type:application/json" -d@body.json https://api.ecnu.edu.cn/api/v1/face/detect

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b621917e-c297-4a2c-afa5-ecc08cdf3b44",
	"data": {
		"image": {
			"size": 39071,
			"mime": "image/jpeg",
			"width": 384,
			"height": 569
		},
		"face": [{
				"top": 160,
				"left": 97,
				"bottom": 345,
				"right": 283
			},
			{
				"top": 183,
				"left": 197,
				"bottom": 345,
				"right": 383
			}
		]
	}
}

肖像生成

描述

给定一张照片,裁剪人脸部分生成肖像,一般用于证件照片。

支持的模式

  • client_credentials

请求方法

POST

请求地址

https://api.ecnu.edu.cn/api/v1/face/portrait

请求参数

参数名是否必填备注
imagebase64 形式封装后,以 application/json 方式提交

返回参数

返回 Content-Type: image/jpeg 的图片

请求示例

echo -e {\"image\":\"$(base64 face.jpeg)\"\} > body.json
curl -v -X POST -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" -H "Content-Type:application/json" -d@body.json https://api.ecnu.edu.cn/api/v1/face/portrait > portrait.jpeg

人脸比对

描述

给定两张照片,返回匹配度

支持的模式

  • client_credentials

请求方法

POST

请求地址

https://api.ecnu.edu.cn/api/v1/face/compare

请求参数

参数名是否必填备注
image1第一张图片,base64 形式封装后,以 application/json 方式提交
image2第二张图片,base64 形式封装后,以 application/json 方式提交

返回参数

data
参数名类型备注
confidencefloat置信度,[0,100] 区间,小数点后3位有效数字
thresholdsobject置信区间, [0,100] 的浮点数,小数点后 3 位有效数字
thresholds
参数名类型备注
1e-3float误识率为千分之一的置信度阈值
1e-4float误识率为万分之一的置信度阈值
1e-5float误识率为十万分之一的置信度阈值

请求示例

echo -e {\"image1\":\"$(base64 face1.jpeg)\"\,\"image2\":\"$(base64 face2.jpeg)\"\} > body.json
curl -v -X POST -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" -H "Content-Type:application/json" -d@body.json https://api.ecnu.edu.cn/api/v1/face/compare

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b621917e-c297-4a2c-afa5-ecc08cdf3b44",
	"data": {
		"confidence": 99.555,
		"thresholds": {
			"1e-3": 65.3,
			"1e-5": 76.5,
			"1e-4": 71.8
		}
	}
}

人脸授权

描述

给定一个学工号,返回是否已经授权照片用于人脸识别

如已经授权,则返回他的照片 url,可配合照片下载的接口获取他的照片

支持的模式

  • authorization_code
  • client_credentials
  • password

请求方法

GET

请求地址

https://api.ecnu.edu.cn/api/v1/face/authorized

请求参数

参数名是否必填备注
userId学工号,当授权为authorization_code和password模式时可省略
scene人脸场景值,默认值为 gate,即大门刷脸入校权限

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费

返回参数

data
参数名类型备注
authorizedbool是否授权
userIdstring用户名
namestring姓名
lastUpdatenumber最后更新时间,linux时间戳,毫秒。ts 参数将根据此字段值过滤
photosobject array脸库照片结构体的数组
urlstring照片的路径,将用于后续拼接生成下载地址
uploadTimenumber照片的上传时间,请根据此时间判断是否需要更新照片

请求示例

curl -v -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" "https://api.ecnu.edu.cn/api/v1/face/authorized?userId=20150073"

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b3cdc75e-8dc7-499d-946e-a7db01db8a99",
	"data": {
		"userId": "20***73",
		"name": "冯骐",
		"lastUpdate": 1639538487073,
		"authorized": true,
		"photos": [{
			"url": "5611d********************683.jpg",
			"uploadTime": 1639538479683
		}]
	}
}

人脸核验

描述

给定一个学工号和照片,核验其是同一个人的置信度

用户必须已经授权照片用于人脸识别

支持的模式

  • authorization_code
  • client_credentials
  • password

请求方法

POST

请求地址

https://api.ecnu.edu.cn/api/v1/face/check

请求参数

参数名是否必填备注
userId学工号,当授权为authorization_code和password模式时可省略
image图片,base64 形式封装后,以 application/json 方式提交
scense人脸场景值,默认值为 gate,即大门刷脸入校权限

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费

返回参数

data
参数名类型备注
confidencefloat置信度,[0,100] 区间,小数点后3位有效数字
thresholdsobject置信区间, [0,100] 的浮点数,小数点后 3 位有效数字
thresholds
参数名类型备注
1e-3float误识率为千分之一的置信度阈值
1e-4float误识率为万分之一的置信度阈值
1e-5float误识率为十万分之一的置信度阈值

请求示例

echo -e {\"image\":\"$(base64 face.jpeg)\"\} > body.json
curl -v -X POST -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" -H "Content-Type:application/json" -d@body.json "https://api.ecnu.edu.cn/api/v1/face/check?userId=20150073&scene=gate"

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b621917e-c297-4a2c-afa5-ecc08cdf3b44",
	"data": {
		"confidence": 99.555,
		"thresholds": {
			"1e-3": 65.3,
			"1e-5": 76.5,
			"1e-4": 71.8
		}
	}
}

人脸搜索

描述

给定一个照片,搜索授权库中相似度最高的那个人

支持的模式

  • client_credentials

请求方法

POST

请求地址

https://api.ecnu.edu.cn/api/v1/face/search

请求参数

参数名是否必填备注
image图片,base64 形式封装后,以 application/json 方式提交
scense人脸场景值,默认值为 gate,即大门刷脸入校权限

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费

返回参数

data
参数名类型备注
usersobject 数组返回的用户
thresholdsobject置信区间, [0,100] 的浮点数,小数点后 3 位有效数字
user
参数名类型备注
userIdstring用户名
namestring姓名
confidencefloat置信度,[0,100] 区间,小数点后3位有效数字
thresholds
参数名类型备注
1e-3float误识率为千分之一的置信度阈值
1e-4float误识率为万分之一的置信度阈值
1e-5float误识率为十万分之一的置信度阈值

请求示例

echo -e {\"image\":\"$(base64 face.jpeg)\"\} > body.json
curl -v -X POST -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c" -H "Content-Type:application/json" -d@body.json "https://api.ecnu.edu.cn/api/v1/face/search?scense=gate"

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b621917e-c297-4a2c-afa5-ecc08cdf3b44",
	"data": {
		"users": [{
				"userId": "20150073",
				"name": "冯骐",
				"confidence": 99.555
			}
		],
		"thresholds": {
			"1e-3": 65.3,
			"1e-5": 76.5,
			"1e-4": 71.8
		}
	}
}

授权脸库人员同步

同步已经授权人脸识别的用户名单和照片地址。

请求方法

GET

请求地址

https://api.ecnu.edu.cn/api/v1/face/authorized/users

请求参数

参数名是否必填备注
authorized是否授权
scene人脸场景值,默认值为 gate,即大门刷脸入校权限
pageNum页码,从1开始
pageSize分页数量,最大不可超过1000
ts更新时间戳,返回大于此时间戳的人员信息。给0即表示全量同步

建议首次以 authorized=true, ts=0 发起同步。后续不传递 authorized,以 ts 实现增量同步,并根据返回的 authorized 状态去除取消授权的用户。

建议每一段时间(例如每月)执行一次全量同步覆盖数据,以确保数据的准确性。

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费

返回参数

参数名类型备注
totalNumnumber总共的条目数
pageSizenumber每页的大小
rowsobject array具体的返回
userIdstring用户名
namestring姓名
lastUpdatenumber最后更新时间,linux时间戳,毫秒。ts 参数将根据此字段值过滤
authorizedbool是否授权
photosobject array脸库照片结构体的数组
urlstring照片的路径,将用于后续拼接生成下载地址
uploadTimenumber照片的上传时间,请根据此时间判断是否需要更新照片

请求示例

curl -v  -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c"  https://api.ecnu.edu.cn/api/v1/face/authorized/users?authorized=true&pageNum=1&ageSize=10&ts=1635401891000

返回示例

json
{
	"errCode": 0,
	"errMsg": "success",
	"requestId": "b621917e-c297-4a2c-afa5-ecc08cdf3b44",
	"data": {
        "rows": [
          {
            "userId": "10******29",
            "name": "测试人员",
            "lastUpdate": 1635401891000,
            "authorized": true,
            "photos": [
              {
                "url": "d2be39baa**********3f40_face_convert1567308612148.jpg",
                "uploadTime": 1635401891000
              }
            ]
          }
        ],
		"pageSize": 10,
		"totalNum": 1
	}
}

获取授权脸库中的用户照片信息

获取授权脸库中的用户照片信息,注意一个用户授权的面部照片可能不止一张。

请求方法

GET

请求地址

https://api.ecnu.edu.cn/api/v1/face/authorized/photo/{userId}/{url}

请求参数

参数名是否必填备注
userId工号
url授权用户photos中的url字段内容,注意每个用户可能授权了多个脸部照片

返回参数

返回 Content-Type: image/jpeg 的图片

请求示例

curl -H "Authorization: Bearer 2c29fb27cfbb3bb88563200ac9c6fa2c"   https://api.ecnu.edu.cn/api/v1/face/authorized/photo/10******29/d2be39baa**********3f40_face_convert1567308612148.jpg > photo.jpg