差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 深度学习:计算机视觉 [2026/03/02 20:30] – 创建 张叶安 | 深度学习:计算机视觉 [2026/03/03 12:55] (当前版本) – 张叶安 | ||
|---|---|---|---|
| 行 8: | 行 8: | ||
| 计算机视觉(Computer Vision, CV)是人工智能的一个重要分支,旨在使计算机能够从图像或多维数据中" | 计算机视觉(Computer Vision, CV)是人工智能的一个重要分支,旨在使计算机能够从图像或多维数据中" | ||
| - | - 从数字图像中提取有意义的信息 | + | |
| - | - 理解场景的内容和结构 | + | - 理解场景的内容和结构 |
| - | - 做出基于视觉信息的决策 | + | - 做出基于视觉信息的决策 |
| **计算机视觉与人类视觉** | **计算机视觉与人类视觉** | ||
| 人类视觉系统的特点: | 人类视觉系统的特点: | ||
| - | - 并行处理大量信息 | + | |
| - | - 具有先验知识和推理能力 | + | - 具有先验知识和推理能力 |
| - | - 对光照、视角变化具有鲁棒性 | + | - 对光照、视角变化具有鲁棒性 |
| - | - 可以处理模糊和不完整的输入 | + | - 可以处理模糊和不完整的输入 |
| 计算机视觉的挑战: | 计算机视觉的挑战: | ||
| - | - 从2D图像恢复3D信息是病态问题 | + | |
| - | - 光照、遮挡、形变等因素增加复杂性 | + | - 光照、遮挡、形变等因素增加复杂性 |
| - | - 需要大量数据学习视觉概念 | + | - 需要大量数据学习视觉概念 |
| **计算机视觉的主要任务** | **计算机视觉的主要任务** | ||
| 1. **图像分类**:给整张图像打标签 | 1. **图像分类**:给整张图像打标签 | ||
| + | |||
| 2. **目标检测**:定位并识别图像中的物体 | 2. **目标检测**:定位并识别图像中的物体 | ||
| + | |||
| 3. **语义分割**:像素级别的类别标注 | 3. **语义分割**:像素级别的类别标注 | ||
| + | |||
| 4. **实例分割**:区分同一类别的不同实例 | 4. **实例分割**:区分同一类别的不同实例 | ||
| + | |||
| 5. **目标跟踪**:追踪视频中的目标 | 5. **目标跟踪**:追踪视频中的目标 | ||
| + | |||
| 6. **图像生成**:创造新的图像 | 6. **图像生成**:创造新的图像 | ||
| + | |||
| 7. **图像恢复**:去噪、超分辨率、去模糊 | 7. **图像恢复**:去噪、超分辨率、去模糊 | ||
| 行 40: | 行 46: | ||
| **LeNet(1998)**: | **LeNet(1998)**: | ||
| - | - 首个成功的卷积神经网络 | + | |
| - | - 5层结构:2个卷积层 + 3个全连接层 | + | - 5层结构:2个卷积层 + 3个全连接层 |
| - | - 应用于手写数字识别(MNIST) | + | - 应用于手写数字识别(MNIST) |
| - | - 奠定了CNN的基础架构 | + | - 奠定了CNN的基础架构 |
| **AlexNet(2012)**: | **AlexNet(2012)**: | ||
| - | - 深度学习的里程碑 | + | |
| - | - 8层网络,首次使用ReLU和Dropout | + | - 8层网络,首次使用ReLU和Dropout |
| - | - GPU加速训练,大规模数据(ImageNet) | + | - GPU加速训练,大规模数据(ImageNet) |
| - | - 错误率比传统方法降低10%以上 | + | - 错误率比传统方法降低10%以上 |
| **VGGNet(2014)**: | **VGGNet(2014)**: | ||
| - | - 探索网络深度的影响 | + | |
| - | - 使用更小的3×3卷积核替代大卷积核 | + | - 使用更小的3×3卷积核替代大卷积核 |
| - | - VGG-16和VGG-19成为标准架构 | + | - VGG-16和VGG-19成为标准架构 |
| - | - 证明深度是提升性能的关键因素 | + | - 证明深度是提升性能的关键因素 |
| **ResNet(2015)**: | **ResNet(2015)**: | ||
| - | - 引入残差连接解决梯度消失 | + | |
| - | - 可以训练超过100层的深层网络 | + | - 可以训练超过100层的深层网络 |
| - | - ResNet-152在ImageNet上取得突破性成果 | + | - ResNet-152在ImageNet上取得突破性成果 |
| - | - 成为后续网络的标配组件 | + | - 成为后续网络的标配组件 |
| **EfficientNet(2019)**: | **EfficientNet(2019)**: | ||
| - | - 系统研究网络的深度、宽度、分辨率平衡 | + | |
| - | - 使用复合系数统一缩放三个维度 | + | - 使用复合系数统一缩放三个维度 |
| - | - 在精度和效率之间取得最佳平衡 | + | - 在精度和效率之间取得最佳平衡 |
| **1.2.2 图像分类的核心技术** | **1.2.2 图像分类的核心技术** | ||
| **数据增强**: | **数据增强**: | ||
| - | - 几何变换:翻转、旋转、裁剪、缩放 | + | |
| - | - 颜色变换:亮度、对比度、色调调整 | + | - 颜色变换:亮度、对比度、色调调整 |
| - | - 高级增强:Mixup、CutMix、AutoAugment | + | - 高级增强:Mixup、CutMix、AutoAugment |
| **正则化技术**: | **正则化技术**: | ||
| - | - Dropout:随机丢弃神经元 | + | |
| - | - Batch Normalization:批归一化 | + | - Batch Normalization:批归一化 |
| - | - Label Smoothing:标签平滑 | + | - Label Smoothing:标签平滑 |
| - | - Stochastic Depth:随机深度 | + | - Stochastic Depth:随机深度 |
| **迁移学习**: | **迁移学习**: | ||
| - | - 在大规模数据集(ImageNet)上预训练 | + | |
| - | - 在目标任务上微调 | + | - 在目标任务上微调 |
| - | - 小样本场景下的有效策略 | + | - 小样本场景下的有效策略 |
| ==== 1.3 目标检测 ==== | ==== 1.3 目标检测 ==== | ||
| 行 91: | 行 97: | ||
| 目标检测需要同时解决两个子问题: | 目标检测需要同时解决两个子问题: | ||
| + | |||
| 1. **定位**:确定物体的位置(边界框) | 1. **定位**:确定物体的位置(边界框) | ||
| + | |||
| 2. **分类**:确定物体的类别 | 2. **分类**:确定物体的类别 | ||
| 输出格式:$(x, | 输出格式:$(x, | ||
| - | - $(x, y)$:边界框中心坐标 | + | |
| - | - $(w, h)$:边界框宽度和高度 | + | - $(w, h)$:边界框宽度和高度 |
| - | - $class$:物体类别 | + | - $class$:物体类别 |
| - | - $confidence$:置信度 | + | - $confidence$:置信度 |
| **1.3.2 两阶段检测器** | **1.3.2 两阶段检测器** | ||
| 行 105: | 行 113: | ||
| **R-CNN(2014)**: | **R-CNN(2014)**: | ||
| + | |||
| 1. 使用Selective Search生成候选区域(约2000个) | 1. 使用Selective Search生成候选区域(约2000个) | ||
| + | |||
| 2. 每个候选区域缩放到固定尺寸 | 2. 每个候选区域缩放到固定尺寸 | ||
| + | |||
| 3. 使用CNN提取特征 | 3. 使用CNN提取特征 | ||
| + | |||
| 4. SVM分类 + 边界框回归 | 4. SVM分类 + 边界框回归 | ||
| 行 113: | 行 125: | ||
| **Fast R-CNN(2015)**: | **Fast R-CNN(2015)**: | ||
| + | |||
| 1. 整张图像输入CNN得到特征图 | 1. 整张图像输入CNN得到特征图 | ||
| + | |||
| 2. ROI Pooling从特征图提取候选区域特征 | 2. ROI Pooling从特征图提取候选区域特征 | ||
| + | |||
| 3. 全连接层同时进行分类和回归 | 3. 全连接层同时进行分类和回归 | ||
| 行 120: | 行 135: | ||
| **Faster R-CNN(2015)**: | **Faster R-CNN(2015)**: | ||
| + | |||
| 1. 引入区域提议网络(RPN)替代Selective Search | 1. 引入区域提议网络(RPN)替代Selective Search | ||
| + | |||
| 2. RPN与检测网络共享特征 | 2. RPN与检测网络共享特征 | ||
| + | |||
| 3. 端到端训练 | 3. 端到端训练 | ||
| 行 129: | 行 147: | ||
| **YOLO(You Only Look Once)**: | **YOLO(You Only Look Once)**: | ||
| - | - 将检测视为回归问题 | + | |
| - | - 图像划分为$S \times S$网格 | + | - 图像划分为$S \times S$网格 |
| - | - 每个网格预测$B$个边界框和类别概率 | + | - 每个网格预测$B$个边界框和类别概率 |
| - | - 单次前向传播完成检测和分类 | + | - 单次前向传播完成检测和分类 |
| 优点:速度快,适合实时应用 | 优点:速度快,适合实时应用 | ||
| + | |||
| 缺点:小目标和密集目标检测效果较差 | 缺点:小目标和密集目标检测效果较差 | ||
| **YOLO演进**: | **YOLO演进**: | ||
| - | - YOLOv2/ | + | |
| - | - YOLOv4/ | + | - YOLOv4/ |
| - | - YOLOv8:Anchor-Free、解耦头、CIOU Loss | + | - YOLOv8:Anchor-Free、解耦头、CIOU Loss |
| **SSD(Single Shot MultiBox Detector)**: | **SSD(Single Shot MultiBox Detector)**: | ||
| - | - 多尺度特征图预测 | + | |
| - | - 使用不同尺度和长宽比的默认框(Default Boxes) | + | - 使用不同尺度和长宽比的默认框(Default Boxes) |
| - | - 在多个层同时进行检测 | + | - 在多个层同时进行检测 |
| **RetinaNet**: | **RetinaNet**: | ||
| - | - 引入Focal Loss解决正负样本不平衡 | + | |
| - | - Focal Loss降低易分样本的权重,聚焦难分样本 | + | - Focal Loss降低易分样本的权重,聚焦难分样本 |
| **1.3.4 Anchor-Free检测器** | **1.3.4 Anchor-Free检测器** | ||
| 行 156: | 行 175: | ||
| **CenterNet**: | **CenterNet**: | ||
| - | - 将目标表示为中心点 | + | |
| - | - 预测中心点偏移、尺寸、方向等 | + | - 预测中心点偏移、尺寸、方向等 |
| - | - 无需NMS后处理 | + | - 无需NMS后处理 |
| **FCOS(Fully Convolutional One-Stage)**: | **FCOS(Fully Convolutional One-Stage)**: | ||
| - | - 逐像素预测 | + | |
| - | - 引入中心度(Center-ness)抑制低质量预测 | + | - 引入中心度(Center-ness)抑制低质量预测 |
| - | - 完全避免Anchor相关计算 | + | - 完全避免Anchor相关计算 |
| ==== 1.4 语义分割与实例分割 ==== | ==== 1.4 语义分割与实例分割 ==== | ||
| 行 172: | 行 191: | ||
| **FCN(Fully Convolutional Network)**: | **FCN(Fully Convolutional Network)**: | ||
| - | - 首个端到端分割网络 | + | |
| - | - 将全连接层替换为卷积层 | + | - 将全连接层替换为卷积层 |
| - | - 使用转置卷积(上采样)恢复分辨率 | + | - 使用转置卷积(上采样)恢复分辨率 |
| - | - 跳跃连接融合不同层次特征 | + | - 跳跃连接融合不同层次特征 |
| **U-Net**: | **U-Net**: | ||
| - | - 编码器-解码器结构 | + | |
| - | - 跳跃连接保留空间细节 | + | - 跳跃连接保留空间细节 |
| - | - 在医学图像分割中广泛应用 | + | - 在医学图像分割中广泛应用 |
| **DeepLab系列**: | **DeepLab系列**: | ||
| **空洞卷积(Atrous/ | **空洞卷积(Atrous/ | ||
| - | - 在卷积核中插入空洞 | + | |
| - | - 扩大感受野而不增加参数 | + | - 扩大感受野而不增加参数 |
| - | - 保留高分辨率特征图 | + | - 保留高分辨率特征图 |
| **ASPP(Atrous Spatial Pyramid Pooling)**: | **ASPP(Atrous Spatial Pyramid Pooling)**: | ||
| - | - 使用不同空洞率的并行卷积 | + | |
| - | - 捕获多尺度上下文 | + | - 捕获多尺度上下文 |
| **PSPNet(Pyramid Scene Parsing Network)**: | **PSPNet(Pyramid Scene Parsing Network)**: | ||
| - | - 金字塔池化模块 | + | |
| - | - 聚合不同区域的上下文 | + | - 聚合不同区域的上下文 |
| **1.4.2 实例分割** | **1.4.2 实例分割** | ||
| 行 202: | 行 221: | ||
| **Mask R-CNN**: | **Mask R-CNN**: | ||
| - | - 在Faster R-CNN基础上增加Mask分支 | + | |
| - | - ROI Align替代ROI Pooling,解决量化误差 | + | - ROI Align替代ROI Pooling,解决量化误差 |
| - | - 同时输出类别、边界框、分割掩码 | + | - 同时输出类别、边界框、分割掩码 |
| **PANet(Path Aggregation Network)**: | **PANet(Path Aggregation Network)**: | ||
| - | - 增强信息传播路径 | + | |
| - | - 自适应特征池化 | + | - 自适应特征池化 |
| **SOLO(Segmenting Objects by Locations)**: | **SOLO(Segmenting Objects by Locations)**: | ||
| - | - 将实例分割转化为位置分类 | + | |
| - | - 引入坐标卷积(CoordConv) | + | - 引入坐标卷积(CoordConv) |
| ==== 1.5 目标跟踪 ==== | ==== 1.5 目标跟踪 ==== | ||
| 行 221: | 行 240: | ||
| **主要挑战**: | **主要挑战**: | ||
| - | - 遮挡、形变、尺度变化 | + | |
| - | - 光照变化、运动模糊 | + | - 光照变化、运动模糊 |
| - | - 相似物体干扰 | + | - 相似物体干扰 |
| - | - 实时性要求 | + | - 实时性要求 |
| **1.5.2 跟踪算法分类** | **1.5.2 跟踪算法分类** | ||
| **基于相关滤波的跟踪**: | **基于相关滤波的跟踪**: | ||
| - | - MOSSE、KCF、CSR-DCF | + | |
| - | - 利用循环矩阵性质加速训练 | + | - 利用循环矩阵性质加速训练 |
| - | - 速度快,但精度有限 | + | - 速度快,但精度有限 |
| **基于Siamese网络的跟踪**: | **基于Siamese网络的跟踪**: | ||
| - | - SiamFC、SiamRPN、SiamMask | + | |
| - | - 孪生网络提取模板和搜索区域的特征 | + | - 孪生网络提取模板和搜索区域的特征 |
| - | - 相关操作定位目标 | + | - 相关操作定位目标 |
| - | - 端到端训练,精度高 | + | - 端到端训练,精度高 |
| **基于Transformer的跟踪**: | **基于Transformer的跟踪**: | ||
| - | - TransT、STARK、MixFormer | + | |
| - | - 利用自注意力和交叉注意力建模模板与搜索区域关系 | + | - 利用自注意力和交叉注意力建模模板与搜索区域关系 |
| - | - 当前SOTA方法 | + | - 当前SOTA方法 |
| ==== 1.6 视觉Transformer ==== | ==== 1.6 视觉Transformer ==== | ||
| 行 249: | 行 268: | ||
| CNN在计算机视觉中的局限: | CNN在计算机视觉中的局限: | ||
| - | - 局部感受野限制长距离建模 | + | |
| - | - 平移等变性可能不是最佳选择 | + | - 平移等变性可能不是最佳选择 |
| - | - 需要大量归纳偏置 | + | - 需要大量归纳偏置 |
| Transformer在NLP的成功启发了视觉领域的探索。 | Transformer在NLP的成功启发了视觉领域的探索。 | ||
| 行 258: | 行 277: | ||
| **图像分块(Patch Embedding)**: | **图像分块(Patch Embedding)**: | ||
| - | - 将图像分割为固定大小的patch(如16×16) | + | |
| - | - 每个patch展平并线性投影为向量 | + | - 每个patch展平并线性投影为向量 |
| - | - 加入位置编码 | + | - 加入位置编码 |
| **Transformer编码器**: | **Transformer编码器**: | ||
| - | - 标准的多头自注意力 + MLP结构 | + | |
| - | - 在大规模数据集上预训练 | + | - 在大规模数据集上预训练 |
| - | - 在下游任务上微调 | + | - 在下游任务上微调 |
| **1.6.2 ViT的关键发现** | **1.6.2 ViT的关键发现** | ||
| **归纳偏置的权衡**: | **归纳偏置的权衡**: | ||
| - | - CNN具有局部性、平移等变性等归纳偏置 | + | |
| - | - ViT依赖自注意力学习空间关系 | + | - ViT依赖自注意力学习空间关系 |
| - | - 在小数据集上CNN更好,在大数据集上ViT可以超越 | + | - 在小数据集上CNN更好,在大数据集上ViT可以超越 |
| **数据规模的重要性**: | **数据规模的重要性**: | ||
| - | - ViT需要大规模数据(如JFT-300M)预训练 | + | |
| - | - 在ImageNet上从头训练效果不如ResNet | + | - 在ImageNet上从头训练效果不如ResNet |
| **1.6.3 ViT的改进变体** | **1.6.3 ViT的改进变体** | ||
| **DeiT(Data-efficient Image Transformer)**: | **DeiT(Data-efficient Image Transformer)**: | ||
| - | - 使用知识蒸馏从CNN迁移知识 | + | |
| - | - 在ImageNet上从头训练即可达到好效果 | + | - 在ImageNet上从头训练即可达到好效果 |
| **Swin Transformer**: | **Swin Transformer**: | ||
| - | - 层次化金字塔结构 | + | |
| - | - 移位窗口(Shifted Window)自注意力 | + | - 移位窗口(Shifted Window)自注意力 |
| - | - 线性复杂度,适合高分辨率图像 | + | - 线性复杂度,适合高分辨率图像 |
| **PVT(Pyramid Vision Transformer)**: | **PVT(Pyramid Vision Transformer)**: | ||
| - | - 金字塔结构降低计算复杂度 | + | |
| - | - 空间缩减注意力(Spatial Reduction Attention) | + | - 空间缩减注意力(Spatial Reduction Attention) |
| ==== 1.7 自监督学习与对比学习 ==== | ==== 1.7 自监督学习与对比学习 ==== | ||
| 行 306: | 行 325: | ||
| **SimCLR**: | **SimCLR**: | ||
| + | |||
| 1. 对每个样本生成两个增强视图 | 1. 对每个样本生成两个增强视图 | ||
| + | |||
| 2. 使用同一网络编码两个视图 | 2. 使用同一网络编码两个视图 | ||
| + | |||
| 3. 最大化同一样本不同视图的相似度 | 3. 最大化同一样本不同视图的相似度 | ||
| + | |||
| 4. 最小化不同样本的相似度 | 4. 最小化不同样本的相似度 | ||
| 行 318: | 行 341: | ||
| **MoCo(Momentum Contrast)**: | **MoCo(Momentum Contrast)**: | ||
| - | - 使用动量编码器维护动态字典 | + | |
| - | - 解决大批量训练的需求 | + | - 解决大批量训练的需求 |
| - | - 引入队列存储负样本 | + | - 引入队列存储负样本 |
| **BYOL和SimSiam**: | **BYOL和SimSiam**: | ||
| - | - 无需负样本的对比学习 | + | |
| - | - 使用非对称结构防止平凡解 | + | - 使用非对称结构防止平凡解 |
| - | - 在线网络和目标网络 | + | - 在线网络和目标网络 |
| **1.7.3 掩码图像建模(Masked Image Modeling)** | **1.7.3 掩码图像建模(Masked Image Modeling)** | ||
| 行 332: | 行 355: | ||
| **BEiT**: | **BEiT**: | ||
| - | - 使用离散VAE将图像转换为视觉token | + | |
| - | - 掩码部分patch,预测离散token | + | - 掩码部分patch,预测离散token |
| **MAE(Masked Autoencoder)**: | **MAE(Masked Autoencoder)**: | ||
| - | - 高掩码率(75%) | + | |
| - | - 非对称编码器-解码器 | + | - 非对称编码器-解码器 |
| - | - 仅编码可见patch,解码器重建完整图像 | + | - 仅编码可见patch,解码器重建完整图像 |
| **1.7.4 自监督学习的应用** | **1.7.4 自监督学习的应用** | ||
| - | - 预训练后微调下游任务 | + | |
| - | - 数据高效的迁移学习 | + | - 数据高效的迁移学习 |
| - | - 特征表示的可视化和分析 | + | - 特征表示的可视化和分析 |
| ==== 1.8 生成式视觉模型 ==== | ==== 1.8 生成式视觉模型 ==== | ||
| 行 351: | 行 374: | ||
| **VAE和GAN**: | **VAE和GAN**: | ||
| - | - 生成高质量图像 | + | |
| - | - 支持条件生成(类别、文本、草图) | + | - 支持条件生成(类别、文本、草图) |
| **扩散模型**: | **扩散模型**: | ||
| - | - DDPM、Stable Diffusion | + | |
| - | - 逐步去噪生成图像 | + | - 逐步去噪生成图像 |
| - | - 当前最高质量的生成方法 | + | - 当前最高质量的生成方法 |
| **1.8.2 文本到图像生成** | **1.8.2 文本到图像生成** | ||
| **DALL-E / DALL-E 2**: | **DALL-E / DALL-E 2**: | ||
| - | - GPT风格的文本编码 | + | |
| - | - 自回归或扩散模型生成图像 | + | - 自回归或扩散模型生成图像 |
| **Stable Diffusion**: | **Stable Diffusion**: | ||
| - | - 在潜在空间进行扩散 | + | |
| - | - 大幅降低计算成本 | + | - 大幅降低计算成本 |
| - | - 开源,社区生态丰富 | + | - 开源,社区生态丰富 |
| **ControlNet**: | **ControlNet**: | ||
| - | - 在扩散模型上添加条件控制 | + | |
| - | - 支持边缘、姿态、深度等多种条件 | + | - 支持边缘、姿态、深度等多种条件 |
| **1.8.3 神经辐射场(NeRF)** | **1.8.3 神经辐射场(NeRF)** | ||
| 行 391: | 行 414: | ||
| **题目**:给定两个边界框: | **题目**:给定两个边界框: | ||
| - | - Box A:左上角$(0, | + | |
| - | - Box B:左上角$(2, | + | - Box B:左上角$(2, |
| 计算IoU(Intersection over Union)。 | 计算IoU(Intersection over Union)。 | ||
| 行 401: | 行 424: | ||
| Box A: | Box A: | ||
| - | - 左下角:$(0, | + | |
| - | - 右上角:$(4, | + | - 右上角:$(4, |
| - | - 宽度:$w_A = 4$,高度:$h_A = 4$ | + | - 宽度:$w_A = 4$,高度:$h_A = 4$ |
| - | - 面积:$Area_A = 4 \times 4 = 16$ | + | - 面积:$Area_A = 4 \times 4 = 16$ |
| Box B: | Box B: | ||
| - | - 左下角:$(2, | + | |
| - | - 右上角:$(6, | + | - 右上角:$(6, |
| - | - 宽度:$w_B = 4$,高度:$h_B = 4$ | + | - 宽度:$w_B = 4$,高度:$h_B = 4$ |
| - | - 面积:$Area_B = 4 \times 4 = 16$ | + | - 面积:$Area_B = 4 \times 4 = 16$ |
| **步骤2:计算交集区域** | **步骤2:计算交集区域** | ||
| 交集的左下角: | 交集的左下角: | ||
| - | - $x_1 = \max(0, 2) = 2$ | + | |
| - | - $y_1 = \max(0, 2) = 2$ | + | - $y_1 = \max(0, 2) = 2$ |
| 交集的右上角: | 交集的右上角: | ||
| - | - $x_2 = \min(4, 6) = 4$ | + | |
| - | - $y_2 = \min(4, 6) = 4$ | + | - $y_2 = \min(4, 6) = 4$ |
| 交集宽度:$w_{inter} = x_2 - x_1 = 4 - 2 = 2$ | 交集宽度:$w_{inter} = x_2 - x_1 = 4 - 2 = 2$ | ||
| + | |||
| 交集高度:$h_{inter} = y_2 - y_1 = 4 - 2 = 2$ | 交集高度:$h_{inter} = y_2 - y_1 = 4 - 2 = 2$ | ||
| 交集面积: | 交集面积: | ||
| + | |||
| $$Area_{inter} = 2 \times 2 = 4$$ | $$Area_{inter} = 2 \times 2 = 4$$ | ||
| 行 431: | 行 456: | ||
| $$Area_{union} = Area_A + Area_B - Area_{inter}$$ | $$Area_{union} = Area_A + Area_B - Area_{inter}$$ | ||
| + | |||
| $$= 16 + 16 - 4 = 28$$ | $$= 16 + 16 - 4 = 28$$ | ||
| 行 440: | 行 466: | ||
| **分析**: | **分析**: | ||
| - | - IoU是目标检测中评估定位精度的重要指标 | + | |
| - | - 通常IoU阈值设为0.5判断正负样本 | + | - 通常IoU阈值设为0.5判断正负样本 |
| - | - 此例中IoU较低,说明两个框重叠较少 | + | - 此例中IoU较低,说明两个框重叠较少 |
| ==== 例题2:语义分割上采样计算 ==== | ==== 例题2:语义分割上采样计算 ==== | ||
| 行 453: | 行 479: | ||
| 输入特征图:$8 \times 8 \times C$(假设$C$为通道数) | 输入特征图:$8 \times 8 \times C$(假设$C$为通道数) | ||
| + | |||
| 1×1卷积将通道数映射到类别数: | 1×1卷积将通道数映射到类别数: | ||
| - | - 权重尺寸:$1 \times 1 \times C \times 21$ | + | |
| - | - 输出:$8 \times 8 \times 21$ | + | |
| - | - 参数数量:$1 \times 1 \times C \times 21 = 21C$ | + | - 输出:$8 \times 8 \times 21$ |
| + | - 参数数量:$1 \times 1 \times C \times 21 = 21C$ | ||
| **步骤2:双线性插值上采样** | **步骤2:双线性插值上采样** | ||
| 行 463: | 行 491: | ||
| 使用双线性插值将$8 \times 8$上采样到$256 \times 256$: | 使用双线性插值将$8 \times 8$上采样到$256 \times 256$: | ||
| - | - 输出尺寸:$256 \times 256 \times 21$ | + | |
| - | - 双线性插值是确定性的,无需学习参数 | + | - 双线性插值是确定性的,无需学习参数 |
| **步骤3:最终输出** | **步骤3:最终输出** | ||
| 行 471: | 行 499: | ||
| **尺寸总结**: | **尺寸总结**: | ||
| - | - 输入:$8 \times 8 \times C$ | + | |
| - | - 1×1卷积后:$8 \times 8 \times 21$ | + | - 1×1卷积后:$8 \times 8 \times 21$ |
| - | - 上采样后:$256 \times 256 \times 21$ | + | - 上采样后:$256 \times 256 \times 21$ |
| **参数总结**: | **参数总结**: | ||
| - | - 1×1卷积参数:$21C$ | + | |
| - | - 上采样层参数:0 | + | - 上采样层参数:0 |
| **分析**: | **分析**: | ||
| - | - 1×1卷积用于将特征映射到类别空间 | + | |
| - | - 上采样恢复空间分辨率 | + | - 上采样恢复空间分辨率 |
| - | - 可以调换顺序:先上采样再1×1卷积,但计算量更大 | + | - 可以调换顺序:先上采样再1×1卷积,但计算量更大 |
| ==== 例题3:ViT的patch嵌入计算 ==== | ==== 例题3:ViT的patch嵌入计算 ==== | ||
| **题目**:ViT处理$224 \times 224$的图像,patch大小为$16 \times 16$,嵌入维度为768。计算: | **题目**:ViT处理$224 \times 224$的图像,patch大小为$16 \times 16$,嵌入维度为768。计算: | ||
| + | |||
| 1. patch数量 | 1. patch数量 | ||
| + | |||
| 2. patch嵌入后的序列长度 | 2. patch嵌入后的序列长度 | ||
| + | |||
| 3. 可学习的线性投影参数数量 | 3. 可学习的线性投影参数数量 | ||
| 行 496: | 行 527: | ||
| 图像尺寸:$224 \times 224$ | 图像尺寸:$224 \times 224$ | ||
| + | |||
| Patch尺寸:$16 \times 16$ | Patch尺寸:$16 \times 16$ | ||
| 每行的patch数:$224 / 16 = 14$ | 每行的patch数:$224 / 16 = 14$ | ||
| + | |||
| 每列的patch数:$224 / 16 = 14$ | 每列的patch数:$224 / 16 = 14$ | ||
| 行 514: | 行 547: | ||
| 输入维度:$16 \times 16 \times 3 = 768$ | 输入维度:$16 \times 16 \times 3 = 768$ | ||
| + | |||
| 输出维度:$768$ | 输出维度:$768$ | ||
| 线性投影矩阵:$768 \times 768$ | 线性投影矩阵:$768 \times 768$ | ||
| + | |||
| 偏置向量:$768$ | 偏置向量:$768$ | ||
| 行 526: | 行 561: | ||
| **总结**: | **总结**: | ||
| - | - Patch数量:196 | + | |
| - | - 序列长度:197(含类别token) | + | - 序列长度:197(含类别token) |
| - | - Patch嵌入参数:590, | + | - Patch嵌入参数:590, |
| - | - 位置编码参数:151, | + | - 位置编码参数:151, |
| **分析**: | **分析**: | ||
| - | - ViT将图像转化为类似NLP的序列 | + | |
| - | - 计算复杂度高($O(n^2)$的自注意力) | + | - 计算复杂度高($O(n^2)$的自注意力) |
| - | - 需要大规模数据预训练 | + | - 需要大规模数据预训练 |
| ===== 3. 训练题 ===== | ===== 3. 训练题 ===== | ||
| 行 572: | 行 607: | ||
| ==== 二、填空题 ==== | ==== 二、填空题 ==== | ||
| - | 6. 目标检测需要同时解决________和________两个子问题。 | + | 6. 目标检测需要同时解决$\_\_\_\_$和$\_\_\_\_$两个子问题。 |
| - | 7. IoU的全称是________,用于评估边界框的重叠程度。 | + | 7. IoU的全称是$\_\_\_\_$,用于评估边界框的重叠程度。 |
| - | 8. ResNet通过引入________连接解决了深层网络的梯度消失问题。 | + | 8. ResNet通过引入$\_\_\_\_$连接解决了深层网络的梯度消失问题。 |
| - | 9. 语义分割为图像中每个________分配类别标签。 | + | 9. 语义分割为图像中每个$\_\_\_\_$分配类别标签。 |
| - | 10. MAE(Masked Autoencoder)采用________%的掩码率。 | + | 10. MAE(Masked Autoencoder)采用$\_\_\_\_$%的掩码率。 |
| ==== 三、计算题 ==== | ==== 三、计算题 ==== | ||
| 行 604: | 行 639: | ||
| 4. **答案:B** | 4. **答案:B** | ||
| - | 解析:$(224/ | + | |
| + | 解析:$(224/ | ||
| 5. **答案:A** | 5. **答案:A** | ||
| 行 630: | 行 666: | ||
| 11. **解答:** | 11. **解答:** | ||
| | | ||
| - | | + | Box A:$(0, 0)$到$(4, 4)$,面积$= 4 \times 4 = 16$ |
| | | ||
| - | | + | Box B:$(3, 3)$到$(7, 7)$,面积$= 4 \times 4 = 16$ |
| | | ||
| - | | + | 交集: |
| - | - 左下角:$(\max(0, | + | - 左下角:$(\max(0, |
| - | - 右上角:$(\min(4, | + | - 右上角:$(\min(4, |
| - | - 宽度:$4 - 3 = 1$ | + | - 宽度:$4 - 3 = 1$ |
| - | - 高度:$4 - 3 = 1$ | + | - 高度:$4 - 3 = 1$ |
| - | - 交集面积:$1 \times 1 = 1$ | + | - 交集面积:$1 \times 1 = 1$ |
| - | + | ||
| - | 并集:$16 + 16 - 1 = 31$ | + | 并集:$16 + 16 - 1 = 31$ |
| | | ||
| - | | + | IoU:$1/31 \approx 0.032$ |
| 12. **解答:** | 12. **解答:** | ||
| | | ||
| - | | + | 空洞卷积有效核大小:$k_{effective} = k + (k-1)(d-1) = 3 + 2 \times 1 = 5$ |
| | | ||
| - | | + | 输出尺寸公式:$H_{out} = \lfloor(H_{in} + 2p - k_{effective})/ |
| | | ||
| - | | + | 假设stride=1: |
| - | $H_{out} = (16 + 2 \times 2 - 5)/1 + 1 = 16 + 4 - 5 + 1 = 16$ | + | |
| + | $H_{out} = (16 + 2 \times 2 - 5)/1 + 1 = 16 + 4 - 5 + 1 = 16$ | ||
| | | ||
| - | | + | 输出尺寸:$16 \times 16$ |
| 13. **解答:** | 13. **解答:** | ||
| | | ||
| - | | + | $(384/16) \times (384/16) = 24 \times 24 = 576$ |
| | | ||
| - | | + | 共576个patch。 |