Skip to content
forked from cquest/sgblur

"Speed Gonzales" blurring API for the Panoramax project

License

Notifications You must be signed in to change notification settings

GearKite/sgblur

 
 

Repository files navigation

Panoramax "Speedy Gonzales" Blurring Algorithm

This repository only contains the blurring algorithms and API.

It is based on YOLOv8 for object detection (faces and license plates) using a custom trained model.

Blurring is done on original JPEG pictures by manipulating low-level MCU in the JPEG raw data, to keep all other parts of the original image unchanged (no decompression/recompression). This also saves CPU usage.

Install

System dependencies

These dependencies are needed for lossless JPEG transformations :

  • turbojpeg library and headers
  • exiftran

You can install them through your package manager, for example in Ubuntu:

sudo apt install libturbojpeg0-dev libjpeg-turbo-progs exiftran

Basic dependencies may also need:

sudo apt install git python-is-python3 python3-pip

Running on a GPU will requires NVidia drivers and Cuda.

Retrieve code

You can download code from this repository with git clone:

git clone https://github.com/cquest/sgblur.git
cd sgblur/

Other dependencies

We use Pip to handle Python dependencies. You can create a virtual environment first:

python -m venv env
source ./env/bin/activate

Install python dependencies for the API:

pip install -r requirements.txt

To use the CLI install these dependencies too:

pip install -r requirements-cli.txt

Usage

Web API

The Web API can be launched with the following command:

uvicorn src.api:app --reload

It is then accessible on localhost:8000.

A single picture can be blurred using the following HTTP call (here made using curl):

# Considering your picture is called original.jpg
curl -X 'POST' \
  'http://127.0.0.1:8000/blur/' \
  -F 'picture=@original.jpg' \
  --output blurred.jpg

Exemple using httpie :

http --form POST http://127.0.0.1:8000/blur/ picture@original.jpg --download --output blurred.jpg

A demo API is running on https://api.cquest.org/blur/

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

You might want to read more about available blur algorithms.

License

Copyright (c) GeoVisio/panoramax team 2022-2023, released under MIT license.

About

"Speed Gonzales" blurring API for the Panoramax project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages

  • Python 48.0%
  • HTML 48.0%
  • Shell 2.0%
  • Dockerfile 2.0%