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

请求方法

GET

请求地址

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

请求参数

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

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费
fitnessstring智慧体育人脸健体

返回参数

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

请求方法

POST

请求地址

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

请求参数

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

scene 取值范围

类型备注
gatestring大门刷脸入校,默认值
librarystring图书馆刷脸入馆
consumestring食堂刷脸消费
fitnessstring智慧体育人脸健体

返回参数

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食堂刷脸消费
fitnessstring智慧体育人脸健体

返回参数

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食堂刷脸消费
fitnessstring智慧体育人脸健体

返回参数

参数名类型备注
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