ShadowColor is an interactive assistant for freehand drawing and coloration of human faces. I created the application as my final project in Professor Efros' excellent Computational Photography class. It is an extension of ShadowDraw by Lee et al. The idea is to provide a data-driven method for coloring images, including realistic gradients. The resulting application allows users to composite semi-realistic faces based on sketched attributes, for example, long hair, big ears, and a mustache. In the same way ShadowDraw makes sketching fun, ShadowShading makes coloration fun. Further, like ShadowDraw, the end results are often superior than most users' innate skill level.

In many ways, ShadowColor is a (fairly crude) reimplementation of ShadowDraw. As a sketch is drawn, best matches are determined and displayed on the left of the screen (top 20, see image above, right). The top 10 are blended together to provide sketch hints. In addition to the sketch tool, there is a colorization tool. When this is used, the top five images are blended together and then composited onto the current color canvas (using a radial blend). My dataset consists of approximately 2400 faces drawn from the ShadowDraw dataset (graciously provided by the authors). Performance is real-time (see videos).

There is one important interaction difference between ShadowDraw and ShadowColor. In the former, users would sketch (using hints) an entire drawing (e.g., of a bicycle). In ShadowColor, the end result is a composited color image - sketching is merely a means of input. An example sequence is as follows: The user sketches a mouth, and uses the color tool to blend in an average mouth (taken from the best matches). The user then clears the sketch (though not the color image). The user then draws a nose of their choosing, colors in the nose, and clears the sketch. In this way, users can composite faces using various attributes. The end result is not one face (with a corresponding best match in the data), but rather many faces.

© Chris Harrison