Jeff Howard

Transient Faces

A Processing sketch that creates empty images from spaces that may not otherwise be found empty.

http://itp.jeffhoward.ca/projects/transient-faces/

Classes
Introduction to Computational Media


Through a process of foreground subtraction, the project removes people from a space which otherwise would be difficult to capture empty. Using either time-lapse sequences, movie scenes, or live video as the content, users are able to watch as the people begin to fade away and the background is reconstructed. The source material plays on the left as the image is processed on the right, allowing users to view the process the sketch goes through.

The project was also created with practical sensibilities in mind as it can also be used as a tool. After the empty images are created they can be used for a number of purposes. They can also be used for background subtraction, so the process can be inverted and the background can be removed, leaving only the people in the foreground. As well, they can be used for compositing to insert people into an empty space when the option to shoot the space empty is not available.

Background
There are a number of works that I came across while working on this project that I found inspiring. One of which was Jim Campbell's Illuminated Average #1. The piece used a similar process where it averaged out the frames of the movie Psycho into one image. As the motion of the film rendered most of the image into a ghostly artifact, there was a strange occurrence of a lamp in the upper right corner that managed to materialize in the final image. The emergence of unexpected patterns such as this have become something I have been very interested in throughout my own work.

User Scenario
In the live video version of the project, users are able to step into the space and move around to see the affect their presence has on the evolution of the image.

Implementation
The work is created in Processing by determining the average pixel color and the mode of the brightness of each pixel across an array of images and then using those values to write the resulting image to the screen. With each frame analyzed, these values are updated and the processed image continues to be updated until the empty image is constructed.