计算机视觉是一个使用机器学习 (ML) 的领域,但严格来说不是机器学习的一个子集。 虽然机器学习为解决计算机视觉问题提供了关键工具,但计算机视觉包含更广泛的技术,包括传统的图像处理算法和特定领域的方法。 可以将机器学习视为计算机视觉工具箱中的主要工具之一,尤其是在需要从数据中学习模式的任务中,例如对象检测或图像分类。 然而,计算机视觉也涉及非 ML 方法,例如边缘检测滤波器或光流计算,这些方法依赖于数学模型而不是训练算法。
机器学习和计算机视觉交叉的一个关键领域是训练模型来解释视觉数据。 例如,卷积神经网络 (CNN) 是一种 ML 模型,广泛应用于计算机视觉中以识别图像中的模式。 面部识别、医学图像分析或自动驾驶汽车导航等任务依赖于在大型数据集上训练的 CNN。 这些模型直接从像素数据中学习特征,无需手动进行特征工程。 然而,计算机视觉系统通常将 ML 与非 ML 组件结合起来。 例如,自动驾驶汽车可能会使用传统的计算机视觉技术(例如通过 Canny 边缘检测进行车道检测)以及 ML 模型(例如用于识别行人的 CNN)来构建完整的解决方案。
区分这两个领域的目标非常重要。 机器学习侧重于创建从数据中学习的算法,而计算机视觉旨在从视觉输入中提取有意义的信息。 例如,图像预处理步骤(如调整大小、降噪或颜色空间转换)是计算机视觉的基础,但不涉及 ML。 同样,经典算法(如霍夫变换(用于检测几何形状)或 SIFT(用于特征匹配))是早于现代 ML 的计算机视觉的主要内容。 也就是说,ML 已经成为推进计算机视觉的核心——现代框架(如 PyTorch 或 TensorFlow)包含专门用于视觉任务的库(例如,TorchVision、TF Vision)。 这种集成突出了 ML 如何增强计算机视觉,即使这些领域在范围和方法上仍然不同。