Optimized Construction of ICC Profiles by Lattice Regression.

We focus on a recently proposed regression framework termed lattice regression, as applied to the construction of multidimensional color management look-up tables from empirical measurements. The key idea of lattice regression is that the construction of a look-up table should take into account the interpolation function used in its final implementation. Lattice regression solves for the look-up table (LUT) that minimizes the error of interpolating the empirical measurements (training samples) and regularization is added to promote smoothness and enable extrapolation. The main contribution of this paper is the proposal and analysis of using the thin-plate regularizer for lattice regression to produce smooth and accurate color transformations. Experiments with a consumer inkjet and laser printer show that the proposed regularizer obtains similar accuracy to the previously-proposed (and more complicated) combination of Laplacian and globalbias regularizers, and that both can create significantly more accurate and smoother results than a state-of-the-art locally linear approach. Estimation for Color Transformations It is common to transform colors between colorspaces and devices by first characterizing the transformation with a look-up table (LUT), and then interpolating the LUT to transform new color values. The LUT can be specified in an International Color Consortium (ICC) profile, which is part of a standard color management workflow. In this paper we consider the estimation question of how to best specify a LUT to characterize a color transformation. Recently, we proposed a new approach called lattice regression for learning a LUT from sample pairs of input and output colors that takes into account that the LUT is interpolated at runtime [6, 7], but that preliminary work required a complicated regularizer in order to perform well in practice. In this paper, we show that similar results can be achieved using the more elegant thin-plate regularizer [8]. For simplicity, and because it is a common case, we refer throughout to the input color space as CIELAB and the output color space as RGB, but everything applies to transformations between any two colorspaces. We call the LUT defined over the input color space the lattice a, which has vertices {a1,a2, . . . ,am}, where each vertex ai ∈ CIELAB. Then the goal is to learn the output RGB color for each ai. We treat each of the output color planes separately so that the output color corresponding to vertex ai is the scalar color value bi ∈ [0,255]. Printing a calibration target results in data pairs {xi,yi}, where xi ∈ CIELAB, yi ∈ [0,255] and i = 1...n, where n is the number of color patches in the calibration target. The standard approach to learning a color transformation is to first fit a function to the data pairs {xi,yi} to produce an estimated function f that maps CIELAB to [0,255]. Then, the estimated function f is evaluated at the the vertices of the lattice. That is, the estimated output value for ai is bi = f (ai). Mathematically, the estimated function f is chosen to minimize the sum of some loss function, usually squared error as shown here: f = arg min f∈F n ∑ i=1 ( f (xi)− yi), (1) where F is a set of allowed functions. For example, standard least-squares linear regression is (1) with F being the set of all linear functions f (x) = β T x+β0. Neural nets, decision trees, and support vector machine regression and other standard approaches to regression can be written as (1) for different choices of F , sometimes with a different loss function than squared error, and sometimes with additional regularization terms that are independent of the data but add a preference for smoother functions in the function class F . Many such regression methods have been compared for learning ICC profiles [1, 2, 11]. Bala’s experiments showed that the best accuracy was obtained with a local linear regression [2]. Roughly 20% improvement in median accuracy was achieved over local linear regression using the enclosing neighborhood definition and ridge regularization [9], and further accuracy improvements were shown if the ridge regularizer was replaced by a Tikhonov regularizer [10]. Another metric in the creation of ICC profiles is whether smooth images input to the LUT appear smooth after the LUT interpolation [14, 15]. Lattice Regression The problem with the standard approach described by (1) is that the LUT will be interpolated at run-time to actually estimate output color values for an image, and this interpolation step is not taken into account in fitting the function by (1). For example, if one used the LUT to estimate the appropriate RGB color for a training sample xi, the output of the lookup table is not f (xi), rather it is the interpolation of xi from the vertex-output pairs {(ai, bi)} that surround xi. Thus, the error being minimized in (1) does not represent the true error produced by the LUT. Lattice regression takes into account the LUT interpolation, and directly chooses the m×1 vector of output values b such that the interpolated training CIELAB colors will be close to their corresponding RGB output values. A training point xi in CIELAB falls in a cell of the lattice with eight vertices; the jth vertex in the lattice is given a linear interpolation weight wi j ≥ 0, where wi j = 0 if a j is not a vertex of the cell containing xi, and otherwise wi j is set so that linear interpolation equations hold: ∑ j wi ja j = xi, and ∑ j wi j = 1 (see [6] for more on calculating linear interpolation weights). The LUT then interpolates the input CIELAB value xi as ŷi = ∑ j wi jb j. Lattice regression minimizes the post-interpolation error on the training data. That is, it chooses the m× 1 vector of output values b that solve, b = arg min b∈[0,255]m n ∑ i=1 (ŷi− yi) . = arg min b∈[0,255]m n ∑ i=1 (( ∑ j wi jb j ) − yi )2