svjack's picture
Upload folder using huggingface_hub
d015578 verified

A newer version of the Gradio SDK is available: 4.37.2

Upgrade

Face Video-Analyzer Framework

This demo application provides a general framework for tracking, detecting and extracting features of human faces in images or videos. Currently, the following tools are integrated in a video-demo available at ./spiga/demo/app.py:

  • Tracking:
    • FaceTracker : RetinaFace + SORT.
    • Detectors:
      • RetinaFace (bbox + 5 landmarks).
        • Backbone Mobilenet 0.25.
        • Backbone Resnet50.
    • Associators:
      • SORT: Frame by frame
  • Extractors:
    • SPIGA architecture
      • Features: Landmarks and headpose.
      • Datasets: 300W Public, 300W Private, WFLW, MERLRAV.
  • Viewers:
    • Landmarks, headpose and bbox (score + face_id).

Demo Application

python ./spiga/demo/app.py \
            [--input] \      # Webcam ID or Video Path. Dft: Webcam '0'.
            [--dataset] \    # SPIGA pretrained weights per dataset. Dft: 'wflw'.
            [--tracker] \    # Tracker name. Dft: 'RetinaSort'.
            [--show] \       # Select the attributes of the face to be displayed. Dft: ['fps', 'face_id', 'landmarks', 'headpose']
            [--save] \       # Save record.
            [--noview] \     # Do not visualize window.
            [--outpath] \    # Recorded output directory. Dft: './spiga/demo/outputs'
            [--fps] \        # Frames per second.
            [--shape] \      # Visualizer shape (W,H).

Code Structure

The demo framework has been organised according to the following structure:

./spiga/demo/
| app.py                            # Video-demo
|
└───analyze                                  
│   | analyzer.py                   # Generic video/image analyzer compositor
│   │
│   └───features                    # Object/Faces classes
│   │
│   └───track                       # Task heads 
│   |   | tracker.py                # Tracker class         
│   |   | get_tracker.py            # Get model tracker from zoo by name
│   |   └─── retinasort             # RetinaFace + SORT tracker (tracker + zoo files)
|   |
|   └───extract
|       | processor.py              # Processor classes
|       └ spiga_processor.py        # SPIGA wrapper
|   
└───visualize
|   | viewer.py                     # Viewer manager
|   | plotter.py                    # Englobe available features drawers
|   └─── layouts                    # Landmarks, bbox, headpose drawers
|
└───utils                           # Video converters