天元围棋频道的《摆谱》节目的QQ群号是多少?

自动人脸识别技术
&& 在2008年,人脸识别技术首次亮相奥运会,为保障北京奥运会及残奥会的开闭幕式的安全,起到了重要的作用。北京奥运会使用的人脸识别技术,是由中国科学院自动化所生物特征识别与安全技术研究中心所研发的,性能在国际上处于领先地位,并且拥有完全独立自主的知识产权。在这里,我们给大家介绍一下自动人脸识别技术。
&& 在当今社会信息安全问题备受人们的关注。自身安全和个人隐私保护成为这个时代的热门话题。基于密码、个人识别码、磁卡和钥匙等传统的安全措施已不能完全满足社会要求。在这样一个背景下,人们把目光投向了生物特征识别技术 ―― 利用人体固有的生理特征或行为特征来进行身份的鉴别或确认。生理特征通常是指人类个体“与生俱来、独一无二、长期不变 ” (至少在一定程度上满足)的生理特性,如人脸、指纹、虹膜、掌纹、手形、 DNA 、耳廓形状、视网膜等;行为特征通常是指人类个体的习惯性行为特点,如笔迹、声纹、步态、敲键方式等。与传统的身份验证方法相比,生物特征识别突出的优势表现在生物特征可以从根本上杜绝伪造和窃取,而且是人类自身拥有的,从而具有更高的可靠性、安全性和可用性。因而,人们对生物特征识别技术寄予厚望,期望能够满足从国家公共安全、社会安全、到金融安全以及人机交互等各类应用的需要。
&& 与其他生物特征识别技术相比,人脸识别在实用性方面具有独到的技术优势,这主要体现在:
&& 这是不需要使用者配合的生物识别方法,因而操作隐蔽性强,特别适合于安全防范、罪犯监控、罪犯抓捕;
&& 采用非接触式采集,没有侵犯性,容易被接受。而指纹采集,掌纹识别通常给人造成不适的感觉;
&& 事后追踪能力强,普通人即可进行判断核实。而普通人一般不具备对于指纹、虹膜的判别能力;
&& 更符合人类的识别习惯,可交互性强,适合于改善人机界面;
&& 实现设备通用、简单,尤其是采集设备成本较低。指纹采集仪,虹膜图像采集仪、 DNA 鉴别仪等都是专用的采集设备,而且设备昂贵。
&& 有人对六种生物特征在可机读电子档案系统中的兼容性进行了评价,评价标准包括注册、更新、机器要求、公众感受等几个方面,结果面部特征取得了最高得分。鉴于上述原因,人脸识别被认为是一种最为理想的生物识别技术。
&& 基于以上技术优势,人脸识别可应用于各行各业中。表 1 列出了人脸识别的一些典型应用。人脸识别经过 40 年左右的发展,技术上已经达到了一定的成熟度,因此从二十世纪九十年代中期开始,陆续出现了一些人脸识别商业系统,这些商业系统基本都依托于知名研究机构多年的研究成果。表 2 是列出了一些比较著名的商业人脸识别系统。
表 1 :人脸识别的部分典型应用场合
身份证、驾照、护照等证件的核实
Windows 95/2000 等操作系统的桌面登录、电子商务、数据库安全、文件加密等
视频扫描和监控、可疑分子跟踪(机场、车站、码头等),有线电视监视(商店、超市等)
考勤、重要场所的出入、车辆管理等
真实感虚拟游戏,自动登陆系统,智能 Agent 等
表 2 :一些比较著名的商业人脸识别系统
系统提供商
Identix (前身为 Visionics )
基于 Rockfeller 大学开发的 LFA 算法
基于 MIT 的特征脸技术,后来开发了 ICA 技术, 2004 年 1 月开始又融合了 ZN 公司的弹性图匹配技术
FaceVACS-SDK
其算法采用了多阶高斯导数滤波特征,并对这些特征进行判别分析用于最终的匹配识别。
NevenVision
基本算法是基于 Gabor 特征的人脸识别方法。其前身为 Eyematic , 2003.7 被 NevenVision 收购,最近 Neven Vision 被 Google 收购
VisionSphere
基于 McGill 大学的几何结构特征的识别方法
基于弹性图匹配技术
基于人脸、语音和唇动三者的融合进行身份认证
AuthenMetric
中国科学院自动化研究所所
基于机器学习方法的人脸识别技术。并拥有能够解决光照问题的独特的红外人脸识别技术专利。
&& 人脸识别技术在国家安全、军事安全和公共安全领域的应用前景十分广阔,例如智能门卫、智能视频监控、公安布控、出入境管理、司机驾照验证等都是典型的应用。在民事和经济领域,各类银行卡、金融卡、信用卡、储蓄卡的持卡人的身份验证,社会保险人的身份验证,电子商务和电子政务等方面也具有重要的应用价值。在家庭娱乐等领域的潜力也相当大,比如能够识别主人身份的智慧玩具、家政机器人、真实感虚拟游戏等。
&& 现有的人脸识别系统在用户配合、采集条件比较理想的情况下可以取得令人满意的结果。但是,如果对于用户不配合,采集条件不理想(如光照恶劣,有遮挡,图像分辨率低等)的情况下,现有系统的识别率将陡然下降。人脸识别技术远未达到实用水平,还存在着诸多的挑战性问题需要解决。
( 1 )复杂条件下人脸的检测和关键点定位问题
&& 人脸的检测和关键点定位是一个人脸识别系统的前端处理环节,此环节效果好坏直接影响着人脸识别系统的识别性能。而现有的多数特征定位算法的定位精度都随着光照、姿态等外界条件变化而快速下降,因此研究复杂条件下人脸的检测和关键点定位算法是目前人脸识别研究中的当务之急。
( 2 )光照变化问题
&& 光照问题是机器视觉中的老问题,在人脸识别中的表现尤为明显。根据 FERET 测试和 FRVT 测试的结果可以看出,目前即使最好的人脸识别系统在室外光照环境下,其识别率也会急剧下降。尽管研究人员针对光照问题提出了一些解决方案,但是目前的光照处理方法远未达到实用的程度,还需要进一步地研究解决。
( 3 )姿态问题
&& 与光照问题类似,姿态问题也是目前人脸识别研究中需要解决的一个技术难点。针对姿态的研究相对比较少,目前多数的人脸识别算法主要针对正面、准正面人脸图像,当发生俯仰或者左右侧面比较厉害的情况下,人脸识别算法的识别率也将会急剧下降。因此,如何提高系统对姿态的鲁棒性也是人脸识别研究中一个极具挑战性的问题。
( 4 )遮挡问题
&& 对于非配合情况下的人脸图像采集,遮挡问题是一个非常严重的问题。特别是在监控环境下,往往被监控对象都会带着眼镜,帽子等饰物,使得被采集出来的人脸图像有可能不完整,从而影响了后面的特征提取与识别,甚至会导致人脸检测算法的失效。如何有效地去除遮挡物的影响是一个非常有意思的研究课题。
( 5 )年龄变化问题
&& 随着年龄的变化,面部外观也会变化,特别是对于青少年,这种变化更加的明显。对于不同的年龄段,人脸识别算法的识别率也不同。如何解决年龄变化对人脸识别算法的影响也是许多人脸识别系统的必须面对的一个问题。
( 6 )低质量照片问题
&& 目前的多数人脸识别系统在算法设计和模型训练方面都往往只针对图像质量很好的情况,但对智能监控、公安系统犯罪嫌疑人照片比对等应用而言,由于其来源不一,照片的质量非常差,比如模糊、高噪声、分辨率极低等。如何提高系统对这些低质量照片的识别能力也是人脸识别亟待解决的关键问题之一。
( 7 )大规模人脸识别问题
&& 随着人脸数据库规模的增长,人脸识别算法的性能将呈现下降,如何维持或提高大规模应用环境下的人脸识别算法的识别率是一个非常重要的问题。同时,大规模人脸数据库的建立、维护、编码和检索也是非常值得研究的问题。
( 8 )样本缺乏问题
&& 基于统计学习的人脸识别算法是目前人脸识别领域中的主流算法,但是统计学习方法需要大量的训练。由于人脸图像在高维空间中的分布是一个不规则的流形分布,能得到的样本只是对人脸图像空间中的一个极小部分的采样,如何解决小样本下的统计学习问题有待进一步的研究。
( 9 )海量数据的学习问题
&& 传统人脸识别方法在小规模数据中可以很容易进行训练学习。但是对于海量数据,这些方法的计算复杂度太高,训练过程难以进行,甚至有可能导致系统崩溃。如何解决海量数据的学习问题是一个非常重要的问题。
( 10 )人脸信息采集设备带来的问题
&& 摄像头是目前主流的人脸信息采集设备,它们的种类、型号、传感方式(比如 CCD 或者 CMOS )、采样和量化精度等各不相同,采集时刻的焦距、光圈、增益、白平衡等参数设置区别也很大。这些变化因素使得获取的人脸图像数据的变化更大。如何解决这些问题也是值得关注的。
&& 另外,需要注意的是:上述问题并不是单独作用的,很多都是组合性的,例如姿态和光照问题同时出现,会更进一步的增加问题的难度。而目前出现的主要研究论文,往往都是试图孤立地解决其中一个问题,而没有考虑它们同时出现情况下的解决方案,这也是值得关注的一个问题。
(注:此内容比较专业)人脸识别 - rui_chen - 博客园
随笔 - 7, 文章 - 0, 评论 - 6, 引用 - 0
最近在做一款商户入网的应用,为防止不法商户对公司渠道的接入,公司加大了对商户的审核,人脸识别就是其中的一项。人脸识别的第一步是检测商户的张嘴动作,通过之后采集照片,上传到服务器。第二步是检测商户的摇头动作,通过之后采集照片,上传到服务器。至此完成人脸识别。下面我对主干代码进行分析:
首先导入jar包Msc(讯飞)。检测人脸关键部位的坐标
private void setFaceDetection() {
mThread = new Thread(new Runnable() {
public void run() {
List&Object& previewDate = CameraInterface.getInstance()
.getPreviewDate();
buffer = (byte[]) previewDate.get(0);
nv21 = (byte[]) previewDate.get(1);
while (!mStopTrack) {
if (null == nv21) {
synchronized (nv21) {
System.arraycopy(nv21, 0, buffer, 0, nv21.length);
// 获取手机朝向,返回值0,1,2,3分别表示0,90,180和270度
int direction = Accelerometer.getDirection();
boolean frontCamera = (Camera.CameraInfo.CAMERA_FACING_FRONT == mCameraId);
// 前置摄像头预览显示的是镜像,需要将手机朝向换算成摄相头视角下的朝向。
// 转换公式:a' = (360 - a)%360,a为人眼视角下的朝向(单位:角度)
if (frontCamera) {
// SDK中使用0,1,2,3,4分别表示0,90,180,270和360度
direction = (4 - direction) % 4;
if (mFaceDetector == null) {
* 离线视频流检测功能需要单独下载支持离线人脸的SDK 请开发者前往语音云官网下载对应SDK
ShowToast.showToast(getActivity(), "本SDK不支持离线视频流检测");
String result = mFaceDetector.trackNV21(buffer,
PREVIEW_WIDTH, PREVIEW_HEIGHT, isAlign, direction);
FaceRect[] faces = ParseResult.parseResult(result);
drawRect(frontCamera, faces);
对人脸动作的检测
if (isFace) {
// 进行活体检测
if (rectLength &= 160 && rectLength & 180) {
// 判断张嘴后进行拍照
if (mouth_bt &= 40 && !isOpenMouth) {
isOpenMouth = true;
isShakeHead = true;
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_OPEN_MOUTH, 1000);
// 进行摇头判断
if (eyebrow_mlr_y & 79 && eyebrow_mlr_y &= 0
&& isShakeHead) {
isOpenMouth = true;
countHead++;
if (countHead % 2 == 0) {
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_SHAKE_HEAD,
} else if (rectLength &= 180 && rectLength & 200) {
// 判断张嘴后进行拍照
if (mouth_bt &= 45 && !isOpenMouth) {
isShakeHead = true;
isOpenMouth = true;
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_OPEN_MOUTH, 1000);
// 进行摇头判断
if (eyebrow_mlr_y & 89 && eyebrow_mlr_y &= 0
&& isShakeHead) {
isOpenMouth = true;
countHead++;
if (countHead % 2 == 0) {
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_SHAKE_HEAD,
} else if (rectLength &= 200 && rectLength & 340) {
// 判断张嘴后进行拍照
if (mouth_bt &= 50 && !isOpenMouth) {
isShakeHead = true;
isOpenMouth = true;
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_OPEN_MOUTH, 500);
// 进行摇头判断
if (eyebrow_mlr_y & 95 && eyebrow_mlr_y &= 0
&& isShakeHead) {
isOpenMouth = true;
countHead++;
if (countHead % 2 == 0) {
mHandler.sendEmptyMessageDelayed(
StaticArguments.FACE_SHAKE_HEAD,
} else if (rectLength & 160) {// 检测脸部离手机太远
mHandler.sendEmptyMessage(StaticArguments.FACE_LENGTH_LONG);
} else if (rectLength &= 340 && rectLength &= 0) {// 检测脸部离手机太近
mHandler.sendEmptyMessage(StaticArguments.FACE_LENGTH_NEAR);
人脸张嘴或者摇头的动作后捕获视频的帧数据
public void doStartPreview(SurfaceHolder holder, float previewRate) {
if (isPreview) {
mCamera.stopPreview();
if (mCamera != null) {
mParams = mCamera.getParameters();
mParams.setPictureFormat(PixelFormat.JPEG);// 设置拍照后存储的图片格式
// 设置PreviewSize和PictureSize
mParams.setPreviewFormat(ImageFormat.NV21);
mParams.setPreviewSize(PREVIEW_WIDTH, PREVIEW_HEIGHT);
mCamera.setParameters(mParams);
mCamera.setDisplayOrientation(90);
List&String& focusModes = mParams.getSupportedFocusModes();
if (focusModes.contains("continuous-video")) {
mParams.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
mCamera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
System.arraycopy(data, 0, nv21, 0, data.length);
if (takePictureFlag == 1) {
Bitmap mBitmap = null;
Camera.Parameters parameters = camera.getParameters();
int format = parameters.getPreviewFormat();
if (format == PixelFormat.YCbCr_420_SP
|| format == PixelFormat.YCbCr_422_I) {
int w = parameters.getPreviewSize().
int h = parameters.getPreviewSize().
int[] i = new int[data.length];
decodeYUV420SP(i, data, w, h);
mBitmap = Bitmap.createBitmap(i, w, h,
Bitmap.Config.RGB_565);
} else if (format == PixelFormat.JPEG
|| format == PixelFormat.RGB_565) {
mBitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);
if (null != mBitmap) {
if (takePictureFlag == 1) {
takePictureFlag++;
// 设置FOCUS_MODE_CONTINUOUS_VIDEO)之后,myParam.set("rotation",
// 90)失效。
// 图片竟然不能旋转了,故这里要旋转下
Bitmap rotateImage = FaceUtil.rotateImage(270,
if (mListener != null) {
mListener.onTakePictuerResult(rotateImage);
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
isPreview = true;
源码下载地址:
/reachchen/FaceRecognition

我要回帖

更多关于 天元围棋晚间版 的文章

 

随机推荐