View this PageEdit this Page (locked)Attachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

G1-Final Report




DVFX2006 CoWebParticipants Groups Projects Discussions Template


Goofus and Gallant


This Report assumes the reader has read the earlier reports, linked below, and details the overall project and tasks not desbcribed earlier.

Original Proposal
Midterm
Update 1
Update 2
Update 3

Overview

The storyline changed from the original set of pure dream effect to a set of "surreal" effects. These effects were then used in a short involving two students, Goofus and Gallant, one who stayed at home in bed and the other who went to class like a good student. The effects were used to show, visually, the dazed state of Goofus as he kept getting up to hit the snooze and the overcaffeinated state of Gallant, who needed to keep himself awake.

The Movie


Overview

The original plot for the short was left open-ended, so that it could be changed depending on what could be accomplished of our effects with OpenCV. The majority of the effects we sought to implement, were implemented. However, the filming complexities of making a good surreal dream sequence led the team to adopt an altered approach, which still allowed us to use the effects but keeping filming simpler. From this need, the adapted storyline was born, after a lot of brainstorming. The idea of being able to film in the apartment enabled full control of the environment. Since only a single shot was outdoors, worries about traffic and weather could be avoided.

The Story

The original storyboard was shown in Update 2. This storyboard was changed to correct issues regarding the length, flow, and stlye of the movie.

The internal screening version of the film had a first person view of Gallant as he woke, turned his head to the alarm, and focused on the time (storyboard scenes 1-4). This was removed because the sound of the alarm for so long was annoying and the scene itself caused confusion with regards to being able to tell that Gallant was a different person than Goofus, since the next scene has Goofus hitting the snooze of his alarm. With the original storyboard, the fact that there were two different people wasn't clear until almost halfway into the movie. The final movie then had the alarm sound and a shot of Gallant sitting up and jumping out of bed, then quickly cutting to Goofus hitting the snooze (with a forward motion blur).

Scene 8, the Gallant shaving scene, was cut completely due to the constraints on the length of the film, and the Gallant coffee scene was moved up, to take place before the second snooze hit. As originally filmed, the coffee scene included Gallant taking 3 sips of coffee and the world slowly changing around him. This scene was both too long and too subtle. The final movie shows Gallant taking a drink and then moves into first person view of the world clarifying around him, from blurry black and white to focused color.

Scene 9, the second snooze hit, was modified such that the alarm clock was on the opposite side of the bed and filmed from the side. The effect used was the "forward-motion", though not as subtle as in the first strike of the snooze. More keyframes were used to make the effect more apparent.

Scene 11, the hallway scene, was kept, though the view was behind Gallant. An edge filtering algorithm was used to detect the edges and then a glow filter was applied to the edges. Adobe Premiere was used to blend between the video with the effect and the video without the effect.

Scene 12, the third snooze hit, was kept, though moved into two camera angles. The effect itself was also changed. The motion layer data was used to extract the movements of Goofus. A blur filter was applied to everything outside of the motion layer and the motion was kept in focus. In order to make the effect more noticeable, a blend was made in Premiere between the unmodified footage and the effect footage when Goofus strikes the alarm clock.

A scene was added, dubbed Scene almost 13, in which gallant is outside the TSRB walking towards the class room. This scene was meant to show the progression of Gallant to the room, to avoid an abrupt cut to the room. The Internal Screening version of the scene was long and was cut in half for the final movie. The length of the scene allows the background music, James Brown's "Get Up", to wind down. Between this scene and the next, an audio transition was performed to change between the upbeat funk to the very morose "Waste Land" by Yoko Kanno.

Scene exactly 13 was modified from the original version. Initially, it was just Gallant smashing his head into the desk with the "Class Cancelled" written on the board, however it was hard to read the writing on the board, and the comic effect of the scene was reduced. Hence, scene closer to 13 than almost 13 but not quite 13 was added before the head smashing to show a large, zoomed view of the "Class Cancelled". The effect used in the final head smashing was the world going from color, to black and white, and then using an edge detector to make a "black" glow effect.

Finally, the scene transitioned to the final credits. During the credits, the alarm sound was once again played and the view cut to Goofus striking the alarm once more.

The subtitles were not originally part of the movie. However, under the advice of the wise Irfan Essa, they were added to explain, in text, what was happening on screen. In addition, their timing generated more humorous moments. Gallant's GPA instantly appears at the point that the sound of Gallant smashing his head is played.

Stuff we used that wasn't ours

James Brown, "Get Up", 1970
Yoko Kanno, "Waste Land", 1998
The alarm clock sound, Postal 2, 2003
Vladimir Urazov, Gallant Smashing head, 2006

The Technical


The Code

code_small.jpg

Forward Motion
The forward motion code simply averages frames in a scene. The keyframe setting sets the average points of the frames, which can be used to make the forward motion effect. By setting the keyframes to specific events, the "forward ghosting" of Goofus' hand being on the snooze before it was actually struck could be made.

Edge Glowing
A simple convolution filter was run on each frame to generate an edge mask. This mask was then added with each frame to create the glow effect and subtracted to create the black effect.

Motion Extraction
Using OpenCV's motion detection history capturing features, a mask was generated. This mask was then used to define where the various filters would be applied. In the third alarm scene, a blur was applied to everything not part of the mask.

Making_of.jpg

Hue Filtering
The function written would take a range of hue values and, for each pixel, it would convert the pixels to HSL and if, it was within the range, it would be included in the mask otherwise its location on the mask was left black. A blur and a grayscale filter were applied to everything outside the mask to generate the effect.

Compositing
The various videos, both original footage and with the effects applied, were loaded into an Adobe Premiere Project. The majority of editing was simply cutting videos and placing them next to each other. The first few scenes have transitions applied to them, while the rest are simply quick cuts. A few blends were done by hand in Premeire to emphasize the effects by showing the transition from the original footage to the footage with the effect applied.

preimiere_small.jpg


Downloads


The Code

The code is undocumented and it's up to whoever wants to view it to download. We're putting this up here so that future groups can look into how things were done, but you're on your own for configuring OpenCV.

DVFX.zip

Picture of the awesome team that made this awesome thing

01_TEAM.jpg


DVFX2006 CoWebParticipants Groups Projects Discussions Template





Link to this Page