diff --git a/floppies/giulia/README b/floppies/giulia/README index aec7f25..30c18c8 100644 --- a/floppies/giulia/README +++ b/floppies/giulia/README @@ -1,7 +1,16 @@ -Author: Slavoj Žižek -Date: 1989 -Title: The Sublime Object of Floppy +Author: Giulia de Giovanelli +Date: 2017 +Title: Adopt A Walk Description: -And so on, and so on, and so on. +By stealing the walk of another person do I become someone else? + +This is an audio-guide of an experiment of gait analysis, +If you never heard about this term, gait analysis is the study of patterns of walk during ambulation used by new surveillance biometric technologies. +People are asked to walk following a series of spoken instructions. The walks are stored temporarily on a page where you’re invited to “adopt a walk” of another person. + +“Have you ever tried to look at the way a person walk as a way to identify her? +Surveillance technologies are using the homogenic perception of human being as a model for their mechanics.” + +With this experiment you’re invited to observe characteristic of walks your similar and adopt them. Try to imagine that in modifying your walk you could escape from detection of your identity. \ No newline at end of file diff --git a/floppies/giulia/cgi-bin/index.cgi b/floppies/giulia/cgi-bin/index.cgi index 58897ba..09197c3 100755 --- a/floppies/giulia/cgi-bin/index.cgi +++ b/floppies/giulia/cgi-bin/index.cgi @@ -19,10 +19,10 @@ for f in ff: items[t][ext] = f items = [items[key] for key in sorted(items, reverse=True)] -for i in items[1:]: +for i in items[10:]: for f in i.items(): print "deleting ", f - + # 10 os.unlink(f) # dump the data (debugging) # print "Content-type: text/plain" # print "" @@ -34,29 +34,40 @@ print "" print Template(u""" ADOPT A WALK - + - -
-

head

- -

+ +
+ +
+ +
+ +
+

Here you can find footage of your walks.

+
+ + + +
+

Steal a walk from another person's video. Download it.

+
- {% for i in items %} -
- {% endfor %} -
+
+

Promise me, you're gonna start using this walk for the rest of the day.

+
+ + + + +
+ {% for i in items %} + +

{{i.mp4}}

+ {% endfor %} +
- + """).render(items=items).encode("utf-8") \ No newline at end of file diff --git a/floppies/giulia/fonts/sporting_grotesque_gras.otf b/floppies/giulia/fonts/sporting_grotesque_gras.otf new file mode 100755 index 0000000..4883626 Binary files /dev/null and b/floppies/giulia/fonts/sporting_grotesque_gras.otf differ diff --git a/floppies/giulia/fonts/sporting_grotesque_normal.otf b/floppies/giulia/fonts/sporting_grotesque_normal.otf new file mode 100755 index 0000000..184f37b Binary files /dev/null and b/floppies/giulia/fonts/sporting_grotesque_normal.otf differ diff --git a/floppies/giulia/images/background.png b/floppies/giulia/images/background.png new file mode 100644 index 0000000..201ed75 Binary files /dev/null and b/floppies/giulia/images/background.png differ diff --git a/floppies/giulia/images/camera.png b/floppies/giulia/images/camera.png new file mode 100644 index 0000000..183f930 Binary files /dev/null and b/floppies/giulia/images/camera.png differ diff --git a/floppies/giulia/images/cover.png b/floppies/giulia/images/cover.png new file mode 100644 index 0000000..b8c539e Binary files /dev/null and b/floppies/giulia/images/cover.png differ diff --git a/floppies/giulia/images/header.jpg b/floppies/giulia/images/header.jpg deleted file mode 100644 index fd0194a..0000000 Binary files a/floppies/giulia/images/header.jpg and /dev/null differ diff --git a/floppies/giulia/images/header.png b/floppies/giulia/images/header.png deleted file mode 100644 index c55fd94..0000000 Binary files a/floppies/giulia/images/header.png and /dev/null differ diff --git a/floppies/giulia/images/headertr3.png b/floppies/giulia/images/headertr3.png new file mode 100644 index 0000000..0e9b55b Binary files /dev/null and b/floppies/giulia/images/headertr3.png differ diff --git a/floppies/giulia/scriptespeak.py b/floppies/giulia/scriptespeak.py deleted file mode 100755 index ac506c3..0000000 --- a/floppies/giulia/scriptespeak.py +++ /dev/null @@ -1,17 +0,0 @@ -#! /usr/bin/env python -import subprocess -from time import sleep - -# requires: espeak to be installed - -waittimes = [1,2,1,4,1,4,1,4,1,4] - -f=open("instructions.txt","r") -txt=f.readlines() - -for i, line in enumerate(txt): - waittime = waittimes[i] - print i, waittime #, line, - subprocess.call(["espeak", line, "-v", "en"]) # character speaks: his/her line - sleep(waittime) # make pause after each text line - \ No newline at end of file diff --git a/floppies/giulia/scripts/recordwalk.py b/floppies/giulia/scripts/recordwalk.py new file mode 100644 index 0000000..c73c965 --- /dev/null +++ b/floppies/giulia/scripts/recordwalk.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python + +from __future__ import print_function +import cv2, os, sys, time +import numpy as np +from argparse import ArgumentParser + + +p = ArgumentParser("") +p.add_argument("--video", type=int, default=0, help="video, default: 0") +p.add_argument("--output", default=None, help="path to save movie, default: None (show live)") +p.add_argument("--width", type=int, default=640, help="pre-detect resize width") +p.add_argument("--height", type=int, default=480, help="pre-detect resize height") +p.add_argument("--fourcc", default="XVID", help="MJPG,mp4v,XVID") +p.add_argument("--framerate", type=float, default=25, help="output frame rate") +p.add_argument("--show", default=False, action="store_true") +p.add_argument("--frames", type=int, default=100) +args = p.parse_args() + +fourcc = None +cam = cv2.VideoCapture(args.video) +cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, args.width) +cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, args.height) + +if args.output: + try: + fourcc = cv2.cv.CV_FOURCC(*args.fourcc) + except AttributeError: + fourcc = cv2.VideoWriter_fourcc(*args.fourcc) + out = cv2.VideoWriter() + out.open(args.output, fourcc, args.framerate, (args.width, args.height)) +else: + out = None + +while True: + ret, prev = cam.read() + prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY) + if prevgray.shape == (args.height, args.width): + break + +count = 0 +try: + while True: + ret, frame = cam.read() + + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) + frame = cv2.cvtColor(t, cv2.COLOR_GRAY2BGR) + # flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0) + # prevgray = gray + + if out != None: + out.write(frame) + count += 1 + if args.show: + cv2.imshow('display', frame) + if cv2.waitKey(5) & 0xFF == ord('q'): + break + if args.frames != None: + if (count >= args.frames): + break + +except KeyboardInterrupt: + pass + +print ("\nCleaning up... Wrote", count, "frames") +if out: + out.release() +if args.show: + cv2.destroyAllWindows() + + + diff --git a/floppies/giulia/scripts/voiceguide.sh b/floppies/giulia/scripts/voiceguide.sh index 87ff136..b5ce2f1 100644 --- a/floppies/giulia/scripts/voiceguide.sh +++ b/floppies/giulia/scripts/voiceguide.sh @@ -1,95 +1,53 @@ +v=-v en-gb+f5 -s 150 +espeak "Tetra Gamma Gait Analysis " -v en-gb +f5 -s 150 +sleep 1 -espeak "Gait analysis number one." -v en +espeak "Be ready for the security check." -v en-gb+f4 -s 150 sleep 1 -espeak "Please state your name:" -v en +espeak "Please state your name:" -v en+f4 -s 150 sleep 1 -espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en +espeak "Position yourself 2 to 3 meters away from me." -v en-gb+f4 -s 150 sleep 2 -espeak "Walk towards the Tetra Gamma Circulaire in a straight line ." -v en +espeak "Walk towards me in a straight line ." -v en+f4 -s 150 sleep 0.2 -play sweep_up.wav +mpv sweep_up.wav basename=clips/$(date +%Y-%m-%d-%H-%M-%S) echo recording $basename.avi... -scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 +python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 # convert to mp4 ffmpeg -i $basename.avi -y $basename.mp4 # make a thumnail image ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg # rm $basename.avi -play sweep_up.wav - -espeak "Position yourself one meter away to the left of the Tetra Gamma Circulaire." -v en -sleep 1 +mpv sweep_up.wav -espeak "Walk from left to right in front of the Tetra Gamma Circulaire. -" -v en +espeak "Walk towards me on a zig zag line. +" -v en+f4 -s175 sleep 0.2 -play sweep_up.wav +mpv sweep_up.wav basename=clips/$(date +%Y-%m-%d-%H-%M-%S) echo recording $basename.avi... -scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 +python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 # convert to mp4 ffmpeg -i $basename.avi -y $basename.mp4 # make a thumnail image ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg # rm $basename.avi -play sweep_up.wav - -espeak "Turn your back to the Tetra Gamma Circulaire." -v en -sleep 1 - -espeak "Walk away from the Tetra Gamma Circulaire. -" -v en -sleep 0.2 +mpv sweep_up.wav -play sweep_up.wav -basename=clips/$(date +%Y-%m-%d-%H-%M-%S) -echo recording $basename.avi... -scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 -# convert to mp4 -ffmpeg -i $basename.avi -y $basename.mp4 -# make a thumnail image -ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg -# rm $basename.avi -play sweep_up.wav -espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en +espeak "Thank you for your cooperation" -v en+f4 -s175 sleep 1 -espeak "Walk towards the Tetra Gamma Circulaire on a zig zag line. -" -v en -sleep 0.2 - -play sweep_up.wav - -basename=clips/$(date +%Y-%m-%d-%H-%M-%S) -echo recording $basename.avi... -scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240 -# convert to mp4 -ffmpeg -i $basename.avi -y $basename.mp4 -# make a thumnail image -ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg -# rm $basename.avi +mpv sweep_up.wav -play sweep_up.wav - -# subprocess.call(["espeak", "Please state your name:", "-v", "en"]) -# sleep(2) -# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire. -# Walk towards the Tetra Gamma Circulaire in a straight line . -# Position yourself one meter away to the left of the Tetra Gamma Circulaire. -# Walk from left to right in front of the Tetra Gamma Circulaire. -# Turn your back to the Tetra Gamma Circulaire. -# Walk away from the Tetra Gamma Circulaire. -# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire. -# Wal \ No newline at end of file