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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for filter_faceblur-1.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8c78f78fb42af97e61eb6da2c748fc4dbafc18ae2f22c82a7ce99ab42ce066aa
MD5 9da561b7b9d0d4da3ac7a595418bd45e
BLAKE2b-256 a6c37d9ff6f08c4752386f709059a59a007ebfc5e44be139704c57d6e43b195f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.4.5 This release

1 file

1.4.4

1 file

1.4.3

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