本页面提供了 D2L.ai 仓库中实现的计算机视觉模型和技术的概述。计算机视觉是一个使机器能够根据视觉数据进行解释和决策的领域。在本仓库中,我们使用深度学习方法来处理各种计算机视觉任务,从基本图像分类到对象检测和语义分割等更复杂的任务。
有关卷积神经网络等基础概念,请参阅深度学习基础部分。
来源:chapter_computer-vision/index.md
代码库中的计算机视觉组件建立在卷积神经网络 (CNN) 的基础上,用于执行各种任务。主要架构遵循分层模式,其中基础模型(如 LeNet、AlexNet、ResNet)提供功能提取能力,这些能力会被特定任务的架构所利用。
来源:chapter_computer-vision/index.md, chapter_convolutional-neural-networks/index.md
卷积神经网络是此代码库中大多数计算机视觉应用的基础。关键组件包括:
实现的 सर्वात简单的 CNN 模型是 LeNet,它由两个卷积层后跟三个全连接层组成。LeNet 是理解更复杂的 CNN 架构的教育基础。
来源:chapter_convolutional-neural-networks/lenet.md, chapter_convolutional-neural-networks/conv-layer.md, chapter_convolutional-neural-networks/why-conv.md
图像增强通过对原始图像应用各种变换来人工扩展训练数据集。这有助于提高模型的泛化能力并减少过拟合。
实现的键图像增强技术包括:
翻转和裁剪:
颜色变换:
该实现允许使用 Compose 类组合多种增强方法。
示例用法可以在 `chapter_computer-vision/image-augmentation.md194-207 中找到,它演示了如何创建变换管道。
来源:chapter_computer-vision/image-augmentation.md
对象检测将分类与定位相结合,同时识别图像中存在的对象及其位置。该仓库实现了几种对象检测方法。
锚框是具有不同大小和纵横比的预定义边界框,它们充当检测对象的参考框。关键组件包括:
在 `chapter_computer-vision/anchor.md64-186 中的 multibox_prior 函数实现了具有不同尺度和纵横比的锚框的生成。
来源:chapter_computer-vision/anchor.md
SSD 是一种高效的一阶段对象检测模型,它结合了来自不同分辨率的多个特征图的预测,以处理各种大小的对象。
SSD 的关键组件包括:
SSD 模型实现在 `chapter_computer-vision/ssd.md28-470 中,主要模型定义和前向传播在 382-466 行。
来源:chapter_computer-vision/ssd.md
R-CNN 系列(R-CNN、Fast R-CNN、Faster R-CNN)代表了基于区域的对象检测方法。这些方法首先提出感兴趣区域,然后对这些区域进行分类和细化。
该仓库涵盖了 R-CNN 方法的演进:
来源:chapter_computer-vision/rcnn.md
语义分割涉及将图像中的每个像素分类到特定类别,从而对场景进行像素级理解。
FCN 通过用卷积层替换全连接层并引入转置卷积进行上采样,将分类网络改编为语义分割。
FCN 的关键组件包括:
FCN 模型在 `chapter_computer-vision/fcn.md49-134 中实现,使用预训练的 ResNet 模型作为编码器。
来源:chapter_computer-vision/fcn.md, chapter_computer-vision/semantic-segmentation-and-dataset.md
迁移学习允许利用在大型数据集(如 ImageNet)上预训练的模型来处理具有较小数据集的特定任务。该仓库实现了微调,这是一种特定的迁移学习技术。
微调过程包括:
该仓库在 `chapter_computer-vision/fine-tuning.md187-265 中展示了通过热狗检测示例进行微调,其中预训练的 ResNet 模型被改编用于二元分类任务。
来源:chapter_computer-vision/fine-tuning.md
风格迁移是一种将一个图像的内容以另一个图像的风格进行渲染的技术。仓库中实现的方法使用预训练的 CNN 来提取内容和风格特征。
风格迁移过程包括:
风格迁移的实现可以在 chapter_computer-vision/neural-style.md 中找到。
来源:chapter_computer-vision/neural-style.md
该仓库使用多个数据集进行计算机视觉任务:
代码库支持在 CPU 和多个 GPU 上进行训练,并为训练各种计算机视觉模型提供特定实现。
该仓库提供了训练的辅助函数,例如 train_ch13,在 `chapter_computer-vision/image-augmentation.md313-442 中,它处理带 GPU 加速的模型训练。
来源:chapter_computer-vision/image-augmentation.md, chapter_computer-vision/object-detection-dataset.md
仓库中的计算机视觉模型支持多种深度学习框架:
这种多框架方法允许用户在使用自己喜欢的深度学习库的同时学习计算机视觉概念。
来源:所有文件都有不同框架的实现。