Merge branch 'master' of git.xpub.nl:/var/www/git.xpub.nl/repos/tgc3

master
ugrnm 8 years ago
commit 3a0855b8cf

@ -1,7 +1,16 @@
Author: Slavoj Žižek Author: Giulia de Giovanelli
Date: 1989 Date: 2017
Title: The Sublime Object of Floppy Title: Adopt A Walk
Description: 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 youre 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 youre 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.

@ -19,10 +19,10 @@ for f in ff:
items[t][ext] = f items[t][ext] = f
items = [items[key] for key in sorted(items, reverse=True)] 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(): for f in i.items():
print "deleting ", f print "deleting ", f
# 10 os.unlink(f)
# dump the data (debugging) # dump the data (debugging)
# print "Content-type: text/plain" # print "Content-type: text/plain"
# print "" # print ""
@ -34,29 +34,40 @@ print ""
print Template(u"""<html> print Template(u"""<html>
<head> <head>
<title>ADOPT A WALK</title> <title>ADOPT A WALK</title>
<style type="text/css"> <link rel="stylesheet" type="text/css" href="../styles/main.css">
div.movie {
border: 20px solid black;
display: inline-block;
}
div.movie img {
width: 400px;
}
</style>
</head> </head>
<body> <body>
<header> <div id="wrappper">
<p>head<p>
<img src="../images/header.png" width="100%"/> <header>
</header> <img src="../images/headertr3.png" width="100%"/>
</header>
<div class="firstline">
<p> Here you can find footage of your walks.</p>
</div>
<img src="../images/camera.png" />
<div class="secondline">
<p> Steal a walk from another person's video. Download it. </p>
</div>
<div class="thirdline">
<p> Promise me, you're gonna start using this walk for the rest of the day. </p>
</div>
<img src="../images/cover.png" />
{% for i in items %}
<div class="movie"><a href="../clips/{{i.mp4}}"><img src="../clips/{{i.jpg}}" /></a> </div>
{% endfor %}
<div> <div class="movies">
{% for i in items %}
<a href="../clips/{{i.mp4}}"><img src="../clips/{{i.jpg}}" /></a>
<p>{{i.mp4}}</p>
{% endfor %}
</div>
</div> </div>
</body> </body>
</html>""").render(items=items).encode("utf-8") </html>""").render(items=items).encode("utf-8")

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

@ -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

@ -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()

@ -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 sleep 1
espeak "Please state your name:" -v en espeak "Please state your name:" -v en+f4 -s 150
sleep 1 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 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 sleep 0.2
play sweep_up.wav mpv sweep_up.wav
basename=clips/$(date +%Y-%m-%d-%H-%M-%S) basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
echo recording $basename.avi... 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 # convert to mp4
ffmpeg -i $basename.avi -y $basename.mp4 ffmpeg -i $basename.avi -y $basename.mp4
# make a thumnail image # make a thumnail image
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
# rm $basename.avi # rm $basename.avi
play sweep_up.wav mpv sweep_up.wav
espeak "Position yourself one meter away to the left of the Tetra Gamma Circulaire." -v en
sleep 1
espeak "Walk from left to right in front of the Tetra Gamma Circulaire. espeak "Walk towards me on a zig zag line.
" -v en " -v en+f4 -s175
sleep 0.2 sleep 0.2
play sweep_up.wav mpv sweep_up.wav
basename=clips/$(date +%Y-%m-%d-%H-%M-%S) basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
echo recording $basename.avi... 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 # convert to mp4
ffmpeg -i $basename.avi -y $basename.mp4 ffmpeg -i $basename.avi -y $basename.mp4
# make a thumnail image # make a thumnail image
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
# rm $basename.avi # rm $basename.avi
play sweep_up.wav mpv 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
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 "Thank you for your cooperation" -v en+f4 -s175
espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en
sleep 1 sleep 1
espeak "Walk towards the Tetra Gamma Circulaire on a zig zag line. mpv sweep_up.wav
" -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
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

@ -0,0 +1,104 @@
@font-face: {
font-family: "sporting_grotesque_gras-webfont";
src:"../fonts/sporting_grotesque_normal.otf";
}
body {
background-image: url("../images/background.png");
background-repeat: repeat;
font-family: "Sporting Grotesque";
}
#wrapper {
max-width: 900px;
display: block;
margin: 0px auto;
padding:0px;
}
header img{
border: none;
}
div.movies img:nth-child(1) {
margin-top: 150px;
}
div.movies img {
display: block;
width: 632px;
height: auto;
margin: 25px auto;
box-shadow: 0px 0px 64px 13px rgba(255,255,255,1);
}
div.movies p {
color: white;
text-align: center;
font-family: "Sporting Grotesque";
}
div.firstline, div.secondline, div.thirdline {
max-width: 100%;
border: 10px solid white;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 50px;
padding-right: 50px;
margin: 37px 15px 37px !important;
font-size: 200%;
color: white;
text-align: center;
text-shadow: 1px 1px 2px white;
line-height:110%;
margin: auto;
}
/*div.secondline {
width: 80%;
border: 10px solid white;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 50px;
padding-right: 50px;
margin:25px;
font-size: 200%;
color: white;
text-align: center;
text-shadow: 1px 1px 2px white;
line-height:110%;
margin: auto;
margin-top:17px;
margin-bottom:17px;
}
div.thirdline {
width: 80%;
border: 10px solid white;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 50px;
padding-right: 50px;
margin: 25px;
font-size: 200%;
color: white;
text-align: center;
text-shadow: 1px 1px 2px white;
line-height:110%;
margin: auto;
}*/
div.cover {
float: center;
margin: 20px;
}
img {
display: block;
margin: auto;
max-width: 900px;
border: 10px solid white;
}
Loading…
Cancel
Save