计算机视觉概述与深度学习基础 / Introduction to Computer Vision and Deep Learning Fundamentals
计算机视觉(Computer Vision)的核心目标是赋予机器“看懂”图像与视频的能力,使其能够从像素数据中提取语义信息、理解场景并做出决策。这一目标看似直观,实则涉及复杂的感知与推理过程,曾被视为人工智能皇冠上的明珠。在深度学习革命之前,计算机视觉的发展高度依赖手工设计的特征提取器与浅层模型,性能瓶颈明显。2012年AlexNet在ImageNet竞赛中的颠覆性胜利,标志着卷积神经网络(Convolutional Neural Network, CNN)正式登上历史舞台,开启了以数据驱动、端到端学习为特征的现代视觉智能新范式。本章将系统梳理计算机视觉的演进脉络,明确定义其三大核心任务——分类、检测与分割,剖析传统方法的原理与局限,并深入探讨深度学习的基础数学框架与当前面临的核心挑战,为后续章节对YOLO系列目标检测算法、语义分割网络等前沿技术的精讲奠定坚实基础。
历史演进:从手工特征到端到端学习 / Historical Evolution: From Hand-Crafted Features to End-to-End Learning
计算机视觉的发展历程是一部人类不断尝试将视觉感知过程形式化、自动化的历史。其演进可大致划分为两个时代:传统特征工程时代与深度学习时代。下图展示了关键里程碑事件的技术范式转变:
```mermaid graph TD A[1960s: 早期边缘检测<br>Roberts, Prewitt] --> B[1970s-1980s: 基础特征理论<br>Marr视觉理论, Canny边缘检测] B --> C[1990s-2000s: 手工特征巅峰<br>SIFT(1999), SURF, HOG(2005)] C --> D[2000s-2012: 传统方法瓶颈<br>PASCAL VOC基准, 性能饱和] D --> E[2012: 深度学习革命<br>AlexNet ImageNet夺冠] E --> F[2014-2017: CNN架构爆发<br>VGG, GoogLeNet, ResNet] F --> G[2017至今: 注意力与Transformer<br>Vision Transformer, DETR] ```
传统特征工程时代(1960s-2012) 的研究范式可概括为“特征设计 + 浅层分类器”。研究者基于对视觉感知的生理与心理学理解,手动设计具有特定不变性(如尺度、旋转、光照)的特征描述子。最具代表性的是:
- **尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)**:由David Lowe于1999年提出。其核心思想是通过构建**尺度空间(Scale Space)**,使用**高斯差分(Difference of Gaussians, DoG)** 检测关键点,并基于关键点邻域梯度统计生成128维描述子。SIFT对尺度、旋转、部分遮挡具有鲁棒性,成为2000年代特征匹配的黄金标准,但其计算复杂度高,且描述子维度固定,难以适应复杂场景的语义表达。
- **方向梯度直方图(Histogram of Oriented Gradients, HOG)**:由Navneet Dalal与Bill Triggs于2005年提出,专为**行人检测**优化。它将图像划分为小单元格(cell),统计单元格内梯度方向的直方图,进而组合成块(block)进行归一化。HOG特征结合**支持向量机(Support Vector Machine, SVM)** 分类器,在PASCAL VOC等数据集上曾达到state-of-the-art,但其手工设计的局部梯度统计无法捕获高级语义,且对遮挡、形变敏感。
这一时期,整个计算机视觉 pipeline 是解耦的:预处理 → 特征提取 → 特征降维(如PCA) → 分类/检测。每个模块都需要领域专家精心调优,且特征设计本身缺乏理论指导,往往依赖试错。当场景复杂度、目标类别数、背景多样性急剧增加时,手工特征的表征能力迅速达到天花板。以PASCAL VOC 2012目标检测任务为例,传统方法(如DPM, HOG+SVM)的mAP(mean Average Precision)长期徘徊在30%-40%之间,难以突破。
深度学习时代(2012至今) 以AlexNet的胜利为起点,实现了从“特征工程”到“表示学习” 的根本性范式转移。其核心优势在于: 1. 层次化特征自动学习:通过多层非线性变换,网络能从原始像素中逐层提取从边缘、纹理到部件、物体的层次化语义特征,无需人工干预。 2. 端到端优化:将特征提取与分类/回归统一于一个可微分框架,通过反向传播(Backpropagation)联合优化所有参数,最大化任务目标(如分类准确率)。 3. 大数据驱动:海量标注数据(如ImageNet的1400万张图像)为复杂模型提供了充足的约束,使其能够泛化到未见数据。
此后,CNN架构经历了从深度堆叠(VGG)、宽而深(GoogLeNet Inception模块)、残差连接(ResNet)到注意力机制(SENet, Vision Transformer)的持续演进。模型深度从AlexNet的8层增至ResNet的152层乃至千层,参数规模达亿级,在ImageNet分类、COCO检测与分割等标准基准上不断刷新纪录,部分任务性能已超越人类水平。
核心任务定义、评估指标与独特挑战 / Core Task Definitions, Evaluation Metrics, and Unique Challenges
计算机视觉涵盖众多任务,其中图像分类(Image Classification)、目标检测(Object Detection) 与图像分割(Image Segmentation) 构成其核心支柱,分别对应着从全局到局部、从粗到细的视觉理解层次。
图像分类 / Image Classification
定义:给定一幅输入图像,模型需预测其所属的单一语义类别(如“猫”、“汽车”)。这是最基础的视觉任务,为更复杂的任务提供特征基础。 输入/输出:输入为固定分辨率(如224×224)的RGB图像;输出为离散类别标签(或类别概率分布)。 评估指标:
- **Top-1准确率(Accuracy)**:预测概率最高的类别与真实标签一致的比例。
- **Top-5准确率**:真实标签出现在预测概率前五的比例,常用于类别数多的数据集(如ImageNet)。
- **混淆矩阵(Confusion Matrix)**:详细分析各类别间的误分情况。
实践案例:ImageNet大规模视觉识别挑战赛(ILSVRC)是分类任务的风向标。2012年AlexNet将Top-5错误率从传统方法的26.2%骤降至15.3%,此后ResNet等模型将此指标推进至3%以下,接近人类估计的5%左右。分类模型的进步直接推动了物体检测与分割中骨干网络(Backbone)的选型。 独特挑战:
- **类内差异(Intra-class Variation)**:同一类别物体可能因姿态、光照、视角、遮挡、背景杂乱而呈现巨大外观差异。
- **细粒度分类(Fine-grained Classification)**:区分子类别(如不同品种的狗、鸟类),需要关注细微局部差异。
- **数据不平衡与长尾分布**:真实数据集中类别频率往往呈幂律分布,模型易偏向头部类别。
目标检测 / Object Detection
定义:不仅识别图像中所有目标物体的类别,还需用边界框(Bounding Box) 标出其精确位置与尺度。这是连接分类与分割的枢纽任务。 输入/输出:输入为单幅图像;输出为一系列`(类别, 置信度, 边界框坐标)`的集合。边界框通常表示为`(x_min, y_min, x_max, y_max)`或`(中心x, 中心y, 宽度, 高度)`。 评估指标:
- **平均精度(Average Precision, AP)**:针对单个类别,综合不同召回率(Recall)下的精确率(Precision)计算曲线下面积。
- **均值平均精度(mean Average Precision, mAP)**:所有类别AP的平均值,是检测任务的核心指标。在COCO数据集中,还区分不同IoU阈值(如0.5:0.95)下的mAP,以评估定位精度。
- **推理速度(FPS)**:每秒处理的图像帧数,对实时应用至关重要。
实践案例:自动驾驶中的行人检测是典型场景。系统需在复杂道路环境中(阴影、雨天、部分遮挡)实时、准确地定位行人。传统HOG+SVM方法在UrbanScene数据集上mAP约40%,而基于YOLOv7的现代检测器在相同条件下可达到mAP 65%以上,且FPS超过100。 独特挑战:
- **尺度变化剧烈**:图像中物体可能从几个像素(远距离)到占据大部分画面(近距离)。
- **密集与遮挡**:如人群检测中物体高度重叠,或车辆被部分遮挡。
- **正负样本极度不平衡**:背景区域远多于前景物体,导致训练困难。
图像分割 / Image Segmentation
定义:为图像中的每一个像素分配一个类别标签,实现像素级别的语义理解。根据是否区分同一类别的不同实例,分为语义分割(Semantic Segmentation) 与实例分割(Instance Segmentation)。
- **语义分割**:仅区分类别,不区分同一类别的不同个体。例如,将所有“人”的像素标记为同一类。
- **实例分割**:同时区分类别与实例,为每个物体个体分配独立掩码(Mask)。
输入/输出:输入为图像;输出为与输入同分辨率的分割掩码图(Mask),每个像素值为类别索引或实例ID。 评估指标:
- **像素准确率(Pixel Accuracy)**:正确分类的像素数占总像素数的比例。
- **均值交并比(mean Intersection over Union, mIoU)**:对每个类别计算预测掩码与真实掩码的交集与并集之比(IoU),再求所有类别的平均值。mIoU对类别不平衡更不敏感,是分割任务的主流指标。
- **平均精度(AP)**:用于实例分割,需在掩码IoU阈值上计算。
实践案例:医学图像分析中的肿瘤分割是生命攸关的应用。在MRI脑部图像中,精准勾画肿瘤区域(边界精度要求亚像素级)对手术规划与放疗剂量计算至关重要。基于U-Net的语义分割模型在公开脑肿瘤分割数据集(BraTS)上,肿瘤核心区域的mIoU已超过0.8,但边界区域的精度仍是研究热点。 独特挑战:
- **边界精度**:物体边缘的模糊、半透明区域(如毛发、烟雾)导致分割边界不连续。
- **计算与内存开销大**:像素级预测要求输出高分辨率特征图,模型计算量与内存占用远高于分类与检测。
- **类别不平衡极端**:如“背景”像素占比常超过99%,导致模型忽略小目标。
传统计算机视觉方法:特征工程的巅峰与局限 / Traditional Computer Vision: The Zenith and Limitations of Feature Engineering
在深度学习之前,视觉任务的成功严重依赖于研究者对问题本质的深刻洞察与巧妙的特征设计。以SIFT与HOG为代表的传统方法,其设计哲学体现了对视觉不变性原理的深刻理解,但其固有局限性也最终被数据驱动的深度学习所超越。
SIFT:尺度空间与局部描述子
SIFT的完整流程包括四个关键步骤: 1. 尺度空间极值检测:使用高斯函数$G(x,y,\sigma)$与原始图像$I(x,y)$卷积生成尺度空间$L(x,y,\sigma) = G(x,y,\sigma) * I(x,y)$。通过计算高斯差分(DoG) $D(x,y,\sigma) = (G(x,y,k\sigma) - G(x,y,\sigma)) * I(x,y)$,并在尺度与空间域中搜索极值点,初步定位潜在关键点。 2. 关键点定位与精炼:通过拟合三维二次函数剔除低对比度点与边缘响应点,确保关键点具有稳定性和重复检测能力。 3. 方向分配:以关键点为中心,统计邻域梯度方向直方图,赋予关键点主方向(及辅方向),实现旋转不变性。 4. 描述子生成:将关键点邻域旋转至主方向,划分为4×4个子区域,每个子区域计算8方向梯度直方图,形成128维(4×4×8)描述子。最后进行归一化,增强光照不变性。
SIFT的数学本质是在手工设计的尺度空间金字塔上,对局部梯度统计进行量化编码。其优势在于对尺度、旋转、亮度变化具有极强的鲁棒性,但其描述子维度固定、计算密集,且语义表达空洞——它描述的是局部梯度统计模式,而非“猫耳朵”或“车轮”这类高级语义概念。当目标类别数以千计时,手工设计一套能覆盖所有不变性的特征变得不可能。
HOG:梯度统计的局部编码
HOG的流程更为简洁: 1. 图像灰度化与 Gamma/颜色空间归一化(可选)。 2. 计算图像梯度(常用Sobel算子):$G_x = I * (-1,0,1)$, $G_y = I * (-1,0,1)^T$,梯度幅值$M = \sqrt{G_x^2+G_y^2}$,方向$\theta = \arctan(G_y/G_x)$。 3. 将图像划分为重叠的块(Block,如2×2个单元格),每个块内包含多个单元格(Cell,如8×8像素)。在每个单元格内统计梯度方向直方图(通常9个bin)。 4. 将块内所有单元格的直方图串联,进行块内归一化(如L2范数) 以降低光照影响。所有块的描述子串联形成最终特征向量。 5. 使用线性SVM分类。
HOG的成功在于其对局部形状进行梯度方向编码,对 pedestrian 这类具有明显轮廓和梯度分布的模式非常有效。但其手工设计的几何先验(单元格、块结构)和梯度统计方式,使其难以捕捉更复杂的纹理、部件组合及非线性关系。在PASCAL VOC 2012上,DPM(Deformable Part Model,基于HOG的扩展)的mAP约34%,而同期基于AlexNet的R-CNN已达58.5%,差距显著。
传统方法的根本局限
1. 表征能力瓶颈:手工特征本质是线性或浅层非线性变换,难以建模像素间复杂的、非局部的、层次化的语义关系。深度网络通过多层堆叠,理论上可逼近任意复杂函数。 2. 任务解耦与信息损失:特征提取与分类器训练分离,特征设计时无法得知后续分类器的具体需求,可能导致信息损失。端到端学习使特征自动适应最终任务。 3. 领域知识依赖与可迁移性差:为图像设计的特征(如SIFT)难以直接应用于视频或3D数据。深度学习特征通过学习数据分布,具有更好的跨领域迁移潜力。 4. 优化困难:手工特征 pipeline 的每一步(如阈值选择、归一化参数)需独立调优,全局最优无法保证。深度学习提供统一的损失函数进行全局优化。
深度学习基础:神经网络、反向传播与卷积 / Deep Learning Fundamentals: Neural Networks, Backpropagation, and Convolution
深度学习模型本质是由简单非线性函数(神经元)通过组合构成的高度非线性函数,其强大能力源于深度与参数共享。
神经网络的基本构件:神经元与激活函数
单个神经元接收输入$\mathbf{x} = [x_1, x_2, ..., x_n]^T$,进行加权求和并施加偏置,再通过激活函数(Activation Function) $\sigma(\cdot)$产生输出: $$z = \mathbf{w}^T \mathbf{x} + b, \quad a = \sigma(z)$$ 其中$\mathbf{w}$为权重向量,$b$为偏置。激活函数引入非线性,使网络能够拟合复杂函数。常用激活函数包括:
- **Sigmoid**:$\sigma(z) = \frac{1}{1+e^{-z}}$,输出(0,1),曾用于二分类输出,但易导致梯度消失。
- **Tanh**:$\tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}$,输出(-1,1),零中心,缓解了Sigmoid的部分问题。
- **修正线性单元(Rectified Linear Unit, ReLU)**:$\text{ReLU}(z) = \max(0, z)$。计算高效,缓解梯度消失(正区间梯度为1),成为现代CNN的默认选择,但存在“Dead ReLU”问题(负输入梯度恒为0)。
- **Leaky ReLU / PReLU**:$\max(\alpha z, z)$($\alpha$为小常数或可学习),为负输入提供微小梯度。
多层感知机与反向传播
多层感知机(Multi-Layer Perceptron, MLP) 由输入层、一个或多个隐藏层、输出层堆叠而成。以单隐藏层为例,前向传播(Forward Propagation)为: $$\mathbf{h} = \sigma(\mathbf{W}^{(1)} \mathbf{x} + \mathbf{b}^{(1)})$$ $$\mathbf{y} = \text{softmax}(\mathbf{W}^{(2)} \mathbf{h} + \mathbf{b}^{(2)})$$ 其中$\mathbf{h}$为隐藏层激活,$\mathbf{y}$为输出层概率(通过softmax归一化),$\mathbf{W}^{(l)}$, $\mathbf{b}^{(l)}$为第$l$层参数。
损失函数(Loss Function) 衡量预测$\mathbf{y}$与真实标签$\mathbf{t}$的差距。分类任务常用交叉熵损失(Cross-Entropy Loss): $$\mathcal{L}_{\text{CE}} = -\sum_{i=1}^{C} t_i \log y_i$$ 其中$C$为类别数。
训练目标是找到参数$\theta = \{\mathbf{W}^{(l)}, \mathbf{b}^{(l)}\}$使经验风险(平均损失)最小化: $$\min_{\theta} \frac{1}{N} \sum_{i=1}^{N} \mathcal{L}(f(\mathbf{x}_i; \theta