Camera color accuracy outside of the training set

197fe71280364e1d9ddcbbc3b40ec026.jpg.png
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
--
 
197fe71280364e1d9ddcbbc3b40ec026.jpg.png
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
Very good Jim. Average DeltaE00 of 0.7 is unheard of with current CFA dyes. What does the matrix look like?

Jack

PS. I had a look and the containers I remembered for reflected colors: MacAdam Limits (theoretical) and Pointer's Gamut (practical). Something similar to the latter was formalized as ISO/TR 16066 : "Standard Object Colour Spectra database for color reproduction evaluation (SOCS)". It is supposedly made up of 50000+ samples as described and compared to Pointer's Gamut here. I was not able to find the database online though apparently the standard comes with a CD-ROM.
 
The first row of the chart is all memory colors; are those helpful in increasing color accuracy or could they just as easily be replace by different samples?
As to overfitting, I would assume that the more physical patches you capture, the more parameters may be used in the model to calibrate the camera response?
I'm not sure what you mean by that. The most I use now is 6 parameters, for the optimal Gaussian. I use 3 for the fixed-sigma Gaussians.

Or are you talking about the compromise matrix? It has 9 entries, one of which is redundant.

If we were to use a compromise matrix with a 4-color CFA, it would have 12 entries.
Perhaps I misunderstood.

I thought that overfitting referred to the color processing needed to convert a raw camera image to a standardized color representation. The more patches you record, the more confidence you can have in knowing the camera response (?) and the more parameters you could (in principle, at least) use in that color processing.

I understand the simplicity of having a 3x3 linear matrix, but why limit oneself to that if there is sufficient data to do a more complex correction?

-h
I am just trying to keep the playing field level. If I add LUTs, they can be populated in so many ways the simulation becomes intractable.
 
197fe71280364e1d9ddcbbc3b40ec026.jpg.png
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
Very good Jim. Average DeltaE00 of 0.7 is unheard of with current CFA dyes. What does the matrix look like?
Forward Matrix to XYZ D50/2 =
0.9802 -0.1032 0.1521
0.0659 0.9870 0.0111
0.0053 -0.0026 0.8606

--
 
197fe71280364e1d9ddcbbc3b40ec026.jpg.png
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
Very good Jim. Average DeltaE00 of 0.7 is unheard of with current CFA dyes.
Better with XYZ:



d8cad417275c43d78fadb1d8d3f785cb.jpg.png

I need to go back and recompute the optimum Gaussian set. The Gaussians at the top of the page were computed to optimize the Macbeth cc24.

--
 
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
Very good Jim. Average DeltaE00 of 0.7 is unheard of with current CFA dyes.
Here it is with a real CFA dye set.

3939d713309b40dfa45bb917a119adc6.jpg.png

I changed the circle coloring in the chromaticity chart so that 0 error is blue, the highest error is red, and the colors are mixed in proportion to the error.

I'm using the SMI formula, but it's not really SMI because the patch set is different. This camera gets a cc24 SMI of about 89.

set.

--
https://blog.kasson.com
 
Last edited:
197fe71280364e1d9ddcbbc3b40ec026.jpg.png
  • Error bars colored with corresponding patch colors.
  • White balanced to perfect gray patch; added as 191st patch.
  • Added chromaticity plot for errors: green is under 0.5 DE2000, blue is between 0.5 and 1.0, and red is over 1.0.
Very good Jim. Average DeltaE00 of 0.7 is unheard of with current CFA dyes. What does the matrix look like?

Jack

PS. I had a look and the containers I remembered for reflected colors: MacAdam Limits (theoretical) and Pointer's Gamut (practical). Something similar to the latter was formalized as ISO/TR 16066 : "Standard Object Colour Spectra database for color reproduction evaluation (SOCS)". It is supposedly made up of 50000+ samples as described and compared to Pointer's Gamut here. I was not able to find the database online though apparently the standard comes with a CD-ROM.
I am sorry - but that database for example has 30K+ colors from "graphic prints"... that is how many different pigments ? well - how about you get 20-30 real pigments spectra and then simply generate synthetic from that... no worse
 
MacAdam Limits (theoretical) and Pointer's Gamut (practical). Something similar to the latter was formalized as ISO/TR 16066 : "Standard Object Colour Spectra database for color reproduction evaluation (SOCS)". It is supposedly made up of 50000+ samples as described and compared to Pointer's Gamut here. I was not able to find the database online though apparently the standard comes with a CD-ROM.
I am sorry - but that database for example has 30K+ colors from "graphic prints"... that is how many different pigments ? well - how about you get 20-30 real pigments spectra and then simply generate synthetic from that... no worse
Why are you sorry zzip? Do you know of a good database available online?

Your comment is appropriate, the link above was included exactly so that folks could have a sense of what's in there, here is one of the relevant tables for those so inclined. Many repetitions, though there appear to be several thousand useful spectra there to add to the current much smaller mix.

Spectra part of ISO/TR 16066, for Color Reproduction Evaluation, from the link above
Spectra part of ISO/TR 16066, for Color Reproduction Evaluation, from the link above

Although, as mentioned earlier, if we were interested in evaluating how well linear color generalizes with specific SSFs, it would be useful to set up a synthetic training set with samples evenly spaced on the surface and/or inside the solid of, say, the gamut of all natural and man-made colors (e.g. Pointer's ). Then test it with real reflectances from databases like the one above. Then do it all again for specific subsets of spectra for different applications (e.g. studio portrait, repro, landscape, ...)

Jack
 
Last edited:
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.

Do you have a good local art shop ?

Don Cox
 
Last edited:
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.
I believe it is common, in fields that highly prize accurate color reproduction, to train with a patch set whose spectra approximately replicate those of the material to be digitized. If it's not, it should be.

--
https://blog.kasson.com
 
Last edited:
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.

Do you have a good local art shop ?

Don Cox
I think you put too much faith into what is a problem with very limited data. After all, those spectra are projected to a 3D space. You want to map them to another 3D space with some matrix. That matrix has 9 entries, and accounting for the luminance, there are 8 left. Whatever you do, you compute 8 numbers. You just put different weights on different spectral by playing with the training set; not necessarily the way you want. For example, if you have too many reddish pigments, you skew it to the red side.

Now, you can try a nonlinear mapping. You can make it perfect on some specific (but not all) set of spectra. You have no idea however what it does to spectra not in your training set. If you want good control over that, you might be back to a linear or an almost linear map.
 
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.

Do you have a good local art shop ?

Don Cox
probably off-topic - but I assume when you do repro of such targets you use polarized light, etc - so just whatever spectra floats somewhere might not be collected with a proper filter on the spectro-instrument ? did I say something stupid ?
 
That matrix has 9 entries, and accounting for the luminance, there are 8 left. Whatever you do, you compute 8 numbers.
Explain how to drop from 9 to 8 unknowns JACS? [Edit: I got it]

Depending on usage, assuming we need to know the CCT/WP of the illuminant as we mostly do in photography, we can in practice reduce the number of unknowns to just 6 since not hitting the neutral tones correctly can result in objectionable color casts. So we mostly want the sum of the rows of the Forward Matrix for a given illuminant to be equal to its White Point coordinates in XYZ, which gets rid of three unknowns.

I normally still keep 9 unknowns in order to have the most degrees of freedom and therefore get the best fit for the available data - but I always check the White Point of the FM to make sure it is not taking off in the wrong direction. It is often surprisingly close, if not it usually means that there is something wrong.

The optimized Forward Matrix has pretty well the same CCT White Point as the Illuminant
The optimized Forward Matrix has pretty well the same CCT White Point as the Illuminant

Jack

PS From here https://www.strollswithmydog.com/open-raspberry-pi-high-quality-camera-raw/
 
Last edited:
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.
I believe it is common, in fields that highly prize accurate color reproduction, to train with a patch set whose spectra approximately replicate those of the material to be digitized. If it's not, it should be.
If actual paint pigments are used, the spectra should be very close.

Winsor and Newton have sample cards made from actual paints (not from CMYK simulations). These are not easy to get hold of, but if you are a good customer of your local art shop, they might be able to get you one.

98976c7db14b46ec88eb225d07e3a55f.jpg

Back in the 1970s, somebody with access to a spectrometer made me some curves from paint samples. Unfortunately I no longer have his original curves, but I do have the tidied up versions that I made for lecture slides.

ac5712606efe474bb749d8a3a58198b3.jpg

21a5da6eb081482e92352a0452ea8f91.jpg

4dd5707d783e40a58560d38f6878389f.jpg

579e884e121641bd83fd28e9f41ba870.jpg

A set for recording colours of tomatoes for advice to farmers would no doubt need more reds, oranges, and yellows. and few samples of blues.

Don
 
Last edited:
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.

Do you have a good local art shop ?

Don Cox
probably off-topic - but I assume when you do repro of such targets you use polarized light, etc - so just whatever spectra floats somewhere might not be collected with a proper filter on the spectro-instrument ? did I say something stupid ?
I think the polarizing filter (if used) would in effect modify the colour of the lighting. So it's a matter of white balance.

Don
 
I think the question is, what do you need colour accuracy for ?

If your application is photographing works of art, such as paintings or colour woodcuts, then the training set should include artists' pigments, especially the traditional earth colours (Siennas, Ochres, Umbers, Venetian Red, Indian Red). It should also include earth colours mixed with white, and the same painted as a pure coat and then overlaid with a white glaze (Tyndall Effect). Also the same pigments mixed with white.

For ceramics, the training set needs to include common glaze colours.

For fabrics and tapestries, a range of natural and synthetic dyes.

Do you have a good local art shop ?

Don Cox
probably off-topic - but I assume when you do repro of such targets you use polarized light, etc - so just whatever spectra floats somewhere might not be collected with a proper filter on the spectro-instrument ? did I say something stupid ?
I think the polarizing filter (if used) would in effect modify the colour of the lighting. So it's a matter of white balance.
It's more than white balance. Specularity produces desaturation. If I were making a profile to be used for polarized or cross-polarized light, I'd photograph the training set under the same light.
 

Keyboard shortcuts

Back
Top