Skip to toolbar

TagVisual Programming

ASSIGNMENT 2: MAX Face Tracking

To see other Assignments:

Assignment 1: Magic Mirror  |  Assignment 2: Face Tracking  |  Assignment 3: Seflie Instructor  |   Assignment 4: Alpha Blending   |   Assignment 5: Pixelation Mapping

Hey! So this second assignment I am calling Gun in Your Face!

So to sum up the assignment first:

Sensing.

  • Coordinate info from cvjit.faces matrix used to calculate the position of face laterally across the screen
  • cvjit.faces detects when the face is at a certain proximity from the screen
  • cvjit.faces also detects when the face is off-screen or there is no more faces

Effecting.

  • Value for face position used to determine which frame from the video of gun moving left and right will play
  • When face is close to screen, playback of the gun firing video is triggered
  • When no faces are detected, video of me spinning the gun is set on loop like a ‘screen saver’
  • All videos have a 1.5seconds crossfading transition

screenshot-2017-02-06-22-57-54

I am rather satisfied with the outcome and more in-depth presentation of the process is in the video below. Here I really wish to express that apart from learning the stuff in MAX, what was really important to me was the asset creation in the assignment. What I have attempted was to use the assets to my advantage, the angle of the shot, the composition of the videos, thinking about transitions. And I really spent quite a bit of time dwelling on those aspects. So this played out really well as for most of the time in interacting with this piece, the transitions are as smooth as I would have them.

Also, this time I attempted to organize things a little more, showing only the essential stuff and visual information in the main patcher while the complex computations are put into the hidden ones.

What could be improved for this assignment is maybe thinking of ways to track vertically as well.

Cheers!

 

ASSIGNMENT 1: MAX Magic Mirror

To see other Assignments:

Assignment 1: Magic Mirror  |  Assignment 2: Face Tracking  |  Assignment 3: Seflie Instructor  |   Assignment 4: Alpha Blending   |    Assignment 5:


Quite Satisfied with this first try at Max, would like learn more! So what I have achieved:

Sensing.

  • cvjit.faces detects when one at least one face appears on screen
  • Face size is calculated by the coordinates of the approximated perimeter given by cvjit.faces
  • cvjit.faces detects when the face is off-screen or there is no more faces

Effecting.

  • Mirror is inverted to the correct orientation
  • Opacity is triggered based on proximity
  • Screen will fade to black when no face is detected

 

The reason for the cutting to black when no faces are detected was because I wanted to eliminate the issue of screen flashing whenever the face is out of position as cv.jit.faces requires the user’s face to be very frontal else it will not register.

However I would also like to explore how to limit to only working when there is ONLY ONE face… that will be more trail and errors, will get to that sometime later.

 

Below is a video log for my own documentation of process, so I can review the thinking process behind the max patcher for this magic mirror assignment.

Cheers!