Skip to content

Commit 9e872a9

Browse files
committed
feat(example): extract example as png files
1 parent dedfde8 commit 9e872a9

15 files changed

+48
-1
lines changed

README.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,12 @@ preserved is the choice of signs.
8484
howpublished={\url{https://github.com/sign-language-processing/pose-anonymization}},
8585
year={2024}
8686
}
87-
```
87+
```
88+
89+
90+
| Sign | Original | Anonymized | Transferred |
91+
|--------|--------------------------------------------|------------------------------------------------|--------------------------------------------------|
92+
| Kleine | ![kleine](figures/example/original/kleine.png) | ![kleine](figures/example/anonymized/kleine.png) | ![kleine](figures/example/interpreter/kleine.png) |
93+
| Kinder | ![kinder](figures/example/original/kinder.png) | ![kinder](figures/example/anonymized/kinder.png) | ![kinder](figures/example/interpreter/kinder.png) |
94+
| Essen | ![essen](figures/example/original/essen.png) | ![essen](figures/example/anonymized/essen.png) | ![essen](figures/example/interpreter/essen.png) |
95+
| Pizza | ![pizza](figures/example/original/pizza.png) | ![pizza](figures/example/anonymized/pizza.png) | ![pizza](figures/example/interpreter/pizza.png) |

assets/example/anonymized/essen.png

31.6 KB
Loading

assets/example/anonymized/kinder.png

29.4 KB
Loading

assets/example/anonymized/kleine.png

29.8 KB
Loading

assets/example/anonymized/pizza.png

32.6 KB
Loading

assets/example/interpreter/essen.png

31.1 KB
Loading

assets/example/interpreter/kinder.png

29 KB
Loading

assets/example/interpreter/kleine.png

30.6 KB
Loading

assets/example/interpreter/pizza.png

33.8 KB
Loading

assets/example/original/essen.png

32.4 KB
Loading

assets/example/original/kinder.png

29 KB
Loading

assets/example/original/kleine.png

31.4 KB
Loading

assets/example/original/pizza.png

33.5 KB
Loading

scripts/create_example.sh

+15
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ ffmpeg -i assets/example/original/kinder.mp4 assets/example/original/kinder.gif
1414
ffmpeg -i assets/example/original/essen.mp4 assets/example/original/essen.gif -y
1515
ffmpeg -i assets/example/original/pizza.mp4 assets/example/original/pizza.gif -y
1616

17+
python ./scripts/extract_middle_frame.py --pose=assets/example/original/kleine.pose --output=assets/example/original/kleine.png
18+
python ./scripts/extract_middle_frame.py --pose=assets/example/original/kinder.pose --output=assets/example/original/kinder.png
19+
python ./scripts/extract_middle_frame.py --pose=assets/example/original/essen.pose --output=assets/example/original/essen.png
20+
python ./scripts/extract_middle_frame.py --pose=assets/example/original/pizza.pose --output=assets/example/original/pizza.png
21+
1722
rm assets/example/original/kleine.mp4
1823
rm assets/example/original/kinder.mp4
1924
rm assets/example/original/essen.mp4
@@ -36,6 +41,11 @@ ffmpeg -i assets/example/anonymized/kinder.mp4 assets/example/anonymized/kinder.
3641
ffmpeg -i assets/example/anonymized/essen.mp4 assets/example/anonymized/essen.gif -y
3742
ffmpeg -i assets/example/anonymized/pizza.mp4 assets/example/anonymized/pizza.gif -y
3843

44+
python ./scripts/extract_middle_frame.py --pose=assets/example/anonymized/kleine.pose --output=assets/example/anonymized/kleine.png
45+
python ./scripts/extract_middle_frame.py --pose=assets/example/anonymized/kinder.pose --output=assets/example/anonymized/kinder.png
46+
python ./scripts/extract_middle_frame.py --pose=assets/example/anonymized/essen.pose --output=assets/example/anonymized/essen.png
47+
python ./scripts/extract_middle_frame.py --pose=assets/example/anonymized/pizza.pose --output=assets/example/anonymized/pizza.png
48+
3949
rm assets/example/anonymized/kleine.mp4
4050
rm assets/example/anonymized/kinder.mp4
4151
rm assets/example/anonymized/essen.mp4
@@ -57,6 +67,11 @@ ffmpeg -i assets/example/interpreter/kinder.mp4 assets/example/interpreter/kinde
5767
ffmpeg -i assets/example/interpreter/essen.mp4 assets/example/interpreter/essen.gif -y
5868
ffmpeg -i assets/example/interpreter/pizza.mp4 assets/example/interpreter/pizza.gif -y
5969

70+
python ./scripts/extract_middle_frame.py --pose=assets/example/interpreter/kleine.pose --output=assets/example/interpreter/kleine.png
71+
python ./scripts/extract_middle_frame.py --pose=assets/example/interpreter/kinder.pose --output=assets/example/interpreter/kinder.png
72+
python ./scripts/extract_middle_frame.py --pose=assets/example/interpreter/essen.pose --output=assets/example/interpreter/essen.png
73+
python ./scripts/extract_middle_frame.py --pose=assets/example/interpreter/pizza.pose --output=assets/example/interpreter/pizza.png
74+
6075
rm assets/example/interpreter/kleine.mp4
6176
rm assets/example/interpreter/kinder.mp4
6277
rm assets/example/interpreter/essen.mp4

scripts/extract_middle_frame.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import argparse
2+
3+
from pose_format import Pose
4+
from pose_format.pose_visualizer import PoseVisualizer
5+
6+
7+
def main(pose_path: str, output_path: str):
8+
with open(pose_path, 'rb') as pose_file:
9+
pose = Pose.read(pose_file.read())
10+
middle_frame = pose.body.data.shape[0] // 2
11+
pose.body = pose.body[middle_frame:middle_frame + 1]
12+
13+
vis = PoseVisualizer(pose)
14+
frame = next(vis.draw(background_color=(255, 255, 255)))
15+
vis.save_frame(output_path, frame)
16+
17+
18+
if __name__ == "__main__":
19+
parser = argparse.ArgumentParser(description='Extract middle frame from a pose file')
20+
parser.add_argument('--pose', type=str, help='Path to the pose file')
21+
parser.add_argument('--output', type=str, help='Path to the output file')
22+
args = parser.parse_args()
23+
24+
main(args.pose, args.output)

0 commit comments

Comments
 (0)