Skip to main content

FaceGuard

PyPI version Docker Version License: Apache 2.0

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. yunet is the only supported detector. The legacy haar and dnn values were retired in the OpenCV 5 upgrade (their cv2 backends were removed) and now fall back to yunet with a deprecation warning.
FILTER_BLURRER_NAME gaussian Blur algorithm: gaussian, box, or median
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
FILTER_YUNET_SHA256 unset Optional SHA-256 (hex) of the YuNet ONNX. When set, the downloaded or cached file is verified before use; mismatch raises and removes the file so the next attempt re-downloads.

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

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.4.3-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for filter_faceblur-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 21e367c3dfdf330e4181e4c95772ddc87ed80d09e548abc892500875798b6330
MD5 fe2a580701e099d080c61609f745f045
BLAKE2b-256 dcd05bec3e3e5307ffbf71d0ab374edafb2a8837ae887da6efb7a85f3659263c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.4.5

1 file

1.4.4

1 file

This release

1.4.3 This release

1 file

1.4.2

1 file

1.4.1

1 file

1.4.0

1 file

1.3.0

1 file

1.2.0

1 file

1.1.10

1 file

1.1.4

1 file

1.1.3

1 file

1.1.2

1 file

1.1.1

1 file

Supported by

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