人脸识别活体检测程序可以在微信上实现吗

54801人阅读
微信公众平台(31)
CSDN2013年度博客之星评选活动开始,本人有幸入围参加评选,如果博客中的文章对你有所帮助,请为柳峰投上宝贵一票,非常感谢!投票地址:& & & & 在笔者的公众账号小q机器人(微信号:xiaoqrobot)中有一个非常好玩的功能&人脸检测&,它能够检测出用户发送的图片中有多少张人脸,并且还能分析出每张脸所对应的人种、性别和年龄。几乎每天都有一些用户在使用“人脸检测”,该功能的趣味性和娱乐性在于能够让用户知道自己的长相与真实年龄是否相符,是否男(女)性化。本文将为读者介绍人脸检测应用的完整实现过程。& & & & 人脸检测属于人脸识别的范畴,它是一个复杂的具有挑战性的模式匹配问题,国内外许多组织、科研机构都在专门研究该问题。国内的Face++团队专注于研发人脸检测、识别、分析和重建技术,并且向广大开发者开放了人脸识别API,本文介绍的“人脸检测”应用正是基于Face++ API进行开发。Face++简介& & & & Face++是北京旷视科技有限公司旗下的人脸识别云服务平台,Face++平台通过提供云端API、离线SDK、以及面向用户的自主研发产品等形式,将人脸识别技术广泛应用到互联网及移动应用场景中。Face++为广大开发者提供了简单易用的API,开发者可以轻松搭建属于自己的云端身份认证、用户兴趣挖掘、移动体感交互、社交娱乐分享等多种类型的应用。& & & & Face++提供的技术服务包括人脸检测、人脸分析和人脸识别,主要说明如下:& & & & & & & &&1)人脸检测:可以从图片中快速、准确的定位面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴等。& & & & & & & &&2)人脸分析:可以从图片或实时视频流中分析出人脸的性别(准确度达96%)、年龄、种族等多种属性。& & & & & & & &&3)人脸识别:可以快速判定两张照片是否为同一个人,或者快速判定视频中的人像是否为某一位特定的人。& & & &&Face++的中文网址为,要使用Face++ API,需要注册成为Face++开发者,也就是要注册一个Face++账号。注册完成后,先创建应用,创建应用时需要填写“应用名称”、“应用描述”、“API服务器”、“应用类型”和“应用平台”,读者可以根据实际情况填写。应用创建完成后,可以看到应用的详细信息,如下图所示。& & & & & & & &&& & & & 上图中,最重要的是API KEY和API SECRET,在调用Face++提供的API时,需要传入这两个参数。人脸检测API介绍& & & & 在Face++网站的“API文档”中,能够看到Face++提供的所有API,我们要使用的人脸检测接口是detect分类下的“/detection/detect”,它能够检测出给定图片(Image)中的所有人脸(Face)的位置和相应的面部属性,目前面部属性包括性别(gender)、年龄(age)、种族(race)、微笑程度(smiling)、眼镜(glass)和姿势(pose)。& & & & 读者可以在中了解到人脸检测接口的详细信息,该接口的请求地址如下:/v2/detection/detect?url=URL&api_secret=API_SECRET&api_key=API_KEY调用上述接口,必须要传入参数api_key、api_secret和待检测的图片。其中,待检测的图片可以是URL,也可以是POST方式提交的二进制数据。在微信公众账号后台,接收用户发送的图片,得到的是图片的访问路径(PicUrl),因此,在本例中,直接使用待检测图片的URL是最方便的。调用人脸检测接口返回的是JSON格式数据如下:{
&attribute&: {
&range&: 5,
&value&: 23
&gender&: {
&confidence&: 99.9999,
&value&: &Female&
&glass&: {
&confidence&: 99.945,
&value&: &None&
&pitch_angle&: {
&value&: 17
&roll_angle&: {
&value&: 0.735735
&yaw_angle&: {
&value&: -2
&confidence&: 99.6121,
&value&: &Asian&
&smiling&: {
&value&: 4.86501
&face_id&: &b51ac91e391e5afe130eb78&,
&position&: {
&center&: {
&x&: 49.4,
&eye_left&: {
&x&: 43.3692,
&y&: 30.8192
&eye_right&: {
&x&: 56.5606,
&y&: 30.9886
&height&: 26.8,
&mouth_left&: {
&x&: 46.1326,
&y&: 44.9468
&mouth_right&: {
&x&: 54.2592,
&y&: 44.6282
&x&: 49.9404,
&y&: 38.8484
&width&: 26.8
&img_height&: 500,
&img_id&: &22fd9efc64c87e18eec7&,
&img_width&: 500,
&session_id&: &3b34c7e8c6efb6ba39ed355&,
&url&: &/wp-content/themes/faceplusplus.zh/assets/img/demo/1.jpg?v=4&
}这里只对本文将要实现的“人脸检测”功能中主要用到的参数进行说明,参数说明如下:1)face是一个数组,当一张图片中包含多张人脸时,所有识别出的人脸信息都在face数组中。2)age中的value表示估计年龄,range表示误差范围。例如,上述结果中value=23,range=5,表示人的真实年龄在18岁至28岁左右。3)gender中的value表示性别,男性为Male,女性为Female;gender中的confidence表示检测结果的可信度。4)race中的value表示人种,黄色人种为Asian,白色人种为White,黑色人种为Black;race中的confidence表示检测结果的可信度。5)center表示人脸框中心点坐标,可以将x用于计算人脸的左右顺序,即x坐标的值越小,人脸的位置越靠近图片的左侧。人脸检测API的使用方法& & & & 为了方便开发者调用人脸识别API,Face++团队提供了基于Objective-C、Java(Android)、Matlab、Ruby、C#等多种语言的,读者可以在Face++网站的“工具下载”版块下载相关的SDK。在本例中,笔者并不打算使用官方提供的SDK进行开发,主要原因如下:1)人脸检测API的调用比较简单,自己写代码实现也并不复杂;2)如果使用SDK进行开发,笔者还要花费大量篇幅介绍SDK的使用,这些并不是本文的重点;3)自己写代码实现比较灵活。当图片中有多张人脸时,人脸检测接口返回的数据是无序的,开发者可以按照实际使用需求进行排序,例如,将图片中的人脸按照从左至右的顺序进行排序。编程调用人脸检测API& & & & 首先,要对人脸检测接口返回的结构进行封装,建立与之对应的Java对象。由于人脸检测接口返回的参数较多,笔者只是将本例中需要用到的参数抽取出来,封装成Face对象,对应的代码如下:package org.liufeng.course.
* Face Model
* @author liufeng
public class Face implements Comparable&Face& {
// 被检测出的每一张人脸都在Face++系统中的标识符
private String faceId;
// 年龄估计值
private int ageV
// 年龄估计值的正负区间
private int ageR
// 性别:Male/Female
private String genderV
// 性别分析的可信度
private double genderC
// 人种:Asian/White/Black
private String raceV
// 人种分析的可信度
private double raceC
// 微笑程度
private double smilingV
// 人脸框的中心点坐标
private double centerX;
private double centerY;
public String getFaceId() {
return faceId;
public void setFaceId(String faceId) {
this.faceId = faceId;
public int getAgeValue() {
return ageV
public void setAgeValue(int ageValue) {
this.ageValue = ageV
public int getAgeRange() {
return ageR
public void setAgeRange(int ageRange) {
this.ageRange = ageR
public String getGenderValue() {
return genderV
public void setGenderValue(String genderValue) {
this.genderValue = genderV
public double getGenderConfidence() {
return genderC
public void setGenderConfidence(double genderConfidence) {
this.genderConfidence = genderC
public String getRaceValue() {
return raceV
public void setRaceValue(String raceValue) {
this.raceValue = raceV
public double getRaceConfidence() {
return raceC
public void setRaceConfidence(double raceConfidence) {
this.raceConfidence = raceC
public double getSmilingValue() {
return smilingV
public void setSmilingValue(double smilingValue) {
this.smilingValue = smilingV
public double getCenterX() {
return centerX;
public void setCenterX(double centerX) {
this.centerX = centerX;
public double getCenterY() {
return centerY;
public void setCenterY(double centerY) {
this.centerY = centerY;
// 根据人脸中心点坐标从左至右排序
public int compareTo(Face face) {
int result = 0;
if (this.getCenterX() & face.getCenterX())
result = 1;
result = -1;
}与普通Java类不同的是,Face类实现了Comparable接口,并实现了该接口的compareTo()方法,这正是Java中对象排序的关键所在。112-119行代码是通过比较每个Face的脸部中心点的横坐标来决定对象的排序方式,这样能够实现检测出的多个Face按从左至右的先后顺序进行排序。& & & & 接下来,是人脸检测API的调用及相关处理逻辑,笔者将这些实现全部封装在FaceService类中,该类的完整实现如下:package org.liufeng.course.
import java.io.BufferedR
import java.io.InputS
import java.io.InputStreamR
import java.net.HttpURLC
import java.net.URL;
import java.util.ArrayL
import java.util.C
import java.util.L
import org.liufeng.course.pojo.F
import net.sf.json.JSONA
import net.sf.json.JSONO
* 人脸检测服务
* @author liufeng
public class FaceService {
* 发送http请求
* @param requestUrl 请求地址
* @return String
private static String httpRequest(String requestUrl) {
StringBuffer buffer = new StringBuffer();
URL url = new URL(requestUrl);
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod(&GET&);
httpUrlConn.connect();
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, &utf-8&);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str =
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream =
httpUrlConn.disconnect();
} catch (Exception e) {
e.printStackTrace();
return buffer.toString();
* 调用Face++ API实现人脸检测
* @param picUrl 待检测图片的访问地址
* @return List&Face& 人脸列表
private static List&Face& faceDetect(String picUrl) {
List&Face& faceList = new ArrayList&Face&();
// 拼接Face++人脸检测的请求地址
String queryUrl = &/v2/detection/detect?url=URL&api_secret=API_SECRET&api_key=API_KEY&;
// 对URL进行编码
queryUrl = queryUrl.replace(&URL&, java.net.URLEncoder.encode(picUrl, &UTF-8&));
queryUrl = queryUrl.replace(&API_KEY&, &替换成自己的API Key&);
queryUrl = queryUrl.replace(&API_SECRET&, &替换成自己的API Secret&);
// 调用人脸检测接口
String json = httpRequest(queryUrl);
// 解析返回json中的Face列表
JSONArray jsonArray = JSONObject.fromObject(json).getJSONArray(&face&);
// 遍历检测到的人脸
for (int i = 0; i & jsonArray.size(); i++) {
JSONObject faceObject = (JSONObject) jsonArray.get(i);
// attribute
JSONObject attrObject = faceObject.getJSONObject(&attribute&);
// position
JSONObject posObject = faceObject.getJSONObject(&position&);
Face face = new Face();
face.setFaceId(faceObject.getString(&face_id&));
face.setAgeValue(attrObject.getJSONObject(&age&).getInt(&value&));
face.setAgeRange(attrObject.getJSONObject(&age&).getInt(&range&));
face.setGenderValue(genderConvert(attrObject.getJSONObject(&gender&).getString(&value&)));
face.setGenderConfidence(attrObject.getJSONObject(&gender&).getDouble(&confidence&));
face.setRaceValue(raceConvert(attrObject.getJSONObject(&race&).getString(&value&)));
face.setRaceConfidence(attrObject.getJSONObject(&race&).getDouble(&confidence&));
face.setSmilingValue(attrObject.getJSONObject(&smiling&).getDouble(&value&));
face.setCenterX(posObject.getJSONObject(&center&).getDouble(&x&));
face.setCenterY(posObject.getJSONObject(&center&).getDouble(&y&));
faceList.add(face);
// 将检测出的Face按从左至右的顺序排序
Collections.sort(faceList);
} catch (Exception e) {
faceList =
e.printStackTrace();
return faceL
* 性别转换(英文-&中文)
* @param gender
private static String genderConvert(String gender) {
String result = &男性&;
if (&Male&.equals(gender))
result = &男性&;
else if (&Female&.equals(gender))
result = &女性&;
* 人种转换(英文-&中文)
* @param race
private static String raceConvert(String race) {
String result = &黄色&;
if (&Asian&.equals(race))
result = &黄色&;
else if (&White&.equals(race))
result = &白色&;
else if (&Black&.equals(race))
result = &黑色&;
* 根据人脸识别结果组装消息
* @param faceList 人脸列表
private static String makeMessage(List&Face& faceList) {
StringBuffer buffer = new StringBuffer();
// 检测到1张脸
if (1 == faceList.size()) {
buffer.append(&共检测到 &).append(faceList.size()).append(& 张人脸&).append(&\n&);
for (Face face : faceList) {
buffer.append(face.getRaceValue()).append(&人种,&);
buffer.append(face.getGenderValue()).append(&,&);
buffer.append(face.getAgeValue()).append(&岁左右&).append(&\n&);
// 检测到2-10张脸
else if (faceList.size() & 1 && faceList.size() &= 10) {
buffer.append(&共检测到 &).append(faceList.size()).append(& 张人脸,按脸部中心位置从左至右依次为:&).append(&\n&);
for (Face face : faceList) {
buffer.append(face.getRaceValue()).append(&人种,&);
buffer.append(face.getGenderValue()).append(&,&);
buffer.append(face.getAgeValue()).append(&岁左右&).append(&\n&);
// 检测到10张脸以上
else if (faceList.size() & 10) {
buffer.append(&共检测到 &).append(faceList.size()).append(& 张人脸&).append(&\n&);
// 统计各人种、性别的人数
int asiaMale = 0;
int asiaFemale = 0;
int whiteMale = 0;
int whiteFemale = 0;
int blackMale = 0;
int blackFemale = 0;
for (Face face : faceList) {
if (&黄色&.equals(face.getRaceValue()))
if (&男性&.equals(face.getGenderValue()))
asiaMale++;
asiaFemale++;
else if (&白色&.equals(face.getRaceValue()))
if (&男性&.equals(face.getGenderValue()))
whiteMale++;
whiteFemale++;
else if (&黑色&.equals(face.getRaceValue()))
if (&男性&.equals(face.getGenderValue()))
blackMale++;
blackFemale++;
if (0 != asiaMale || 0 != asiaFemale)
buffer.append(&黄色人种:&).append(asiaMale).append(&男&).append(asiaFemale).append(&女&).append(&\n&);
if (0 != whiteMale || 0 != whiteFemale)
buffer.append(&白色人种:&).append(whiteMale).append(&男&).append(whiteFemale).append(&女&).append(&\n&);
if (0 != blackMale || 0 != blackFemale)
buffer.append(&黑色人种:&).append(blackMale).append(&男&).append(blackFemale).append(&女&).append(&\n&);
// 移除末尾空格
buffer = new StringBuffer(buffer.substring(0, buffer.lastIndexOf(&\n&)));
return buffer.toString();
* 提供给外部调用的人脸检测方法
* @param picUrl 待检测图片的访问地址
* @return String
public static String detect(String picUrl) {
// 默认回复信息
String result = &未识别到人脸,请换一张清晰的照片再试!&;
List&Face& faceList = faceDetect(picUrl);
if (null != faceList) {
result = makeMessage(faceList);
public static void main(String[] args) {
String picUrl = &/72554_2.jpg&;
System.out.println(detect(picUrl));
}上述代码虽然多,但条理很清晰,并不难理解,所以笔者只挑重点的进行讲解,主要说明如下:1)70行:参数url表示图片的链接,由于链接中存在特殊字符,作为参数传递时必须进行URL编码。请读者记住:不管是什么应用,调用什么接口,凡是通过GET传递的参数中可能会包含特殊字符,都必须进行URL编码,除了中文以外,特殊字符还包括等号“=”、与“&”、空格“ ”等。2)76-97行:使用JSON-lib解析人脸检测接口返回的JSON数据,并将解析结果存入List中。3)99行:对集合中的对象进行排序,使用Collections.sort()方法排序的前提是集合中的Face对象实现了Comparable接口。4)146-203行:组装返回给用户的消息内容。考虑到公众平台的文本消息内容长度有限制,当一张图片中识别出的人脸过多,则只返回一些汇总信息给用户。5)211-219行:detect()方法是public的,提供给其他类调用。笔者可以在本地的开发工具中运行上面的main()方法,测试detect()方法的输出。公众账号后台的实现在公众账号后台的CoreService类中,需要对用户发送的消息类型进行判断,如果是图片消息,则调用人脸检测方法进行分析,如果是其他消息,则返回人脸检测的使用指南。CoreService类的完整代码如下:package org.liufeng.course.
import java.util.D
import java.util.M
import javax.servlet.http.HttpServletR
import org.liufeng.course.message.resp.TextM
import org.liufeng.course.util.MessageU
* 核心服务类
* @author liufeng
public class CoreService {
* 处理微信发来的请求
public static String processRequest(HttpServletRequest request) {
// 返回给微信服务器的xml消息
String respXml =
// xml请求解析
Map&String, String& requestMap = MessageUtil.parseXml(request);
// 发送方帐号(open_id)
String fromUserName = requestMap.get(&FromUserName&);
// 公众帐号
String toUserName = requestMap.get(&ToUserName&);
// 消息类型
String msgType = requestMap.get(&MsgType&);
// 回复文本消息
TextMessage textMessage = new TextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(new Date().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
// 图片消息
if (MessageUtil.REQ_MESSAGE_TYPE_IMAGE.equals(msgType)) {
// 取得图片地址
String picUrl = requestMap.get(&PicUrl&);
// 人脸检测
String detectResult = FaceService.detect(picUrl);
textMessage.setContent(detectResult);
// 其它类型的消息
textMessage.setContent(getUsage());
respXml = MessageUtil.textMessageToXml(textMessage);
} catch (Exception e) {
e.printStackTrace();
return respX
* 人脸检测帮助菜单
public static String getUsage() {
StringBuffer buffer = new StringBuffer();
buffer.append(&人脸检测使用指南&).append(&\n\n&);
buffer.append(&发送一张清晰的照片,就能帮你分析出种族、年龄、性别等信息&).append(&\n&);
buffer.append(&快来试试你是不是长得太着急&);
return buffer.toString();
}到这里,人脸检测应用就全部开发完成了,整个项目的完整结构如下:& & & &&运行结果如下:& & & &&&笔者用自己的相片测试了两次,测试结果分别是26岁、30岁,这与笔者的实际年龄相差不大,可见,Face++的人脸检测准确度还是比较高的。为了增加人脸检测应用的趣味性和娱乐性,笔者忽略了年龄估计值的正负区间。读者可以充分发挥自己的想像力和创造力,使用Face++ API实现更多实用、有趣的功能。应用开发不是简单的接口调用!转帖请注明本文出自柳峰的博客(),请尊重他人的辛勤劳动成果,谢谢!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3700321次
积分:14705
积分:14705
排名:第543名
原创:55篇
评论:4133条
文章:22篇
阅读:2461679
(1)(2)(1)(2)(4)(1)(4)(3)(1)(5)(2)(6)(1)(1)(1)(1)(1)(15)(4)&>>&&>>&&>>&正文
人脸识别在人换脸时能识别吗?
来源:商汤科技
[摘要] 那么,在一个人不知情的情况下,他人能够通过偷拍视频的方式,通过此项技术模仿他人人脸,进而顺利实现人脸解锁,攻破金融、安防、门禁等领域?
  CVPR 会议前夕,一篇由德国埃尔朗根-纽伦堡大学、马克斯&普朗克计算机科学研究所、斯坦福大学三家学术机构5名科学家共同创作的论文&实时人脸捕捉和再扮演&& Face2Face&引起了国内科技圈的热议。CVPR全称为计算机视觉和模式识别大会 (Computer Vision and Pattern Recognition),是一年一度的视觉领域最高学术会议。因此,早在该研究成果公布伊始,国内媒体就对其进行了报道:&这个技术的原理是通过一种密集光度一致性办法(Dense Photometric Consistency measure),达到跟踪源和目标视频中脸部表情的实时转换,由于间隔的时间很短,使得&复制&面部表情成为可能,但现在还没办法实现声音也一样模仿出来。&
  那么,在一个人不知情的情况下,他人能够通过**视频的方式,通过此项技术模仿他人人脸,进而顺利实现人脸解锁,攻破金融、安防、门禁等领域?特别是在线上环境中,不法份子是否容易通过**他人视频伪造身份通过认证?
  作为服务中国银联、中国移动、小米、京东华为等企业的人工智能公司,商汤科技的人脸识别算法在陌生人识别领域超越人眼准确率,并积累了大量的人脸识别实战经验。商汤科技主任研发工程师李诚认为:&在人脸识别风险控制上,商汤率先进行了布局,投入大量研发资源,利用大数据视频分析技术,身份认证系统能处理各种照片、视频攻击。Face2Face也是模仿人脸的学术成果之一,主要是驱动被模仿者已有视频来进行模拟运动,将模仿者肌肉运动转移到视频中的人脸上。但如果想应用于工业级别人脸识别攻击,该技术仍有较大局限:模仿者不能改变视频中的头部和人脸运动,对需要被测人主动进行动作(例如左右转动人脸),商汤的系统在第一时间就会阻止模仿用户;商汤现有的人脸技术已经支持估计人脸眼睛注视的位置以及分析人脸纹理,足以区分模仿视频。&
  (图为商汤科技自主研发的&换脸&技术,可以实现在侧脸、动态等情况下实时变脸)
  李诚还强调,就算攻击者真的能完全模拟人脸的运动,还有很多问题要解决。例如,攻击者需要把攻击用的视频,传输进应用里面。这个过程往往通过用手机摄像头翻拍屏幕来实现,此时的屏幕图像与真实图像就会存在差异。只要翻拍的过程中出现一点这样的端倪,活体检测都会予以报警。
  诚然,伴随着技术的升级,人脸识别系统遭受攻击的可能性确实存在,但抵御攻击的技术水平也在不断提升。随着大数据方法持续进化,人脸识别身份认证安全性也会越来越高,终将超越人能判别的极限。
[责任编辑:water]
《安防知识网》新增三个订阅号 微信服务全面升级
转载声明:凡文章来源标明“安防知识网”的文章版权均为本站所有,请不要一声不吭地来拿走,转载请注明出处,违者本网保留追究相关法律责任的权利;所有未标明来源为“安防知识网”的转载文章均不代表本网立场及观点,“安防知识网”不对这些第三方内容或链接做出任何保证或承担任何责任。
专家们预测:未来两三年,在生物识别技术中,指纹识别一枝独秀的市场情况将会改变,\r\n人脸识别技术将会成为生物识别的后起之秀。究竟,他们作出此预见的依据是什么?
赞助商新闻
安防智能能化,将是这个行业这个时代的重要话题,技术的变革也将成为打破市场格局的重...
传统实体店铺要实现成功转型,首先观念上要改变。观念决定行动,行动决定习惯,习惯决...
临近年底,两年一次的北京安博会即将到来。对本次行业盛会,有人积极准备,忙得手舞足...
看过此文章的还看过
2014年逐渐接近尾声,又到了回顾与展望的时刻,为安防产业所有厂商集成商提供专业市场...
近日,东芝开发出了可高速对照大数据、大规模媒体数据注1的数据处理技术。此技术以高维...
在恐怖袭击的阴影下,英格兰和俄罗斯的球迷大战也给法国安保人员添了乱。
由千家品牌传媒策划主办的第十五届中国国际建筑智能化峰会于今天上午9点在上海神旺大酒...
随着事故灾害、公共卫生和社会安全等领域暴露的问题日渐突出,政府在城市应急处置工作...
安防知识网服务号
深度报道产品、提供解决方案
专家解读技术、最新行业资讯
举办线上线下活动/研讨会
下次自动登录&&&新闻热线:021-
  ▲利用人脸识别技术的考勤设备,可以同时对多人进行识别。
原标题:  ▲利用人脸识别技术的考勤设备,可以同时对多人进行识别。
  昨日记者从中科院重庆研究院获悉,该院研发出人脸识别支付系统,以后,大家再也不需要为银行卡设置各种密码了,只需刷刷自己的脸就可以了。据了解,该系统在国内尚属首例,填补了国内空白,预计明年下半年推出。
  人脸识别准确率99.8%
  据了解,人脸识别支付系统是一款基于脸部识别系统的支付平台,它于2013年7月由芬兰创业公司Uniqul全球首次推出。该系统不需要钱包、信用卡或手机,支付时只需要面对POS机屏幕上的摄像头,系统会自动将消费者面部信息与个人账户相关联,整个交易过程十分便捷。刷脸系统目前正在芬兰首都赫尔辛基进行测试。
  “这种人脸识别支付方式,美国也正在试行中。”中科院重庆研究院智能多媒体技术中心主任周曦介绍,人脸识别在国内还处于空白,该中心去年在国内首先启动人脸识别支付计划。
  周曦介绍,该中心在人脸识别系统方面已经有比较成熟的技术,目前已经在应用的有人脸识别边检站自动通关系统、动态人脸识别考勤机、多属性动态人脸识别系统等。在此基础上,该中心目前已经成功研发出了人脸识别移动支付系统,识别的准确率达到99.8%。
  研发人脸识别移动支付APP
  周曦介绍,这个系统预计在明年下半年推出。目前该中心正在研发人脸识别移动支付APP(软件),届时用户只需要在终端(手机、平板电脑)上安装这个APP,并将银行账户或信用卡与人脸识别支付系统关联。使用时,用户仅需对着摄像头拍一张照片,就可以实现快捷支付,预计整个支付过程仅需要4-6秒钟。
  当然,用户在使用前,需要在该系统存储面部信息,系统通过多方面扫描读取用户面部的生物特征并存储下来。
  周曦说,由于人脸具有不可复制性,刷自己的脸来支付,不存在密码遗失、泄露甚至被盗等风险,大大提高了安全级别。同时,用户还可以自行设置安全等级,比如可以增加唇语比对,即用户使用时,系统自动要求用户读一段文字,比对唇语。
  长胖变瘦不影响识别
  该系统已经对超过5000万亚洲人脸数据进行训练,再通过该中心自主研发、全球首创的人脸数据采集阵列,对人脸海量特征反复学习并自动融合,并生成一种智能化分析。因此,用户在刷脸时,系统可以在不到1秒钟内,形成200万个数据比对来判断此脸是否为用户本人。此外,该系统还会跟人进行智能交互,每次刷脸时,都会自动在线学习人体的可变特征,比如长胖或者变瘦等,还会自动锁定不变特征,比如瞳距、颧骨距离等。用户完全不用担心自己胖瘦或脸上冒个痘痘等变化会影响系统的识别。
  周曦介绍,接下来该中心还将研发人脸识别移动支付终端机。用户仅需对着摄像头拍一张照片,系统就会在数据库中搜索这张脸,并将其与储存的支付信息进行匹配,并最终准确进入用户账户,待商家与用户确认消费金额后实现快速支付。到那时,就真正意义上实现了无卡支付。
  ■如果其他人偷拍下我的照片或者视频,人脸识别时能认出来吗?
  周曦:该系统识别人脸时,会进行活体检测。如果你拿的是一张照片,它能立即判断出来。至于活动的录像视频,也是一样的。
  ■人脸识别相对于指纹识别有哪些优势?
  周曦:指纹识别已经广泛应用于单位的通勤卡等方面,现在市场上有很多指纹套、指纹膜产品,降低了指纹识别的安全性。用户使用人脸识别时,除了可简单采用系统自动拍照、扫描用户面部等,还可以自己设置安全等级。
  ■如果做了整容,面部特征发生较大变化,咋办?
  周曦:这就需要用户向银行客服联系,通过传统手段验证身份等来确定用户信息,然后用户再更新储存的人脸数据等。
  ■如果遇到长得一模一样的双胞胎,系统会不会刷错脸?
  周曦:人眼看到的双胞胎长得几乎一模一样,其实双胞胎在生物特征上有很多不同,这些细微的特征计算机可以全部捕捉到。计算机通过海量数据分析,瞬间就能判断出差异来,根本不存在分辨的难度。
声明:凡注明为其他媒体来源的信息,均为转载自其他媒体,转载并不代表本网赞同其观点,也不代表本网对其真实性负责。您若对该稿件内容有任何疑问或质疑,请即与东方网联系,本网将迅速给您回应并做处理。
电话:021-962007
东方网()版权所有,未经授权禁止复制或建立镜像
  ▲利用人脸识别技术的考勤设备,可以同时对多人进行识别。
日 04:11 来源:人民网
原标题:  ▲利用人脸识别技术的考勤设备,可以同时对多人进行识别。
  昨日记者从中科院重庆研究院获悉,该院研发出人脸识别支付系统,以后,大家再也不需要为银行卡设置各种密码了,只需刷刷自己的脸就可以了。据了解,该系统在国内尚属首例,填补了国内空白,预计明年下半年推出。
  人脸识别准确率99.8%
  据了解,人脸识别支付系统是一款基于脸部识别系统的支付平台,它于2013年7月由芬兰创业公司Uniqul全球首次推出。该系统不需要钱包、信用卡或手机,支付时只需要面对POS机屏幕上的摄像头,系统会自动将消费者面部信息与个人账户相关联,整个交易过程十分便捷。刷脸系统目前正在芬兰首都赫尔辛基进行测试。
  “这种人脸识别支付方式,美国也正在试行中。”中科院重庆研究院智能多媒体技术中心主任周曦介绍,人脸识别在国内还处于空白,该中心去年在国内首先启动人脸识别支付计划。
  周曦介绍,该中心在人脸识别系统方面已经有比较成熟的技术,目前已经在应用的有人脸识别边检站自动通关系统、动态人脸识别考勤机、多属性动态人脸识别系统等。在此基础上,该中心目前已经成功研发出了人脸识别移动支付系统,识别的准确率达到99.8%。
  研发人脸识别移动支付APP
  周曦介绍,这个系统预计在明年下半年推出。目前该中心正在研发人脸识别移动支付APP(软件),届时用户只需要在终端(手机、平板电脑)上安装这个APP,并将银行账户或信用卡与人脸识别支付系统关联。使用时,用户仅需对着摄像头拍一张照片,就可以实现快捷支付,预计整个支付过程仅需要4-6秒钟。
  当然,用户在使用前,需要在该系统存储面部信息,系统通过多方面扫描读取用户面部的生物特征并存储下来。
  周曦说,由于人脸具有不可复制性,刷自己的脸来支付,不存在密码遗失、泄露甚至被盗等风险,大大提高了安全级别。同时,用户还可以自行设置安全等级,比如可以增加唇语比对,即用户使用时,系统自动要求用户读一段文字,比对唇语。
  长胖变瘦不影响识别
  该系统已经对超过5000万亚洲人脸数据进行训练,再通过该中心自主研发、全球首创的人脸数据采集阵列,对人脸海量特征反复学习并自动融合,并生成一种智能化分析。因此,用户在刷脸时,系统可以在不到1秒钟内,形成200万个数据比对来判断此脸是否为用户本人。此外,该系统还会跟人进行智能交互,每次刷脸时,都会自动在线学习人体的可变特征,比如长胖或者变瘦等,还会自动锁定不变特征,比如瞳距、颧骨距离等。用户完全不用担心自己胖瘦或脸上冒个痘痘等变化会影响系统的识别。
  周曦介绍,接下来该中心还将研发人脸识别移动支付终端机。用户仅需对着摄像头拍一张照片,系统就会在数据库中搜索这张脸,并将其与储存的支付信息进行匹配,并最终准确进入用户账户,待商家与用户确认消费金额后实现快速支付。到那时,就真正意义上实现了无卡支付。
  ■如果其他人偷拍下我的照片或者视频,人脸识别时能认出来吗?
  周曦:该系统识别人脸时,会进行活体检测。如果你拿的是一张照片,它能立即判断出来。至于活动的录像视频,也是一样的。
  ■人脸识别相对于指纹识别有哪些优势?
  周曦:指纹识别已经广泛应用于单位的通勤卡等方面,现在市场上有很多指纹套、指纹膜产品,降低了指纹识别的安全性。用户使用人脸识别时,除了可简单采用系统自动拍照、扫描用户面部等,还可以自己设置安全等级。
  ■如果做了整容,面部特征发生较大变化,咋办?
  周曦:这就需要用户向银行客服联系,通过传统手段验证身份等来确定用户信息,然后用户再更新储存的人脸数据等。
  ■如果遇到长得一模一样的双胞胎,系统会不会刷错脸?
  周曦:人眼看到的双胞胎长得几乎一模一样,其实双胞胎在生物特征上有很多不同,这些细微的特征计算机可以全部捕捉到。计算机通过海量数据分析,瞬间就能判断出差异来,根本不存在分辨的难度。
声明:凡注明为其他媒体来源的信息,均为转载自其他媒体,转载并不代表本网赞同其观点,也不代表本网对其真实性负责。您若对该稿件内容有任何疑问或质疑,请即与东方网联系,本网将迅速给您回应并做处理。
电话:021-962007}

我要回帖

更多关于 人脸识别活体检测程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信