Remove identifying information from sign language poses
Project description
Pose Anonymization
Remove identifying information from sign language poses
Usage
pip install git+https://github.com/sign-language-processing/pose-anonymization
To anonymize a pose sequence:
anonymize_pose --input="example.pose" --output="example_anonymized.pose" [--appearance="specific_signer.pose"]
The --appearance option allows to transfer the pose sequence to a specific signer's appearance.
(This is useful for models trained on specific signers.)
In python:
from pose_format import Pose
from pose_anonymization.appearance import remove_appearance
with open("example.pose", "rb") as f:
pose = Pose.read(f.read())
anonymized_pose = remove_appearance(pose)
Methods
Appearance Based Anonymization (Naive)
Currently implemented in this repository.
Using the mean of sign language poses calculated by
sign-language-processing/sign-vq,
we can anonymize a pose sequence by assuming the first frame is only the appearance of the person,
and remove it from the rest of the frames, then add the mean.
(Example generated using ./scripts/create_example.sh, transferred to assets/example/interpreter.pose)
| Sign | Original___ | Anonymized_ | Transferred |
|---|---|---|---|
| Kleine | |||
| Kinder | |||
| Essen | |||
| Pizza |
Information Theoretic Perfect Anonymization
This is not yet implemented in this repository.
There exists identifying information in every sign language utterance. From appearance, to prosody, movement pattern, and choice of signs.
Therefore, if we want to remove all identifying information, we need to remove all information. However we can decide on a tradeoff between privacy and utility, and remove all information except for the choice of signs.
Pipeline approach:
sign-language-processing/segmentationcan be used to segment the pose into individual signs.sign-language-processing/signwriting-transcriptioncan be used to transcribe the individual signs into SignWriting.sign-language-processing/signwriting-animationcan be used to animate the SignWriting back into poses.sign-language-processing/fluent-pose-synthesiscan be used to synthesize fluent utterances from the anonymized poses.
This pipeline guarantees anonymization from an information theoretic perspective, as the only information that is preserved is the choice of signs.
Citing this work
@misc{moryossef2024anonymization,
title={pose-anonymization: Remove identifying information from sign language poses},
author={Moryossef, Amit},
howpublished={\url{https://github.com/sign-language-processing/pose-anonymization}},
year={2024}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pose_anonymization-0.0.1.tar.gz.
File metadata
- Download URL: pose_anonymization-0.0.1.tar.gz
- Upload date:
- Size: 58.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c625fce7563b16803593a63f9b57cf98022982e64a17e3dbd3e93dbe87fff6f4
|
|
| MD5 |
fe0941a7814da6cc0b72152932543f45
|
|
| BLAKE2b-256 |
d11a4dee9c080abcdf63140b78c5356a7502333e48745e70589cfb2e40aad002
|
Provenance
The following attestation bundles were made for pose_anonymization-0.0.1.tar.gz:
Publisher:
release.yaml on sign-language-processing/pose-anonymization
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pose_anonymization-0.0.1.tar.gz -
Subject digest:
c625fce7563b16803593a63f9b57cf98022982e64a17e3dbd3e93dbe87fff6f4 - Sigstore transparency entry: 895269722
- Sigstore integration time:
-
Permalink:
sign-language-processing/pose-anonymization@db60cabecc22ecf73879d02903edb61ebbca9ffd -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/sign-language-processing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@db60cabecc22ecf73879d02903edb61ebbca9ffd -
Trigger Event:
release
-
Statement type:
File details
Details for the file pose_anonymization-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pose_anonymization-0.0.1-py3-none-any.whl
- Upload date:
- Size: 57.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18f1a63ba5f981d25aa2e253ecff0a6a3ced924dc5f3876cd33e257012a3ba09
|
|
| MD5 |
ac714871068e3a0217fae748fcc136e9
|
|
| BLAKE2b-256 |
fcad517f90e4eedaafefe52a0bfff37d9f6afbec64713c7fdd85b4c1014605f3
|
Provenance
The following attestation bundles were made for pose_anonymization-0.0.1-py3-none-any.whl:
Publisher:
release.yaml on sign-language-processing/pose-anonymization
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pose_anonymization-0.0.1-py3-none-any.whl -
Subject digest:
18f1a63ba5f981d25aa2e253ecff0a6a3ced924dc5f3876cd33e257012a3ba09 - Sigstore transparency entry: 895269777
- Sigstore integration time:
-
Permalink:
sign-language-processing/pose-anonymization@db60cabecc22ecf73879d02903edb61ebbca9ffd -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/sign-language-processing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@db60cabecc22ecf73879d02903edb61ebbca9ffd -
Trigger Event:
release
-
Statement type: