编者按:本文来自微信公众号“将门创投”(ID:thejiangmen),作者 让创新获得认可,36氪经授权发布。原题目《色盲不盲,谷歌提出更清晰的可视化颜色映射Turbo》
伪彩色图在计算机视觉和机器学习中具有重要的应用,从深度图的可视化到类似图像差分等抽象应用都需要伪彩色图来帮助我们理解视觉信息。彩色画的图像帮助人类提升对于细节的理解能力,定量估计数值并更有效直观地识别出数据中的模式。
为了解决这些问题,目前有很多均匀和色盲人士可以使用的颜色映射图,例如绘图工具包matplotlib中的Viridis(左)和Inferno(右)映射。这类线性亮度映射解决了Jet中的很多问题,但依然存在一些限制使得这类线性颜色映射函数不是某些任务的最优方法。
谷歌的研究人员希望解决这些颜色映射中存在的问题,为计算机视觉和机器学习提出更好的彩色映射方案,提出了一种新的映射机制——Turbo。它可以有效除了伪细节、错误的颜色带,并为色盲人士提供更为准确的信息。Turbo针对多种可视化任务进行了手工调教,确保对视觉信息进行有效呈现。
研究人员为了构建Turbo映射,利用一个简单的交互界面来利用七节点的三次样条对sRGB曲线进行调整,并与其它颜色映射进行比较。
这种方式创建的Turbo颜色映射可以在保持曲线C2连续性的同时进行控制。虽然最终的颜色结果不是感知线性的,但它比jet更为平滑,不会引入错误的细节。
与其他颜色映射的比较
Viridis是一种具有代表性的颜色映射方法,因为它对于人眼比较适宜同时能修复某些Jet映射的问题。Inferno具有Viridis线性特性的同时还具有更高的对比度,使得细节能够得到更好的展现。然而,这些色彩映射会产生一些刺眼的视觉效果,虽然在出版业中没有太多影响,但确实会影响人们基于伪彩图进行的决策。
由于颜色和强度的剧烈变化,Jet相较于Viridis和Inferno会削弱背景的细节,最终基于数据呈现出的图像会让人眼遗失很多细节。而Turbo则通过非线性映射将背景进行了强化。下图中可以看到在Inferno中远处的背景几乎无法看清,而Turbo映射中远处的背景数目则依然为人眼所见。
Turbo模拟了Jet的光强特性,映射的强度从低到高在从高到低,但却没有显著的强度带阻隔。下图显示了四种不同颜色银蛇的强度值曲线,可以看到Turbo的强度值基本对称分布,使得它在单侧的斜率几乎是Viridis和Inferno的两倍,在高地两侧将有效的提升对比度。同时低侧的斜率和高侧的斜率不同,这是因为人类感知的蓝色比红色更强。
虽然这种低高低的曲线可以增强细节,但却会造成强度的模糊。将彩色图转换为灰度图时会造成较低的值与较高的值得到相同的取值,这意味着Turbo不适合于灰度打印也不适合于罕见全色盲人士。
当快速评估两张图像时,基于颜色的比较要比基于强度的比较更容易。例如在单图像深度估计任务中,基准图像与预测图像间的比较,Turbo颜色相较于Viridis就更容易区分和辨别误差。
Turbo作为作为Jet的替代品,对于高对比度、视觉平滑等方面进行了有效处理,可以应用于深度图等表示绝对值的图像也可以应用于表示差异的伪彩色图像中,使其具有平滑的视觉效果、对比度更好的细节、更好的语义感知以及差异分析等优势。开发人员同时推出C/CPP和python的接口,同时也给出了多项式近似供开发者使用。
更多详细信息请参看:
http://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html