Skip to main content

face-projection

Teaser

Are you looking for a powerful, user-friendly tool to project information onto faces while maintaining their natural structure? Look no further – face-projection is here to simplify how you visualize facial data. The tool is open-source, easy to use, and written in Python, allowing you to easily integrate it into your existing workflow. We try to keep the dependencies to a minimum so you can use them in your projects without worrying about compatibility issues. However, we do not guarantee perfect anatomical correctness of the results but try to keep the distortion to a minimum.

All people shown here in the repository examples were generated with StableDiffusion (Prompt: A professional portrait photo of a person directly looking <emotion> at the camera, white background, photoshop, Instagram)

Installation

The tool is available on PyPI.

pip install face-projection

Usage

The tool reduces the overhead of projecting information onto faces to a minimum. Load the data and face, project it, and you are done. You must only ensure the data is inside the canonical face model (see electromyogram for an example). The head pose can be arbitrary, but the face must be visible.

import face_projection as fp
from PIL import Image

image_face = np.asarray(Image.open("face.jpg").convert("RGB"))
image_data = np.asarray(Image.open("data.jpg").convert("RGB"))

warper = fp.Warper()
warped = warper.apply(image_face, image_data, beta=0.2)

We automatically detect the face in the image, compute the landmarks based on the Blaze model, and warp the data onto it. You can decide how much of the underlying face should be visible by adjusting the beta parameter.

In examples/ you can find a more detailed example, which generates the teaser image.

Future Work

We have many ideas for future work, but we are also happy to hear your suggestions. The following todos are in no particular order but should give you an idea of what we are planning.

  • The user can provide a mask to turn off certain parts of the projection
  • Different default warpings based on the six default Ekman emotions
  • More face models
  • Custom face models
  • Upgrade to the newest mediapipe version to avoid MacOS build issues

Citation

If you use our work, please cite our paper:

under publication, so coming soon :^)

Metadata

Release files for face-projection 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for face-projection 1.1.1
File Size Uploaded Provenance Actions
face-projection-1.1.1.tar.gz 4.1 MB Without provenance Details for face-projection-1.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for face-projection 1.1.1
File Interpreter ABI Platform Actions
face_projection-1.1.1-py3-none-any.whl Python 3 none any Details for face_projection-1.1.1-py3-none-any.whl

Total release size: 4.2 MB

Release files / face-projection-1.1.1.tar.gz

Download URL face-projection-1.1.1.tar.gz
Size 4.1 MB
Tags Source
SHA-256 checksum
How to use checksums
9ec1ee03379b5d49ad29f185e9dfdf18d974d89266ec1d977325c69337185a94
BLAKE2b-256 checksum
How to use checksums
0c17d2f833d1c6ebcb204a98cfabfad086fcee3378dc9997e3b0701c4e9a1a3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / face_projection-1.1.1-py3-none-any.whl

Download URL face_projection-1.1.1-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8235988125bc2fe99555fdac43ac8f00124a254a3078c0c03f313506ff07d2f
BLAKE2b-256 checksum
How to use checksums
896c3884f2c5d5384e7cc0b40a7dc0516782e0a095dc89e7687d92e3f434c5a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Security for face-projection 1.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page