人脸检测的外文翻译

合集下载

人脸识别英文专业词汇教学提纲

人脸识别英文专业词汇教学提纲

人脸识别英文专业词汇gallery set参考图像集Probe set=test set测试图像集face renderingFacial Landmark Detection人脸特征点检测3D Morphable Model 3D形变模型AAM (Active Appearance Model)主动外观模型Aging modeling老化建模Aging simulation老化模拟Analysis by synthesis 综合分析Aperture stop孔径光标栏Appearance Feature表观特征Baseline基准系统Benchmarking 确定基准Bidirectional relighting 双向重光照Camera calibration摄像机标定(校正)Cascade of classifiers 级联分类器face detection 人脸检测Facial expression面部表情Depth of field 景深Edgelet 小边特征Eigen light-fields本征光场Eigenface特征脸Exposure time曝光时间Expression editing表情编辑Expression mapping表情映射Partial Expression Ratio Image局部表情比率图(,PERI) extrapersonal variations类间变化Eye localization,眼睛定位face image acquisition 人脸图像获取Face aging人脸老化Face alignment人脸对齐Face categorization人脸分类Frontal faces 正面人脸Face Identification人脸识别Face recognition vendor test人脸识别供应商测试Face tracking人脸跟踪Facial action coding system面部动作编码系统Facial aging面部老化Facial animation parameters脸部动画参数Facial expression analysis人脸表情分析Facial landmark面部特征点Facial Definition Parameters人脸定义参数Field of view视场Focal length焦距Geometric warping几何扭曲Street view街景Head pose estimation头部姿态估计Harmonic reflectances谐波反射Horizontal scaling水平伸缩Identification rate识别率Illumination cone光照锥Inverse rendering逆向绘制技术Iterative closest point迭代最近点Lambertian model朗伯模型Light-field光场Local binary patterns局部二值模式Mechanical vibration机械振动Multi-view videos多视点视频Band selection波段选择Capture systems获取系统Frontal lighting正面光照Open-set identification开集识别Operating point操作点Person detection行人检测Person tracking行人跟踪Photometric stereo光度立体技术Pixellation像素化Pose correction姿态校正Privacy concern隐私关注Privacy policies隐私策略Profile extraction轮廓提取Rigid transformation刚体变换Sequential importance sampling序贯重要性抽样Skin reflectance model,皮肤反射模型Specular reflectance镜面反射Stereo baseline 立体基线Super-resolution超分辨率Facial side-view面部侧视图Texture mapping纹理映射Texture pattern纹理模式Rama Chellappa读博计划:1.完成先前关于指纹细节点统计建模的相关工作。

人脸检测与识别文献汇总——by qian wu解读

人脸检测与识别文献汇总——by qian wu解读

一、类别人脸检测(Face Detction):从场景中检测并分割。

人脸识别(Face Recognition):识别、匹配人脸。

1.人脸检测基于知识的人脸检测方法Ø 模板匹配Ø 人脸特征Ø 形状与边缘Ø 纹理特性Ø 颜色特征Ø 镶嵌图利用人脸的轮廓、对称性等少量特征的方法适用于较强约束条件下的人脸检测,该算法可以达到较高的检测速度。

利用人脸五官分布特征的知识模型方法能够在一定程度上适用于复杂背景图像中的人脸检测,同时达到较高的检测速度。

基于统计的人脸检测方法Ø 主成分分析与特征脸Ø 因子分解方法(Factor Analysis, FA)Ø Fisher准则方法(Fisher Linear Discriminant, FLD)Ø 神经网络方法Ø 支持向量机Ø 隐马尔可夫模型Ø Adaboost算法2.人脸识别基于几何特征(Geometric Feature-based)的方法:首先检测出嘴巴、鼻子、眉毛、眼睛等脸部主要部件的位置和大小,然后利用这些部件的总体几何分布关系以及相互之间的参数比例来识别人脸。

基于模板匹配(Template Matching-based)的方法:利用模板和整个人脸图像的像素值之间的子相关性进行识别。

基于模型的方法:1. 隐马尔科夫模型(Hidden Markov Model, HMM)是一种常用的模型。

首先采用两维离散余弦变化(Discrete Cosine Transform, DCT)抽取人脸特征,得到观察向量,构建HMM人脸模型,然后用EM(Expectation Maximization)算法训练。

2. 主动形状模型(Active Shape Model, ASM)方法,对形状和局部灰度表象建模,用建立的ASM在新的图像中定位易变的物体。

人脸检测的研究背景意义以及概况

人脸检测的研究背景意义以及概况

人脸检测的研究背景意义以及概况人脸检测的研究背景意义以及概况1 人脸检测的研究背景及意义2 人脸检测的研究概况3 基本概念4 难点与展望5 人脸检测的评价标准1 人脸检测的研究背景及意义人脸检测(face detection)是指在输入图像中确定所有的人脸(如果存在)的位置,大小的过程。

人脸检测作为人脸信息处理中的一项关键技术,已经成为模式识别与计算机视觉领域内一向受到普遍重视,研究十分活跃的课题。

人脸检测问题最初来源与人脸识别(face recognition)。

人脸识别的研究可以追溯到20世纪60-70年代,经过几十年的曲折发展已经日趋成熟。

人脸检测是自动人脸识别系统的一个关键环节,但早期的人脸识别研究主要针对具有较强约束条件的人脸图像,往往假设人脸位置已知或很容易获得,因此人脸检测问题并未受到足够的重视。

近几年随着电子商务等应用的发展,人们对于自动人脸识别的要求日益迫切。

今天,人脸检测的应用背景已经远远超出了人脸识别的范畴,在人工情感计算,基于内容的检索,数字视频处理,视觉检测等方面有着重要的应用价值。

2 人脸检测的研究概况对人脸检测的研究最初可以追溯到20世纪70年代,人脸检测早期的研究主要致力于模板匹配,子空间方法,变形模板匹配等。

早期人脸检测方法往往针对简单无变化背景下的正面人脸检测,所以使这些方法在很大程度上显得很呆板。

基于这些方法构建的检测系统,任何图像条件的改变,即使不用完全重新设计整个系统,也要对系统的参数进行精细的调整。

那时人们更重视对人脸识别的研究,直到90年代,随着实际的人脸识别和视频编码系统开始成为现实,这种情况才又说改变。

在过去的十多年里,对人脸检测的极大兴趣开始从几个方面展开。

研究者提出了多种检测方法,特别是那些利用运动,肤色和一般信息的方法。

统计和神经网络方法的使用也使在复杂背景和多分辨率中的人脸检测成为可能。

另外,在能够精确定位的跟踪面部特征提取方法的设计方面也取得了很大的进展。

【精品】人脸识别文献翻译(中英双文)

【精品】人脸识别文献翻译(中英双文)

人脸识别文献翻译(中英双文)4 Two-dimensional Face Recognition4.1 Feature LocalizationBefore discussing the methods of comparing two facial images we now take a brief look at some at the preliminary processes of facial feature alignment. This process typically consists of two stages: face detection and eye localization. Depending on the application, if the position of the face within the image is known beforehand (for a cooperative subject in a door access system for example) then the face detection stage can often be skipped, as the region of interest is already known. Therefore, we discuss eye localization here, with a brief discussion of face detection in the literature review .The eye localization method is used to align the 2D face images of the various test sets used throughout this section. However, to ensure that all results presented are representative of the face recognition accuracy and not a product of the performance of the eye localization routine, all image alignments are manually checked and any errors corrected, prior to testing and evaluation.We detect the position of the eyes within an image using a simple template based method. A training set of manually pre-aligned images of faces is taken, and each image cropped to an area around both eyes. The average image is calculated and used as a template.Figure 4-1 The average eyes. Used as a template for eye detection.Both eyes are included in a single template, rather than individually searching for each eye in turn, as the characteristic symmetry of the eyes either side of the nose, provide a useful feature that helps distinguish between the eyes and other false positives that may be picked up in the background. Although this method is highly susceptible to scale (i.e. subject distance from the camera) and also introduces the assumption that eyes in the image appear near horizontal. Some preliminary experimentation also reveals that it is advantageous to include the area of skin just beneath the eyes. The reason being that in some cases the eyebrows can closely match the template, particularly if there are shadows in the eye-sockets, but the area of skin below the eyes helps to distinguish the eyes from eyebrows (the area just below the eyebrows contain eyes, whereas the area below the eyes contains only plain skin).A window is passed over the test images and the absolute difference taken to that of the average eye image shown above. The area of the image with the lowest difference is taken as the region of interest containing the eyes. Applying the same procedure using a smaller template of the individual left and right eyes then refines each eye position.This basic template-based method of eye localization, although providing fairly precise localizations, often fails to locate the eyes completely. However, we are able to improve performance by including a weighting scheme.Eye localization is performed on the set of training images, which is then separated into two sets: those in which eye detection was successful; and those in which eye detection failed. Taking the set of successful localizations we compute the average distance from the eye template (Figure 4-2 top). Note that the image is quite dark, indicating that the detected eyes correlate closely to the eye template, as we would expect. However, bright points do occur near the whites of the eye, suggesting that this area is often inconsistent, varying greatly from the average eye template.Figure 4-2 – Distance to the eye template for successful detections (top) indicating variance due to noise and failed detections (bottom) showing credible variance due tomiss-detected features.In the lower image (Figure 4-2 bottom), we have taken the set of failed localizations(images of the forehead, nose, cheeks, background etc. falsely detected by the localization routine) and once again computed the average distance from the eye template. The bright pupils surrounded by darker areas indicate that a failed match is often due to the high correlation of the nose and cheekbone regions overwhelming the poorly correlated pupils. Wanting to emphasize the difference of the pupil regions for these failed matches and minimize the variance of the whites of the eyes for successful matches, we divide the lower image values by the upper image to produce a weights vector as shown in Figure 4-3. When applied to the difference image before summing a total error, this weighting scheme provides a much improved detection rate.Figure 4-3 - Eye template weights used to give higher priority to those pixels that bestrepresent the eyes.4.2 The Direct Correlation ApproachWe begin our investigation into face recognition with perhaps the simplest approach, known as the direct correlation method (also referred to as template matching by Brunelli and Poggio) involving the direct comparison of pixel intensity values taken from facial images. We use the term ‘Direct Correlation’ to encompass all techniques in which face images are compared directly, without any form of image space analysis, weighting schemes or feature extraction, regardless of the distance metric used. Therefore, we do not infer that Pearson’s correlation is applied as the similarity function (although such an approach would obviously come under our definition of direct correlation). We typically use the Euclidean distance as our metric in these investigations (inversely related to Pearson’s correlation and can be considered as a scale and translation sensitive form of image correlation), as this persists with the contrast made between image space and subspace approaches in later sections.Firstly, all facial images must be aligned such that the eye centers are located at two specified pixel coordinates and the image cropped to remove any background information. These images are stored as grayscale bitmaps of 65 by 82 pixels and prior to recognition converted into a vector of 5330 elements (each element containing the corresponding pixel intensity value). Each corresponding vector can be thought of as describing a point within a 5330 dimensional image space. This simple principle can easily be extended to much larger images: a 256 by 256 pixel image occupies a single point in 65,536-dimensional image space and again, similar images occupy close points within that space. Likewise, similar faces are located close together within the image space, while dissimilar faces are spaced far apart. Calculating the Euclidean distance d, between two facial image vectors (often referred to as the query image q, and gallery image g), we get an indication of similarity. A threshold is then applied to make the final verification decision.4.2.1 Verification TestsThe primary concern in any face recognition system is its ability to correctly verify a claimed identity or determine a person's most likely identity from a set of potential matches in a database. In order to assess a given system’s ability to perform these tasks, a variety of evaluation methodologies have arisen. Some of these analysis methods simulate a specific mode of operation (i.e. secure site access or surveillance), while others provide a more mathematical description of data distribution in some classification space. In addition,the results generated from each analysis method may be presented in a variety of formats. Throughout the experimentations in this thesis, we primarily use the verification test as our method of analysis and comparison, although we also use Fisher’s Linear Discriminate to analyze individual subspace components in section 7 and the identification test for the final evaluations described in section 8. The verification test measures a system’s ability to correctly accept or reject the proposed identity of an individual. At a functional level, this reduces to two images being presented for comparison, for which the system must return either an acceptance (the two images are of the same person) or rejection (the two images are of different people). The test is designed to simulate the application area of secure site access. In this scenario, a subject will present some form of identification at a point of entry, perhaps as a swipe card, proximity chip or PIN number. This number is then used to retrieve a stored image from a database of known subjects (often referred to as the target or gallery image) and compared with a live image captured at the point of entry (the query image). Access is then granted depending on the acceptance/rejection decision.The results of the test are calculated according to how many times the accept/reject decision is made correctly. In order to execute this test we must first define our test set of face images. Although the number of images in the test set does not affect the results produced (as the error rates are specified as percentages of image comparisons), it is important to ensure that the test set is sufficiently large such that statistical anomalies become insignificant (for example, a couple of badly aligned images matching well). Also, the type of images (high variation in lighting, partial occlusions etc.) will significantly alter the results of the test. Therefore, in order to compare multiple face recognition systems, they must be applied to the same test set.However, it should also be noted that if the results are to be representative of system performance in a real world situation, then the test data should be captured under precisely the same circumstances as in the application environment. On the other hand, if the purpose of the experimentation is to evaluate and improve a method of face recognition, which may be applied to a range of application environments, then the test data should present the range of difficulties that are to be overcome. This may mean including a greater percentage of ‘difficult’ images than would be expected in the perceived operating conditions and hence higher error rates in the results produced. Below we provide the algorithm for executing the verification test. The algorithm is applied to a single test set of face images, using a single function call to the face recognition algorithm: Compare Faces (FaceA, FaceB). This call is used to compare two facial images, returning a distance score indicating how dissimilar the two face images are: the lower the score the more similar thetwo face images. Ideally, images of the same face should produce low scores, while images of different faces should produce high scores.Every image is compared with every other image, no image is compared with itself and no pair is compared more than once (we assume that the relationship is symmetrical). Once two images have been compared, producing a similarity score, the ground-truth is used to determine if the images are of the same person or different people. In practical tests this information is often encapsulated as part of the image filename (by means of a unique person identifier). Scores are then stored in one of two lists: a list containing scores produced by comparing images of different people and a list containing scores produced by comparing images of the same person. The final acceptance/rejection decision is made by application of a threshold. Any incorrect decision is recorded as either a false acceptance or false rejection. The false rejection rate (FRR) is calculated as the percentage of scores from the same people that were classified as rejections. The false acceptance rate (FAR) is calculated as the percentage of scores from different people that were classified as acceptances.These two error rates express the inadequacies of the system when operating at a specific threshold value. Ideally, both these figures should be zero, but in reality reducing either the FAR or FRR (by altering the threshold value) will inevitably result in increasing the other. Therefore, in order to describe the full operating range of a particular system, we vary the threshold value through the entire range of scores produced. The application of each threshold value produces an additional FAR, FRR pair, which when plotted on a graph produces the error rate curve shown below.Figure 4-5 - Example Error Rate Curve produced by the verification test.The equal error rate (EER) can be seen as the point at which FAR is equal to FRR. This EER value is often used as a single figure representing the general recognitionperformance of a biometric system and allows for easy visual comparison of multiple methods. However, it is important to note that the EER does not indicate the level of error that would be expected in a real world application. It is unlikely that any real system would use a threshold value such that the percentage of false acceptances was equal to the percentage of false rejections. Secure site access systems would typically set the threshold such that false acceptances were significantly lower than false rejections: unwilling to tolerate intruders at the cost of inconvenient access denials.Surveillance systems on the other hand would require low false rejection rates to successfully identify people in a less controlled environment. Therefore we should bear in mind that a system with a lower EER might not necessarily be the better performer towards the extremes of its operating capability.There is a strong connection between the above graph and the receiver operating characteristic (ROC) curves, also used in such experiments. Both graphs are simply two visualizations of the same results, in that the ROC format uses the True Acceptance Rate (TAR), where TAR = 1.0 – FRR in place of the FRR, effectively flipping the graph vertically. Another visualization of the verification test results is to display both the FRR and FAR as functions of the threshold value. This presentation format provides a reference to determine the threshold value necessary to achieve a specific FRR and FAR. The EER can be seen as the point where the two curves intersect.Figure 4-6 - Example error rate curve as a function of the score thresholdThe fluctuation of these error curves due to noise and other errors is dependant on the number of face image comparisons made to generate the data. A small dataset that only allows for a small number of comparisons will results in a jagged curve, in which large steps correspond to the influence of a single image on a high proportion of the comparisons made. A typical dataset of 720 images (as used in section 4.2.2) provides 258,840verification operations, hence a drop of 1% EER represents an additional 2588 correct decisions, whereas the quality of a single image could cause the EER to fluctuate by up to4 二维人脸识别4.1 特征定位在讨论两幅人脸图像的比较之前,我们先简单看下面部图像特征定位的初始过程。

Face Recognition(人脸识别)

Face Recognition(人脸识别)

Face RecognitionToday ,I will talk about the study about face recognition.(第二页)As for the face recognition, we main talk about Two-Dimensional Techniques. The study is from The University of York ,Department of Computer Science , as for the date, it is September 2005.(第三页)We say the background.The current identification technology mainly include: fingerprint identification指纹识别, retina recognition视网膜识别, iris recognition虹膜识别, gait recognition步态识别, vein recognition静脉识别, face recognition人脸识别, etc.advantages优点:Compared with other identification methods, face recognition because of its direct, friendly and convenient features, users do not have any psychological barriers, is easy to be accepted by users.(第四页)Two-Dimensional Face Recognition is main about Face Localization.This consists of two stages: face detection(人脸检测)and eye localization(眼睛定位). (第五页)Today we main study the research of eye localization.Eye localization is performed on the set of training images, which is then separated into two groups. By it, we can compute the average distance from the eye template. one is eye detection was successful (like the picture on), the dark picture means the detected eyes is closed to the eye template; and the other is failed(like the picture down), the bright points down means doesn’t close.(第六页)We do the research using the way: The Direct Correlation Approach(直接相关方法).This is the way we make the study, you can have a little know about it. So I will not talk much about it.(第七页)This is the study’s main Experimental Process.It is divided into some groups, calculate the distance d, between two facial image vectors, we can get an indication of similarity. Then a threshold is used to make the final verification decision.(第八页)The result wo get the picture. By the picture, we gets an EER (能效比)of 25.1%, this means that one quarter of all verification operations carried out resulted in an incorrect classification. That also means Tiny changes cause the change of the location in image.(第九页)Conclusion: Two-Dimensional Techniques (we say 2D) is an important part in face recognition. It make a large use in face recognition. All in all, Face recognition is the easiest way to be accepted in the identification field.Thank you!。

托福阅读练习:人脸识别Facial Recognition

托福阅读练习:人脸识别Facial Recognition

托福阅读练习:人脸识别Facial Recognition托福阅读素材:托福阅读练习:人脸识别Facial Recognition 托福备考精品课程辅导人脸识别无处躲藏人脸识别不只是另一种技术。

它将改变社会Facial recognitionNowhere to hideFacial recognition is not just another technology. It will change societyTHE human face is a remarkable piece of work. The astonishing variety of facial features helps people recognise each other and is crucial to the formation of complex societies. So is the face’s ability to send emotional signals, whether through an involuntary blush or the artifice of a false smile. People spend much of their waking lives, in the office and the courtroom as well as the bar and the bedroom, reading faces, for signs of attraction, hostility, trust and deceit. They also spend plenty of time trying to dissimulate.人类的脸是一件杰作。

面部特征之纷繁各异令人惊叹,它让人们能相互辨认,也是形成复杂社会群体的关键。

人脸传递情感信号的功能也同样重要,无论是通过下意识的脸红还是有技巧的假笑。

人脸识别英文专业词汇

gallery set参考图像集Probe set=test set测试图像集face renderingFacial Landmark Detection人脸特征点检测3D Morphable Model 3D形变模型AAM (Active Appearance Model)主动外观模型Aging modeling老化建模Aging simulation老化模拟Analysis by synthesis 综合分析Aperture stop孔径光标栏Appearance Feature表观特征Baseline基准系统Benchmarking 确定基准Bidirectional relighting双向重光照Camera calibration摄像机标定(校正)Cascade of classifiers级联分类器face detection 人脸检测Facial expression面部表情Depth of field 景深Edgelet 小边特征Eigen light-fields本征光场Eigenface特征脸Exposure time曝光时间Expression editing表情编辑Expression mapping表情映射Partial Expression Ratio Image局部表情比率图(,PERI) extrapersonal variations类间变化Eye localization,眼睛定位face image acquisition人脸图像获取Face aging人脸老化Face alignment人脸对齐Face categorization人脸分类Frontal faces 正面人脸Face Identification人脸识别Face recognition vendor test人脸识别供应商测试Face tracking人脸跟踪Facial action coding system面部动作编码系统Facial aging面部老化Facial animation parameters脸部动画参数Facial expression analysis人脸表情分析Facial landmark面部特征点Facial Definition Parameters人脸定义参数Field of view视场Focal length焦距Geometric warping几何扭曲Street view街景Head pose estimation头部姿态估计Harmonic reflectances谐波反射Horizontal scaling水平伸缩Identification rate识别率Illumination cone光照锥Inverse rendering逆向绘制技术Iterative closest point迭代最近点Lambertian model朗伯模型Light-field光场Local binary patterns局部二值模式Mechanical vibration机械振动Multi-view videos多视点视频Band selection波段选择Capture systems获取系统Frontal lighting正面光照Open-set identification开集识别Operating point操作点Person detection行人检测Person tracking行人跟踪Photometric stereo光度立体技术Pixellation像素化Pose correction姿态校正Privacy concern隐私关注Privacy policies隐私策略Profile extraction轮廓提取Rigid transformation刚体变换Sequential importance sampling序贯重要性抽样Skin reflectance model,皮肤反射模型Specular reflectance镜面反射Stereo baseline立体基线Super-resolution超分辨率Facial side-view面部侧视图Texture mapping纹理映射Texture pattern纹理模式Rama Chellappa读博计划:1.完成先前关于指纹细节点统计建模的相关工作。

dblib人脸检测的原理

dblib人脸检测的原理Facial detection is a technology used to identify and locate human faces within images or videos. 人脸检测是一种用于识别和定位图像或视频中的人脸的技术。

This technology has various applications, ranging from security and surveillance to photography and entertainment. 这项技术有各种应用,从安全监控到摄影和娱乐。

One of the most fundamental aspects of facial detection is understanding the underlying principles that govern how it works. 人脸检测的最基本方面之一是理解控制其运作的基本原理。

By delving into the principles behind the technology, we can gain a better understanding of its capabilities and limitations. 通过深入研究技术背后的原理,我们可以更好地了解其能力和局限性。

At its core, facial detection relies on complex algorithms to identify facial features within an image or video frame. 在其核心,人脸检测依赖于复杂的算法来识别图像或视频帧中的面部特征。

These algorithms are trained using vast datasets of annotated facial images, allowing them to recognize patterns and features that are indicative of a human face. 这些算法是使用大量注释的面部图像数据集进行训练的,使它们能够识别表明人脸的模式和特征。

英文翻译

成都信息工程学院毕业设计英文翻译介绍了人脸检测和人脸识别系别电子工程学院姓名王雄专业电子信息工程班级信号处理2班学号2010021176Introduction to Face Detection and Face RecognitionLast updated on 4th Feb, 2012 by Shervin Emami. Posted originally on 2nd June, 2010."Face Recognition" is a very active area in the Computer Vision and Biometrics fields, as it has been studied vigorously for 25 years and is finally producing applications in security, robotics, human-computer-interfaces, digital cameras, games and entertainment."Face Recognition" generally involves two stages:Face Detection, where a photo is searched to find any face (shown here as a green rectangle), then image processing cleans up the facial image for easier recognition. Face Recognition, where that detected and processed face is compared to a database of known faces, to decide who that person is (shown here as red text).Since 2002, Face Detection can be performed fairly reliably such as with OpenCV's Face Detector, working in roughly 90-95% of clear photos of a person looking forward at the camera. It is usually harder to detect a person's face when they are viewed from the side or at an angle, and sometimes this requires 3D Head Pose Estimation. It can also be very difficult to detect a person's face if the photo is not very bright, or if part of the face is brighter than another or has shadows or is blurry or wearing glasses, etc. However, Face Recognition is much less reliable than Face Detection, generally 30-70% accurate. Face Recognition has been a strong field of research since the 1990s, but is still far from reliable, and more techniques are being invented each year such as the ones listed at the bottom of this page (Alternatives to Eigenfaces such as 3D face recognition or recognition from video).I will show you how to use Eigenfaces (also called "Principal Component Analysis" or PCA), a simple and popular method of 2D Face Recognition from a photo, as opposed to other common methods such as Neural Networks orFisher Faces.To learn the theory of how Eigenface works, you should read Face Recognition With Eigenface from Servo Magazine (April 2007), and perhaps the mathematical algorithm. First I will explain how to implement Eigenfaces for offline training from the command-line, based on the Servo Magazine tutorial and source-code (May 2007). Once I have explained to you how offline training and offline face recognition works from the command-line, I will explain how this can be extended to online training directly from a webcam in realtime :-)How to detect a face using OpenCV's Face Detector:As mentioned above, the first stage in Face Recognition is Face Detection. The OpenCV library makes it fairly easy to detect a frontal face in an image using its Haar Cascade Face Detector (also known as the Viola-Jones method).The function "cvHaarDetectObjects" in OpenCV performs the actual face detection, but the function is a bit tedious to use directly, so it is easiest to use this wrapper function: // Perform face detection on the input image, using the given Haar Cascade. // Returns a rectangle for the detected region in the given image.CvRect detectFaceInImage(IplImage *inputImg, CvHaarClassifierCascade* cascade) {// Smallest face size.CvSize minFeatureSize = cvSize(20, 20);// Only search for 1 face.int flags = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH;// How detailed should the search be.float search_scale_factor = 1.1f;IplImage *detectImg;IplImage *greyImg = 0;CvMemStorage* storage;CvRect rc;double t;CvSeq* rects;CvSize size;int i, ms, nFaces;storage = cvCreateMemStorage(0);cvClearMemStorage( storage );// If the image is color, use a greyscale copy of the image.detectImg = (IplImage*)inputImg;if (inputImg->nChannels > 1) {size = cvSize(inputImg->width, inputImg->height);greyImg = cvCreateImage(size, IPL_DEPTH_8U, 1 );cvCvtColor( inputImg, greyImg, CV_BGR2GRAY );detectImg = greyImg; // Use the greyscale image.}// Detect all the faces in the greyscale image.t = (double)cvGetTickCount();rects = cvHaarDetectObjects( detectImg, cascade, storage,search_scale_factor, 3, flags, minFeatureSize);t = (double)cvGetTickCount() - t;ms = cvRound( t / ((double)cvGetTickFrequency() * 1000.0) );nFaces = rects->total;printf("Face Detection took %d ms and found %d objects\n", ms, nFaces);// Get the first detected face (the biggest).if (nFaces > 0)rc = *(CvRect*)cvGetSeqElem( rects, 0 );elserc = cvRect(-1,-1,-1,-1); // Couldn't find the face.if (greyImg)cvReleaseImage( &greyImg );cvReleaseMemStorage( &storage );//cvReleaseHaarClassifierCascade( &cascade );return rc; // Return the biggest face found, or (-1,-1,-1,-1).}Now you can simply call "detectFaceInImage" whenever you want to find a face in an image. You also need to specify the face classifier that OpenCV should use to detect the face. For example, OpenCV comes with several different classifiers for frontal face detection, as well as some profile faces (side view), eye detection, nose detection, mouth detection, whole body detection, etc. You can actually use this function with any of these other detectors if you want, or even create your own custom detector such as for car or person detection (read here), but since frontal face detection is the only one that is very reliable, it is the only one I will discuss.For frontal face detection, you can chose one of these Haar Cascade Classifiers that come with OpenCV (in the "data\haarcascades\" folder):"haarcascade_frontalface_default.xml""haarcascade_frontalface_alt.xml""haarcascade_frontalface_alt2.xml""haarcascade_frontalface_alt_tree.xml"Each one will give slightly different results depending on your environment, so you could even use all of them and combine the results together (if you want the most detections). There are also some more eye, head, mouth and nose detectors in the downloads section of Modesto's page.So you could do this in your program for face detection:// Haar Cascade file, used for Face Detection.char *faceCascadeFilename ="haarcascade_frontalface_alt.xml";// Load the HaarCascade classifier for face detection.CvHaarClassifierCascade* faceCascade;faceCascade = (CvHaarClassifierCascade*)cvLoad(faceCascadeFilename, 0, 0, 0);if( !faceCascade ) {printf("Couldnt load Face detector '%s'\n", faceCascadeFilename);exit(1);}// Grab the next frame from the camera.IplImage *inputImg = cvQueryFrame(camera);// Perform face detection on the input image, using the given Haar classifierCvRect faceRect = detectFaceInImage(inputImg, faceCascade);// Make sure a valid face was detected.if (faceRect.width > 0) {printf("Detected a face at (%d,%d)!\n", faceRect.x, faceRect.y);}.... Use 'faceRect' and 'inputImg' ....// Free the Face Detector resources when the program is finished cvReleaseHaarClassifierCascade( &cascade );How to preprocess facial images for Face Recognition:Now that you have detected a face, you can use that face image for Face Recognition. However, if you tried to simply perform face recognition directly on a normal photo image, you will probably get less than 10% accuracy!It is extremely important to apply various image pre-processing techniques to standardize the images that you supply to a face recognition system. Most face recognition algorithms are extremely sensitive to lighting conditions, so that if it was trained to recognize a person when they are in a dark room, it probably wont recognize them in a bright room, etc. This problem is referred to as "lumination dependent", and there are also many other issues, such as the face should also be in a very consistent position within the images (such as the eyes being in the same pixel coordinates), consistent size, rotation angle, hair and makeup, emotion (smiling, angry, etc), position of lights (to the left or above, etc). This is why it is so important to use a good image preprocessing filters before applying face recognition. You should also do things like removing the pixels around the face that aren't used, such as with an elliptical mask to only show the inner face region, not the hair and image background, since they change more than the face does.For simplicity, the face recognition system I will show you is Eigenfaces using greyscale images. So I will show you how to easily convert color images to greyscale (also called 'grayscale'), and then easily apply Histogram Equalization as a very simplemethod of automatically standardizing the brightness and contrast of your facial images. For better results, you could use color face recognition (ideally with color histogram fitting in HSV or another color space instead of RGB), or apply more processing stages such as edge enhancement, contour detection, motion detection, etc. Also, this code is resizing images to a standard size, but this might change the aspect ratio of the face. You can read my tutorial HERE on how to resize an image while keeping its aspect ratio the same.Here you can see an example of this preprocessing stage:Here is some basic code to convert from a RGB or greyscale input image to a greyscale image, resize to a consistent dimension, then apply Histogram Equalization for consistent brightness and contrast:// Either convert the image to greyscale, or use the existing greyscale image. IplImage *imageGrey;if (imageSrc->nChannels == 3) {imageGrey = cvCreateImage( cvGetSize(imageSrc), IPL_DEPTH_8U, 1 );// Convert from RGB (actually it is BGR) to Greyscale.cvCvtColor( imageSrc, imageGrey, CV_BGR2GRAY );}else {// Just use the input image, since it is already Greyscale.imageGrey = imageSrc;}// Resize the image to be a consistent size, even if the aspect ratio changes.IplImage *imageProcessed;imageProcessed = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 1);// Make the image a fixed size. // CV_INTER_CUBIC or CV_INTER_LINEAR is good for enlarging, and // CV_INTER_AREA is good for shrinking / decimation, but bad at enlarging.cvResize(imageGrey, imageProcessed, CV_INTER_LINEAR);// Give the image a standard brightness and contrast.cvEqualizeHist(imageProcessed, imageProcessed);..... Use 'imageProcessed' for Face Recognition ....if (imageGrey)cvReleaseImage(&imageGrey);if (imageProcessed)cvReleaseImage(&imageProcessed);How Eigenfaces can be used for Face Recognition:Now that you have a pre-processed facial image, you can perform Eigenfaces (PCA) for Face Recognition. OpenCV comes with the function "cvEigenDecomposite()", which performs the PCA operation, however you need a database (training set) of images for it to know how to recognize each of your people.So you should collect a group of preprocessed facial images of each person you want to recognize. For example, if you want to recognize someone from a class of 10 students, then you could store 20 photos of each person, for a total of 200 preprocessed facial images of the same size (say 100x100 pixels).The theory of Eigenfaces is explained in the two Face Recognition with Eigenface articles in Servo Magazine, but I will also attempt to explain it here.Use "Principal Component Analysis" to convert all your 200 training images into a set of "Eigenfaces" that represent the main differences between the training images. First it will find the "average face image" of your images by getting the mean value of each pixel. Then the eigenfaces are calculated in comparison to this average face, where the first eigenface is the most dominant face differences, and the second eigenface is the second most dominant face differences, and so on, until you have about 50 eigenfaces that represent most of the differences in all the training set images.In these example images above you can see the average face and the first and last eigenfaces that were generated from a collection of 30 images each of 4 people. Notice that the average face will show the smooth face structure of a generic person, the first few eigenfaces will show some dominant features of faces, and the last eigenfaces (eg: Eigenface 119) are mainly image noise. You can see the first 32 eigenfaces in the image below.Explanation of Face Recognition using Principal Component Analysis:To explain Eigenfaces (Principal Component Analysis) in simple terms, Eigenfaces figures out the main differences between all the training images, and then how to represent each training image using a combination of those differences.So for example, one of the training images might be made up of:(averageFace) + (13.5% of eigenface0) - (34.3% of eigenface1) + (4.7% of eigenface2) + ... + (0.0% of eigenface199).Once it has figured this out, it can think of that training image as the 200 ratios: {13.5, -34.3, 4.7, ..., 0.0}.It is indeed possible to generate the training image back from the 200 ratios by multiplying the ratios with the eigenface images, and adding the average face. But since many of the last eigenfaces will be image noise or wont contribute much to the image, this list of ratios can be reduced to just the most dominant ones, such as the first 30 numbers, without effecting the image quality much. So now its possible to represent all 200 training images using just 30 eigenface images, the average face image, and a list of 30 ratios for each of the 200 training images.Interestingly, this means that we have found a way to compress the 200 images into just 31 images plus a bit of extra data, without loosing much image quality. But this tutorial is about face recognition, not image compression, so we will ignore that :-)To recognize a person in a new image, it can apply the same PCA calculations to find 200 ratios for representing the input image using the same 200 eigenfaces. And once again it can just keep the first 30 ratios and ignore the rest as they are less important. It can then search through its list of ratios for each of its 20 known people in its database, to see who has their top 30 ratios that are most similar to the 30 ratios for the input image. This is basically a method of checking which training image is most similar to the input image, out of the whole 200 training images that were supplied. Implementing Offline Training:For implementation of offline training, where files are used as input and output through the command-line, I am using a similar method as the Face Recognition with Eigenface implementation in Servo Magazine, so you should read that article first, but I have made a few slight changes.Basically, to create a facerec database from training images, you create a text file that lists the image files and which person each image file represents.For example, you could put this into a text file called "4_images_of_2_people.txt":1 Shervindata\Shervin\Shervin1.bmp1 Shervindata\Shervin\Shervin2.bmp1 Shervindata\Shervin\Shervin3.bmp1 Shervindata\Shervin\Shervin4.bmp2 Chandandata\Chandan\Chandan1.bmp2 Chandandata\Chandan\Chandan2.bmp2 Chandandata\Chandan\Chandan3.bmp2 Chandandata\Chandan\Chandan4.bmpThis will tell the program that person 1 is named "Shervin", and the 4 preprocessedfacial photos of Shervin are in the "data\Shervin" folder, and person 2 is called "Chandan" with 4 images in the "data\Chandan" folder. The program can then loaded them all into an array of images using the function "loadFaceImgArray()". Note that for simplicity, it doesn't allow spaces or special characters in the person's name, so you might want to enable this, or replace spaces in a person's name with underscores (such as Shervin_Emami).To create the database from these loaded images, you use OpenCV's "cvCalcEigenObjects()" and "cvEigenDecomposite()" functions, eg:// Tell PCA to quit when it has enough eigenfaces.CvTermCriteria calcLimit = cvTermCriteria( CV_TERMCRIT_ITER, nEigens, 1);// Compute average image, eigenvectors (eigenfaces) and eigenvalues (ratios).cvCalcEigenObjects(nTrainFaces, (void*)faceImgArr, (void*)eigenVectArr, CV_EIGOBJ_NO_CALLBACK, 0, 0, &calcLimit,pAvgTrainImg, eigenValMat->data.fl);// Normalize the matrix of eigenvalues.cvNormalize(eigenValMat, eigenValMat, 1, 0, CV_L1, 0);// Project each training image onto the PCA subspace.CvMat projectedTrainFaceMat = cvCreateMat( nTrainFaces, nEigens, CV_32FC1 );int offset = projectedTrainFaceMat->step / sizeof(float);for(int i=0; i<nTrainFaces; i++) {cvEigenDecomposite(faceImgArr[i], nEigens, eigenVectArr, 0, 0,pAvgTrainImg, projectedTrainFaceMat->data.fl + i*offset);}You now have:the average image "pAvgTrainImg",the array of eigenface images "eigenVectArr[]" (eg: 200 eigenfaces if you used nEigens=200 training images),the matrix of eigenvalues (eigenface ratios) "projectedTrainFaceMat" of each training image.These can now be stored into a file, which will be the face recognition database. The function "storeTrainingData()" in the code will store this data into the file "facedata.xml", which can be reloaded anytime to recognize people that it has beentrained for. There is also a function "storeEigenfaceImages()" in the code, to generate the images shown earlier, of the average face image to "out_averageImage.bmp" and eigenfaces to "out_eigenfaces.bmp".Implementing Offline Recognition:For implementation of the offline recognition stage, where the face recognition system will try to recognize who is the face in several photos from a list in a text file, I am also using an extension of the Face Recognition with Eigenface implementation in Servo Magazine.The same sort of text file that is used for offline training can also be used for offline recognition. The text file lists the images that should be tested, as well as the correct person in that image. The program can then try to recognize who is in each photo, and check the correct value in the input file to see whether it was correct or not, for generating statistics of its own accuracy.The implementation of the offline face recognition is almost the same as offline training:The list of image files (preprocessed faces) and names are loaded into an array of images, from the text file that is now used for recognition testing (instead of training). This is performed in code by "loadFaceImgArray()".The average face, eigenfaces and eigenvalues (ratios) are loaded from the face recognition database file "facedata.xml", by the function "loadTrainingData()".Each input image is projected onto the PCA subspace using the OpenCV function "cvEigenDecomposite()", to see what ratio of eigenfaces is best for representing this input image.But now that it has the eigenvalues (ratios of eigenface images) to represent the input image, it looks for the original training image that had the most similar ratios. This is done mathematically in the function "findNearestNeighbor()" using the "Euclidean Distance", but basically it checks how similar the input image is to each training image, and finds the most similar one: the one with the least distance in Euclidean Space. As mentioned in the Servo Magazine article, you might get better results if you use the Mahalanobis space (define USE_MAHALANOBIS_DISTANCE in the code).The distance between the input image and most similar training image is used to determine the "confidence" value, to be used as a guide of whether someone wasactually recognized or not. A confidence of 1.0 would mean a good match, and a confidence of 0.0 or negative would mean a bad match. But beware that the confidence formula I use in the code is just a very basic confidence metric that isn't necessarily too reliable, but I figured that most people would like to see a rough confidence value. You may find that it gives misleading values for your images and so you can disable it if you want (eg: set the confidence always to 1.0).Once it knows which training image is most similar to the input image, and assuming the confidence value is not too low (it should be atleast 0.6 or higher), then it has figured out who that person is, in other words, it has recognized that person! Implementing Realtime Recognition from a Camera:It is very easy to use a webcam stream as input to the face recognition system instead of a file list. Basically you just need to grab frames from a camera instead of from a file, and you run forever until the user wants to quit, instead of just running until the file list has run out. OpenCV provides the 'cvCreateCameraCapture()' function (also known as 'cvCaptureFromCAM()') for this.Grabbing frames from a webcam can be implemented easily using this function:// Grab the next camera frame. Waits until the next frame is ready, and // provides direct access to it, so do NOT modify or free the returned image! // Will automatically initialize the camera on the first frame.IplImage* getCameraFrame(CvCapture* &camera){IplImage *frame;int w, h;// If the camera hasn't been initialized, then open it.if (!camera) {printf("Acessing the camera ...\n");camera = cvCreateCameraCapture( 0 );if (!camera) {printf("Couldn't access the camera.\n");exit(1);}// Try to set the camera resolution to 320 x 240.cvSetCaptureProperty(camera, CV_CAP_PROP_FRAME_WIDTH, 320);cvSetCaptureProperty(camera, CV_CAP_PROP_FRAME_HEIGHT, 240);// Get the first frame, to make sure the camera is initialized.frame = cvQueryFrame( camera );if (frame) {w = frame->width;h = frame->height;printf("Got the camera at %dx%d resolution.\n", w, h);}// Wait a little, so that the camera can auto-adjust its brightness.Sleep(1000); // (in milliseconds)}// Wait until the next camera frame is ready, then grab it.frame = cvQueryFrame( camera );if (!frame) {printf("Couldn't grab a camera frame.\n");exit(1);}return frame;}This function can be used like this:CvCapture* camera = 0; // The camera device.while ( cvWaitKey(10) != 27 ) { // Quit on "Escape" key.IplImage *frame = getCameraFrame(camera);...}// Free the camera.cvReleaseCapture( &camera );Note that if you are developing for MS Windows, you can grab camera frames twice as fast as this code by using the videoInput Library v0.1995 by Theo Watson. It uses hardware-accelerated DirectShow, whereas OpenCV uses VFW that hasn't changed in 15 years!Putting together all the parts that I have explained so far, the face recognition systemruns as follows:Grab a frame from the camera (as I mentioned here).Convert the color frame to greyscale (as I mentioned here).Detect a face within the greyscale camera frame (as I mentioned here).Crop the frame to just show the face region (using cvSetImageROI() and cvCopyImage()).Preprocess the face image (as I mentioned here).Recognize the person in the image (as I mentioned here).Implementing Online Training from a Camera:Now you have a way to recognize people in realtime using a camera, but to learn new faces you would have to shutdown the program, save the camera images as image files, update the training images list, use the offline training method from the command-line, and then run the program again in realtime camera mode. So in fact, this is exactly what you can do programmatically to perform online training from a camera in realtime!So here is the easiest way to add a new person to the face recognition database from the camera stream without shutting down the program:Collect a bunch of photos from the camera (preprocessed facial images), possibly while you are performing face recognition also.Save the collected face images as image files onto the hard-disk using cvSaveImage().Add the filename of each face image onto the end of the training images list file (the text file that is used for offline training).Once you are ready for online training the new images (such as once you have 20 faces, or when the user says that they are ready), you "retrain" the database from all the image files. The text file listing the training image files has the new images added to it, and the images are stored as image files on the computer, so online training works just like it did in offline training.But before retraining, it is important to free any resources that were being used, and re-initialize the variables, so that it behaves as if you shutdown the program and restarted. For example, after the images are stored as files and added to the training list text file, you should free the arrays of eigenfaces, before doing the equivalent of offline training (which involves loading all the images from the training list file, then findingthe eigenfaces and ratios of the new training set using PCA).This method of online training is fairly inefficient, because if there was 50 people in the training set and you add one more person, then it will train again for all 51 people, which is bad because the amount of time for training is exponential with more users or training images. But if you are just dealing with a few hundred training images in total then it shouldn't take more than a few seconds.Download OnlineFaceRec:The software and source-code is available here (open-source freeware), to use on Windows, Mac, Linux, iPhone, etc as you wish for educational or personal purposes, but NOT for commercial, criminal-detection, or military purposes (because this code is way too simple & unreliable for critical applications such as criminal detection, and also I no longer support any military).Click here to download "OnlineFaceRec" for Windows: onlineFaceRec.zip(0.07MB file including C/C++ source code, VS2008 project files and the compiled Win32 program, created 4th Feb 2012).Click here to download "OnlineFaceRec" for Linux: onlineFaceRec_Linux.zip(0.003MB file including C/C++ source code and a compiled Linux program, created 30th Dec 2011).If you dont have the OpenCV 2.0 SDK then you can just get the Win32 DLLs and HaarCascade for running this program (including 'cvaux200.dll' and 'haarcascade_frontalface_alt.xml'): onlineFaceRec_OpenCVbinaries.7z (1.7MB 7-Zip file).And if you want to run the program but dont have the Visual Studio 2008 runtime installed then you can just get the Win32 DLLs ('msvcr90.dll', etc): MS_VC90_CRT.7z (0.4MB 7-Zip file).To open Zip or 7z files you can use the freeware 7-Zip program (better than WinZip and WinRar in my opinion) from HERE.The code was tested with MS Visual Studio 2008 using OpenCV v2.0 and on Linux with GCC 4.2 using OpenCV v2.3.1, but I assume it works with other versions & compilers fairly easily, and it should work the same in all versions of OpenCV before v2.2. Students also ported this code to Dev-C++ athttps:///projects/facerec/.There are two different ways you can use this system:As a realtime program that performs face detection and online face recognition from a web camera.As a command-line program to perform offline face recognition using text files, just like the eigenface program in Servo Magazine.How to use the realtime webcam FaceRec system:If you have a webcam plugged in, then you should be able to test this program by just double-clicking the EXE file in Windows (or compile the code and run it if you are using Linux or Mac). Hit the Escape key on the GUI window when you want to quit the program.After a few seconds it should show the camera image, with the detected face highlighted. But at first it wont have anyone in its face rec database, so you will need to create it by entering a few keys. Beware that to use the keyboard, you have to click on the DOS console window before typing anything (because if the OpenCV window is highlighted then the code wont know what you typed).In the console window, hit the 'n' key on your keyboard when a person is ready for training. This will add a new person to the facerec database. Type in the person's name (without any spaces) and hit Enter.It will begin to automatically store all the processed frontal faces that it sees. Get a person to move their head around a bit until it has stored about 20 faces of them. (The facial images are stored as PGM files in the "data" folder, and their names are appended to the text file "train.txt").Get the person in front of the camera to move around a little and move their face a little, so that there will be some variance in the training images.Then when you have enough detected faces for that person, ideally more than 30 for each person, hit the 't' key in the console window to begin training on the images that were just collected. It will then pause for about 5-30 seconds (depending on how many faces and people are in the database), and finally continue once it has retrained with the extra person. The database file is called "facedata.xml".It should print the person's name in the console whenever it recognizes them. Repeat this again from step 1 whenever you want to add a new person, even after you have shutdown the program.。

人脸识别课件(英文)


CIS 788v04 Zhu
Apparence Model: Landmarks on a face
D.H. Ballard, "Generaling the Hough transform to detect arbitrary shapes", (in handbook). P. Viola and M. Jones, "Robust Real Time Object Detection", F. Fleuret and D. Geman, " Coarse-to-fine face detection", IJCV 41(1/2),2001. M.H. Yang, D. Kriegman, N. Ahuja, “Detecting faces in images, a survey”, PAMI vol.24,no.1, January, 2002.
CIS 788v04 Zhu
Face Detection Methods [5]
TTH 1:30-2:48 Winter 01-02 DL266
/~szhu/cis788_2002/
CIS 788v04 Zhu
Face vs non-face Clsutering
2.
Modeling and Photorealistic Synthesis:
Appearance models, deformable templates, lighting models, facial action units, face hallucination (high resolution from low resolution), pose adjustment, image editing (removing wrinkles, eye glass, red-eye etc.)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽工业大学工商学院毕业设计(论文)外文文献翻译基于Visual C++的图像检测模块设计毕业设计(论文)题目翻译(1)题目基于PAC的实时人脸检测和跟踪方法翻译(2)题目基于半边脸的人脸检测系仪器仪表专业测控技术与仪器姓名吴凡班级仪0941学号091844035指导教师李丹译文一基于PAC的实时人脸检测和跟踪方法1摘要:这篇文章提出了复杂背景条件下,实现实时人脸检测和跟踪的一种方法。

这种方法是以主要成分分析技术为基础的。

为了实现人脸的检测,首先,我们要用一个肤色模型和一些动作信息(如:姿势、手势、眼色)。

然后,使用PAC技术检测这些被检验的区域,从而判定人脸真正的位置。

而人脸跟踪基于欧几里德(Euclidian)距离的,其中欧几里德距离在位于以前被跟踪的人脸和最近被检测的人脸之间的特征空间中。

用于人脸跟踪的摄像控制器以这样的方法工作:利用平衡/(pan/tilt)平台,把被检测的人脸区域控制在屏幕的中央。

这个方法还可以扩展到其他的系统中去,例如电信会议、入侵者检查系统等等。

1.引言视频信号处理有许多应用,例如鉴于通讯可视化的电信会议,为残疾人服务的唇读系统。

在上面提到的许多系统中,人脸的检测喝跟踪视必不可缺的组成部分。

在本文中,涉及到一些实时的人脸区域跟踪[1-3]。

一般来说,根据跟踪角度的不同,可以把跟踪方法分为两类。

有一部分人把人脸跟踪分为基于识别的跟踪喝基于动作的跟踪,而其他一部分人则把人脸跟踪分为基于边缘的跟踪和基于区域的跟踪[4]。

基于识别的跟踪是真正地以对象识别技术为基础的,而跟踪系统的性能是受到识别方法的效率的限制。

基于动作的跟踪是依赖于动作检测技术,且该技术可以被分成视频流(optical flow)的(检测)方法和动作—能量(motion-energy)的(检测)方法。

基于边缘的(跟踪)方法用于跟踪一幅图像序列的边缘,而这些边缘通常是主要对象的边界线。

然而,因为被跟踪的对象必须在色彩和光照条件下显示出明显的边缘变化,所以这些方法会遭遇到彩色和光照的变化。

此外,当一幅图像的背景有很明显的边缘时,(跟踪方法)很难提供可靠的(跟踪)结果。

当前很多的文献都涉及到的这类方法时源于Kass et al.在蛇形汇率波动[5]的成就。

因为视频情景是从包含了多种多样噪音的实时摄像机中获得的,因此许多系统很难得到1Do-Joon Jung, Chang-Woo Lee, Yeon-Chul Lee, Sang-Yong Bak, Jong-Bae Kim, Hyun Kang, Hang-Joon Kim. International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC'02)可靠的人脸跟踪结果。

许多最新的人脸跟踪的研究都遇到了最在背景噪音的问题,且研究都倾向于跟踪未经证实的人脸,例如臂和手。

在本文中,我们提出了一种基于PCA 的实时人脸检测和跟踪方法,该方法是利用一个如图1所示的活动摄像机来检测和识别人脸的。

这种方法由两大步骤构 成:人脸检测和人脸跟踪。

利用两副连续的帧,首先检验人脸的候选区域,并利用PCA 技术来判定真正的人脸区域。

然后,利用特征技术(eigen -technique ) 跟踪被证实的人脸。

2.人脸检测在这一部分中,将介绍本文提及到的方法中的用于检测人脸的技术。

为了改进人脸检测的精确性,我们把诸如肤色模型[1,6]和PCA [7,8]这些已经发表的技术结合起来。

2.1肤色分类检测肤色像素提供了一种检测和跟踪人脸的可靠方法。

因为通过许多视频摄像机得到的一幅RGB 图像不仅包含色彩还包含亮度,所以这个色彩空间不是检测肤色像素[1,6]的最佳色彩图像。

通过亮度区分一个彩色像素的三个成分,可以移动亮度。

人脸的色彩分布是在一个小的彩色的色彩空间中成群的,且可以通过一个2维的高斯分部来近似。

因此,通过一个2维高斯模型可以近似这个肤色模型,其中平均值和变化如下: m=(r ,g ) 其中r =N 1∑=N i ri 1,g =N 1∑=N i gi 1(1) ∑=⎥⎦⎤⎢⎣⎡σσσσ (2) 一旦建好了肤色模型,一个定位人脸的简单方法是匹配输入图像来寻找图像中人脸的色彩群。

原始图像的每一个像素被转变为彩色的色彩空间,然后与该肤色模型的分布比较。

2.2动作检测虽然肤色在特征的应用种非常广泛,但是当肤色同时出现在背景区域和人的皮肤区域时,肤色就不适合于人脸检测了。

利用动作信息可以有效地去除这个缺点。

为了精确,在肤色分类后,仅考虑包含动作的肤色区域。

结果,结合肤色模型的动作信息导出了一幅包含情景(人脸区域)和背景(非人脸区域)的二进制图像。

这幅二进制图像定义为 ,其中It(x,y)和It-1(x,y)分别是当前帧和前面那帧中像素(x,y )的亮度。

St 是当前帧中肤色像素的集合,(斯坦)t 是利用适当的阈限技术计算出的阈限值[9]。

作为一个加速处理的过程,我们利用形态学(上)的操作(morpholoical operations )和连接成分分析,简化了图像Mt 。

2.3利用PCA 检验人脸因为有许多移动的对象,所以按序跟踪人脸的主要部分是很困难的。

此外,还需要检验这个移动的对象是人脸还是非人脸。

我们使用特征空间中候选区域的分量向量来为人脸检验问题服务。

为了减少该特征空间的维度,我们把N 维的候选人脸图像投影到较低维度的特征空间,我们称之为特征空间或人脸空间[7,8]。

在特征空间中,每个特征说明了人脸图像中不同的变化。

为了简述这个特征空间,假设一个图像集合I 1,I 2,I 3,…,I M ,其中每幅图像是一个N 维的列向量,并以此构成人脸空间。

这个训练(测试)集的平均值用A =M 1∑=Mi Ii 1来定义。

用φi =I I -A 来计算每一维的零平均数,并以此构成一个新的向量。

为了计算M 的直交向量,其中该向量是用来最佳地描述人脸图像地分布,首先,使用C =M 1∑=Mi 1φi φi r =YY r (4)来计算协方差矩阵Y =[φ 1φ2…φ M ]。

虽然矩阵C 是N ×N 维的,但是定义一个N 维的特征向量和N 个特征值是个难处理的问题。

因此,为了计算的可行性,与其为C 找出特征向量,不如我们计算[Y T Y]中M 个特征向量v k 和特征值λk ,所以用u k =k Y λvk*来计算一个基本集合,其中k =1,…,M 。

关于这M 个特征向量,选定M 个重要的特征向量当作它们的相应的最大特征值。

对于M 个训练(测试)人脸图像,特征向量W i =[w 1,w 2,…,w M ’]用w k =u k T φi ,k=1,…,M (6)来计算。

为了检验候选的人脸区域是否是真正的人脸图像,也会利用公式(6)把这个候选人脸区域投影到训练(测试)特征空间中。

投影区域的检验是利用人脸类和非人脸类的检测区域内的最小距离,通过公式(7)来实现的。

Min (||W k candidate -W face ||,||W k candidate -W nonface ||),(7)其中W k candidate 是训练(测试)特征空间中对k 个候选人脸区域,且W face ,W nonface 分别是训练(测试)特征空间中人脸类和非人脸类的中心坐标,而||×||表示特征空间中的欧几里德距离(Euclidean )3.人脸跟踪在最新的人脸检测中,通过在特征空间中使用一个距离度量标准来定义图像序列中下一幅图像中被跟踪的人脸。

为了跟踪人脸,位于被跟踪人脸的特征向量和K 个最近被检测的人脸之间的欧几里德距离是用obj =arg k min||W old -W k ||,k =1,…,K ,(8)来计算的。

在定义了人脸区域后,位于被检测人脸区域的中心和屏幕中心之间的距离用dist t (face ,screen )=Face t (x ,y )-Screen (height/2,width/2),(9)来计算,其中Face t (x ,y )是时间t 内被检测人脸区域的中心,Screen (height/2,width/2)是屏幕的中心区域。

使用这个距离向量,就能控制摄像机中定位和平衡/倾斜的持续时间。

摄像机控制器是在这样的方式下工作的:通过控制活动摄像机的平和/倾斜平台把被检测的人脸区域保持在屏幕的中央。

在表2自己品母国。

参数表示的是活动摄像机的控制。

用伪代码来表示平衡/倾斜处理的持续时间和摄像机的定位。

计算平和/倾斜持续时间和定位的伪代码:Procedure Duration (x ,y )BeginSig d =None ; Distance=22y x +;IF distance>close θ thenSig d =Close ;θthenELSEIF distance>farSig d=fat;Return(Sig d);End Duration;Procedure Orientation(x,y)BeginSig o=None;IF x>xθthenAdd “RIGHT” to Sig o;ELSEIF x<-xθthenAdd “LEFT” to Sig o;IF y>yθthenAdd “up”to Sig o;ElSEIF x<-yθthenAdd “DOWN” to Sig o;Return(Sig o);End Orientation;4.结论本文中提议了一种基于PAC的实时人脸检测和跟踪方法。

被提议的这种方法是实时进行的,且执行的过程分为两大部分:人脸识别和人脸跟踪。

在一个视频输入流中,首先,我们利用注入色彩、动作信息和PCA这类提示来检测人脸区域,然后,用这样的方式跟踪人脸:即通过一个安装了平衡/请求平台的活动摄像机把被检测的人脸区域保持在屏幕的中央。

未来的工作是我们将进一步发展这种方法,通过从被检测的人脸区域种萃取脸部特征来为脸部活动系统服务。

参考文献[1] Z. Guo, H. Liu, Q. Wang, and J. Yang, “A Fast Algorithm of Face Detection for Driver Monitoring,” In Proceedings of the Sixth International Conference on Intelligent Systems Design and Applications, vol.2, pp.267 - 271, 2001.[2] M. Yang, N. Ahuja, “Face Detection and Gesture Recognition for Human-Computer Interaction,” The International Series in Video Computing , vol.1, Springer, 2001.[3] Y. Freund and R. E. Schapire, “A Decision-Theoretic Generaliztion of On-Line Learning and an Application to Boosting,” Journal of Computer and System Sciences, no. 55, pp. 119-139, 1997.[4] J. I. Woodfill, G. Gordon, R. Buck, “Tyzx DeepSea High Speed Stereo Vision System,” In Proceedings of the Conference on Computer Visi on and Pattern Recognition Workshop, pp.41-45, 2004.[5] Xilinx Inc., “Virtex-4 Data Sheets: Virtex-4 Family Overview,” Sep. 2008. DOI= /[6] Y. Wei, X. Bing, and C. Chareonsak, “FPGA implementation of AdaBoost algorithm for detection of face biometrics,” In Proceedings of IEEE International Workshop Biomedical Circuits and Systems, page S1, 2004.[7] M. Yang, Y. Wu, J. Crenshaw, B. Augustine, and R. Mareachen, “Face detection for automatic exposure control in handheld camera,” In Proce edings of IEEE international Conference on Computer Vision System, pp.17, 206.[8] V. Nair, P. Laprise, and J. Clark, “An FPGA-based people detection system,” EURASIP Journal of Applied Signal Processing, 2005(7), pp. 1047-1061, 2005 [9] C. Gao and S. Lu, “Novel FPGA based Haar classifier face detection algorithm acceleration,” In Proceedings of International Conference on Field Programmable Logic and Applications, 2008.外文原文一PCA-Base Real-Time Face Detection and Tracking1【Abstract】:This article put forward complicated background term next; realize solid contemporaries face examination with on the trail of a kind of method. These kinds of method regard main composition analysis technique as basal. Facial examination in person for realizing, first, we want to use a skin color model to act the information with the some (such as: Posture, signal, expression of eyes).Then, the usage PAC technique examines these drive the district that examine, from but judge a real position. But person's face follows according to the is several in the virtuous (Euclidian) distance of, among them the is several to reign in the virtuous distance in past drive on the trail of person's face with recent drive the person who examine the characteristic space inside of the a. Useding for a for following resembles the controller the work in such way: Make use of equilibrium/ tilt to one side (pan/ tilt) the terrace, examine drive of person a district controls at hold the act central. This method cans also expand to go to in the other system, for example telecommunication meeting, invader check system etc.1 prefaceSeeing the signal of handles many applications, for example owing to the communication can see the telecommunication meeting that turn, for disable and sick person service of the lips reads the system. In up many systems that mention, the facial examination in person drink to follow to see to can't lack necessarily of constitute the part. In this text, involve the some solid of person a district follows the [1 -3 ] .By any large, according to follow the angle different, can is divided in to follow the method two types. Reach a the part of people follows person's face is divided into according to identify on the trail of to drink according to act of on the trail of, but other a the part of people then follows person's face is divided into according to edge of on the trail of with on the trail of [that according to district 4].According to the on the trail of that identify is really with the object identifies technique is basal, but follow the function of the system is the restrict of the efficiency to suffer to identify the method. According to the on the trail of of the action is a method to depend on to examine the technique in the action, and that technique can be been divided in to see flow( optical flow) with the method that act the —energy( motion -energy).1 Do-Joon Jung, Chang-Woo Lee, Yeon-Chul Lee, Sang-Yong Bak, Jong-Bae Kim, Hyun Kang, Hang-Joon Kim. International Technical Conference on Circuits/Systems, Computers and Communications (ITC-CSCC'02)According to the method of the edge useds for the edge that follow a picture preface row, but these edgeses is usually the boundary line of the main object.However, because were musted shine on with the light at the color by the on the trail of object the term descends to display the obvious edge changes, so these methodses will fall among the color with the variety that light shine on.In addition, be a background of picture contain very obvious edge,( follow the method) dependable result in very difficult offering.Current this type of method that a lot of cultural heritages all involve come from the Kass et al.In the snake form rate of exchange motion [ 5 the achievement of ]s.Because see the scene of to acquire from included various the noise of varieties solid the hour the resemble the machine of, therefore many systems is very rare to dependable person's face to follow the result.Many latest a research for followings met most problem in background noise, and the research inclines toward person's face that follow has not yet the proof, for example arm with hand.In this text, we put forward a kind of according to PCA solid contemporaries an examination with follow the method, that method is an activity to make use of a,such as figure,1 show resemble machine to examine with identify the person facial.This kind of method from two greatest steps composing:Person an examination with person's face follow.Make use of two continuouses, examine a person's face candidate for election districts first, combine exploitation PCA technique to judge the real person a district.Then, make use of the characteristic technique( eigen - technique) follow to confirmed person's face.2 Person an examinationIn this first part, will introduce the method that this text mention inside of used for the technique that examine person's face.For improves an accurate for examining, we announce such as the skin color model [ 1,6 ] with PCA [ 7,8 ] these already of the technique knot puts together.2.1 skin color classificationThe examination skin color pixel provides a kind of examination with follow the facial and dependable method in person.Because pass many that sees the machine resemble a RGB picture not only include color but also gets bright degree in containment, so this color space is not the best color to examine the skin color pixel[ 1,6 ] picture.Pass bright a three compositions for distinguishing analyse a color pixel, can move bright degree.A Gauss for of color distributing is in a small chromatic color space large groupsly, and can passing first 2 cent department to look like.Therefore, pass a 2 Gauss models can look like this skin color model, among them average value with change as follows: m=(r ,g ) 其中r =N 1∑=N i ri 1,g =N 1∑=Ni gi 1 (1)∑=⎥⎦⎤⎢⎣⎡σσσσ (2) Once set up to like the skin color model, a positions facial and simple method in person is match the importation picture to look for facial color in middleman in picture cluster.Each a pixel of the primitive picture were changed into the chromatic color space, then distributing with the skin color's model the comparison.2.2 action examinationAlthough the skin color application in characteristic grows very extensive, when the skin color appear at the same time in the background district with the person's skin district, skin color is not suitable for in the person an examination.Making use of to act information can away with this weakness availably.For the sake of the precision, after the skin color divides into section, consider the skin color district of the containment action only.Result, the action information of the combination skin color model leads a binary system for a containment scene( person's a district) with background( not person's a district) picture.This binary system picture definition is, among them It( x, y)With the It-1( x, y) respectively is a bright degree for with front an inside pixel( x, y).The St is a current an inside skin color pixel to gather, the t is a worth [ in limit in to makes use of appropriate limit technique compute 9 ] .The acceleration that be used as a process handles, we make use of the operation( morpholoical operations) that appearance learn( top) with link the composition analyzes, simplifying the picture Mt.2.3 make use of the PCA examine person's faceThere is many ambulatory objects, so follow in sequence the facial and main part in person is very difficult.In addition, return the demand examine this ambulatory object is person's face or not person's face.We uses characteristic space inside the weight vector of the candidate for election district to behave face examination problem service.For reducing that characteristic the spatial a candidate for, we N a picture casts shadow the characteristic space of the lower the degree of , we call it as characteristic space or persons a space [ 7,8 ] .In characteristic space, each characteristic explained the different variety in inside in a picture in person.Say this characteristic space for the sake of Chien, suppose a picture gather the I1, I2, I3, … , IM, among them each picture is the row vector of a N , and with this composing person a space.The average value that this training( test) gather uses the A= e the i= the I I - A computes the zero average number of each , and with this composing a new vector.For computing the M keep handing over vector, among them that vector is to uses to come to describe the person best a picture grounddistribute, first, the usage C= i ir= YYr(4) compute to help the square and bad matrix Y the =[1 2 …Ms].Although matrix C is characteristic vector that N ×N of, define a N is a difficult processed problem with the N a characteristic value.Therefore, for the sake of calculating possibility, with its finds out the characteristic vector for the C, not equal to we compute the [ YTY] the inside M a characteristic vector vk with the worth k in characteristic, so use the u k the = compute a basic gather, among them k=1, …, M.As for this M a characteristic vector, make selection an important characteristic vector regard as their homologous and biggest characteristic value.Trains( test) the person a picture to the of M, characteristic vector W i the =[ w 1, w 2, …, w M'] uses the = u kT i, k= of w k 1, …, the M(6) computes.For the sake of the person of the examination candidate for election whether a district is a real person or not a picture, also will make use of the formula(6) cast shadow the training( test) characteristic space inside to this candidate a district.Examination that cast shadow the district is a minimum distance to makes use of a person's face with not person's face examination district inside, passing the formula(7) come to something to realizes.Min(|| Wkcandidate -Wface||,|| Wkcandidate -Wnonface||),(7) among them the Wkcandidate is to trains( test) the characteristic space inside to the k a candidate a district, and Wface, Wnonface respectively is training( test) characteristic space middleman face with not person's face center sit the mark, but|| ×|| mean the characteristic in the space several in virtuous distance( Euclidean)3.Person's face followsIn latest person an examination, pass to use a distance generous character standard to define the picture preface row in characteristic space inside a picture inside drive on the trail of person's face.For following a person's face, locate to is followed a person's face the characteristic vector is recent to is examined with the of K of person the of the an is several in the virtuous distance is to uses the obj= argkmin|| Wold -Wk||, k=1, …, K,(8) compute of.After defining the person a district, locate to is examined person the center of a district with distance that hold the act center uses the distt( face, screen)= Facet( x, y) -Screen( height/2, width/2),(9) compute, among them Facet( x, y)The that time a t inside were examined the person the center of a district, the Screen( height/2, width/2) is a center to hold the act e this distance vector, can control the resemble to position in the machine with equilibrium/ tilt to one side of continuously time.The resembles the machine controller is what under such way work:Pass to control the activity resemble the machine even with/ tilt to one side the terrace examines drive of person a district keeps at hold the act central.In the table 2 oneself article mother country.What parameter mean is a control that activity resemble the machine.Mean with the false code equilibrium/ tilts to one side to handlecontinuously time resemble the fixed position of the machine with .The calculation is even with/ tilt to one side keep on time with the false code that position:Procedure Duration (x ,y )BeginSig d =None ; Distance=22y x +;IF distance>close θ thenSig d =Close ;ELSEIF distance>far θ thenSig d =fat ;Return (Sig d );End Duration ;Procedure Orientation (x ,y )BeginSig o =None ;IF x>x θ thenAdd “RIGHT ” to Sig o ;ELSEIF x<-x θ thenAdd “LEFT ” to Sig o ;IF y>y θ thenAdd “up ”to Sig o ;ElSEIF x<-y thenAdd “DOWN” to Sig o;Return(Sig o);End Orientation;4.ConclusionIt suggested in this text a kind of according to PAC solid contemporaries face examination with follow method.Were been a solid hour to proceed by this kind of method that suggest of, and the executive process is divided into two big part:Person's face identifies to follow with person's face.In first saw input flow, first, we make use of the infusion color, action the information is this type of to hint to examine the person a district with the PCA, then, use such way follow person's face:Passed a gearing namely equilibrium/ request the activity of the terrace resemble the machine examines drive of person a district keeps at hold the act central.The future work is a person who we will further develop this kind of method, passing from is examined a district grow to extract a characteristic to serve for a movable system..REFERENCES[1] Z. Guo, H. Liu, Q. Wang, and J. Yang, “A Fast Algorithm of Face Detection for Driver Monitoring,” In Proceedings of the Sixth International Conference on Intelligent Systems Design and Applications, vol.2, pp.267 - 271, 2001.[2] M. Yang, N. Ahuja, “Face Detect ion and Gesture Recognition for Human-Computer Interaction,” The International Series in Video Computing , vol.1, Springer, 2001.[3] Y. Freund and R. E. Schapire, “A Decision-Theoretic Generaliztion of On-Line Learning and an Application to Boosting,” Jo urnal of Computer and System Sciences, no. 55, pp. 119-139, 1997.[4] J. I. Woodfill, G. Gordon, R. Buck, “Tyzx DeepSea High Speed Stereo Vision System,” In Proceedings of the Conference on Computer Vision and Pattern Recognition Workshop, pp.41-45, 2004.[5] Xilinx Inc., “Virtex-4 Data Sheets: Virtex-4 Family Overview,” Sep. 2008. DOI= /[6] Y. Wei, X. Bing, and C. Chareonsak, “FPGA implementation of AdaBoost algorithm for detection of face biometrics,” In Proceedings of IEEE Internati onal Workshop Biomedical Circuits and Systems, page S1, 2004.[7] M. Yang, Y. Wu, J. Crenshaw, B. Augustine, and R. Mareachen, “Face detection for automatic exposure control in handheld camera,” In Proceedings of IEEEinternational Conference on Computer Vision System, pp.17, 206.[8] V. Nair, P. Laprise, and J. Clark, “An FPGA-based people detection system,” EURASIP Journal of Applied Signal Processing, 2005(7), pp. 1047-1061, 2005 [9] C. Gao and S. Lu, “Novel FPGA based Haar classifier face detection algo rithm acceleration,” In Proceedings of International Conference on Field Programmable Logic and Applications, 2008.译文二基于半边脸的人脸检测2概要:图像中的人脸检测是人脸识别研究中一项非常重要的研究分支。

相关文档
最新文档