🖼️ 计算机视觉(CV)面试与实战红宝书
一、 图像处理与传统特征(底层功底)
1. 颜色空间与通道
- RGB:基于三原色叠加,符合显示器原理,但通道间耦合度高,不适合提取特征。
- HSV:色调(H)、饱和度(S)、亮度(V)。常用场景:通过 H 通道进行颜色分割(如识别绿幕、红色交通标志)。
- 灰度图:单通道,去除色彩干扰,保留结构和亮度信息,降低计算量。
2. 直方图均衡化
- 原理:通过累积分布函数(CDF)将分布集中的直方图拉伸,使其在 $[0, 255]$ 范围内均匀分布。
- 作用:增强图像对比度,尤其是处理过暗或过亮的场景。
3. 滤波:降噪三剑客
- 高斯滤波:权重符合高斯分布,平滑图像。缺点:会模糊边缘。
- 中值滤波:取窗口中值。特长:完美去除椒盐噪声,保护边缘能力强。
- 双边滤波:不仅考虑空间距离,还考虑像素值差异。特长:保边去噪(磨皮美颜的核心算法)。
4. 边缘检测与传统特征
-
Canny 步骤:1.高斯去噪 $\rightarrow$ 2.计算梯度方向 $\rightarrow$ 3.非极大值抑制(变瘦) $\rightarrow$ 4.双阈值检测(滞后阈值连接边缘)。
-
SIFT vs ORB:
-
SIFT:具有旋转、尺度、亮度不变性,精度高,但速度慢、有专利。
-
ORB:FAST 特征点 + BRIEF 描述子,速度极快(实时),开源,但对尺度缩放稍弱。
-
RANSAC(随机采样一致性):在特征匹配中,通过不断随机抽样排除误匹配点(离群点),计算出最稳健的单应矩阵。
二、 深度学习核心(面试重灾区)
1. CNN 基础与原理
- 卷积的作用:局部感知、参数共享。它提取的是局部空间特征(由浅入深:边缘 $\rightarrow$ 纹理 $\rightarrow$ 目标)。
- 1×1 卷积:跨通道特征融合、改变通道数(降维/升维)、增加非线性。
- BatchNorm (BN):将每一层输入标准化为均值 0 方差 1。作用:防止梯度消失、加快收敛、允许更大的学习率。
- 激活函数:
- ReLU:解决梯度消失,计算快,但会导致神经元“坏死”(Dead ReLU)。
- LeakyReLU:给负半轴一点点斜率,防止死区。
- GELU:引入了随机性思想,Transformer 模型标配。
2. 经典架构进化
- ResNet:提出残差结构(Residual Connection),解决深层网络训练时的退化问题(Identity Mapping 保证网络至少不比前一层差)。
- MobileNet 设计:采用深度可分离卷积(Depthwise + Pointwise),将计算量降至常规卷积的约 $1/9$。
- Inception:通过多尺度卷积核(1x1, 3x3, 5x5)并行,让网络决定哪种感受野更重要。
3. 目标检测
- One-stage (YOLO/SSD):直接回归。速度快,适合移动端部署。
- Two-stage (Faster R-CNN):先找候选框(RPN),再分类。精度高,适合医疗、精密分析。
- NMS (非极大值抑制):按得分排序,抑制与最高分框 IOU 过大的冗余框。缺点:密集物体遮挡时会误删真实目标(改进方案:Soft-NMS)。
- mAP:所有类别的平均准确率(Average Precision)的平均值。
三、 损失函数与优化(实战调优)
- Focal Loss:解决样本不平衡。通过降低易分类样本权重,让模型专注于难分类样本(目标检测中的背景通常远多于前景)。
- Dice Loss:专门用于语义分割,直接优化 IOU,缓解前景像素占比过小的问题。
- 优化器选择:
- SGD:稳定但慢,容易陷入局部最优。
- Adam:自适应学习率,收敛极快,通常是新手练手的首选。
四、 工程部署与项目落地(道满特色)
1. 模型加速
- 量化:将 FP32 转为 INT8。能极大提升推理速度(尤其在你的 6Mbps 服务器环境中),降低内存占用。
- 蒸馏:教师模型(大模型)指导学生模型(小模型),让小模型学会大模型的输出分布。
- TensorRT:NVIDIA 闭源推理加速引擎,优化算子融合,是生产环境部署的标配。
2. 精度与速度定位
- 速度慢:看是 IO 瓶颈(图片预处理慢)、CPU 预处理慢还是 GPU 计算满。检查是否有频繁的
cpu()和gpu()数据搬运。 - 精度低:检查数据增强是否过火、输入尺寸是否对齐训练尺寸、是否有严重的类别不平衡。
五、 常考计算题(避坑指南)
- 输出尺寸计算:
$$H_{out} = \left\lfloor \frac{H_{in} + 2P - K}{S} \right\rfloor + 1$$
($H$:输入高, $P$:填充, $K$:卷积核大小, $S$:步长)
- 感受野 (RF):层数越深,感受野越大。大的感受野有利于看清“全局大目标”,小的有利于“局部细节”。
- 椒盐噪声 vs 高斯噪声:
- 椒盐:随机的黑白点。用中值滤波。
- 高斯:像素值符合正态分布的波动。用高斯滤波。
💡 给“道满 Python AI”教程的总结
在你的教程中,可以这样引导学员:
“做 CV 不只是调包跑 YOLO。当你发现模型在 6Mbps 带宽下推理延迟 2 秒时,你需要量化;当你在做验证码识别发现精度不稳时,你需要回头看图像增强和损失函数。这套知识体系,就是从学生到架构师的跨越。”
这个总结涵盖了你大纲的所有核心。你想针对其中某一个模块(比如目标检测的计算细节),让我为你写一段可以直接作为课程讲义的代码演示吗?

