社区计算机视觉课程文档
什么是计算机视觉
并获得增强的文档体验
开始使用
什么是计算机视觉
让我们回顾一下上一章中的示例:踢球。正如我们所见,这涉及到我们大脑可以在瞬间完成的多个任务。从图像输入中提取有意义的信息是计算机视觉的核心。但是什么是计算机视觉呢?
定义
计算机视觉是使机器能够“看”的科学和技术。它涉及开发理论和算法方法,以获取、处理、分析和理解视觉数据,并使用这些信息来生成世界的有意义的表示、描述和解释(Forsyth & Ponce, Computer Vision: A Modern Approach)。

深度学习与计算机视觉的复兴
计算机视觉的演变以其跨学科领域的逐步进步为标志,每向前一步都催生了突破性的算法、硬件和数据,使其更强大、更灵活。其中一个飞跃是深度学习方法的广泛使用。
最初,为了提取和学习图像中的信息,您需要通过图像预处理技术(计算机视觉任务的预处理)提取特征。一旦您有了一组描述图像的特征,您就可以在特征数据集上使用经典的机器学习算法。这是一种已经简化了硬编码规则的策略,但它仍然依赖于领域知识和详尽的特征工程。当深度学习方法和大型数据集相遇时,出现了一种更先进的方法。深度学习 (DL) 允许机器自动从原始数据中学习复杂的特征。这种范式转变使我们能够构建更具适应性和复杂性的模型,从而引起该领域的复兴。
计算机视觉的种子早在 20 世纪 60 年代深度学习模型兴起之前就已播下,David Marr 和 Hans Moravec 等先驱人物一直在与一个基本问题作斗争:我们能让机器看到吗?早期的突破,如边缘检测算法、物体识别,是通过聪明才智和蛮力相结合实现的,这为开发计算机视觉系统奠定了基础。随着时间的推移,随着研究和开发的进步以及硬件能力的提高,计算机视觉社区呈指数级扩展。这个充满活力的社区由来自各个学科领域的研究人员、工程师、数据科学家和充满热情的爱好者组成,遍布全球。借助开源和社区驱动的项目,我们正在见证对尖端工具和技术的民主化访问,这有助于在该领域创造复兴。
与其他领域和图像理解的交叉学科
正如很难划清人工智能和计算机视觉之间的界限一样,也很难将计算机视觉与其相邻领域区分开来。以图像预处理和分析为例。一个暂定的区分是,图像分析的输入和输出始终是图像。然而,这是一种目光短浅的看法。即使是简单的任务,例如计算图像的中值,也会被归类为计算机视觉。为了阐明它们之间的差异,我们必须引入图像理解的新概念。
图像理解是理解图像内容的过程。它可以分为三个不同的层次
低级过程是对图像的原始操作(即图像锐化、更改对比度)。输入和输出都是图像。
中级过程包括分割、对象描述和对象分类。信息是图像,但结果是与图像关联的属性。这可以通过图像预处理和 ML 算法的组合来完成。
高级过程包括理解图像的整体,即识别给定对象、场景重建和图像到文本。这些任务通常与人类认知相关联。
图像分析主要关注低级和中级过程。然而,计算机视觉对中级和高级过程感兴趣。因此,图像分析和计算机视觉之间在中级过程中存在重叠。
记住这一点至关重要,因为在数据贫乏的场景或简单图像中,投入资源来开发复杂的模型(例如神经网络)可能并不合适。从商业角度来看,模型开发需要花费时间和金钱;有必要知道何时使用正确的工具。
在转向更强大的模型之前,结合“预处理”部分是很常见的。另一方面,有时,神经网络的层会自动执行此类任务,从而无需显式预处理。对于那些熟悉数据科学的人来说,图像分析可以充当第一个探索性数据分析步骤。最后,经典的图像分析方法也可以用于数据增强,以提高计算机视觉模型训练数据的质量和多样性。
计算机视觉任务概述
我们之前已经看到,计算机视觉对于计算机来说真的很难,因为它们没有关于世界的先验知识。在我们的示例中,我们首先知道什么是球,如何跟踪它的运动,物体通常如何在空间中移动,如何估计球何时到达我们,你的脚在哪里,脚如何移动,以及如何估计击球所需的力。如果我们要将其分解为特定的计算机视觉任务,我们将有
- 场景识别
- 物体识别
- 物体检测
- 分割(实例、语义)
- 跟踪
- 动态环境适应
- 路径规划
您将在“计算机视觉任务”章节中阅读更多关于计算机视觉核心任务的内容。但是计算机视觉可以完成的任务还有很多!这是一个非详尽的列表
- 图像字幕
- 图像分类
- 图像描述
- 异常检测
- 图像生成
- 图像恢复
- 自主探索
- 定位
任务复杂度
图像分析和计算机视觉领域中给定任务的复杂性,不仅仅取决于一个受过教育的受众认为某个问题或任务多么高尚或困难。相反,它主要取决于正在分析的图像或数据的属性。以识别图像中的行人为例。对于人类观察者来说,这可能看起来很简单且相对容易,因为我们擅长识别人。然而,从计算的角度来看,此任务的复杂性会因照明条件、遮挡物的存在、图像分辨率和相机质量等因素而有很大差异。在弱光条件下或使用像素化图像时,即使是看似基本的行人检测任务对于计算机视觉算法来说也可能变得极其复杂,需要先进的图像增强和机器学习技术。因此,图像分析和计算机视觉中的挑战通常不在于任务的内在崇高性,而在于视觉数据的复杂性以及从中提取有意义的见解所需的计算方法。
计算机视觉应用链接
作为一个领域,计算机视觉在社会中的重要性日益增加。其应用存在许多伦理考量。例如,如果一个用于检测癌症的模型将癌症样本分类为健康,则可能会产生可怕的后果。监控技术(例如能够跟踪人员的模型)也引发了很多隐私问题。这将在“单元 12 - 伦理和偏见”中详细讨论。我们将在“计算机视觉的应用”中让您体验其一些很酷的应用。
< > 在 GitHub 上更新