Tuesday, May 1, 2007

Natural language color editing

One of the aims of color science—at least in an industrial setting—is the communication of color, and researchers strive for effective communication. In this post we visit some new research by Dr. Geoff Woolfe, a Principal Research Scientist in the Xerox Innovation Group.

When color started appearing on workstations in the mid Seventies, color was specified on physical dials. In computer aided design (CAD) applications, the dials were for the amounts of red, green, and blue. In electronic publishing applications they were for cyan, magenta, yellow, and black quantities. The workstations were very expensive, and considerable resources were invested in training the users.

When color workstations came within reach of what at the time were called "casual users," it became clear that a more ergonomic user interface was need to specify color, and in 1978 Alvi Ray Smith came up with a very efficient transformation of RGB into a triplet he called HSV, for Hue, Saturation and Value. This model was much better, although it has serious shortcoming, because the h, s, and v quantities do not correlate well with with perceived hue, saturation, and value. For example, in HSV 100% yellow and blue have the same the same value, which is obviously incorrect.

Another problem with HSV is that it is not clear to specify a hue. For example, what is the h value corresponding to red? [Answer: 30] Half a dozen years later, when Maureen Stone implemented her interactive color selection tool, in addition to sliders for RGB, HSV, and CMYK, she also added a box to specify a color by name. This leads to the following operational model for color appearance:

a cognitive model for color perception

Maureen based her implementation the the ISCC-NBS Method of Designating Colors and a Dictionary of Color Names. Her tool worked very well, but for colleague Frank Crow, who incorporated the tool in his 3-D World editor, a color solid divided in 267 color-name blocks was too coarse. On his instigation, Maureen beefed up her parser to allow iterating among modifiers, so that a user could for example specify a moderate reddish orange, but could then add dark and grayish to make it a grayish dark moderate reddish orange.

A couple of years late I replaced the HSV sliders in Maureen's tool with sliders for L*, C*, hab, i.e., the correlates for lightness, chroma, and hue in CIELAB. Although the new sliders were much more usable, the color name specification mode remained more user-friendly. More recently, in the tool for pre-flighting variable data print jobs I presented at AIC 2005 in Granada, I used the Coloroid System color names to assess the readability of colored text on colored background.

Fast-forward to 30 April 2007. Geoff Woolfe has substantially improved on our now crude methods. First of all, he no longer constrains himself to a rectangular tiling of hue leaves, which we did for performance reasons. Dr. Woolfe partitions the color name space using a Voronoi graph which yields a more natural model of color naming. He achieves performance by storing his data in a kd-tree.

The second substantial improvement is in how the user performs a selection, which is by specifying a color by name and then iterating with the system, which interactively generates a mask from the color name by analyzing the samples in the image.

This is what I understand from his paper "Natural Language Color Editing," presented yesterday at the ISCC Annual Meeting in Kansas. Every year I used to attend ISCC's Annual Meeting, but in today's anorexic companies such luxury has no longer been possible for several years, so I am not able to report on more details. However, the author concludes his paper with

"The verbal presentation of this paper will discuss the details of how mappings between verbal descriptions and numerical color spaces are achieved and demonstrate the results that can be obtained using such a system."

If you can find attendees, you can ask them for the details, or maybe some of them are reading this post and can add comments.

Thank you to Neil Gunther for the pointer.