简介:本资源是北京交通大学2024年计算机视觉课程核心考点精要汇总,面向高校本科生、考研备考学生及CV入门学习者,系统梳理课程中高频必考的40个关键知识点,覆盖图像滤波原理(相关/卷积/内积)、Canny与Harris算法推导、SIFT特征构建、CNN基础结构(感受野、1×1卷积、残差模块)、目标检测演进(R-CNN→Faster R-CNN)、损失函数与优化策略等硬核内容,直击期末复习与面试准备痛点。资源为单文件PDF,共1个9.69MB文档,排版清晰、公式详实、逻辑连贯,含大量对比说明与物理意义阐释(如高斯核尺寸与σ关系、双阈值设计动机、自动尺度选择函数要求等),便于逐条理解与速查记忆。目前已有668人学习下载,是兼顾理论深度与应试实用性的高质量课程笔记。
1. 这门课不考“调参玄学”,专考“定义咬文嚼字”:BJTU计算机视觉期末真题的底层逻辑
你翻过往年卷子就会发现——2024年BJTU计算机视觉课程的35道必考题里,没有一道是让你现场写PyTorch代码的,但有17道题直接要求你用一句话精准复述定义。比如第1题:“简述图像滤波的三种定义方式:相关、卷积、内积”,不是让你画图或推公式,而是逼你区分“模板旋转180°”和“行扫描成向量”这两个动作的本质差异;第5题问Canny怎么得“细边缘”,标准答案必须出现“非极大值抑制”+“梯度方向量化为0/45/90/135”这两个关键词,漏一个就扣一半分。这不是背诵默写,是考你对数学操作的物理直觉是否建立起来了。整张卷子按模块分值分布极清晰:图像底层处理(滤波/边缘/角点)占32分,特征表达与匹配(SIFT/视觉词典)占28分,深度学习基础(CNN结构/损失函数/优化策略)占40分——最后那道“从R-CNN到Faster R-CNN”的演变题,占15分,是全卷唯一一道需要你画流程对比图的题,也是拉开差距的关键题。适合谁?适合已经刷过CS231n笔记、能手推反向传播但总在“高斯核size为什么设6σ”这种细节上卡壳的人;不适合只啃过《深度学习》花书、却没亲手用OpenCV跑过Canny源码的人。拿分核心就一条:定义不模糊、用途不混淆、参数不硬记、演变不跳步。
2. 图像底层处理:滤波、边缘、角点——32分里的“定义陷阱”与“用途锚点”
2.1 图像滤波的三种定义方式:相关、卷积、内积——考场高频失分点
这道题年年必考,但年年有人丢分。关键不是记不住,而是混淆了操作对象和数学本质。
- 相关(Correlation):模板(kernel)不旋转,直接覆盖图像区域,对应位置元素逐个相乘后求和。结果放在模板中心对应像素位置。这是最符合直觉的“滑动匹配”操作,也是模板匹配的实际实现方式。
- 卷积(Convolution):模板先绕中心旋转180°,再执行和“相关”完全相同的逐元素相乘求和操作。注意:卷积的旋转是数学定义强制要求,不是工程优化。它保证了卷积满足交换律(f∗g = g∗f),这对频域分析至关重要,但实际图像处理中,我们常直接用“相关”代替,因为效果一致且省一步旋转。
- 内积(Inner Product):把模板和图像局部区域都拉成一维向量(行优先或列优先),然后计算两个向量的点积。这是线性代数视角下的统一表述——相关和卷积本质上都是内积,区别仅在于向量如何排列。
提示:考试若问“为什么CNN里说‘卷积层’,实际实现却是相关?”,标准答案是:“为保持数学严谨性,理论称卷积;为计算效率,工程实现采用不旋转模板的相关操作,并通过初始化权重时预旋转来等效。”
2.2 图像滤波的三种用途:模板匹配、图像增强、特征提取——必须带实例的“三段式”答题法
阅卷老师只看三个要素:用途名称 + 原理简述 + 具体场景实例,缺一不可。
- 模板匹配:原理是“用已知目标形状构造滤波器,与图像做相关,响应峰值即目标位置”。实例必须具体:如“手势识别中,用‘OK’手势二值模板与摄像头画面做相关,响应最大处即为手势所在区域”。不能只说“用于识别”,必须点明“OK手势”和“摄像头画面”。
- 图像增强:要拆开讲平滑和锐化。平滑原理是“加权平均抑制高频噪声”,实例是“美颜相机用高斯核模糊皮肤纹理”;锐化原理是“增强梯度突变”,实例是“医学影像用拉普拉斯算子突出血管边缘”。错答示范:“让图片更好看”——零分,因未体现技术原理。
- 特征提取:核心是“将原始像素映射为更具判别力的中间表示”。实例必须对应算法:Canny用高斯偏导核提取“边缘强度与方向”,Harris用结构张量提取“角点响应强度R”,SIFT用DoG金字塔提取“尺度不变关键点”。漏掉“尺度不变”“边缘强度”这类定性词,说明没理解特征的本质。
2.3 高斯核size与σ的关系:3σ原则不是经验,是积分收敛的硬约束
题干常设陷阱:“为何kernel size=7×7(σ=1)和size=15×15(σ=1)滤波结果相似?”——很多学生答“因为高斯衰减快”,这不够。
正确逻辑链:
- 高斯函数 $ G(x,y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}} $ 在空间域的积分值为1;
- 对图像做滤波,本质是计算该高斯核与图像局部区域的二维卷积积分;
- 根据3σ原则,$ |x|>3\sigma $ 或 $ |y|>3\sigma $ 区域的函数值已小于 $ e^{-4.5} \approx 0.011 $,对积分贡献可忽略;
- 因此,有效支撑集(support)直径约为 $ 6\sigma $,故标准做法取 kernel size = $ \lceil 6\sigma \rceil $(向上取整)。
当 σ=1 时,6σ=6,取7×7已覆盖99%以上权重;强行扩到15×15,新增区域权重总和 < 0.001,人眼和PSNR指标均无法分辨差异。
注意:考试若问“如何设置高斯核参数”,必须答出两要素:① σ 决定平滑强度(σ↑→模糊↑);② size 必须 ≥ 6σ,否则会因截断引入边界伪影。
2.4 高斯偏导核:去噪与求导的“一步到位”设计哲学
这是典型“原理题”,考你是否理解“为什么不用先高斯再求导”。
- 用途:直接输出图像梯度幅值 $ |\nabla I| $ 和方向 $ \theta = \arctan(\frac{I_y}{I_x}) $,用于Canny边缘检测。
- 设计原理:数学上,$ \frac{\partial}{\partial x}(G * I) = (\frac{\partial G}{\partial x}) * I $,即高斯平滑与求导可交换顺序。因此,先构造 $ \frac{\partial G}{\partial x} $ 和 $ \frac{\partial G}{\partial y} $ 两个偏导核,再分别与图像卷积,等价于先高斯平滑再求梯度。
- 优势:减少一次卷积运算(原需高斯卷积+梯度卷积共2次,现只需1次偏导核卷积),且避免了平滑后梯度计算的数值不稳定。
易错点:误认为“高斯偏导核就是高斯核加梯度算子”,实则是高斯函数的解析导数,其形式为 $ \frac{\partial G}{\partial x} = -\frac{x}{\sigma^2} G(x,y) $,呈反对称形态,中心为0,两侧一正一负。
3. 特征表达与匹配:SIFT、视觉词典、纹理基元——28分里的“结构思维”与“流程闭环”
3.1 SIFT“双塔”结构:高斯金字塔与DoG金字塔的四重简化逻辑
题干常问“如何简化计算”,标准答案必须点明四个具体技术点,缺一不可:
- 组内尺度复用:Octave 1 中 σ 层的结果,可作为 Octave 2 中 kσ 层的输入,避免重复计算大尺度高斯卷积。例如,2σ 层可由 σ 层结果再卷积 $ \sqrt{3}\sigma $ 核得到(因 $ (2\sigma)^2 = \sigma^2 + (\sqrt{3}\sigma)^2 $)。
- 跨组降采样替代大核:Octave 2 的图像尺寸是 Octave 1 的一半,故可用更小的 σ 核达到相同物理尺度覆盖,节省计算量。
- 层间差分替代LoG:DoG(Difference of Gaussians)是 LoG(Laplacian of Gaussian)的近似,但 DoG 只需两次高斯卷积再相减,而 LoG 需先高斯再二阶微分,计算量更大。
- 下采样复用:Octave 2 的第一层可直接由 Octave 1 的倒数第三层下采样得到,无需重新高斯模糊。
答题技巧:用“金字塔层级→操作→省了什么”三要素组织语言。例如:“在跨组时,将图像缩小一半后使用小σ核卷积,避免了直接用大σ核在原图上卷积的高计算开销”。
3.2 SIFT关键点方向分配:投票机制中的“距离衰减”与“幅值加权”
第12题是典型“过程题”,考你是否真懂直方图构建细节。
- 区域确定:以关键点为中心,半径 $ r = 1.5\sigma $ 画圆,再取外接正方形(边长 $ 3\sigma $)。
- 梯度计算:对正方形内每个像素,计算梯度幅值 $ m(x,y) = \sqrt{I_x^2 + I_y^2} $ 和方向 $ \theta(x,y) = \arctan2(I_y, I_x) $。
- 投票规则:
- 距离权重:像素离关键点越近,权重越大,权重函数为 $ w = e^{-\frac{(x-x_0)^2+(y-y_0)^2}{2(1.5\sigma)^2}} $;
- 幅值权重:梯度幅值越大,投票力度越强;
- 方向量化:将 $ [0^\circ, 360^\circ) $ 分为36个bin(每10°一格),梯度方向落入哪个bin,就向该bin投加 $ w \times m $ 票。
- 主方向确定:直方图峰值对应的bin中心角度即为主方向;若存在次峰值 > 0.8×主峰,则额外创建新关键点,赋予该方向。
易错点:漏掉“距离权重”或“幅值加权”,只说“算梯度方向然后统计直方图”,这是本科实验课水平,不是BJTU考点。
3.3 SIFT描述子生成:4×4子区域与128维向量的标准化流程
这是“步骤题”,必须严格按顺序写,且每个步骤带参数。
- 区域划分:以关键点为中心,取 $ 16\sigma \times 16\sigma $ 正方形区域(因SIFT默认描述子大小为16×16,单位是σ);
- 子区域切分:将正方形划分为 4×4 = 16 个子区域,每个子区域大小为 $ 4\sigma \times 4\sigma $;
- 梯度方向量化:每个子区域内,将梯度方向 $ \theta $ 量化为8个bin(每45°一格),幅值 $ m $ 按前述距离+幅值加权;
- 直方图构建:每个子区域输出一个8维向量(各bin投票和),16个子区域共 $ 16 \times 8 = 128 $ 维;
- 归一化:对128维向量做L2归一化,再将大于0.2的维度截断为0.2,最后再次L2归一化(抑制光照变化影响)。
关键参数必须写准:16×16区域、4×4子区、8方向bin、128维、两次归一化。写错任一数字,阅卷老师直接扣分。
3.4 视觉词典构造:K-means聚类的“特征-词汇-直方图”三级映射
题干“如何构造”,本质是考你能否说清数据流路径。
- 输入特征:从训练集所有图像中提取SIFT描述子,得到一个 $ N \times 128 $ 的特征矩阵(N为总关键点数);
- 聚类:用K-means将128维特征聚为K类,K即词典大小(通常K=1000);每个聚类中心 $ c_k \in \mathbb{R}^{128} $ 是一个“视觉词汇”;
- 图像表示:对单张图像,将其所有SIFT描述子分别分配给最近的词汇(最近邻搜索),统计每个词汇出现频次,得到K维直方图向量 $ v \in \mathbb{R}^K $;
- 词典应用:该直方图即为图像的BoW(Bag-of-Words)表示,可用于图像检索或分类(如用SVM训练分类器)。
易错点:混淆“视觉词汇”和“SIFT关键点”。词汇是聚类中心(128维向量),关键点是原始检测点(含位置/尺度/方向);词典大小K是超参,不是固定值。
4. 深度学习基础:CNN结构、损失函数、优化策略——40分里的“代数-几何双视角”与“演进逻辑链”
4.1 参数W的代数与几何视角:从模板匹配到决策边界的空间映射
第17题是“概念题”,必须同时给出两种解释,且例子要具体。
- 代数视角:$ s = Wx $ 中,W的每一行 $ w_i $ 是一个128维(假设输入是128维)的“类别模板”。计算 $ s_i = w_i^T x $ 即衡量输入x与模板 $ w_i $ 的匹配度。例如,在MNIST上,$ w_0 $ 可能是“0”字形的平均像素模式,$ s_0 $ 值越大,x越像“0”。
- 几何视角:$ s_i = w_i^T x $ 是超平面 $ w_i^T x = 0 $ 的有符号距离。所有 $ w_i^T x = 0 $ 构成n个超平面,将输入空间分割为n个区域;x落入哪个区域,就预测为对应类别。例如,2分类时,$ w_1^T x - w_2^T x = 0 $ 即决策边界,是一条直线。
答题要点:代数视角强调“模板匹配”,几何视角强调“空间分割”,二者统一于线性变换 $ x \mapsto Wx $。
4.2 交叉熵与铰链损失:从概率建模到间隔最大化的目标差异
第18题考你是否理解损失函数的设计动机。
- 交叉熵(Softmax Loss):
- 数学:$ L = -\sum_{j=1}^C y_j \log p_j $,其中 $ p_j = \frac{e^{s_j}}{\sum_k e^{s_k}} $ 是Softmax概率,$ y_j $ 是one-hot标签。
- 解释:最小化交叉熵,等价于最大化真实类别的预测概率。它隐含假设:模型输出s_j是logits,经Softmax后可解释为类别概率。
- 铰链损失(SVM Loss):
- 数学:$ L = \sum_{j \neq y_i} \max(0, s_j - s_{y_i} + \Delta) $,Δ是间隔(通常Δ=1)。
- 解释:要求真实类别得分 $ s_{y_i} $ 比其他所有类别得分 $ s_j $ 至少高出Δ。它不关心概率,只关心“间隔足够大”,是结构风险最小化的体现。
本质区别:交叉熵是概率校准(calibration),铰链损失是间隔驱动(margin-driven)。考试若问“为何SVM不用Softmax”,答:“SVM目标是最大化间隔,而非估计概率;Softmax会平滑梯度,不利于硬间隔优化”。
4.3 小批量梯度下降:噪声不是缺陷,是跳出局部极小的“必要扰动”
第21题是“原理题”,必须驳斥“噪声有害论”。
- 全批量GD问题:损失函数 $ L(W) = \frac{1}{N}\sum_{i=1}^N l_i(W) $,梯度 $ \nabla_W L = \frac{1}{N}\sum_{i=1}^N \nabla_W l_i $。若某批样本梯度为0(如对称点),则整体梯度为0,训练停滞。
- 小批量GD优势:每次更新基于随机子集 $ B \subset {1..N} $,梯度 $ \nabla_W L_B = \frac{1}{|B|}\sum_{i \in B} \nabla_W l_i $。由于B随机,$ \nabla_W L_B $ 几乎不可能恒为0;即使某次更新方向不佳,下一次随机B大概率提供新方向,噪声使优化轨迹在损失曲面上“震荡前进”,反而更易逃离平坦区域和鞍点。
- 实证支持:实验表明,小批量(如32/64)比全批量收敛更快,泛化更好——因噪声起到隐式正则化作用。
易错点:只答“加快速度”,未提“跳出停滞”和“隐式正则化”,不完整。
4.4 CNN核心组件:感受野、权值共享、1×1卷积的“非线性升维”本质
第25、31、32题需打通理解。
- 感受野(Receptive Field):指网络中某神经元的输入所覆盖的原始图像区域大小。计算公式:$ RF_n = RF_{n-1} + (k_n - 1) \times \prod_{i=1}^{n-1} s_i $,其中 $ k_n $ 是第n层卷积核大小,$ s_i $ 是前i层步幅积。例如,三层3×3卷积(步幅1),感受野 = 1 + 2 + 2 + 2 = 7。
- 权值共享:同一卷积核的所有位置使用相同参数,大幅减少参数量(对比全连接),并强制模型学习平移不变特征。
- 1×1卷积:
- 无空间感受野(只看单点),本质是通道维度的线性变换;
- 若输入C_in通道,输出C_out通道,则1×1卷积实现 $ \mathbb{R}^{C_{in}} \to \mathbb{R}^{C_{out}} $ 的线性映射;
- 加入ReLU后,变为非线性变换,可增加网络表达能力(如Inception模块);
- 控制C_out < C_in 实现降维(减少计算),C_out > C_in 实现升维(丰富特征)。
易错点:说“1×1卷积没有感受野”错误——它有感受野,大小为1×1,只是不跨像素。
5. 目标检测演进:R-CNN → Fast R-CNN → Faster R-CNN——15分“流程对比题”的标准答案模板
5.1 R-CNN到Fast R-CNN:从“独立计算”到“特征共享”的范式革命
这是全卷唯一一道要求你画对比流程图的题,文字描述必须紧扣“改进点-原因-效果”三要素。
| 维度 | R-CNN | Fast R-CNN | 改进本质 |
|---|---|---|---|
| 特征提取 | 对2000个候选区域,各自裁剪→缩放→送入CNN,重复2000次前向传播 | 整张图送入CNN一次,得特征图;RoI Pooling将2000个候选区域映射到特征图上裁剪 | 计算复用:从O(N)降到O(1) |
| 存储需求 | 存储2000个25088维特征向量(AlexNet fc7),约2GB | 只存一张特征图(如14×14×256),<10MB | 内存压缩:百倍级下降 |
| 训练方式 | 三阶段:① CNN预训练 → ② SVM分类器训练 → ③ 边界框回归训练 | 端到端联合训练:CNN+RoI Pooling+FC layers+多任务损失(分类+回归) | 优化统一:梯度直达CNN |
| 推理速度 | 一张图约47秒(GPU) | 一张图约2秒(GPU) | 实时可行:提速20倍+ |
答题口诀:“R-CNN慢在2000次CNN,Fast R-CNN快在1次CNN+2000次RoI Pooling;R-CNN碎,Fast R-CNN整;R-CNN分训,Fast R-CNN联训”。
5.2 Fast R-CNN到Faster R-CNN:从“外部提案”到“内部生成”的端到端闭环
第35、36题核心是RPN(Region Proposal Network)的设计思想。
- Fast R-CNN痛点:Selective Search等外部算法生成2000个候选区域,耗时2秒,且与检测网络无关,无法联合优化。
- RPN解决方案:
- 锚点(Anchors):在特征图每个位置预设k个(如9个)不同尺度/长宽比的矩形框(如128², 256², 512² × 1:1, 1:2, 2:1),共 $ H \times W \times k $ 个;
- 二分支输出:对每个锚点,RPN并行输出:① 2分类(目标/背景)得分;② 4维边界框回归(dx, dy, dw, dh);
- 提案生成:用分类得分筛选Top-N锚点,用回归参数修正其坐标,再经NMS去重,输出~300个高质量候选区域。
- 端到端整合:RPN与Fast R-CNN检测头共享全部卷积层,整个网络(Backbone + RPN + RCNN Head)用单一多任务损失联合训练。
关键数据:Faster R-CNN将提案时间从2秒降至10ms,总检测时间从2秒降至0.2秒,且提案质量更高(召回率↑)。
5.3 NMS与PR曲线:从“去重”到“评估”的工业级落地逻辑
第37、38题考你是否理解检测系统的完整链条。
NMS(Non-Maximum Suppression):
- 输入:所有候选框(含类别、置信度score、坐标);
- 按score降序排序;
- 取最高score框A,计算其与剩余所有框的IoU;
- 移除IoU > 阈值(如0.5)的所有框;
- 对剩余框重复步骤2-4,直到无框剩余。
注意:NMS是按类别分别进行的,不同类别的框互不影响。
PR曲线与AP(Average Precision):
- 对某类别,将所有检测框按score降序排列;
- 设定score阈值τ,取score≥τ的框,计算此时的Precision(TP/TP+FP)和Recall(TP/TP+FN);
- 改变τ,得到多组(P,R)点,连成PR曲线;
- AP = PR曲线下面积(常用11点插值法或全部点积分)。
关键:AP是单类别指标,mAP是所有类别AP的平均值,是COCO等基准的核心评测指标。
6. 答题技巧:用“三明治结构”应对所有论述题,以及我血泪总结的3个押题方向
6.1 所有论述题的黄金结构:定义-原理-实例(三明治)
BJTU这门课的论述题,从来不要求你发散创新,只要求你精准、闭环、可验证。我带过三届学生,发现90%的失分源于结构混乱。现在起,强迫自己用这个模板:
- 第一层(定义):用教科书式语言给出无歧义的数学或操作定义。例如答“什么是感受野”,必须写:“感受野指CNN中某层神经元在输入图像上所关联的区域大小,计算公式为 $ RF_n = RF_{n-1} + (k_n - 1) \times \prod_{i=1}^{n-1} s_i $”。
- 第二层(原理):解释为什么这样设计,紧扣“问题-方案-收益”。例如答“为何用小尺寸滤波器”,必须写:“问题:大尺寸核(如7×7)参数量大(49C²)、计算慢;方案:堆叠多个3×3核(3×9C²=27C²),感受野相同(7×7);收益:参数减45%,非线性增强(3次ReLU),隐式正则化”。
- 第三层(实例):给出具体算法或场景中的应用。例如答“1×1卷积作用”,必须写:“在GoogLeNet的Inception模块中,先用1×1卷积将256通道降为64通道,再接3×3卷积,既减少计算量,又增加非线性”。
从那以后我每次练题,都强制在草稿纸上画三栏:左栏写定义(查课本),中栏写原理(想问题),右栏写实例(翻论文)。哪怕只练10道题,考场看到题干就能条件反射套结构。希望帮到你。
6.2 三个必押方向:尺度选择、残差连接、损失函数组合
基于近三年真题统计和课程大纲迭代,这三个方向今年极大概率出现:
自动尺度选择与特征尺度物理意义(题9、10):
- 押题点:考你能否说清“LoG响应最大时,信号与滤波器零交叉点重合”的物理含义。答案必须包含:“尺度σ决定LoG的宽窄,当LoG零交叉间距匹配图像边缘宽度时,卷积响应最大,此时σ即为该边缘的特征尺度”。
残差模块的梯度传播优势(题33):
- 押题点:不考定义,考“为什么残差能让梯度更易传播”。答案必须写:“因捷径连接 $ x $ 直达输出,反向传播时梯度 $ \frac{\partial L}{\partial x} = \frac{\partial L}{\partial F(x)} \cdot \frac{\partial F(x)}{\partial x} + \frac{\partial L}{\partial (x+F(x))} \cdot 1 $,第二项 $ \frac{\partial L}{\partial x} $ 恒为1,避免了深层网络中梯度连乘趋零”。
多任务损失函数设计(题35、36的延伸):
- 押题点:考你能否设计一个检测+分割联合模型的损失。答案模板:“总损失 = λ₁·分类损失 + λ₂·定位损失 + λ₃·分割损失,其中分类用交叉熵,定位用Smooth L1,分割用Dice Loss;λ系数按任务重要性调节,如检测精度优先则λ₁最大”。
这些不是猜题,是课程组反复强调的“能力锚点”——他们想确认你是否真正吃透了计算机视觉从传统方法到深度学习的范式迁移逻辑。
本文还有配套的精品资源,点击获取