March 14, 2005

Image Colorization Using Optimization

Fascinating work by three Israelis -- this algorithm allows you to colorize an image or a video sequence by "scribbling" the appropriate colors on a few parts of the image (or the same on a few frames for the video). From their website:
Colorization is a computer-assisted process of adding color to a monochrome image or movie. The process typically involves segmenting images into regions and tracking these regions across image sequences. Neither of these tasks can be performed reliably in practice; consequently, colorization requires considerable user intervention and remains a tedious, time-consuming, and expensive task.

In this paper we present a simple colorization method that requires neither precise image segmentation, nor accurate region tracking. Our method is based on a simple premise: neighboring pixels in space-time that have similar intensities should have similar colors. We formalize this premise using a quadratic cost function and obtain an optimization problem that can be solved efficiently using standard techniques. In our approach an artist only needs to annotate the image with a few color scribbles, and the indicated colors are automatically propagated in both space and time to produce a fully colorized image or sequence. We demonstrate that high quality colorizations of stills and movie clips may be obtained from a relatively modest amount of user input.
Their samples are amazing -- here is one example:
colorizing-baby-before.jpg
Original B&W image with color scribbles in place.
colorizing-baby-after.jpg
Final result -- note the good shadow and highlight processing.
Posted by DaveH at March 14, 2005 10:19 PM