历史上的今天
今天是:2025年04月01日(星期二)
2020年04月01日 | 如何让机器感知真正的彩色世界
2020-04-01 来源:EEworld
摘要:你能准确说出不同颜色的名字吗?XYZ三刺激值和RGB三原色的区别在哪?光谱传感器又是什么新玩意?如果连肉眼都能明显看出的颜色变化,传感器却无法区分开来,产品的可靠性还能保证吗?欢迎来到《走进色彩》。
首先,各位请带着这么个问题,来仔细查看以下三张图片——
“这到底是个什么颜色??”



“白色?暗白色?灰色?浅灰色?”相信各位都很难有一个准确的回答。或者我们可以再做这么个小实验:打开你的手机,找到一个白色的地方,然后逐渐把屏幕亮度调低——你会发现,随着屏幕变暗,这个白色渐渐就变为“灰色”了。甚至你还可以这么理解——“黑色,就是亮度为0的白色!”
其实颜色的概念,可以分为两部分:明度(亮度)和色度。上述三种颜色,我们都可以称之为“白色”,只是它们的亮度不一样。
一、“颜色”
再来科普一下,我们肉眼是如何看见“颜色”的——
人类的视网膜上的有视杆细胞和视锥细胞,其中视锥细胞用于感知强光和负责色觉。视锥细胞有L、M、S型有三种,分别对红色(Long长波)、绿色(Medium中波)、蓝色(Short短波)敏感,见下图:

正是因为有这三种细胞的存在,红、绿、蓝才成了我们人类的三原色,要注意的是,红、绿、蓝之所以是三原色,不是因为物理原因,而是生理原因,比如鸟类有四种感知波长的细胞,如果它也是像人类一样感知色彩的话,那它的原色是四种。
红色光和绿色光混合可以看到黄色光,那是因为这种混合产生的复色光对视锥细胞的刺激和黄色的单色光对视锥细胞的刺激等效,但实际上两者本质上是不同的,只是因为人眼的特性,才使得二者看起来一样。黄色的复色光和黄色的单色光的光谱是不一样的!
二、CIE 1931 XYZ颜色空间
在红、绿,蓝三原色系统中,红、绿、蓝的刺激量分别以R、G、B表示之。由于从实际光谱中选定的红、绿、蓝三原色光不可能调配出存在于自然界的所有色彩,所以,CIE(国际照明委员会)于1931年从理论上假设了并不存在于自然界的三种原色,即理论三原色,以X,Y,Z表示,以期从理论上来调配一切色彩,从而形成了XYZ测色系统。
X原色相当于饱和度比光谱红还要高的红紫,Y原色相当于饱和度比520nm的光谱绿还要高的绿,Z原色相当于饱和度比477nm的光谱蓝还要高的蓝。
CIE XYZ颜色空间稍加变换就可得到Yxy色彩空间,其中Y取三刺激值中Y的值,表示亮度(明度),x、y反映颜色的色度特性——借此,我们也就有了一个更好的手段,来进行对颜色的考量!

三、ams光谱传感器
“那有没有合适的传感器推荐呢?是XYZ传感器吗?”
“有!但不是XYZ传感器,是艾迈斯半导体(ams)的多通道光谱传感器:AS7341!客官请往下看!”
AS7341特点:
8个可见光通道——380nm~710nm
既可准确分辨出不同颜色光中的光谱成分,又可以通过ams提供的后端算法,准确地获得XYZ三刺激值和Yxy色度、明度值。不同场合不同用法!
NIR通道:可以得出近红外数据,做些简单的物质判别、区分,如扫地机器人中的地毯检测。
Flicker通道:可以检测环境中的光源闪烁(50Hz-1KHz)。
功耗: 210µA normal, 0.7µA sleep。
芯片尺寸3.1 x 2 x 1mm (OLGA 8 package)。


有了AS7341,我们就可以实现以下的常见应用:
液体的颜色/色差判别、变化速率
化学试纸颜色判别
水质浊度判断
扫地机器人—--地毯检测
光源CCT色温测量
当然啦,光谱传感器能实现什么具体的功能,全靠各位客官的想象力,上述只是笔者的简单应用分享。


值得一提的是,AS7341刚在2019年的ASPENCORE全球双峰会上,斩获了“年度传感器”奖。相信在未来,ams还会不断推出各种充满惊喜的传感器方案!
史海拾趣
|
1.概述 也许您曾经想过无线网络的应用,但是您听到的说法让您犹豫再三。您的同事告诉您,无线应用不但复杂而且昂贵。您的老板提到可靠性和升级的问题。或者,在您最后一次参加的技术会议上,与会者提到了太多太多的安全风险问题。 虽然各种形 ...… 查看全部问答> |
|
大家好,现在实验中要对模拟信号精确处理,模拟信号Vo为电流传感器输出,经过隔离芯片后为Vin,然后送到跟随器,由于隔离芯片有误差,导致Vin高于Vo,差值为0.02v,为固定值,请问如何才能才能使用模拟电路抵消0.02v的差值?(见附件) [ 本帖最后 ...… 查看全部问答> |
|
昨天,一应用程序员反问了这个问题 在写向flash写数据的时候,突然断电,下次再启动的时候。这个文件变成不可读写了,说是写保护了。 请问大家是否遇到这种情况了? 我看了两个类似的帖子。 http://topic.eeworld.net/u/20080616/11/C34E5388-9 ...… 查看全部问答> |
|
一 控件与控制概述 控件与控制,其实我的意思是想说,用控件去控制开发板上的资源,比如让led发光。从网页里传一句话到开发板,然后让串口打印出来。还有就是像设置串口波特率等。   ...… 查看全部问答> |
|
最近用了Altera的IP核做FFT,仿真了半天,结果想下载到板子上的时候,才发现OpenCore Plus生成的核貌似只能生成XX_time_limited.sof文件,不能转成 .pof,而且还有一个时限。 项目离结题的时间不远了,不知这个时限有多久。如果是1个小时,那就只 ...… 查看全部问答> |
|
LM3S811学习笔记(2)-UART通信 UART通信(1) 使用串口0实现将接收的数据立马发送出去使用了库函数实现 效果图 程序 文件Test.c #include \"LM3Sxxx.h\"#include \"myUART.h\" int main(void){ /* 初始化 ...… 查看全部问答> |
|
最近这几年移动电源火爆异常,都缘于手机在进入智能时代之后性能和功能都变得越来越强大,但与之形成鲜明对比的则是电池技术的龟速发展。眼下困扰智能手机用户的除了电池续航不给力之外 ,导致电池供电成了问题,移动电源借机发力,,,,,看看这 ...… 查看全部问答> |




