Facial Recognition 101: Use Cases and How It Works
Of the many ways that artificial intelligence can be applied, few have caused more stir than facial recognition. While there are some reservations over this technology, on its own, facial recognition is nothing to fear. With no will of its own, it is much like other tools developed by humanity, i.e. only as harmful as the way we choose to wield it.
Below, Lambert Wixson, Clarifai’s Head of Applied Machine Learning, will offer some clarity on the subject. With his guidance, you will learn the basics of how this application of AI works.
What is facial recognition?
Facial recognition is the ability for an algorithm to take images from a camera, detect faces in those images, and compare each face to a database of people so that it can identify the person.
It's important to note that there are several distinct use cases for face recognition.
Use Case #1: Face Verification
In some applications, you may already know the subject's identity. For example, at an ATM, a person may have their identity confirmed through facial recognition after inserting their card. In this case, the technology is just comparing the captured image with a model of the card owner's face to see whether the faces match. The same situation occurs with using your face to unlock your phone. Essentially, the algorithm doesn't have to compare the captured face against a population of faces from different people, just against the card or phone owner's face.
Use Case #2: Closed-set Face Recognition
This use case arises when you know that all the face images that will be presented to the algorithm are from people that are in your database. That is, there will be no faces from "unknown" subjects, so the algorithm can avoid having to say "this face is not in the database." This might occur, for example, if you are working with a set of archival images like portraits of world leaders in a particular year, where you are guaranteed to know all the subjects in the photos.
Use Case #3: Open-set Face Recognition
This is the most general, and hardest, use-case for this technology. In this situation, the algorithm must take a face image and either identify whether it matches with a specific person from its database or declare, "This face is not in the database." Many factors can affect the difficulty of a recognition scenario.
A key question for developers using this technology is to decide what angle subjects’ faces will be. For instance, will the subject always be facing the camera, or does the algorithm also have to work when the subject is looking away from the camera like when the subject's face is in profile? The angle the subject's face makes with the camera is called yaw. If a face is looking straight at the camera, it has a yaw of 0. By contrast, a face in profile view has yaw of 90 degrees. The more you can constrain the yaw in your application, the more reliable face recognition can be.
How does facial recognition work?
Typically, a face recognition algorithm is divided into stages, organized as a pipeline from one stage to the next. We will call this the detect > align > extract pipeline. Each stage is explained below:
Stage 1: Face Detection Module
The face detection module’s job is to find each face in an image. It doesn't have to associate each face with a specific person, it just needs to find all the faces.
Stage 2: Alignment Module
An alignment module takes a detected face and normalizes it to a frame of reference. For example, if the person's head is cocked to one side, the alignment module may try to estimate this "roll" and rotate the face image so that it is vertical.
Stage 3: Feature Extractor
The facial extractor is a deep neural network (a type of artificial neural network) that takes the normalized image and computes a set of feature responses to characterize the face. This network is often trained in advance by the user, using databases of hundreds of thousands to millions of images.
Stage 4: Vectors and Match Metrics
To build your database for the population of people in your application, you must take multiple images of each person. Ideally, these images capture the person in a variety of facial expressions and rotations. For each of these images, you will then run them through the detect > align > extract pipeline, so that each face is reduced to a set of feature responses. Typically these feature responses are stored in the database, in an ordered list called a vector.
Once the database has been constructed, many algorithms also learn a "match metric." This tells them how to compare the vector of one face image to the vector of another. Others use predefined match metrics. The ideal match metric assigns high matching scores to face vectors from the same person, and low scores when it compares two face vectors that come from different people.
To summarize, in operation, a facial recognition algorithm works as follows:
- A newly-captured image is run through the detect > align > extract pipeline.
- Its resulting feature vector is then compared, using the match metric, to the feature vectors for each image in the database. (Additional data structures can be used to avoid having to check every image in the database which can be slow if the database holds many individuals.)
- The closest-matching face in the database is then chosen as the identity.
Note: If the match score is lower than the pre-defined threshold, the algorithm declares the face to be unknown.
When it comes to building a facial recognition system, deep learning can be used to build some or all of the stages mentioned above. In some cases, deep learning may also be used to combine some adjacent stages (e.g. alignment and extraction) into an all-in-one network. The exact details depend on the size of the training set, the computational requirements of the platform where the recognizer is to be run once deployed, and the types of variation in face images that are likely to arise in the desired application.
相關推薦
Facial Recognition 101: Use Cases and How It Works
Of the many ways that artificial intelligence can be applied, few have caused more stir than facial recognition. While there are some reservations over thi
What is Caching and How it Works
The Internet of Things is a concept behind gathering and delivering information from a device and the physical world via device sensors to the
Best practices, how-tos, use cases, and internals from Cloudera Engineering and the community
One instance of Cloudera Manager (CM) can manage N clusters. In the current Role Based Access Control (RBAC) model, CM users hold privileges and permi
What is Web Application Architecture? How It Works, Trends, Best Practices and More
som put type ruby async sin porting whole ldb At Stackify, we understand the amount of effort that goes into creating great applications.
The Basics of Artificial Intelligence and How it will Change Banking
Artificial Intelligence is a field of computer science that consists of the construction of intelligent machines that are put into operation through comput
Examples, Best Use Cases and the Future
Chatbots in Banking — Examples, Best Use Cases and the FutureIn today’s day and age, it’s our bankers, more than anyone else, who have taken Socrates’ advi
What is NPS? And why you should know how it works
NPS, therefore ranges from -100 to +100.It looks complicated, but it is very easy and it will be explained below.The calculations:In the example below, the
Bitcoin Liquidity: How It Can Hurt You, and How It Can Help You
Imagine you’re watching the 15-minute chart of Bitcoin on your favorite exchange. All the signals in your trading strategy are indicating the price of Bitc
Memory Tagging and how it improves C/C++ memory safety
Memory safety in C and C++ remains largely unresolved. A technique usually called “memory tagging” may dramatically improve the situation i
Ask HN: What are the spreadsheet use cases and pain points in your SAAS app
Excel / csv uploads are commonly used to get data into a saas app, is this a burden to implement for you?Do you use spreadsheets as part of workflows as we
[翻譯]Hystrix wiki–How it Works
執行命令 文檔翻譯 inter borde 團隊開發 最大值 器) 替代 響應 註:本文並非是精確的文檔翻譯,而是根據自己理解的整理,有些內容可能由於理解偏差翻譯有誤,有些內容由於是顯而易見的,並沒有翻譯,而是略去了。本文更多是學習過程的產出,請盡量參考原官方文檔。 流程圖
ethereum-gas-how-it-works-翻譯
本文的目的 理解gas如何工作對於有興趣參與以太坊ICO、使用智慧合約、以及哪怕是最簡單的兩個錢包的交易的所有使用者來說都是非常關鍵的。在本文中,我希望能向大家解釋清楚gas是什麼,以及它如何運轉。你可以跳轉到結尾直接檢視總結。開始之前,我們需要先明白
用擴充套件和包含來構造用例 - Structuring Use Cases with Extend and Include
什麼是用例圖? 用例描述了一個演員和感興趣的系統之間的一系列互動,以達到某種特定目標,並由某種觸發事件引發。用例滿足需求或為演員解決問題。用例圖包含一組用例,可以通過從每個角色的不同角度講述系統將如何使用的“故事”來開發。 用例圖指南 確保每個用例都能滿足可觀察的使用者目標 用例圖沒
What Is an Internet Switch and How Does It Work?
The Internet switch, since its birth, has been growing rapidly not only in function but also in performance. Experts have researched and developed gen
What Is ACL (Access Control List) and How to Configure It?
Though the robust network promotes the connectivity among people at every comer of the globe, we may not enjoy its convenience or gain the information
How to use *args and **kwargs in Python
這篇文章寫的滿好的耶,結論: 1星= array, 2星=dictionary. 1星範例: def test_var_args(farg, *args): print "formal arg:", farg for arg in args: print "an
Why (and how) to use eslint in your project
Why (and how) to use eslint in your projectThis story was written by Sam Roberts, a Senior Software Engineer at IBM Canada. It was first published in IBM d
bcr vidcast 112: Machine learning and how we will deal with it
Welcome to the Better Communication Results vidcast, edition 112. In today's edition, we find: SAP Analytics Cloud has published a useful intro to AI. Au
Presidential alert: Why did Trump just text me about a 'test of the National Wireless Emergency Alert System' and how does it wo
Donald Trump is texting everyone in the US the exact same message. "THIS IS A TEST of the National Wireless Emergency Alert System," the message will begin
An introduction to Generative Art: what it is, and how you make it
An introduction to Generative Art: what it is, and how you make itMandelbrot’s Fractal is derived from a deceptively simple equationGenerative art can be a