Skip to main content

No project description provided

Project description

FaceGuard

FaceGuard is a computer vision filter that automatically detects and blurs faces in video streams using OpenCV's YuNet face detection model. Perfect for privacy-conscious applications that need real-time face anonymization.

Demo

Here are some examples of FaceGuard in action:

Face Blur Demo 1 Face Blur Demo 2 Face Blur Demo 3

Quick Start

The easiest way to run FaceGuard is using the provided usage script:

# Basic usage with default settings
python scripts/filter_usage.py

# Custom video input
VIDEO_INPUT="./data/your-video.mp4" python scripts/filter_usage.py

# Custom configuration
FILTER_DETECTION_CONFIDENCE_THRESHOLD=0.3 FILTER_BLUR_STRENGTH=2.0 python scripts/filter_usage.py

Environment Variables

The filter can be configured using environment variables:

Variable Default Description
VIDEO_INPUT ./data/video-01.mp4 Input video file path
OUTPUT_VIDEO_PATH ./output/{input_name}_blurred.mp4 Output video file path
OUTPUT_FPS 30 Output video frames per second
WEBVIS_PORT 8000 Port for Webvis visualization
FILTER_DETECTOR_NAME yunet Face detector type
FILTER_BLURRER_NAME gaussian Blur algorithm type
FILTER_BLUR_STRENGTH 1.0 Blur intensity
FILTER_DETECTION_CONFIDENCE_THRESHOLD 0.25 Minimum confidence for face detection
FILTER_DEBUG False Enable debug logging
FILTER_FORWARD_UPSTREAM_DATA True Forward data from upstream filters
FILTER_INCLUDE_FACE_COORDINATES True Include face coordinates in frame data

Viewing Results

After running the filter, you can view the results at:

  • Webvis: http://localhost:8000 - Real-time video stream
  • Output Video: Check the ./output/ directory for the processed video file

Documentation

For detailed information about configuration options, performance tuning, and advanced usage, see the comprehensive documentation.

Features

  • Real-time Face Detection: Uses OpenCV's YuNet model for accurate face detection
  • Configurable Blurring: Adjustable blur strength and detection sensitivity
  • Rich Metadata: Face coordinates, confidence scores, and detection details
  • Environment Variable Configuration: No command-line arguments needed
  • Upstream Data Forwarding: Passes through data from other filters
  • Debug Mode: Optional logging for development and troubleshooting

Install

To install the filter and its dependencies:

# Create and activate virtual environment
virtualenv venv
source venv/bin/activate

# Install the filter
make install

Run locally

To run the filter locally:

make run

Then navigate to http://localhost:8000 to see the video stream.

Run in Docker

Build and run the filter in Docker:

# Build the Docker image
make build-image

# Run the filter
make run-image

Navigate to http://localhost:8000 to view the video stream.

Testing

Run the test suite:

make test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filter_faceblur-1.1.2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file filter_faceblur-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for filter_faceblur-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 134f67a29dd7f14a82e3792f8688d213c7b45584a9ac0b966bef0a9d0ee31804
MD5 8df14624c50d09ddbaf0c9dd27e3a8cf
BLAKE2b-256 464d303ec9df8f2cad2d7de1dab537f68e868ffa561f45871516369104af9335

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page