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

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