Code Monkey home page Code Monkey logo

littleantispoof's Introduction

LittleAntispoof

This project has been developed for the Multimodal Interaction course at Sapienza University of Rome (2021-22).

Project report | Project presentation

By Davide Quaranta and Federico Cernera.


LittleAntispoof is a multimodal face liveness detection module that can be used in the context of face anti-spoofing.

The system uses a challenge-response interaction style, composed of gaze verification, emotion verification, speech verification, and eye blinking check.

Specifically, recognition attempts that must be checked for liveness, will pass though the following phases, in a random order:

  • Gaze challenge: the user is asked to look towards a certain direction, randomly chosen.
  • Emotion challenge: the user is asked to provide an emotion-distorted face expression (e.g. happy face), randomly chosen.
  • Speech challenge: the user is asked to pronounce a randomly chosen phrase.

During challenges, the user's eye blinking rate is also checked, in order to determine whether it is within a configured one.

littleantispoof's People

Contributors

davquar avatar fedecerno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

littleantispoof's Issues

Improve gaze detection

The gaze/blink detection doesn't work so well (e.g. if your eye is still for some time, it "forgets" the gaze and becomes None). Find if it can be tuned, or find another library.

Add support for speech recognition

The system should ask the user to say a certain short phrase, randomly generated from a dictionary.

For this we need:

  • Another Tkinter window to guide the task.
  • A (short, for now) dictionary of phrases.
  • Logic to handle the whole operation.

The window should also be timed, as described in #2

Make the video windows timed

Instead of having the "Shoot" button, the windows must have a visible timer (e.g. 3 seconds), after which:

  • the frame is captured
  • a sound is played (to help the user understand that the task is over)

Playsound says that is is relying on another subprocess

Playsound says a thing that is unexpected:

playsound is relying on another python subprocess. Please use `pip install pygobject` if you want playsound to run more **efficiently.**

(also, the installation of pygobject failed on my system, so I cannot see the difference)

Find:

  • why it happens
  • if it is a problem
  • how to solve it

Improve prompt texts

Instead of just the plain task name, write something more.

Examples:

  • "left" ==> "Look left"
  • "happy" ==> "Do an happy face"

Add eye blinking detection

While a video operation is running (gaze, emotion), there should be a background blinking check.

In other words, there should be a certain ratio of blinks while the video window is open (configurable).

Convert eye blinking ratio check to consider seconds

The following config must be converted to seconds instead of frame ratios.

"blinking": {
        "min_threshold": 0.2,
        "max_threshold": 0.5
    },

Possible strategy:

  • the callback function to Window must count the total number of analyzed frames
  • you already know the window expiration time
  • you calculate how many frame you have in 1 second
  • you check whether the number of blinks is in the configured seconds range

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.