计算机视觉的深度学习

2025年6月18日 | 阅读 7 分钟

计算机视觉是人工智能的一个分支,与深度学习相关。计算机视觉(CV)是数据科学领域的一个分支,致力于图像或视频内容的解释和理解。CV算法分析给定场景或图像中的某些特征,并利用这些信息来做出未来的预测或决策。

目前,深度学习方法是计算机视觉领域最受欢迎的趋势。本文将讨论深度学习在CV背景下的实际应用,重点关注卷积神经网络(CNN)。CNN使用卷积结构,网络可以关注图像中最重要的方面,从而提高准确性和速度。

什么是计算机视觉(CV)?

计算机视觉是学习框架的一个子领域,专门针对机器分析和理解图像及视频的能力。这是一种赋予计算机视觉能力的技术,并使其能够处理视觉信息,以执行通常由人类完成的任务。

CV成功地开发出经过训练的模型,这些模型可以提取图像和视频的特征和模式,从而能够对其进行有效的解释。由此产生的解释用于诸如预测或决策之类的任务。

然而,计算机视觉与图像处理完全不同,前者着眼于理解图像中的内容。图像处理主要处理增强图像、修改图像或以某种方式使用图像,从而在亮度、提高分辨率、模糊文本或擦除图像的某些部分方面产生特定的最终产品。在计算机视觉中,后者与理解特定图像或视频中表示的内容无关。

计算机视觉的演变

早期(20世纪60年代-80年代)

计算机视觉领域在20世纪60年代作为人工智能和计算机科学的一部分发展起来。最初,该领域被应用于低级视觉任务,如边缘检测、物体识别和使用几何方法进行3D重建。轮廓和边界查找也是这一时期的热门话题,Roberts、Sobel和Canny边缘检测器是一些最早的创造。

基于特征的方法的兴起(20世纪90年代-21世纪初)

20世纪90年代,出现了向基于特征的方法的重要转变。从这些实验中,关键点检测和局部描述符得到了发展,以解决图像匹配和物体识别问题。第一个是基于Lowe于2004年开发的尺度不变特征变换(SIFT),以及Bay等人于2006年提出的加速鲁棒特征(SURF)。这些算法计算了对旋转、缩放和光照变化等变换不变的特征,这些特征对于建立图像之间的对应关系至关重要。在此期间,机器学习方法也有所改进,最广为人知的是支持向量机(SVM),因为计算机在计算机视觉中主要用于分类。

机器学习的出现(21世纪初)

值得注意的是,机器学习方法通过允许模型从数据中学习,以不同的方式推动了计算机视觉的发展。主成分分析(PCA)和词袋模型等方法出现在人脸检测和图像分类等问题中。然而,这些方法通常严重依赖于手动特征提取,这是一个缺点。

卷积神经网络

人类脊柱起着天然支撑的作用,而现代计算机视觉的骨干则基于曲线的结构。

CNN是当前计算机视觉的关键技术,在识别精度方面优于传统的图像处理方法。

CNN采用多层概念,从每个阶段开始执行有意识的数据和计算省略。然后,这些特征被用于与现有的训练数据集进行识别/分类比较。尽管CNN主要与计算机视觉相关,但它在文本和音频等其他数据处理方面具有更广泛的可能性。该领域的一个模型AlexNet通过在2012年ImageNet视觉识别挑战赛中取得领先,为计算机视觉的发展铺平了道路。

CNN如何工作

当CNN分析图像时,它会将每种基本颜色(例如,红色、绿色和蓝色)分解为一组值。这些值被转换为3D张量,即特征图的堆栈,对应于图像的某个部分。

该过程需要将图像通过第一个卷积层和第二个池化层。最大池化层将此结果缩小为连续的紧凑矩阵,而卷积层则用于提取重要特征。这个过程通过各种层以分层的方式进行。最后,低秩特征会通过一个全连接层,该层会产生预测。

计算机视觉领域及其当前发展趋势

CNN的性能很大程度上取决于其结构,特别是层是如何排列和设计的。已经提出了许多CNN的改进,其中许多都表现出色,并具有新的创新结构。

AlexNet

与LeNet类似,AlexNet的架构也由5个卷积层和3个全连接层组成。它采用了双管道架构,以利用两个GPU进行更快地训练。AlexNet架构的一个主要变化是使用了ReLU(Rectified Linear Unit)激活函数,而不是其他sigmoid或Tanh函数。ReLU降低了计算强度并加快了模型的学习速度,从而使AlexNet更出色。

GoogleNet (Inception V1)

与LeNet一样,GoogleNet也由22层组成,分为称为“inception模块”的小段,这些模块是卷积的段。这些模块采用批归一化和RMSprop优化,将参数数量降至最低。与许多其他随机梯度下降优化算法一样,RMSprop使用自适应学习率,从而更容易训练。

VGGNet

VGGNet,其中VGG 16(16层,部分衍生达到19层)注重使用小滤波器的深层网络结构。它们专门使用3×3的卷积,处理相邻像素,并且参数数量少,这使得包含更多层成为可能。即使使用小过滤器,VGG也能保持与单个7x7卷积层相同的有效感受野,同时具有相对较深的层次和计算效率。

每种架构都展现出一定的创新性,促进了现代计算机视觉问题的进步。

ResNet

ResNet代表残差神经网络(Residual Neural Network)。

在我们的例子中,ResNet能够拥有很深的层数,从ResNet-18的18层到ResNet-1202的1202层。其架构的主要思想是所谓的“跳跃连接”或“门控单元”,能够将信息传递过一层或多层,并将其发送到卷积层的后续层。这有助于缓解深度网络中普遍存在的梯度消失问题。ResNet还采用批归一化来稳定网络,如上所述。

Xception

Xception架构是作为Inception架构的修改而开发的,其中Inception模块被深度可分离卷积取代。它分别结合了深度卷积和点卷积,用于跨特征图和空间相关性。这种方法增强了对参数的需求,同时提供了高效的性能。

ResNeXt-50

ResNeXt-50提出了一种新的模块架构,每个模块有32个路径,称为“基数”(cardinality),以最小化验证误差。它简化了先前架构中使用的Inception模块,在不牺牲简单性的前提下提高了性能。

CNN在计算机视觉方面的最新进展

深度学习的进步提高了计算机视觉的效率和维度,从而增加了其应用。

目标检测

目标检测主要有两种方法

  • 两阶段目标检测:使用RPN生成区域建议,然后使用RCNN或Fast RCNN等架构进行分类。这种方法精度很高,但资源消耗大。
  • 单阶段目标检测
    YOLO、SSD和RetinaNet等单阶段模型可以实时工作,因为检测和分类在同一阶段完成。这些模型直接估计边界框的坐标,同时对这些对象进行分类。这减少了计算成本,并使方法比两阶段分析方法更快。

定位和目标检测

图像定位涉及使用边界框在图像中定位对象。目标识别通过AlexNet、Fast RCNN和Faster RCNN等CNN进一步实现定位。正是这些技术在二维和三维场景的多目标检测中得到了增强,并应用于诊断场景解释。

语义分割

语义分割或目标分割是目标检测的扩展,因为它不仅提供图像中目标的位置,还提供图像与特定目标之间的像素级关联。为此,有全卷积网络(FCNs),并且为了完整性,还有U-Nets。最重要的应用之一是训练自动驾驶汽车,其中街景图像的精确标注用于定义引导车辆的边缘。

姿态估计

姿态估计是指在2D或3D图像中定位关节,以理解图像中肢体排列方式所传达的运动或特定姿态。名为PoseNet的CNN是目前用于此目的最流行的架构。它应用于增强现实、机器人和步态分析等领域,在这些领域,现实生活中人类的运动或关节位置很重要。