Hacker News new | ask | show | jobs
by antovsky 2498 days ago
Thanks for pointing this out. I had actually read [2] and I think just assumed that's what 'the most used simulator' would be doing :\ Can you suggest a better alternative? (I can re-implement the paper, but I'd rather just use a known gold standard). Also the source image is there, in case you have a simulator you can run it through and post the results.
1 comments

The method presented in Machado et al. (2009) is implemented in Colorspacious [1]. I'm generally in favor of a more quantitative approach than simply running an image through a simulator and looking at it, although as someone who is colorblind, I'm usually biased toward numbers over colors, since I'm less likely to misinterpret them.

I'm not convinced it's actually possible to create a colorblind-friendly rainbow colormap, particularly one without the shortcomings Jet presents for non-colorblind individuals. For all its faults, I find the banding in Jet to sometimes be a redeeming quality, since it makes it easier for me to match part of an image to the colorbar or other parts of the image. For example, in the image included in the blog post of the patio furniture and tree, I find that Turbo makes the tree appear deceptively close, due to my lack of differentiation in the green-orange part of the colormap; while the scene isn't shown with Jet, I suspect that the banding around yellow would make this misinterpretation less likely.

I may take a stab at analyzing the colormap for colorblind-friendliness, if I have time in the next few weeks. While the analysis in Nuñez et al. (2018) works well for sequential colormaps, I don't think it's the most appropriate for a rainbow colormap. For rainbow colormaps, I think the degree to which colors in non-adjacent parts of the colormap can be confused by colorblind individuals needs to be considered (it's the part of interpreting data presented with rainbow colormaps that causes me the most trouble). I'd have to think more about how to best construct a metric to evaluate this.

[1] https://colorspacious.readthedocs.io/en/latest/tutorial.html...

Here's an analysis of the colorblind-friendliness of Turbo and other colormaps: https://mpetroff.net/2019/08/discernibility-of-rainbow-color...
Thanks for the thorough evaluation and results! I was aware of colorspacious but I (wrongfully) assumed that it would be the same result as the other simulators (why would someone use ancient literature to make a modern tool...) Will definitely use it in the future instead.

I like your idea of measuring "distances to all other colors" as a litmus test for color confusion issues. It would have been great to see the spread/standard deviation along with the average, in order to see which color was particularly problematic, rather than simply 'weak' (like Twilight).

You're right that under this rubric it's probably not possible to create a colorblind-friendly rainbow map. I was aiming for the colors to be distinguishable, but not 'equally different', which is a much higher bar.

I am also not convinced that even CIECAM02-UCS can give a meaningful answer for 'long distances'. Once hues are different, I think psychologically we give that 'difference' much more weight than the shade. For example I would guess most people would consider Red and Yellow more different than Red and an (equally dE different) darker shade of Red. So surely this would make rainbows even more problematic.

At the end of the day, Turbo was basically designed to steer Jet-lovers to a somewhat better place, so it looks like by your metric it does accomplish that. I agree that making it truly colorblind-optimal was not accomplished, and would require significant changes (if it's even possible).

Including error bands on the plots unfortunately makes them extremely busy and difficult to interpret. The regions of a colormap that are particularly problematic can be seen as dips in the weighted average (except for linear colormaps, where problematic areas are deviations from the "V" shape).

I agree that CAM02-UCS is not necessarily accurate over "long distances." I'm also not completely convinced that using color vision deficiency simulation to shift colors and then using CAM02-UCS to estimate perceptual distance is all that accurate either, but it's the best approach using currently published models. It's my understanding that modern color appearance models were developed using matching experiments, e.g., asking a subject whether or not two colors are the same; for "long distances," it would probably be better to show two color pairs and ask which pair is more similar. If you're interested in how such appearance models have been developed, I'd recommend [1], which is fairly comprehensive (but also quite long).

By my metric and others, I agree that Turbo is certainly better than Jet. For normal color vision, the metric I developed is fairly flat across the colormap for Turbo, which is close to optimal as far as rainbow colormaps are concerned.

[1] Fairchild, Mark D. Color appearance models. John Wiley & Sons, 2013.

Yes I believe that's correct. My intuition is that since these matching experiments are very local, it's perfectly possible to have 'constant' distances integrate into non-linear curves (which are no longer 'the shortest path') or simply have error build up as you take 'finite steps'. Indeed I believe that's what caused the "blue turns purple" problem in CIELAB back in the day, since it was fairly constant locally but had non-straight hue lines.

http://www.brucelindbloom.com/index.html?UPLab.html

CAM02 is certainly much more uniform than LAB (hence OS's using it to print these days) but I think the problem is still fundamentally there (especially once we start talking about 'appearance' given a 'surround' and so forth).

The Fairchild book is indeed a classic and a heavy hitter as you mentioned :) I can't claim to have read it cover to cover.

Another interesting (and somewhat unconventional) book is Jan Koenderink's "Color for the Sciences".