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