New repo for repo.or.cz
[The-Artvertiser.git] / README
blobdaf8f515f72b0210987ccdd5cfbc02a37e0229cc
2 INTRODUCTION:
4 The Artvertiser is a small platform designed to track and substitute an image in
5 a video stream (here defined as an 'advert'), live or archival, with another
6 image or video ('artvert'). It has been designed primarily as a 'Product
7 Replacement' application, designed for susbtituting advertisements in the street
8 with art.
10 The Artvertiser code was initially developed by Julian Oliver but has since been
11 significantly improved by Damian Stewart - now running on low spec devices such
12 as the Intel 'Atom' Core Duo boards alongside improvements to the tracking.
14 The code builds heavily upon BazAR <http://cvlab.epfl.ch/software/bazar/> and
15 was authored on a Debian Linux system. It is known to compile and run just fine
16 on a 3D capable Ubuntu or Debian system. It should however compile on any Linux
17 system with little effort. 
19 BUILDING
21 Here are the basic dependencies:
23         OpenCV-1.1      <http://sourceforge.net/projects/opencvlibrary/files/>
24         FTGL-2.1        <http://sourceforge.net/projects/ftgl/files/>
25         GLUT            (consult your package manager for the glut headers)
27 To build The Artvertiser on Linux, just type 'make' in the top level directory.
29 To build The Artvertiser on OS X, be sure you've satisfied the pre-requisites in
30 the 'osx_prereqs.txt', then copy the 'Makefile.osx' over the 'Makefile' in each
31 directory (monitor the build errors for clues if stuck).
33 TRAINING
35 The Artvertiser requires a database of feature points before it can detect an
36 image. This database is generated in a training phase.
38 Training is divided into two parts, beginning with Classifier Training.
40 To train and create a database called 'BurgerKing', using the default capture
41 device on your computer, cd into the 'artvertiser' directory and run:
43         ./artvertiser -t -g -m BurgerKing.bmp
45 (NOTE '.bmp' suffix!)
47 To capture on a second webcam on your computer:
49         ./artvertiser -t -g -vd 1 -m BurgerKing.bmp
51 Now place a planar image in front of the camera. It should be flat, have plenty
52 of detail and should take up as much of the captured area as possible while
53 still being in focus. 
55 While keeping it still hit SPACE on your computer. With the mouse, drag the
56 corners of the green quadrangle to match the corners of your image. The green
57 quadrangle defines the parts of your image you wish to track. When ready, press
58 SPACE again. The red quadrangle defines the part of the image you want the
59 augmentation (video, image) to appear. Move the corners into position and hit
60 SPACE again.
62 There will now be a pause as you see the software working hard to find all the
63 interesting feature points in the image. 
65 When this process is complete the training will move into the Geometric
66 Calibration phase (switch '-g') and you'll see the camera capturing again. Here
67 you need to wave the image in front of the camera a few times until enough data
68 has been aquired. 
70 Once done the software will move immediately into Tracking and you can test the
71 results by moving the image around in front of the camera.
73 RUNNING
75 To capture from the third video capture device on your computer using the
76 classifier BurgerKing:
78         ./artvertiser -vd 2 -m BurgerKing.bmp
80 To capture from archival video (eg a hollywood movie) featuring some product
81 placement from Budweiser, using the Classifier you've trained called 'Bud',
82 substituting it with an image 'nippedBud.png':
84         ./artvertiser -b SomeAwfulMovie.avi -m Bud.bmp -i /path/to/nippedBud.png
86 To do the same, but substitute the Budweiser product placement with a movie
87 you've made:
89         ./artvertiser -b SomeAwfulMovie.avi -m Bud.bmp -i /path/to/nippedBud.avi
90         
91 See the usage information for more switches by reading the code or with a bad
92 switch, like so:
94         ./artvertiser -u
96 RUNNING WITH MULTIPLE ARTVERTS (EXHIBITION MODE):
98 The Artvertiser can be told to resource an XML file with a list of all the
99 Classifiers to be used, alongside their substituting artverts. This is known as
100 'Exhibition Mode' and is great for augmentations in the street. See 'models.xml'
101 for a guide as to how this all works. To use your own XML file, execute The
102 Artvertiser as follows:
104         ./artvertiser -ml myModelFile.xml
106 CONTACT:
108 Problems, questions, answers, feel free to contact Julian on
109 julian@julianoliver.com or Damian on damian@frey.co.nz.
111 Have fun!
113 http://theartvertiser.com