[CS131] Lecture 2 Color and Linear Algebra

根据 Stanford CS131 课程写的笔记(大部分为 note 翻译),英语水平一般,如有错误请评论指正

Lecture 2 Color and Linear Algebra

颜色物理学

什么是颜色?

颜色是环境中的物理光和我们视觉系统交互的结果。它是一种我们在看物品和光时的视觉体验的心理性质,而不是这些物品和光的物理性质。

颜色和光

白光由几乎平均能量的可视光谱的波长组成

电磁光谱

光由不同波长的波组成,可视光谱范围从 400nm 到 700nm,人类对可视光谱中间部分最敏感。人类只能看到可视光谱的原因的太阳发射黄光最多,而且温度较高。

可视光

Plank’s Law 基于星球的表面温度测量电磁辐射发出的波长。

物理光

任何光都可以用它的光谱描述(每秒钟发射的波长在 400-700nm 之间的能量)。物品反射的光时常集中于可视光谱的特定部分,因此物品呈现出不同颜色,例如:香蕉的黄色、番茄的红色。

光和表面的交互

反射的颜色是光源范围和物品表面反射交互的结果。通常,单位和定义是 per unit wavelengths,关系是光谱而不是单独的波长。光照度被量化为:光照度 * 反射度 = 颜色信号

人类对颜色的编码

Rods and Cones

视网膜上主要包含两种光敏感细胞:rods and cones。Rods 数量更多且更敏感,用于低光环境下的物品检测。而 cones 则相反,数量少且不敏感,用于高光环境下的检测。这两种细胞帮助我们通过一种机制感知颜色。

Cones 和颜色

rods 和 cones 的主要不同处在于 cones 以三种不同形式出现,每种以一个独特的对光不同波长的反应曲线为特征。每个反应曲线高峰位于 440(蓝), 530(绿), 560nm(红)。然而,rods 和 cones 运作方式像过滤器,输出的结果是光谱上所有波长的整合,所以一些信息会丢失。这意味着一些光谱的子集会被错误的整合成一样的,这种光谱称称为 metamers

颜色匹配

因为我们要设计一个对所有人都提供一致视觉体验的系统,所以理解可以创造所有可感知颜色的最小数量的颜色很有帮助。通过一系列研究,红黄蓝是最充分的编码颜色。

色彩空间

定义

色彩空间是一个抽象的数学模型,它用数字元组描述了一些列颜色,例如 RGB。一个颜色空间可以是任意的或者有数学结构的,几乎所有颜色模型都能匹配到一个绝对的和全球的颜色解释理解系统。

线性颜色空间

由三原色定义,其数值代表某种原色的权重。因为两种原色只能在直线上表示颜色,但三种原色可以在空间上表示颜色。

  • RGB Space

    • 原色是单色(对于监视器,它们对应三种不同的磷光体)
    • 减法匹配需要光的特定波长
    • 下图 RGB 的原色和匹配函数。匹配函数表示在水平尺度上显示的波长的单色测试颜色所需的原色数量。

  • CIE XYZ Color Space

    • 原色是虚构的,但匹配方程处处为正
    • Y 向量对应一个颜色的亮度
    • 通过线性转化和 RGB Space 相关联,在 Grassmann’s Law 之上

非线性颜色空间:HSV

  • 用于反射更多传统和直觉色彩混合模型(例如:颜料混合)

  • 基于颜色如何在人的视觉中组织和概念化。

  • 维度:色彩、饱和度、强度

白平衡

定义

白平衡是将传感器接收到的图片数据调整至合适的呈现中性的颜色(灰、白等等)的过程。

白平衡的重要性

  1. 相机的传感器和人眼感受不同
  2. 不同的显示媒体渲染图像的方式不同
  3. 照片被拍下时的观察条件和照片的观察条件不同

Von Kries Method

按增益系数将每个通道缩放至匹配灰度中性物品的外观。通过 Gray Card Method(灰卡方法)实现:假设一个卡的中性值为 r w , g w , b w ,那么我们将每个通道通过 1 / r w , 1 / g w , 1 / b w 缩放。

其他方法

如果不用灰卡方法,我们需要猜测哪个像素对应白色物体。

  • Gray World Assumption

    假设平均像素值为灰值 r a v e , g a v e , b a v e ,那么我们将每个通道通过 1 / r a v e , 1 / g a v e , 1 / b a v e 缩放。

  • Brightest Pixel Assumption

    适用于不饱和图像,对每个通道依据最亮的像素以反比例加权。

  • Gamut Mapping

    Gamut 是图像上所有像素颜色的一个集合,也是所有颜色可能结合的子集。接下来我们可以将图片的 gamut 映射到标准白光下的 gamut

颜色在计算机视觉中的其他应用

皮肤检测、图像分割

线性代数引入:向量与矩阵

向量

列向量 (column vector) v , 行向量 (row vector) v T ,CS131 默认使用列向量。

矩阵

matrix m 行 n 列,若 m=n 则为 square

image 在 python 中表现为一个像素亮度矩阵,左上角表示为 [y,x]。

Grayscale images 储存于 m x n 矩阵中

Color images 储存于 m x n x 3 矩阵中,多了一个维度表示 RGB 三个值

基本矩阵运算

Norm | | x | | 2 = i = 1 n x i 2

更广泛来讲,norm 是任何满足以下条件的函数:

  1. 非负性
  2. 当且仅当 x = 0 时, f ( x ) = 0
  3. f ( t x ) = | t | f ( x )
  4. f ( x + y ) f ( x ) + f ( y )

例如:

One Norm | | x | | 1 = i = 1 n | x i |

Infinity Norm | | x | | i n f = m a x i | x i |

General P Norm | | x | | p = ( i = 1 n x i p ) 1 / p

Matrix Norm | | A | | F = i = 1 n j = 1 n A i j 2 = t r ( A T A )

Inner or Dot Product 内积或点乘,返回 Projection。如果 B 是一个单位向量,则 A·B 返回 A 在 B 方向上的长度

Determinant d e t ( A ) 返回一个标量, A = [ a b c d ] d e t ( A ) = a d b c

性质:

  • d e t ( A 1 ) = 1 / d e t ( A )
  • d e t ( A T ) = d e t ( A )

Trace t r ( A ) 为对角线上元素和

性质: t r ( A + B ) = t r ( A ) + t r ( B )

Transpose 转置矩阵,表示为 A T ,且 ( A B C ) T = C T B T A T

Identity Matrix 缩写为 I ,表示单位矩阵

Diagonal Matrix 和单位矩阵区别在于对角线上不一定是 1,可以为其他数字

Symmetric Matrix 对称矩阵 A T = A

Skew-symmetric Matrix A T = A

猜你喜欢

转载自blog.csdn.net/bear507/article/details/82316159
今日推荐