模块一:概论与基础 (Introduction & Fundamentals)
1.1 什么是计算机视觉?
计算机视觉是一门研究如何使机器"看"的科学,即用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。
- 核心目标:从图像或视频数据中提取语义信息(Semantic Information)。
- 输入 :二维图像 I(x,y)I(x, y)I(x,y) 或三维视频流 V(x,y,t)V(x, y, t)V(x,y,t)。
- 输出:决策、描述、3D 重建模型等。
1.2 图像的数字表示
在计算机中,图像被表示为矩阵(Matrix)或张量(Tensor)。
对于一张高为 HHH、宽为 WWW 的彩色图像,通常表示为 H×W×3H \times W \times 3H×W×3 的张量(RGB三通道)。
I∈RH×W×C I \in \mathbb{R}^{H \times W \times C} I∈RH×W×C
其中像素值通常归一化到 [0,1][0, 1][0,1] 或 [0,255][0, 255][0,255] 区间。
1.3 传统图像处理基础
在深度学习爆发前,CV 依赖手工特征(Hand-crafted Features)。
-
卷积与滤波 :利用卷积核(Kernel)提取边缘、模糊或锐化图像。
二维离散卷积公式:
S(i,j)=(I∗K)(i,j)=∑m∑nI(i−m,j−n)K(m,n) S(i, j) = (I * K)(i, j) = \sum_{m} \sum_{n} I(i-m, j-n) K(m, n) S(i,j)=(I∗K)(i,j)=m∑n∑I(i−m,j−n)K(m,n) -
特征描述子:SIFT (Scale-Invariant Feature Transform)、HOG (Histogram of Oriented Gradients)、ORB。这些算法用于寻找图像中的关键点,具有旋转和尺度不变性。
模块二:深度学习核心引擎 (Core Engines: CNN & Transformer)
2.1 卷积神经网络 (CNN)
CNN 是现代 CV 的基石,具有局部感知(Local Connectivity)和权值共享(Weight Sharing)的特性。
-
卷积层 (Convolution Layer):提取特征。
-
激活函数 (Activation Function) :引入非线性。最常用的是 ReLU:
f(x)=max(0,x) f(x) = \max(0, x) f(x)=max(0,x) -
池化层 (Pooling Layer):下采样,减少参数,扩大感受野(Receptive Field)。
-
经典架构演进:
-
LeNet-5:CNN 鼻祖。
-
AlexNet:深度学习爆发点,引入 GPU 训练和 Dropout。
-
ResNet (残差网络) :解决了深层网络梯度消失问题。核心公式为残差连接:
y=F(x,{Wi})+x y = F(x, \{W_i\}) + x y=F(x,{Wi})+x其中 F(x)F(x)F(x) 是残差映射,xxx 是恒等映射。
-
2.2 视觉 Transformer (Vision Transformer, ViT)
近年来,NLP 领域的 Transformer 架构被引入 CV。
-
Patch Embedding :将图像切分为 16×1616 \times 1616×16 的小块(Patches),展平后作为序列输入。
-
自注意力机制 (Self-Attention) :捕捉全局依赖关系。
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V其中 QQQ (Query), KKK (Key), VVV (Value) 均由输入特征线性变换而来。
模块三:核心任务与算法体系 (Core Tasks & Algorithms)
3.1 图像分类 (Image Classification)
-
定义:判断图像中主要物体的类别。
-
损失函数 :交叉熵损失(Cross Entropy Loss)。
L=−∑c=1Myo,clog(po,c) L = -\sum_{c=1}^{M} y_{o,c} \log(p_{o,c}) L=−c=1∑Myo,clog(po,c) -
SOTA 模型:EfficientNet, ViT, ConvNeXt.
3.2 目标检测 (Object Detection)
-
定义:不仅要分类,还要定位物体的位置(Bounding Box)。
-
技术流派:
- Two-Stage (两阶段) :先生成候选框,再分类与回归。代表作:Faster R-CNN。
- One-Stage (单阶段) :端到端直接预测。代表作:YOLO (You Only Look Once) 系列, SSD。
-
评估指标 :IoU (Intersection over Union) 和 mAP (mean Average Precision)。
IoU=Area of OverlapArea of Union \text{IoU} = \frac{\text{Area of Overlap}}{\text{Area of Union}} IoU=Area of UnionArea of Overlap
3.3 图像分割 (Image Segmentation)
- 语义分割 (Semantic Segmentation) :像素级分类,不区分同类个体。
- 经典架构:U-Net(Encoder-Decoder 结构,广泛用于医疗影像)。
- 实例分割 (Instance Segmentation) :区分同类中的不同个体。
- 经典架构:Mask R-CNN。
模块四:产业应用场景 (Industrial Applications)
4.1 自动驾驶 (Autonomous Driving)
- 感知层:使用多摄像头进行 3D 目标检测(车辆、行人)、车道线检测。
- 传感器融合:视觉 + LiDAR + 雷达。
- 挑战:恶劣天气(雨雪雾)、遮挡、长尾场景(Corner Cases)。
4.2 智慧安防与城市治理
- 人脸识别 :人脸检测 -> 关键点对齐 -> 特征提取 -> 向量比对。
- 损失函数进化:Softmax -> Center Loss -> ArcFace (基于角度的余弦距离)。
- 行人重识别 (ReID):跨摄像头追踪特定目标。
- 行为分析:跌倒检测、打架识别、人群密度估计。
4.3 工业制造 (Smart Manufacturing)
- AOI (Automated Optical Inspection):PCB 电路板缺陷检测、屏幕划痕检测。
- 机械臂引导:3D 视觉定位抓取(Bin Picking)。
- OCR:工业部件上的文字、条码、二维码识别。
4.4 生成式 AI (AIGC & Generative Vision)
- 图像生成 :基于扩散模型(Diffusion Models,如 Stable Diffusion)。
- 原理:前向过程加噪,反向过程去噪。
- 视频生成:Sora 类模型,基于时空 Patches 的 Transformer。
模块五:技术实现与工程落地 (Implementation Pipeline)
5.1 数据工程 (Data Engineering)
CV 项目 80% 的时间在处理数据。
- 数据标注:LabelMe, CVAT 等工具。
- 数据增强 (Data Augmentation):几何变换(旋转、翻转)、颜色变换、Mixup、Mosaic(YOLOv4 引入)。目的是提高模型泛化能力。
5.2 模型训练与优化 (Training & Optimization)
- 迁移学习 (Transfer Learning):使用 ImageNet 预训练权重进行微调(Fine-tuning),解决小样本数据问题。
- 优化器 :SGD + Momentum, AdamW (目前最主流)。
- 学习率策略:Warmup + Cosine Annealing(余弦退火)。
5.3 模型部署 (Model Deployment)
模型训练通常在 PyTorch/TensorFlow 上,但落地需要转换。
- 中间格式:ONNX (Open Neural Network Exchange)。
- 推理引擎 :
- NVIDIA TensorRT:GPU 端极致加速(层融合、精度量化 FP16/INT8)。
- OpenVINO:Intel CPU 端加速。
- NCNN/TNN:移动端(Android/iOS)部署。
- 量化 (Quantization):将模型从 FP32 压缩到 INT8,体积减小 4 倍,速度提升,精度略损。
附录:推荐学习路径
- 数学基础:线性代数、概率论、微积分。
- 编程基础:Python, NumPy, OpenCV。
- 框架学习:PyTorch (学术界与工业界首选)。
- 实战项目:从 MNIST 手写数字识别开始,进阶到 YOLO 目标检测训练自己的数据集。