AI内参_122_116_掌握计算机视觉任务的基础模型和操作
你好,我是洪亮杰。
今天我和你分享的主题是掌握计算机视觉任务的基础模型和操作。
今天我们来聊一聊计算机视觉的一些最基础的操作和任务,包括像素表达、过滤器和边界探测。
基于这些内容,我们一起讨论利用计算机来处理视觉问题的核心思路。
很多时候越是基础的内容就越重要。
因为只有掌握了基础的思路,我们才能在今后复杂的任务中灵活应用。
我们先来聊聊像素表达。
在上一次的分享中,我们谈到了计算机视觉任务中一个非常重要的步骤。
那就是把现实世界的信号通过感知仪器收集起来,然么在计算机系统中加以表达。
那么在所有的表达中,最基础的就是像素表达。
我们这里就展开说一说这种表达的思路。
把图像信息利用像素来进行表达,是一种非常直观简单的表达方式。
对于黑白图像来说,图像就被转换。
为了零或者一的二元矩阵,这个矩阵的每一个元素就是一个像素,零代表黑一则代表白。
对于灰度图像来说,每一个像素或者说是矩阵的,每一个元素代表灰度的强度从零到二百五十五零代表黑二百五十五代表白。
对于彩色的图像来说,我们一般要先选择一种模型来表示不同的颜色,一种较为流行的表达方式是RGB模型。
在这样的模型中,任何一个彩色图像都能够转化成为RGB这三种颜色表达的叠加。
具体来说,就是RGB分别代表三种不同的通道,每一个通道都是原始图像。
在这个通道,也就是这个原始颜色下的表达,每一个通道都是一个矩阵像素表达。
每一个像素代表着从零到二百五十五的值。
换句话说,一个彩色图像在RGB模型下是一个张量,也就是三个矩阵叠加在一起的结果。
针对像素你需要建立一种概念,那就是像素本身是对真实世界中的采样,每个像素是一个整数,整个像素表达并不是一个连续表达。
因此,再把世界上的连续信号采样到离散像素的这一过程中,难免会有失真,而不同的分辨率会带来失真程度。
不同的像素表达,既然已经把图像表达成为了像素,也就是某种矩阵的形式。
那我们就可以利用线性代数等工具在这个矩阵上进行变换,从而能够对图像进行某种操作,这就是过滤器的一个基本思想。
很多计算机视觉的操作本质上都是过滤器操作,除了把过滤器想成某种线性代数变换之外,更普遍的一种思路是把在矩阵上的操作想成某种函数的操作。
因此我们也可以认为过滤器是函数在某一个特定区间内的操作。
举一个最简单的过滤器的例子,就是移动平均这个过滤器的本质就是针对每一个像素点计算它周围九个像素点的平均值。
如果我们针对每一个像素进行这样的操作,就会得到一个新的矩阵。
然后我们把这个矩阵当做新的像素表达进行视觉化,就会发现是在原有图像基础上进行了柔化处理。
反过来,如果我们需要对某一个图像进行柔化处理,反需要对其进行移动平均过滤操作。
有了这个直观的例子,你一定能够想到很多我们熟知的图像特效处理,其实都对应着某种过滤器操作。
这里我们提及一种比较特殊的过滤处理,就叫做卷积这个概念。
在深学习中经常接触到刚才我们说到的移动平均这个过滤器。
如果我们把图像看作是一个函数f在某一个区域的取值,那么移动平均这个过滤器是针对函数在某一点的取值,通过利用同样的函数,f在周围的取值,从而得到一个新的计算值。
那卷积操作的思想是怎样的呢?卷积是针对f在某一个点的取值,除了需要利用f在周围的点以外,还需要利用另外一个函数。
这里称作是h的边界。
也就是说我们要利用h来针对f进行操作。
除了通过过滤器对图像进行简单操作之外,还有一些图像的基本操作蕴含了计算机视觉的基本原理。
我们这里也稍微做一些介绍。
例如,我们通常需要了解图像的边界,有研究表明,图像的边界对于人类认知图像的内涵有着特殊的意义。
因此,从一个完整的图像中找到不同物体的边界,是一个很有现实意义的任务。
并且通常被称作是边界探测。
那么怎么来认识图像中的物体边界呢?我们先从直观上来想一想,在图像中边界都有什么特征?一般来说,如果我们遇到了色彩景深、照明的突然变化,或者是其他某种图像特质上的突然变化,例们就有可能遇到了边界。
现在的问题是在像素或者函数表达的情况下,如何来描述和检测这些突然变化呢?在数学分析中,我们学过描述函数值变化的概念叫导数,或者梯度,虽度大小和梯度方向都包含了函数变化的重要信息。
虽然梯度从数学的角度来说,刻画了函数的变化,但是这对于设计一个实际的边界探测器依然是不够的。
一个好的边界探测器需要真正能够探测到边界,也就是要尽可能少的出现错误。
能够对边界进行定位的同时,还需要尽量使边界平滑和链接。
在真实的边界探测中,我们往往先让图像变得更加平滑,比如利用高斯柔化的办法,然后在这个基础上计算梯度大小和方向,有了这些之后,再进行一些后期处理。
今天我和你分享了计算机视觉的一些基本数学模型和操作,一起来回顾一下要点。
第一,像素是对真实世界的采样,我们分别讲了对黑白灰度和彩色图像的像素表达。
第二,我们讲了在像素表达之上的过滤器,介绍了移动平均和卷积两种方式。
第三,我们简要提及了利用函数的梯度计算来进行边界检测的任务。
最后给你留一个思考题,从边界检测的任务中如何知道检测到的像素是真正属于边界呢?欢迎你给我留言,和我一起讨论。