Skip to main content

A Python CLI-Tool and package to pixelate or blur faces in images and videos.

Project description

Welcome to PixelateMe 👋

Your Python package for anonymising faces in images and videos

License: MIT

This CLI tool lets you pixelate, blur or remove faces from videos and images. GPU acceleration supported


Original image from unsplash.com by Susan G. Komen 3-Day

Original video from pexels.com by fauxels

⚡️ Quickstart

📥 Install

pip install pixelateme

With GPU support (additionally installs onnxruntime-gpu:

pip install pixelateme[gpu]

▶️ Run

After installation, pip registers a shortcut binary which can be called like this:

pixelateme --mode blur FOLDER_OR_FILES

This will create a new pixelated folder to hold all the pixelated files.

📝 Custom code

To use this package in your own code, you can import the main module. This module exports a run method that accepts all CLI arguments as parameters.

from pixelateme.main import run

run(path=["FILE_PATHS"])

🎯 Features

  • Different anonymisation modes: pixelate, blur and color
  • GPU acceleration
  • Preview of currently processed files
  • Face Recognition to blur only certain faces or all faces except certain ones
  • ONNXRT and OpenCV run-time backend
  • Process multiple files in parallel

💻 CLI Arguments

  • --suffix: Filename suffix of processed files. Default:
  • --output (-o): Output directory for processed files. Default: ./pixelated
  • --mode (-m): Mode of anonymization. Default: pixelate
  • --threshold (-t): Threshold for detected faces (higher means more confidence). Default: 0.5
  • --backend: Desired backend (e.g. opencv or onnxrt). Auto prefers onnxrt and falls back to opencv. Default: auto
  • --only-blur-this-faces: Folder containing images of faces (one face per image) that should be considered for anonymisation. All other faces will not be anonymised. Default: None
  • --blur-except-this-faces: Folder containing images of faces (one face per image), which should be ignored for anonymization. Default: None
  • --ellipse: Uses ellipses as form for anonymization. Default is rectangle
  • --blur-strength: Defines how "blurry" a face will be. Only working with --mode "blur". Default: 3
  • --pixelate-size: Amount of pixelation effect. The lower the value, the harder it is to recognise the face. Default: 16
  • --deepface-similarity: The maximum similarity between two faces. A higher value means that more faces are considered equal. Only working in combination with --blur-except-this-faces or --only-blur-this-faces. Default: 0.4
  • --preview: Enable preview of the currently processed image. No preview is default
  • --face-recognition-size: Image size to use for face detection. Format: WxH (e.g. 720x480). Default: None
  • --maximum-face-recognition-size: Maximum number of pixels of the longest side for face detection. Images larger than this will be downscaled for face recognition. This doesn't affect output resolution. Default: 640
  • --multiprocessing: Enable multiprocessing to process files in videos. Useful when anonymizing multiple large videos. Disabled by default
  • --parallel-processes: Number of parallel processes. Only works with --multiprocessing enabled. Default: 4

👏 Acknowledgements

  • deface: Deface was one of my inspirations for this package and the implementation of CenterFace.
  • CenterFace: Used for face detection
  • DeepFace: Used for face recognition
  • ONNX: Face detection backend
  • OpenCV: Face detection backend, used for I/O and face anonymisation (blur, pixelation and color)

👥 Author

👤 Marius Butz

⭐️ Show your support

  • Give a ⭐️ star if this project helped you!
  • Create a 🍴 fork and contribute by fixing bugs or adding features

Project details


Download files

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

Source Distribution

PixelateMe-0.3.2.tar.gz (7.0 MB view details)

Uploaded Source

Built Distribution

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

PixelateMe-0.3.2-py3-none-any.whl (7.0 MB view details)

Uploaded Python 3

File details

Details for the file PixelateMe-0.3.2.tar.gz.

File metadata

  • Download URL: PixelateMe-0.3.2.tar.gz
  • Upload date:
  • Size: 7.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for PixelateMe-0.3.2.tar.gz
Algorithm Hash digest
SHA256 d3dc1e17bef4586e9efa986e723355eabe404f82c683f2c5639e55a518a45b6f
MD5 4890195d16142c22bcf2d6b9dfc78ffb
BLAKE2b-256 6b25d6e5c978e4881ead39cdfff6884e2d45ef4088205df1abee792cc675191a

See more details on using hashes here.

File details

Details for the file PixelateMe-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: PixelateMe-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for PixelateMe-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 11ce2e2a2b3d0b70fe7152ff75dcc551122d3ed2c06b8b2dd51d4d19ab5aeeac
MD5 be7eaa963dd4e0c2fada6d173df86c0e
BLAKE2b-256 ef757c13f9b11feefc024cc893797a1acdee51b33c2ea3ba2de46965ad5a88d5

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