2017-08-04 13:30 来源:量子位 数码 /计算机 /操作系统 颜萌 整理编辑 近日,在DeeCamp创新工场深度学习训练营期间,创新工场AI工程院副院长王嘉平开讲《low-level的计算机视觉》一课。 量子位把课程全部内容整理如下: 今天要和大家一起聊一聊的是low-level的computer vision。 当下这个时代,high-level vision已经有了长足的进展,在包括face recognition, 自动驾驶等的领域提到的次数也越来越多。 那我为什么要讲low-level vision呢?我们知道在high-level vision task的中,machine learning很强大,只要给它一些数据,足够的资料,它就可以学出来。但我们更需要关心一下数据是怎么来的,数据本身有些什么样的问题。这些都和low-level vision有关。如果了解了low-level vision,做 high-level vision的时候有非常大的帮助。 我举一个例子。 很久以前在做OCR的时候, 我们要在image中把图像识别出来,而machine learning task拿到的数据不是无限的,只cover了一部分,这当中隐含了一些不想要的数据的变化,比如OCR上的光照的变化,渐变和一些distortion,而且跟这个字具体是哪个字无关。 但是如果你不去掉这些变化,直接往machine learning model里面丢,如果数据足够的多,当然model可以把这些无关的变化和有关的变化分开,但事实上没有那么多的数据。如果你学了low-level vision,你就可以想是否能预先把这些variation去掉,再送到machine learning 里面去,会使后面的machine learning更高效,依赖于更少的数据。 CV涉及很多方面,从信号的获取,处理分析到最后的understanding,和很多学科都有关系,像machine learning,optics,computer graphics,并这关乎我们对于真实世界的理解,但由于传感器的限制,我们这样的理解通常来自二维或者一维的投影,而不是完整的三维的数据。 所以这件事情基本上是整个CV,尤其是3D CV最大的挑战。 首先对于CV,计算机看到了什么? 对于这张图来说,虽然已经是三维空间的投影,但也不是三维空间本身,我们只看到了一个侧面。很多物体被遮挡了,很多信息被丢失了。 对一张图像来讲,我们量化了每个方向上接受的光子的通量,并且离散化,拿到了一个包含很多值的数据集。每个值代表了传感器上一小块面积所接收到的单位时间里的光通量。光强越大,值就越大。这就是计算机看到的图像。 我们先讲一个pixel上的value是怎么来的。要提到的是,它上面可能是luminance,也可能是luminance per channel。我们现在看到RGB,也就是3个channel。 channel代表颜色。而颜色没有单位,因为颜色不是物理量,atv,是主观的量,本质上是我们的传感器也就是眼睛看到不同的光谱时在感光器上激发的量,真正的背后的物理量是光谱,也就是在不同频段上能量的分布。 人之所以感觉到颜色,是人类视觉系统用这三个积函数去积分了所接受的光谱,最后形成了三个感光细胞所拿到的系数,然后映射到RGB的色彩空间。 色彩既然是主观的,不同的生物也不一样,这和生物在整个生态系统所处的位置是有关系的,是生物进化导致的。 颜色不是绝对的。 除了直接去观察光源,大部分颜色是光源的颜色和物体表面所反射的系数乘积得到的颜色,是叠加反射系数的颜色最终看到的。这就意味着我们看到的不是物体本真的反射光谱的分布,而是它跟光源交互的结果。所以在现实中不同的物体反射出的差别很大。 描述各种反射特性的物理量叫BRDF。 (责任编辑:本港台直播) |