Ask Your Question

Differentiate between a face and a photo of a face using static images.

asked 2020-03-17 02:16:04 -0500

stepovr gravatar image

Is there any way to extract features from an image that can help me distinguish between the two. I'm trying to accomplish this without making an ML model.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2020-03-17 10:13:36 -0500

phillity gravatar image

updated 2020-03-17 11:04:20 -0500

If you google "face anti-spoofing" or "liveness detection," you will see many articles and research papers which try to accomplish this task. There also looks to be a lot of open source code you can try out online

Face anti-spoofing/liveness detection can be thought of as a binary classification task (i.e. does a given image or video stream contain a genuine face or not). This isn't my research area, but I would assume there are two main routes you can take

  1. Motion approach: make user blink or move in a way which convinces you that they are real. This will likely involve ML models to detected the desired action in a video stream

  2. Feature approach: extract useful features from an image/video stream frames (might require the camera captures depth information in addition to color) and use the features to make a classification decision. This will almost certainly involve ML models to extract features and perform the final classification

There are probably hybrid approaches as well. Based on your static image constraint, (2) is probably where you want to start

edit flag offensive delete link more



The approaches that you've mentioned mostly are used for video based biometrics. There's a segment of face anti spoofing techniques known as print attack where an image of the face is used to trick the biometric. But i couldn't find any model/dataset specifically for a case where the face is compared to a static image. That's what I had researched so far, but I'll still go through with your recommendations and try to find something.

stepovr gravatar imagestepovr ( 2020-03-17 14:33:58 -0500 )edit

Based on your description, something like (2) is what you're going to need. If you deal with static images you are going to need to extract some features (maybe using ML or traditional CV technique) then use a binary classifier to determine if it is a valid facial image or one involving spoofing (including the print attack you mention)

Furthermore, I disagree. (2) is not really a video-based approach. Please look closely at the tutorial and consider the logic of what he is doing. He is taking each frame in the training videos as static images. Then he uses the resulting images to train an ML model. You could substitute those video frame images with any images that fit your preference, and the overall workflow would be the same

phillity gravatar imagephillity ( 2020-03-18 05:22:28 -0500 )edit

(2) becomes a video-based approach if the features of multiple sequential frames are used together in order to make a single binary classification decision

phillity gravatar imagephillity ( 2020-03-18 05:35:18 -0500 )edit

Question Tools

1 follower


Asked: 2020-03-17 02:16:04 -0500

Seen: 470 times

Last updated: Mar 17 '20