面试AI技术内参-116掌握计算机视觉任务的基础模型和操作


116 掌握计算机视觉任务的基础模型和操作

今天,我们来聊一聊计算机视觉的一些最基础的操作和任务,包括像素表达、过滤器和边界探测。基于这些内容,我们一起讨论利用计算机来处理视觉问题的核心思路。很多时候,越是基础的内容就越重要,因为只有掌握了基础的思路,我们才能在今后复杂的任务中灵活应用。

像素表达

我们在上一次的分享中谈到了计算机视觉任务中一个非常重要的步骤,那就是把现实世界的信号通过感知仪器(Sensing Device)收集起来,然后在计算机系统中加以表达。那么,在所有的表达中,最基础的就是”像素表达“(Pixel)。我们这里就展开说一说这种表达的思路。

把图像信息利用像素来进行表达是一种非常直观简单的表达方式。

对于黑白图像来说,图像就被转换为了0或者1的二元矩阵。这个矩阵的每一个元素就是一个像素,0代表黑,1则代表白。

对于灰度图像来说,每一个像素,或者说是矩阵的每一个元素,代表灰度的”强度“(Intensity),从0到255,0代表黑,255代表白。

对于彩色的图像来说,我们一般要先选择一种模型来表示不同的颜色。一种较为流行的表达方式是RGB(红、绿、蓝)模型。在这样的模型中,任何一个彩色图像都能够转化成为RGB这三种颜色表达的叠加。具体来说,就是RGB分别代表三种不同的"通道”(Channel)。每一种通道都是原始图像在这个通道,也就是这个原始颜色下的表达。每一个通道都是一个矩阵像素表达。每一个像素代表着从0到255的值。换句话说,一个彩色图像在RGB模型下,是一个"张量”(Tensor),也就是三个矩阵叠加在一起的结果。

针对像素,你需要建立一种概念,那就是像素本身是对真实世界中的"采样”(Sample)。每一个像素是一个整数,整个像素表达并不是一个"连续”(Continuous)表达。因此,在把世界上的连续信号采样到离散像素的这一过程中,难免会有失真。而不同的"分辨率”,会带来失真程度不同的像素表达。

过滤器

既然已经把图像表达成为了像素,也就是某种矩阵的形式,那么我们就可以利用线性代数等工具在这个矩阵上进行变换,从而能够对图像进行某种操作。这就是"过滤器”(Filter)的一个基本思想。 很多计算机视觉的操作本质上都是过滤器操作*。除了把过滤器想成某种线性代数变换之外,更普遍的一种思路是把在矩阵上的操作想成某种函数的操作。因此,我们也可以认为过滤器是函数在某一个特定区间内的操作。

举一个最简单的过滤器的例子,就是”移动平均“(Moving Average)。这个过滤器的本质就是针对每一个像素点,计算它周围9个像素点的平均值。如果我们针对每一个像素进行这样的操作,就会得到一个新的矩阵。然后我们把这个矩阵当作新的像素表达进行视觉化,就会发现是在原有图像基础上进行了"柔化"处理。反过来,如果我们需要对某一个图像进行柔化处理,就需要对其进行"移动平均"过滤操作。

有了这个直观的例子,你一定能够想到,很多我们熟知的图像特效处理,其实都对应着某种过滤器操作。

这里,我们提及一种比较特殊的过滤处理,那就是”卷积“(Convolution)。这个概念我们在深度学习中经常接触到。

刚才我们说到"移动平均"这个过滤器。如果我们把图像看作是一个函数F在某一个区域的取值,那么,“移动平均"这个过滤器是针对函数在某一点的取值(也就是某一个像素的取值),通过利用同样的函数F在周围的取值,从而得到一个新的计算值。

那卷积操作的思想是怎样的呢?卷积是针对F在某一个点的取值,除了需要利用F在周围的点以外,还需要利用另外一个函数,这里称作是H的取值。也就是说,我们要利用H来针对F进行操作。

边界探测

除了通过过滤器对图像进行简单操作之外,还有一些图像的基本操作蕴含了计算机视觉的基本原理。我们这里也稍微做一些介绍。

例如我们通常需要了解图像的边界。有研究表明,图像的边界对于人类认知图像的内涵有着特殊的意义。因此从一个完整的图像中找到不同物体的边界是一个很有现实意义的任务,并且通常被称作是”边界探测“(Edge Detection)。

那么,怎么来认识图像中的物体边界呢?我们先从直观上来想一想,在图像中,“边界"都有什么特征?一般来说,如果我们遇到了色彩、景深、照明的突然变化,或者是其他某种图像特质上的突然变化,我们就有可能遇到了边界。现在的问题是,在像素或者函数表达的情况下,如何来描述和检测这些"突然变化”?

在数学分析中我们学过,描述函数值变化的概念叫"导数"或者"梯度”(Gradient)。梯度大小(Gradient Magnitude)和梯度方向(Gradient Direction)都包含了函数变化的重要信息。

虽然梯度从数学的角度来说刻画了函数的变化,但是这对于设计一个实际的边界探测器依然是不够的。一个好的边界探测器需要真正能够探测到边界,也就是要尽可能少地出现错误,能够对边界进行定位(Location)的同时还需要尽量使边界平滑和链接。

在真实的边界探测中,我们往往先让图像变得更加平滑,比如利用”高斯柔化 “(Gaussian Blur)的办法,然后在这个基础上计算梯度大小和方向,有了这些之后再进行一些后期处理。

小结

今天我和分享了计算机视觉的一些基本数学模型和操作。

一起来回顾下要点:第一,像素是对真实世界的采样,我们分别讲了对黑白、灰度和彩色图像的像素表达;第二,我们讲了在像素表达之上的过滤器,介绍了移动平均和卷积两种方式;第三,我们简要提及了利用函数的梯度计算来进行边界检测的任务。

最后,给你留一个思考题,从边界检测的任务中,如何知道检测到的像素是真正属于边界呢?

文章列表

更多推荐

更多
  • AWS自动化机器学习-十一、MLSDLC 的持续集成、部署和训练 技术要求,编纂持续集成阶段,管理持续部署阶段,管理持续训练,延伸,构建集成工件,构建测试工件,构建生产工件,自动化持续集成流程,回顾构建阶段,回顾测试阶段,审查部署和维护阶段,回顾应用用户体验,创建新的鲍鱼调查数据,回顾持续训练流程,清
    Apache CN

  • AWS自动化机器学习-六、使用 AWS 步骤函数自动化机器学习过程 技术要求,介绍 AWS 步骤功能,使用 Step 函数 Data Science SDK for CI/CD,建立 CI/CD 渠道资源,创建状态机,解决状态机的复杂性,更新开发环境,创建管道工件库,构建管道应用构件,部署 CI/CD
    Apache CN

  • AWS自动化机器学习-第三部分:优化以源代码为中心的自动化机器学习方法 本节将向您介绍整体 CI/CD 流程的局限性,以及如何将 ML 从业者的角色进一步整合到管道构建流程中。本节还将介绍这种角色集成如何简化自动化过程,并通过向您介绍 AWS Step 函数向您展示一种优化的方法。本节包括以下章节:
    Apache CN

  • AWS自动化机器学习-一、AWS 上的自动化机器学习入门 技术要求,洗钱流程概述,洗钱过程的复杂性,端到端 ML 流程示例,AWS 如何使 ML 开发和部署过程更容易自动化,介绍 ACME 渔业物流,ML 的情况,从数据中获得洞察力,建立正确的模型,训练模型,评估训练好的模型,探索可能的后续步
    Apache CN

  • AWS自动化机器学习-二、使用 SageMaker 自动驾驶器自动化机器学习模型开发 技术要求,介绍 AWS AI 和 ML 前景,SageMaker 自动驾驶器概述,利用 SageMaker 自动驾驶器克服自动化挑战,使用 SageMaker SDK 自动化 ML 实验,SageMaker Studio 入门,准备实验
    Apache CN

  • AWS自动化机器学习-四、机器学习的持续集成和持续交(CI/CD) 四、机器学习的持续集成和持续交CI/CD技术要求,介绍 CI/CD 方法,通过 CI/CD 实现 ML 自动化,在 AWS 上创建 CI/CD 管道,介绍 CI/CD 的 CI 部分,介绍 CI/CD 的 CD 部分,结束循环,采取以部
    Apache CN

  • AWS自动化机器学习-九、使用 Amazon Managed Workflows 为 Apache AirFlow 构建 ML 工作流 技术要求,开发以数据为中心的工作流程,创建合成鲍鱼调查数据,执行以数据为中心的工作流程,构建和单元测试数据 ETL 工件,构建气流 DAG,清理, 在前面的年龄计算器示例中,我们了解了如何通过 ML 从业者和开发人员团队之间的跨职能
    Apache CN

  • AWS自动化机器学习-七、使用 AWS 步骤函数构建 ML 工作流 技术要求,构建状态机工作流,执行集成测试,监控管道进度,设置服务权限,创建 ML 工作流程, 在本章中,我们将从第六章中的 [处继续,使用 AWS 步骤函数自动化机器学习过程。您将从那一章中回忆起,我们正在努力实现的主要目标是简化
    Apache CN

  • AWS自动化机器学习-八、使用 Apache Airflow 实现机器学习过程的自动化 技术要求,介绍阿帕奇气流,介绍亚马逊 MWAA,利用气流处理鲍鱼数据集,配置 MWAA 系统的先决条件,配置 MWAA 环境, 当建立一个 ML 模型时,有一个所有 ML 从业者都知道的基本原则;也就是说,最大似然模型只有在数据被训练时
    Apache CN

  • AWS自动化机器学习-五、自动化 ML 模型的持续部署 技术要求,部署 CI/CD 管道,构建 ML 模型工件,执行自动化 ML 模型部署,整理管道结构,创建 CDK 应用,部署管道应用,查看建模文件,审查申请文件,查看模型服务文件,查看容器构建文件,提交 ML 工件,清理, 在 [第 4
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多