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
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.
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).
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
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
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
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
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.
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
89 ./artvertiser -b SomeAwfulMovie.avi -m Bud.bmp -i /path/to/nippedBud.avi
91 See the usage information for more switches by reading the code or with a bad
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
108 Problems, questions, answers, feel free to contact Julian on
109 julian@julianoliver.com or Damian on damian@frey.co.nz.
113 http://theartvertiser.com