cv_classic
" /ilm:2.1.0": tip(body) = { block( fill: rgb(" "), stroke: (left: 3pt + rgb(" ")), inset: 8pt, radius: (right: 4pt), width: 100%, body ) } warn(body) = { block( fill: rgb(" "), stroke: (left: 3pt + red), inset: 8pt, radius: (right: 4pt), width: 100%, body ) } formula(body) = { block( fill: luma(245), inset: (x: 12pt, y: 6pt), radius: 4pt, width: 100%, body ) } : ilm.with( title: [计算机视觉 开卷考试速查手册 — 传统视觉篇], authors: "Biscuit · Alkaid", date: datetime(year: 2026, month: 07, day: 05), abstract: [ 本文档为《计算机视觉》传统视觉部分速查,涵盖:Lecture 02 空间图像增强(灰度变换、直方图均衡化/CLAHE、算术运算)、Lecture 03 图像滤波(卷积/互相关、平滑/锐化滤波、Canny 边缘检测)、Lecture 04 特征检测(Harris 角点、LoG 斑点、SIFT)、Lecture 05 拟合与变换(最小二乘法、RANSAC、霍夫变换)、Lecture 07 图像分割(传统方法、深度学习分割、检测演进)、Lecture 08–09 成像系统(ISP 流程、HDR、图像复原、传感器、底层视觉任务)、Lecture 11 光流(LK、HS、KLT 跟踪器),以及【补1】【补2】【补3】【补5】【补6】【补8】共 6 个补充章节。适合开卷考试快速查阅。 ], chapter-pagebreak: false, ) = 空间图像增强的基础定义与点操作公式 增强的核心目的 利用特定算法优化图像视觉效果, [有选择性地强调有用信息、压制不必要的细节],将图像转为更适合人类或机器分析的形式。注:此过程 [并不在意图像保真度]。 空间域点操作公式 [ 空间域变换通用公式: g(x, y) = T[f(x, y)] s = T(r) ] - [参数定义:] - f(x, y) :原始输入图像。 - g(x, y) :变换后输出图像。 - T :作用于图像的变换操作。 - [ r :]原始图像 f(x, y) 在任意坐标点 (x, y) 的 [灰度级(输入灰度级)]。 - [ s :]增强后图像 g(x, y) 在该坐标点 (x, y) 的 [灰度级(输出灰度级)]。 - 对于点操作,灰度变换函数 T 仅取决于灰度值 r 的大小, [与像素点的具体坐标无关]。 = 灰度变换方法(常用点操作) 图像反转(负片变换) [ s = L - 1 - r ] - [ L :]图像的灰度级总数(例如 8 位图像中, L = 256 )。 - [核心特性:]将图像的黑白反转(黑色变白,白色变黑),产生"负片"效果。 - [典型应用:]在 [医学影像](如乳腺 X 光钼靶图像)中,反转后可使原本不易察觉的 [微小病灶(钙化点、肿瘤)在高亮度的背景衬托下显现出来]。 对数变换(压缩高动态范围) 图像中最亮与最暗可分辨像素的比值,一般用分贝(dB)表示: "DR" = 20 log {10}(R (max)/R (min)) 动态范围与灰度级是两个不同的概念。灰度级量化精度,动态范围量化可记录的亮度跨度。一张 8 位图像即使有 256 级灰度,其物理动态范围仍然受限于传感器的能力。 [ s = c dot log(1 + r) c = frac(L - 1, log(1 + R (max))) ] 其中常数 c 保证最大灰度级映射到 L-1 : - [ r :]输入灰度, s :输出灰度, R (max) :输入图像的最大灰度值, L :输出灰度总级数。 [一阶导数分析(考试高频考点):] 对 r 求导数: dif(s)/dif(r) = c/(1 + r) - 当 [ r 很小(暗部区域):]导数 approx c (斜率较大)。特性:放大暗部细节, 将较窄范围的低灰度级映射到较宽范围的灰度级。 - 当 [ r 很大(亮部区域):]导数趋近于 0 (斜率很小)。特性:压缩亮部,防止过曝丢失细节, 将较宽范围的高灰度级映射到较窄范围,从而抑制高灰度区域 [典型应用场景:]真实世界亮度动态范围可达 10^7 以上,普通 8-bit 图像只能表示 0 255 级别。直接显示会导致 [亮部过曝(全白)或暗部欠曝(全黑)]。对数变换能将极大动态范围映射到极窄范围,同时保留明暗细节。 幂律(伽马)变换(控制明暗与显示器校正) [ s = c dot r^(gamma) ] - [ c, gamma :]正常数(工程上通常 c = 1 )。 - [ r :]输入灰度(归一化到 0 1 区间)。 - s :输出灰度。 [变换曲线特性(必背):] - [ gamma < 1 :]将低灰度级大幅提升,曲线位于直线 s = r [上方]。结果:图像 [整体变亮],暗部细节被拉伸放大。 gamma 越小越亮。 - [ gamma > 1 :]将高灰度级大幅压低,曲线位于直线 s = r [下方]。结果:图像 [整体变暗],亮部细节被拉伸放大。 gamma 越大越暗。 [显示器伽马校正工程应用(必背):] - [核心问题:]现实显示设备(CRT/LCD)具有 [非线性响应]。物理亮度 L "out" prop V "in"^gamma (典型 gamma approx 2.2 )。 - 若直接输入 8-bit 图像 r ,显示器输出亮度为 r^(2.2) ,导致图像偏暗或色彩失真。 - [解决办法(预补偿/伽马校正):]在图像送入显示器前,手动校正: s = r^(1/gamma) 。 - [数学验证:]显示器接收 r^(1/gamma) 后,输出亮度为 bold((r^(1/gamma))^gamma = r) ,最终恢复 [线性亮度响应]。 [ [考试对比小贴士:] - [对数变换]解决"动态范围太大,亮部和暗部无法同时看清"的问题。 - [伽马变换]调控"图像整体过暗或过亮",以及解决"显示器显示偏色"问题。 ] 线性灰度变换(对比度拉伸) [ 当原图灰度范围 [a, b] 变换为 [c, d] 时: g(x, y) = (d-c)/(b-a) dot (f(x, y) - a) + c quad a <= f(x, y) <= b ] - [应用场景:]解决因曝光不足或过度造成的 [图像灰度范围过窄(低对比度)]问题。 - [分段线性灰度变换:]将整个灰度区间分割为多段,每段设不同斜率。线性地扩展(增强)感兴趣的灰度范围,并相对压缩(抑制)不感兴趣的灰度区域 [ g(x, y) = cases( c/a dot f(x, y) "if" 0 <= f(x, y) < a , (d-c)/(b-a) dot [f(x, y)-a] + c "if" a <= f(x, y) < b , (L-1-d)/(L-1-b) dot [f(x, y)-b] + d "if" b <= f(x, y) <= L-1 ) ] 相对于连续的对数或幂律变换,分段变换 [更为机械、僵硬,但参数精密可控],适用于输出给计算机进行后续图像识别的场景。 灰度级分层(图像区域提取) - [背景全黑式:]关心范围 [A, B] 映射为最高值(白色),范围外为 0 (黑色)。用于强调特定灰度范围的 [形态轮廓]。 - [背景保留式:]关心范围 [A, B] 映射为最高值,范围外 [灰度保持不变]。用于在保持背景的同时,突出显示特定范围(如医学血管造影中凸显造影剂灌注的血管区域)。 位平面切片(Bit-plane Slicing) 将 8 位灰度图像的每个像素拆解为 8 个 1 位平面(Bit 0 Bit 7)。 - [Bit 0(最低有效位):]包含极其细微的高频细节信息。 - [Bit 7(最高有效位):]包含图像的核心结构信息。 - [应用:]图像压缩、隐写术、特定增强分析。 [ [工程应用补充:] - [医学 CT 窗宽窗位(WW/WL):]实质为分段线性变换,突出显示特定组织或病灶。 - [伽马校正:]针对显示器非线性响应进行预补偿(见伽马变换)。 - [图像降噪:]多幅图像加法求平均,去除随机加性噪声。 - [CLAHE:]提升局部对比度同时抑制噪声放大。 ] = 直方图调整方法 图像直方图的定义与核心局限性 [离散直方图定义一(频数):] [ H(r k) = n k ] 其中 r k 为第 k 个灰度级, n k 为该图像中灰度值为 r k 的像素总个数。 [直方图定义二(归一化概率密度 PDF):] [ p(r k) = n k / n ] 其中 n 为图像的总像素个数( M times N ), n k/n 表示灰度级 r k 在图像中出现的概率,将直方图数值规范到 [0, 1] 区间。 [直方图的性质与致命局限性(必考简答/辨析):] - [性质:]直方图具备 [平移不变性、尺度不变性、旋转不变性]。 - [局限性:]直方图 [不包含任何像素的空间位置信息]。 [ [经典反例(课件第 23 页原题):] 问:"将图像中的所有像素重新打乱,会发生什么?" [答:]图像的直方图完全不变。基于直方图的 [所有点操作处理结果也完全不受影响]。 ] - [对比度诊断:]曝光不足直方图集中在低灰度区(偏暗),曝光过度集中在高灰度区(偏亮),对比度低集中在极窄区间(细节模糊)。高对比度灰度直方图分布均匀、宽广。 直方图均衡化 [变换公式推导(连续域):] 假设原图 r 的概率密度为 p (r)(r) ,目标输出分布 s 是均匀分布,概率密度 p (s)(s) 恒为 1 。 [核心准则:]在映射过程中,灰度级对应的像素数量不改变,即曲线下的 [面积(概率)守恒]。 [ p (s)(s) dif s = p (r)(r) dif r ] 代入目标 p (s)(s) = 1 得: [ dif s = p (r)(r) dif r ] 两边积分得到变换函数: [ s = T(r) = integral 0^r p (r)(w) dif w ] [核心结论:]直方图均衡化的变换函数 T(r) ,其实就是 [原始图像的累积分布函数(CDF)]。 [离散灰度级计算步骤(大题标准答题格式):] + 步骤 1:计算原图概率密度: p(r k) = n k / n 。 + 步骤 2:计算累积分布函数 CDF: s k = sum (j=0)^k p(r j) 。 + 步骤 3:映射到具体灰度级:将累计值乘以最大灰度级并 [四舍五入],得 hat(s k) = "round"(s k times (L-1)) 。 + 步骤 4:合并灰度级并重算频数:将映射到同一个 hat(s k) 的原灰度级 r k 对应的像素数 n k 合并累加。 [计算例题(课件第 32-34 页,考试照抄):] 题目条件:图像 64 times 64 = 4096 像素, 8 个灰度级( L = 8 ,即最大灰度值为 7 )。 ( table( columns: (auto, auto, auto, auto, auto, auto, auto), stroke: none, inset: (x: 6pt, y: 4pt), table.hline(stroke: 1.2pt), table.header( [ r k ], [ n k ], [ p(r k) ], [累积 S k ], [ S k times 7 ], [ hat(s k) ], [新直方图归并] ), table.hline(stroke: 0.4pt), [ r 0 = 0 ], [790], [0.19], [0.19], [1.33], [ [1]], [灰度 1:790], [ r 1 = 1/7 ], [1023], [0.25], [0.44], [3.08], [ [3]], [灰度 3:1023], [ r 2 = 2/7 ], [850], [0.21], [0.65], [4.55], [ [5]], [灰度 5:850], [ r 3 = 3/7 ], [656], [0.16], [0.81], [5.67], [ [6]], [灰度 6:985(合并)], [ r 4 = 4/7 ], [329], [0.08], [0.89], [6.23], [ [6]], [], [ r 5 = 5/7 ], [245], [0.06], [0.95], [6.65], [ [7]], [灰度 7:448(合并)], [ r 6 = 6/7 ], [122], [0.03], [0.98], [6.86], [ [7]], [], [ r 7 = 1 ], [81], [0.02], [1.00], [7.00], [ [7]], [], table.hline(stroke: 1.2pt), ), caption: [直方图均衡化完整计算表格 — n = 4096 , L = 8 ], kind: table, ) <tbl-equalization> [ [均衡化的潜在副作用(考场简答题答案):] 直方图均衡化虽然能提高全局对比度,但也存在严重缺陷。由于离散化处理, [原直方图中频数较低的灰度级会在舍入过程中被合并到极少数的几个新灰度级中]。后果:原本有丰富层次变化的细节区域,因灰度级合并,出现 ["马赛克"伪影],丢失微小细节。 ] 限制对比度自适应直方图均衡化(CLAHE) 为弥补直方图均衡化造成的局部伪影,引入 CLAHE。 [核心思想:]对图像分块,每个块单独做直方图均衡化,但加入 [对比度限幅]抑制噪声放大。 [计算流程:] [步骤 1:分块。]将图像 I 划分为 T x times T y 个 [不重叠的块](tile),单个块尺寸 M B = M/T x , N B = N/T y 。记 tile (i,j) 内灰度级 r k 的像素数为 n k^(i j) 。 [步骤 2:设定裁剪阈值。]对每个 tile 计算裁剪阈值: [ beta = (M B dot N B)/L dot alpha ] L 为灰度级数(256), alpha 为 clip factor(典型值 2–4)。 beta 的物理意义:若每个灰度级恰好分到 N "tile"/L 个像素,直方图本身均匀。 [步骤 3:直方图裁剪与重分配。]对每个 tile: + 3a. 统计原始直方图 H (i j)(r k) = n k^(i j) 。 + 3b. 计算超出 beta 的过剩像素总数: [ N "excess"^(i j) = sum (k=0)^(L-1) max(0, n k^(i j) - beta) ] + 3c. 裁剪并均摊:将 N "excess"^(i j) 平均分配给所有 L 个灰度级: [ n k^(i j) arrow min(n k^(i j), beta) + N "excess"^(i j)/L ] + 3d. 可选迭代:若分配后某些灰度级再次超限,重复至收敛(通常 1–2 轮)。 + 3e. 归一化得 PDF: p (i j)(r k) = n k^(i j) / (M B dot N B) 。 [步骤 4:计算各 tile 的 CDF。]对每个 tile 计算累积分布函数并映射到整数灰度: [ s k^(i j) = T (i j)(r k) = sum (x=0)^k p (i j)(r x) r k^(i j) = "round"((L-1) dot s k^(i j)) ] 实际运行时仅需保留 CDF 查找表 T (i j)(r k) 。 [步骤 5:双线性插值消除块间接缝。]对任意像素 I(x,y) = r k : + 5a. 定位包围它的 4 个相邻 tile:左上 (i,j) 、右上 (i,j+1) 、左下 (i+1,j) 、右下 (i+1,j+1) 。 + 5b. 计算插值权重 w x (水平)、 w y (垂直),分别表示像素到左侧/上方 tile 中心的相对距离,取值范围 [0,1] 。 + 5c. 查 4 个 tile 的 CDF 得 T (t l), T (t r), T (b l), T (b r) ,做双线性加权: [ "middle" = (1-w x)(1-w y)T (t l) + w x(1-w y)T (t r) + (1-w x)w y T (b l) + w x w y T (b r) r' k = "round"((L-1) dot "middle") ] + 5d. 图像边缘像素退化到线性插值或直接取单 tile 变换。 "分块" arrow "clip 限幅" arrow "HE" arrow "双线性插值" [ [参数建议:]Tile 大小 8 times 8 (细节密集图像)或 16 times 16 (大尺度结构);clip factor alpha in [2, 4] ;bins 数通常 256。 ] 直方图匹配(规定化) 将原始图像的直方图变换为 [指定的目标直方图形状],用于更精准地控制图像增强效果。 [ [与均衡化的区别:]均衡化将直方图变为均匀分布(自动);匹配将直方图变为任意指定形状(可控)。 ] = 图像的基本运算 算术运算的结果可能超 0 255 范围,显示时通常需做截断或偏移。 图像算术运算 加法(+) [ C(x, y) = A(x, y) + B(x, y) ] - [典型应用:]图像叠加(二次曝光效果);对多张同类图像求 [平均值],用于 [去除叠加性随机噪声]。 减法(−) [ C(x, y) = A(x, y) - B(x, y) ] - [典型应用:]去除背景(绿幕抠图 / 蓝屏抠图技术);检测同一场景序列两幅图像间的 [变化/残差(运动物体检测)]。 - [显示要点:]减法结果范围为 [-255, 255] ,需做 [绝对化]或 [加 128 偏移],才能在 8-bit 显示器上看到完整差值图像。 乘法(×) [ C(x, y) = A(x, y) times B(x, y) ] - [典型应用:]图像的局部显示(ROI 提取)。将一幅 [二值掩膜图像](Mask,背景 = 0 ,感兴趣区 = 1 )与原始图像相乘,屏蔽背景,只保留感兴趣区域。 除法(÷) [ C(x, y) = A(x, y) / B(x, y) ] - [典型应用:]图像归一化, [校正光照/背景不均匀]。 图像逻辑运算 通常针对二值图像或掩膜图像进行操作。 - [NOT(非):] g(x, y) = 255 - f(x, y) 。获取 [阴图像]或子图像补图(等同于灰度反转)。 - [XOR(异或):]两输入位不同时输出 1 ,相同时输出 0 。用于 [提取两幅图像的差异区域]、寻找子图交叉点。 - [OR(或):]任意一位为 1 则输出 1 。用于 [图像合并]、求取 [两个子图的并集]。 - [AND(与):]两幅图同时为 1 才输出 1 。用于 [求取两幅子图的交集区域]、提取图像中的特定掩膜重叠部分。 = 【补2】数学形态学操作 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] 基本操作定义 形态学处理二值图像的核心是 [结构元素 B ]滑过图像 A 。 - [腐蚀(Erosion) A ⊖ B :] B 在 A 内部滑动, B 完全包含于 A 时保留中心。结果: [缩小亮区、断开狭窄连接、消除小噪声点]。 - [膨胀(Dilation) A ⊕ B :] B 与 A 有交集即保留中心。结果: [扩大亮区、桥接裂缝、填充小空洞]。 [ 腐蚀: A ⊖ B = {z | (B) z ⊆ A} 膨胀: A ⊕ B = {z | (B) z ∩ A ≠ ∅} ] 组合操作 - [开运算(Opening) A ∘ B :]先腐蚀再膨胀 (A ⊖ B) ⊕ B 。 [平滑轮廓、断开狭窄连接、消除细小突出物和孤立噪声点]。大小不变。 - [闭运算(Closing) A • B :]先膨胀再腐蚀 (A ⊕ B) ⊖ B 。 [平滑轮廓、连接狭窄缺口、填充细小空洞]。大小不变。 [口诀:]开 → 去毛刺、断细桥;闭 → 补缺口、填小孔。 - [形态学梯度:] A ⊕ B - A ⊖ B ,提取 [物体边界轮廓]。 - [顶帽变换(Top-Hat):]原图 - 开运算结果,提取 [比背景亮的细小结构]。 - [黑帽变换(Black-Hat):]闭运算结果 - 原图,提取 [比背景暗的细小结构]。 结构元素(Structuring Element) 常见形状:矩形、十字形、圆盘形。尺寸越大,操作效果越显著。选择合适的结构元素是形态学应用的关键。 = 图像滤波基础概念与定义 为什么要滤波? - [目的:]生成一张像素值为原始像素值加权或组合而成的新图像。 - [应用场景:] 1. 获取有用信息:提取边缘/轮廓(理解物体形状)。 2. 增强图像:去除噪声(平滑)、锐化图像(提取细节)。 3. 深度学习的基石:卷积神经网络(CNN)中关键的特征提取算子。 - [与点操作的区别:]点操作(Lecture 02)仅依赖 [单像素原始灰度 r ]进行变换,未考虑空间信息;而 [滤波基于像素的邻域(上下文信息)]进行运算,考虑了空间相关性。 空间域图像增强与滤波公式 [ g(x, y) = T[f(x, y)] ] - f(x, y) :输入原始图像。 - g(x, y) :输出增强后的图像。 - T :作用于像素 (x, y) [邻域](如 3 times 3 区域)的增强算子(线性或非线性)。 - [空间滤波核心操作:]将每个像素替换为其 [邻域像素的线性组合(即加权和)]。 滤波器的基本结构 - [空间滤波器(掩模/核/模板/窗口):]在数字网格上进行数学运算的模板。 - [常见同义词:](滤波器)、(掩模)、(核)、(模板)、(窗口)。 = 二维滤波的具体实现(卷积与互相关) 二维互相关(无核翻转)【计算机视觉常用】 定义核 H 和图像 F 的 [互相关]运算( [核不翻转,直接滑动点积]): [ G[i, j] = sum (u=-k)^k sum (v=-k)^k H[u, v] F[i+u, j+v] ] - 核 H 的大小为 (2k+1) times (2k+1) 。 - [意义:]可直接看作 [局部邻域与卷积核的"点积"]。在实际图像处理中,由于卷积核通常是对称的(如高斯、平滑核), [实际应用通常默认做的是互相关运算](即不翻转核)。 二维离散卷积(需核翻转)【数学标准定义】 [ (f I)(x, y) = sum (i, j=-infinity)^infinity f(i, j) I(x-i, y-j) ] - [区别:]卷积在数学定义上要求 [将核做 180° 旋转(翻转)],然后进行点积求和。 - [注意:] - 卷积满足交换律、结合律等数学性质,是经典的线性时不变系统(LTI)响应形式。 - 实际图像处理中,因为核(如高斯核、均值核)大多数是 [对称的],所以"卷积"和"互相关"的结果一样。考试时若无特殊说明,两种写法均不算错,但 [知道定义的区别]是考察重点。 线性滤波器的关键性质 - [线性性质:] "imfilter"(I, f 1 + f 2) = "imfilter"(I, f 1) + "imfilter"(I, f 2) 。 - [平移不变性:]无论像素在图像哪个位置,滤波器行为一致(权重相同)。 "imfilter"(I, "shift"(f)) = "shift"("imfilter"(I, f)) 。 - 输入平移 a 输出同步平移: f(x-a) -> g(x-a) 。 - [重要结论:]任何线性、平移不变的算子都可以表示为 [卷积(或互相关)]的形式。 可分离滤波器 - [定义:]如果一个二维滤波器可表示为一个"列向量"与一个"行向量"的乘积,则它是 [可分离的]。 - [示例:]3×3 盒式滤波器 mat(1, 1, 1; 1, 1, 1; 1, 1, 1) = mat(1; 1; 1) times mat(1, 1, 1) 。高斯滤波器也可分离。 [为什么重要(计算复杂度对比):] 假设图像大小为 M times M ,滤波器大小为 N times N 。 - [不可分离(2D)滤波器]的乘法次数: [ M^2 times N^2 ]。 - [可分离滤波器](先做行再做列,即 2 次 1D 卷积)的乘法次数: [ M^2 times 2N ]。 [ 考试常见简答:"高斯核滤波,使用 [可分离(1 维卷积先水平后垂直)]的方式比直接二维卷积快很多,从 O(N^2) 降到 O(N) 。" ] 卷积中的边界填充(Padding) 卷积操作会使输出图像变小(边界像素没有完整邻域)。 - [Full:]核与图像有任意一点重叠就计算输出(输出尺寸变大)。 - [Same:]通过填充使输出尺寸与输入相同( [实际工程中最常用])。 - [Valid:]核不超出图像边界(输出尺寸变小,无填充)。 [填充方式(考试选择题常考):] - [Zero-padding(零填充):]边缘补 0。缺点:会在边缘引入虚拟的暗边,可能导致边缘误检。 - [Symm(对称填充):]将边缘像素向外折叠。 - [Circular/Wrap(循环/包裹填充):]将图像另一边的像素卷过来填补。 = 【补】频域处理与傅里叶变换 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] 为什么需要频域? 空间域滤波直接在像素上操作;频域则将图像变换到频率空间,利用频率特性进行滤波。两者通过 [卷积定理]等价。 二维离散傅里叶变换(2D DFT) [ F(u, v) = sum (x=0)^(M-1) sum (y=0)^(N-1) f(x, y) dot e^(-j 2 pi ((u x)/M + (v y)/N)) ] - f(x, y) :原始 M times N 图像。 - F(u, v) :频域复数谱。 |F(u, v)| 为 [幅度谱](亮度分布), angle F(u, v) 为 [相位谱](结构定位)。 - [核心性质:]幅度谱决定"有哪些频率成分",相位谱决定"图像结构在哪里"。 [纯幅度互换 + 纯相位互换实验证明:相位谱对视觉结构更重要]。 - 频谱图通常 [中心化]:低频在中心、高频在四周。通过 f(x,y)(-1)^(x+y) 平移实现。 卷积定理(考试必考) [ f(x, y) h(x, y) <=> F(u, v) dot H(u, v) ] [ f(x, y) dot h(x, y) <=> F(u, v) H(u, v) ] - [空间卷积 = 频域乘积](这是频域滤波的理论基础)。 - 利用 FFT, O(N^2) 的大核卷积可降为 O(N log N) 。 频域滤波器分类 [低通滤波器(LPF):]保留低频、抑制高频 → [图像平滑/模糊]。 - 理想低通(ILPF):硬截断,会产生 [振铃效应](Gibbs 现象)。 - 巴特沃斯低通(BLPF): H(u,v) = 1 / (1 + (D(u,v)/D 0)^(2n)) ,过渡平滑,无振铃。 - 高斯低通(GLPF): H(u,v) = exp (-(D^2(u,v))/(2D 0^2)) ,无振铃,最常用。 [高通滤波器(HPF):]保留高频、抑制低频 → [图像锐化/边缘增强]。 H ("HP")(u,v) = 1 - H ("LP")(u,v) 。 [同态滤波(Homomorphic Filtering):]基于 [照明-反射模型] f(x,y) = i(x,y) dot r(x,y) 。取对数转换为加法: ln f = ln i + ln r 。照明分量慢变(低频),反射分量快变(高频)。在频域同时压缩低频(动态范围)和增强高频(对比度),再做指数逆变换。用于 [消除光照不均匀]。 () = 平滑滤波器(去噪与模糊) 线性平滑滤波器(均值与高斯) 均值(盒式)滤波器 将邻域内每个像素赋予相同权重。 - 模板(3×3): 1/9 mat(1, 1, 1; 1, 1, 1; 1, 1, 1) 。 - [缺点:]会产生明显的 [块状伪影(马赛克效应)]。 高斯滤波器(改进) 给距离中心更近的像素赋予更大权重(权重随距离中心变远而指数衰减)。 [ G (sigma)(x, y) = 1/(2 pi sigma^2) exp(-(x^2 + y^2)/(2 sigma^2)) ] - [核大小推荐:] [ 6 sigma + 1 ](保证覆盖高斯分布 99.7% 的能量,即 3 sigma 范围)。 - [性质:] 1. 高斯函数与自身卷积后仍是高斯函数,新的标准差 sigma' = sqrt(n) dot sigma (例如用 sigma 卷积两次,等价于用 sqrt(2) sigma 卷积一次)。 2. 是 [低通滤波器],抑制高频细节,仅保留低频轮廓。 非线性平滑滤波器(中值滤波) - [适用场景:]对 [椒盐噪声(Salt-and-Pepper Noise,即随机的纯黑 0 和纯白 255 像素点)]的抑制效果 [优于]均值滤波器。 - [计算定义:] R = "mid"{z k | k = 1, 2, dots, n} ,即取邻域像素的 [中值]。 - [最大值/最小值滤波器:] R = "max"{z k} (寻找最亮点), R = "min"{z k} (寻找最暗点)。 双边滤波(保边去噪) - [核心痛点:]高斯滤波在去噪的同时,不可避免地会把物体的 [边缘也给模糊掉]。 - [解决思路:] [空间距离加权 × 像素亮度差异加权]。 - 空间核(Domain Kernel): d(i, j, k, l) = exp(-((i-k)^2 + (j-l)^2)/(2 sigma d^2)) (距离越近权重越大) - 值域核(Range Kernel): r(i, j, k, l) = exp(-norm(f(i, j) - f(k, l))^2/(2 sigma r^2)) (亮度越近权重越大) - [总权重(两者乘积):] w(i, j, k, l) = d(i, j, k, l) times r(i, j, k, l) 。 [物理意义:]在平坦区域(像素亮度相近),值域核接近 1,表现为高斯模糊; [在边缘处(像素亮度差异巨大),值域核迅速衰减至 0,边缘像素不被平滑]。因此双边滤波可以实现 ["去噪,但不模糊边缘"]。 = 锐化滤波器与边缘检测 微分滤波器原理(数学近似) - [定义:]通过计算图像函数 f(x, y) 的一阶或二阶导数来提取灰度变化剧烈的区域(即边缘)。 - [离散化近似:] 用差分近似 [ 一阶导数近似: (partial f)/(partial x) approx f(x+1) - f(x) 二阶导数近似: (partial^2 f)/(partial x^2) approx f(x+1) + f(x-1) - 2 f(x) ] 一阶微分算子(梯度算子) - [梯度定义:] nabla = ((partial )/(partial x), (partial )/(partial y))^T 。 - [边缘强度/梯度幅值:] E s = norm(nabla f) approx sqrt(((partial f)/(partial x))^2 + ((partial f)/(partial y))^2) 。工程上为简化计算,常使用绝对值近似: E s approx |I x| + |I y| 。 - [边缘方向:] theta = arctan((I y)/(I x)) + pi/2 。 [注意:]梯度方向是 [灰度增长最快的方向],而边缘方向与梯度方向 垂直 。 [常见的一阶微分算子模板:] Roberts 算子(2×2,对角线差分) [ G x = mat(-1, 0; 0, 1) quad G y = mat(0, -1; 1, 0) ] Prewitt 算子(3×3,简单差分) [ G x = mat(-1, 0, 1; -1, 0, 1; -1, 0, 1) quad G y = mat(-1, -1, -1; 0, 0, 0; 1, 1, 1) ] Sobel 算子(3×3,最常用,给中心像素加权以抑制噪声) [ G x = mat(-1, 0, 1; -2, 0, 2; -1, 0, 1) quad G y = mat(-1, -2, -1; 0, 0, 0; 1, 2, 1) ] [要点:]Sobel 算子中的 "2" 用于增强中心像素的重要性。这个加权近似于 [高斯平滑],因此 Sobel 算子在边缘检测中比 Prewitt 算子更常用。 二阶微分算子(拉普拉斯算子) - [定义:] nabla^2 = (partial^2 )/(partial x^2) + (partial^2 )/(partial y^2) 。 - [二阶导数的特点:] - 一阶微分在边缘处产生峰值(找极大值),二阶微分在边缘处产生过零点(找符号变化)对 [灰度阶跃]产生 [双线响应](正-负)。 - 二阶微分对噪声的敏感度更高,实际使用时常先做高斯平滑再求拉普拉斯(即 LoG)。 - [对细节(孤立点)的响应最强],点 > 线 > 阶跃。 [离散拉普拉斯算子模板:] [ [4 邻域(各向同性):] mat(0, 1, 0; 1, -4, 1; 0, 1, 0) (只考虑水平与垂直方向) [8 邻域(各向同性,更好):] mat(1, 1, 1; 1, -8, 1; 1, 1, 1) (加入对角方向,旋转不变性更好) ] [锐化增强公式:] 1. 用一阶导数做锐化增强(基本上不用,但是ppt里面讲过原理): 锐化是平滑的逆操作。图像中的”细节”可以定义为原始图像与平滑结果的差,将细节加回原图,就得到锐化结果: g(x, y) = f(x, y) + alpha(f(x, y) - nabla f(x, y) ) ,其中 alpha > 0 。 2. 用拉普拉斯算子对图像进行锐化增强 减号的由来:拉普拉斯算子的卷积核中心为负数,在边缘暗侧响应为正、亮侧响应为负,从原图中减去拉普拉斯结果等于在暗侧减正变得更暗、在亮侧减负变得更亮,两侧对比增强。 [ 若中心为负的模板: g(x, y) = f(x, y) - alpha nabla^2 f(x, y) 若中心为正的模板: g(x, y) = f(x, y) + alpha nabla^2 f(x, y) ] 高频提升与钝化掩模(Unsharp Masking) - [原理:]锐化 = 原始图像 + alpha times 细节(高频部分)。 - [核心公式:] F "sharp" = F "original" + alpha (F "original" - F "smooth") 。 - 括号中 F "original" - F "smooth" 就是原图减去高斯模糊图,即 [高频细节图]。 [合并后的卷积核模板(考试选择题常用):] 将上述公式合并成一次单次卷积扫描。对于 3×3 掩模: [ [4 邻域:] mat(0, -1, 0; -1, 4+alpha, -1; 0, -1, 0) [8 邻域:] mat(-1, -1, -1; -1, 8+alpha, -1; -1, -1, -1) ] - 若 alpha = 0 时就是 [拉普拉斯]滤波(只提取边缘);若 alpha > 0 时就是 [锐化增强](保留原图并加回细节)。 = Canny 边缘检测算法 Canny 算法是 [计算机视觉中最经典的边缘检测算法]。考试常考其 [具体执行步骤和每个步骤的目的]。以下为 5 步标准流程: [步骤 1:图像平滑(降噪)] - [操作:]使用 [高斯滤波器]对图像进行卷积去噪。 - [原因:]图像中的噪声会对微分运算(梯度计算)造成极大的干扰(噪声会被导数放大)。 - [参数:]高斯核大小与标准差 sigma 。 sigma 越大,去噪越强,检测到的边缘越 [宏观(大尺度)],小细节丢失; sigma 越小,边缘越 [精细],但也越容易受噪声影响。 [步骤 2:计算图像梯度(强度与方向)] - [操作:]通常使用 [Sobel 算子]计算图像 x 方向和 y 方向的偏导数 G x 和 G y 。 - 计算梯度幅值: M = sqrt(G x^2 + G y^2) (或近似 M approx |G x| + |G y| )。 - 计算梯度方向: theta = arctan(G y / G x) 。 [步骤 3:非最大值抑制(Non-Maximum Suppression, NMS)] - [核心目的:] [将模糊的边缘变细(细化边缘)]。 - [操作细节:] 1. 对每一个像素,沿 [该像素的梯度方向],检查其前后两个相邻像素(若梯度方向不指向正网格中心,需利用邻近像素进行 [插值]计算梯度值)。 2. 若当前像素的梯度幅值 > 梯度方向上前后两个插值点的梯度幅值,则保留该点为候选边缘;否则,将该点梯度设为 0(舍弃)。 3. [结果:]生成的边缘图像是 [单像素宽度]的。 [步骤 4:双阈值检测与滞后阈值化(Hysteresis Thresholding)] - [核心目的:]抑制噪声引起的假边缘,保留真实边缘。 - 设定高阈值 T h 和低阈值 T l 。 - [分类(3 种情况):] 1. 梯度幅值 > T h :判定为 [强边缘(Strong Edge)], [直接保留]。 2. 梯度幅值 < T l :判定为 [非边缘(No Edge)],直接剔除。 3. T l <= 梯度幅值 <= T h :判定为 [弱边缘(Weak Edge)]。 - [后续决策:] - [若弱边缘像素与强边缘像素相邻(处在 8 邻域内)],将其保留为边缘; - 否则,将其剔除。 [步骤 5:输出最终边缘图] - 将以上步骤保留下来的所有像素(强边缘 + 与强边缘连接的弱边缘)作为最终的图像边缘输出。 [后续操作:] - Canny 不产生闭合的连续边界,但在大多数图像上产生的边缘是分割的有效中间线索。 - 形态学闭合:对边缘图做闭运算(膨胀+腐蚀),连接断裂的边缘段。 - 轮廓填充:提取连通轮廓,填充封闭区域。 - 分水岭标记:将 Canny 边缘作为分水岭输入或外部标记。 = 进阶边缘检测 - [HED (Holistically-Nested Edge Detection):]端到端的深度神经网络(CNN)边缘检测。利用 [多尺度、多层级特征]进行融合,输出更符合人类视觉感知的边缘。 - [RCF (Richer Convolutional Features):]比 HED 更进一步,利用 [图像金字塔](Image Pyramid,即多尺度缩放原图)输入,结合多个侧边输出,提取更丰富的卷积特征进行边缘检测。 - [ControlNet:]由边缘检测图(如 Canny 边缘)作为引导条件输入到 Stable Diffusion 中,用于精确控制生成的图像结构。 = Lecture 03 核心公式/模板速查 [1. Sobel 算子模板(必须能默写):] [ 垂直方向(检测水平边缘): G y = mat(-1, -2, -1; 0, 0, 0; 1, 2, 1) 水平方向(检测垂直边缘): G x = mat(-1, 0, 1; -2, 0, 2; -1, 0, 1) ] [2. 拉普拉斯算子模板:] [ 4 邻域: mat(0, 1, 0; 1, -4, 1; 0, 1, 0) (若做锐化,中心加权重: 4 + alpha ) 8 邻域: mat(1, 1, 1; 1, -8, 1; 1, 1, 1) (若做锐化,中心加权重: 8 + alpha ) ] [3. 高斯滤波器计算公式:] [ G(x, y) = 1/(2 pi sigma^2) exp(-(x^2 + y^2)/(2 sigma^2)) ] 推荐核大小 = 6 sigma + 1 。 [4. 双边滤波总权重公式(概念简答时默写):] [ w = exp(-("空间距离"^2)/(2 sigma d^2)) times exp(-norm("像素灰度差")^2/(2 sigma r^2)) ] [5. 可分离性复杂度对比:] N^2 vs 2N (节省大量计算)。 [6. 边界填充特性(名词解释):] - :补 0,边缘易产生伪影。 - :镜像对称。 - :循环延伸。 () = 特征检测基础概念与挑战 动机(为什么要检测特征?) - [核心问题:]如何将多张部分重叠的图像拼接成一张 [全景图像]? - [关键步骤:]在不同图像中找到相同的物理点( [特征匹配]),通过匹配点对估计图像间的变换关系。 特征匹配的三大挑战 - [挑战一:稳定(可复现)检测:]在不同的视角、光照变化下,能否在两幅图像中独立检测出同一个物理点? - [挑战二:唯一(显著)描述:]检测到特征点后,如何准确识别出它在另一幅图像中的"孪生兄弟"?这要求特征具备高度的 [独特性]。 - [挑战三:错误匹配的鲁棒处理:]由于重复纹理、遮挡等原因,会产生错误匹配。算法需要具备 [鲁棒性],能够剔除错误匹配(误匹配)。 优秀特征应具备的特点 1. [可复现性:](应对挑战一)在不同变换(旋转、缩放、光照)下,都能稳定被检测出来。 2. [显著性:](应对挑战二)特征的描述符应有足够独特的"身份标识",能与其他特征区分开。 3. [高效性:]特征点的数量远少于图像像素总量,且提取与匹配计算高效。 应用场景 运动跟踪、图像配准、三维重建、物体识别、图像检索、机器人导航。 = 哈里斯(Harris)角点检测器 基本思想 - 利用一个 [小窗口]在图像上滑动。 - [平坦区域:]窗口向任意方向移动,灰度值变化都很小。 - [边缘区域:]窗口沿边缘方向移动灰度变化小,垂直边缘方向变化剧烈。 - [角点区域:]窗口 [向任何方向]移动,图像的灰度都会发生 [显著变化]。 数学推导(SSD 误差与泰勒展开) 设窗口 W 移动了位移 (u, v) ,像素变化用 [平方差之和(SSD)]衡量: [ E(u, v) = sum ((x, y) in W) (I(x+u, y+v) - I(x, y))^2 ] [小运动假设]:对 I(x+u, y+v) 进行 [一阶泰勒展开]: [ I(x+u, y+v) approx I(x, y) + I x u + I y v ] 其中 I x = (partial I)/(partial x) , I y = (partial I)/(partial y) 为图像在 x, y 方向的偏导数(梯度)。 将泰勒展开代回 E(u, v) 中,消除 I(x, y) : [ E(u, v) approx sum ((x, y) in W) (I x u + I y v)^2 =sum ((x, y) in W) I x^2 u^2 + 2 I x I y u v + I y^2 v^2 ] [化为矩阵形式(结构张量/自相关矩阵)]: 设 H = sum W mat(I x^2, I x I y; I x I y, I y^2) ,则: [ E(u, v) approx mat(u, v) H mat(u; v) ] - [结构张量 H ](称为 Harris 矩阵/二阶矩矩阵)描述了窗口内梯度的分布情况。它是一个对称半正定矩阵。 - H 的 [特征值 lambda 1, lambda 2 ] 代表了窗口在 [两个正交方向]上的灰度变化剧烈程度。 特征值与图像区域的对应关系 1. [平坦区域:] lambda 1 和 lambda 2 都很小(接近 0)。 E(u, v) 在所有方向都不变。 2. [边缘区域:] lambda 1 >> lambda 2 (或 lambda 2 >> lambda 1 )。一个方向变化大,另一个方向几乎没有变化。 3. [角点区域:] lambda 1 和 lambda 2 都很大(且大小相近)。 [在任意方向上的微小平移都会造成巨大的强度变化]。 角点响应函数(不算特征值的快速判定) 为快速判断角点而不直接解特征值,Harris 定义了 [角点响应函数 R ]: [ R = det(H) - alpha dot "tr"(H)^2 = lambda 1 lambda 2 - alpha (lambda 1 + lambda 2)^2 ] - det(H) = lambda 1 lambda 2 (矩阵行列式)。 - "tr"(H) = lambda 1 + lambda 2 (矩阵的迹)。 - alpha :经验常数,通常取值范围为 [0.04 到 0.06]。 [判定规则("选角点")]: - [ R > 0 且很大:] lambda 1, lambda 2 都大且相近,乘积大,和相对较小。判定为 [角点]。 - [ R < 0 且很小(负值):] lambda 1 >> lambda 2 ,乘积小,和高。判定为 [边缘]。 - [ |R| 非常小(接近 0):] lambda 1, lambda 2 都很小,判定为 [平坦区域]。 Harris 角点检测算法实现步骤 + [计算梯度]:用sobel算子对 整幅图像 进行卷积,得到每个像素的水平和垂直梯度 I x=I S x, I y=I S y 。 + [结构张量计算]:计算每个像素的结构张量: H 的元素: I x^2, I y^2, I x I y 这一步得到三张梯度图。 + [计算响应值]:根据公式计算每个像素的角点响应函数 R 得到响应图。 + [阈值处理]:设定阈值 T ,遍历响应图,只保留 R > T 的点(过滤平坦区域和弱边缘)剩下的置零。 + [非极大值抑制(NMS)]:在局部邻域内(如 3 times 3 ),只保留 R 值最大(局部极值)的点作为最终角点(防止角点成堆出现)。 harris算法的特点 - 对旋转不变:因为响应函数只依赖于特征值,与方向无关。 - 对光照变化不敏感:因为响应函数依赖于梯度的平方。 - 对噪声敏感:因为计算梯度时会放大噪声,所以通常在计算结构张量前会先对图像进行高斯模糊。 - 无法检测尺度变化 :因为窗口大小固定,无法适应不同尺度的角点。 = 斑点检测 — 尺度归一化与 LoG 从边缘到斑点 - [边缘:]灰度发生阶跃(一阶导数极值,二阶导数过零点)。 - [斑点:]可看作是两个边缘(阶跃)的叠加。检测斑点,就是检测 ["双线响应"的极值]。 - [尺度匹配直觉:]如果用高斯拉普拉斯(LoG)滤波器去检测斑点,当滤波器的尺度( sigma )和斑点的大小"匹配"时,LoG 响应在斑点的中心达到最大值。 为什么需要"尺度归一化"? - [问题:]标准的拉普拉斯算子会随着尺度 sigma 的增大,其导数幅值剧烈衰减(衰减速度为 1/sigma^2 )。 - [后果:]如果不做归一化,LoG 的响应值在 sigma -> 0 时总是最大。这意味着无论斑点有多大,滤波器都会倾向于选择极其微小的噪声作为最强特征点, [导致无法正确匹配斑点的真实大小]。 - [解决办法:]使用 Lindeberg 提出的 [尺度归一化理论]。对于 k 阶微分算子,应乘以 sigma^k 。对于二阶导数的拉普拉斯算子(LoG),应该乘以 [ sigma^2 ] 进行修正。 尺度归一化数学推导(一维情况) - 信号(高斯斑点): f(x) = exp(-x^2/(2 r^2)) ( r 为斑点真实半径)。 - 滤波器: g(x; sigma) = 1/(sqrt(2 pi) sigma) exp(-x^2/(2 sigma^2)) 。 - 未归一化中心响应: R(0; sigma) = -r/(r^2 + sigma^2)^(3/2) 。 - 归一化中心响应(乘以 sigma^2 ): R ("norm")(0; sigma) = -(r sigma^2)/(r^2 + sigma^2)^(3/2) 。 - 求极值:令 (dif R "norm")/(dif sigma) = 0 ,解得 [ sigma = sqrt(2) r ]。 - [结论:]一维信号中,当检测尺度 sigma 等于真实斑点尺寸 r 的 sqrt(2) 倍时,滤波器响应达到最大。 尺度归一化数学推导(二维情况) - 信号(二维高斯斑点): f(x, y) = exp(-(x^2 + y^2)/(2 r^2)) 。 - 滤波器: G(x, y; sigma) = 1/(2 pi sigma^2) exp(-(x^2 + y^2)/(2 sigma^2)) 。 - 未归一化中心响应: R(0, 0; sigma) = -(2 r^2)/(r^2 + sigma^2)^2 。 - 归一化中心响应(乘以 sigma^2 ): R ("norm")(0, 0; sigma) = -(2 r^2 sigma^2)/(r^2 + sigma^2)^2 。 - 求极值:令 (dif R "norm")/(dif sigma) = 0 ,解得 [ sigma = r ]。 - [结论:]二维图像中,当检测尺度 sigma [等于]真实斑点的半径 r 时,尺度归一化的 LoG 响应达到最大。这使得我们能够利用多尺度 LoG 滤波器,准确地在不同尺度下找到匹配斑点大小的特征点(如 SIFT 的第一步)。 = 描述符与 SIFT 算法(尺度不变特征变换) SIFT 概述 - [核心目标:]在空间尺度中寻找极值点,提取出 [位置、尺度、旋转不变量]。 - [特点(必背):] - 局部特征,对旋转、尺度缩放、亮度变化保持不变性。 - 独特性强,信息量丰富,适合大规模数据库快速匹配。 - 多量性,即使少数物体也能产生大量特征。 - 高速性,经优化后可达实时。 SIFT 算法的步骤 [步骤一:尺度空间极值检测(构建高斯金字塔与 DoG 金字塔)] - [高斯金字塔:]对原图进行不同尺度的高斯模糊和下采样(Octave 分组)。每增加一个 Octave,图像长宽减半(下采样)。 - [DoG(高斯差分)金字塔:]在高斯金字塔的每个 Octave 内,将 [相邻两层的高斯模糊图像相减]。数学原理上,DoG 可以高效地近似替代计算昂贵的 LoG(高斯拉普拉斯)。 - [寻找极值点(关键点候选):]在 DoG 尺度空间中,每个像素点需要与 [同层的 8 个邻居]以及 [上下相邻尺度的 18 个邻居](共 26 个点)进行比较。若为局部最大值或最小值,则作为候选关键点。 [步骤二:关键点定位(亚像素精确定位)] - [问题:]步骤一只能检测到 [整数像素坐标](离散极值点),真实极值点实际上落在连续空间中。 - [解决:]对 DoG 函数在极值点附近进行 [二阶泰勒展开]: [ D(bold(x) + hat(bold(x))) approx D(bold(x)) + ((partial D)/(partial bold(x)))^T hat(bold(x)) + 1/2 hat(bold(x))^T ((partial^2 D)/(partial bold(x)^2)) hat(bold(x)) ] 令导数等于 0,解得精确的 [亚像素级偏移量]: [ hat(bold(x)) = -((partial^2 D)/(partial bold(x)^2))^(-1) (partial D)/(partial bold(x)) ] - 利用求出的偏移量对原始整数坐标进行 [精准修正],同时剔除低对比度或位于边缘的不稳定关键点。 [步骤三:关键点方向分配] - [目的:]为了实现 [旋转不变性]。 - [操作:] 1. 以关键点为中心,在对应的 [高斯金字塔图层]上取约 3 sigma 邻域窗口。 2. 计算窗口内所有像素的 [梯度幅值] m(x, y) 和 [梯度方向] theta(x, y) : [ m(x, y) = sqrt((L(x+1, y) - L(x-1, y))^2 + (L(x, y+1) - L(x, y-1))^2) theta(x, y) = arctan((L(x, y+1) - L(x, y-1))/(L(x+1, y) - L(x-1, y))) ] 3. 构建 [梯度方向直方图](通常 36 个 bins 覆盖 360°)。直方图的峰值方向即为该关键点的 [主方向]。 [步骤四:关键点描述符生成(128 维向量)] - [目的:]为关键点生成一个具有 [高度独特性]的身份标识。 - [操作细节(核心必考知识点):] 1. 将关键点附近的 16 times 16 邻域窗口划分为 4 times 4 = 16 个 [子块]。 2. 对每个子块,统计内部所有像素的梯度方向,生成一个 [8 个 bin 的方向直方图](0 360°,每 45°一个 bin)。像素根据其梯度方向"投票"给对应的 bin,投票的 [权重]是该像素的梯度幅值。 3. 这样,我们得到了 16 (子块个数) times 8 (直方图 bins)= [128 维的特征向量]。 4. 为抵抗光照变化,对这个 128 维向量进行 [归一化]。 高斯差分金字塔层数计算 - 假设每组(Octave)内需要检测的有效特征层数为 S (通常取 3)。 - 为在 DoG 空间中对这 S 层的像素进行 26 邻域极值比较(需要 [上一级]和 [下一级]层的图像),必须额外多生成两层图像作为边界。 - [结论:]为了得到 S 个有效的极值检测尺度,SIFT 需要生成 [ S+3 层]高斯模糊图像(相邻相减得到 S+2 层 DoG 图像,从而能在中间 S 层检测极值)。 - [举例:] S = 3 时,需要生成 6 层高斯图像,对应生成 5 层 DoG 图像。第 1、2 层(以及倒数第 1、2 层)DoG 图像只用于作为边界层,不具备完整的上下邻域比较条件,因此 [仅在中间的第 3 层和 4 层进行极值检测]。 = Lecture 04 核心公式/参数速查 [1. Harris 矩阵 H :] [ H = sum W mat(I x^2, I x I y; I x I y, I y^2) ] [2. Harris 响应值 R :] [ R = det(H) - alpha dot "tr"(H)^2 = lambda 1 lambda 2 - alpha (lambda 1 + lambda 2)^2 quad (alpha in [0.04, 0.06]) ] [3. 角点判定:] R > 0 为角点, R < 0 为边缘, |R| 极小为平坦区。 [4. 尺度归一化核心逻辑:]对于 LoG(二阶导),必须乘以 [ sigma^2 ] 才能抵消随着尺度变大导数衰减的问题。 [5. 一维归一化极值匹配:] sigma = sqrt(2) dot r ( r 为真实斑点大小)。 [6. 二维归一化极值匹配:] sigma = r (尺度 sigma 和斑点真实半径 r 相等时匹配)。 [7. SIFT 描述符维度:] 4 times 4 子块 times 8 方向 = [128 维向量]。 [8. SIFT 高斯金字塔层数:]为在 S 个尺度上检测极值,实际需要生成 [ S+3 ] 层高斯模糊图像。 = 基于特征的图像拼接流程(总览) - [核心任务:]将多张部分重叠的图像拼接成一张全景图。 - [标准处理流程:] 1. [提取特征点](使用 SIFT、Harris 等算法)。 2. [计算粗略特征匹配](通过描述符距离寻找对应点)。 3. [RANSAC 筛选内点](剔除错误匹配的外点)。 4. [最小二乘法估计最优单应性矩阵](利用内点计算变换矩阵)。 5. [图像拼接](应用变换矩阵合成全景图像)。 = 拟合技术 最小二乘法(垂直距离最小化) 已知数据点 (x 1, y 1), dots, (x n, y n) ,寻找线性方程 y i = m x i + b 的最佳参数 (m, b) 。 [目标函数(误差最小化):] [ E = sum (i=1)^n (y i - m x i - b)^2 ] [求解方法(对参数求偏导,令导数为 0):] [ (partial E)/(partial m) = -2 sum (i=1)^n x i (y i - m x i - b) = 0 (partial E)/(partial b) = -2 sum (i=1)^n (y i - m x i - b) = 0 ] [致命的局限性(考试常考):] - 因为误差是计算 ["垂直误差"]( y 轴方向的距离),所以 [无法拟合垂直线](斜率 m -> infinity 时,计算崩溃)。 - 且当直线越接近垂直时,拟合效果越差。 总体最小二乘法(法向距离最小化) [问题背景:]为克服最小二乘法"无法拟合垂直线"的缺陷,采用 [点到直线的法向垂直距离]替代垂直误差。 [定义直线:]使用一般式 L: a x + b y = d ,其中 [ a^2 + b^2 = 1 ](单位法向量)。 点到直线的距离公式:点 (x i, y i) 到直线 a x + b y = d 的垂直距离为 |a x i + b y i - d| 。 [目标函数:]寻找 (a, b, d) 最小化距离的平方和: [ E = sum (i=1)^n (a x i + b y i - d)^2 ] [中心化与化简:]令样本均值为 bar(x) = 1/n sum x i , bar(y) = 1/n sum y i 。通过中心化推导,将问题转化为约束优化问题。 定义矩阵 S = mat(S (x x), S (x y); S (x y), S (y y)) ,其中: - S (x x) = sum (x i - bar(x))^2 - S (x y) = sum (x i - bar(x))(y i - bar(y)) - S (y y) = sum (y i - bar(y))^2 向量 bold(u) = mat(a; b) (即直线的法向量)。 [约束条件:] norm(bold(u))^2 = a^2 + b^2 = 1 。 [求解方法(拉格朗日乘数法):] 构造拉格朗日函数,对 a, b 求偏导,最终得到一个 [特征值方程]: [ S bold(u) = lambda bold(u) ] [结论:]总体最小二乘法的最优法向量 bold(u) = mat(a; b) ,就是矩阵 S [最小特征值对应的特征向量]。由此求出的直线 a x + b y = d ,不存在斜率为无穷大导致失败的问题,可以完美拟合垂直线。 = 随机采样一致性(RANSAC) 核心思想(考试概念题) - [全称:]Random Sample Consensus(随机采样一致性)。 - [本质:]一种 [在存在大量异常值(外点/Outlier)的情况下,通用的模型拟合框架]。 - [相比于最小二乘法的优势:]最小二乘法受 [离群点(Outliers)影响极大],拟合出的直线会被离群点严重拉偏。RANSAC 能完美剔除离群点,只使用可信的"内点"进行拟合。 算法流程 + 步骤 1: [随机采样]:从全部数据点中, [均匀随机]地选择足以确定模型的最少样本点(例如拟合直线最少需要 2 个点,拟合单应性矩阵最少需要 4 对点)。 + 步骤 2: [拟合模型]:利用这组最少样本点,计算出一个初步的模型参数。 + 步骤 3: [统计内点(投票)]:遍历剩余的所有数据点,判断其与模型的"距离"是否小于设定的阈值。若小于阈值,则认定为该模型下的 [内点(Inlier)],计数加 1;否则认定为外点(Outlier)。 + 步骤 4: [迭代并更新最优模型]:重复步骤 1 3 多次,每次保留内点数量(投票数)最多,或者内点占总样本比例最高的模型作为当前最优解。 + 步骤 5: [最终输出]:迭代结束后,输出得到最多投票的最优模型。 缺点 - 需要手动调整的参数比较多(距离阈值、最少样本数、迭代次数)。 - 若初始随机采样的点集中含有外点,可能无法良好初始化模型。 - 如果内点比率极低,或迭代次数不足,可能导致失败。 = 将匹配视为拟合问题 / 图像变换 图像对齐的核心思想 对齐问题可转化为 [拟合两幅图像中匹配特征对(对应点)之间变换矩阵 T ]的问题。寻找变换 T ,使得匹配点对之间的 [残差(误差)最小]: [ min T sum "Residual"(T(x i), x i') ] 不同变换模型的自由度与矩阵 ( table( columns: (auto, auto, 4fr, auto), stroke: none, inset: (x: 8pt, y: 5pt), align: (left, center, left, center), table.hline(stroke: 1.2pt), table.header( [变换类型], [自由度数], [不变性质], [最少匹配对数] ), table.hline(stroke: 0.5pt), [ [相似变换] (Similarity)], [4], [形状不变,长度比率不变], [2 对], [ [仿射变换] (Affine)], [6], [平行线变换后仍保持平行], [3 对], [ [单应性变换] (Homography)], [ [8]], [直线变换后仍保持为直线], [ [4 对](不共线)], table.hline(stroke: 1.2pt), ), caption: [图像变换模型对比 — 考试必背参数表], kind: table, ) <tbl-transforms> [对应齐次坐标矩阵:] [ 相似变换: H S = mat(s cos theta, -s sin theta, t x; s sin theta, s cos theta, t y; 0, 0, 1) 仿射变换: H A = mat(a, b, c; d, e, f; 0, 0, 1) 单应性变换: H = mat(h (11), h (12), h (13); h (21), h (22), h (23); h (31), h (32), 1) ] [ 实际工程(如图像拼接)中,最常使用的是 [单应性变换(Homography)]。它需要至少 4 对匹配点才能求解。 ] 单应性矩阵的最小二乘法求解 设特征点对为 P = (x, y, 1)^T 和 P' = (x', y', 1)^T 。由单应性关系 P' approx H P 展开可列出方程组。 将问题转化为求解超定线性方程组 A bold(h) = 0 ,通过最小二乘法拟合最优 H ,目标是最小化映射误差 sum norm(P' i - H P i)^2 ,等价于求解: [ A^T A bold(h) = bold(b) ] 或使用奇异值分解(SVD)求 A 的最小奇异值对应的特征向量,得到最优解 H 。若有 [4 对]精确对应的点对,可直接解出唯一的 H 。 = 霍夫变换 为什么需要霍夫变换? - [问题:]对于图像中的边缘点(例如一条直线上的 N 个点),我们不知道哪几个点属于同一条直线,更不知道直线方程是什么。 - [本质:]一种 [投票(Voting)技术]。将图像空间中的点映射到 [参数空间]中,通过寻找参数空间中投票数(累加器)的峰值,来确定图像中的直线位置。 直线参数化与投票 [直角坐标系参数化(存在缺陷):] 若使用 y = m x + b 作为参数,图像空间中的一个点 (x 0, y 0) ,在参数空间 (m, b) 中会变成一条直线: b = -x 0 m + y 0 。 - [致命缺陷:]无法表示 [垂直线](斜率 m -> infinity ,参数空间 m 无限大,无法用有限大小的二维数组表示)。 [极坐标系参数化(霍夫标准变换):] 为克服上述缺陷,霍夫变换使用直线的 [极坐标法式]: [ rho = x cos theta + y sin theta ] - [参数定义:] - theta :直线法线与 x 轴的夹角(范围 0 tilde 180 deg )。 - rho :直线到原点的距离(垂直距离)。 - [图像空间到参数空间的映射:] - 图像空间中的一个点 (x, y) ,在参数空间 (theta, rho) 中变成一条 [正弦曲线]。 - 图像空间中同一条直线上的 [多个点],对应到参数空间中是一族 [相交于同一点]的正弦曲线。这个交点对应的 (theta, rho) 就是该直线的参数。 基于霍夫变换的直线检测算法步骤 + 步骤 1: [初始化累加器]:构建二维数组(累加器) A(theta, rho) ,覆盖所有 theta 角度(如 0 tilde 180 deg ,步长 1 deg )和可能的 rho 距离。数组初始值设为 [0]。 + 步骤 2: [遍历边缘点并投票]:对图像中的每一个 [边缘像素点] (x, y) (通常来源于 Canny 边缘检测结果): - 遍历所有可能的 theta 值(如 0 deg 到 180 deg )。 - 代入公式 rho = x cos theta + y sin theta 计算出对应 rho 。 - 将累加器对应位置 [投票+1]: A(theta, rho) <- A(theta, rho) + 1 。 + 步骤 3: [寻找峰值(检测直线)]:在累加器矩阵 A(theta, rho) 中,寻找投票数 [最高](大于设定阈值)的 [局部极大值点] (theta (max), rho (max)) 。 + 步骤 4: [输出直线]:每个峰值点对应一条检测到的直线,方程为 rho (max) = x cos theta (max) + y sin theta (max) 。 霍夫圆检测 方程: (x - a)^2 + (y - b)^2 = r^2 (包含 3 个自由参数:圆心 a, b ,半径 r )。 [方案一:暴力投票(维度灾难,不使用):] 假设半径未知,需要在 [3D 累加器空间 (a, b, r) ] 中进行投票。三维累加器计算量和内存需求呈 [指数级爆炸],效率极低且易受噪声干扰。 [方案二:霍夫梯度法(工程实际常用):] 1. [边缘检测]:首先对图像进行 Canny 边缘检测。 2. [计算梯度方向]:使用 [Sobel 算子]计算边缘像素的梯度。 3. [沿梯度方向投票找圆心]:对于每一个非 0 的边缘像素,沿着其 [梯度方向](梯度指向圆心),遍历可能的半径,记录经过的累加器点,寻找所有可能的 [圆心]。 4. [找半径]:计算边缘图像中所有非 0 像素到找出的候选圆心的距离,从小到大排序,根据投票选出最适合的半径。 [ [结论:]霍夫梯度法通过将 3D 圆心-半径搜索拆解为"先沿梯度搜 2D 圆心 → 再算距离找半径"的两步法,大幅降低计算复杂度。 ] = Lecture 05 核心公式/参数速查 [1. 最小二乘误差:] E = sum (y i - m x i - b)^2 [2. 总体最小二乘(直线法向):] a x + b y = d , a^2 + b^2 = 1 。解为 S bold(u) = lambda bold(u) 的最小特征值对应的向量。 [3. 单应性变换矩阵:] [ H = mat(h (11), h (12), h (13); h (21), h (22), h (23); h (31), h (32), 1) ](8 个自由度,至少 4 对点求解) [4. 霍夫变换直线方程(极坐标):] rho = x cos theta + y sin theta [5. 霍夫圆方程:] (x - a)^2 + (y - b)^2 = r^2 (三维霍夫空间) [6. RANSAC 核心流程:]随机采样 → 拟合 → 统计内点 → 迭代保留最优 [7. 变换模型自由度(必背):] - 相似变换:4 - 仿射变换:6 - 单应性变换: [8] () = 卷积神经网络核心特性 [1. 稀疏交互:]传统全连接层中每个输出单元与所有输入单元相连。卷积层中, [每个输出神经元只与输入图像的一个局部区域(感受野)相连],减少计算量和过拟合风险。 [2. 参数共享:]同一个卷积核滑过整张图像时, [该卷积核的权重参数被所有局部位置共享]。使模型学到的特征具有平移不变性,同时极大减少参数量。 [3. 等变表示:] - [平移等变性:]若将输入图像中的目标平移,卷积后输出的特征图也会发生同样幅度的平移。 - [不变表示:]通过后续的 [池化层(Pooling)](如最大池化、均值池化),使网络对微小平移、形变不敏感,还可增大感受野。 [4. 卷积运算公式:] i j 是输出特征图的坐标, m n 是卷积核的坐标, I 是输入图像, K 是卷积核。 [ S(i, j) = (I K)(i, j) = sum m sum n I(m, n) K(i-m, j-n) ] [5. 输出特征图尺寸公式:] 给定输入尺寸 W times H ,卷积核大小 K ,步长 S ,填充 P ,输出尺寸为: [ W' = (W - K + 2P) / S + 1 ] 通常取整数(向下取整)。 [6. 池化层(Pooling):] [ 最大池化: Y (i, j) = max ((m, n) in R (i, j)) X (m, n) 平均池化: Y (i, j) = 1 / (|R (i, j)|) sum ((m, n) in R (i, j)) X (m, n) ] - 池化层无参数,用于降维和增大感受野,提升平移不变性(变形不敏感)。 = 经典卷积神经网络结构演化 [1. LeNet-5 (1998):]Yann LeCun 提出,用于手写数字识别(MNIST)。结构: 输入(32×32) → 卷积 → 池化 → 卷积 → 池化 → 全连接 → 输出。 奠定了现代 CNN 的基础结构。 [2. AlexNet (2012):]首个在 ImageNet 上取得显著突破的 CNN。 - [创新点:]采用 [ReLU] 激活函数代替 Sigmoid、使用 [Dropout] 防止过拟合、GPU 加速训练、数据增强。 - 结构:5 个卷积层 + 3 个全连接层,约 6000 万个参数。 [Dropout 公式(训练时):] [ r j "Bernoulli"(p) quad hat(y) j = r j y j / p ] - 训练时以概率 p 随机丢弃部分神经元,测试时使用全部神经元。 [3. ZeilerNet (2014):]改进 AlexNet:首层卷积核由 11 times 11 降至 [ 7 times 7 ],步长由 4 降为 2,保留更多像素细节。 [4. VGGNet (2015):]核心思想:使用 [更小的卷积核](全部采用 [ 3 times 3 ]),叠加深层(VGG16 / VGG19)。 [堆叠感受野公式:]两个 3 times 3 卷积堆叠等价于一个 5 times 5 卷积,三个等价于 7 times 7 ,但参数量大幅减少且引入更多非线性。 [ 单个 7 times 7 卷积参数量: 7^2 C^2 = 49 C^2 三个 3 times 3 卷积参数量: 3 times 3^2 C^2 = 27 C^2 (节省约 45%) ] [5. GoogLeNet (2015):]核心组件: [Inception 模块]。在同一层并行使用 1 times 1 、 3 times 3 、 5 times 5 卷积和 3 times 3 最大池化,将多尺度特征在通道维度拼接。创新:使用 [ 1 times 1 卷积]降维,大幅减少计算量;用全局平均池化代替全连接层。 [6. U-Net (2015):] [编码器-解码器]结构, [核心创新为引入跳跃连接(Skip Connection)]。解码器(上采样)中将编码器(下采样)对应层的特征图复制拼接,使解码器能利用 [高分辨率空间信息]和 [浅层特征细节],非常适合 [医学图像分割]。 [7. ResNet (2016):]解决极深网络(超过 20 层)的 [网络退化问题]。 - 核心思想: [残差学习(Residual Learning)]。构建残差块: [ F(x) = cal(H)(x) - x quad "则目标映射为" quad cal(H)(x) = F(x) + x ] - 引入跨层连接( [恒等映射/Identity shortcut]),网络只需学习输入与输出之间的 [残差],极大缓解深层网络的梯度消失和退化问题。 - 通过 [Bottleneck(瓶颈)]结构进一步减少参数量: [ 1 times 1 "降维" (256 -> 64) -> 3 times 3 (64) -> 1 times 1 "升维" (64 -> 256) Bottleneck 参数量: 1^2 C 1 C 2 + 3^2 C 2^2 + 1^2 C 2 C 1 ,远少于直接 3 times 3 卷积 ] [8. DenseNet (2017):]密集连接结构:每一层的输入都来自于 [前面所有层]的输出,并将自身输出的特征图传递给之后的所有层。 [ x l = H (l)([x 0, x 1, ..., x (l-1)]) ] 其中 [dots] 表示通道维度的拼接(Concatenation)。优点:特征重用(Feature reuse),加强特征传播,大幅减少参数量,缓解梯度消失。 [9. Batch Normalization(批归一化):] 对每个 mini-batch 进行归一化,加速训练并缓解梯度消失: [ hat(x) i = (x i - mu B) / sqrt(sigma B^2 + epsilon) quad y i = gamma hat(x) i + beta ] 其中 mu B, sigma B^2 为 batch 均值和方差, gamma, beta 为可学习参数。 [10. 注意力机制:] - [空域注意力:]为特征图的不同 [空间位置]分配不同权重。 - [通道注意力:]为特征图的不同 [通道]分配不同权重。 - [SENet (2018):]基于通道注意力。通过 [Squeeze(全局池化)→ Excitation(全连接学习通道权重)→ Scale(加权)]三步,自动学习每个特征通道的重要程度。 () = 图像分割定义与基本原则 分割任务分类 - [语义分割(Semantic Segmentation):]对所有像素分类,赋予类别标签(如:猫、草、天空)。不区分同一类别的不同实例。 - [实例分割(Instance Segmentation):]在语义分割基础上,进一步区分同一类别中的不同物体个体。 - [全景分割(Panoptic Segmentation):]结合语义分割与实例分割,给所有像素分配类别标签,并区分可计数实例(如人、车)与不可计数背景(如天空、草地)。 图像分割的数学原则 将图像域 R 分为 n 个子区域 R 1, R 2, dots, R n ,满足: [ 完备性: union (i=1)^n R i = R 互斥性: R i ∩ R j = ∅, quad i != j ] - [区域一致性:]每个子区域 R i 内部像素满足某种相似性准则。 - [区域差异性:]相邻子区域不满足同一准则。 = 传统图像分割方法 阈值法(固定阈值与 Otsu 大津法) - [固定阈值:]设定灰度阈值,大于该值置白,小于置黑。 - [Otsu 大津法:]遍历所有可能灰度值,寻找最优阈值 T ,使 [前景与背景两类的类间方差最大],实现自动阈值选取。 - 优势:简单直观、计算量低、可解释性强。 - 缺陷:依赖直方图双峰假设;忽略空间信息;仅适用二分类;对噪声敏感。 边缘检测法(Canny) - [原理:]基于灰度不连续性,利用一阶导数极大值或二阶导数过零点检测轮廓。 - 优势:物理直观、计算高效。 - 缺陷:对噪声敏感;难以获得 [闭合边界];语义缺失。 区域生长法 - 预设种子点 → 按相似性准则并入邻域像素 → 迭代至队列为空。 - 优势:分割连续、规则物体效果好。 - 缺陷:严重依赖种子点;对噪声敏感;结果受遍历顺序影响。 分水岭算法 - [原理:]图像视为地形图,灰度代表海拔。模拟水位上升,低洼形成盆地,筑堤坝作为分割边界。 - 优势:边界精准连续,适合粘连物体分离。 - 缺陷:容易 [过分割];依赖预处理;计算开销大。 K 均值聚类 - 随机初始化 K 个中心 → 像素划归最近中心 → 重算均值 → 迭代至收敛。 - 优势:简单高效。 - 缺陷:需预设 K 值;对初始中心敏感;忽略空间相关性。 均值漂移(Mean Shift) - 像素沿密度梯度方向"爬坡"到概率密度局部极大值,收敛到同一中心的像素归为一类。 - 优势:无需预设 K 值。 - 缺陷:计算复杂度高;高维易失效。 传统方法的共同缺陷 - 依赖人工特征和假设, [缺乏语义理解]。 - 对噪声和纹理敏感, [鲁棒性差]。 - 缺乏全局上下文建模,泛化能力弱。 = 深度学习分割基础 全连接层与卷积层的相互转化 - 全连接层与卷积层唯一不同:卷积层神经元只与输入局部区域连接,且 [卷积列中的神经元共享参数]。 - [转化原理:]任何全连接层可转化为等价卷积层,使原本接受固定尺寸输入的分类网络改为接受任意尺寸输入并输出 [热力图(Heatmap)]。 典型上采样方法 [(1)插值法:]最近邻、双线性、双三次、Lanczos。支持任意倍率,无参数,计算高效。缺点:手工设计,细节保留差。 [(2)像素重排(PixelShuffle):]将 N times N 个通道重排为 N times N 窗格,增大空间分辨率。信息保留完整,但必须是整数倍采样。 [(3)转置卷积(Transposed Convolution):]卷积的"逆操作"。反向传播相当于权矩阵转置乘以误差向量: [ (partial L)/(partial x) = C^T (partial L)/(partial y) ] 通过 im2col 和 col2im 实现分辨率放大。 = 【补9】图像插值方法详解 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] 最近邻插值(Nearest Neighbor) 直接取最近像素的值。 f(x, y) = f("round"(x), "round"(y)) 。 - [优点:]最快、无新值。 - [缺点:]产生明显的 [方块/锯齿效应(马赛克)],图像质量最差。 双线性插值(Bilinear) 在 2 times 2 邻域内,先水平两次线性插值,再垂直一次: f(x, y) approx a x + b y + c x y + d (可分离)。等价于 2 times 2 区域加权平均。 - [优点:]平滑自然,无方块效应,计算高效。 - [缺点:]平滑带来 [高频细节损失](轻微模糊),不保留边缘锐度。 双三次插值(Bicubic) 在 4 times 4 邻域内用三次多项式拟合。权重函数: W(d) = cases((a+2)|d|^3 - (a+3)|d|^2 + 1 "if" |d| <= 1, a|d|^3 - 5a|d|^2 + 8a|d| - 4a "if" 1 < |d| <= 2, 0 "otherwise") ,通常 a = -0.5 。 - [优点:]保留更多高频细节,比双线性更清晰。Photoshop 等专业软件默认插值方案。 - [缺点:]计算量是双线性的约 10 倍。 Lanczos 插值 使用 sin c 函数截断加窗: L(x) = text(sinc)(x) dot text(sinc)(x/a) ,窗口 a 通常取 2 或 3。 text(sinc)(x) = sin(pi x)/(pi x) 。 - [优点:]理论最优(基于采样定理),振铃效应可控。 - [缺点:]计算复杂度高,可能产生轻微振铃。 四种插值方法对比 ( table( columns: (auto, auto, auto, auto), stroke: none, inset: (x: 6pt, y: 4pt), table.hline(stroke: 1.2pt), table.header([方法], [邻域], [ [质量]], [ [速度]]), table.hline(stroke: 0.4pt), [ [最近邻]], [ 1 times 1 ], [多方块/锯齿], [ [最快]], [ [双线性]], [ 2 times 2 ], [平滑但模糊], [快], [ [双三次]], [ 4 times 4 ], [较清晰], [慢 10×], [ [Lanczos]], [ 6 times 6 8 times 8 ], [理论最优], [最慢], table.hline(stroke: 1.2pt), ), caption: [插值方法对比速查], kind: table, ) () = 深度语义分割经典网络 全卷积网络(FCN, CVPR'15) - [核心思路:]将分类网络(如 VGG16)最后的全连接层替换为卷积层,输出 [像素级预测图]。 - [跳跃连接架构:] - [FCN-32s:]直接从最后层上采样 32 倍(结果粗糙)。 - [FCN-16s:]融合池化层 4 的特征,上采样 16 倍。 - [FCN-8s:]融合池化层 3 和 4 的特征,上采样 8 倍(边界最精细)。 U-Net(MICCAI'15) - [编码器-解码器]结构。下采样提取特征,对称上采样恢复分辨率。 - [关键创新:]跳跃连接(Concatenation),将编码器对应层特征图复制拼接,保留高分辨率空间信息和浅层纹理细节。 - [数据增强:]采用 [弹性形变](网格顶点随机偏移,内部像素插值)模拟组织形变,提升泛化能力。 DeepLab 系列 [DeepLab v1:]解决池化导致分辨率下降问题。 - [空洞卷积(膨胀卷积):]向卷积核内部插入空洞(Rate),不降低分辨率的同时扩大感受野。 - [全连接 CRF:]结合像素间空间关系和颜色信息,修正粗糙边界。 [DeepLab v2:]提出 [空洞空间金字塔池化(ASPP)]。并行使用多个不同膨胀率(Rate = 6, 12, 18, 24)的空洞卷积,拼接输出,同时捕获 [多尺度]上下文信息。 [DeepLab v3:]改进 ASPP(去掉 CRF)。 - 空洞卷积后增加 [BN] 层。 - 超大膨胀率替换为 1 times 1 卷积。 - 增加 [全局池化]分支,补充全局图像级特征。 [DeepLab v3+:]采用 [编码器-解码器]架构。编码器使用改进 ASPP 提取高级语义,解码器融合低层特征,提升边界精度。 = 实例分割与目标检测演进(R-CNN → Mask R-CNN) R-CNN(CVPR'14) - 步骤:Selective Search 提取约 2000 个候选框 → 缩放后送 CNN 提取特征 → SVM 分类 → NMS 去重。 - [缺陷:]每张图 2000 次 CNN 前向,速度极慢(约 47 秒/图)。 Fast R-CNN(ICCV'15) - 输入整张图只经过一次 CNN,提取 [全图共享特征图]。 - 引入 [ROI Pooling] 层,将任意尺寸候选区域映射为固定尺寸特征向量。 - 网络末端同时连接分类分支与回归分支,实现 [端到端训练](除候选框以外)。 - 速度约 2 秒/图,瓶颈在 Selective Search。 Faster R-CNN(NeurIPS'15) - 引入 [RPN(区域提议网络)],将候选框生成也放入 GPU。 - 在特征图每个位置预设 [9 个锚点(Anchor)](3 种尺度 times 3 种长宽比)。RPN 判断前景/背景并回归偏移量。 - 速度约 0.2 秒/图,全 GPU。 Mask R-CNN(ICCV'17) - 在 Faster R-CNN 的分类 + 边框回归分支外,增加第三个 [全卷积掩码分支],为每个候选框预测像素级掩码。 - [RoI Align(核心改进):] - 替代 RoI Pooling。RoI Pooling 两次取整量化导致空间错位。 - RoI Align 保留浮点数边界,使用 [双线性插值]计算采样点值,消除量化误差。 - 最终输出:类别标签、精确边界框、像素级实例分割掩码。 = 【补5】一阶段目标检测器与特征金字塔 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] YOLO(You Only Look Once)核心思想 将检测视为 [回归问题]。整图 -> 网格划分(如 7 times 7 ) -> 每格预测 B 个边界框及类别概率。 [YOLOv1 输出:]每个网格输出 (x, y, w, h, "confidence") times B + "class probs" 。 [损失函数三大组成部分:] + 位置回归损失: (hat(x) i - x i)^2 + (hat(y) i - y i)^2 + (sqrt(hat(w) i) - sqrt(w i))^2 + (sqrt(hat(h) i) - sqrt(h i))^2 (对 w, h 开根号抑制大框误差)。 + 置信度损失:有目标 → (C i - hat(C) i)^2 ;无目标 → lambda "noobj" (C i - hat(C) i)^2 。 + 分类损失:有目标 → (p (i)(c) - hat(p) (i)(c))^2 (交叉熵改进版)。 YOLO vs R-CNN 家族对比(必考简答) ( table( columns: (3fr, 4fr, 4fr), stroke: none, inset: (x: 6pt, y: 4pt), table.hline(stroke: 1.2pt), table.header([对比维度], [ [两阶段(Faster R-CNN)]], [ [一阶段(YOLO/SSD)]]), table.hline(stroke: 0.4pt), [检测流程], [先提候选框→再分类+回归], [直接回归边界框+分类], [ [速度]], [较慢( 0.2s/图)], [ [快(可达实时 ≥30FPS)]], [ [精度]], [ [更高(尤其小目标)]], [略低(但YOLOv5+已接近)], [核心优势], [RoI精细对齐,高准确率], [端到端、速度快、工业部署首选], table.hline(stroke: 1.2pt), ), caption: [两阶段 vs 一阶段检测器核心对比], kind: table, ) Focal Loss(RetinaNet, ICCV 2017) 解决一阶段检测器的 [前景-背景极度不平衡]问题: [ "FL"(p t) = -alpha t (1 - p t)^gamma log(p t) ] - p t :模型预测的概率(易分类样本 p t -> 1 ,难分类 p t -> 0 )。 - gamma >= 0 :焦点参数。 (1 - p t)^gamma 大幅 [降低易分类样本的损失权重],使模型聚焦于难分类样本。 - alpha t :类别平衡因子。标准取值 gamma = 2, alpha = 0.25 。 特征金字塔网络(FPN) [核心思想:]浅层高分辨率(细节好但语义弱)+ 深层低分辨率(语义强但细节差),通过多尺度特征融合提升小目标检测。 [FPN 三条路径:] + [自底向上(Bottom-Up Path):]标准 CNN 前向,每阶段输出特征图 (C 2, C 3, C 4, C 5) 。 + [自顶向下(Top-Down Path):]从 C 5 开始逐级上采样(2×),与对应层的侧边特征(经 1 times 1 卷积降维)相加。 + [横向连接(Lateral Connection):]同层特征图经 1 times 1 卷积匹配通道数后相加,再经 3 times 3 卷积消除上采样混叠效应。 输出特征金字塔 (P 2, P 3, P 4, P 5) ,多尺度检测头各自预测。 非极大值抑制(NMS)在目标检测中的应用 目标检测输出大量重叠边界框,NMS 去重: + 按置信度降序排列所有候选框。 + 选取最高分框,计算其余框与该框的 [IoU],将 IoU > 阈值者抑制(删除或衰减分数)。 + 重复直到所有框被处理/抑制。 [Soft-NMS:]不直接删除高重叠框,而是 [衰减其分数] s i = s i (1 - "IoU") 或高斯衰减 s i = s i e^(-"IoU"^2 / sigma) ,保留更多检测。 = Lecture 07 核心速查(开卷考试直接抄用) [1. 分割类型:]语义(逐像素分类)、实例(区分个体)、全景(实例+背景) [2. 分割数学原则:]完备性 union R i = R 、互斥性 R i ∩ R j = ∅ [3. 传统方法:] - 阈值法(Otsu:最大化类间方差) - 分水岭(易过分割)、K 均值(需预设 K ) - Mean Shift(无需 K ,计算量大) - 共同缺陷:缺乏语义理解、鲁棒性差 [4. 上采样:]插值、PixelShuffle(通道重排)、转置卷积( partial L/(partial x) = C^T partial L/(partial y) ) [5. 语义分割网络:] - FCN:全卷积化 + 跳跃连接(8s/16s/32s) - U-Net:编码器-解码器 + 跳跃连接(适合分割) - DeepLab v1:空洞卷积 + CRF - DeepLab v2:ASPP(多尺度空洞卷积) - DeepLab v3:改进 ASPP(+BN + 全局池化) - DeepLab v3+:编码器-解码器 + ASPP [6. 实例分割演进:] - R-CNN:Selective Search + SVM(47s/图) - Fast R-CNN:共享特征图 + ROI Pooling(2s/图) - Faster R-CNN:RPN + Anchor(0.2s/图) - Mask R-CNN:+ 掩码分支 + RoI Align(双线性插值) () = 成像原理 图像与像素 - [二维离散信号:]数字图像为二维函数 I(x, y) , (x, y) 为像素空间坐标, I(x, y) 为亮度值。也可用二维矩阵 I[m, n] 表示。 - [分辨率:]像素总数量。常见规格:720p(约 92 万)、1080p(约 207 万)、4K(约 829 万)。 - [灰度级(位深):]常见为 [8 位(256 灰度级)], 2^8 = 256 。 传感器与滤光 - [CCD:]光子→电子→电压信号。 - [CMOS:]主流,每个像素独立电荷→电压转换,读出快、功耗低。 - [Bayer 阵列:]2×2 排列包含 [2 绿、1 红、1 蓝](人眼对绿最敏感),原始数据称 Raw 数据。 光学镜头参数 - [焦距(Focal Length):]平行光线汇聚的焦点到镜头光心的距离。焦距越长视场角越小。 - [光圈与 f 值:] N = f / D , f 为焦距, D 为光圈直径。f 值越小(如 f/1.4),光圈越大,进光量越多,景深越浅。 - [景深(DOF):]减小光圈(增大 f 值)可增大景深。 - [快门速度:]控制曝光时间。越快适合捕捉运动,越慢易模糊。 - [ISO:]传感器感光度。提高 ISO 可应对弱光,但增加噪声。 单反 vs 手机相机 - 单反:传感器大(36×24mm)、色彩深度高(12 14 bit)、光学变焦,计算能力有限。 - 手机:传感器极小(5×4mm)、约 10 bit、固定镜头, [依赖 ISP 计算摄影补救]。 = 图像信号处理器(ISP)处理流程 ISP 将 Raw 数据转化为 RGB 图像的核心计算管道。 [1. ISO 增益与 Raw 处理:]放大原始信号;暗电流/黑电平减法(减去热激发的暗电流噪声);镜头阴影校正(增益面修正边缘光照不均匀)。 [2. 去马赛克(Demosaicing):]将 Bayer 阵列单通道 Raw 数据恢复为 RGB 三通道。插值方法:双线性插值、边缘感知插值。替代方案:Foveon X3 传感器(叠放三层直接 RGB)。 [3. 降噪(NR):]将输入 I 分为低频平滑部分 B(I) 和高频细节部分 I - B(I) ,仅当高频响应大于阈值时保留(视为内容),否则抑制(视为噪声)。 [4. 白平衡与色彩空间转换:] - [白平衡:]"灰世界"算法(假设 RGB 三通道均值相等)或 "白点"算法(假设最亮区域为白色)。 - [色彩空间转换:]传感器色彩空间 → CIE XYZ → sRGB。 [5. 色调映射:]利用 3D LUT 或 1D 曲线进行风格化和对比度调整。 [6. 映射至 sRGB:]应用 [伽马编码](非线性变换匹配人眼亮度感知)。 [7. JPEG 压缩:]DCT(8×8 分块)→ 量化(舍弃高频细节)→ Z 字形扫描 → 差分编码 → Huffman 编码。 = 【补6】彩色空间与颜色模型 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] RGB 彩色空间 - 基于红绿蓝三原色 [加色混合]模型。每个通道 8 bit → 共 24 bit 真彩色。 - [缺陷:]通道间高度相关;不符合人眼感知习惯;类似颜色在空间中的欧氏距离不代表感知相似。 HSV/HSI 彩色空间(符合人眼直觉) - [H(色调 Hue):]颜色类型,0°–360°(红→绿→蓝→红)。 - [S(饱和度 Saturation):]颜色纯度,0(灰白)→ 1(纯色)。 - [V/I(亮度 Value/Intensity):]明暗程度。 - [优势:]将亮度与色彩信息解耦,对光照变化更鲁棒。非常适合 [基于颜色的图像分割](如肤色检测)。 Lab 彩色空间(感知均匀) - L :亮度(0 黑 → 100 白); a :绿→品红轴; b :蓝→黄轴。 - [核心特性:] [感知均匀性] — 空间中两点的欧氏距离 Delta E = sqrt(Delta L^2 + Delta a^2 + Delta b^2) 与人眼感知的色差成正比。 - 常用于 [色差度量]和颜色迁移。 YCrCb 彩色空间 - Y :亮度分量; "Cb" :蓝色色度分量; "Cr" :红色色度分量。 - [优势:]亮度与色度分离,支持色度子采样(如 4:2:0),大幅节省存储和带宽。 [JPEG/MPEG 压缩标准的核心色彩空间]。 伪彩色增强 将单通道灰度图的每个灰度值 [映射为一种 RGB 颜色]。用于增强人眼对灰度差异的辨别能力(如医学热力图、红外成像)。 色彩恒常性(Color Constancy) 人眼/算法在不同光照下仍能正确感知物体本色的能力。经典算法: - [灰世界假设(Gray World):]场景平均反射率是灰色的( bar(R) = bar(G) = bar(B) )。 - [完美反射假设(White Patch):]最亮的区域是白色反射面。 = 高动态范围(HDR) 动态范围定义 [ "Dynamic Range" = 20 log 10 (B "max" / B "min") quad "(dB)" ] - B "max" 为满井容量, B "min" 为噪声底噪。 - 人眼 ≈ 120 dB,8-bit 显示器 ≈ 70 80 dB。 HDR 实现 - 拍摄多张不同曝光量的低动态范围图像 → 合并有效像素 → [色调映射](将高动态范围压缩为标准 8-bit,保留明暗细节)。 = 图像复原(Image Restoration) 退化模型 [ y = H x + n ] - y :退化图像, x :潜在清晰图像, H :退化矩阵, n :加性噪声。 [经典任务分类:] - H 为恒等矩阵 → [图像去噪] - H 为模糊算子 → [图像去模糊] - H 包含下采样 → [图像超分辨率] 评价指标 [全参考(FR):]MSE(均方误差)、PSNR(峰值信噪比)、SSIM(结构相似性)、MS-SSIM、LPIPS(深度学习感知相似度)、FID。 [无参考(NR):]NIQE、BRISQUE。 [半参考(RR):]仅获取部分特征进行比较。 去噪方法 [传统去噪:] - 均值/中值滤波:邻域平滑,损失边缘。 - NLM(非局部均值):搜索相似块加权平均。 - [BM3D:]分块找相似块 → 堆叠 3D 矩阵 → 变换域硬阈值滤波 → 聚合还原。 [深度学习去噪:] - [DnCNN:]残差学习,网络学习噪声(残差),与原图相减得去噪图。 - [FFDNet:]输入噪声水平图,支持空间变化噪声。 - [CBDNet:]学习从真实噪声到清晰图像的映射。 图像超分辨率 - [退化模型:] y = (k star x) "下采样" + n ( k 为模糊核, n 为噪声)。 - [SRCNN:]三层卷积:Patch 提取 → 非线性映射 → 重建,与稀疏编码高度对应。 - [盲超分(Blind SR):]无法确知模糊核 k 。BSRGAN 等使用混合退化策略覆盖现实场景。 = 【补8】检测与分割常用评价指标 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] 交并比(IoU, Jaccard Index) [ "IoU" = (|A ∩ B|) / (|A ∪ B|) ] - 衡量预测区域与真值区域的重叠程度。 0 tilde 1 ,越高越好。 - [阈值判定:]通常 IoU ≥ 0.5 判定为正确检测。 平均精度均值(mAP)— 目标检测核心指标 [单类 AP(Average Precision):] - 按置信度降序排列所有预测框,计算不同召回率下的精确率。 - AP = Precision-Recall 曲线下的面积(通常用 11-point interpolation 或积分)。 - "AP" .5 :IoU 阈值 0.5 时的 AP; "AP"@[0.5:0.95] :COCO 数据集标准(IoU 从 0.5 到 0.95,步长 0.05 取平均)。 [mAP:]所有类别 AP 的均值。 平均交并比(mIoU)— 语义分割核心指标 [ "mIoU" = 1/(C+1) sum (c=0)^C ("TP" c) / ("TP" c + "FP" c + "FN" c) ] - "TP" c :预测为 c 类且真值为 c 类的像素数。 - "FP" c :预测为 c 类但真值不是的像素数(假阳性)。 - "FN" c :真值为 c 类但预测不是的像素数(假阴性)。 - [较像素准确率 PA 的优势:]mIoU 对类别不均衡更鲁棒(防止大量正确预测的背景像素掩藏少数类的失败)。 经典评价指标速查对比 ( table( columns: (auto, 3fr, 3fr), stroke: none, inset: (x: 6pt, y: 4pt), table.hline(stroke: 1.2pt), table.header([指标], [适用任务], [核心公式/说明]), table.hline(stroke: 0.4pt), [MSE], [图像重建/去噪], [平方误差均值,越小越好], [PSNR], [图像重建/去噪/超分], [ 10 log 10 (("MAX"^2) / ("MSE")) (dB),越大越好], [SSIM], [图像质量评估], [亮度+对比度+结构三项乘积, 0 tilde 1 ,越高越好], [LPIPS], [感知相似度], [深层网络特征距离,越小越好], [FID], [生成图像质量], [Inception 特征分布距离,越小越好], [ [IoU]], [ [分割/检测]], [ [ |A∩B| / |A∪B| ]], [ [mAP]], [ [目标检测]], [ [各类 AP 均值 \@ 指定 IoU 阈值]], [ [mIoU]], [ [语义分割]], [ [各类 IoU 均值]], table.hline(stroke: 1.2pt), ), caption: [图像质量评价指标速查 — 补充指标粗体标明], kind: table, ) = Lecture 08 核心速查(开卷考试直接抄用) [1. 像素与分辨率:] 2^8 = 256 灰度级,720p / 1080p / 4K [2. 光学参数:]f 值 N = f / D ,f 值越小光圈越大、景深越浅 [3. ISP 流程:]ISO 增益 → 去马赛克 → 降噪 → 白平衡 → 色调映射 → sRGB 伽马编码 → JPEG 压缩(DCT + 量化 + Huffman) [4. 动态范围:] "DR" = 20 log 10 (B "max" / B "min") (dB) [5. HDR:]多曝光合成 + 色调映射 [6. 图像退化模型:] y = H x + n (去噪 / 去模糊 / 超分) [7. 评价指标:]MSE、PSNR、SSIM、LPIPS、FID [8. 去噪方法:]BM3D(传统)、DnCNN(残差学习)、FFDNet(噪声水平图) [9. 超分:]SRCNN 三层卷积(提取→映射→重建),盲超分 BSRGAN () = 光学与成像系统基础 折射定律(Snell's Law) [ n 1 sin theta i = n 2 sin theta t ] 其中 n 1, n 2 为介质折射率, theta i 为入射角, theta t 为折射角。小角度近似: theta < 5 deg 时误差 < 1%, sin theta approx tan theta approx theta 。 透镜类型 - [菲涅尔透镜:]同心棱镜环构成,重量轻,用于聚光/投影。 - [DOE(衍射光学元件):]通过光栅衍射控制光路,色散补偿抵消色差。 - [超透镜(Meta-lens):]超表面亚波长结构调控光的相位、振幅和偏振,超薄轻量化。 镜头像差 - [色差:]不同波长折射率不同(波长越长焦点越远),导致边缘伪彩。可通过 DOF 补偿。 - [几何畸变:]广角镜头导致直线弯曲(桶形/枕形畸变),通过 LineNet、FaceNet 等校正。 = 传感器与噪声建模 成像链路 光子 → 光电转换 → 电路 → 放大器 → ADC → 数字信号。 噪声分类与数学模型 [散粒噪声(Shot Noise):]由光子的粒子性引起的统计涨落。 [ N "shot" cal(N)(0, beta "shot" I) ] [暗电流噪声(Dark Current Noise):]由传感器热激发产生。 [ N ("DC") = k N ("FP") + N ("BLE") + N ("DCSN") ] [读出噪声(Read Noise):]由电路放大和读取过程引入。 [ N "read" cal(N)(0, sigma "read"^2) quad N "row" cal(N)(0, sigma "row"^2) ] [量化噪声(Quantization Noise):]模拟→数字转换时的舍入误差。 [ N q U(-q/2, q/2) ] = 多传感器与多模态融合 多摄超分(ECCV 2022) 利用多摄像头(主摄 + 长焦),通过训练阶段对齐多摄图像,推理时特征融合,生成高于单摄分辨率的图像。 可见光-近红外融合(RGB-NIR) RGB 受光照影响,NIR 对光照不敏感。融合用于 [暗光增强]和 [反光消除]。 可见光-多光谱/高光谱融合 低分辨率高光谱(光谱信息)与高分辨率 RGB(空间信息)融合,生成同时高空间和高光谱分辨率的图像。应用于真实色彩还原(红枫原色影像系统)。 = 底层视觉新任务:去恶劣天气、去反光、人脸/文本恢复 去雨/雪/雾(De-weathering) - [SPA(CVPR 2019):]语义引导像素级注意力(SPANet),局部到全局去除雨滴雨痕。 - [Not Just Streaks(ECCV 2022):]考虑雨滴、雨雾,引入可变形残差块和物理模型约束。 - [WeatherStream(CVPR 2023):]仿真技术,模拟从人为降雨到真实场景的自动变换。 - [LiDAR 去雨/去雾:]滤除雨雪天产生的点云噪声。 去反光(Reflection Removal) [物理模型:] I = B + R , B 为背景, R 为反射层。 合成方法:对 R 施加高斯模糊 → I = B + R → 颜色加权截断 → 边缘增强。典型架构采用 E-CNN(提取边缘)和 I-CNN(恢复图像)两阶段串联。 人脸复原 [GFRNet(ECCV 2018):]利用流场对齐参考图像纹理 + 感知损失 + 对抗损失。 [ASFFNet(CVPR 2020):]基于关键点的引导图选择 + MLS 自适应对齐 + AdaIN 光照归一化 + 自适应特征融合。 [DFDNet(ECCV 2020):]同时保留通用字典和个性化字典。 [选择性引导人脸复原(AAAI 2026):]掩膜机制 + 循环损失 + 一步扩散模型 + ID 保留。 文本图像复原 利用 Transformer Encoder 提取上下文语义,结合结构先验生成与图像生成,学习文字笔画与结构。核心模块:字符编码、位置编码、多尺度特征融合。 () = 视频中的运动应用 视频数据定义 视频是随时间拍摄的一系列连续帧,图像数据是空间坐标 (x, y) 和时间 t 的函数,记为 I(x, y, t) 。 视频分割任务 - [背景减除:]摄像机固定,计算当前帧与背景模型的差值,分离静态背景与动态前景。 - [镜头边界检测:]计算帧间差异度量(像素差值、颜色直方图差异),超过阈值判定为镜头边界。 - [运动分割:]利用运动特征对像素聚类,分割为不同运动属性的对象。 共同命运法则 [共同命运法则(Law of Common Fate):]以相同方向或速度运动的视觉元素被感知为一个整体。在均匀纹理背景下,运动可能是唯一区分目标与背景的线索。 = 光流(Optical Flow)的定义与基本假设 光流定义 光流是由观察者与场景之间的相对运动形成的 [表现运动模式]。核心目标:给定两连续帧,估计每个像素的运动矢量 bold(v) = [u, v]^T 。 核心假设 [假设 1:亮度恒常性(Brightness Constancy)] 同一物体点在不同帧中亮度值保持不变: [ I(x(t), y(t), t) = C ] [假设 2:小运动(Small Motion)] 相邻帧像素位移极小,可通过泰勒级数一阶线性近似。 = 光流约束方程与孔径问题 亮度恒常性方程推导 由亮度恒常性 I(x + u delta t, y + v delta t, t + delta t) = I(x, y, t) ,泰勒展开一阶近似并消项: [ I x u + I y v + I t = 0 向量形式: nabla I^T bold(v) + I t = 0 ] 其中 I x = (partial I)/(partial x) , I y = (partial I)/(partial y) , I t = (partial I)/(partial t) , u = dif x/dif t , v = dif y/dif t 。 孔径问题(Aperture Problem) - [问题本质:]一个方程两个未知数 (u, v) ,解构成一条直线。 - [平坦区域:]梯度为 0,无法观测运动。 - [边缘区域:]只能测到垂直于边缘的运动分量,无法确定沿边缘方向的分量。 - [角点区域:]至少两个不同梯度方向,可唯一确定光流。 = 恒定光流 — Lucas-Kanade 方法 局部平滑性假设 在光流的 [局部邻域](如 5 times 5 图像块)内,所有像素具有相同位移 (u, v) 。 超定方程组 对邻域内 N 个像素应用亮度恒常性: [ cases(I (x)(p 1) u + I (y)(p 1) v = -I (t)(p 1), I (x)(p 2) u + I (y)(p 2) v = -I (t)(p 2), dots.v) 矩阵形式: A bold(x) = bold(b) ] 其中 A = mat(I (x)(p 1), I (y)(p 1); I (x)(p 2), I (y)(p 2); dots.v, dots.v; I (x)(p N), I (y)(p N)) , bold(x) = mat(u; v) , bold(b) = mat(-I (t)(p 1); -I (t)(p 2); dots.v; -I (t)(p N)) 。 最小二乘求解 [ A^T A bold(x) = A^T bold(b) 即 mat(sum I x^2, sum I x I y; sum I x I y, sum I y^2) mat(u; v) = mat(-sum I x I t; -sum I y I t) ] A^T A 为结构张量。当其特征值 lambda 1, lambda 2 均较大(对应角点)时可逆,求得唯一解。 = 平滑光流 — Horn-Schunck 方法 全局平滑性假设 世界上大多数物体以连贯方式运动,期望 [光流场全局平滑]。定义为 [能量泛函极小化]问题。 能量函数 [ E = integral integral [(I x u + I y v + I t)^2 + alpha (|nabla u|^2 + |nabla v|^2)] dif x dif y ] - I x u + I y v + I t :亮度恒常性数据项。 - |nabla u|^2 + |nabla v|^2 :光流平滑度正则项。 - alpha :平滑项权重系数。 欧拉-拉格朗日方程 对 E 分别对 u, v 求变分,令变分为零: [ cases(I x (I x u + I y v + I t) - alpha Delta u = 0, I y (I x u + I y v + I t) - alpha Delta v = 0) ] 其中 Delta u, Delta v 为 u, v 的拉普拉斯算子。 迭代求解公式 利用高斯-赛德尔迭代求解: [ u^((k+1)) = bar(u)^((k)) - (I x (I x bar(u)^((k)) + I y bar(v)^((k)) + I t)) / (alpha^2 + I x^2 + I y^2) v^((k+1)) = bar(v)^((k)) - (I y (I x bar(u)^((k)) + I y bar(v)^((k)) + I t)) / (alpha^2 + I x^2 + I y^2) ] 其中 bar(u)^((k)), bar(v)^((k)) 为邻域内光流平均值, alpha^2 防止分母过小。 算法步骤 + 预处理:计算 I x, I y (Sobel)和 I t (帧间差分)。 + 初始化 u = 0, v = 0 。 + 迭代更新:计算邻域均值 bar(u), bar(v) ,按公式更新 u, v ,直至收敛。 = Lecture 11 核心速查(开卷考试直接抄用) [1. 光流定义:]运动矢量 bold(v) = [u, v]^T , I(x, y, t) [2. 亮度恒常性:] I x u + I y v + I t = 0 , nabla I^T bold(v) + I t = 0 [3. 孔径问题:]一个方程两个未知数,平坦→无运动,边缘→法向分量,角点→唯一解 [4. Lucas-Kanade:]局部平滑假设, A^T A bold(x) = A^T bold(b) ,结构张量可逆时求解 [5. Horn-Schunck:]全局平滑假设,能量泛函 E = integral integral [(I x u + I y v + I t)^2 + alpha(|nabla u|^2 + |nabla v|^2)] dif x dif y [6. HS 迭代公式:] u^((k+1)) = bar(u)^((k)) - (I x (I x bar(u)^((k)) + I y bar(v)^((k)) + I t)) / (alpha^2 + I x^2 + I y^2) [7. LK vs HS:]LK 局部恒定、超定方程最小二乘;HS 全局平滑、能量泛函迭代求解。 = 【补3】KLT(Kanade-Lucas-Tomasi)跟踪器 [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] KLT 核心思想 KLT 在 LK 光流基础上做了 [三大改进]: - [特征点筛选("好"特征选择):]不计算所有像素的光流,只选择"可跟踪"的特征点 — 要求结构张量 A^T A 的 [两个特征值都大](即角点),确保方程可解且解稳定。 - [金字塔 LK(Pyramidal LK):]LK 假设小运动,但实际运动可能很大。从低分辨率粗估计 → 逐级上采精修,多尺度处理大位移。 - [仿射变换模型:]LK 假设平移( u,v )恒定;KLT 进一步引入 [6 参数仿射变换] x' = D x + d ,处理旋转、缩放、剪切变形。 KLT 算法步骤 + 步骤 1:检测"好"特征点(如 Harris 角点或 min(lambda 1, lambda 2) > lambda "thr" )。 + 步骤 2:构建图像金字塔(高斯下采样)。 + 步骤 3:从最粗层开始,每层做 LK 计算光流,将结果传给下一层精细计算。 + 步骤 4:逐帧跟踪特征点,剔除被遮挡或匹配误差大的点。 与 LK 和 HS 的对比 - LK:局部恒定、小运动、最小二乘。 - HS:全局平滑、变分能量最小化。 - [KLT:带特征筛选的 LK + 金字塔 + 仿射模型。] () = 考前综合提示 [Lecture 02 重点:]直方图均衡化计算大题 — ["概率密度 → 累计求和 → 乘 (L-1) 并四舍五入 → 合并同类项"],将表格画在草稿纸上一步步算即可。 [Lecture 03 重点:]Canny 边缘检测 5 步流程必须熟记( [高斯平滑 → 梯度计算 → 非极大值抑制 → 双阈值 → 边缘连接]),Sobel/拉普拉斯算子模板必须能默写。 [Lecture 04 重点:]Harris 角点响应函数 R 公式和判定规则必背;SIFT 算法 4 大步骤( [尺度空间极值检测 → 关键点定位 → 方向分配 → 128 维描述符])与金字塔层数 S+3 必考。 [Lecture 05 重点:]RANSAC 5 步流程必考( [随机采样 → 拟合 → 统计内点 → 迭代保留最优 → 输出最优模型]);变换模型自由度( [相似 4 / 仿射 6 / 单应性 8])和霍夫变换直线方程 rho = x cos theta + y sin theta 必背。 [Lecture 06 重点:]MLP 解决 XOR(引入隐藏层);CNN 三大特性( [稀疏交互、参数共享、平移等变性]);经典网络结构( [LeNet → AlexNet → VGG → GoogLeNet → ResNet → DenseNet → U-Net]);ResNet 残差学习 cal(H)(x) = F(x) + x 。Transformer 自注意力公式 "Attention"(Q, K, V) = "softmax"( Q K^T / sqrt(d k) ) V 。对比学习 InfoNCE。PyTorch 动态图。 [Lecture 07 重点:]三分割任务定义( [语义 / 实例 / 全景]);DeepLab 空洞卷积 + ASPP;分割演进 R-CNN → Fast → Faster → Mask R-CNN,RoI Align 核心改进(双线性插值消除量化误差)。转置卷积公式 partial L/(partial x) = C^T partial L/(partial y) 。 [Lecture 08 重点:]ISP 流程 7 步( [Raw → 去马赛克 → 降噪 → 白平衡 → 色调映射 → sRGB → JPEG]);动态范围 "DR" = 20 log 10 (B "max" / B "min") (dB);图像退化模型 y = H x + n ;评价指标 PSNR、SSIM、LPIPS;DnCNN 残差学习去噪。 [Lecture 09 重点:]Snell 定律 n 1 sin theta i = n 2 sin theta t ;噪声分类( [散粒/暗电流/读出/量化]);GAN 极小极大博弈 min G max D EE[log D(x)] + EE[log(1 - D(G(z)))] ,收敛时 D G^ (x) = 1/2 , C(G) = -log 4 ;StyleGAN(映射 + AdaIN)→ StyleGAN2(路径正则化)→ StyleGAN3(平移不变)。 [Lecture 11 重点:]光流约束方程 I x u + I y v + I t = 0 ;孔径问题。Lucas-Kanade( [局部平滑 + 最小二乘 A^T A x = A^T b ])。Horn-Schunck( [全局平滑 + 能量泛函 E = integral integral [(I x u + I y v + I t)^2 + alpha(|nabla u|^2 + |nabla v|^2)] dif x dif y ] + 迭代求解)。 [Lecture 13 重点:]视差与深度 Z = f B / d ;极线约束 2D→1D。本质矩阵 E = [t] (times) R (需内参,秩 2);基础矩阵 F = K^(-T) E K'^(-1) ( x^T F x' = 0 , det(F) = 0 ,自由度 7)。8 点法(SVD + 最小奇异值置零)+ RANSAC 剔除异常值。SSD / NCC 匹配代价。 [Lecture 13 3 重点:]显式 vs 隐式表示。NeRF 体渲染方程 C(bold(r)) = integral T(t) sigma bold(c) dif t ,透明度 T(t) = exp(-integral sigma dif s) 。3DGS(各向异性高斯椭球 + Alpha 混合,实时渲染)。SfM 流程(SIFT → Bundle Adjustment → 稀疏点云)。 [Lecture 16 重点:]贝叶斯先验 P(theta | X) prop P(X | theta) P(theta) ;TV 损失一维/二维公式;CNN 强/ ViT 弱归纳偏置。Noise2Noise 自监督去噪。GAN 反演 G(w) approx x ;LoRA 参数高效微调 h = W 0 x + B A x 。StyleCLIP(文本引导图像生成)。 [生成模型重点:]VAE 重参数化 z = mu + sigma dot epsilon ;VQ-VAE 离散 Codebook;归一化流 p (x)(x) = p (z)(f^(-1)(x)) dot |det J| ;扩散模型 x t = sqrt(bar(alpha) t) x 0 + sqrt(1 - bar(alpha) t) z ,训练预测噪声 L "simple" = EE[norm(z - z theta)^2] 。Stable Diffusion 潜在扩散 + 交叉注意力。视觉自回归(VQ-VAE + Token 序列)。 = 【补】补充章节重点速查 [ 以下 9 个补充章节为 PPT 之外的扩展内容,根据老师"30% 题目不在 PPT 中"的提示整理,请重点关注。 ] [【补1】频域处理:]2D DFT 公式、卷积定理(空间卷积 = 频域乘积)、理想/巴特沃斯/高斯低通滤波器、同态滤波。 [【补2】形态学:]腐蚀(缩小亮区)、膨胀(扩大亮区)、开运算(去毛刺)、闭运算(补空洞)、形态学梯度/顶帽/黑帽变换。 [【补3】KLT 跟踪器:]特征筛选(选角点)+ 金字塔 LK(处理大位移)+ 仿射模型。较 LK/HS 的改进点必考。 [【补4】三角测量与相机标定:]SVD 求解 A X = 0 、针孔相机模型 K[R|t] 、内参 K ( f x, f y, c x, c y, s )、张正友标定四步、径向畸变 x c = x(1 + k 1 r^2 + k 2 r^4) 。 [【补5】一阶段检测器:]YOLO 核心思想(回归直接输出)、YOLO vs Faster R-CNN 对比(速度/精度)、Focal Loss "FL"(p t) = -alpha t (1-p t)^gamma log(p t) 、FPN 三路径(自底向上 + 自顶向下 + 横向连接)、Soft-NMS。 [【补6】彩色空间:]RGB/HSV/Lab/YCrCb 特性对比、灰世界/完美反射假设、伪彩色增强。 [【补7】数据增强:]几何增强、色彩增强、MixUp / CutMix / CutOut / Mosaic(YOLOv4)/ RandAugment。 [【补8】检测/分割评价指标:]IoU = |A∩B| / |A∪B| 、mAP@"IoU"、mIoU(语义分割)、PSNR/SSIM/LPIPS/FID 已见正文章节。 [【补9】图像插值:]最近邻(方块)→ 双线性(平滑模糊)→ 双三次(较清晰)→ Lanczos(理论最优)。质量与速度的 tradeoff。