Coder Social home page Coder Social logo

identimood / littleantispoof Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 3.05 MB

A multimodal face liveness detection module that can be used in the context of face anti-spoofing

Python 100.00%
blink-detection deepface emotion-recognition gaze-detection gaze-estimation gaze-tracking multimodal-interactions

littleantispoof's Introduction

IdentiMood

IdentiMood is an authentication system based on face verification and mood recognition, which has been developed as final project for the Biometric Systems course at Sapienza University of Rome, held by Prof. Maria De Marsico (2021-22).

How it works

Enrollment

img

Verification

img

Use case example

img

Running example

img

System design

img

Evaluation

The evaluation can be reproduced by executing the scripts in the benchmarks directory.

See the report/presentation for further information and detailed results.

How to run

  1. Install the requirements from requirements.txt.
  2. Tweak src/config.json as desired.
  3. Execute src/enroll.py to perform enrollment.
  4. Execute src/main.py to authenticate.

Authors

littleantispoof's People

Contributors

davquar avatar fedecerno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

littleantispoof's Issues

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).

Improve prompt texts

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

Examples:

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

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)

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.

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

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

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.