关注

【信息科学与工程学】计算机科学与自动化 第一百一十篇 计算机视觉及多维视觉定位模型01

计算机视觉及多维视觉定位模型/算法/方程式

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

1

边缘检测

Canny边缘检测算法

输入:灰度图像I(x,y);输出:边缘图E(x,y);参数:高斯核大小σ,高低阈值T_high、T_low;中间变量:梯度幅值G(x,y),梯度方向θ(x,y)

1. 高斯滤波:I_smooth = G(σ) * I
2. 计算梯度:G_x = ∂I_smooth/∂x,G_y = ∂I_smooth/∂y
3. 梯度幅值:G = √(G_x² + G_y²)
4. 梯度方向:θ = arctan(G_y/G_x)
5. 非极大值抑制:沿梯度方向比较相邻像素,保留局部最大值
6. 双阈值检测:G > T_high为强边缘,T_low < G ≤ T_high为弱边缘,G ≤ T_low为非边缘
7. 边缘连接:连接强边缘,若弱边缘与强边缘相连则保留

自动驾驶车道检测、图像分割预处理、目标轮廓提取

图像滤波、梯度计算、阈值处理

2

特征点检测

SIFT(尺度不变特征变换)

输入:图像I;输出:关键点集合K={k_i},每个关键点包含位置(x,y)、尺度σ、方向θ、描述子向量d∈ℝ¹²⁸;参数:高斯金字塔层数,DoG阈值

1. 构建尺度空间:L(x,y,σ) = G(x,y,σ) * I(x,y)
2. 计算DoG:D(x,y,σ) = L(x,y,kσ) - L(x,y,σ)
3. 关键点检测:在DoG空间中寻找局部极值点
4. 关键点定位:通过泰勒展开精确定位,消除低对比度和边缘响应点
5. 方向分配:计算关键点邻域梯度直方图,确定主方向
6. 描述子生成:将关键点邻域旋转到主方向,计算4×4子区域的8方向梯度直方图,形成128维向量

图像拼接、物体识别、增强现实

尺度空间理论、高斯差分、梯度直方图

3

特征匹配

RANSAC(随机抽样一致)

输入:匹配点对集合M={(p_i,q_i)};输出:内点集合I,变换模型H;参数:迭代次数N,内点阈值ε,内点比例阈值τ

1. 随机选择最小样本集(如4对点)
2. 计算模型参数H
3. 计算所有点对在模型H下的误差e_i = d(H·p_i, q_i)
4. 统计内点:e_i < ε的点为内点
5. 如果内点比例 > τ,用所有内点重新估计H
6. 重复N次,选择内点最多的模型

图像配准、三维重建、异常值剔除

概率统计、模型拟合、异常检测

4

光流估计

Lucas-Kanade光流法

输入:相邻帧图像I_t、I_{t+1};输出:光流场(u,v);参数:窗口大小w,迭代次数;变量:图像梯度I_x、I_y、I_t

1. 亮度恒定假设:I(x+u, y+v, t+1) = I(x,y,t)
2. 一阶泰勒展开:I(x+u,y+v,t+1) ≈ I(x,y,t) + I_x·u + I_y·v + I_t
3. 得到约束方程:I_x·u + I_y·v + I_t = 0
4. 局部窗口假设:窗口内所有像素共享相同(u,v)
5. 最小二乘求解:AᵀA·[u,v]ᵀ = -Aᵀb,其中A=[I_x,I_y],b=I_t

视频稳定、运动分析、目标跟踪

泰勒展开、最小二乘法、图像梯度

5

图像分类

卷积神经网络(CNN)

输入:图像张量X∈ℝ^{H×W×C};输出:类别概率向量y∈ℝ^K;参数:卷积核W,偏置b,激活函数σ,池化函数,全连接层权重

1. 卷积层:Z^{(l)} = W^{(l)} * X^{(l-1)} + b^{(l)}
2. 激活函数:A^{(l)} = σ(Z^{(l)})
3. 池化层:P^{(l)} = pool(A^{(l)})
4. 全连接层:z = W_f·flatten(P^{(L)}) + b_f
5. Softmax:y_i = exp(z_i)/∑_j exp(z_j)

ImageNet图像分类、人脸识别、医疗图像分析

卷积运算、反向传播、梯度下降

6

目标检测

YOLO(You Only Look Once)

输入:图像I;输出:边界框B={b_i},类别C={c_i},置信度S={s_i};参数:网格大小S×S,每个网格预测B个边界框,类别数K

1. 将图像划分为S×S网格
2. 每个网格预测B个边界框,每个框包含(x,y,w,h,confidence)
3. 每个网格预测K个类别的条件概率
4. 最终置信度:Pr(Class_i

Object)×Pr(Object)×IOU
5. 损失函数:L = λ_coord∑(x-x̂)²+(y-ŷ)² + λ_coord∑(√w-√ŵ)²+(√h-√ĥ)² + ∑(C-Ĉ)² + λ_noobj∑(C-Ĉ)² + ∑(p_i(c)-p̂_i(c))²

实时目标检测、自动驾驶、安防监控

7

图像分割

U-Net

输入:医学图像I;输出:分割掩码M;结构:编码器(下采样)、解码器(上采样)、跳跃连接

1. 编码器:通过卷积和最大池化提取特征,逐步减小空间尺寸,增加通道数
2. 解码器:通过转置卷积上采样,逐步恢复空间尺寸,减少通道数
3. 跳跃连接:将编码器对应层的特征图与解码器特征图拼接
4. 最终卷积层:输出每个像素的类别概率

医学图像分割、细胞分割、卫星图像分析

编码器-解码器结构、跳跃连接、转置卷积

8

生成模型

GAN(生成对抗网络)

输入:随机噪声z∼p_z;输出:生成图像G(z);参数:生成器G参数θ_g,判别器D参数θ_d

1. 生成器:G(z;θ_g)试图生成逼真图像
2. 判别器:D(x;θ_d)输出输入为真实图像的概率
3. 对抗损失:min_G max_D V(D,G) = E{x∼p_data}[log D(x)] + E{z∼p_z}[log(1-D(G(z)))]
4. 交替训练:固定G训练D,固定D训练G

图像生成、风格迁移、数据增强

博弈论、JS散度、模式崩溃

9

三维视觉

NeRF(神经辐射场)

输入:相机位姿、视角方向;输出:RGB颜色c,体密度σ;参数:MLP网络权重,位置编码函数γ

1. 位置编码:γ(p) = (sin(2⁰πp), cos(2⁰πp), ..., sin(2^{L-1}πp), cos(2^{L-1}πp))
2. MLP映射:F_Θ(x,d) = (c,σ),其中x为空间位置,d为视角方向
3. 体渲染:C(r) = ∫{t_n}^{t_f} T(t)σ(r(t))c(r(t),d)dt,其中T(t)=exp(-∫{t_n}^{t}σ(r(s))ds)
4. 离散化:Ĉ(r)=∑_{i=1}^N T_i(1-exp(-σ_iδ_i))c_i

新颖视角合成、三维重建、虚拟现实

体渲染、位置编码、辐射场

10

视觉定位

PnP(透视n点)算法

输入:3D点{P_i}∈ℝ³,2D投影点{p_i}∈ℝ²;输出:相机位姿(R,t);参数:相机内参矩阵K

1. 投影方程:λ_i p_i = K[R

t]P_i
2. 消去深度:从两个投影方程消去λ_i
3. 对于n≥3,构建线性方程组
4. 最小二乘求解:min{R,t} ∑i

11

点云配准

ICP(迭代最近点)

输入:源点云P={p_i},目标点云Q={q_i};输出:变换矩阵(R,t);参数:最大迭代次数,收敛阈值ε

1. 初始化:R=I,t=0
2. 最近点对应:对于每个p_i,在Q中找最近点q_i
3. 计算变换:min{R,t} ∑i

R·p_i + t - q_i

12

双目视觉

三角测量

输入:左右图像匹配点(u_l,v_l)、(u_r,v_r),相机基线b,焦距f;输出:三维坐标(X,Y,Z)

1. 视差计算:d = u_l - u_r
2. 深度计算:Z = f·b/d
3. X坐标:X = u_l·Z/f
4. Y坐标:Y = v_l·Z/f
5. 假设:相机已校正,极线水平对齐

立体视觉、深度估计、三维测量

相机几何、视差、极线几何

13

多目视觉

投影线交点法

输入:多相机投影矩阵{M_i},图像点{p_i};输出:三维点P=(X,Y,Z);变量:深度因子{z_ci}

1. 每个相机投影方程:z_ci·p_i = M_i·P
2. 展开为线性方程组:
m₁₁ⁱX + m₁₂ⁱY + m₁₃ⁱZ + m₁₄ⁱ = z_ci·u_i
m₂₁ⁱX + m₂₂ⁱY + m₂₃ⁱZ + m₂₄ⁱ = z_ci·v_i
m₃₁ⁱX + m₃₂ⁱY + m₃₃ⁱZ + m₃₄ⁱ = z_ci
3. 消去z_ci得到投影线方程
4. 多相机联合:得到2n个方程(n为相机数)
5. 线性最小二乘求解P

多相机三维重建、手术导航、工业检测

多视图几何、线性方程组、最小二乘

14

视觉定位

PixLoc算法

输入:稀疏3D模型{P_i},参考图像{I_k},查询图像I_q,初始位姿(R₀,t₀);输出:精确位姿(R,t);变量:特征图F,残差r

1. 特征提取:CNN提取多尺度特征图F_q^l、F_k^l∈ℝ^{W_l×H_l×D_l}
2. 投影计算:p_q^i = π(R·P_i + t)
3. 残差定义:r_k^i = F_q^l[p_q^i] - F_k^l[p_k^i]∈ℝ^D
4. 能量函数:E_l(R,t) = ∑_{i,k} w_k^i·ρ(

r_k^i

15

特征检测

Harris角点检测

输入:图像I;输出:角点位置;参数:窗口大小,k值(通常0.04-0.06)

1. 计算梯度:I_x = ∂I/∂x,I_y = ∂I/∂y
2. 构建结构张量:M = ∑_{window} [I_x² I_xI_y; I_xI_y I_y²]
3. 计算响应函数:R = det(M) - k·trace(M)²
4. 角点判定:R > 阈值T

特征点提取、图像匹配、运动估计

图像梯度、结构张量、特征值分析

16

目标检测

Faster R-CNN

输入:图像;输出:边界框和类别;结构:特征提取网络,RPN,RoI池化,分类回归头

1. 特征提取:CNN提取特征图
2. RPN:在特征图上生成候选区域(anchors)
3. RoI池化:将不同大小的候选区域池化为固定大小
4. 分类和回归:全连接层预测类别和边界框偏移

高精度目标检测、实例识别

区域建议网络、锚框机制、RoI池化

17

图像分割

Mask R-CNN

输入:图像;输出:实例分割掩码;结构:Faster R-CNN + 掩码头

1. 特征提取和RPN同Faster R-CNN
2. RoIAlign:改进的RoI池化,避免量化误差
3. 并行分支:分类/回归分支 + 掩码预测分支
4. 掩码头:FCN预测每个RoI的二进制掩码

实例分割、人像分割、物体分割

RoIAlign、并行预测头、实例分割

18

生成模型

VAE(变分自编码器)

输入:数据x;输出:重构数据x̂;变量:隐变量z,均值μ,方差σ

1. 编码器:q_φ(z

x) = N(z; μ_φ(x), σ_φ²(x))
2. 采样:z = μ + σ⊙ε,ε∼N(0,I)
3. 解码器:p_θ(x

z) = N(x; μ_θ(z), I)或伯努利分布
4. 损失函数:L(θ,φ) = -E_{z∼q_φ}[log p_θ(x

19

三维视觉

结构光三维重建

输入:编码图案序列,相机图像;输出:三维点云;参数:投影仪-相机相对位姿

1. 图案编码:投影一系列编码图案(格雷码、相移等)
2. 解码:从相机图像解码每个像素对应的投影仪坐标
3. 三角测量:根据投影仪-相机几何关系计算三维坐标
4. 点云生成:对所有像素计算三维坐标

工业检测、人脸扫描、文物数字化

图案编码、三角测量、系统标定

20

视觉SLAM

ORB-SLAM

输入:图像序列;输出:相机轨迹,稀疏地图;模块:跟踪、局部建图、闭环检测

1. ORB特征提取和匹配
2. 初始位姿估计:单目使用Homography或Fundamental矩阵,双目/RGB-D使用PnP
3. 局部BA优化:优化局部窗口内的位姿和地图点
4. 闭环检测:基于词袋模型识别回环,进行位姿图优化

机器人导航、增强现实、自动驾驶

特征匹配、BA优化、词袋模型

21

图像增强

直方图均衡化

输入:灰度图像I;输出:增强图像J;变量:直方图h,累积分布函数CDF

1. 计算直方图:h(k) = #{I(x,y)=k}
2. 计算CDF:c(k) = ∑_{i=0}^k h(i)/(M×N)
3. 映射:J(x,y) = round(255·c(I(x,y)))
4. 对于彩色图像,通常在HSV空间的V通道或YCbCr空间的Y通道进行

图像对比度增强、医学图像预处理

直方图分析、概率分布、映射函数

22

形态学操作

腐蚀和膨胀

输入:二值图像B,结构元素S;输出:处理后的图像;参数:结构元素形状和大小

1. 腐蚀:E(x,y) = min{(i,j)∈S} B(x+i, y+j)
2. 膨胀:D(x,y) = max
{(i,j)∈S} B(x+i, y+j)
3. 开运算:先腐蚀后膨胀,消除小物体
4. 闭运算:先膨胀后腐蚀,填充小孔洞

图像去噪、形状分析、目标分离

集合论、结构元素、形态学运算

23

图像滤波

高斯滤波

输入:图像I;输出:平滑图像I_smooth;参数:高斯核大小,标准差σ

1. 生成高斯核:G(x,y) = (1/(2πσ²))exp(-(x²+y²)/(2σ²))
2. 归一化:∑G(x,y)=1
3. 卷积:I_smooth = G * I
4. 可分离性:二维高斯卷积可分解为两个一维卷积

图像去噪、尺度空间构建、预处理

高斯分布、卷积运算、可分离滤波

24

霍夫变换

直线检测

输入:边缘图像E;输出:直线参数集合;参数:ρ和θ的分辨率,投票阈值

1. 参数化:直线表示为ρ=x·cosθ+y·sinθ
2. 累加器:A(ρ,θ)初始为0
3. 投票:对于每个边缘点(x,y),计算所有θ对应的ρ,在A(ρ,θ)上加1
4. 峰值检测:找到A(ρ,θ)大于阈值的峰值
5. 提取直线:每个峰值对应一条直线

车道线检测、文档分析、工业检测

参数空间、投票机制、峰值检测

25

模板匹配

归一化互相关

输入:图像I,模板T;输出:匹配位置(x,y);变量:相关系数R

1. 计算互相关:R(x,y) = ∑{i,j} I(x+i,y+j)·T(i,j)
2. 归一化:R_norm(x,y) = R(x,y)/√(∑I²·∑T²)
3. 寻找最大值:max
{x,y} R_norm(x,y)
4. 阈值判断:R_norm > T_match

目标跟踪、图像配准、质量检测

相关性分析、相似性度量、滑动窗口

26

背景减除

混合高斯模型

输入:视频帧序列;输出:前景掩码;参数:高斯分量数K,学习率α

1. 每个像素建模为K个高斯分布的混合:p(x_t) = ∑_{i=1}^K w_i·N(x_t; μ_i, Σ_i)
2. 匹配:对于新像素值x_t,找到匹配的高斯分布(

x_t-μ_i

<2.5σ_i)
3. 更新:匹配分布的参数更新:w_i←(1-α)w_i+α,μ_i←(1-ρ)μ_i+ρx_t,σ_i²←(1-ρ)σ_i²+ρ(x_t-μ_i)²
4. 未匹配分布:w_i←(1-α)w_i,必要时创建新分布
5. 前景判断:前B个分布(按w_i/σ_i排序)作为背景,其余为前景

27

图像分类

ResNet(残差网络)

输入:图像;输出:类别概率;核心:残差块F(x)+x

1. 残差学习:H(x) = F(x) + x
2. 恒等映射:当F(x)的维度与x不同时,使用1×1卷积调整维度
3. 批量归一化:加速训练,提高稳定性
4. 瓶颈结构:1×1卷积降维→3×3卷积→1×1卷积升维

深度网络训练、图像分类、特征提取

残差连接、梯度消失、网络深度

28

图像分类

MobileNet

输入:图像;输出:类别概率;核心:深度可分离卷积

1. 深度卷积:每个通道单独卷积,D_k×D_k×M
2. 逐点卷积:1×1卷积混合通道,1×1×M×N
3. 计算量对比:标准卷积:D_k×D_k×M×N×D_f×D_f;深度可分离卷积:D_k×D_k×M×D_f×D_f + M×N×D_f×D_f
4. 宽度乘子α和分辨率乘子ρ进一步减少计算量

移动端部署、嵌入式视觉、实时应用

深度可分离卷积、计算效率、模型压缩

29

目标检测

SSD(单次检测器)

输入:图像;输出:多尺度检测结果;结构:多尺度特征图,默认框

1. 基础网络:VGG等提取特征
2. 多尺度特征图:从不同层提取特征用于检测不同大小物体
3. 默认框:每个特征图位置预设不同大小和比例的锚框
4. 预测:每个默认框预测类别得分和位置偏移
5. 匹配策略:使用交并比匹配默认框和真实框

实时多尺度检测、嵌入式系统

多尺度特征、默认框、硬负样本挖掘

30

图像分割

FCN(全卷积网络)

输入:任意大小图像;输出:像素级分类;核心:全卷积,上采样

1. 全卷积:将全连接层转换为卷积层,接受任意大小输入
2. 上采样:使用转置卷积(反卷积)恢复空间分辨率
3. 跳跃连接:融合浅层细节特征和深层语义特征
4. 逐像素损失:对每个像素计算交叉熵损失

语义分割、场景理解

全卷积、转置卷积、像素级预测

31

生成模型

CycleGAN

输入:域A图像,域B图像;输出:跨域转换图像;损失:对抗损失+循环一致性损失

1. 两个生成器:G:A→B,F:B→A
2. 两个判别器:D_A判断是否来自A,D_B判断是否来自B
3. 对抗损失:L_GAN(G,D_B,A,B) = E{b∼B}[log D_B(b)] + E{a∼A}[log(1-D_B(G(a)))]
4. 循环一致性损失:L_cyc(G,F) = E_{a∼A}[

F(G(a))-a

32

三维视觉

Bundle Adjustment

输入:多视图图像,初始三维点和相机位姿;输出:优化后的三维结构和相机位姿;变量:重投影误差

1. 参数化:所有相机位姿{R_i,t_i}和三维点{P_j}
2. 重投影误差:e_ij = p_ij - π(K[R_i

t_i]P_j)
3. 目标函数:min{R,t,P} ∑{i,j} ρ(

33

视觉定位

对极几何

输入:两视图匹配点;输出:基础矩阵F或本质矩阵E;约束:对极约束

1. 对极约束:p₂ᵀ·F·p₁ = 0,其中p₁、p₂为匹配点的齐次坐标
2. 本质矩阵:E = K₂ᵀ·F·K₁,其中K₁、K₂为相机内参
3. 8点法:从8对匹配点线性求解F
4. 归一化:对坐标进行归一化提高数值稳定性
5. 分解:从E分解得到相机运动[R

t]

相对位姿估计、三维重建初始化

34

特征描述

ORB(Oriented FAST and Rotated BRIEF)

输入:图像;输出:关键点和描述子;组合:FAST角点+方向+BRIEF描述子

1. FAST角点检测:检查圆周上的像素,如果连续N个像素比中心亮或暗阈值T,则为角点
2. 方向计算:使用强度质心法计算关键点方向
3. 旋转BRIEF:根据方向旋转BRIEF采样模式
4. 描述子生成:256位二进制字符串,比较采样点对强度

实时特征匹配、SLAM、增强现实

FAST角点、BRIEF描述子、二进制特征

35

图像分割

GrabCut

输入:图像,初始矩形或涂鸦;输出:分割掩码;模型:高斯混合模型+图割

1. 初始化:用户指定前景/背景区域
2. 高斯混合模型:为前景和背景分别建立GMM
3. 图割优化:构建图,节点为像素,边权重基于颜色相似性和空间接近度
4. 能量函数:E = ∑i D(α_i,θ,z_i) + ∑{(i,j)∈N} V(α_i,α_j,z_i,z_j)
5. 迭代优化:交替更新GMM参数和分割结果

交互式图像分割、前景提取

图割算法、高斯混合模型、交互分割

36

目标跟踪

KCF(核相关滤波)

输入:初始目标位置,后续帧;输出:跟踪位置;核心:循环矩阵,核技巧

1. 训练样本生成:通过循环移位生成大量训练样本
2. 岭回归:min_w ∑_i (w·φ(x_i) - y_i)² + λ

w

37

图像分类

Vision Transformer

输入:图像;输出:类别概率;核心:自注意力机制

1. 图像分块:将图像划分为N个16×16 patches
2. 线性投影:将每个patch投影为D维向量
3. 位置编码:添加可学习的位置编码
4. Transformer编码器:多层自注意力+前馈网络
5. 分类头:使用[class] token的输出进行分类

大规模图像分类、多模态学习

自注意力、Transformer、位置编码

38

超分辨率

SRCNN

输入:低分辨率图像;输出:高分辨率图像;结构:三层卷积网络

1. 特征提取:第一层卷积提取特征
2. 非线性映射:第二层卷积进行非线性变换
3. 重建:第三层卷积重建高分辨率图像
4. 损失函数:MSE损失:L(Θ) = 1/n ∑_{i=1}^n

F(Y_i;Θ) - X_i

39

人体姿态估计

OpenPose

输入:图像;输出:人体关键点;方法:部分亲和场+多阶段推理

1. 特征提取:VGG网络提取特征
2. 第一阶段:预测关键点置信度图和部分亲和场
3. 后续阶段:使用前一阶段预测结果细化预测
4. 关联:使用部分亲和场将关键点连接成肢体
5. 多人处理:通过二分图匹配将关键点分组到不同人

人体姿态分析、动作识别、人机交互

部分亲和场、多阶段网络、图匹配

40

三维视觉

点云处理

PointNet

输入:点云{P_i∈ℝ³};输出:全局特征或逐点特征;核心:对称函数

1. 输入变换:通过T-Net学习3×3变换矩阵对齐点云
2. 特征变换:通过另一个T-Net学习特征空间的变换
3. 对称函数:使用max pooling等对称函数处理无序点集
4. 全局特征:h = γ○g(f(x_1),...,f(x_n)),其中g为对称函数,γ为MLP

点云分类、分割、三维理解

41

视觉定位

视觉惯性里程计

VIO算法

输入:图像,IMU数据;输出:相机位姿,速度,偏差;模型:预积分,紧耦合

1. IMU预积分:在图像帧之间积分IMU测量,避免重复积分
2. 状态向量:x = [R, p, v, b_g, b_a]
3. 测量模型:视觉重投影误差 + IMU误差
4. 优化:联合优化视觉和IMU约束
5. 初始化:估计尺度、重力方向、IMU偏差

无人机导航、AR/VR、机器人

42

图像生成

Diffusion模型

输入:噪声,条件;输出:生成图像;过程:前向扩散+反向去噪

1. 前向过程:q(x_t

x{t-1}) = N(x_t; √(1-β_t)x{t-1}, β_tI)
2. 反向过程:p_θ(x_{t-1}

x_t) = N(x{t-1}; μ_θ(x_t,t), Σ_θ(x_t,t))
3. 训练目标:简化损失L_simple = E
{t,x_0,ε}[

43

多模态学习

CLIP

输入:图像,文本;输出:相似度分数;训练:对比学习

1. 图像编码器:ViT或ResNet提取图像特征
2. 文本编码器:Transformer提取文本特征
3. 对比损失:L = 1/2N [∑i log(exp(I_i·T_i/τ)/∑j exp(I_i·T_j/τ)) + ∑i log(exp(T_i·I_i/τ)/∑j exp(T_i·I_j/τ))]
4. 零样本推理:计算图像特征与所有文本提示特征的相似度

零样本分类、多模态检索

对比学习、多模态、零样本学习

44

目标检测

DETR

输入:图像;输出:检测结果;核心:Transformer+二分图匹配

1. 特征提取:CNN提取特征图
2. Transformer编码器-解码器:处理特征,生成N个对象查询
3. 预测头:每个对象查询预测类别和边界框
4. 二分图匹配:使用匈牙利算法匹配预测和真实框
5. 损失:L = λ_cls·L_cls + λ_L1·L_L1 + λ_giou·L_giou

端到端目标检测、无需NMS

Transformer、二分图匹配、集合预测

45

图像分割

DeepLab系列

输入:图像;输出:分割掩码;技术:空洞卷积,ASPP,CRF

1. 空洞卷积:扩大感受野而不降低分辨率
2. ASPP:多尺度空洞卷积并行处理
3. 编码器-解码器:DeepLabv3+加入解码器细化边界
4. 条件随机场:后处理细化分割边界(早期版本)

语义分割、场景解析

空洞卷积、多尺度、空间金字塔

46

三维视觉

立体匹配

SGM(半全局匹配)

输入:校正后的立体图像对;输出:视差图;方法:路径聚合+平滑约束

1. 代价计算:C(p,d) =

I_left(p) - I_right(p-d)

47

视觉定位

视觉重定位

NetVLAD

输入:图像;输出:全局描述子;核心:VLAD聚合+可学习聚类中心

1. 局部特征:CNN提取局部特征{f_i∈ℝ^D}
2. 软分配:a_k(f_i) = exp(-α

48

图像分类

EfficientNet

输入:图像;输出:类别概率;方法:复合缩放

1. 基线网络:通过神经架构搜索得到
2. 复合缩放:同时缩放深度(d)、宽度(w)、分辨率(r):depth = α^φ, width = β^φ, resolution = γ^φ,约束α·β²·γ²≈2,α≥1,β≥1,γ≥1
3. 缩放系数:φ为用户定义的系数,控制模型大小
4. 平衡:通过网格搜索找到最优的α,β,γ

高效图像分类、模型缩放

复合缩放、神经架构搜索、模型效率

49

目标跟踪

DeepSORT

输入:视频帧,检测结果;输出:跟踪轨迹;组件:检测+特征提取+关联

1. 检测:YOLO等检测器提供边界框
2. 特征提取:CNN提取每个检测的外观特征
3. 卡尔曼滤波:预测目标位置和速度
4. 关联:使用马氏距离和外观特征的加权和进行数据关联
5. 轨迹管理:处理新目标出现、消失、遮挡

多目标跟踪、行人跟踪、交通监控

卡尔曼滤波、数据关联、外观特征

50

视觉定位

视觉SLAM前端

特征点法SLAM

输入:图像序列;输出:特征点,初始位姿;流程:特征提取,匹配,位姿估计

1. 特征提取:ORB/SIFT等提取关键点和描述子
2. 特征匹配:描述子匹配或光流跟踪
3. 位姿估计:2D-2D使用对极几何,2D-3D使用PnP,3D-3D使用ICP
4. 三角测量:从多视图恢复三维点
5. 局部地图:维护局部地图点用于跟踪

SLAM前端、视觉里程计、实时定位

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

51

图像去噪

非局部均值去噪

输入:噪声图像I;输出:去噪图像J;参数:搜索窗口大小,相似块大小,滤波参数h

1. 对于每个像素i,计算其邻域块(相似块)与图像中其他像素j的邻域块的相似性权重:w(i,j) = exp(-

N_i - N_j

52

图像配准

基于互信息的配准

输入:参考图像R,浮动图像F;输出:变换参数θ;目标:最大化互信息

1. 定义互信息:MI(R, F∘T_θ) = H(R) + H(F∘T_θ) - H(R, F∘T_θ),其中H为熵
2. 联合熵:H(R, F∘T_θ) = -∑_{r,f} p(r, f) log p(r, f)
3. 优化问题:θ* = argmax_θ MI(R, F∘T_θ)
4. 使用梯度下降或牛顿法求解,需计算互信息关于θ的梯度

多模态图像配准(如MRI-CT配准)

信息论、互信息、优化算法

53

图像分割

水平集方法

输入:图像I;输出:分割曲线C;变量:水平集函数φ,力函数F

1. 将曲线C表示为水平集函数φ的零水平集:C = {(x,y)

φ(x,y)=0}
2. 演化方程:∂φ/∂t = F

∇φ

54

特征检测

MSER(最大稳定极值区域)

输入:灰度图像I;输出:区域集合;参数:灰度阈值变化范围Δ

1. 将图像二值化,阈值从0到255变化
2. 记录每个阈值下的连通区域
3. 计算每个区域的稳定性:q(i) =

Q{i+Δ} - Q{i-Δ}

/

55

三维视觉

泊松表面重建

输入:点云及其法向量;输出:隐式表面函数;核心:泊松方程

1. 构建指示函数χ,在物体内部为1,外部为0
2. 计算梯度场:V = ∇χ,用点云法向量近似
3. 求解泊松方程:Δχ = ∇·V,其中Δ为拉普拉斯算子
4. 提取等值面:χ=0.5的表面即为重建表面

点云表面重建、三维建模

泊松方程、隐式表面、等值面提取

56

目标检测

RetinaNet

输入:图像;输出:边界框和类别;核心:Focal Loss解决类别不平衡

1. 特征金字塔网络(FPN)提取多尺度特征
2. 每个尺度上使用两个子网络:分类子网(预测类别概率)和回归子网(预测边界框偏移)
3. Focal Loss:FL(p_t) = -α_t(1-p_t)^γ log(p_t),其中p_t为模型估计的概率,γ>0减少易分类样本的损失贡献,α_t平衡正负样本
4. 训练时使用Focal Loss替代交叉熵损失

密集目标检测、类别不平衡场景

特征金字塔、Focal Loss、Anchor机制

57

图像生成

StyleGAN

输入:潜在向量z;输出:生成图像;核心:风格迁移,AdaIN

1. 映射网络:将z映射为中间潜在向量w
2. 合成网络:由一系列风格块组成,每个块包含卷积、噪声注入和AdaIN
3. AdaIN操作:AdaIN(x_i, y) = y{s,i} (x_i - μ(x_i))/σ(x_i) + y{b,i},其中y由w通过全连接层生成
4. 噪声注入:添加逐像素噪声增加细节
5. 风格混合:使用不同的w控制不同层次的风格

高分辨率人脸生成、风格编辑

生成对抗网络、自适应实例归一化、风格控制

58

视频分析

光流法

输入:相邻帧I_t, I_{t+1};输出:光流场(u,v);假设:亮度恒定,小运动,空间一致

1. 亮度恒定:I(x+u, y+v, t+1) = I(x,y,t)
2. 一阶泰勒展开:I(x+u,y+v,t+1) ≈ I(x,y,t) + I_x u + I_y v + I_t
3. 得到光流方程:I_x u + I_y v + I_t = 0
4. Lucas-Kanade方法:假设局部窗口内运动一致,通过最小二乘法求解(u,v)
5. Horn-Schunck方法:引入平滑约束,最小化能量函数:∫∫(I_x u+I_y v+I_t)² + λ(u_x²+u_y²+v_x²+v_y²) dxdy

运动估计、视频压缩、动作识别

光流方程、亮度恒定假设、平滑约束

59

图像增强

暗通道先验去雾

输入:有雾图像I;输出:去雾图像J;先验:户外无雾图像的暗通道接近于0

1. 暗通道定义:J_dark(x) = min{y∈Ω(x)} (min{c∈{r,g,b}} J^c(y)),其中Ω(x)为局部窗口
2. 先验:对于无雾图像J,J_dark接近0
3. 大气散射模型:I(x) = J(x)t(x) + A(1-t(x)),其中A为大气光,t为透射率
4. 估计大气光A:取暗通道中最亮的前0.1%像素对应在I中的最大值
5. 估计透射率:t(x) = 1 - ω min_{y∈Ω(x)}(min_c I^c(y)/A^c),其中ω为保留雾的参数(通常0.95)
6. 恢复去雾图像:J(x) = (I(x) - A)/max(t(x), t0) + A,其中t0为下限(如0.1)

图像去雾、户外图像增强

暗通道先验、大气散射模型、图像恢复

60

图像分割

Mean Shift分割

输入:图像I;输出:分割区域;参数:空间带宽h_s,颜色带宽h_r,最小区域大小

1. 将图像转换为特征空间:每个像素表示为(x,y,L,a,b)或(x,y,R,G,B)
2. Mean Shift迭代:对于每个点,计算其邻域内点的均值,移动到该均值,重复直到收敛
3. 合并收敛到相同模式的点
4. 去除小区域:合并小于最小区域大小的区域

图像分割、颜色聚类、目标跟踪

均值漂移、核密度估计、模式寻找

61

三维重建

运动恢复结构

运动恢复结构(SfM)

输入:多视角图像序列;输出:相机位姿和稀疏三维点云;流程:特征提取、匹配、三角测量、BA优化

1. 特征提取与匹配:提取SIFT等特征并匹配
2. 增量重建:初始化两视图,三角测量初始点云,PnP增加新视图,三角测量新点
3. 光束法平差(BA):最小化重投影误差:min∑i∑j

62

视觉定位

直接法视觉里程计

直接法VO(如LSD-SLAM)

输入:图像序列;输出:相机位姿,深度图;方法:最小化光度误差

1. 光度误差:E(ξ) = ∑_i[I_ref(p_i) - I(ω(p_i, D_ref(p_i), ξ))]²,其中ξ为相机位姿李代数,ω为映射函数
2. 使用高斯牛顿法或LM法求解:min_ξ E(ξ)
3. 深度估计:沿极线搜索最小光度误差
4. 深度图正则化:空间正则化获得平滑深度图

视觉里程计、RGB-D SLAM

63

人脸识别

人脸关键点检测

人脸关键点检测(如SDM)

输入:人脸图像;输出:关键点坐标;方法:级联回归

1. 初始化:平均形状作为初始关键点位置
2. 特征提取:围绕当前关键点提取特征(如SIFT、HOG)
3. 回归预测:学习回归器R_k预测形状增量:Δx_k = R_k(Φ(x{k-1}))
4. 更新形状:x_k = x
{k-1} + Δx_k
5. 多级级联:重复2-4步直至收敛

人脸对齐、表情分析、人脸识别预处理

64

图像分类

SENet(Squeeze-and-Excitation Networks)

输入:特征图U∈ℝ^{H×W×C};输出:重标定特征图Ũ;核心:通道注意力

1. Squeeze:全局平均池化得到通道统计z_c = 1/(H×W) ∑{i=1}^H ∑{j=1}^W u_c(i,j)
2. Excitation:通过两个全连接层学习通道权重s = σ(W_2δ(W_1z)),其中δ为ReLU,σ为sigmoid
3. 重标定:Ũ_c = s_c·U_c
4. 可插入到现有网络结构中(如ResNet)

图像分类、通道注意力、网络架构设计

注意力机制、通道重标定、网络设计

65

目标检测

FCOS(全卷积单阶段检测器)

输入:图像;输出:边界框和类别;方法:逐像素预测,无锚框

1. 特征金字塔提取多尺度特征
2. 每个位置预测类别概率、中心度(center-ness)和到边界框四边的距离(l,t,r,b)
3. 中心度:c = √(min(l,r)/max(l,r) × min(t,b)/max(t,b)),用于抑制低质量检测
4. 损失函数:L = L_cls + λ_reg L_reg + λ_ctr L_ctr
5. 后处理:NMS去除重复检测

无锚框目标检测、密集预测

全卷积、中心度、无锚框检测

66

图像分割

SegNet

输入:图像;输出:分割掩码;结构:编码器-解码器,池化索引传递

1. 编码器:卷积+批归一化+ReLU+最大池化,记录池化索引
2. 解码器:上采样(使用池化索引)+卷积+批归一化+ReLU
3. 最终卷积:得到每个像素的类别概率
4. 损失函数:交叉熵损失

语义分割、实时分割

编码器-解码器、池化索引、上采样

67

三维视觉

三维目标检测

基于点云的三维检测(如PointPillars)

输入:点云;输出:三维边界框;方法:将点云转换为伪图像,使用2D CNN检测

1. 点云体素化:将点云划分为柱状体(pillars)
2. 特征提取:每个点转换为9维特征,每个pillar内点特征通过最大池化得到C维特征
3. 伪图像:将pillar特征投影到伪图像网格
4. 2D CNN:使用SSD等检测头预测三维边界框(包括中心、尺寸、方向)
5. 损失函数:包含类别分类、边界框回归、方向分类损失

自动驾驶、三维目标检测

68

视觉定位

视觉惯性里程计

预积分视觉惯性里程计

输入:图像,IMU数据;输出:相机位姿,速度,偏差;方法:IMU预积分,紧耦合优化

1. IMU预积分:在相邻图像帧之间积分IMU测量,得到相对运动增量,避免重复积分
2. 状态向量:x = [R, v, p, b_g, b_a]
3. 测量模型:视觉重投影误差 + IMU预积分误差
4. 优化:最小化误差函数:min∑_k

69

图像生成

自编码器

输入:数据x;输出:重构数据x̂;结构:编码器,解码器

1. 编码器:z = f_θ(x) = σ(Wx + b)
2. 潜在表示:z为低维特征
3. 解码器:x̂ = g_φ(z) = σ(W'z + b')
4. 损失函数:重构误差L(θ,φ) =

x - x̂

70

目标跟踪

MOSSE(Minimum Output Sum of Squared Error)滤波器

输入:初始目标区域,后续帧;输出:目标位置;方法:相关滤波

1. 训练:H* = (G ⊙ F) / (F ⊙ F+ λ),其中F为输入图像傅里叶变换,G为期望输出(高斯形状),λ为正则化参数
2. 检测:在下一帧计算响应图R = FFT^{-1}(H* ⊙ F')
3. 目标位置:响应最大处
4. 模型更新:H_new = (1-η)H_old + ηH_current

视觉目标跟踪、相关滤波

相关滤波、傅里叶变换、在线更新

71

图像增强

自动白平衡

输入:原始图像I;输出:白平衡后图像I_wb;方法:灰度世界假设

1. 灰度世界假设:场景中平均反射光为灰色
2. 计算每个通道的均值:μ_R, μ_G, μ_B
3. 计算增益:k_R = μ_G/μ_R, k_B = μ_G/μ_B
4. 调整:I_wb(R) = k_R·I(R), I_wb(G) = I(G), I_wb(B) = k_B·I(B)
5. 可结合其他方法如完美反射法

图像增强、颜色校正

白平衡、颜色恒常性、灰度世界

72

三维视觉

表面重建

移动立方体算法(Marching Cubes)

输入:体数据(如CT扫描);输出:三角网格;参数:等值面阈值

1. 将体数据划分为立方体网格
2. 对每个立方体,根据8个顶点的值与阈值的比较确定内部配置(共256种情况)
3. 查表获得三角剖分方式
4. 线性插值计算等值面与立方体边的交点
5. 生成三角网格

医学图像三维重建、等值面提取

73

特征描述

BRIEF(Binary Robust Independent Elementary Features)

输入:图像块;输出:二进制描述子;方法:强度比较

1. 平滑图像块
2. 预定义采样点对:S = {(p1, p2)i}, i=1,...,n
3. 对每个采样点对比较强度:τ(p1, p2) = 1 if I(p1) < I(p2) else 0
4. 组成n位二进制字符串:f = ∑
{i=1}^n 2^{i-1} τ(p1_i, p2_i)
5. 常用n=256

实时特征匹配、SLAM

二进制描述子、强度比较、汉明距离

74

图像分类

DenseNet

输入:图像;输出:类别概率;结构:密集连接

1. 密集块:每层的输入是前面所有层输出的拼接:x_l = H_l([x_0, x_1, ..., x_{l-1}]),其中H_l为复合函数(BN-ReLU-Conv)
2. 过渡层:卷积+池化,减少特征图尺寸和通道数
3. 全局平均池化+全连接分类
4. 优点:特征重用,减轻梯度消失

图像分类、特征提取

密集连接、特征重用、参数效率

75

目标检测

CenterNet

输入:图像;输出:中心点、尺寸、偏移;方法:基于关键点检测

1. 骨干网络提取特征图
2. 中心点热图:预测每个类别的中心点热图,使用高斯核生成监督信号
3. 尺寸预测:预测每个中心点对应的宽高
4. 偏移预测:补偿下采样带来的量化误差
5. 损失函数:L = L_k + λ_size L_size + λ_off L_off

实时目标检测、无锚框检测

关键点检测、热图、中心点预测

76

图像分割

条件随机场(CRF)

输入:图像I,一元势能(如CNN输出);输出:分割标签;能量函数:一元势能+二元势能

1. 能量函数:E(x) = ∑i ψ_u(x_i) + ∑{i<j} ψ_p(x_i, x_j)
2. 一元势能:ψ_u(x_i) = -log P(x_i

I),通常来自CNN输出
3. 二元势能:ψ_p(x_i, x_j) = μ(x_i, x_j) k(f_i, f_j),其中k为高斯核,基于颜色和位置相似性
4. 推断:使用平均场近似或图割最小化能量

语义分割后处理、图像标注

77

三维视觉

点云配准

正态分布变换(NDT)

输入:源点云P,目标点云Q;输出:变换矩阵(R,t);方法:将目标点云建模为正态分布

1. 将目标点云划分为体素网格
2. 对每个体素内的点拟合正态分布:均值q,协方差Σ
3. 对于当前变换下的源点p,其落在某个体素的概率:p(p) = exp(-(p-q)^T Σ^{-1} (p-q)/2)
4. 目标函数:最大化似然,即最小化负对数似然:-∑_i log(p(T(p_i)))
5. 使用牛顿法优化变换参数

点云配准、激光雷达SLAM

78

视觉定位

视觉SLAM后端

位姿图优化

输入:位姿节点,边约束;输出:优化后的位姿;图模型:节点为位姿,边为相对位姿约束

1. 位姿图:节点x_i表示位姿,边z_ij表示测量(相对位姿)
2. 误差函数:e_ij = z_ij ⊖ (x_i^{-1} x_j),其中⊖为李代数上的差
3. 目标函数:min{x} ∑{ij} e_ij^T Ω_ij e_ij,其中Ω_ij为信息矩阵
4. 使用高斯牛顿法或列文伯格-马夸尔特法求解

SLAM后端、闭环检测

79

图像分类

Inception网络

输入:图像;输出:类别概率;结构:多分支卷积并行

1. Inception模块:并行1×1、3×3、5×5卷积和池化,然后拼接
2. 1×1卷积用于降维,控制计算量
3. 辅助分类器:训练时中间层添加辅助分类损失,缓解梯度消失
4. 全局平均池化代替全连接层,减少参数

图像分类、网络设计

多尺度、并行卷积、1×1卷积

80

目标检测

可变形卷积

输入:特征图;输出:变形特征图;方法:学习采样偏移

1. 常规卷积:y(p0) = ∑{pn∈R} w(pn)·x(p0+pn),其中R为常规网格
2. 可变形卷积:y(p0) = ∑
{pn∈R} w(pn)·x(p0+pn+Δpn),其中Δpn为学习到的偏移量
3. 偏移学习:从输入特征图通过卷积学习偏移场,与输入特征空间分辨率相同,通道数为2N(N为采样点数)
4. 双线性插值:由于偏移Δpn可能为小数,使用双线性插值计算x(p0+pn+Δpn)

目标检测、语义分割

可变形卷积、空间变换、自适应感受野

81

图像分割

DeepLabv3+

输入:图像;输出:分割掩码;结构:编码器-解码器,ASPP,深度可分离卷积

1. 编码器:通过带空洞卷积的ResNet提取特征,使用ASPP捕获多尺度信息
2. 解码器:融合编码器低级特征和ASPP输出,逐步上采样恢复分辨率
3. 深度可分离卷积:减少计算量
4. 损失函数:交叉熵损失,可结合dice loss等

语义分割、实时分割

空洞空间金字塔、编码器-解码器、深度可分离卷积

82

三维视觉

三维点云分割

PointNet++

输入:点云;输出:点级别标签;方法:层次化点集学习

1. 采样层:最远点采样选择中心点
2. 分组层:球查询或K近邻构建局部区域
3. PointNet层:对每个局部区域使用小型PointNet提取特征
4. 层次化特征传播:通过插值和跳跃连接传播特征
5. 分割头:MLP输出每个点的类别

点云分割、三维场景理解

83

视觉定位

视觉里程计

直接稀疏里程计(DSO)

输入:图像序列;输出:相机位姿,稀疏深度图;方法:直接法,联合优化

1. 光度误差:E = ∑_{i∈obs(p)} w_p

84

图像分类

Swin Transformer

输入:图像;输出:类别概率;核心:滑动窗口,分层设计

1. 图像分块:将图像划分为4×4 patches,每个patch为4×4×3=48维,线性嵌入为C维
2. Swin Transformer块:基于窗口的多头自注意力(W-MSA)和移位窗口多头自注意力(SW-MSA)
3. 分层设计:通过patch merging逐步下采样,形成金字塔特征
4. 相对位置编码:在自注意力中添加相对位置偏置

图像分类、目标检测、分割

滑动窗口、层次化Transformer、相对位置编码

85

目标检测

YOLOv4

输入:图像;输出:边界框和类别;改进:CSPDarknet53, PANet, SAM

1. 骨干网络:CSPDarknet53提取特征
2. 颈部:SPP(空间金字塔池化)和PANet(路径聚合网络)融合多尺度特征
3. 头部:YOLOv3检测头
4. 训练技巧:Mosaic数据增强,CmBN,SAT自对抗训练等
5. 损失函数:CIoU Loss,分类损失用二元交叉熵

实时目标检测、多尺度检测

CSPNet、PANet、SPP、数据增强

86

图像生成

BigGAN

输入:噪声z,类别标签c;输出:生成图像;核心:大规模训练,条件生成

1. 条件生成:将类别信息c通过嵌入层输入生成器和判别器
2. 谱归一化:稳定判别器训练
3. 正交正则化:提高生成器条件
4. 截断技巧:在测试时缩小噪声分布,提高生成质量但降低多样性
5. 大规模训练:在大型数据集(如ImageNet)上使用大批量训练

大规模图像生成、条件生成

条件GAN、谱归一化、正交正则化

87

视觉定位

视觉惯性SLAM

VINS-Mono

输入:单目图像,IMU数据;输出:相机轨迹,地图;方法:紧耦合,滑动窗口优化

1. 测量预处理:特征跟踪,IMU预积分
2. 初始化:松耦合初始化,视觉SFM与IMU对齐
3. 紧耦合滑动窗口优化:状态向量包括滑动窗口内的位姿、速度、偏差、特征逆深度,优化视觉重投影误差和IMU误差
4. 闭环检测:基于DBoW2,4自由度位姿图优化

单目视觉惯性SLAM、移动设备定位

88

图像分割

Mask R-CNN

输入:图像;输出:实例分割掩码;扩展自Faster R-CNN

1. 骨干网络:ResNet-FPN提取多尺度特征
2. RPN:生成候选区域
3. RoIAlign:精确对齐特征,避免量化误差
4. 并行头:分类头、回归头、掩码头(FCN)
5. 掩码头:对每个RoI预测二进制掩码

实例分割、目标检测

RoIAlign、FPN、并行头

89

三维视觉

神经渲染

神经辐射场(NeRF)

输入:相机位姿,视角方向;输出:RGB图像;模型:MLP表示场景

1. 位置编码:将空间位置和视角方向编码到高频空间
2. MLP:输入编码后的位置和方向,输出体密度和RGB颜色
3. 体渲染:沿相机光线积分,通过分层采样和重要性采样提高效率
4. 优化:最小化渲染图像与真实图像的误差

新颖视角合成、三维重建

90

目标检测

EfficientDet

输入:图像;输出:边界框和类别;核心:EfficientNet骨干,BiFPN

1. 骨干网络:EfficientNet提取多尺度特征
2. BiFPN:双向特征金字塔网络,加权融合多尺度特征
3. 复合缩放:同时缩放骨干网络、BiFPN和预测网络
4. 检测头:类别预测和边界框回归

高效目标检测、模型缩放

EfficientNet、BiFPN、复合缩放

91

图像分类

ConvNeXt

输入:图像;输出:类别概率;设计:现代化卷积网络

1. 宏观设计:类似Swin Transformer的分阶段设计,逐步下采样
2. 反瓶颈设计:每个块使用深度卷积和逐点卷积,类似Inverted Residual
3. 大卷积核:使用7×7深度卷积
4. 微观设计:GELU激活函数,更少的激活函数和归一化层,单独的下采样层

图像分类、现代化CNN

卷积网络设计、反瓶颈、大卷积核

92

视觉定位

基于学习的视觉定位

PoseNet

输入:图像;输出:相机位姿(位置和方向);方法:端到端回归

1. 骨干网络:GoogleNet或ResNet提取特征
2. 全连接层:回归位置向量p和四元数q
3. 损失函数:L =

93

图像增强

对比度受限自适应直方图均衡化(CLAHE)

输入:图像I;输出:增强图像J;参数:块大小,对比度限制阈值

1. 将图像分为多个不重叠的块
2. 对每个块计算直方图
3. 裁剪直方图:将超过对比度限制的部分重新分配到所有灰度级
4. 直方图均衡化:对每个块进行均衡化
5. 双线性插值:避免块效应

医学图像增强、低对比度图像

自适应直方图均衡化、对比度限制

94

三维视觉

深度补全

基于CNN的深度补全

输入:稀疏深度图,RGB图像;输出:稠密深度图;方法:多模态融合

1. 编码器:分别处理RGB图像和稀疏深度图,提取特征
2. 融合:在特征层面融合RGB和深度特征
3. 解码器:上采样恢复稠密深度图
4. 损失函数:L1或L2损失,可结合梯度损失

深度补全、三维重建

95

目标跟踪

SiamFC(全卷积孪生网络)

输入:模板图像z,搜索区域x;输出:响应图;方法:孪生网络

1. 孪生网络:共享权重的卷积网络φ提取特征
2. 互相关:f(z,x) = φ(z) * φ(x) + b,其中*为互相关操作,b为偏置
3. 响应图:表示模板在搜索区域各个位置的相似度
4. 训练:使用逻辑损失,正负样本对训练

视觉目标跟踪、孪生网络

孪生网络、互相关、响应图

96

图像分割

条件随机场as RNN

输入:CNN输出(一元势能),图像;输出:细化分割;方法:将CRF表示为RNN

1. 高斯核的CRF能量函数可分解为多个卷积运算
2. 将均值场推断迭代展开为RNN步骤
3. 每个步骤包括消息传递、兼容性变换、一元添加等操作
4. 可与CNN端到端训练

语义分割、CRF与CNN结合

CRF、RNN、端到端训练

97

三维视觉

点云分类

PointNet

输入:点云{pi∈ℝ³};输出:全局特征或逐点特征;核心:对称函数

1. 输入变换:通过T-Net学习3×3变换矩阵对齐点云
2. 特征变换:通过另一个T-Net学习特征空间的变换
3. 对称函数:使用max pooling等对称函数处理无序点集
4. 分类网络:全局特征通过MLP输出类别分数
5. 分割网络:结合全局特征和局部特征输出逐点标签

点云分类、分割

98

视觉定位

视觉里程计

半直接视觉里程计(SVO)

输入:图像序列;输出:相机位姿,深度图;方法:稀疏直接法

1. 特征提取:在关键帧提取FAST角点
2. 稀疏模型:仅对特征点建立深度滤波器
3. 直接法跟踪:通过最小化光度误差估计相机运动
4. 深度估计:通过多个视角三角测量,使用深度滤波器(如高斯-均匀混合模型)估计深度
5. 重定位:当跟踪失败时,通过词袋模型重定位

快速视觉里程计、无人机

99

图像分类

数据增强

MixUp

输入:图像x_i, x_j,标签y_i, y_j;输出:增强图像x̂,标签ŷ;方法:线性插值

1. 随机选择两个样本(x_i, y_i)和(x_j, y_j)
2. 生成混合系数λ ~ Beta(α, α),α为超参数
3. 混合图像:x̂ = λx_i + (1-λ)x_j
4. 混合标签:ŷ = λy_i + (1-λ)y_j
5. 使用混合后的数据训练模型

正则化、数据增强、图像分类

100

目标检测

可变形注意力

输入:查询q,参考点p,特征图x;输出:注意力值;方法:可变形注意力模块

1. 采样偏移:Δp = W_q q,其中W_q为可学习权重
2. 采样:在参考点p+Δp处采样特征,使用双线性插值
3. 注意力权重:通过查询q和可学习权重计算
4. 加权求和:输出 = ∑_k A_k · x(p + Δp_k),其中A_k为注意力权重

可变形DETR、视觉Transformer

可变形注意力、参考点、采样偏移

计算机视觉及多维视觉定位模型/算法/方程式列表 (1-10, 增强版)

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

1

边缘检测

Canny边缘检测算法

输入: 灰度图像 I(x,y)∈RH×W。
输出: 二值边缘图 E(x,y)∈{0,1}H×W。
核心参数
- 高斯滤波核大小 k(奇数, 如3, 5) 和标准差 σ。
- 高阈值 Thigh​和低阈值 Tlow​(通常 Tlow​≈0.4×Thigh​)。
中间变量
- 平滑图像 Ismooth​。
- 水平梯度 Gx​和垂直梯度 Gy​(常用Sobel, Prewitt, Scharr算子)。
- 梯度幅值 G=Gx2​+Gy2​​。
- 梯度方向 θ=arctan2(Gy​,Gx​)(值域 [−π,π]) , 量化为4个主方向 (0°, 45°, 90°, 135°)。

1. 噪声抑制 (高斯滤波)
Ismooth​=Gσ​∗I, 其中 Gσ​(x,y)=2πσ21​exp(−2σ2x2+y2​)。
2. 梯度计算
使用卷积核计算梯度, 如Sobel算子:
Kx​=​−1−2−1​000​+1+2+1​​,Ky​=KxT​
Gx​=Kx​∗Ismooth​,Gy​=Ky​∗Ismooth​。
3. 梯度幅值与方向
G=Gx2​+Gy2​​, θ=arctan2(Gy​,Gx​)。
4. 非极大值抑制 (NMS)
对于每个像素, 沿其梯度方向 θ比较中心像素 Gc​与两侧像素 G+​和 G−​的幅值。 如果 Gc​不是三者中最大, 则将其抑制 (Gc​=0)。 两侧像素位置通过插值获得 (如双线性插值)。
5. 双阈值检测与滞后连接
- 强边缘: G>Thigh​。
- 弱边缘: Tlow​<G≤Thigh​。
- 非边缘: G≤Tlow​。
从任一强边缘像素出发, 递归地将其8邻域内的弱边缘像素标记为强边缘, 实现边缘连接。 最终, 所有强边缘像素构成输出 E。

自动驾驶车道线检测、 工业零件轮廓提取、 图像分割预处理、 文档扫描

图像滤波、 梯度算子、 插值、 连通域分析

参数配置
- 高斯核: k和 σ越大, 图像越平滑, 噪声抑制越好, 但边缘可能模糊。 常用 k=5,σ=1.4。 可使用可分离卷积加速。
- 阈值: 自适应阈值 (如Otsu法、 基于梯度幅值直方图) 优于固定阈值。 高阈值通常设置为梯度幅值图像中前 X%(如30%) 的像素值。
实现细节
- 梯度计算: 使用Scharr算子 (​−3−10−3​000​+3+10+3​​) 比Sobel在旋转对称性上更优。
- NMS: 方向量化到4个区间。 插值时, 可使用更精确的双线性插值比较, 而非简单的最近邻比较, 精度更高。
- 滞后连接: 使用队列(BFS)或栈(DFS)进行种子填充, 避免递归导致栈溢出。
优化技巧
- 性能: 1) 积分图像加速高斯滤波。 2) 使用查找表(LUT)替代复杂的 ​和 arctan计算。 3) 并行化: 梯度计算、 NMS、 连接均可并行。
- 精度: 1) 在NMS前可对梯度幅值进行直方图均衡化, 增强弱边缘。 2) 使用多尺度策略: 在不同σ下检测边缘, 再融合。

2

特征点检测

SIFT (尺度不变特征变换)

输入: 灰度图像 I。
输出: 关键点列表 K={ki​}, 每个关键点包含: 位置 (x,y)、 尺度 σ、 主方向 θ、 128维描述子向量 d∈R128。
核心参数
- 高斯金字塔组数 O和每层层数 S(通常 S=3)。
- 初始尺度 σ0​, 尺度倍增因子 k=21/S。
- DoG极值检测的邻域大小 (通常3×3×3)。
- 描述子区域大小、 网格数、 方向直方图bin数。
中间变量
- 高斯金字塔 L(x,y,σ)。
- DoG金字塔 D(x,y,σ)=L(x,y,kσ)−L(x,y,σ)。
- 尺度空间极值点候选。

1. 构建尺度空间
第 o组, 第 s层的图像由基础图像 I经高斯模糊得到:
L(x,y,σo,s​)=G(x,y,σo,s​)∗I(x,y), 其中 σo,s​=σ0​⋅2o+s/S。 每组最上层图像下采样2倍作为下一组基础图像。
2. 计算DoG金字塔
D(x,y,σo,s​)=L(x,y,σo,s+1​)−L(x,y,σo,s​)。
3. 极值点检测
在 D中, 将每个像素与其在尺度空间上的26个邻居 (同层8个+上下层各9个) 比较, 如果是极大值或极小值, 则作为候选关键点。
4. 关键点精确定位
在候选点处对 D进行三维泰勒展开, 求其亚像素级偏移 x^=−(∂x2∂2D​)−1∂x∂D​。 如果偏移量大于0.5, 则移动到新位置迭代。 最后计算 D(x^), 若其绝对值小于对比度阈值 (如0.03), 则剔除 (低对比度)。 计算该点处的Hessian矩阵, 若边缘响应过强 (主曲率比大于阈值, 如10), 则剔除 (边缘点)。
5. 方向分配
在关键点所在高斯图像 L的邻域内, 计算每个像素的梯度幅值 m和方向 ϕ, 加权累加到36bin的方向直方图中 (权重为 m和高斯窗口)。 取直方图峰值为主方向, 大于峰值80%的局部峰值作为辅方向, 生成多方向关键点。
6. 描述子生成
将关键点邻域旋转至主方向。 划分4×4的子区域, 在每个子区域内计算8方向的梯度方向直方图, 共4×4×8=128维。 进行归一化、 阈值截断 (如0.2)、 再归一化, 增强光照不变性。

图像配准、 全景拼接、 物体识别、 三维重建、 增强现实

尺度空间理论、 高斯差分、 泰勒展开、 曲率计算、 梯度直方图

参数配置
- 金字塔: O通常覆盖图像尺寸能下采样到约8像素为止。 S通常为3。 初始 σ0​=1.6是平衡模糊与后续下采样的经验值。
- 关键点过滤: 对比度阈值经验值0.03 (对于归一化到[0,1]的图像)。 边缘阈值通常10-15。
实现细节
- 高斯模糊: 可分离卷积加速。 构建金字塔时, 复用模糊结果以减少计算。
- DoG计算: 直接存储 D而非重复计算差分。
- 方向与描述子: 使用插值将梯度分配到相邻的bin和子区域, 提高稳定性。 旋转邻域时使用双线性插值。
优化技巧
- 性能: 1) 使用积分图像近似高斯卷积 (快速但不精确)。 2) 在低分辨率图像上检测关键点, 在高分辨率上计算描述子。 3) 使用SURF (积分图像+Haar小波) 作为快速近似替代。
- 精度与鲁棒性: 1) 使用RootSIFT (对描述子取平方根) 提升匹配性能。 2) 增加描述子维度 (如PCA-SIFT) 或在学习描述子 (如HardNet)。

3

特征匹配

RANSAC (随机抽样一致)

输入: 匹配点对集合 M={(pi​,qi​)}, 其中 pi​,qi​∈R2。
输出: 模型参数 H(如单应性矩阵 3×3), 内点集合 I⊆M。
核心参数
- 内点阈值 ϵ(重投影误差像素距离)。
- 置信度 P(如0.99)。
- 内点比例 w的初始估计或自适应。
中间变量
- 样本集 S。
- 模型假设 H。
- 内点集 Itemp​。

1. 确定迭代次数
设从数据中随机选取一个点为内点的概率为 w, 则选取 n个点均为内点的概率为 wn。 至少有一次采样全为内点的概率需达到 P, 因此最大迭代次数 N=log(1−wn)log(1−P)​。 初始 w可设为0.5, 运行中自适应更新。
2. 迭代过程
for​ i=1to​ Ndo
a. 随机抽样: 从 M中均匀随机选取最小样本集 S(求解 H所需的最少点数, 如单应性需4对)。
b. 模型估计: 用 S拟合模型 Hi​(如通过DLT算法)。
c. 验证模型: 计算所有点对在 Hi​下的误差 ej​=d(qj​,Hi​pj​)2+d(pj​,Hi−1​qj​)2(对称转移误差)。 若 ej​<ϵ, 则将该点归入临时内点集 Itemp​。
d. 记录最佳模型: 如果 (

I_{\text{temp}}

>

I

4

光流估计

Lucas-Kanade光流法

输入: 时间相邻的两帧灰度图像 It​(x,y)和 It+1​(x,y)。
输出: 光流场 (u(x,y),v(x,y))。
核心参数
- 局部窗口大小 w×w(如5×5, 7×7)。
- 最大迭代次数、 收敛阈值。
中间变量
- 空间图像梯度 Ix​=∂x∂I​, Iy​=∂y∂I​。
- 时间梯度 It​=It+1​−It​。
- 在每个窗口内构建的线性方程组系数矩阵 A和向量 b。

1. 基本假设
a. 亮度恒定: I(x+u,y+v,t+1)=I(x,y,t)。
b. 小运动: u,v很小, 允许一阶泰勒展开。
c. 空间一致性: 邻域内像素具有相同运动。
2. 构建光流方程
对亮度恒定假设进行一阶泰勒展开:
I(x+u,y+v,t+1)≈I(x,y,t)+Ix​u+Iy​v+It​。
结合假设得: Ix​u+Iy​v+It​=0。
3. 最小二乘求解
在局部窗口 W内, 假设所有像素共享同一 (u,v), 建立超定方程组:
​Ix​(p1​)⋮Ix​(pn​)​Iy​(p1​)⋮Iy​(pn​)​​[uv​]=−​It​(p1​)⋮It​(pn​)​​, 即 Ad=b。
通过最小二乘法求解:
d=(ATA)−1ATb, 其中 ATA=[∑Ix2​∑Ix​Iy​​∑Ix​Iy​∑Iy2​​]。
要求解存在, ATA需可逆, 即其两个特征值不能太小 (角点区域)。
4. 迭代细化 (金字塔LK)
构建图像金字塔。 从最粗层开始, 将上层的解作为下层的初始值, 逐层迭代优化, 以处理大位移。

视频稳定、 运动分割、 目标跟踪、 视觉里程计

泰勒展开、 最小二乘、 图像金字塔、 角点检测

参数配置
- 窗口大小: 越大对噪声越鲁棒, 但会模糊运动边界。 通常5×5到15×15。
- 金字塔层数: 覆盖最大期望位移, 通常使最粗层图像尺寸大于最大位移。
- 迭代停止条件: 位移增量小于0.01像素或达到最大迭代次数 (如10-20)。
实现细节
- 梯度计算: 使用中心差分或Sobel算子。 时间梯度 It​常用前后帧差分。
- 求解: 计算 ATA及其特征值。 可设置特征值阈值, 在平坦区域不计算光流。
- 亚像素精度: 在迭代时, 对 It+1​进行双线性/双三次插值采样。
优化技巧
- 性能: 1) 使用积分图像快速计算窗口内 Ix2​,Iy2​,Ix​Iy​,Ix​It​,Iy​It​的和。 2) 只在稀疏特征点 (如GoodFeaturesToTrack) 上计算, 而非稠密计算。
- 精度与鲁棒性: 1) 逆向组合法: 交换模板和当前帧的角色, 使得Hessian矩阵 ATA只需计算一次, 效率高且更稳定。 2) 使用鲁棒核函数 (如Huber) 加权最小二乘, 应对遮挡和异常值。

5

图像分类

卷积神经网络 (CNN)

输入: 图像张量 X∈RH×W×C。
输出: 类别概率向量 y∈RK。
核心参数/结构
- 卷积层: 卷积核 W∈Rkh​×kw​×Cin​×Cout​, 偏置 b, 步长 s, 填充 p。
- 激活函数: ReLU: σ(z)=max(0,z)。
- 池化层: 最大池化或平均池化, 窗口大小, 步长。
- 全连接层: 权重矩阵 Wf​, 偏置 bf​。
- 损失函数: 交叉熵损失 L=−∑c=1K​yc​log(y^​c​)。

1. 卷积层
第 l层第 j个特征图的计算:
Zj(l)​=∑i=1Cin​​Wij(l)​∗Ai(l−1)​+bj(l)​, 其中 ∗表示卷积操作。
2. 激活层
Aj(l)​=σ(Zj(l)​), 引入非线性。
3. 池化层
Pj(l)​(p,q)=(m,n)∈Rpq​pool​Aj(l)​(m,n), 其中 Rpq​是池化窗口。
4. 全连接层
将池化后的特征图展平为向量 f:
z=Wf​f+bf​。
5. Softmax层
y^​c​=∑k=1K​exp(zk​)exp(zc​)​, 输出归一化概率。
6. 优化
使用随机梯度下降 (SGD) 及其变体 (如Adam) 最小化交叉熵损失, 通过反向传播计算梯度 ∂W∂L​。

ImageNet图像分类、 人脸识别、 医学影像分析、 自动驾驶场景理解

卷积运算、 反向传播、 链式法则、 梯度下降、 正则化

参数配置
- 网络架构: 经典结构如AlexNet, VGG, ResNet。 深度和宽度需平衡。 使用He或Xavier初始化。
- 优化器: Adam (初始lr=1e-3/4), SGD with momentum (lr=0.1, momentum=0.9)。 使用学习率衰减策略 (Step, Cosine)。
- 正则化: Weight decay (L2惩罚, 1e-4), Dropout (在FC层后, p=0.5), BatchNorm (卷积后激活前)。
实现细节
- 卷积实现: 使用im2col+GEMM (通用矩阵乘) 或Winograd算法加速。 深度学习框架 (PyTorch, TensorFlow) 已高度优化。
- 数据预处理: 归一化到均值0, 方差1。 使用数据增强: 随机裁剪、 水平翻转、 颜色抖动。
- 训练: 使用混合精度训练 (FP16) 节省显存和加速。 梯度累积模拟大batch。
优化技巧
- 性能: 1) 模型剪枝、 量化 (INT8)、 知识蒸馏得到轻量模型。 2) 使用深度可分离卷积 (MobileNet) 或通道 shuffle (ShuffleNet) 优化计算量。
- 精度: 1) 使用更先进的架构 (EfficientNet, ConvNeXt)。 2) 在大型数据集上预训练, 再到目标数据集微调 (迁移学习)。 3) 集成多个模型。

6

目标检测

YOLOv1 (You Only Look Once)

输入: 图像 I∈R448×448×3。
输出: 归一化的边界框 B={bi​}, 类别概率 C={ci​}, 置信度 S={si​}。
核心参数
- 网格大小 S×S(如7×7)。
- 每个网格预测的边界框数 B(如2)。
- 类别数 K。
- 损失函数权重 λcoord​,λnoobj​。
中间变量
- 网络输出的张量 O∈RS×S×(5B+K)。

1. 网络预测
将输入图像通过一个CNN (GoogLeNet变体) 映射到 S×S×(5B+K)的输出张量。 每个网格对应输出中的一个向量:
[tx​,ty​,tw​,th​,cobject​,…,cclass1​,cclassK​]。
其中 (tx​,ty​)是相对于网格左上角的偏移, (tw​,th​)是相对于先验框宽高的缩放, cobject​是置信度, 后 K维是条件类别概率。
2. 解码预测框
设网格左上角坐标为 (cx​,cy​), 先验框宽高为 (pw​,ph​), 则预测框为:
bx​=σ(tx​)+cx​, by​=σ(ty​)+cy​, bw​=pw​etw​, bh​=ph​eth​。
置信度: Pobject​=σ(cobject​)。
类别概率: Pclass​=softmax(cclass​)。
最终检测置信度: Score=Pobject​×max(Pclass​)。
3. 损失函数
L=λcoord​∑i=0S2​∑j=0B​1ijobj​[(xi​−x^i​)2+(yi​−y^​i​)2]
+λcoord​∑i=0S2​∑j=0B​1ijobj​[(wi​​−w^i​​)2+(hi​​−h^i​​)2]
+∑i=0S2​∑j=0B​1ijobj​(Ci​−C^i​)2
+λnoobj​∑i=0S2​∑j=0B​1ijnoobj​(Ci​−C^i​)2
+∑i=0S2​1iobj​∑c∈classes​(pi​(c)−p^​i​(c))2。
其中 1iobj​表示目标中心落在网格 i内, 1ijobj​表示网格 i的第 j个预测框负责预测该目标。

实时目标检测、 自动驾驶感知、 视频监控、 无人机航拍

边界框回归、 交并比 (IoU)、 非极大值抑制 (NMS)、 网格预测

参数配置
- 先验框 (v1无显式先验): v2/v3引入K-means聚类训练集标注框得到先验尺寸。
- 损失权重: λcoord​=5提升定位损失权重, λnoobj​=0.5抑制负样本。
- NMS阈值: 推理时使用, 如0.5。
实现细节
- 训练标签分配: 目标中心点落在哪个网格, 就由该网格负责预测。 该网格的 B个预测框中, 与真实框IoU最大的那个负责回归, 其余为“不负责”。
- 损失计算: 对宽高取平方根, 缓解大框小框的损失尺度差异。
优化技巧
- 性能: 1) 使用更快的骨干网络 (Darknet-53, CSPDarknet)。 2) 使用TensorRT, OpenVINO等部署框架进行图优化和量化加速。
- 精度: 1) 多尺度训练/测试。 2) Focal Loss​ 解决类别不平衡 (YOLOv1未使用, 后续版本引入)。 3) GIoU/CIoU Loss​ 替代MSE框回归损失。 4) 标签平滑​ 防止过拟合。

7

图像分割

U-Net

输入: 图像 I∈RH×W×C(医学图像常为单通道)。
输出: 分割掩码 M∈{0,1,...,K}H×W。
核心结构
- 编码器 (收缩路径): 重复应用: 2个3×3卷积 (无填充) → ReLU → 2×2最大池化 (步长2)。 每下采样一次, 通道数翻倍。
- 解码器 (扩展路径): 重复应用: 上采样 (转置卷积或插值) → 与编码器对应层特征拼接 (跳跃连接) → 2个3×3卷积 → ReLU。 每上采样一次, 通道数减半。
- 最终层: 1×1卷积将通道数映射到类别数 K, 后接Softmax。
损失函数: 像素级交叉熵损失或Dice损失。

1. 编码器 (下采样)
设第 l层输入为 X(l−1), 则:
Z(l)=W2(l)​∗σ(W1(l)​∗X(l−1)+b1(l)​)+b2(l)​
A(l)=MaxPool2×2​(Z(l))
其中 ∗是卷积, σ是ReLU。
2. 瓶颈层
在编码器最底层, 进行两次卷积, 不池化。
3. 解码器 (上采样)
设第 l层输入为 Xup(l−1)​, 对应编码器特征为 C(l′), 则:
U(l)=Upsample(Xup(l−1)​)
Concat(l)=[U(l),C(l′)]
Z(l)=W2(l)​∗σ(W1(l)​∗Concat(l)+b1(l)​)+b2(l)​
上采样可使用转置卷积 (反卷积) 或双线性插值。
4. 最终预测
M=Softmax(Wfinal​∗Z(final)+bfinal​)。
5. 损失计算
交叉熵损失: L=−N1​∑i=1N​∑k=1K​yi,k​log(y^​i,k​)。
Dice损失 (用于类别不平衡): L=1−∑y^​+∑y+ϵ2∑y^​y+ϵ​。

医学图像分割 (细胞、 器官)、 卫星图像土地分类、 工业缺陷检测

编码器-解码器、 跳跃连接、 转置卷积、 语义分割

参数配置
- 网络深度: 通常4-5次下采样。 初始通道数 (如64)。
- 上采样方式: 转置卷积可能引入棋盘伪影, 双线性插值+卷积是更稳定选择。
- 损失函数: 二分类常用Dice损失或BCE+Dice组合。 多分类常用CE或Focal Loss。
实现细节
- 填充: 使用“same”填充或计算输入输出尺寸, 确保拼接时尺寸匹配。
- 跳跃连接: 拼接前需对编码器特征进行中心裁剪 (如果尺寸因无填充卷积减小)。
- 数据增强: 对医学图像尤其重要: 弹性形变、 随机旋转、 灰度变换。
优化技巧
- 性能: 1) 使用深度可分离卷积减少参数量。 2) 使用注意力门控跳跃连接 (Attention U-Net), 让网络关注相关区域, 减少拼接无关信息。
- 精度: 1) 使用深度监督, 在解码器中间层添加辅助损失。 2) 使用条件随机场 (CRF)​ 或空洞卷积​ (替换池化) 作为后处理, 细化边界。 3) 在编码器使用预训练网络 (如ResNet) 作为骨干。

8

生成模型

生成对抗网络 (GAN)

输入: 随机噪声向量 z∼pz​(如均匀分布或高斯分布)。
输出: 生成的图像 G(z)。
核心参数
- 生成器 G的参数 θg​。
- 判别器 D的参数 θd​。
- 损失函数: 原始GAN的极小极大损失或改进的损失 (如WGAN-GP的Wasserstein距离)。
优化目标
minG​maxD​V(D,G)=Ex∼pdata​​[logD(x)]+Ez∼pz​​[log(1−D(G(z)))]。

1. 判别器训练 (固定G)
从真实数据分布 pdata​采样 batch x, 从先验噪声分布 pz​采样 batch z, 生成假样本 G(z)。 更新判别器以最大化:
∇θd​​m1​∑i=1m​[logD(x(i))+log(1−D(G(z(i))))]。
目标: 将真实样本判为1, 生成样本判为0。
2. 生成器训练 (固定D)
从先验噪声分布 pz​采样 batch z。 更新生成器以最小化:
∇θg​​m1​∑i=1m​log(1−D(G(z(i))))。
或实践中的翻转符号目标: ∇θg​​m1​∑i=1m​−log(D(G(z(i)))), 提供更陡的梯度。
3. 交替训练
重复步骤1和2, 直至达到纳什均衡。

图像生成、 图像到图像翻译、 风格迁移、 数据增强、 超分辨率

博弈论、 纳什均衡、 JS散度、 模式崩溃、 卷积网络

参数配置
- 架构: DCGAN是基础准则 (去池化, 去FC, 批归一化)。 生成器和判别器需力量相当。
- 优化器: 通常使用Adam (lr=0.0002, beta1=0.5)。 判别器可训练多次再训练一次生成器 (如5:1)。
- 噪声维度: 通常100维。
实现细节
- 输入归一化: 真实图像归一化到[-1, 1], 使用tanh作为生成器最后一层激活函数。
- 标签平滑: 对真实样本标签用略小于1的值 (如0.9), 对生成样本标签用略大于0的值 (如0.1), 提高判别器泛化能力。
- 单边标签平滑: 只平滑真实样本标签。
优化技巧
- 训练稳定性: 1) 使用WGAN-GP​ (带梯度惩罚的Wasserstein GAN), 损失更稳定, 无需精心平衡。 2) 使用谱归一化约束判别器Lipschitz常数。 3) 使用TTUR​ 为G和D设置不同的学习率。
- 生成质量: 1) 使用渐进式增长​ (ProGAN) 从低分辨率开始训练。 2) 使用风格混合噪声输入​ (StyleGAN)。 3) 使用条件信息​ (cGAN) 控制生成内容。

9

三维视觉

神经辐射场 (NeRF)

输入: 3D位置 x=(x,y,z)和观察方向 d=(θ,ϕ)。
输出: 体密度 σ∈R+和RGB颜色 c=(r,g,b)∈[0,1]3。
核心参数
- MLP网络权重 FΘ​。
- 位置编码函数 γ的频率参数 L。
- 体渲染的采样点数量 Nc​(粗) 和 Nf​(细)。
中间变量
- 编码后的位置和方向特征。

1. 位置编码
γ(p)=(sin(20πp),cos(20πp),...,sin(2L−1πp),cos(2L−1πp))。
对位置 x编码 (通常 L=10), 对方向 d编码 (通常 L=4)。
2. 网络查询
将编码后的位置 γ(x)输入MLP, 输出体密度 σ和一个256维的特征向量。 将此特征向量与编码后的方向 γ(d)拼接, 输入另一个小的MLP (128维), 输出RGB颜色 c。
3. 体渲染
对于相机射线 r(t)=o+td, 在近远边界 [tn​,tf​]内采样 N个点 {ti​}。
计算累积透射率 T(t)和权重 wi​:
T(t)=exp(−∫tn​t​σ(r(s))ds),
wi​=T(ti​)(1−exp(−σi​δi​)), 其中 δi​=ti+1​−ti​。
离散化后, 射线颜色为:
C^(r)=∑i=1N​wi​ci​。
4. 分层采样
a. 粗采样: 在 [tn​,tf​]均匀采样 Nc​个点, 通过粗网络预测, 得到权重分布 wic​。
b. 细采样: 根据归一化的权重分布 wic​进行逆变换采样, 在 wic​大的区域密集采样 Nf​个点。 合并粗采样和细采样点, 通过细网络预测, 计算最终颜色 C^f​(r)。
5. 损失函数
L=∑r∈R​[∥C^c​(r)−C(r)∥22​+∥C^f​(r)−C(r)∥22​]。

新颖视角合成、 三维重建、 虚拟现实、 场景编辑

体渲染、 位置编码、 逆变换采样、 辐射场

参数配置
- 网络结构: 8层256维MLP处理位置, 1层128维MLP处理颜色。 使用ReLU激活, 密度输出用softplus, 颜色输出用sigmoid。
- 位置编码: L=10对应60维, L=4对应24维。 是性能关键。
- 采样点数: 粗网络 Nc​=64, 细网络 Nf​=128。
实现细节
- 批次渲染: 同时渲染一批射线 (如4096条) 以利用GPU并行。
- 位置归一化: 将场景缩放至一个单位球内, 有利于训练。
优化技巧
- 性能: 1) InstantNGP: 使用多分辨率哈希编码和小MLP, 训练提速1000倍。 2) Plenoxels: 显式稀疏体素网格+球谐函数, 无需神经网络。 3) 使用剪枝, 跳过空空间采样。
- 精度: 1) 使用Mip-NeRF​ 抗锯齿。 2) 使用Ref-NeRF​ 更好建模镜面反射。 3) 引入外观嵌入​ 处理光照变化。

10

视觉定位

PnP (Perspective-n-Point)

输入: 一组3D点 {Piw​}∈R3(世界坐标系) 及其在图像上的2D投影 {pi​}∈R2。
输出: 相机位姿, 旋转矩阵 R∈SO(3)和平移向量 t∈R3。
核心参数
- 相机内参矩阵 K=​fx​00​0fy​0​cx​cy​1​​。
- 求解方法 (如EPnP, DLS, UPnP)。
中间变量
- 控制点 (EPnP), 虚拟深度。

1. 投影方程
设3D点 Piw​=[Xi​,Yi​,Zi​]T, 投影到像素坐标 pi​=[ui​,vi​]T, 深度为 λi​, 有:
(\lambda_i \begin{bmatrix} u_i \v_i \1 \end{bmatrix} = K [R

t] \begin{bmatrix} X_i \Y_i \Z_i \1 \end{bmatrix})。
2. 直接线性变换 (DLT)
令 Pic​=RPiw​+t=[Xic​,Yic​,Zic​]T, 消去深度 λi​=Zic​, 得到两个方程:
ui​Zic​=fx​Xic​+cx​Zic​
vi​Zic​=fy​Yic​+cy​Zic​。
整理成关于 R和 t元素的线性方程组 Ay=0, 其中 y是位姿矩阵元素展开的向量。 至少需要6个点。 用SVD求解, 再强制正交化得到 R。
3. EPnP (Efficient PnP)
a. 选择4个非共面控制点 Cjw​(世界系)。
b. 用重心坐标表示每个3D点: Piw​=∑j=14​αij​Cjw​。
c. 在相机系下, 有 Pic​=∑j=14​αij​Cjc​, 代入投影方程, 可构建关于 Cjc​的线性方程组 Mx=0, 其中 x=[C1cT​,...,C4cT​]T。
d. 解 x属于 M的右零空间, 可表示为基向量的线性组合 x=∑k=1N​βk​vk​。
e. 利用控制点距离在世界系和相机系相等的约束, 构建关于 βk​的二次方程组, 求解得到 Cjc​。
f. 最后通过绝对定向 (Umeyama算法) 求解 R,t, 使得 Cjc​=RCjw​+t。
4. 非线性优化 (重投影误差)
以线性解为初值, 最小化重投影误差:
minR,t​∑i​ρ(∥pi​−π(K(RPiw​+t))∥2), 其中 π是投影函数, ρ是鲁棒核函数。 使用列文伯格-马夸尔特法求解。

增强现实、 机器人定位、 相机标定、 视觉SLAM

相机几何、 旋转矩阵、 奇异值分解、 非线性优化、 鲁棒估计

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

11

点云配准

迭代最近点 (ICP)

输入:源点云 P={pi​}⊂R3,目标点云 Q={qi​}⊂R3。
输出:最优刚体变换(旋转矩阵 R∈SO(3)和平移向量 t∈R3)。
核心参数
- 最大迭代次数 K。
- 收敛阈值 ϵ(相邻两次迭代的误差变化或变换参数变化)。
- 距离阈值 dmax​(用于剔除外点)。
中间变量
- 对应点对集合 {(pi​,qi​)}。
- 均方误差 E。

1. 初始化:R0​=I3​, t0​=0, k=0。
2. 迭代直到收敛(k<K且误差变化大于 ϵ):
a. 数据关联:对于每个 pi​,在 Q中寻找最近点 qi​,通常使用kd-tree加速。如果距离 di​=∥pi​−qi​∥>dmax​,则剔除该对。
b. 计算变换:最小化对应点之间的均方误差:
E(R,t)=N1​∑i=1N​∥Rpi​+t−qi​∥2。
通过SVD求解:计算两个点云的质心 μp​=N1​∑i​pi​, μq​=N1​∑i​qi​,然后计算去质心坐标 pi′​=pi​−μp​, qi′​=qi​−μq​,构建矩阵 H=∑i=1N​pi′​qi′T​。对 H进行SVD分解:H=UΛVT,则 R=VUT(如果 det(R)=−1,则取 V′=V⋅diag(1,1,−1)重新计算)。平移向量 t=μq​−Rμp​。
c. 应用变换:更新源点云:P←RP+t。
d. 计算误差:Ek​=E(R,t)。
e. 检查收敛条件:如果 (

E_k - E_{k-1}

< \epsilon),则停止。
f. k=k+1。
3. 输出:最终的 R和 t。

三维重建、点云配准、SLAM后端优化、工业检测

12

双目视觉

三角测量

输入:左右图像上的匹配点对 (ul​,vl​)和 (ur​,vr​),相机内参 Kl​,Kr​,外参(相对位姿 R,t或已知极线校正)。
输出:三维点坐标 P=(X,Y,Z)T。
核心参数:无。
中间变量
- 视差 d=ul​−ur​(在极线校正后)。
- 投影矩阵 (P_l = K_l [I

0]), (P_r = K_r [R

\mathbf{t}])。

1. 极线校正情况
假设相机已校正,即两图像行对齐,且内参相同,基线 b,焦距 f。则:
Z=dfb​, X=fZ(ul​−cx​)​, Y=fZ(vl​−cy​)​。
其中 cx​,cy​是主点坐标。
2. 一般情况(线性三角测量)
对于每个相机,有投影方程:
λl​​ul​vl​1​​=Pl​​XYZ1​​, λr​​ur​vr​1​​=Pr​​XYZ1​​。
消去深度 λ,每个相机可得到两个线性方程:
ul​(Pl(3)​X)−(Pl(1)​X)=0
vl​(Pl(3)​X)−(Pl(2)​X)=0
其中 Pl(i)​是 Pl​的第 i行。组合两个相机的四个方程,得到 AX=0,其中 A是4×4矩阵。通过SVD求解,取最小奇异值对应的右奇异向量,并归一化(使最后一维为1)得到齐次坐标下的3D点。

立体视觉、三维重建、深度估计

13

多目视觉

多视图三角测量 (线性方法)

输入:多个相机视图的投影矩阵 (P_i = K_i [R_i

\mathbf{t}_i] \in \mathbb{R}^{3 \times 4})和对应的图像点 xi​=(ui​,vi​)T,共 N个视图。
输出:三维点 X=(X,Y,Z,1)T(齐次坐标)。
中间变量
- 线性方程组矩阵 A∈R2N×4。

1. 构建线性方程组
对每个视图,由投影方程 λi​xi​=Pi​X,可得到两个线性方程:
ui​(Pi(3)​X)−(Pi(1)​X)=0
vi​(Pi(3)​X)−(Pi(2)​X)=0
将所有 2N个方程堆叠,得到 AX=0,其中 A是 2N×4矩阵。
2. 求解
对 A进行奇异值分解(SVD):A=UDVT。解为 V的最后一列(对应最小奇异值的右奇异向量),即 X=V(:,4)。
3. 齐次坐标转三维坐标
X3D​=(X/W,Y/W,Z/W)T,其中 W是齐次坐标的第四维。

运动恢复结构(SfM)、多相机三维重建

多视图几何、奇异值分解、超定线性方程组

14

视觉定位

PixLoc算法

输入:稀疏3D模型点 {Pi​},参考图像 {Ik​}及其相机位姿,查询图像 Iq​,初始位姿估计(可选)。
输出:查询图像的精确位姿 (R,t)。
核心参数
- 特征提取网络(如CNN)权重。
- 优化迭代次数,学习率(如果使用梯度下降)。
中间变量
- 特征图 Fq​,Fk​。
- 重投影误差。

1. 特征提取:使用CNN提取查询图像和参考图像的多尺度特征图。设第 l层特征图为 Fql​,Fkl​∈RWl​×Hl​×Dl​。
2. 投影与特征对齐:给定当前位姿估计,将3D点 Pi​投影到查询图像,得到投影点 pqi​=π(RPi​+t)。同样,投影到参考图像得到 pki​。
3. 计算特征残差:在特征图上采样(双线性插值)得到对应点的特征向量:
fqi​=Fql​(pqi​), fki​=Fkl​(pki​)。
残差 rki​=fqi​−fki​∈RDl​。
4. 构建代价函数
El​(R,t)=∑i,k​wki​⋅ρ(∥rki​∥22​),其中 wki​是权重(例如根据特征匹配置信度), ρ是鲁棒核函数(如Huber)。
5. 优化:使用高斯牛顿法或列文伯格-马夸尔特法迭代优化位姿 (R,t)以最小化 E。每一步需要计算残差对位姿的雅可比矩阵,通过链式法则:
∂ξ∂r​=∂fq​∂r​∂pq​∂fq​​∂ξ∂pq​​,其中 ξ∈se(3)是李代数表示的位姿增量。

端到端视觉定位、场景无关定位、图像检索后的位姿细化

特征匹配、非线性优化、李代数、卷积神经网络

参数配置
- 网络架构:通常使用在大型数据集上预训练的CNN(如ResNet)作为特征提取器,并微调。
- 优化器:使用LM算法,初始阻尼因子 λ,最大迭代次数。
- 多尺度:从粗到细在不同层次特征图上优化。
实现细节
- 特征采样:使用双线性插值采样特征,使得梯度可以回传到位姿参数。
- 权重:权重 wki​可以基于特征相似性(如余弦相似度)计算。
- 鲁棒核:使用Huber或Cauchy核函数抑制外点。
优化技巧
- 效率:1) 使用稀疏优化,只优化位姿,不优化3D点。2) 在低分辨率特征图上开始优化,逐步到高分辨率。3) 使用预计算的参考特征,避免每次优化重复提取。
- 鲁棒性:1) 使用多假设优化,从多个初始位姿开始,选择代价最小的。2) 在代价函数中引入先验项(如平滑性约束)。

15

特征检测

Harris角点检测

输入:灰度图像 I(x,y)。
输出:角点位置集合。
核心参数
- 窗口大小(通常3×3)。
- 高斯加权标准差 σ(用于计算结构张量时的加权)。
- 响应函数阈值 T和 k值(通常0.04~0.06)。
中间变量
- 图像梯度 Ix​,Iy​。
- 结构张量 M=[∑wIx2​∑wIx​Iy​​∑wIx​Iy​∑wIy2​​],其中 w是高斯权重。
- 响应值 R=det(M)−k⋅trace(M)2。

1. 计算梯度:使用Sobel算子等计算图像在x和y方向的梯度 Ix​,Iy​。
2. 计算结构张量元素
Ix2​=Ix​∗Ix​, Iy2​=Iy​∗Iy​, Ix​Iy​=Ix​∗Iy​。
然后对这三个量进行高斯滤波(加权平均),得到:
A=w∗Ix2​, B=w∗Iy2​, C=w∗Ix​Iy​。
则 M=[AC​CB​]。
3. 计算响应函数
R=AB−C2−k(A+B)2。
4. 非极大值抑制:在局部邻域内(如3×3)抑制非极大值点,只保留 R最大的点,并且 R>T(阈值)。
5. 输出:非极大值抑制后剩余的点的位置即为角点。

特征点提取、图像匹配、运动估计、相机标定

图像梯度、结构张量、特征值分析、非极大值抑制

参数配置
- 高斯加权:σ通常取1~2,窗口大小相应取3×3或5×5。
- 阈值 T:通常取响应函数最大值的1%~5%。
- k值:经验值0.04~0.06,影响对边缘和角点的区分。
实现细节
- 梯度计算:使用Sobel算子(3×3)或更精确的Scharr算子。
- 高斯加权:可分离卷积加速。
- 非极大值抑制:在3×3邻域内比较,并确保 R>T。
优化技巧
- 效率:1) 使用积分图像加速高斯加权(但精度稍低)。2) 在图像金字塔上多尺度检测。
- 重复性:1) 使用自适应阈值,根据图像局部对比度调整。2) 使用亚像素精度细化角点位置:在候选点附近拟合二次曲面,求极值点。

16

目标检测

Faster R-CNN

输入:图像 I。
输出:边界框 B={bi​}和类别标签 C={ci​}。
核心模块
- 特征提取网络(如VGG16, ResNet)。
- 区域提议网络(RPN)。
- RoI池化层。
- 分类和回归头。
损失函数:多任务损失(分类+回归)。

1. 特征提取:通过CNN骨干网络提取特征图 F。
2. 区域提议网络(RPN)
a. 在特征图上滑动一个小网络(3×3卷积),为每个位置生成9个锚框(3种尺度×3种长宽比)。
b. 对每个锚框,输出二分类分数(前景/背景)和边界框回归偏移量(相对于锚框)。
c. 使用非极大值抑制(NMS)过滤重叠的提议,保留前N个(如300个)作为区域提议。
3. RoI池化:对每个区域提议,从特征图上提取固定大小的特征(如7×7)。将不同大小的提议区域映射到固定大小的特征网格上(通过最大池化)。
4. 分类和回归:将RoI池化的特征输入全连接层,输出每个提议的类别概率(包括背景)和更精确的边界框回归偏移量。
5. 损失函数
L=Lrpn_cls​+Lrpn_reg​+Lcls​+Lreg​。
其中分类损失为交叉熵,回归损失为平滑L1损失。

高精度目标检测、实例识别

区域提议网络、锚框机制、RoI池化、多任务学习

参数配置
- 锚框:尺度通常为[8, 16, 32](相对于原图,在特征图步长下),长宽比为[0.5, 1, 2]。
- RPN训练:正样本为与真实框IoU>0.7的锚框,负样本为IoU<0.3,其余忽略。每个mini-batch采样256个锚框,正负样本1:1。
- NMS阈值:训练时0.7,测试时0.5。
实现细节
- 训练策略:四步交替训练(训练RPN,用RPN提议训练Fast R-CNN,用Fast R-CNN初始化RPN,再微调RPN和Fast R-CNN共享的卷积层)或端到端联合训练。
- RoI池化:使用RoIAlign(双线性插值)避免量化误差,提高精度。
优化技巧
- 精度:1) 使用特征金字塔网络(FPN)​ 多尺度检测。2) 使用更强大的骨干网络(如ResNeXt)。3) 使用Soft-NMS​ 或 Softer-NMS​ 提高召回率。
- 速度:1) 使用共享特征,RPN和检测头共享卷积特征。2) 使用轻量级骨干网络(如MobileNet)或模型压缩技术。

17

图像分割

Mask R-CNN

输入:图像 I。
输出:实例分割掩码 M={mi​}和边界框、类别。
核心模块:在Faster R-CNN基础上增加掩码头(全卷积网络)。
损失函数:增加掩码分割损失。

1. 骨干网络:使用FPN等提取多尺度特征。
2. RPN:同Faster R-CNN,生成区域提议。
3. RoIAlign:对每个区域提议,从FPN的不同层级提取特征(根据提议的尺度),并使用双线性插值精确对齐,得到固定大小的特征(如7×7)。
4. 检测头:包括分类、回归分支(同Faster R-CNN)和掩码预测分支。掩码分支是一个小型的全卷积网络(FCN),对每个RoI输出 K×m×m的二值掩码(K为类别数,m为分辨率,如28×28)。
5. 损失函数
L=Lrpn​+Lcls​+Lreg​+Lmask​。
其中 Lmask​是二值交叉熵损失,只对正样本(非背景)的对应类别计算。

实例分割、人像分割、物体分割

RoIAlign、全卷积网络、多任务学习、特征金字塔

参数配置
- RoIAlign:采样点数(如4),输出尺寸(如7×7)。
- 掩码头:通常由4个卷积层和1个反卷积层组成,输出分辨率28×28,在训练时上采样到原图大小计算损失,推理时可用插值放大。
- 多任务损失权重:通常各项权重为1,但可根据任务调整。
实现细节
- 解耦掩码和类别:训练时,掩码损失只对真实类别计算,但预测时,使用分类分支预测的类别来选择对应的掩码,这缓解了分类误差对掩码的影响。
- FPN:使用FPN时,不同尺度的提议分配到不同层级的特征图(如提议面积较小时分配到高层特征)。
优化技巧
- 精度:1) 使用更精细的掩码预测(如PointRend模块)。2) 使用全景分割统一语义和实例分割。3) 使用软性RoIAlign(Soft RoIAlign)可微分。
- 速度:1) 使用TensorRT等推理引擎优化。2) 使用轻量级骨干。3) 使用单阶段实例分割(如YOLACT)实时运行。

18

生成模型

变分自编码器 (VAE)

输入:数据 x(如图像)。
输出:重构数据 x^,潜在变量 z。
核心参数
- 编码器网络 (q_\phi(z

x))参数 ϕ。
- 解码器网络 (p_\theta(x

z))参数 θ。
- 潜在变量维度 d。
损失函数:证据下界(ELBO)。

1. 编码器:将输入 x映射到潜在变量的后验分布参数(均值和方差):
μϕ​(x),σϕ​(x)=Encoderϕ​(x)。
假设后验为对角高斯: (q_\phi(z

x) = \mathcal{N}(z; \mu\phi(x), \text{diag}(\sigma\phi^2(x))))。
2. 重参数化:为了允许梯度传播,从后验采样通过重参数化技巧:
z=μϕ​(x)+σϕ​(x)⊙ϵ,其中 ϵ∼N(0,I)。
3. 解码器:从潜在变量 z重构数据:
x^=Decoderθ​(z),假设 (p_\theta(x

19

三维视觉

结构光三维重建

输入:一系列编码的结构光图案投影到物体上的图像,以及相机和投影仪的标定参数。
输出:物体的三维点云。
核心方法:相移法、格雷码等。
关键参数:图案数量、相位展开策略。

1. 系统标定:标定相机和投影仪的内外参数,建立投影仪像平面和相机像平面的对应关系。
2. 编码与解码
a. 相移法:投影一系列正弦光栅图案,每个图案相位移动 2π/N。对于每个像素,接收到的光强可表示为:
In​(x,y)=A(x,y)+B(x,y)cos(ϕ(x,y)+2πn/N), n=0,...,N−1。
则相位 ϕ(x,y)=arctan(∑n=0N−1​In​cos(2πn/N)∑n=0N−1​In​sin(2πn/N)​),得到包裹相位(值域 (−π,π])。
b. 格雷码:投影一系列黑白二值图案,将投影仪像平面划分为不同区域并编码。通过解码得到每个像素对应的投影仪列坐标的整数部分。
3. 相位展开:相移法得到的相位是包裹的,需要展开为绝对相位。通常结合格雷码提供的整数级次 k(x,y),计算绝对相位 Φ(x,y)=ϕ(x,y)+2πk(x,y)。
4. 三角测量:对于每个相机像素 (xc​,yc​),通过绝对相位 Φ得到对应的投影仪像素的列坐标 xp​=Φ⋅P/(2π),其中 P是正弦光栅的周期(以像素为单位)。然后利用相机和投影仪之间的极线几何进行三角测量,得到三维坐标。

工业检测、人脸扫描、文物数字化、逆向工程

相机标定、投影仪标定、相位测量、三角测量

参数配置
- 图案数量:相移法通常需要至少3幅图案(N=3),常用4步或更多以提高精度。格雷码图案数量取决于投影仪分辨率(如10幅对应1024列)。
- 相位展开:可以选择多频外差法,用不同频率的相移图案组合实现可靠展开,无需格雷码。
实现细节
- 系统标定:使用张正友法标定相机,投影仪可视为逆向相机,通过投影已知图案(如棋盘格)进行标定。
- 抗反光:对于高反光表面,可使用偏振光或调整曝光策略。
- 相位计算:使用至少3步相移公式,减少环境光和非线性响应的影响。
优化技巧
- 精度:1) 使用多频外差相位展开,提高可靠性。2) 使用误差补偿算法校正gamma非线性。3) 采用时间相位展开(多组不同频率图案)提高精度。
- 速度:1) 使用二进制编码图案(如格雷码)结合相移,减少图案数量。2) 使用彩色编码,在单幅图像中编码多个信息。3) 使用深度学习直接从单幅图像估计深度。

20

视觉SLAM

ORB-SLAM

输入:图像序列(单目、双目或RGB-D)。
输出:相机运动轨迹(位姿图)和稀疏三维地图(特征点)。
核心模块:跟踪、局部建图、闭环检测。
关键参数:特征点数、关键帧选择阈值、闭环检测阈值。

1. 跟踪
a. 提取ORB特征,与上一帧匹配(或通过恒速模型预测位姿,然后投影匹配)。
b. 通过PNP(RANSAC)估计当前帧位姿。
c. 跟踪局部地图:将局部地图点投影到当前帧,匹配更多点,优化位姿。
d. 决定是否插入关键帧。
2. 局部建图
a. 插入关键帧,更新共视图。
b. 剔除冗余地图点。
c. 创建新地图点:通过三角化产生新的候选点。
d. 局部BA:优化当前关键帧及其共视关键帧的位姿,以及这些关键帧观测到的地图点。
e. 剔除冗余关键帧。
3. 闭环检测
a. 回环候选检测:基于词袋模型(DBoW2)寻找相似关键帧。
b. 计算相似变换(单目)或刚体变换(双目/RGB-D),验证回环。
c. 位姿图优化:纠正漂移,优化所有关键帧位姿。
d. 全局BA(可选):优化所有位姿和地图点。

机器人导航、增强现实、自动驾驶、三维重建

特征匹配、光束法平差、词袋模型、位姿图优化

参数配置
- ORB特征:每幅图像提取1000-2000个特征点,尺度金字塔8层,尺度因子1.2。
- 关键帧插入:当跟踪到的地图点少于参考关键帧的90%或重叠度低于70%时插入。
- 回环检测:使用DBoW2,最小相似度分数阈值(如0.8)。
实现细节
- 地图初始化:单目需要专门初始化(平面或非平面场景),双目或RGB-D可直接三角化。
- 局部地图:维护一个激活的局部地图,包括当前帧的共视关键帧和这些关键帧观测到的地图点。
- 并行化:跟踪、局部建图、闭环检测运行在三个独立线程中。
优化技巧
- 鲁棒性:1) 使用IMU融合(ORB-SLAM3)应对快速运动。2) 使用多地图系统应对跟踪丢失。3) 使用边缘化保持滑动窗口优化效率。
- 精度:1) 使用光度误差(直接法)补充特征点法。2) 使用语义信息剔除动态物体。3) 使用全局位姿图优化而非全局BA以节省时间。

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

21

图像增强

直方图均衡化

输入: 灰度图像 I(x,y)∈[0,L−1]H×W, 其中 L是灰度级数(通常256)。
输出: 增强后的图像 J(x,y)。
中间变量
- 直方图 h(k)=#{I(x,y)=k}。
- 累积分布函数(CDF) c(k)=∑i=0k​h(i)/(H×W)。
核心参数: 无。

1. 计算直方图
统计每个灰度级 k在图像中出现的像素数:
h(k)=∑x=0W−1​∑y=0H−1​δ(I(x,y)−k), 其中 δ是狄拉克函数, 实际为计数。
2. 计算累积分布函数
c(k)=H×W1​∑i=0k​h(i)。
3. 映射函数
将原始图像的每个像素值 k映射到新的灰度级:
J(x,y)=⌊(L−1)⋅c(I(x,y))⌋。
其中 ⌊⋅⌋是取整操作, 确保结果为整数。

医学影像增强、 低对比度图像增强、 图像预处理

直方图、 概率分布、 累积分布函数、 映射函数

参数配置
无需特殊参数。 对于彩色图像, 通常在HSV空间的V通道或YCbCr空间的Y通道进行, 以避免颜色失真。
实现细节
- 高效计算: 使用查找表(LUT), 提前计算每个灰度级的映射值, 然后遍历图像应用LUT。
- 防止过度增强: 可对直方图进行裁剪(CLAHE), 设置裁剪限制, 然后将超出的像素数均匀分配到所有灰度级。
优化技巧
- 性能: 1) 使用积分直方图或并行计算加速。 2) 对于视频流, 可使用滑动窗口直方图均衡化。
- 质量: 1) 使用自适应直方图均衡化(AHE) 或对比度限制的自适应直方图均衡化(CLAHE) 避免局部过度增强。 2) 结合伽马校正进行非线性调整。

22

形态学操作

腐蚀和膨胀

输入: 二值图像 B∈{0,1}H×W。
输出: 处理后的二值图像。
核心参数
- 结构元素 S(形状和大小, 如3×3矩形)。
- 操作类型: 腐蚀、 膨胀、 开运算、 闭运算。
中间变量
- 结构元素的原点位置。

1. 腐蚀
对于每个像素 (x,y), 输出图像 E(x,y)=1当且仅当结构元素 S完全包含在输入图像中, 即:
E(x,y)=min(i,j)∈S​B(x+i,y+j)。
2. 膨胀
对于每个像素 (x,y), 输出图像 D(x,y)=1当且仅当结构元素 S与输入图像有交集, 即:
D(x,y)=max(i,j)∈S​B(x+i,y+j)。
3. 开运算: 先腐蚀后膨胀, 去除小物体。
4. 闭运算: 先膨胀后腐蚀, 填充小孔洞。

图像去噪、 形状分析、 目标分离、 文本识别

集合论、 结构元素、 形态学运算

参数配置
- 结构元素: 常用矩形、 圆形、 十字形。 大小根据目标尺寸选择, 如3×3, 5×5。
- 原点: 通常为结构元素的中心。
实现细节
- 边界处理: 通常假设边界外像素值为0(腐蚀) 或1(膨胀)。
- 分离结构元素: 如果结构元素是可分离的(如矩形), 可先进行水平操作再进行垂直操作, 加速计算。
优化技巧
- 性能: 1) 使用积分图像加速腐蚀和膨胀。 2) 使用查找表(LUT) 对小的结构元素进行优化。 3) 使用并行计算, 因为每个像素操作独立。
- 高级形态学: 1) 使用形态学梯度(膨胀-腐蚀) 检测边缘。 2) 使用顶帽变换(原图-开运算) 提取亮区域。

23

图像滤波

高斯滤波

输入: 图像 I(x,y)。
输出: 平滑图像 Ismooth​。
核心参数
- 高斯核大小 k(奇数)。
- 标准差 σ。
中间变量
- 高斯核 Gσ​(x,y)=2πσ21​exp(−2σ2x2+y2​)。

1. 生成高斯核
对于核大小 k, 生成离散采样:
Gσ​(x,y)=2πσ21​exp(−2σ2x2+y2​), 其中 x,y∈[−⌊k/2⌋,⌊k/2⌋]。
2. 归一化
将核元素归一化, 使其和为1:
Gσ​←Gσ​/∑x,y​Gσ​(x,y)。
3. 卷积
Ismooth​=Gσ​∗I。
由于高斯核可分离, 可分解为两个一维卷积:
Gσ​(x,y)=gσ​(x)⋅gσ​(y), 其中 gσ​(x)=2π​σ1​exp(−2σ2x2​)。

图像去噪、 尺度空间构建、 预处理

高斯分布、 卷积运算、 可分离滤波

参数配置
- 核大小: 通常根据 σ选择, 如 k=6σ+1(取奇整数)。
- 标准差: σ越大, 图像越平滑。
实现细节
- 可分离卷积: 先对每一行进行一维高斯滤波, 再对每一列进行一维高斯滤波, 计算复杂度从 O(k2)降为 O(2k)。
- 边界处理: 常用反射、 复制或补零。
优化技巧
- 性能: 1) 使用积分图像近似高斯滤波(快速但不精确)。 2) 使用递归高斯滤波(IIR) 实现常数时间滤波。 3) 使用SIMD指令并行化。
- 精度: 1) 使用更高阶的近似(如Deriche滤波器)。 2) 在频率域进行滤波(FFT卷积) 适合大核。

24

霍夫变换

直线检测

输入: 二值边缘图像 E(x,y)。
输出: 检测到的直线参数集合 {(ρi​,θi​)}。
核心参数
- ρ和 θ的分辨率(步长)。
- 累加器阈值(投票数阈值)。
中间变量
- 累加器数组 A(ρ,θ)。

1. 参数化直线
直线用极坐标表示: ρ=xcosθ+ysinθ, 其中 ρ是原点到直线的距离, θ是直线法线与x轴的夹角。
2. 投票
对于每个边缘点 (x,y), 遍历所有可能的 θ值(如0到180度, 步长1度), 计算对应的 ρ=xcosθ+ysinθ, 并将累加器 A(ρ,θ)加1。
3. 峰值检测
在累加器中找到局部最大值, 且其值大于阈值, 这些峰值对应图像中的直线。
4. 提取直线
对于每个峰值 (ρ,θ), 可将其转换回直线方程。

车道线检测、 文档分析、 工业检测

参数空间、 投票机制、 峰值检测

参数配置
- 分辨率: θ步长通常1度, ρ步长通常1像素。 分辨率越高精度越高, 但计算量和内存消耗越大。
- 阈值: 通常设为边缘点总数的一定比例, 或通过实验确定。
实现细节
- 累加器量化: 使用二维数组存储累加器, 注意 ρ的范围为 [−D,D], 其中 D是图像对角线长度。
- 边缘点筛选: 可只对强边缘点投票, 或使用梯度方向限制 θ范围。
优化技巧
- 性能: 1) 使用梯度方向减少投票范围。 2) 使用多尺度霍夫变换。 3) 使用随机霍夫变换(概率霍夫变换) 只对随机子集投票。
- 精度: 1) 对累加器进行非极大值抑制。 2) 使用亚像素精度累加器插值。 3) 使用线段提取而不仅是无限直线。

25

模板匹配

归一化互相关

输入: 图像 I和模板 T(通常比 I小)。
输出: 匹配位置 (x,y)和相似度分数。
核心参数
- 匹配方法: 归一化互相关(NCC)。
- 相似度阈值。
中间变量
- 相关系数图 R(x,y)。

1. 计算互相关
在图像 I上滑动模板 T, 计算每个位置的相似度。 NCC定义为:
R(x,y)=∑x′,y′​(I(x+x′,y+y′)−Iˉx,y​)2∑x′,y′​(T(x′,y′)−Tˉ)2​∑x′,y′​(I(x+x′,y+y′)−Iˉx,y​)(T(x′,y′)−Tˉ)​
其中 Iˉx,y​是当前窗口的均值, Tˉ是模板的均值。
2. 寻找最大值
在 R中找到最大值, 若大于阈值, 则其位置为匹配位置。

目标跟踪、 图像配准、 质量检测

相关性分析、 相似性度量、 滑动窗口

参数配置
- 相似度阈值: 通常设为0.7-0.9, 取决于应用。
- 多尺度匹配: 如果目标大小未知, 可在图像金字塔上匹配。
实现细节
- 高效计算: 使用积分图像快速计算窗口内均值和平方和, 将NCC复杂度降为常数。
- 边界处理: 模板超出图像边界时, 可忽略或填充。
优化技巧
- 性能: 1) 使用FFT加速互相关计算(相位相关)。 2) 使用降采样或粗-精搜索策略。 3) 使用并行计算(如GPU)。
- 鲁棒性: 1) 使用零均值归一化互相关(ZNCC) 对光照变化鲁棒。 2) 结合多特征(如梯度) 进行匹配。

26

背景减除

混合高斯模型

输入: 视频帧序列 It​。
输出: 前景掩码 Ft​。
核心参数
- 高斯分量数 K(通常3-5)。
- 学习率 α。
- 背景比例 T(如0.7)。
中间变量
- 每个像素的高斯混合模型参数: 权重 wk,t​, 均值 μk,t​, 方差 σk,t2​。

1. 初始化
对每个像素, 初始化 K个高斯分布的参数(均值、方差、权重)。
2. 匹配
对于新像素值 xt​, 检查其是否与现有的高斯分布匹配(即 (

x_t - \mu_{k,t-1}

< 2.5 \sigma_{k,t-1}))。
3. 更新
对于匹配的高斯分布, 更新参数:
wk,t​=(1−α)wk,t−1​+α
μk,t​=(1−ρ)μk,t−1​+ρxt​
σk,t2​=(1−ρ)σk,t−12​+ρ(xt​−μk,t​)2
其中 ρ=α⋅N(xt​;μk,t−1​,σk,t−12​)。
未匹配的高斯分布权重减少: wk,t​=(1−α)wk,t−1​。
4. 背景选择
将高斯分布按 w/σ降序排列, 选择前 B个分布, 使得其权重和大于阈值 T, 这些作为背景模型。
5. 前景判断
如果像素值不与任何背景分布匹配, 则标记为前景。

视频监控、 运动检测、 交通分析

27

图像分类

ResNet(残差网络)

输入: 图像 x。
输出: 类别概率 y。
核心结构
- 残差块: H(x)=F(x)+x。
- 瓶颈块: 1×1卷积降维 → 3×3卷积 → 1×1卷积升维。
损失函数: 交叉熵。

1. 残差学习
假设期望的底层映射为 H(x), 让网络拟合残差 F(x)=H(x)−x, 则原始映射变为 F(x)+x。
2. 残差块
对于输入 x, 输出为:
y=F(x,{Wi​})+x。
其中 F是残差函数, 通常由2-3个卷积层组成。 如果输入输出维度不同, 使用1×1卷积进行投影:
y=F(x,{Wi​})+Ws​x。
3. 网络架构
由多个残差块堆叠, 中间穿插下采样(步长2的卷积)。 常用ResNet-50, ResNet-101等。

图像分类、 目标检测、 语义分割

残差连接、 梯度消失、 网络深度、 批量归一化

参数配置
- 网络深度: 常用18, 34, 50, 101, 152层。
- 瓶颈块: 在深层网络中使用, 减少计算量。
- 初始化: 使用He初始化, 批量归一化(BN) 在卷积后激活前。
实现细节
- 预激活: 使用“预激活”顺序: BN → ReLU → 卷积, 效果更好。
- 下采样: 通过步长2的卷积实现, 同时投影快捷连接也使用步长2的1×1卷积。
优化技巧
- 训练加速: 1) 使用学习率预热(warmup)。 2) 使用标签平滑正则化。 3) 使用混合精度训练。
- 架构改进: 1) 使用ResNeXt(分组卷积)。 2) 使用SENet(通道注意力) 增强。 3) 使用Stochastic Depth随机深度。

28

图像分类

MobileNet

输入: 图像 x。
输出: 类别概率 y。
核心结构
- 深度可分离卷积: 深度卷积 + 逐点卷积。
- 宽度乘子 α和分辨率乘子 ρ。
损失函数: 交叉熵。

1. 深度可分离卷积
标准卷积: 对每个输入通道, 使用3×3卷积核, 然后组合输出。 计算成本: DK​⋅DK​⋅M⋅N⋅DF​⋅DF​。
深度可分离卷积分解为两步:
a. 深度卷积: 每个输入通道单独卷积, 使用 M个3×3卷积核, 输出 M个特征图。 计算成本: DK​⋅DK​⋅M⋅DF​⋅DF​。
b. 逐点卷积: 使用1×1卷积组合通道, 输出 N个特征图。 计算成本: M⋅N⋅DF​⋅DF​。
总计算成本约为标准卷积的 1/N+1/(DK2​)。
2. 网络架构
堆叠多个深度可分离卷积块, 每个块后接BN和ReLU。 最后全局平均池化和全连接层。

移动端部署、 嵌入式视觉、 实时应用

深度可分离卷积、 计算效率、 模型压缩

参数配置
- 宽度乘子 α: 缩小通道数, 常用0.25, 0.5, 0.75, 1.0。
- 分辨率乘子 ρ: 缩小输入图像尺寸, 如224, 192, 160, 128。
实现细节
- 激活函数: 使用ReLU6(min(max(0,x),6)) 增强低精度计算鲁棒性。
- 结构: 每个块包含深度卷积、BN、ReLU6、逐点卷积、BN、ReLU6。
优化技巧
- 性能: 1) 使用TensorFlow Lite或Core ML部署, 利用硬件加速。 2) 使用量化(INT8) 进一步压缩。 3) 使用神经架构搜索(NAS) 寻找更优结构(如MnasNet)。
- 精度: 1) 使用倒残差块和线性瓶颈(MobileNetV2)。 2) 使用注意力机制(MobileNetV3)。

29

目标检测

SSD(单次检测器)

输入: 图像 I。
输出: 边界框和类别。
核心结构
- 多尺度特征图检测。
- 默认框(先验框) 机制。
损失函数: 多任务损失(分类+回归)。

1. 特征提取
使用VGG16等作为骨干网络, 提取多个尺度的特征图(如conv4_3, conv7, conv8_2, conv9_2, conv10_2, conv11_2)。
2. 默认框生成
在每个特征图单元上, 设置不同尺度和长宽比的默认框。 尺度从 smin​到 smax​线性增加, 长宽比包括 {1,2,3,1/2,1/3}。
3. 预测
对每个默认框, 预测类别分数和边界框偏移(相对于默认框)。
4. 匹配策略
将每个真实框与默认框匹配, 选择IoU最大的默认框, 以及IoU大于阈值(如0.5) 的默认框作为正样本。
5. 损失函数
L=N1​(Lconf​+αLloc​), 其中 N是正样本数, Lconf​是softmax损失, Lloc​是平滑L1损失。

实时多尺度检测、 嵌入式系统

多尺度特征、 默认框、 硬负样本挖掘

参数配置
- 默认框尺度: 通常 smin​=0.2,smax​=0.9, 每个特征图层有特定尺度。
- 长宽比: 通常使用1,2,3,1/2,1/3, 以及一个尺度为 sk​sk+1​​且长宽比为1的额外框。
- 负样本比例: 训练时, 保持正负样本比例1:3。
实现细节
- 数据增强: 使用随机裁剪、 颜色扭曲等。
- 预测层: 每个特征图层后接3×3卷积预测类别和偏移。
优化技巧
- 精度: 1) 使用更强大的骨干(如ResNet)。 2) 使用特征融合(如DSSD)。 3) 使用Focal Loss解决类别不平衡。
- 速度: 1) 使用深度可分离卷积(如MobileNet-SSD)。 2) 使用TensorRT加速推理。

30

图像分割

FCN(全卷积网络)

输入: 任意大小图像 I。
输出: 像素级类别概率图 P。
核心结构
- 全卷积层: 将全连接层转换为卷积层。
- 上采样: 使用转置卷积(反卷积) 恢复分辨率。
损失函数: 逐像素交叉熵。

1. 全卷积化
将预训练分类网络(如VGG16) 的全连接层转换为卷积层(fc6 → 卷积层, fc7 → 卷积层), 使网络可接受任意大小输入。
2. 上采样
通过转置卷积(反卷积) 将低分辨率特征图上采样到输入图像大小。 转置卷积可学习, 参数通过训练得到。
3. 跳跃连接
融合浅层细节特征和深层语义特征。 例如, 将pool4和pool3的特征上采样后与最终预测融合, 得到更精细的分割(FCN-8s)。
4. 损失计算
对每个像素计算交叉熵损失, 忽略标签缺失的像素。

语义分割、 场景理解

全卷积、 转置卷积、 像素级预测、 跳跃连接

参数配置
- 上采样倍数: 根据网络下采样倍数确定, 如VGG16下采样32倍, 需上采样32倍。
- 跳跃连接: 可选融合不同层的特征, 如FCN-32s(无跳跃), FCN-16s(融合pool4), FCN-8s(融合pool4和pool3)。
实现细节
- 初始化: 转置卷积层使用双线性插值初始化, 并设置较小的学习率。
- 训练: 使用分阶段训练, 先训练FCN-32s, 再固定参数训练FCN-16s, 最后训练FCN-8s。
优化技巧
- 精度: 1) 使用空洞卷积(扩张卷积) 增大感受野而不降低分辨率。 2) 使用条件随机场(CRF) 后处理细化边界。 3) 使用多尺度测试。
- 速度: 1) 使用更轻量的骨干网络。 2) 使用知识蒸馏压缩模型。

31

生成模型

CycleGAN

输入: 源域图像 x∈X, 目标域图像 y∈Y。
输出: 跨域转换图像。
核心结构
- 两个生成器: G:X→Y, F:Y→X。
- 两个判别器: DX​判断是否属于 X, DY​判断是否属于 Y。
损失函数: 对抗损失 + 循环一致性损失。

1. 对抗损失
对于生成器 G和判别器 DY​:
LGAN​(G,DY​,X,Y)=Ey∼pdata​(y)​[logDY​(y)]+Ex∼pdata​(x)​[log(1−DY​(G(x)))]
类似地有 LGAN​(F,DX​,Y,X)。
2. 循环一致性损失
鼓励 F(G(x))≈x和 G(F(y))≈y:
Lcyc​(G,F)=Ex∼pdata​(x)​[∥F(G(x))−x∥1​]+Ey∼pdata​(y)​[∥G(F(y))−y∥1​]
3. 总损失
L(G,F,DX​,DY​)=LGAN​(G,DY​,X,Y)+LGAN​(F,DX​,Y,X)+λLcyc​(G,F)
其中 λ控制循环一致性损失的重要性。

风格迁移、 域适应、 图像转换

循环一致性、 无配对训练、 域转换

参数配置
- 生成器结构: 通常使用U-Net或ResNet块。
- 判别器结构: 使用PatchGAN(局部判别器), 输出一个矩阵, 每个元素对应图像的一个局部区域是否为真。
- 损失权重 λ: 通常设为10。
实现细节
- 训练策略: 使用历史生成的图像池(buffer) 供判别器训练, 提高稳定性。
- 归一化: 使用实例归一化(Instance Normalization) 替代批归一化, 更适合风格迁移。
优化技巧
- 稳定性: 1) 使用LSGAN(最小二乘GAN) 损失替代原始GAN损失。 2) 使用两个周期的循环一致性损失(如Forward-backward)。
- 质量: 1) 使用身份损失(identity loss) 鼓励生成器不改变颜色分布。 2) 使用多尺度判别器。

32

三维视觉

光束法平差

输入: 多个相机位姿 {Ri​,ti​}和三维点 {Pj​}的初始估计, 以及2D观测 {xij​}。
输出: 优化后的相机位姿和三维点。
核心参数
- 鲁棒核函数(如Huber)。
- 优化算法(如列文伯格-马夸尔特)。
中间变量
- 重投影误差 eij​=xij​−π(Ri​Pj​+ti​)。

1. 代价函数
最小化重投影误差的平方和:
min{Ri​,ti​},{Pj​}​∑i,j​ρ(∥eij​∥2)
其中 ρ是鲁棒核函数。
2. 参数化
相机位姿用李代数 ξi​∈se(3)表示, 三维点用欧氏坐标 Pj​∈R3。
3. 线性化
对误差函数进行一阶泰勒展开, 构建增量方程:
HΔx=−b
其中 H是海森矩阵(或近似), Δx是所有待优化参数的增量。
4. 利用稀疏性
由于每个误差项只涉及一个相机和一个点, 海森矩阵具有稀疏块结构。 使用舒尔补消元点参数, 得到约化方程只关于相机位姿, 求解后再回代得到点坐标增量。

三维重建、 SLAM后端优化、 运动恢复结构

非线性优化、 稀疏矩阵、 舒尔补、 李代数

参数配置
- 鲁棒核阈值: Huber核的阈值通常设为像素误差的统计值(如5.99个像素)。
- 优化迭代: 最大迭代次数通常50-100, 收敛阈值根据应用设定。
实现细节
- 参数化: 旋转使用四元数或李代数, 平移使用三维向量。 注意自由度的约束(旋转矩阵正交)。
- 稀疏求解器: 使用SuiteSparse, CHOLMOD等库求解稀疏线性系统。
优化技巧
- 性能: 1) 使用滑动窗口BA控制问题规模。 2) 使用边缘化(marginalization) 移除旧状态。 3) 使用并行BA(如PBA)。
- 鲁棒性: 1) 使用RANSAC初始化。 2) 使用协方差传播确定权重。 3) 使用先验信息(如IMU) 约束。

33

视觉定位

对极几何

输入: 两幅图像中的匹配点对 {xi​↔xi′​}。
输出: 基础矩阵 F或本质矩阵 E。
核心参数
- 归一化(可选)。
- 鲁棒估计(如RANSAC)。
中间变量
- 线性方程组系数矩阵。

1. 对极约束
对于匹配点对 x=(u,v,1)T和 x′=(u′,v′,1)T, 满足:
x′TFx=0。
其中 F是基础矩阵(3×3, 秩2)。
2. 8点法
将 F展开为向量 f, 对极约束可写为:
[u′u,u′v,u′,v′u,v′v,v′,u,v,1]f=0。
使用8对点构建线性方程组 Af=0, 求解 F。 使用SVD, 取最小奇异值对应的右奇异向量, 然后强制秩2约束(将最小奇异值置0)。
3. 归一化
在计算前, 将点坐标平移和缩放, 使质心在原点, 平均距离为 2​, 提高数值稳定性。
4. 本质矩阵
如果已知相机内参 K, 则本质矩阵 E=K′TFK。 从 E可分解得到相机运动 R,t。

相对位姿估计、 三维重建初始化

对极几何、 基础矩阵、 本质矩阵、 奇异值分解

参数配置
- 归一化: 强烈推荐使用, 可大幅提高数值稳定性。
- RANSAC阈值: 通常设为1-3像素(在归一化坐标下)。
实现细节
- 秩2约束: 对求得的 F进行SVD, 令最小奇异值为0, 然后重构。
- 内点判断: 使用对称对极距离: (d =

34

特征描述

ORB

输入: 图像 I。
输出: 关键点位置、 方向和描述子。
核心步骤
- FAST角点检测。
- 方向计算(强度质心法)。
- 旋转BRIEF描述子。

1. FAST角点检测
在半径为3的圆周上检查16个像素, 如果有连续 N个像素比中心亮或暗阈值 t, 则为角点。 使用金字塔多尺度检测。
2. 方向计算
在关键点邻域内, 计算强度质心:
mpq​=∑x,y​xpyqI(x,y)
质心 C=(m10​/m00​,m01​/m00​), 方向 θ=arctan(m01​,m10​)。
3. 旋转BRIEF
根据方向 θ旋转BRIEF采样模式。 BRIEF描述子是对256个预定义的点对进行强度比较, 生成256位二进制串。 旋转后, 采样点坐标通过旋转矩阵得到。

实时特征匹配、 SLAM、 增强现实

FAST角点、 BRIEF描述子、 二进制特征

参数配置
- FAST阈值: 通常20-30。
- 尺度金字塔: 尺度因子通常1.2, 层数根据图像大小。
- 描述子维度: 通常256位, 也可用128位。
实现细节
- 非极大值抑制: 在FAST响应上进行, 保留局部最大值。
- 方向: 使用强度质心法, 在圆形邻域内计算。
- 描述子: 使用学习的方法选择好的点对(ORB使用方差和相关性准则)。
优化技巧
- 性能: 1) 使用SSE或NEON指令加速二进制描述子匹配。 2) 使用局部敏感哈希(LSH) 加速匹配。
- 鲁棒性: 1) 使用rBRIEF(旋转不变)。 2) 使用多尺度描述。

35

图像分割

GrabCut

输入: 图像 I, 用户交互(矩形或涂鸦)。
输出: 分割掩码。
核心模型
- 高斯混合模型(GMM) 建模前景和背景颜色分布。
- 图割优化能量函数。

1. 初始化
用户指定一个矩形, 矩形外为确定背景, 矩形内为可能前景。
2. 高斯混合模型
为前景和背景分别建立GMM(通常5个高斯分量)。 使用k-means初始化。
3. 图割优化
构建图, 节点为像素, 边权重基于颜色相似性和空间接近度。 能量函数:
E(α,k,θ,z)=U(α,k,θ,z)+V(α,z)
其中 U是数据项(颜色似然), V是平滑项(邻域像素标签不同时惩罚)。 通过最小割求解。
4. 迭代
重复步骤2-3, 直到收敛。

交互式图像分割、 前景提取

图割算法、 高斯混合模型、 交互分割

参数配置
- GMM分量数: 通常5个。
- 迭代次数: 通常3-5次。
- 平滑项权重: 通常50-100。
实现细节
- 初始化: 用户可提供前景和背景种子点, 而非仅矩形。
- 图割: 使用max-flow/min-cut算法(如Boykov-Kolmogorov)。
优化技巧
- 性能: 1) 使用下采样图像进行分割, 然后上采样结果。 2) 使用GPU加速图割。
- 精度: 1) 结合边缘信息(如使用对比敏感度平滑项)。 2) 使用形状先验。

36

目标跟踪

KCF(核相关滤波)

输入: 初始目标位置, 后续视频帧。
输出: 目标位置。
核心思想
- 使用循环移位生成训练样本。
- 在傅里叶域求解岭回归。
- 使用核技巧处理非线性。

1. 训练
目标: 学习一个滤波器 w, 使得在样本 x上的响应 f(x)=wTx接近期望输出 y(高斯形状)。 岭回归:
minw​∑i​(f(xi​)−yi​)2+λ∥w∥2
在傅里叶域, 解为:
w^=x^∗⊙x^+λx^∗⊙y^​​
其中 ⋅^表示傅里叶变换, ∗表示复共轭。
2. 检测
在新一帧中, 在目标区域提取特征 z, 计算响应:
f^​(z)=k^xz⊙w^
其中 kxz是核相关(如高斯核)。 响应最大值位置即为目标位置。
3. 更新
线性插值更新模型。

视觉目标跟踪、 视频分析

相关滤波、 循环矩阵、 核方法、 傅里叶变换

参数配置
- 正则化参数 λ: 通常1e-4。
- 核带宽: 高斯核的带宽。
- 学习率: 模型更新时的插值系数, 通常0.01-0.1。
实现细节
- 特征: 使用HOG特征或CNN特征。
- 多尺度: 通过图像金字塔处理尺度变化。
优化技巧
- 性能: 1) 使用快速傅里叶变换(FFT) 加速。 2) 使用插值获得亚像素精度。 3) 使用模型更新策略防止漂移。
- 鲁棒性: 1) 结合颜色直方图。 2) 使用长期跟踪和重检测机制。

37

图像分类

Vision Transformer

输入: 图像 I∈RH×W×C。
输出: 类别概率 y。
核心结构
- 图像分块, 线性投影。
- Transformer编码器: 多头自注意力, 前馈网络。
- 分类头。

1. 图像分块
将图像划分为 N=(H/P)×(W/P)个大小为 P×P的块, 展平为向量 xp​∈RP2C。
2. 线性投影
通过可学习的线性层将每个块投影到 D维: z0p​=Exp​+eposp​, 其中 epos​是位置编码。
3. Transformer编码器
由 L层组成, 每层包含多头自注意力(MSA) 和多层感知机(MLP), 残差连接和层归一化:
zl′​=MSA(LN(zl−1​))+zl−1​
zl​=MLP(LN(zl′​))+zl′​
4. 分类
取第一个令牌([class] token) 的输出, 通过MLP分类头。

大规模图像分类、 多模态学习

自注意力、 Transformer、 位置编码

参数配置
- 分块大小: 通常16×16或32×32。
- 隐藏维度 D: 通常768(ViT-Base)。
- 注意力头数: 通常12。
- 层数: 通常12(ViT-Base)。
实现细节
- 位置编码: 使用可学习的一维位置编码。
- 混合架构: 可以使用CNN骨干提取特征, 再输入Transformer。
优化技巧
- 训练: 1) 需要大量数据, 通常在大型数据集(如ImageNet-21K) 上预训练。 2) 使用AdamW优化器, 学习率预热和衰减。 3) 使用随机深度(Stochastic Depth)。
- 效率: 1) 使用窗口注意力(Swin Transformer) 减少计算量。 2) 使用知识蒸馏(DeiT)。

38

超分辨率

SRCNN

输入: 低分辨率图像 ILR。
输出: 高分辨率图像 IHR。
核心结构
三层卷积网络: 特征提取, 非线性映射, 重建。

1. 特征提取
第一层卷积: 从低分辨率图像中提取块特征。
F1​=max(0,W1​∗ILR+b1​)
2. 非线性映射
第二层卷积: 将特征映射到高分辨率空间。
F2​=max(0,W2​∗F1​+b2​)
3. 重建
第三层卷积: 生成高分辨率图像。
IHR=W3​∗F2​+b3​
4. 损失函数
使用均方误差(MSE):
L(Θ)=n1​∑i=1n​∥IiHR​−IiGT​∥2

图像超分辨率、 视频增强

卷积网络、 超分辨率、 图像重建

参数配置
- 卷积核大小: 第一层9×9, 第二层1×1, 第三层5×5(SRCNN)。
- 通道数: 第一层64, 第二层32, 第三层1(灰度) 或3(彩色)。
实现细节
- 训练数据: 使用ImageNet等大型数据集, 对图像进行下采样生成低分辨率-高分辨率对。
- 优化: 使用Adam优化器。
优化技巧
- 性能: 1) 使用更深的网络(如VDSR)。 2) 使用残差学习(EDSR)。 3) 使用亚像素卷积上采样(ESPCN)。
- 质量: 1) 使用感知损失(Perceptual Loss) 或对抗损失(SRGAN)。 2) 使用注意力机制。

39

人体姿态估计

OpenPose

输入: 图像 I。
输出: 人体关键点位置和连接。
核心结构
- 两个分支: 关键点置信度图(Part Confidence Maps) 和部分亲和场(Part Affinity Fields)。
- 多阶段预测。

1. 特征提取
使用VGG网络提取特征。
2. 第一阶段
两个分支分别预测关键点置信度图 S1和部分亲和场 L1。
3. 后续阶段
将前一阶段的预测与图像特征拼接, 进一步细化:
St=ρt(I,St−1,Lt−1),Lt=ϕt(I,St−1,Lt−1)
其中 ρt,ϕt是卷积网络。
4. 关键点关联
使用部分亲和场将检测到的关键点连接成肢体, 通过二分图匹配(匈牙利算法) 分配关键点到不同人。

人体姿态分析、 动作识别、 人机交互

部分亲和场、 多阶段网络、 图匹配

参数配置
- 阶段数: 通常6个阶段(3个关键点阶段+3个PAF阶段交替)。
- 关键点数: COCO数据集18个关键点。
实现细节
- 置信度图: 使用高斯核将真实关键点位置渲染为热图。
- 部分亲和场: 对于肢体, 在属于该肢体的像素上定义一个2D向量场, 指向肢体方向。
优化技巧
- 性能: 1) 使用轻量级骨干(如MobileNet)。 2) 使用TensorRT加速推理。
- 精度: 1) 使用多尺度测试。 2) 使用姿态非极大值抑制(NMS) 处理多人。

40

三维视觉

点云处理 PointNet

输入: 点云 P={pi​}⊂R3。
输出: 全局特征或逐点特征。
核心结构
- 对称函数(最大池化) 处理无序点集。
- T-Net学习空间变换。
损失函数: 分类用交叉熵, 分割用逐点交叉熵。

1. 输入变换
通过一个小型网络(T-Net) 预测一个3×3变换矩阵, 对输入点云进行对齐:
pi′​=Tinput​pi​。
2. 特征变换
类似地, 在特征空间学习一个变换矩阵对齐特征。
3. 对称函数
对每个点独立应用MLP, 然后通过最大池化聚合全局特征:
f=γ({ϕ(pi​)}), 其中 γ是最大池化。
4. 输出
对于分类, 全局特征通过MLP输出类别分数。 对于分割, 将全局特征与每个点的局部特征拼接, 再通过MLP输出逐点标签。

点云分类、 分割、 三维理解

对称函数、 点云处理、 无序集合

参数配置
- 点云大小: 通常采样1024个点。
- 网络维度: MLP层维度为64,128,1024(分类), 分割网络更复杂。
实现细节
- 数据增强: 随机旋转、 缩放、 添加噪声。
- 损失函数: 分类使用交叉熵, 分割使用逐点交叉熵。
优化技巧
- 性能: 1) 使用更高效的点采样和分组(PointNet++)。 2) 使用稀疏卷积(如MinkowskiNet)。
- 精度: 1) 使用注意力机制(如Point Transformer)。 2) 使用图卷积(如DGCNN)。

计算机视觉及多维视觉定位模型/算法/方程式列表 (41-60)

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

41

视觉定位

视觉惯性里程计(VIO)

输入: 图像序列 {Ik​}, IMU测量(角速度 ωm​, 加速度 am​)。
输出: 相机位姿序列 {Tk​}, 速度 {vk​}, IMU偏差 {bg​,ba​}。
核心参数
- IMU噪声参数: 陀螺仪噪声 σg​, 加速度计噪声 σa​, 偏置随机游走 σbg​,σba​。
- 视觉噪声参数: 特征点观测噪声 σimg​。
中间变量
- 预积分IMU测量 ΔRij​,Δvij​,Δpij​。
- 重投影误差 evis​, IMU误差 eimu​。

1. IMU预积分
在连续两帧图像 i和 j之间, IMU测量值积分得到相对运动增量:
ΔRij​=∏k=ij−1​exp((ωk​−bg,k​)Δt)
Δvij​=∑k=ij−1​ΔRik​(ak​−ba,k​)Δt
Δpij​=∑k=ij−1​[Δvik​Δt+21​ΔRik​(ak​−ba,k​)Δt2]
预积分模型与初始状态解耦, 避免重复积分。
2. 状态向量
包含相机位姿、速度、IMU偏置和特征点深度(或逆深度):
X=[T0​,v0​,b0​,…,Tn​,vn​,bn​,λ0​,…,λm​]
其中 Tk​=[Rk​,pk​]∈SE(3)。
3. 代价函数
结合视觉重投影误差和IMU误差:
E=∑i,j​ρ(∥evis,ij​∥Σvis​2​)+∑i,j​ρ(∥eimu,ij​∥Σimu​2​)
其中IMU误差项为预积分测量与状态预测的差值。
4. 优化求解
使用高斯牛顿或列文伯格-马夸尔特法求解最小二乘问题。 利用滑动窗口限制计算复杂度。

无人机导航、 AR/VR、 机器人

IMU预积分、 紧耦合、 传感器融合、 滑动窗口

参数配置
- 滑动窗口大小: 通常10-20帧。
- IMU频率: 通常100-500Hz。
- 视觉频率: 通常10-30Hz。
实现细节
- 初始化: 需要估计尺度、重力方向、IMU偏置和速度, 可通过视觉SFM和IMU对齐进行。
- 预积分协方差: 需要传播噪声, 用于优化时的权重。
优化技巧
- 效率: 1) 使用边缘化(marginalization) 移除旧状态。 2) 使用FEJ(First Estimate Jacobians) 保持一致性。 3) 使用多线程加速。
- 鲁棒性: 1) 使用鲁棒核函数(Huber) 处理外点。 2) 使用IMU预测进行视觉特征跟踪。 3) 故障检测与恢复机制。

42

图像生成

扩散模型

输入: 随机噪声 xT​∼N(0,I), 条件信息 c(可选)。
输出: 生成的图像 x0​。
核心参数
- 噪声调度 {βt​}或 {αˉt​}。
- 去噪网络 ϵθ​的架构和参数。
- 采样步数 T。
中间变量
- 中间噪声图像 xt​。
- 预测的噪声 ϵθ​(xt​,t,c)。

1. 前向扩散过程
给定真实图像 x0​, 逐步添加高斯噪声:
(q(\mathbf{x}_t

\mathbf{x}{t-1}) = \mathcal{N}(\mathbf{x}t; \sqrt{1-\beta_t} \mathbf{x}{t-1}, \beta_t \mathbf{I}) )
可推导出:
(q(\mathbf{x}
t

\mathbf{x}0) = \mathcal{N}(\mathbf{x}t; \sqrt{\bar{\alpha}t} \mathbf{x}0, (1-\bar{\alpha}t)\mathbf{I}) )
其中 αˉt​=∏s=1t​(1−βs​)。
2. 反向生成过程
从噪声 xT​开始, 逐步去噪:
(p
\theta(\mathbf{x}_{t-1}

\mathbf{x}t) = \mathcal{N}(\mathbf{x}{t-1}; \boldsymbol{\mu}\theta(\mathbf{x}t, t), \tilde{\beta}_t \mathbf{I}) )
其中均值 μθ​由网络预测。
3. 训练目标
最小化真实噪声与预测噪声的差距:
L(θ)=Et,x0​,ϵ​[∥ϵ−ϵθ​(αˉt​​x0​+1−αˉt​​ϵ,t)∥2]
其中 ϵ∼N(0,I)。
4. 采样
从 t=T到 1, 计算:
xt−1​=αt​​1​(xt​−1−αˉt​​1−αt​​ϵθ​(xt​,t))+σt​z
其中 z∼N(0,I)。

43

多模态学习

CLIP

输入: 图像 I和文本 T。
输出: 图像和文本的相似度分数。
核心参数
- 图像编码器 fI​(如ViT, ResNet) 的参数。
- 文本编码器 fT​(如Transformer) 的参数。
中间变量
- 图像特征向量 vI​=fI​(I)。
- 文本特征向量 vT​=fT​(T)。

1. 特征提取
图像和文本分别通过编码器得到归一化的特征向量:
vI​=∥fI​(I)∥fI​(I)​,vT​=∥fT​(T)∥fT​(T)​
2. 相似度计算
计算余弦相似度:
s(I,T)=vI​⋅vT​
3. 对比学习损失
对于一个batch中的 N个图像-文本对, 计算对比损失:
LI​=−N1​∑i=1N​log∑j=1N​exp(s(Ii​,Tj​)/τ)exp(s(Ii​,Ti​)/τ)​
LT​=−N1​∑i=1N​log∑j=1N​exp(s(Ti​,Ij​)/τ)exp(s(Ti​,Ii​)/τ)​
总损失 L=(LI​+LT​)/2, 其中 τ是可学习的温度参数。

零样本分类、 多模态检索、 图像描述

对比学习、 多模态、 零样本学习

参数配置
- 图像编码器: ViT-B/32, ViT-L/14等。
- 文本编码器: Transformer, 词汇表大小49408, 上下文长度77。
- 温度参数: 可学习, 初始值0.07。
实现细节
- 训练数据: 需要大规模的图像-文本对(如WebImageText)。
- 优化器: 使用AdamW, 学习率预热和衰减。
优化技巧
- 效率: 1) 使用混合精度训练。 2) 使用梯度检查点节省显存。
- 性能: 1) 使用更大的模型和更多数据。 2) 使用提示工程(prompt engineering) 提高零样本性能。 3) 微调以适应下游任务。

44

目标检测

DETR

输入: 图像 I。
输出: 检测结果(边界框和类别)。
核心结构
- CNN骨干网络提取特征。
- Transformer编码器-解码器。
- 预测头(FFN)。
损失函数: 二分图匹配损失。

1. 特征提取
CNN骨干(如ResNet) 提取特征图 f∈RH×W×C, 然后用1×1卷积降维到 d, 并展平为序列 z0​∈RHW×d。
2. 编码器
添加位置编码, 通过多层Transformer编码器层(自注意力+前馈网络) 处理, 得到编码后的特征 ze​。
3. 解码器
初始化 N个可学习的对象查询(object queries) q∈RN×d。 通过多层Transformer解码器层, 以对象查询为查询, 编码器输出为键和值, 进行交叉注意力, 输出解码后的特征 d。
4. 预测头
每个解码器输出特征通过一个FFN预测边界框(中心坐标、宽高) 和类别概率。
5. 二分图匹配
使用匈牙利算法在预测和真实框之间进行一对一匹配, 匹配成本包括类别预测和框的位置相似度(如IoU)。
6. 损失计算
对匹配后的预测计算损失, 包括分类损失(交叉熵) 和边界框损失(L1损失和GIoU损失)。

端到端目标检测、 无需NMS

Transformer、 二分图匹配、 集合预测

参数配置
- 对象查询数: 通常100, 大于图像中常见物体数。
- 编码器/解码器层数: 通常6层。
- 特征维度: 通常256。
实现细节
- 位置编码: 使用正弦位置编码或可学习的位置编码。
- 训练技巧: 使用辅助解码损失(auxiliary decoding losses) 帮助训练。
优化技巧
- 收敛速度: 1) 使用可变形注意力(Deformable DETR) 加速收敛。 2) 使用条件DETR减少查询之间的依赖。
- 精度: 1) 使用多尺度特征(如Swin Transformer)。 2) 使用迭代边界框细化。 3) 使用更大的模型和更长的训练时间。

45

图像分割

DeepLab系列

输入: 图像 I。
输出: 语义分割掩码 M。
核心技术
- 空洞卷积(Atrous Convolution)。
- 空洞空间金字塔池化(ASPP)。
- 编码器-解码器结构(DeepLabv3+)。
损失函数: 逐像素交叉熵。

1. 骨干网络
使用ResNet等, 将最后两个下采样层的步长改为1(即不使用下采样), 并使用空洞卷积保持感受野。
2. ASPP模块
并行使用多个不同空洞率的空洞卷积(如rate=6,12,18) 和全局平均池化, 捕捉多尺度信息, 然后融合。
3. 解码器
在DeepLabv3+中, 将ASPP输出上采样4倍, 与骨干网络中的低级特征(经过1×1卷积降维) 拼接, 再通过3×3卷积和上采样得到最终分割图。
4. 损失函数
逐像素交叉熵损失, 可结合Dice损失或类别权重。

语义分割、 场景解析

空洞卷积、 多尺度、 空间金字塔

参数配置
- 空洞率: 通常为[6,12,18]。
- 输出步长: 通常为8或16(输入尺寸/特征图尺寸)。
- 解码器通道数: 通常256。
实现细节
- 同步批归一化: 由于使用空洞卷积, 批归一化需使用同步BN(SyncBN) 以多卡训练。
- 数据增强: 随机缩放、 翻转、 裁剪。
优化技巧
- 精度: 1) 使用更强大的骨干(如Xception)。 2) 使用注意力机制(如SE模块)。 3) 使用多尺度测试和集成。
- 效率: 1) 使用深度可分离空洞卷积。 2) 使用知识蒸馏压缩模型。 3) 使用TensorRT部署优化。

46

三维视觉

立体匹配

输入: 校正后的立体图像对 Ileft​,Iright​。
输出: 视差图 D。
核心算法
- 代价计算(如绝对差和SAD, 归一化互相关NCC)。
- 代价聚合(如窗口求和, 引导滤波)。
- 视差计算(赢家通吃WTA)。
- 视差优化(左右一致性检查, 亚像素细化)。

1. 代价计算
对于每个像素 (x,y)和候选视差 d, 计算匹配代价, 如SAD:
(C{\text{SAD}}(x,y,d) = \sum{(i,j) \in W}

I{\text{left}}(x+i,y+j) - I{\text{right}}(x+i-d,y+j)

)
其中 W是窗口。
2. 代价聚合
对代价进行平滑, 如使用BoxFilter或引导滤波:
Cagg​=filter(C)
3. 视差计算
对于每个像素, 选择最小聚合代价对应的视差:
D(x,y)=argmind​Cagg​(x,y,d)
4. 后处理
- 左右一致性检查: 比较左视差图与右视差图, 不一致的像素标记为遮挡。
- 视差填充: 对遮挡区域使用邻近有效视差填充。
- 亚像素细化: 在赢家通吃视差附近拟合二次曲线, 求极值点得到亚像素视差。

立体视觉、 深度估计、 三维重建

47

视觉定位

视觉重定位

输入: 查询图像 Iq​, 带有位姿的参考图像数据库 {Ir​,Tr​}。
输出: 查询图像的位姿 Tq​。
核心步骤
- 图像检索: 找到最相似的参考图像。
- 特征匹配: 建立2D-3D对应。
- PnP求解: 计算位姿。
- 可选的位姿优化。

1. 图像检索
使用全局描述子(如NetVLAD) 计算查询图像与参考图像的相似度, 返回Top-K最相似的参考图像。
2. 局部特征匹配
提取查询图像和候选参考图像的局部特征(如SIFT, SuperPoint), 进行特征匹配, 得到2D-2D匹配点对。
3. 2D-3D对应建立
参考图像有已知的3D地图点, 通过2D-2D匹配, 将查询图像的2D点与参考图像对应的3D点关联, 形成2D-3D对应。
4. PnP求解
使用RANSAC结合PnP(如EPnP) 从2D-3D对应中估计查询图像的位姿。
5. 位姿优化
使用所有内点进行非线性优化(如光束法平差) 细化位姿。

图像检索、 地点识别、 视觉定位

特征匹配、 PnP、 图像检索

参数配置
- 检索数量K: 通常1-10。
- 特征匹配方法: 可使用最近邻比测试或学习型匹配(如SuperGlue)。
- RANSAC迭代次数: 根据内点率自适应或固定。
实现细节
- 全局描述子: 使用NetVLAD或DenseVLAD, 通常需要PCA降维和白化。
- 局部特征: 使用RootSIFT或学习型特征(如SuperPoint) 提高匹配鲁棒性。
优化技巧
- 鲁棒性: 1) 使用多视图匹配, 融合多个参考图像的信息。 2) 使用几何验证(如对极几何) 过滤错误匹配。 3) 使用查询扩展(query expansion) 提高检索召回率。
- 效率: 1) 使用图像数据库索引(如k-d树, 倒排索引) 加速检索。 2) 使用二进制描述子加速匹配。 3) 使用级联定位, 先粗后精。

48

图像分类

EfficientNet

输入: 图像 I。
输出: 类别概率 y。
核心思想
- 复合缩放: 同时缩放网络的深度、宽度和分辨率。
- 基线网络: 通过神经架构搜索(NAS) 得到。
损失函数: 交叉熵。

1. 复合缩放
对于给定的计算资源预算, 联合缩放深度 d, 宽度 w, 分辨率 r:
depth:d=αϕ
width:w=βϕ
resolution:r=γϕ
约束 α⋅β2⋅γ2≈2, 且 α≥1,β≥1,γ≥1。
其中 ϕ是用户指定的缩放系数, 控制模型大小。
2. 基线网络
使用NAS搜索得到的网络(EfficientNet-B0), 其主要结构为移动倒置瓶颈(MBConv), 包含深度可分离卷积和SE注意力模块。
3. 缩放
从B0开始, 通过复合缩放得到B1-B7, 模型逐渐变大, 精度提高。

高效图像分类、 模型缩放

复合缩放、 神经架构搜索、 模型效率

参数配置
- 缩放系数: 对于B0, α=1.2,β=1.1,γ=1.15, 通过网格搜索得到。
- 模型变体: B0-B7, 输入分辨率从224到600。
实现细节
- 激活函数: 使用Swish激活函数(x⋅σ(x))。
- 正则化: 使用DropConnect和随机深度(Stochastic Depth)。
优化技巧
- 训练技巧: 1) 使用AutoAugment数据增强。 2) 使用EMA(指数移动平均) 的模型参数。 3) 使用标签平滑。
- 部署优化: 1) 使用TensorRT转换和量化。 2) 使用知识蒸馏进一步压缩。

49

目标跟踪

DeepSORT

输入: 视频帧序列, 每帧的检测结果(边界框)。
输出: 跟踪轨迹(目标ID, 边界框)。
核心组件
- 检测器(如YOLO)。
- 外观特征提取器(如CNN)。
- 卡尔曼滤波(运动预测)。
- 数据关联(匈牙利算法)。

1. 检测
使用检测器获取每帧的边界框 bi​=[x,y,w,h]。
2. 特征提取
对每个检测框提取外观特征向量 fi​(使用预训练的ReID网络)。
3. 预测
使用卡尔曼滤波预测现有轨迹在当前帧的位置。 状态向量为 [x,y,a,h,x˙,y˙​,a˙,h˙], 其中 a是长宽比。
4. 数据关联
计算检测与预测轨迹之间的代价矩阵, 包含运动相似度(马氏距离) 和外观相似度(余弦距离) 的加权和。 使用匈牙利算法进行匹配。
5. 轨迹管理
对未匹配的检测初始化新轨迹, 对未匹配的轨迹标记为丢失, 连续丢失一定帧数后删除。 对匹配的轨迹更新卡尔曼滤波状态和外观特征(指数移动平均)。

多目标跟踪、 行人跟踪、 交通监控

卡尔曼滤波、 数据关联、 外观特征

参数配置
- 最大丢失帧数: 通常30-50帧。
- 关联阈值: 马氏距离阈值通常9.4877(卡方分布0.95分位数), 余弦距离阈值0.2。
- 特征更新率: 外观特征更新时的学习率, 通常0.1。
实现细节
- 级联匹配: 优先匹配丢失时间短的轨迹, 解决遮挡问题。
- IoU匹配: 在特征匹配失败后, 使用IoU作为后备匹配准则。
优化技巧
- 精度: 1) 使用更强大的检测器和ReID模型。 2) 使用相机运动补偿(如EKF) 处理相机运动。 3) 使用轨迹插值平滑。
- 速度: 1) 使用轻量级ReID网络。 2) 使用并行处理特征提取。 3) 使用CUDA加速卡尔曼滤波。

50

视觉定位

视觉SLAM前端

输入: 图像序列 {Ik​}。
输出: 特征点轨迹, 初始位姿估计。
核心步骤
- 特征提取与匹配。
- 运动估计(2D-2D, 2D-3D, 3D-3D)。
- 三角测量。
- 局部地图跟踪。

1. 特征提取
提取每帧图像的特征点(如ORB) 和描述子。
2. 特征匹配
相邻帧间通过描述子匹配或光流跟踪得到匹配点对。
3. 运动估计
- 初始化: 前两帧间, 使用对极几何(八点法) 估计本质矩阵, 分解得到 R,t, 并三角化初始地图点。
- 后续帧: 使用PnP(EPnP) 估计当前帧位姿, 地图点已知。
4. 三角测量
对于新的匹配点对, 通过多视图几何三角化新的地图点。
5. 局部地图跟踪
将局部地图点投影到当前帧, 匹配更多点, 优化当前位姿。

SLAM前端、 视觉里程计、 实时定位

特征匹配、 运动估计、 三角测量

参数配置
- 特征点数: 每帧提取1000-2000个特征点。
- 匹配方法: 描述子匹配(最近邻比测试) 或光流(LK)。
- RANSAC参数: 用于运动估计, 内点阈值1-3像素。
实现细节
- 初始化: 单目需要平面和非平面场景判断, 选择Homography或Fundamental矩阵。
- 关键帧选择: 当视点变化显著或跟踪点少时插入关键帧。
优化技巧
- 鲁棒性: 1) 使用IMU辅助运动预测, 缩小匹配搜索范围。 2) 使用动态物体检测和剔除。 3) 使用多传感器融合。
- 效率: 1) 使用特征网格分布保持均匀。 2) 使用图像金字塔进行光流跟踪。 3) 使用并行特征提取和匹配。


编号

领域

模型配方

核心要点

51

图像去噪

非局部均值去噪

利用图像中非局部相似块进行加权平均去噪。 参数:搜索窗口大小, 相似块大小, 滤波参数h。

52

图像配准

基于互信息的配准

最大化两幅图像之间的互信息来对齐图像。 常用于多模态图像配准。

53

图像分割

水平集方法

将曲线演化表示为水平集函数的演化, 通过偏微分方程驱动曲线逼近目标边界。

54

特征检测

MSER

检测最大稳定极值区域, 对仿射变换和光照变化鲁棒, 常用于文本检测。

55

三维视觉

泊松表面重建

从点云和法向量重建光滑表面, 通过求解泊松方程得到隐式表面函数。

56

目标检测

RetinaNet

引入Focal Loss解决单阶段检测器中前景-背景类别不平衡问题, 使用特征金字塔网络。

57

图像生成

StyleGAN

通过风格迁移和噪声注入生成高分辨率、高保真人脸图像, 支持风格混合和编辑。

58

视频分析

光流法

估计像素在相邻帧间的运动矢量, 基于亮度恒定和小运动假设。

59

图像增强

暗通道先验去雾

基于户外无雾图像暗通道接近0的先验, 从单幅图像去除雾霾。

60

图像分割

Mean Shift分割

基于特征空间密度估计的无参聚类方法, 用于图像分割和颜色聚类。

计算机视觉及多维视觉定位模型/算法/方程式列表 (51-60)

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

51

图像去噪

非局部均值去噪 (Non-Local Means)

输入: 含噪图像 I:Ω⊂Z2→R(灰度)。
输出: 去噪图像 J。
核心参数
- 搜索窗口大小 S×S(例如 21×21)。
- 相似块大小 P×P(例如 7×7)。
- 滤波参数 h(控制衰减速度)。
- 衰减参数 β(通常为1)。
中间变量
- 以像素 i和 j为中心的图像块 Ni​,Nj​。
- 权重 w(i,j)。

1. 核心思想
对于图像中每个像素 i, 其去噪后的值 J(i)是图像中所有像素​ j的加权平均, 权重取决于以 i和 j为中心的图像块 Ni​和 Nj​的相似度。
2. 权重计算
两个图像块 Ni​和 Nj​之间的高斯加权欧氏距离:
d2(i,j)=Z1​∑k∈P​Gσ​(k)∥Ni​(k)−Nj​(k)∥2
其中 Gσ​是标准差为 σ的高斯核, 用于给块内中心像素更高权重, Z是归一化常数。
权重由距离决定:
w(i,j)=exp(−h2max(d2(i,j)−2σ2,0)​)
其中 σ是图像噪声标准差估计值, 减去 2σ2是为了对期望距离进行无偏估计, 提高权重准确性。
3. 像素值估计
去噪后像素 i的值为:
J(i)=∑j∈Ω​w(i,j)∑j∈Ω​w(i,j)I(j)​
实际操作中, j的范围限制在以 i为中心的搜索窗口内。

医学图像去噪、 老照片修复、 高保真度去噪

非局部平均、 图像自相似性、 加权平均

参数配置
- 搜索窗口 S: 越大, 能找到更多相似块, 去噪效果越好, 但计算量剧增。 通常21×21是平衡点。
- 相似块大小 P: 越大, 对结构保持越好, 但可能模糊细节。 通常5×5或7×7。
- 滤波参数 h: 控制平滑强度。 h越大, 权重分布越平缓, 平滑越强。 通常设为 h=λ⋅σ, 其中 λ在0.8~1.2之间, σ为噪声标准差估计。
实现细节
- 噪声估计: 可使用小波变换或图像平坦区域的方差来估计噪声水平 σ。
- 边界处理: 对图像边缘的像素, 搜索窗口和相似块会超出图像范围, 常用对称填充或复制填充。
优化技巧
- 性能: 1) 使用积分图像加速块间距离计算。 2) 使用预计算的块间距离表。 3) 在下采样的图像上进行NLM, 然后上采样结果, 大幅加速(快速NLM)。 4) 使用PCA对图像块降维后再计算距离。
- 质量: 1) 使用颜色信息(对彩色图像, 在CIELab等颜色空间计算距离)。 2) 结合小波域DCT变换域的NLM, 提高对特定噪声的鲁棒性。

52

图像配准

基于互信息的配准

输入: 参考图像 R和浮动图像 F。
输出: 最优空间变换参数 θ(如刚体变换的旋转和平移)。
核心参数
- 变换模型 Tθ​(如仿射、 弹性)。
- 优化算法 (如梯度下降、 Powell法)。
- 直方图bin数 B(用于估计概率分布)。
中间变量
- 联合直方图 HRF​(r,f)。
- 边缘直方图 HR​(r),HF​(f)。
- 互信息 MI(R,F)。

1. 互信息定义
对于两幅图像 R和 F∘Tθ​(浮动图像经变换后), 其互信息衡量它们之间的统计依赖性:
MI(R,F∘Tθ​)=H(R)+H(F∘Tθ​)−H(R,F∘Tθ​)
其中 H(⋅)表示熵: H(X)=−∑x​p(x)logp(x)。
联合熵: H(X,Y)=−∑x,y​p(x,y)logp(x,y)。
2. 概率估计
通过归一化图像对的联合灰度直方图来估计联合概率分布 p(r,f):
p(r,f)=∑r′,f′​HRF​(r′,f′)HRF​(r,f)​
边缘分布 pR​(r)=∑f​p(r,f), pF​(f)=∑r​p(r,f)。
3. 优化问题
寻找变换参数 θ最大化互信息:
θ^=argmaxθ​MI(R,F∘Tθ​)
4. 梯度计算 (用于基于梯度的优化器)
互信息关于变换参数 θ的梯度计算涉及链式法则, 需要计算图像 F∘Tθ​的空间梯度以及互信息关于图像灰度的偏导数。 可使用Parzen窗或B样条进行概率密度估计以获得可微的互信息估计。

多模态医学图像配准 (如MRI-PET, CT-MRI)、 遥感图像融合

信息论、 互信息、 熵、 概率密度估计

参数配置
- 直方图bin数 B: 通常为16, 32, 64。 太少会丢失信息, 太多会导致直方图稀疏, 估计不准。 对于16位图像, 可先线性或非线性映射到8位。
- 优化器: 常用Powell法 (无需梯度) 或自适应随机梯度下降。 初始变换参数需接近真值。
- 插值方法: 变换图像时需插值。 线性插值平衡速度与精度; 高阶B样条插值更精确但更慢。
实现细节
- 归一化互信息 (NMI): 使用 NMI=H(R,F)H(R)+H(F)​或 NMI=H(R)+H(F)2MI​, 对重叠区域变化更鲁棒, 是更常用的度量。
- 采样: 不必使用所有像素计算直方图, 可随机采样一部分像素以加速。
优化技巧
- 鲁棒性: 1) 使用多分辨率金字塔从粗到精配准, 避免局部最优。 2) 结合图像梯度信息 (如梯度互信息)。 3) 使用鲁棒估计去除异常区域影响。
- 精度与速度: 1) 使用B样条表示变形场进行非刚性配准。 2) 使用​ demons算法光流思想进行快速稠密配准作为初始值。

53

图像分割

水平集方法

输入: 图像 I(x,y), 初始轮廓曲线 C0​。
输出: 演化后的轮廓曲线 C, 即分割边界。
核心参数
- 时间步长 Δt。
- 迭代次数 N。
- 正则化参数 μ,ν,λ。
中间变量
- 水平集函数 ϕ(x,y,t):Ω×R+→R, 满足 (C(t) = {(x,y)

\phi(x,y,t)=0})。
- 曲率 (\kappa = \nabla \cdot \left( \frac{\nabla \phi}{

\nabla \phi

} \right))。
- 力函数 F。

1. 水平集表示
将曲线 C嵌入到一个更高一维的标量函数 ϕ的零水平集中。 通常设 ϕ为符号距离函数 (SDF): 在曲线内为正, 曲线外为负, 绝对值表示到曲线的距离。
2. 演化方程
曲线沿法线方向演化, 速度由力 F驱动。 对应的水平集函数演化方程为:
(\frac{\partial \phi}{\partial t} + F

54

特征检测

最大稳定极值区域 (MSER)

输入: 灰度图像 I。
输出: 一组区域 Ri​⊂Ω, 具有最大稳定性。
核心参数
- 灰度阈值变化范围 Δ(稳定性判据)。
- 区域面积变化阈值。
- 最小/最大区域面积。
中间变量
- 二值图像序列 Ith​(阈值从0到255)。
- 连通区域树。
原理: 对图像进行阈值化, 记录下每个连通区域 (极值区域) 随阈值变化的面积, 选择在阈值变化一定范围内面积变化最小的区域。

1. 极值区域
对于灰度图像, 一个区域 R是极值区域, 如果对于区域 R内的所有像素 p∈R和区域边界 δR上的所有像素 q∈δR, 满足 I(p)>I(q)(极大区域) 或 I(p)<I(q)(极小区域)。
2. 阈值分解
将图像从黑到白 (或从白到黑) 进行阈值化, 得到一系列二值图像 Bth​。 随着阈值变化, 二值图像中的连通区域 (前景) 会生长、 合并。
3. 区域树构建
记录每个连通区域随阈值变化的过程, 形成一个树结构。 节点是区域, 父节点是阈值降低 (对于极大区域) 时合并产生的更大区域。
4. 稳定性度量
对于一个区域 R, 设其在阈值 i时出现。 定义其在阈值变化 Δ范围内的稳定性为:
(s(i) = \frac{

R_{i+\Delta}

-

R_{i-\Delta}

55

三维视觉

泊松表面重建

输入: 定向点云 {(pi​,ni​)}, 其中 pi​∈R3是点位置, ni​∈R3是单位法向量。
输出: 隐式表面函数 χ:R3→R或其等值面 (三角网格)。
核心参数
- 八叉树深度 D。
- 等值面值 α(通常0.5)。
中间变量
- 指示函数 χ的梯度场近似 V~。
- 泊松方程 Δχ=∇⋅V~。

1. 问题建模
将表面 S看作一个三维指示函数 χ的等值面, 在表面内部 χ=1, 外部 χ=0。 理想情况下, χ的梯度场 ∇χ是一个向量场, 在表面处为外向法向量, 其他地方为零。
2. 梯度场近似
用输入的点云和法向量来近似这个梯度场。 对每个样本点 (pi​,ni​), 将其贡献扩散到局部邻域:
V~(x)=∑i​ni​⋅δ~(x−pi​)
其中 δ~是一个平滑的狄拉克函数近似 (如高斯核或帐篷函数)。
3. 泊松方程
由于 ∇χ的散度在表面处类似于狄拉克函数, 而在其他地方为零, 我们可以建立方程:
Δχ=∇⋅V~
这是一个标准的泊松方程。
4. 离散化求解
使用自适应八叉树对空间进行划分。 在八叉树的每个节点 (体素) 上, 用三线性样条基函数 Bo​表示标量函数 χ和向量场 V~。 将泊松方程离散化为一个大型稀疏线性系统:
Lx=v
其中 L是离散拉普拉斯算子的矩阵, x是待求的节点上的 χ值向量, v是离散散度向量。 使用共轭梯度法等求解。
5. 等值面提取
求解得到 χ后, 使用移动立方体 (Marching Cubes) 算法在八叉树叶节点提取等值面 χ=α(通常 α=0.5) 得到三角网格。

从扫描点云重建水密曲面、 三维建模、 点云补全

泊松方程、 八叉树、 隐式表面、 移动立方体

参数配置
- 八叉树深度 D: 控制重建的分辨率。 深度每增加1, 体素边长减半。 通常8-12, 取决于点云密度和所需细节。
- 样条阶数: 通常使用三线性 (一阶) B样条基函数, 在精度和效率间取得平衡。
实现细节
- 法向量一致性: 输入点云的法向量方向必须一致 (都指向外部或内部)。 可使用最小生成树或视线方向进行法向量定向。
- 边界处理: 求解泊松方程需要定义边界条件。 通常假设在求解区域边界处 χ=0(狄利克雷边界条件)。
优化技巧
- 效率: 1) 使用自适应八叉树, 在点云密集区域细分, 稀疏区域保持粗糙。 2) 使用预计算的模板加速离散拉普拉斯和散度矩阵的构建。 3) 使用多重网格法加速大规模线性系统的求解。
- 质量: 1) 在求解前对点云进行离群点剔除降噪。 2) 调整等值面值 α可以轻微调整重建表面的收缩或膨胀。 3) 使用​ screened Poisson​ 重建, 在方程中加入拟合点位置的约束, 对噪声更鲁棒。

56

目标检测

RetinaNet

输入: 图像 I。
输出: 边界框和类别。
核心结构
- 特征金字塔网络 (FPN) 骨干。
- 分类子网和回归子网 (每个锚点独立预测)。
- Focal Loss
损失函数: Focal Loss + 回归损失。

1. 特征金字塔网络 (FPN)
使用一个CNN骨干 (如ResNet) 构建自底向上的通路, 然后通过横向连接和上采样构建自顶向下的通路, 产生多尺度特征图 {P3​,P4​,P5​,P6​,P7​}, 具有相同的通道数 (如256)。
2. 锚点机制
在每个特征图像素上, 设置一组锚框。 在FPN的不同层, 锚框的尺度不同 (如 P3​到 P7​对应的基础尺度为 322,642,1282,2562,5122), 每层有3种长宽比 {1:2,1:1,2:1}。
3. 预测头
分类子网和回归子网是共享权重的两个小型FCN, 分别附加在每个FPN层上。 对于每个锚点, 分类子网输出 K个类别概率, 回归子网输出4个相对于锚点的偏移量。
4. Focal Loss
为了解决单阶段检测器中前景-背景的极端类别不平衡, 使用Focal Loss:
FL(pt​)=−αt​(1−pt​)γlog(pt​)
其中 pt​={p1−p​if y=1otherwise​是模型对于真值类别的估计概率。 αt​是类别权重, γ>0是调制因子。 (1−pt​)γ降低了易分类样本 (pt​大) 的损失贡献, 使模型聚焦于难分类样本。

密集目标检测、 类别不平衡场景 (如行人检测)

特征金字塔、 Focal Loss、 锚点机制

参数配置
- FPN层: 通常使用骨干网络的 {C3​,C4​,C5​}层构建, 并额外添加 P6​,P7​。
- 锚点: 每层锚点尺度为基础尺度的 {20,21/3,22/3}倍。 每个位置共9个锚点。
- Focal Loss参数: γ通常取2, α通常取0.25。 这些值在COCO数据集上调优得到。
实现细节
- 训练样本分配: 锚点与真实框的IoU>0.5为正样本, <0.4为负样本, 其余忽略。 使用OHEM (在线难例挖掘) 的变体, 但Focal Loss本身已能处理。
- 推理: 在所有FPN层上收集预测, 使用阈值过滤低置信度预测, 然后进行NMS。
优化技巧
- 精度: 1) 使用更强的骨干网络 (如ResNeXt)。 2) 使用可变形卷积增强空间建模能力。 3) 使用​ soft-NMS​ 或 ​ matrix NMS​ 改善密集场景检测。
- 速度: 1) 使用深度可分离卷积构建预测头。 2) 使用TensorRT进行部署优化, 融合操作。

57

图像生成

StyleGAN

输入: 潜在代码 z∈Z(通常 ∼N(0,I))。
输出: 生成的高分辨率图像 I。
核心结构
- 映射网络​ f:Z→W。
- 合成网络​ g(由多个风格块组成)。
- 风格混合正则化噪声输入
损失函数: 非饱和GAN损失, 路径长度正则化。

1. 映射网络
将潜在代码 z通过一个8层MLP映射到中间潜在空间 W得到 w。 这解耦了输入 latent 的空间, 使得不同的维度可以控制不同的视觉特征。
2. 自适应实例归一化 (AdaIN)
合成网络 g的每个风格块包含卷积、噪声添加和AdaIN操作。 AdaIN是核心:
AdaIN(xi​,y)=ys,i​σ(xi​)xi​−μ(xi​)​+yb,i​
其中 xi​是第 i个特征图, y=(ys​,yb​)是通过对 w进行仿射变换得到的风格向量, 控制每个特征图的缩放和偏置。
3. 风格输入
不同的风格向量可以输入到合成网络的不同层, 实现对不同层次 (粗糙、中等、精细) 视觉属性的控制。
4. 随机噪声输入
在每次卷积后添加逐像素的随机噪声, 用于生成随机的细节 (如头发、 毛孔)。
5. 风格混合
在训练时, 随机使用两个不同的 w来生成图像, 一个用于控制低层特征, 另一个用于控制高层特征, 鼓励风格解耦。

高分辨率人脸生成、 艺术创作、 图像编辑、 风格插值

生成对抗网络、 自适应实例归一化、 风格控制

参数配置
- 潜在空间维度: Z和 W通常为512维。
- 映射网络深度: 通常8层。
- 合成网络分辨率: 从4×4逐步上采样到1024×1024。
实现细节
- 渐进式增长: 训练时从低分辨率开始, 逐步添加新的层来生成更高分辨率, 提高训练稳定性 (StyleGANv1)。 StyleGANv2 使用了重设计的生成器架构, 移除了渐进式增长, 解决了“水滴”伪影等问题。
- 路径长度正则化: 鼓励潜在空间到图像空间的映射是线性的, 提高可编辑性。
优化技巧
- 质量与可控性: 1) 使用StyleGAN2/3​ 架构, 质量更高, 训练更稳定。 2) 使用截断技巧: 在采样时缩小 w的采样范围, 可以提高平均质量但降低多样性。 3) 使用感知路径长度线性可分性作为评估指标。
- 应用: 1) 通过潜空间编码​ (如e4e, ReStyle) 可将真实图像编码到 W+空间进行编辑。 2) 通过属性向量在潜空间中进行语义方向编辑。

58

视频分析

光流法

输入: 时间相邻的两帧灰度图像 I1​(x,y),I2​(x,y)。
输出: 稠密光流场 (u(x,y),v(x,y)), 表示 I1​中像素 (x,y)到 I2​的位移。
核心假设
- 亮度恒定: I(x+u,y+v,t+1)=I(x,y,t)。
- 小运动: u,v很小。
- 空间一致性: 邻域内运动相似。
变分框架: Horn-Schunck 方法。

1. 数据项
基于亮度恒定假设, 有:
Ix​u+Iy​v+It​=0
其中 Ix​,Iy​,It​是图像在 x,y,t方向的偏导数。
2. 平滑项
假设光流场平滑, 引入梯度平方和作为平滑约束:
(

\nabla u

^2 +

\nabla v

59

图像增强

暗通道先验去雾

输入: 有雾图像 I。
输出: 去雾图像 J。
核心先验: 在户外无雾图像中, 绝大多数局部区域至少在一个颜色通道上有很低的值 (即“暗通道”)。
模型: 大气散射模型 I(x)=J(x)t(x)+A(1−t(x))。

1. 暗通道定义
对于图像 J, 其暗通道 Jdark定义为:
Jdark(x)=minc∈{r,g,b}​(miny∈Ω(x)​(Jc(y)))
其中 Ω(x)是以 x为中心的局部窗口。
2. 暗通道先验
对于户外无雾图像 J, 除了天空区域, Jdark→0。
3. 透射率估计
假设大气光 A已知, 且在局部窗口内透射率 t(x)恒定。 对大气散射模型取暗通道操作, 并利用先验 Jdark≈0, 可得:
t(x)=1−ωminc​(miny∈Ω(x)​(AcIc(y)​))
其中 ω(通常0.95) 是为保留远处景物的少量雾感而引入的参数。
4. 大气光估计
取暗通道图中最亮的0.1%的像素, 这些像素对应原图 I中最可能是天空或高亮区域的像素, 取这些像素在 I中的强度的最大值作为 A。
5. 图像恢复
由大气散射模型解出:
J(x)=max(t(x),t0​)I(x)−A​+A
其中 t0​(通常0.1) 是一个下限, 防止透射率过小导致噪声放大。

单幅图像去雾、 户外图像增强、 水下图像复原

大气散射模型、 先验知识、 图像恢复

参数配置
- 窗口大小 Ω: 通常15×15。 影响透射率图的粗细程度。
- 参数 ω: 控制去雾强度, 0.95 是经验值, 可微调。
- 透射率下限 t0​: 防止除零和噪声放大, 0.1 是常用值。
实现细节
- 导向滤波: 原始方法得到的透射率图存在块效应。 使用导向滤波​ (Guided Filter) 以原图 I为引导图对透射率图进行边缘保持平滑, 获得更精细的结果。
- ​ soft matting: 另一种优化透射率图的方法, 但计算量更大。
优化技巧
- 处理天空区域: 暗通道先验在天空区域失效。 可通过检测天空区域, 对该区域使用更高的透射率值来避免颜色失真。
- 加速: 1) 使用下采样的图像估计透射率, 然后上采样, 再引导滤波。 2) 使用积分图加速最小值滤波计算。
- 改进先验: 1) 使用颜色衰减先验。 2) 结合深度学习方法估计透射率和大气光, 获得更鲁棒的结果 (如DehazeNet, AOD-Net)。

60

图像分割

均值漂移分割

输入: 图像 I, 可视为 d维特征空间中的点集 (如位置+颜色, d=5)。
输出: 分割后的区域, 每个区域对应特征空间中的一个模态。
核心思想: 在特征空间中找到概率密度函数的局部极大值点 (模态), 并将每个点归属到其收敛到的模态。
算法: 迭代的梯度上升过程。

1. 特征空间与核密度估计
将每个像素映射为特征向量, 如 xi​=(xi​,yi​,Li​,ai​,bi​)T(空间+Lab颜色)。 使用核密度估计 (KDE) 估计特征空间的概率密度:
f^​(x)=n1​∑i=1n​K(​hx−xi​​​2)
常用核为高斯核或Epanechnikov核。
2. 均值漂移向量
密度梯度估计的归一化方向指向密度增加最快的方向。 均值漂移向量定义为:
m(x)=∑i=1n​g(∥hx−xi​​∥2)∑i=1n​xi​g(∥hx−xi​​∥2)​−x
其中 g是核函数 K的导数 (对于高斯核, g=K)。
3. 均值漂移过程
从一个初始点 x(0)开始, 迭代执行:
x(t+1)=x(t)+m(x(t))
这个过程会收敛到概率密度函数的局部极大值点 (模态)。
4. 分割实现
- 对每个像素 (在特征空间中) 运行均值漂移过程, 收敛到某个模态。
- 将收敛到同一个模态 (在允许的容差范围内) 的所有像素归为同一个区域。
- 可合并空间上相邻但颜色模态非常接近的小区域。

颜色聚类、 图像分割、 视频跟踪

核密度估计、 均值漂移、 模态寻找

参数配置
- 空间带宽 hs​: 控制空间邻近性在聚类中的重要性。 越大, 分割出的区域空间上越大。
- 颜色/范围带宽 hr​: 控制颜色/特征相似性在聚类中的重要性。 越大, 对颜色差异越容忍, 区域内部颜色越不一致。
- 最小区域大小: 分割后滤除过小的区域, 将其合并到相邻的最大相似区域。
实现细节
- 高效实现: 1) 使用离散化的特征空间和查找表加速。 2) 对特征空间进行下采样, 运行均值漂移, 然后将结果传播到所有像素。
- 收敛判断: 当位移小于阈值或达到最大迭代次数时停止。
优化技巧
- 速度: 1) 使用快速均值漂移算法, 通过空间索引加速最近邻搜索。 2) 在图像金字塔上分层处理, 从粗到精。
- 质量: 1) 使用自适应带宽, 在稀疏区域用大带宽, 密集区域用小带宽。 2) 将纹理边缘等特征加入特征向量。 3) 后处理时使用分水岭变换连通成分分析来获得更规则的区域边界。

计算机视觉及多维视觉定位模型/算法/方程式列表 (61-70)

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

61

三维重建

运动恢复结构 (SfM)

输入: 多视角图像序列 {Ii​}i=1N​。
输出: 相机位姿 ({P_i = K_i [R_i

t_i]}_{i=1}^{N} ), 稀疏三维点云 {Xj​}j=1M​。
核心步骤
- 特征提取与匹配。
- 增量式重建。
- 光束法平差 (BA)。
关键参数
- 特征类型 (如SIFT)。
- 匹配阈值。
- BA优化参数。

1. 特征提取与匹配
对每幅图像提取局部特征 (如SIFT), 得到特征点位置和描述子。 对所有图像对进行特征匹配, 得到匹配点对集合。
2. 初始化
选择一对具有足够匹配点且视差较大的图像 (如基线足够大), 通过对极几何估计两视图间的本质矩阵 E, 分解得到初始相机位姿 P1​,P2​, 并使用三角化得到初始三维点云。
3. 增量注册
重复以下步骤直到所有图像被注册:
a. 选择下一张图像: 选择与已重建点云有最多匹配点的图像。
b. 求解PnP: 使用已有点的2D-3D对应, 通过RANSAC+PnP求解新图像的相机位姿 Pk​。
c. 三角化新点: 利用新图像的位姿, 对新的匹配点对进行三角化, 增加新的三维点。
d. 局部BA: 优化新加入的相机位姿和与之关联的三维点, 以及最近的几个关键帧的位姿。
4. 全局BA
所有图像注册完成后, 执行一次全局光束法平差, 优化所有相机参数和三维点坐标, 最小化重投影误差。

三维重建、 摄影测量、 场景建模

对极几何、 PnP、 三角测量、 光束法平差

62

视觉定位

直接稀疏里程计 (DSO)

输入: 图像序列 {Ii​}。
输出: 相机位姿 Ti​∈SE(3), 稀疏深度图 (逆深度)。
核心思想
- 最小化光度误差。
- 联合优化所有模型参数 (位姿、深度、光度参数)。
- 滑动窗口优化。
参数
- 滑动窗口大小。
- 光度标定参数。

1. 光度误差模型
考虑仿射亮度变换, 对于点在主机帧 Ii​中的像素 p和在目标帧 Ij​中的观测, 误差为:
Epj​=∑p∈Np​​wp​​(Ij​[p′]−bj​)−ti​eai​tj​eaj​​(Ii​[p]−bi​)​γ​
其中 p′=π(Tji​⋅π−1(p,dp​))是投影点, ti​,ai​,bi​是帧的光度参数 (曝光时间、 仿射亮度变换参数), wp​是梯度相关的权重, ∥⋅∥γ​是Huber范数。
2. 状态向量
包括滑动窗口内所有关键帧的位姿 Ti​(李代数表示 ξi​)、 点的逆深度 dp​、 以及每帧的光度参数 ai​,bi​。
3. 优化问题
最小化总光度误差:
E=∑i∈F​∑p∈Pi​​∑j∈obs(p)​Epj​
其中 obs(p)是能观测到点 p的帧集合。
4. 滑动窗口优化与边缘化
维护一个固定大小的滑动窗口。 当新帧加入时, 将最旧的帧及其观测的点边缘化, 将其信息转换为先验约束加入到优化中, 以保持计算量有界。

视觉里程计、 直接法SLAM、 实时定位

光度误差、 李代数优化、 滑动窗口、 边缘化

参数配置
- 滑动窗口大小: 通常7-10个关键帧。
- 点的选择: 在梯度明显的区域选取点, 使用均匀分布策略。
- 光度标定: 如果已知曝光时间, 可固定 ti​; 否则和 ai​,bi​一起优化。
实现细节
- 高效优化: 由于误差项只依赖于少数状态, 海森矩阵具有稀疏结构, 使用舒尔补加速求解。
- 点管理: 点通常在主机帧中定义, 当其不在滑动窗口内或变得不可见时被边缘化。
优化技巧
- 鲁棒性: 1) 使用​ Huber核减少外点影响。 2) 对深度值使用逆参数化, 在优化中更稳定。 3) 采用距离阈值滤除投影误差大的点。
- 精度: 1) 使用金字塔从粗到精优化。 2) 在优化中考虑仿射亮度变换, 提高对光照变化的鲁棒性。 3) 结合IMU进行紧耦合优化 (如VI-DSO)。

63

人脸识别

人脸关键点检测 (SDM)

输入: 人脸图像 I, 初始形状 x0​(通常为平均形状)。
输出: 人脸关键点坐标 x∈R2n(n为关键点数)。
核心方法: 监督下降法 (Supervised Descent Method), 一种级联回归方法。
参数
- 回归器级数 K。
- 特征维度 d。

1. 问题形式化
寻找一个映射 f:I→x, 使得预测形状与真实形状的误差最小。 SDM将其转化为学习一系列回归器 Rk​, 逐步更新形状:
xk​=xk−1​+Rk−1​ϕ(I,xk−1​)
其中 ϕ(I,xk−1​)是在当前形状 xk−1​处提取的特征 (如SIFT)。
2. 学习回归器
对于第 k级, 学习一个线性回归器 Rk​来预测形状增量:
Rk​=argminR​∑i=1N​∥Δxki​−Rϕ(Ii,xk−1i​)∥2+λ∥R∥F2​
其中 Δxki​=x∗i​−xk−1i​是当前形状与真实形状的差值, λ是正则化参数。 解为:
Rk​=ΔXk​ΦkT​(Φk​ΦkT​+λI)−1
其中 Φk​是所有训练样本的特征矩阵。
3. 特征提取
在每一级, 以当前估计形状的每个关键点为中心提取特征 (如128维SIFT描述子), 拼接成一个长特征向量。
4. 推理
从初始形状 x0​开始, 依次应用学习到的回归器 R1​,R2​,...,RK​更新形状, 得到最终关键点位置。

人脸对齐、 表情分析、 人脸识别预处理

级联回归、 线性回归、 特征提取

参数配置
- 级数 K: 通常4-5级即可收敛。
- 特征: 常用SIFT, HOG, LBP等。 特征提取的区域大小 (像素数) 通常随级数增加而减小, 以从粗到精定位。
- 正则化参数 λ: 防止过拟合, 通常较小 (如0.0001)。
实现细节
- 数据增强: 训练时通过对齐的训练图像进行随机扰动 (平移、 旋转、 缩放) 生成多个初始形状, 增加鲁棒性。
- 初始化: 可使用人脸检测框和平均形状进行相似变换得到初始形状。
优化技巧
- 鲁棒性: 1) 使用更鲁棒的特征​ (如HOG)。 2) 在训练回归器时, 对难样本进行重采样加权。 3) 使用非线性回归器​ (如随机森林) 替代线性回归器, 但计算量增加。
- 速度: 1) 使用积分图像加速特征计算。 2) 使用提前终止策略, 当形状更新很小时停止。 3) 使用模型蒸馏到更小的网络。

64

图像分类

SENet (Squeeze-and-Excitation Networks)

输入: 特征图 U∈RH×W×C。
输出: 重标定后的特征图 U~∈RH×W×C。
核心模块: SE块, 包含压缩 (Squeeze) 和激励 (Excitation) 两个操作。
参数
- 缩减率 r。
- 激活函数 (ReLU, Sigmoid)。

1. 压缩 (全局信息嵌入)
对每个通道, 进行全局平均池化, 得到一个通道描述子 z∈RC:
zc​=H×W1​∑i=1H​∑j=1W​uc​(i,j)
2. 激励 (通道间依赖关系建模)
通过两个全连接层学习每个通道的权重:
s=σ(W2​δ(W1​z))
其中 W1​∈RrC​×C, W2​∈RC×rC​, δ是ReLU激活, σ是Sigmoid激活。 r是缩减率, 用于降低参数量。
3. 重标定
将学习到的权重 sc​乘到对应的通道特征图上:
u~c​=sc​⋅uc​
SE块可以灵活插入到现有的网络架构 (如ResNet, Inception) 中。

图像分类、 目标检测、 通道注意力

注意力机制、 通道重标定、 全局平均池化

参数配置
- 缩减率 r: 通常取16, 在参数量增加和性能提升间取得平衡。
- 插入位置: 可插入在残差块的非恒等映射分支之后, 相加之前。
实现细节
- 计算开销: SE块增加的计算量很小, 且可以通过全局平均池化和小的全连接层实现。
- 与其他注意力结合: 可与空间注意力模块结合, 形成CBAM (Convolutional Block Attention Module)。
优化技巧
- 架构搜索: 使用神经架构搜索 (NAS) 寻找最优的缩减率和插入位置。
- 与其他技术结合: 1) 与分组卷积深度可分离卷积结合, 构建轻量级注意力网络。 2) 在目标检测中, 将SE块插入FPN, 增强多尺度特征。

65

目标检测

FCOS (全卷积单阶段检测器)

输入: 图像 I。
输出: 边界框和类别。
核心思想
- 逐像素预测, 无锚框。
- 中心度 (center-ness) 预测。
- 多尺度特征图预测。
损失函数: 分类损失 + 回归损失 + 中心度损失。

1. 全卷积预测
对于特征图上的每个位置 (x,y), 如果它落在任何真实框内, 则视为正样本, 并预测:
- 类别概率 px,y​。
- 到边界框四边的距离: l∗,t∗,r∗,b∗(左、上、右、下)。
- 中心度 c∗(用于抑制低质量检测)。
2. 中心度
中心度定义为:
c∗=max(l∗,r∗)min(l∗,r∗)​×max(t∗,b∗)min(t∗,b∗)​​∈[0,1]
中心度越接近1, 表示该点越接近目标中心。
3. 损失函数
L=Npos​1​∑x,y​Lcls​(px,y​,cx,y∗​)+Npos​λ​∑x,y​1{cx,y∗​>0}​Lreg​(dx,y​,dx,y∗​)+Npos​μ​∑x,y​1{cx,y∗​>0}​Lctr​(cx,y​,cx,y∗​)
其中 Lcls​是分类损失 (如Focal Loss), Lreg​是回归损失 (如IoU Loss或GIoU Loss), Lctr​是二值交叉熵损失用于中心度预测。
4. 推理
最终的检测置信度为类别概率与中心度的乘积: score=p×c。 然后使用NMS后处理。

无锚框目标检测、 密集预测

全卷积、 中心度、 无锚框检测

参数配置
- 正样本分配: 位置 (x,y)落在任何真实框内即被视为正样本。 为处理重叠, 选择面积最小的真实框作为回归目标。
- 多尺度预测: 使用FPN, 不同层负责不同大小的目标。 设定每层的回归范围, 如P3: [0,64], P4: [64,128], P5: [128,256], P6: [256,512], P7: [512,∞] (像素)。
- 中心度阈值: 训练时只对中心度大于0的样本计算回归和中心度损失。
实现细节
- 回归目标归一化: 回归目标 l∗,t∗,r∗,b∗除以当前特征层的步长进行归一化, 以稳定训练。
- 中心度分支: 与分类分支共享卷积体, 然后接一个独立的卷积层预测。
优化技巧
- 精度: 1) 使用GIoU Loss​ 替代L1 Loss进行回归。 2) 引入自适应采样策略, 动态选择高质量正样本。 3) 使用可变形卷积增强特征。
- 速度: 1) 由于无锚框, 减少了大量锚框相关的计算, 内存占用更低。 2) 使用深度可分离卷积构建检测头。

66

图像分割

SegNet

输入: 图像 I∈RH×W×3。
输出: 分割掩码 M∈{0,1,...,K}H×W。
核心结构
- 编码器-解码器对称结构。
- 解码器使用池化索引进行上采样。
损失函数: 逐像素交叉熵。

1. 编码器
由一系列卷积层、批归一化层、ReLU激活和最大池化层组成。 编码器记录每次最大池化操作时每个池化窗口内最大值的位置 (池化索引)。
2. 解码器
解码器的每一层对应编码器的一层。 解码器使用上采样操作, 该操作利用编码器传递的池化索引, 将特征图稀疏地放置到对应位置, 然后通过卷积层学习填充稀疏处的值。 具体步骤:
a. 上采样: 使用池化索引将输入特征图映射到稀疏的高分辨率特征图。
b. 卷积: 对稀疏特征图进行卷积, 结合上下文信息填充缺失值。
3. 最终分类
解码器最后一层输出 K个通道的特征图, 通过逐像素 softmax 得到类别概率, argmax 得到分割掩码。
4. 损失函数
逐像素交叉熵损失:
L=−∑i=1H​∑j=1W​∑k=1K​yijk​log(y^​ijk​)
其中 yijk​是真实标签的 one-hot 编码, y^​ijk​是预测概率。

语义分割、 实时分割

编码器-解码器、 池化索引、 上采样

参数配置
- 网络深度: 通常使用VGG16的13个卷积层作为编码器, 对应13个解码器层。
- 池化索引: 在编码器最大池化时, 记录2×2窗口内最大值的位置 (0,1,2,3)。
实现细节
- 批归一化: 在编码器和解码器的卷积后、激活前使用批归一化, 加速训练。
- 上采样实现: 在解码器, 首先将输入特征图每个2×2区域根据池化索引将值放到对应位置, 其他位置填0, 然后通过可学习的卷积核进行卷积填充。 这比反卷积 (转置卷积) 参数更少。
优化技巧
- 精度: 1) 在解码器添加跳跃连接​ (如U-Net), 融合低级细节特征。 2) 使用空洞卷积替代部分池化层, 保持分辨率。 3) 使用深度监督, 在解码器中间层添加辅助损失。
- 速度: 1) 使用深度可分离卷积减少计算量。 2) 使用知识蒸馏训练更小的网络。 3) 使用TensorRT等推理引擎优化。

67

三维视觉

基于点云的三维目标检测 (PointPillars)

输入: 点云 P∈RN×d, 通常 d=4(x,y,z,反射强度)。
输出: 三维边界框 (位置、尺寸、方向) 和类别。
核心步骤
1. 点云体素化为柱状体 (Pillars)。
2. 每个Pillar内使用PointNet提取特征。
3. 将Pillar特征散射到伪图像。
4. 使用2D CNN检测头检测。

1. 体素化 (Pillar化)
将点云在xy平面划分为均匀的网格, 每个网格在z方向不限高度, 形成一个柱状体 (Pillar)。 每个非空Pillar包含若干个点。
2. 特征提取
对每个Pillar内的点, 首先增强特征: 计算每个点相对于Pillar内所有点的均值偏移, 以及相对于Pillar几何中心的偏移。 然后将所有点的特征 (原始坐标、反射强度、偏移量) 通过一个简化的PointNet (线性层+批归一化+ReLU+最大池化) 提取为固定长度的特征向量 (如 C维)。
3. 伪图像生成
将每个Pillar提取的 C维特征, 根据Pillar在xy平面的位置, 放置到一个大小为 (H,W,C)的伪图像中, 其中 H,W是划分的网格数。 空的Pillar位置填充0。
4. 2D CNN检测
将伪图像送入一个2D CNN骨干网络 (如类似SSD的结构), 提取多尺度特征图, 然后在特征图上使用锚框或锚点进行三维边界框回归和分类。 由于伪图像是俯视图, 边界框回归包括中心 (x,y,z)、尺寸 (l,w,h)和方向 θ(绕z轴旋转)。

自动驾驶、 三维目标检测

点云处理、 体素化、 伪图像、 2D CNN

参数配置
- Pillar网格大小: 在xy平面划分的网格分辨率, 如0.16米, 对应点云范围 (通常[-50,50]米) 得到网格数约625×625。
- 每个Pillar最大点数: 通常限制为比如100, 超过则随机采样, 不足则补零。
- Pillar特征维度: 通常64维。
实现细节
- 高效实现: 使用自定义CUDA内核加速Pillar化和特征提取。
- 数据增强: 对点云进行全局旋转、缩放、平移, 以及对单个目标进行旋转、平移。
优化技巧
- 精度: 1) 使用更强大的2D骨干网络​ (如ResNet)。 2) 引入注意力机制增强特征。 3) 使用多视角融合​ (结合前视图或图像特征)。
- 速度: 1) 由于Pillar化不涉及z轴划分, 计算量比3D体素化小很多。 2) 使用TensorRT部署, 进行层融合和量化。

68

视觉定位

视觉惯性里程计 (VINS-Mono)

输入: 单目图像序列, IMU数据。
输出: 相机轨迹, 稀疏地图, IMU偏置。
核心方法
- 紧耦合滑动窗口非线性优化。
- IMU预积分。
- 回环检测与位姿图优化。

1. 测量预处理
- 图像: 提取Harris角点, 使用KLT光流跟踪, 去除外点。
- IMU: 在图像帧之间进行预积分, 得到相对运动约束。
2. 初始化
纯视觉SfM恢复出尺度和轨迹, 与IMU预积分对齐, 求解尺度、重力、速度、IMU偏置的初始值。
3. 紧耦合滑动窗口非线性优化
状态向量包括滑动窗口内所有帧的位姿、速度、IMU偏置, 以及特征点的逆深度。 优化以下代价函数:
minX​{∑k∈B​∥rB​(z^bk​bk+1​​,X)∥Pbk​bk+1​​2​+∑(l,j)∈C​∥rC​(z^lcj​​,X)∥Plcj​​2​}
其中第一项是IMU预积分残差, 第二项是视觉重投影残差。 使用滑动窗口, 当新帧加入时边缘化旧帧。
4. 回环检测
使用DBoW2进行回环检测, 然后执行4自由度位姿图优化 (x,y,z, yaw) 以校正漂移。

单目视觉惯性SLAM、 移动设备定位

紧耦合、 滑动窗口、 IMU预积分、 位姿图优化

参数配置
- 滑动窗口大小: 通常10-15帧。
- 特征点数量: 每帧提取100-300个角点。
- IMU频率: 通常100-200Hz。
实现细节
- 边缘化策略: 边缘化最老的帧时, 如果它是关键帧, 则保留其观测到的点, 否则将点也边缘化。
- 外点剔除: 在优化中使用鲁棒核函数, 并检测和剔除重投影误差大的点。
优化技巧
- 鲁棒性: 1) 使用在线时间标定补偿相机和IMU之间的时间偏移。 2) 在快速运动或纹理缺失时依赖IMU。 3) 使用故障检测与恢复机制。
- 精度: 1) 使用双目或RGB-D​ 直接获得尺度信息, 避免单目初始化问题。 2) 结合GPS等全局传感器。

69

图像生成

自编码器 (Autoencoder)

输入: 数据 x∈RD。
输出: 重构数据 x^∈RD。
核心结构
- 编码器 f:RD→Rd, 将输入压缩为潜在编码 z。
- 解码器 g:Rd→RD, 从潜在编码重构数据。
损失函数: 重构误差 (如均方误差)。

1. 编码过程
z=f(x)=σ(We​x+be​)
其中 We​∈Rd×D,be​∈Rd, σ是激活函数 (如ReLU)。 d≪D。
2. 解码过程
x^=g(z)=σ′(Wd​z+bd​)
其中 Wd​∈RD×d,bd​∈RD, σ′可能是Sigmoid (如果输入在[0,1]) 或线性。
3. 优化目标
最小化重构误差:
L(x,x^)=∥x−x^∥2
或对于二值数据使用交叉熵损失。
4. 变分自编码器 (VAE)​ 扩展:
编码器输出潜在分布的参数 (均值和方差), 从分布中采样 z, 并增加KL散度正则项, 使潜在分布接近标准正态分布。

数据降维、 特征学习、 去噪、 生成模型

编码器-解码器、 重构误差、 潜在空间

参数配置
- 潜在空间维度 d: 控制压缩率, 需权衡重构质量和泛化能力。
- 网络深度和宽度: 通常对称, 中间层维度先减后增。
实现细节
- 去噪自编码器: 训练时在输入中加入噪声, 要求重构出干净数据, 提高鲁棒性。
- 稀疏自编码器: 在损失中加入潜在编码的稀疏性惩罚 (如L1正则)。
优化技巧
- 生成质量: 1) 使用变分自编码器 (VAE)​ 获得可生成新样本的概率模型。 2) 结合对抗训练​ (如VAE-GAN) 提高生成图像清晰度。
- 表示学习: 1) 使用卷积自编码器处理图像, 捕捉空间结构。 2) 使用多层编码器解码器学习层次特征。

70

目标跟踪

MOSSE滤波器

输入: 初始帧中的目标区域, 后续视频帧。
输出: 目标在新帧中的位置。
核心思想
- 在傅里叶域训练一个相关滤波器, 使得滤波响应在目标位置产生高峰。
- 在线更新滤波器以适应目标外观变化。

1. 训练
给定初始帧的目标图像块 f, 期望输出 g是一个二维高斯函数 (峰值在中心)。 在傅里叶域, 滤波器 H的最优解为:
H∗=∑i​Fi​⊙Fi∗​+λ∑i​Fi​⊙Gi∗​​
其中 F是 f的傅里叶变换, G是 g的傅里叶变换, ∗表示复共轭, λ是正则化参数。 求和表示对多个训练样本 (通过对初始样本进行随机仿射变换生成) 求平均。
2. 检测
在新帧中, 在预测位置附近提取图像块 z, 计算响应:
R=F−1{H∗⊙Z}
其中 Z是 z的傅里叶变换。 响应最大的位置即为目标位置。
3. 模型更新
使用线性插值更新滤波器:
Ht∗​=(1−η)Ht−1∗​+ηHnew∗​
其中 η是学习率。

视觉目标跟踪、 相关滤波

相关滤波、 傅里叶变换、 在线更新

参数配置
- 正则化参数 λ: 通常很小, 如0.01, 防止过拟合。
- 学习率 η: 控制模型更新速度, 通常0.1左右。
- 输出高斯带宽: 控制期望响应峰的陡峭程度, 影响定位精度。
实现细节
- 预处理: 对输入图像块乘以余弦窗, 减轻边界效应。
- 尺度估计: 通过图像金字塔处理尺度变化。
优化技巧
- 性能: 1) 使用更大的搜索区域并配合余弦窗提高定位精度。 2) 使用快速傅里叶变换 (FFT)​ 加速计算。
- 鲁棒性: 1) 结合颜色直方图等特征。 2) 使用多特征融合​ (如HOG+颜色)。 3) 使用​ long-term​ 跟踪策略, 在跟踪失败时进行重检测。

计算机视觉及多维视觉定位模型/算法/方程式列表 (71-80)

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

详细的参数配置、实现细节和各项功能和性能优化技巧

71

图像增强

自动白平衡(灰度世界假设)

输入: 原始RGB图像 I∈RH×W×3。
输出: 白平衡校正后的图像 Iwb​。
核心参数: 无。
中间变量
- 各通道均值 μR​,μG​,μB​。
- 增益系数 kR​,kB​。

1. 灰度世界假设: 假设场景中所有反射光的平均值为灰色, 即各颜色通道的平均值应该相等: μR​=μG​=μB​。
2. 计算通道均值
μc​=HW1​∑i=1H​∑j=1W​Ic​(i,j), 其中 c∈{R,G,B}。
3. 计算增益
以绿色通道为参考, 计算红色和蓝色通道的增益:
kR​=μR​μG​​,kB​=μB​μG​​。
4. 应用增益
对每个像素的红色和蓝色通道乘以对应的增益系数, 绿色通道保持不变:
Iwb​(R)=kR​⋅I(R),Iwb​(B)=kB​⋅I(B),Iwb​(G)=I(G)。
为了防止溢出, 通常需要对结果进行裁剪(如到0-255)或归一化。

颜色校正、 图像预处理、 相机流水线

颜色恒常性、 灰度世界、 增益调整

参数配置
无需特殊参数。
实现细节
- 高效计算: 使用积分图像快速计算整幅图像的均值。
- 防止过校正: 可设置增益的上下限(如0.5到2), 避免在单色场景中产生严重色偏。
优化技巧
- 鲁棒性: 1) 使用灰度边缘假设, 在边缘像素上计算均值, 对彩色物体更鲁棒。 2) 使用完美反射体假设, 假设图像中最亮的点(如镜面高光)为白色, 以此计算增益。 3) 结合机器学习方法, 从数据中学习白平衡参数。
- 实时性: 算法简单, 计算速度快, 适合嵌入式系统实时处理。

72

三维视觉

移动立方体算法

输入: 体数据(标量场) F:V⊂R3→R, 等值面阈值 T。
输出: 三角网格表示的等值面。
核心参数
- 体素大小(由体数据分辨率决定)。
- 等值面阈值 T。
中间变量
- 立方体8个顶点的标量值。
- 顶点状态(大于或小于阈值)。
- 查找表索引。

1. 体素处理
将体数据划分为一个个立方体单元(体素)。 对每个体素, 获取其8个顶点的标量值 fi​,i=0,...,7。
2. 顶点状态计算
对每个顶点, 比较其标量值与阈值 T, 如果 fi​>=T, 则认为该顶点在等值面内部(或外部), 标记为1;否则标记为0。 8个顶点产生一个8位的二进制索引(0-255)。
3. 查表
根据这个8位索引, 查找预定义的256种情况的三角剖分表。 该表定义了当前立方体内部等值面的拓扑结构, 即需要生成哪些三角形。
4. 顶点插值
对于三角剖分表中的每条边, 如果其两个端点的状态不同, 则等值面与此边相交。 交点位置通过线性插值计算:
P=P1​+(T−f1​)f2​−f1​P2​−P1​​
其中 P1​,P2​是边的两个端点, f1​,f2​是其标量值。
5. 法向量计算
通过中心差分法计算体数据在每个顶点处的梯度 ∇F, 作为该顶点处的法向量方向, 然后对生成三角形的顶点法向量进行插值。

医学图像三维重建(CT, MRI)、 科学可视化、 隐式曲面提取

等值面、 三角化、 体数据、 线性插值

参数配置
- 等值面阈值 T: 取决于应用, 如CT中骨骼的亨氏单位阈值。
- 体数据分辨率: 输入数据决定, 影响重建网格的精细度。
实现细节
- 查找表: 标准移动立方体有256种情况, 但通过对称性和旋转可简化为15种基本情形。 需要注意歧义情况的处理, 否则等值面可能出现空洞。
- 梯度计算: 使用Sobel算子或中心差分计算梯度, 用于法向量。
优化技巧
- 效率: 1) 使用空间分割数据结构(如八叉树) 只对包含等值面的区域进行处理。 2) 使用并行计算, 每个体素独立处理。 3) 使用移动四面体算法, 将立方体分解为四面体, 简化剖分, 避免歧义。
- 质量: 1) 使用自适应细分, 在等值面曲率大的地方增加采样。 2) 对生成的网格进行平滑简化

73

特征描述

BRIEF描述子

输入: 已定位的关键点图像块(通常是平滑后的)。
输出: 二进制描述子(位串) b∈{0,1}n, 通常 n=256。
核心参数
- 描述子长度 n。
- 采样点对模式 S={(p1k​,p2k​)}k=1n​。
中间变量
- 平滑图像块 Ismooth​。

1. 采样模式
在关键点周围定义一个局部图像块(如31×31)。 预定义 n个采样点对 (p1k​,p2k​), 这些点对通常服从高斯分布, 以关键点为中心。
2. 强度比较
对每个采样点对, 比较两个点的像素强度:
τ(p1k​,p2k​;I)={10​if I(p1k​)<I(p2k​)otherwise​
其中 I是平滑后的图像块。
3. 形成描述子
将 n次比较的结果串联成一个 n位的二进制字符串:
b=∑k=1n​2k−1τ(p1k​,p2k​;I)
通常 n=256, 因此描述子是一个256位的二进制串。

实时特征匹配、 SLAM、 增强现实

二进制描述子、 强度比较、 汉明距离

参数配置
- 描述子长度: 常用128, 256, 512位。 越长越具有判别力, 但计算和匹配越慢。
- 采样模式: 点对通常从以关键点为中心的二维高斯分布中随机采样, 高斯的标准差与图像块大小成比例(如图像块大小的1/5)。
实现细节
- 图像预处理: 必须对图像块进行平滑(高斯模糊), 以减少噪声对单个像素比较的影响。
- 旋转不变性: 通过rBRIEF实现, 即根据关键点的主方向旋转采样模式。
优化技巧
- 鲁棒性: 1) 使用学习的方法从大量图像中挑选出判别力强、相关性低的点对(如ORB中的rBRIEF)。 2) 在多尺度上提取BRIEF描述子。
- 速度: 1) 二进制描述子匹配使用汉明距离, 可用XOR和位计数指令(如POPCNT) 极速计算。 2) 使用局部敏感哈希(LSH) 加速大规模匹配。

74

图像分类

DenseNet

输入: 图像 x0​。
输出: 类别概率 y。
核心结构
- 密集块: 每层的输入是前面所有层输出的拼接。
- 过渡层: 卷积+池化, 压缩特征。
损失函数: 交叉熵。

1. 密集连接
在一个密集块中, 第 l层的输入是前面所有层输出的拼接:
xl​=Hl​([x0​,x1​,...,xl−1​])
其中 [⋅]表示沿通道维度的拼接操作, Hl​是一个复合函数, 通常包括批归一化(BN)、 修正线性单元(ReLU) 和3×3卷积。
2. 增长率
每个 Hl​产生 k个特征图, k称为网络的增长率。 因此, 第 l层的输入通道数为 k0​+k×(l−1), 其中 k0​是输入图像的通道数。
3. 过渡层
位于密集块之间, 用于降低特征图的空间尺寸和通道数。 通常包括1×1卷积(减少通道数) 和2×2平均池化(下采样)。
4. 网络架构
通常包含多个密集块和过渡层, 最后接全局平均池化和全连接分类层。

图像分类、 特征提取

密集连接、 特征重用、 参数效率

参数配置
- 增长率 k: 通常取值较小, 如12, 24, 32, 40。 控制每层新生成的特征图数量。
- 密集块中的层数: 常用配置如DenseNet-121: [6,12,24,16]。
- 瓶颈层: 在3×3卷积前使用1×1卷积减少计算量, 形成DenseNet-B结构。
实现细节
- 内存优化: 密集连接导致特征图通道数快速增长, 内存消耗大。 可使用内存高效实现, 如及时释放中间特征。
- 初始化: 由于特征拼接, 需要使用适当的初始化(如He初始化)。
优化技巧
- 效率: 1) 使用分组卷积深度可分离卷积替代标准卷积。 2) 使用知识蒸馏压缩模型。
- 精度: 1) 使用更宽的增长率更深的网络。 2) 结合注意力机制。 3) 在ImageNet等大型数据集上预训练。

75

目标检测

CenterNet

输入: 图像 I。
输出: 边界框和类别。
核心思想
- 将目标检测建模为关键点(目标中心点)检测问题。
- 从中心点回归目标尺寸和偏移量。
损失函数: 中心点热图损失 + 尺寸回归损失 + 偏移回归损失。

1. 中心点热图预测
网络输出一个热图 Y^∈[0,1]RH​×RW​×C, 其中 R是输出步长(下采样倍数), C是类别数。 热图上每个位置的值表示该位置是某类目标中心点的置信度。 训练时, 使用高斯核将真实中心点渲染到热图上作为监督信号。
2. 尺寸回归
对每个中心点, 网络回归其对应目标的宽和高 S^∈RRH​×RW​×2。
3. 偏移回归
由于输出步长 R会导致量化误差, 网络还回归一个偏移量 O^∈RRH​×RW​×2来补偿中心点的亚像素偏移。
4. 损失函数
- 中心点损失: 使用改进的Focal Loss。
- 尺寸损失: 使用L1损失, 只对正样本(中心点)计算。
- 偏移损失: 使用L1损失, 只对正样本计算。
5. 推理
从热图中提取峰值点(局部最大值)作为检测到的中心点, 然后结合该点的尺寸和偏移预测, 得到边界框。

实时目标检测、 无锚框检测

关键点检测、 热图、 中心点预测

参数配置
- 输出步长 R: 通常为4, 即输入图像下采样4倍得到热图。
- 高斯核标准差: 根据目标大小自适应确定, 使得热图上的高斯斑与目标大小大致匹配。
- 热图阈值: 用于提取峰值点的置信度阈值, 如0.3。
实现细节
- 骨干网络: 常用Hourglass-104, ResNet, DLA等。
- 峰值点提取: 使用3×3最大池化在热图上检测局部最大值。
优化技巧
- 精度: 1) 使用更强大的骨干网络。 2) 引入角点预测关键点预测进行多任务学习。 3) 使用可变形卷积增强特征。
- 速度: 1) 由于是单阶段、无锚框, 后处理简单, 推理速度快。 2) 使用深度可分离卷积构建检测头。 3) 使用TensorRT优化部署。

76

图像分割

条件随机场用于语义分割

输入: 图像 I, 和/或CNN的粗略分割预测(一元势能)。
输出: 细化后的像素标签 x。
核心模型
CRF能量函数: E(x)=∑i​ψu​(xi​)+∑i<j​ψp​(xi​,xj​;I)。
参数
- 一元势能权重。
- 二元势能权重和高斯核参数。

1. 能量函数
将图像分割问题转化为最小化能量函数:
E(x)=∑i​ψu​(xi​)+∑i<j​ψp​(xi​,xj​)
其中 xi​是像素 i的标签。
- 一元势能​ ψu​: 通常来自CNN的softmax输出, 即 ψu​(xi​)=−logP(xi​∥I)。
- 二元势能​ ψp​: 鼓励相似像素分配相同标签, 通常定义为:
ψp​(xi​,xj​)=μ(xi​,xj​)k(fi​,fj​)
其中 μ是标签兼容性函数(如Potts模型: μ(xi​,xj​)=[xi​=xj​]), k是高斯核, 基于像素特征 f(如位置和颜色):
k(fi​,fj​)=w1​exp(−2θα2​∥pi​−pj​∥2​−2θβ2​∥Ii​−Ij​∥2​)+w2​exp(−2θγ2​∥pi​−pj​∥2​)
第一核同时考虑位置和颜色相似性, 第二核只考虑位置相似性。
2. 推断
最小化CRF能量是NP-hard问题。 常用均值场近似, 将其转化为迭代更新概率分布 Q, 每一步可表示为高斯卷积, 加速计算。

语义分割后处理、 图像标注

条件随机场、 能量最小化、 均值场近似

参数配置
- 高斯核参数: θα​,θβ​,θγ​控制位置和颜色相似性的敏感度, 通常通过交叉验证设置。
- 权重: w1​,w2​控制两个核的权重。
- 均值场迭代次数: 通常5-10次。
实现细节
- 高效推断: 使用高维滤波(如Permutohedral Lattice) 加速高斯卷积计算, 复杂度与像素数成线性关系。
- 与CNN结合: 可以将CRF作为RNN模块插入CNN, 实现端到端训练(CRF-RNN)。
优化技巧
- 精度: 1) 使用更多的高斯核, 如使用多个尺度的位置核。 2) 使用学习的兼容性矩阵 μ, 而非固定的Potts模型。 3) 结合超像素减少节点数。
- 速度: 1) 使用下采样的图像进行CRF推断, 然后上采样结果。 2) 使用全卷积CRF, 利用卷积操作近似均值场更新。

77

三维视觉

正态分布变换点云配准

输入: 源点云 P={pi​}, 目标点云 Q={qi​}。
输出: 变换参数(旋转 R, 平移 t)。
核心思想
将目标点云表示为一系列局部正态分布(体素内), 然后优化变换参数使源点云在该分布下的概率最大。
参数
- 体素大小。
- 优化参数(步长, 迭代次数)。

1. 目标点云建模
将目标点云的空间划分为规则的体素网格。 对每个非空体素, 计算其内点的均值 q和协方差矩阵 Σ:
q=n1​∑k=1n​qk​
Σ=n−11​∑k=1n​(qk​−q)(qk​−q)T
该体素内的点分布用正态分布 N(q,Σ)近似。
2. 概率计算
对于变换后的源点 pi′​=Rpi​+t, 找到其所在的体素, 计算其在该体素正态分布下的概率密度:
(p(\mathbf{p}_i') = \frac{1}{\sqrt{(2\pi)^3

\Sigma

}} \exp\left(-\frac{1}{2} (\mathbf{p}i' - \mathbf{q})^T \Sigma^{-1} (\mathbf{p}i' - \mathbf{q})\right))
3. 优化问题
寻找变换参数 R,t最大化所有源点的概率乘积, 等价于最小化负对数似然:
E(R,t)=−∑i​log(p(pi′​))
忽略常数项, 得到:
E(R,t)=∑i​((pi′​−q)TΣ−1(pi′​−q))
这是一个非线性最小二乘问题。
4. 求解
使用牛顿法或拟牛顿法求解。 需要计算目标函数关于变换参数(李代数)的雅可比矩阵和海森矩阵。

点云配准、 激光雷达SLAM

78

视觉SLAM

位姿图优化

输入: 位姿图 G=(V,E), 其中节点 V={xi​}表示位姿, 边 E={eij​}表示位姿间的相对运动约束。
输出: 优化后的位姿 {xi∗​}。
核心模型
最小化所有边的误差平方和:
min{xi​}​∑(i,j)∈E​∥eij​∥Σij​2​。
参数
- 信息矩阵 Σij−1​(边的权重)。
- 优化算法参数。

1. 误差定义
对于一条连接位姿 xi​和 xj​的边, 其观测值为相对位姿 zij​(例如从里程计或闭环检测得到)。 预测的相对位姿为 z^ij​=⊖xi​⊕xj​, 其中 ⊕和 ⊖是位姿复合和求逆运算(在李群上)。 误差定义为:
eij​=zij​⊖z^ij​
在流形上, 通常将误差映射到切空间(李代数)表示: eij​=log(zij−1​z^ij​)∨。
2. 优化问题
最小化马氏距离平方和:
min{xi​}​∑(i,j)∈E​eijT​Σij−1​eij​
其中 Σij​是观测噪声的协方差矩阵。
3. 求解
这是一个非线性最小二乘问题。 通过线性化误差函数, 构建增量方程:
HΔx=−b
其中 H是海森矩阵, 由于每条边只连接两个节点, 因此 H是稀疏的。 使用列文伯格-马夸尔特法或高斯牛顿法迭代求解。 求解后, 用增量 Δx更新位姿(在流形上更新)。

SLAM后端、 闭环校正、 轨迹优化

图优化、 李群李代数、 非线性最小二乘

参数配置
- 鲁棒核函数: 对于闭环边, 可能含有外点, 需使用Huber等鲁棒核函数。
- 优化迭代次数: 通常几十次迭代即可收敛。
实现细节
- 稀疏求解器: 使用Cholesky分解(如CHOLMOD) 或预处理共轭梯度法(PCG) 求解线性系统。
- 增量求解: 当添加新节点和边时, 可使用增量优化, 避免每次重新计算。
优化技巧
- 效率: 1) 使用子图构建, 将多个节点融合为一个节点, 减少图规模。 2) 使用边缘化将历史状态转化为先验约束。 3) 使用多线程加速线性系统求解。
- 精度: 1) 使用更好的闭环检测算法提供准确的约束。 2) 结合惯性GPS约束。

79

图像分类

Inception网络

输入: 图像 x。
输出: 类别概率 y。
核心结构
- Inception模块: 并行多个不同尺度的卷积和池化, 然后拼接。
- 辅助分类器: 在中间层添加, 缓解梯度消失。
损失函数: 交叉熵。

1. Inception模块
在同一层中并行进行:
- 1×1卷积
- 3×3卷积(前置1×1卷积降维)
- 5×5卷积(前置1×1卷积降维)
- 3×3最大池化(后接1×1卷积调整通道)
然后将所有分支的输出沿通道维度拼接。
这种结构允许网络在单层内捕获多尺度特征, 同时通过1×1卷积控制计算量。
2. 降维
在3×3和5×5卷积之前使用1×1卷积减少输入通道数, 大幅减少参数量和计算量。
3. 辅助分类器
在网络中间层添加额外的分类输出, 在训练时将辅助分类器的损失(乘以一个折扣权重, 如0.3)加到总损失中, 帮助梯度回传, 起到正则化作用。 推理时不使用。
4. 全局平均池化
在网络最后使用全局平均池化替代全连接层, 减少参数量, 降低过拟合。

图像分类、 目标检测

多尺度卷积、 1×1卷积、 辅助分类器

参数配置
- Inception模块的排列: 如GoogLeNet(Inception v1) 使用9个Inception模块堆叠。
- 滤波器数量: 每个分支的滤波器数量需平衡, 通常1×1卷积的通道数较多, 3×3和5×5较少。
实现细节
- 高效实现: 由于模块内并行, 可以使用分组卷积或深度可分离卷积进一步加速。
- 批归一化: 在Inception v2(BN-Inception) 中, 在每个卷积后添加批归一化, 加速训练。
优化技巧
- 架构演进: 1) Inception v3​ 将5×5卷积分解为两个3×3卷积, 进一步减少参数。 2) Inception v4​ 结合残差连接(Inception-ResNet)。 3) 使用自动机器学习搜索更优的Inception结构。
- 应用扩展: Inception结构被广泛用于目标检测(如SSD) 和语义分割中, 作为特征提取器。

80

目标检测

可变形卷积

输入: 特征图 x∈RH×W×C。
输出: 变形特征图 y∈RH×W×C′。
核心思想
卷积核的采样位置不是固定的规则网格, 而是通过学习偏移量 Δp进行偏移, 从而自适应地聚焦于感兴趣的区域。
参数
- 卷积核大小 k(如3)。
- 偏移量学习卷积层的参数。

1. 常规卷积
对于输出特征图 y的每个位置 p0​, 有:
y(p0​)=∑pn​∈R​w(pn​)⋅x(p0​+pn​)
其中 R是规则网格, 如3×3的 R={(−1,−1),(−1,0),...,(1,1)}。
2. 可变形卷积
为每个采样点添加一个可学习的偏移量 Δpn​:
y(p0​)=∑pn​∈R​w(pn​)⋅x(p0​+pn​+Δpn​)
由于偏移量 Δpn​可能是小数, 需要使用双线性插值计算 x(p0​+pn​+Δpn​):
x(p)=∑q​G(q,p)⋅x(q)
其中 G(⋅,⋅)是双线性插值核。
3. 偏移量学习
偏移量 Δpn​由另一个卷积层从输入特征图 x上学得。 该卷积层与当前卷积层并行, 具有相同的空间分辨率和扩张率, 输出通道数为 2N((N =

\mathcal{R}

), 每个采样点有x和y两个方向的偏移)。
在训练时, 同时学习卷积核权重和生成偏移量的卷积核权重。 梯度可以通过双线性插值操作反向传播。

目标检测、 语义分割、 实例分割

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

101

三维视觉定位

透视n点问题 (PnP) 的鲁棒求解:EPnP

输入:一组3D参考点 Piw​=[Xiw​,Yiw​,Ziw​]T(世界坐标系),及其对应的2D投影点 pi​=[ui​,vi​]T(像素坐标系)。
输出:相机位姿,包括旋转矩阵 R∈SO(3)和平移向量 t∈R3。
参数:相机内参矩阵 K。
中间变量:控制点 Cjw​(世界系) 和 Cjc​(相机系),齐次重心坐标 αij​,虚拟控制点 Cjc​的坐标。

1. 选择控制点:在世界坐标系中选取4个非共面的3D点作为控制点 {Cjw​}j=14​。通常选择点云的质心以及PCA主方向。
2. 计算重心坐标:将每个3D参考点表示为控制点的加权和:Piw​=∑j=14​αij​Cjw​,其中 ∑j=14​αij​=1。这通过求解一个线性方程组完成。
3. 建立投影方程:在相机坐标系下,参考点可表示为 Pic​=RPiw​+t=∑j=14​αij​Cjc​,其中 Cjc​是控制点在相机系下的坐标。投影方程为:
λi​​ui​vi​1​​=KPic​=K∑j=14​αij​Cjc​。
4. 消去深度标量 λi​:由上述方程的前两行除第三行,得到两个关于 Cjc​的线性方程。对于N个点,得到2N个线性方程:
Mx=0,其中 x=[C1c​T,C2c​T,C3c​T,C4c​T]T是12维向量。
5. 求解线性系统:x是 M的零空间向量。对于非平面情况,零空间维度为4,解可表示为 x=∑k=14​βk​vk​,其中 vk​是 M的右奇异向量(对应最小奇异值)。
6. 利用距离约束求解 βk​:控制点在相机系下的距离应与在世界系下的距离相等:
∥Cmc​−Cnc​∥2=∥Cmw​−Cnw​∥2。代入 x的表达式,得到关于 βk​的二次方程组。通过求解一个10维线性系统(或更小的系统)得到 βk​。
7. 计算相机位姿:得到 Cjc​后,通过绝对定向问题(Umeyama算法)求解世界系到相机系的最佳刚体变换 R,t:
minR,t​∑j=14​∥Cjc​−(RCjw​+t)∥2。

视觉里程计、增强现实、机器人手眼标定

绝对定向、奇异值分解、重心坐标、投影几何

102

视觉SLAM后端优化

光束法平差 (Bundle Adjustment) 的稀疏求解

输入:M个相机位姿参数 ξi​∈se(3)(李代数表示),N个3D路标点坐标 pj​∈R3,观测到的2D像素坐标 zij​。
输出:优化后的所有相机位姿和3D点坐标。
参数:相机内参矩阵 K,鲁棒核函数 ρ(⋅)(如Huber)。
中间变量:重投影误差 eij​,雅可比矩阵 Jij​,海森矩阵(或近似)的舒尔补 S。

1. 定义代价函数
21​∑i=1M​∑j∈V(i)​ρ(∥eij​∥Σij​2​),其中 V(i)是第i个相机观测到的路标点集合,Σij​是协方差矩阵。
2. 线性化误差:对于当前参数估计 x=[ξ1T​,...,ξMT​,p1T​,...,pNT​]T,将误差函数在当前估计处进行一阶泰勒展开:
eij​(x+Δx)≈eij​+Jij​Δx。
3. 构建增量方程:目标变为最小化 ∑ρ(∥eij​+Jij​Δx∥2)。使用高斯牛顿法或列文伯格-马夸尔特法,得到正规方程:
HΔx=−b,其中 H=∑JijT​Wij​Jij​,b=∑JijT​Wij​eij​,Wij​为权重矩阵(包含鲁棒核函数的影响)。
4. 利用稀疏性:由于每个误差项只涉及一个相机和一个路标点,雅可比矩阵 Jij​具有特殊结构:
Jij​=[0​...​∂ξi​∂eij​​​...​0​...​∂pj​∂eij​​​...​0​]。
因此,海森矩阵 H具有分块对角结构:
H=[BET​EC​],其中 B对应相机位姿块,C对应路标点块,E为连接块。
5. 舒尔补消元:将增量方程按相机和路标点分块:
[BET​EC​][Δxc​Δxp​​]=[−v−w​]。
先消去 Δxp​:Δxp​=C−1(−w−ETΔxc​)。代入第一行得到约化方程:
(B−EC−1ET)Δxc​=−v+EC−1w。
6. 求解与更新:矩阵 S=B−EC−1ET称为舒尔补矩阵,其维度只与相机数量有关,远小于原海森矩阵。使用Cholesky分解或LDLT分解求解 Δxc​,然后回代求解 Δxp​。最后更新参数:x←x⊞Δx(对于李代数,使用指数映射更新)。
7. 迭代:重复线性化、构建增量方程、求解、更新的过程,直到收敛。

大规模三维重建、SLAM后端全局优化、运动恢复结构

非线性最小二乘、稀疏矩阵、舒尔补、李代数、鲁棒估计

103

图像特征匹配

基于图神经网络的局部特征匹配 (SuperGlue)

输入:两幅图像的特征点位置 A={ai​}、B={bj​}和描述子 DA={diA​}、DB={djB​}。
输出:匹配关系 M∈{0,1}NA​×NB​和匹配分数。
参数:图神经网络权重 Wk​,Wq​,Wv​,注意力头数 h,多层感知机 (MLP) 参数。
中间变量:关键点编码 fi​,自注意力输出 fi′​,互注意力输出 fi′′​,匹配描述子矩阵 S,得分矩阵 P。

1. 关键点编码:将每个特征点的位置 (x,y)和描述子 d融合,通过一个MLP得到初始节点特征 fi(0)​:
fi(0)​=MLPenc​([di​;pi​]),其中 pi​是位置编码。
2. 多层图神经网络:对于L层,每层包含自注意力和互注意力机制。
a. 自注意力 (Intra-image Attn):在单张图像内部,更新特征以聚合上下文信息。对于图像A:
QiA​=Wql​fiA(l−1)​, KiA​=Wkl​fiA(l−1)​, ViA​=Wvl​fiA(l−1)​。
Attn(QA,KA,VA)=softmax(dk​​QAKAT​)VA。
b. 互注意力 (Cross-image Attn):在两幅图像之间交换信息。图像A的特征作为查询,图像B的特征作为键和值:
QiA​=Wql​fiA(l)​, KjB​=Wkl​fjB(l)​, VjB​=Wvl​fjB(l)​。
fiA(l+1)​=Attn(QA,KB,VB)。同理更新图像B的特征。
3. 计算匹配描述子:经过L层后,得到最终特征 fiA(L)​和 fjB(L)​。计算匹配描述子矩阵 S∈RNA​×NB​:
Sij​=⟨fiA(L)​,fjB(L)​⟩,即内积。
4. 最优传输层:将匹配问题建模为部分分配问题。引入dustbin(垃圾桶)节点来处理未匹配点。构建增广得分矩阵 Sˉ∈R(NA​+1)×(NB​+1),其中额外行列表示未匹配。使用Sinkhorn算法迭代求解最优传输计划 Pˉ:
初始化:P(0)=exp(Sˉ/τ)。
迭代行、列归一化:P(2k+1)=diag(u(k))P(2k), P(2k+2)=P(2k+1)diag(v(k)),其中 u(k)=1/(P(2k)1), \mathbf{v}^{(k)} = \mathbf{1} / (\mathbf{P}^{(2k+1)}^T \mathbf{1})。
最终得到分配矩阵 Pˉ,其左上角 NA​×NB​子矩阵即为匹配概率矩阵 P。
5. 损失函数:使用负对数似然损失,对于真值匹配 M:
L=−∑(i,j)∈M​logPij​−∑i∈I​logPi,NB​+1​−∑j∈J​logPNA​+1,j​,其中 I,J是未匹配点集。

图像匹配、视觉定位、运动恢复结构

图神经网络、注意力机制、最优传输、Sinkhorn算法

104

三维点云配准

迭代最近点 (ICP) 的鲁棒变体:Point-to-Plane ICP

输入:源点云 P={pi​},目标点云 Q={qi​},目标点云的法向量 {ni​}。
输出:最优刚体变换 R∈SO(3), t∈R3。
参数:最大迭代次数 K,收敛阈值 ϵ,距离阈值 dmax​(用于剔除外点)。
中间变量:对应点对 {(pi​,qi​)},误差 ei​,线性方程组系数矩阵 A和向量 b。

1. 初始化:R=I3​, t=0。
2. 迭代直到收敛
a. 数据关联:对于变换后的源点 pi′​=Rpi​+t,在目标点云 Q中寻找最近点 qi​,并获取其法向量 ni​。如果距离 ∥pi′​−qi​∥>dmax​,则剔除该点对。
b. 构建线性系统:Point-to-Plane ICP最小化点到目标点切平面的距离:
minR,t​∑i​[niT​(Rpi​+t−qi​)]2。
在小角度假设下,将旋转矩阵线性化:R≈I+[ω]×​,其中 ω=[ωx​,ωy​,ωz​]T是旋转向量, [⋅]×​是反对称矩阵。此时待优化参数为 x=[ωT,tT]T∈R6。
误差项线性化为:
ei​=niT​((I+[ω]×​)pi​+t−qi​)≈niT​([ω]×​pi​+t+pi​−qi​)。
利用向量叉积性质 [ω]×​pi​=−pi​×ω,可得:
ei​≈niT​(−pi​×ω+t+pi​−qi​)=[−niT​(pi​×),niT​][ωt​]+niT​(pi​−qi​)。
令 aiT​=[−niT​(pi​×),niT​], bi​=−niT​(pi​−qi​),则 ei​=aiT​x−bi​。
c. 求解线性最小二乘:构建正规方程 ATAx=ATb,其中 A=[a1​,...,aN​]T, b=[b1​,...,bN​]T。使用SVD或Cholesky分解求解 x。
d. 更新变换:从 ω通过罗德里格斯公式或指数映射计算旋转矩阵增量 ΔR。更新总变换:
R←ΔR⋅R, t←ΔR⋅t+Δt。
e. 检查收敛:如果变换增量或误差变化小于阈值 ϵ,则停止迭代。
3. 输出最终变换​ R,t。

三维重建、点云配准、LiDAR SLAM

刚体变换线性化、反对称矩阵、罗德里格斯公式、最小二乘

105

视觉定位

基于学习的绝对位姿回归 (PoseNet改进:几何重投影损失)

输入:单张RGB图像 I。
输出:相机位姿,包括位置 p∈R3和方向(四元数) q∈S3。
参数:卷积骨干网络 (如ResNet) 权重 θf​,全连接回归头权重 θp​,θq​,可学习的场景坐标映射网络权重 θs​。
中间变量:图像特征 F,预测的场景坐标图 S,2D关键点坐标 ui​,对应的3D场景坐标 Xi​。

1. 特征提取与位姿初估:图像通过骨干网络得到全局特征向量 f=fθf​​(I)。通过两个独立的全连接层回归初始位置和方向:
p^​0​=Wp​f+bp​, q^​0​=normalize(Wq​f+bq​)。
2. 场景坐标预测:使用一个全卷积网络 (FCN) 从图像预测每个像素对应的3D场景坐标:
S=gθs​​(I),其中 S∈RH×W×3。
3. 构建2D-3D对应:从预测的场景坐标图 S中采样N个点(例如,通过均匀网格或检测关键点),得到2D像素坐标 {ui​}和对应的预测3D场景坐标 {Xi​}。
4. 几何重投影损失:使用初始位姿估计 (R^0​,t^0​)(由 q^​0​转换而来)和预测的3D点,计算重投影误差。对于每个对应点:
投影点:π(K,R^0​,t^0​,Xi​)=K(R^0​Xi​+t^0​)。
重投影误差:ei​=ui​−π(K,R^0​,t^0​,Xi​)。
然后,利用这些2D-3D对应,通过一个可微的PnP求解器(如DSAC中的RANSAC或直接最小二乘)求解一个更精确的位姿 (R^g​,t^g​)。这个求解过程需要实现梯度回传。
5. 最终损失函数:结合位姿回归损失和几何损失:
L=Lreg​+λLgeom​。
回归损失:Lreg​=∥p−p^​0​∥1​+β∥q−∥q^​0​∥q^​0​​∥1​。
几何损失:Lgeom​=∥p−p^​g​∥1​+β∥q−q^​g​∥1​,其中 q^​g​是 R^g​对应的四元数。

6. 训练*:通过梯度下降联合优化 θf​,θp​,θq​,θs​。几何损失提供了更强的监督信号,使网络学习到几何一致的场景坐标表示。

室内外视觉定位、增强现实、机器人导航

可微PnP、场景坐标回归、重投影误差、位姿回归

106

图像分割

深度LabCut:基于深度主动轮廓模型的实例分割

输入:图像 I:Ω→R3,初始轮廓 C0​。
输出:分割掩码,由最终轮廓 C定义。
参数:CNN特征提取器权重 θ,可学习能量函数参数 ϕ,轮廓演化步长 Δt。
中间变量:图像特征 Fθ​(I),轮廓点坐标 x(s),能量泛函 E(C),内力 Fint​,外力 Fext​。

1. 轮廓表示:将轮廓 C参数化为 x(s):[0,1]→R2。在离散实现中,轮廓由N个控制点 {xi​}i=1N​表示。
2. 能量泛函定义:总能量 E(C)=Eint​(C)+Eext​(C)。
内部能量:保持轮廓光滑, Eint​(C)=2α​∫01​∥x′(s)∥2ds+2β​∫01​∥x′′(s)∥2ds,其中 α控制弹性, β控制刚性。
外部能量:由图像数据驱动。传统方法使用图像梯度,这里使用深度网络预测的能量图 Φϕ​(Fθ​(I)):
Eext​(C)=λ∮C​Φϕ​(x(s))ds,其中 λ是权重。网络被训练为在目标边界处输出低能量值,在其他区域输出高能量值。
3. 能量最小化与轮廓演化:通过梯度下降(或对应的欧拉-拉格朗日方程)最小化能量。这导出一个使轮廓向能量最小位置演化的力。
内力:Fint​=αx′′(s)−βx′′′′(s)。
外力:Fext​=−λ∇Φϕ​(x(s))。
演化方程:∂t∂x(s,t)​=Fint​+Fext​。
4. 离散化与迭代:将演化方程离散化:
xit+1​=xit​+Δt(Fint,it​+Fext,it​)。
其中,内力离散近似为:
Fint,i​≈α(xi+1​−2xi​+xi−1​)−β(xi+2​−4xi+1​+6xi​−4xi−1​+xi−2​)。
外力由网络在当前位置 xit​处计算的能量图梯度给出。
5. 训练:网络参数 θ,ϕ通过最小化预测轮廓与真实轮廓之间的差异来训练。损失函数可以是控制点位置的L2损失,或基于轮廓内外部区域的Dice损失。关键是需要通过演化过程进行梯度回传,这要求演化步骤是可微的。
6. 输出:迭代演化直到收敛(轮廓点移动很小或达到最大迭代次数),最终轮廓点连接形成分割边界。

生物医学图像分割、交互式分割、目标轮廓提取

主动轮廓模型、蛇模型、能量最小化、可微分编程

107

三维重建

多视图立体视觉 (PatchMatch Stereo)

输入:多张已标定图像 {Ik​},对应的相机投影矩阵 ({P_k = K_k [R_k

t_k]})。
输出:参考图像 Iref​的深度图 Dref​和法向量图 Nref​。
参数:深度假设范围 [dmin​,dmax​],法向量采样空间,Patch大小 w×w,迭代次数。
中间变量:每个像素的平面假设 f(p)=(ap​,bp​,cp​)(对应深度 d=−cp​/(ap​u+bp​v+1)),代价体积 C(p,f),视图选择集合 V(p)。

1. 随机初始化:对于参考图像的每个像素 p=(u,v),随机初始化一个3D平面假设 f(p)。平面参数化:npT​X=−cp​,其中 np​=(ap​,bp​,1)T是法向量,cp​是常数。深度为 d(p)=−cp​/(ap​u+bp​v+1)。
2. 迭代优化:对于每次迭代,以扫描线顺序(奇数次迭代从左到右、从上到下,偶数次相反)处理每个像素。
a. 空间传播:考虑当前像素 p的邻居 q(例如左邻或上邻)的平面假设 f(q),计算其在该像素 p处的匹配代价 C(p,f(q))。如果代价低于当前假设 f(p)的代价,则用 f(q)更新 f(p)。
b. 视图传播:考虑相邻视图(如前向、后向)中同一坐标像素的平面假设,进行类似评估和更新。
c. 平面假设细化:对当前平面参数进行随机扰动,生成新的候选假设 f′(p)。扰动方式:
d′=d⋅(1+δd​), ϕ′=ϕ+δϕ​, θ′=θ+δθ​,其中 (ϕ,θ)是法向量的球坐标。将 (d′,ϕ′,θ′)转换回平面参数 f′(p)。计算代价 C(p,f′(p)),如果更低则更新。
d. 视图选择:对于每个像素 p,动态选择一组非参考视图 V(p)用于代价计算,以避免被遮挡或低纹理区域的错误匹配。通常基于前向-后向深度一致性进行选择。
3. 匹配代价计算:对于像素 p和平面假设 f,代价计算如下:
i. 根据平面 f计算像素 p在参考视图中的深度 d,进而得到3D点 Xref​=d⋅Kref−1​[u,v,1]T。
ii. 将 Xref​投影到选定的源视图 Is​中,得到投影点 ps​。
iii. 在参考图像和源图像中,分别提取以 p和 ps​为中心的 w×w图像块。
iv. 计算两个图像块之间的光度一致性代价。常用归一化互相关 (NCC) 或绝对差之和 (SAD):
CNCC​(p,f,s)=1−∑(Iref​(i)−Iˉref​)2∑(Is​(j)−Iˉs​)2​∑(Iref​(i)−Iˉref​)(Is​(j)−Iˉs​)​,其中求和遍历Patch内像素。
v. 最终的匹配代价是所选所有源视图代价的平均值或中位数:
C(p,f)=aggregates∈V(p)​C(p,f,s)。
4. 后处理:迭代结束后,进行左右一致性检查、深度图填充和加权中值滤波以去除异常值和空洞。

多视图三维重建、深度图估计、立体匹配

108

视觉惯性融合

基于滤波的视觉惯性里程计 (MSCKF)

输入:图像特征观测 zk​,IMU角速度 ωm​和加速度 am​测量值。
输出:当前相机状态估计 x^k​及其协方差 Pk​。
状态向量
x=[xIT​,xC1​T​,...,xCm​T​]T,其中惯性状态 xI​=[GI​qˉ​T,GvIT​,GpIT​,bgT​,baT​]T(姿态四元数、速度、位置、陀螺仪偏置、加速度计偏置),相机状态 xCi​​=[GCi​​qˉ​T,GpCi​T​]T是历史位姿。
参数:IMU噪声参数 σg​,σa​,σbg​,σba​,图像噪声参数 σimg​。

1. 状态增广:当接收到新图像时,将当前IMU状态估计值作为新的相机状态加入到状态向量末尾。协方差矩阵相应扩展。
2. IMU传播:在图像帧之间,使用IMU测量值通过惯性动力学方程传播状态估计和协方差。
连续时间动力学:
GI​qˉ​˙​=21​Ω(ωm​−bg​−ng​)GI​qˉ​
Gv˙I​=R(GI​qˉ​)T(am​−ba​−na​)+Gg
Gp˙​I​=GvI​
b˙g​=nbg​, b˙a​=nba​
其中 Ω(ω)=[−⌊ω⌋×​−ωT​ω0​], ⌊⋅⌋×​是反对称矩阵。
使用中值积分或四阶龙格库塔法进行离散时间传播。协方差传播通过线性化的误差状态动力学方程:
x~˙I​=Fx~I​+GnI​,其中 nI​=[ngT​,naT​,nbgT​,nbaT​]T。离散化得到状态转移矩阵 Φk​和噪声协方差矩阵 Qk​,用于更新协方差:
(\mathbf{P}_{k

k-1} = \mathbf{\Phi}k \mathbf{P}{k-1

k-1} \mathbf{\Phi}k^T + \mathbf{Q}k )。
3. 视觉更新:当特征点被多个相机状态观测到并即将被丢弃时,进行更新。
a. 特征三角化:使用多个相机状态的观测,通过最小二乘三角化该特征的3D位置 Gpf​。
b. 构建视觉残差:对于观测到该特征的每个相机状态 xCi​​,残差为:
ri​=zi​−z^i​≈Hxi​​x~Ci​​+Hfi​​p~​f​+ni​,其中 z^i​是预测的观测,雅可比矩阵 Hxi​​,Hfi​​通过链式法则对相机状态和特征位置求导得到。
c. 边缘化特征:为了保持状态维度不变,将特征位置从状态向量中边缘化。将所有观测该特征的残差堆叠:
r≈Hx​x~+Hf​p~​f​+n。
利用零空间投影或QR分解,将残差投影到 Hf​的左零空间,得到只与状态误差相关的残差:
ro​=VTr≈VTHx​x~+VTn,其中 V的列向量张成 Hf​的左零空间。
d. 卡尔曼更新:使用投影后的残差 ro​和对应的测量矩阵 Ho​=VTHx​进行标准卡尔曼滤波更新:
K=PHoT​(Ho​PHoT​+VTRV)−1
x~←Kro​
P←(I−KHo​)P
4. 状态管理:维护一个固定大小的滑动窗口相机状态。当新状态加入时,最旧的状态被移除,同时将其观测到的特征用于更新(如果可用)。

109

图像生成

扩散模型采样:DDPM (Denoising Diffusion Probabilistic Models)

输入:随机噪声 xT​∼N(0,I),时间步长 T。
输出:生成的图像 x0​。
参数:训练好的去噪网络 ϵθ​(xt​,t)的权重 θ,噪声调度 {βt​}t=1T​或 {αˉt​}t=1T​其中 αˉt​=∏s=1t​(1−βs​)。
中间变量:中间噪声图像 xt​,预测的噪声 ϵθ​(xt​,t),后验方差 β~​t​。

1. 前向过程 (训练时定义):给定真实图像 x0​,前向过程逐步添加高斯噪声:
(q(\mathbf{x}_t

\mathbf{x}_{t-1

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

109

图像生成

扩散模型采样:DDPM (Denoising Diffusion Probabilistic Models)

输入:随机噪声 xT​∼N(0,I),时间步长 T。
输出:生成的图像 x0​。
参数:训练好的去噪网络 ϵθ​(xt​,t)的权重 θ,噪声调度 {βt​}t=1T​或 {αˉt​}t=1T​其中 αˉt​=∏s=1t​(1−βs​)。
中间变量:中间噪声图像 xt​,预测的噪声 ϵθ​(xt​,t),后验方差 β~​t​,均值系数 μ~​t​。

1. 前向过程 (训练时定义):给定真实图像 x0​,前向过程逐步添加高斯噪声:
(q(\mathbf{x}_t

\mathbf{x}{t-1}) = \mathcal{N}(\mathbf{x}t; \sqrt{1-\beta_t} \mathbf{x}{t-1}, \beta_t \mathbf{I}) ),其中 βt​是噪声方差调度,随时间增加而增加。前向过程的一个重要性质是,可以直接从 x0​采样任意时间步 t的噪声图像:
(q(\mathbf{x}
t

\mathbf{x}0) = \mathcal{N}(\mathbf{x}t; \sqrt{\bar{\alpha}t} \mathbf{x}0, (1-\bar{\alpha}t)\mathbf{I}) ),即 xt​=αˉt​​x0​+1−αˉt​​ϵ,其中 ϵ∼N(0,I),αˉt​=∏s=1t​(1−βs​)。
2. 反向过程 (采样):从随机噪声 xT​开始,逐步去噪直到生成 x0​。反向过程定义为马尔可夫链,每一步由学习到的高斯转移参数化:
(p
\theta(\mathbf{x}_{t-1}

接下来,我们继续补充其他算法,确保每个算法都有非常详细的步骤。

编号

领域

模型配方

数据结构及各类参数/变量/常量/张量/向量列表

模型/算法/方程式逐步思考推理过程的每一步的数学建模

应用场景

关联知识

110

三维视觉定位

广义相机模型下的PnP求解 (UPnP)

输入:一组3D参考点 Piw​=[Xiw​,Yiw​,Ziw​]T(世界坐标系),及其对应的在广义相机中的观测射线(方向向量)vi​=[vix​,viy​,viz​]T(已归一化)。
输出:相机位姿,包括旋转矩阵 R∈SO(3)和平移向量 t∈R3。
参数:无额外内参,因为使用方向向量。
中间变量:控制点 Cjw​和 Cjc​,重心坐标 αij​,虚拟控制点 Cjc​的坐标。

1. 问题建模:广义相机模型下,3D点 Piw​在相机坐标系下的坐标 Pic​=RPiw​+t,应位于观测射线方向上,即存在正数 λi​使得 Pic​=λi​vi​。因此,问题转化为求解 R,t和深度 λi​使得:
RPiw​+t=λi​vi​。
2. 控制点选择:类似EPnP,选择4个控制点 Cjw​(非共面)。将3D点表示为控制点的加权和:Piw​=∑j=14​αij​Cjw​,其中 ∑j=14​αij​=1。
3. 代入方程:代入上式得:
∑j=14​αij​(RCjw​+t)=λi​vi​。
令 Cjc​=RCjw​+t,则:
∑j=14​αij​Cjc​=λi​vi​。
4. 消除深度:对每个点i,方程两边叉乘 vi​以消去 λi​:
vi​×(∑j=14​αij​Cjc​)=0。
展开得:
∑j=14​αij​(vi​×Cjc​)=0。
由于叉乘可以写为矩阵乘法:vi​×Cjc​=[vi​]×​Cjc​,其中 [vi​]×​是向量 vi​的反对称矩阵。因此,对于每个点i,得到两个独立的线性方程(因为 [vi​]×​的秩为2):
∑j=14​αij​[vi​]×​Cjc​=0。
5. 构建线性系统:将所有N个点的方程堆叠,得到关于12个未知数(C1c​,C2c​,C3c​,C4c​)的线性方程组:
Mx=0,其中 x=[C1c​T,C2c​T,C3c​T,C4c​T]T。
6. 求解线性系统:求解 M的零空间。对于非平面情况,零空间维度为4,解可表示为:
x=∑k=14​βk​vk​,其中 vk​是 M的右奇异向量(对应最小奇异值)。
7. 利用距离约束求解 βk​:控制点在相机系下的距离应与在世界系下的距离相等:
∥Cmc​−Cnc​∥2=∥Cmw​−Cnw​∥2。代入 x的表达式,得到关于 βk​的二次方程组。通过求解一个线性系统(类似于EPnP)得到 βk​。
8. 计算相机位姿:得到 Cjc​后,通过绝对定向问题求解世界系到相机系的最佳刚体变换 R,t:
minR,t​∑j=14​∥Cjc​−(RCjw​+t)∥2。
通过SVD求解:计算质心 μc=41​∑j​Cjc​, μw=41​∑j​Cjw​,计算去质心坐标,然后计算矩阵 W=∑j​(Cjc​−μc)(Cjw​−μw)T。对 W进行SVD分解:W=USVT,则 R=UVT(如果行列式为负,则取反),t=μc−Rμw。

广义相机(如鱼眼、全景相机)位姿估计、多相机系统标定

广义相机模型、绝对定向、奇异值分解、线性方程组

111

视觉SLAM

直接稀疏里程计 (DSO) 的光度束平差

输入:一组关键帧 {Fi​},每个关键帧包含图像 Ii​,相机内参 K,曝光时间 ti​。每个点 p被若干关键帧观测。
输出:优化后的关键帧位姿 Ti​∈SE(3),点的逆深度 ρp​,以及仿射亮度变换参数 ai​,bi​。
参数: Huber鲁棒核阈值,权重函数参数。
中间变量:光度误差 rp​,雅可比矩阵 J,海森矩阵 H,权重 wp​。

1. 光度误差定义:对于一个点 p在主机帧 Ii​中的观测,其在目标帧 Ij​中的光度误差定义为:
rp​=∑p∈Np​​wp​[(Ij​[p′]−bj​)−ti​eai​tj​eaj​​(Ii​[p]−bi​)],其中 Np​是点 p周围的一个小窗口(例如8个像素),wp​是梯度加权的权重,p′是点 p在目标帧中的投影位置,由位姿和逆深度计算:
p′=π(Tji​(ρp​π−1(p))),其中 Tji​=Tj−1​Ti​,π为投影函数,π−1为反投影。
2. 优化变量:将所有关键帧位姿 Ti​(李代数表示 ξi​)、所有点的逆深度 ρp​、以及每帧的仿射亮度参数 ai​,bi​作为优化变量,记作向量 x。
3. 能量函数
E=∑i∈F​∑p∈Pi​​∑j∈obs(p)​Epj​,其中 Epj​=h(rp​/σr​),h是Huber鲁棒核函数,σr​是误差标准差估计。
4. 高斯牛顿优化:迭代求解以下步骤:
a. 计算误差 rp​对优化变量的雅可比矩阵 Jp​=∂x∂rp​​。利用链式法则,包括对图像灰度、投影点、位姿、逆深度、亮度参数的导数。
b. 计算权重:wp​=rp​/σr​h′(rp​/σr​)​。
c. 构建增量方程:Hδx=−b,其中 H=∑p​JpT​wp​Jp​,b=∑p​JpT​wp​rp​。由于变量众多,且点与帧之间的连接是稀疏的,海森矩阵 H具有稀疏块结构。
d. 使用稀疏Cholesky分解(如CHOLMOD)或PCG求解增量方程,得到增量 δx。
e. 更新变量:对于位姿,使用李代数更新:T←exp(δξ)T;对于逆深度:ρ←ρ+δρ;对于亮度参数:a←a+δa,b←b+δb。
f. 判断收敛,若未收敛则返回a。
5. 边缘化:为了控制计算复杂度,DSO使用滑动窗口优化。当新的关键帧加入时,最老的关键帧被边缘化。边缘化通过舒尔补将旧状态从优化问题中移除,但保留其对剩余状态的约束信息。具体步骤:
将变量分为待边缘化变量 xm​和保留变量 xr​。增量方程写为:
[Hmm​Hrm​​Hmr​Hrr​​][δxm​δxr​​]=[bm​br​​]。
通过舒尔补,得到边缘化后的先验约束:
(Hrr​−Hrm​Hmm−1​Hmr​)δxr​=br​−Hrm​Hmm−1​bm​。
将这个先验约束作为一个固定项加入到后续的优化中。注意,边缘化会导致信息矩阵变得稠密,因此需要小心选择边缘化策略以保持稀疏性。

视觉里程计、直接法SLAM、实时定位

光度误差、李代数、稀疏优化、边缘化、滑动窗口

112

图像匹配

基于深度局部特征的匹配 (DISK)

输入:两幅图像 IA​,IB​。
输出:两幅图像之间的匹配点对 M={(pi​,qi​)}。
参数:特征提取网络权重,匹配阈值 τ。
中间变量:特征图 FA​,FB​,关键点位置 KA​,KB​,描述子 DA​,DB​,得分矩阵 S。

1. 特征提取:使用全卷积网络(如类似U-Net的结构)提取两幅图像的密集特征图 FA​,FB​,其中每个像素位置的特征向量同时表示关键点检测的得分和描述子。网络输出两个通道:一个通道用于关键点检测得分,其余通道用于描述子。通过非极大值抑制(NMS)在得分图上提取关键点位置,并获取对应位置的描述子。
2. 描述子匹配:对于图像A中的每个关键点描述子 diA​,计算其与图像B中所有关键点描述子 {djB​}的余弦相似度,得到得分矩阵 S,其中 Sij​=∥diA​∥∥djB​∥diA​TdjB​​。
3. 双向匹配:为了得到一致的匹配,进行双向最近邻搜索:
a. 对于A中的每个点i,找到B中最近邻点 j=argmaxk​Sik​和次近邻点 j′,计算最近邻与次近邻的距离比率 ri​=Sij​/Sij′​。如果 ri​>τ(阈值,如0.9),则保留匹配候选 (i, j)。
b. 同样,对于B中的每个点j,找到A中的最近邻点i,计算比率,保留候选。
c. 取双向一致的匹配,即同时满足i是j的最近邻且j是i的最近邻的匹配对。
4. 匹配细化(可选):使用几何验证(如RANSAC拟合基础矩阵)剔除外点。
5. 训练:DISK采用强化学习风格的训练方法。奖励函数基于匹配的精度和召回率。具体地,通过采样关键点并计算匹配,然后与真实匹配比较,计算奖励。策略梯度用于更新网络参数。

图像匹配、运动恢复结构、视觉定位

深度学习、特征匹配、强化学习、非极大值抑制

113

三维重建

体素哈希 (Voxel Hashing) 实时表面重建

输入:深度相机序列(RGB-D图像),相机位姿 Tk​。
输出:重建的三维表面模型(三角网格或带法向量的体素)。
参数:体素大小 v,截断距离 μ,哈希表大小 H。
中间变量:哈希表 H,体素块,TSDF值 F(x),权重 W(x),颜色 C(x)。

1. 数据结构:使用哈希表存储体素块(每个块包含8×8×8个体素)。每个体素存储TSDF值、权重和颜色。哈希函数将体素块的世界坐标映射到哈希表索引,解决冲突使用线性探测。
2. 深度图融合:对于每一帧深度图 Dk​和对应位姿 Tk​,执行以下步骤:
a. 对于当前帧视锥内的体素块,通过哈希函数查找或创建对应的体素块。
b. 对于每个体素 v的世界坐标 xw​,转换到相机坐标系:xc​=Tk−1​xw​。
c. 投影到图像平面得到深度值 d=Dk​(π(xc​))(双线性插值)。
d. 计算该体素的TSDF观测值:
Fobs​(xw​)=d−∥xc​∥(即观测深度减去体素到相机的距离),然后截断到 [−μ,μ]。
e. 更新体素的TSDF值和权重:
Fnew​(xw​)=W(xw​)+wobs​W(xw​)F(xw​)+wobs​Fobs​(xw​)​,
Wnew​(xw​)=W(xw​)+wobs​,其中 wobs​是观测权重,通常与观测角度有关。
f. 如果有颜色图像,同样更新颜色值。
3. 表面提取:使用移动立方体(Marching Cubes)算法在TSDF体素网格上提取等值面(TSDF=0)。由于使用了哈希表,只需要提取有数据的区域。遍历所有存储的体素块,对每个体素块内的体素应用移动立方体算法,生成三角面片。
4. 空间哈希管理:由于内存限制,需要管理哈希表,移除远离当前相机视锥的体素块。可以使用LRU(最近最少使用)策略或其他策略删除旧的体素块。
5. 回环与优化:当相机重访已建图区域时,可能因为漂移导致表面不一致。可以通过检测回环并进行位姿图优化,然后重新融合深度图来修正。

实时三维重建、SLAM、增强现实

TSDF、哈希表、移动立方体、深度图融合

114

视觉定位

基于场景坐标回归的视觉定位 (DSAC)

输入:查询图像 I。
输出:相机位姿 (T = [R

t] )。
参数:场景坐标回归网络权重 θ,RANSAC迭代次数 N,假设数量 M,内点阈值 τ。
中间变量:场景坐标图 S,2D-3D对应点对 C,RANSAC假设 Hi​,假设得分 si​。

1. 场景坐标回归:使用全卷积网络(FCN)对查询图像的每个像素预测其对应的3D场景坐标:
S(u,v)=fθ​(I)(u,v)∈R3。
2. 建立2D-3D对应:从场景坐标图中采样一组像素位置(例如,随机采样或使用特征检测器),得到2D-3D对应点集 C={(pi​,Xi​)},其中 pi​是2D像素坐标,Xi​=S(pi​)是预测的3D点。
3. 可微RANSAC
a. 随机抽样:从对应点集中随机选择最小子集(例如4个点)来生成位姿假设。重复抽样 N次,得到 N个假设。
b. 假设生成:对于每个抽样样本,使用PnP算法(如EPnP)计算位姿假设 Hi​。
c. 假设评分:对于每个假设 Hi​,计算所有对应点的重投影误差:
eij​=∥pj​−π(KHi​Xj​)∥。
内点集为 (\mathcal{I}_i = {j

e_{ij} < \tau }),假设得分 (s_i =

115

图像分割

基于条件随机场的实时语义分割 (CRF-RNN)

输入:图像 I,CNN输出的粗略分割概率图 P。
输出:细化后的分割概率图 Q。
参数:CRF参数 θ={w1​,w2​,σα​,σβ​,σγ​},迭代次数 T。
中间变量:一元势能 ψu​,二元势能 ψp​,消息向量 M,兼容性变换矩阵 μ。

1. 条件随机场能量定义
E(x)=∑i​ψu​(xi​)+∑i<j​ψp​(xi​,xj​),其中 xi​是像素i的标签。
一元势能:ψu​(xi​)=−logP(xi​),来自CNN的预测概率。
二元势能:
ψp​(xi​,xj​)=μ(xi​,xj​)k(fi​,fj​),其中 μ是兼容性函数(可学习),k是高斯核:
k(fi​,fj​)=w1​exp(−2σα2​∥pi​−pj​∥2​−2σβ2​∥Ii​−Ij​∥2​)+w2​exp(−2σγ2​∥pi​−pj​∥2​),其中第一个核同时考虑位置和颜色相似性,第二个核只考虑位置。
2. 平均场近似:为了高效推断,使用平均场近似,即用分布 Q(x)=∏i​Qi​(xi​)近似真实后验分布。最小化KL散度 KL(Q∥P)导出迭代更新方程:
a. 初始化:Qi​(xi​)=Zi​1​exp(−ψu​(xi​))。
b. 消息传递:对于所有标签 l,计算:
Q~​i(m)​(l)=∑j=i​k(fi​,fj​)Qj​(l)。
c. 权重滤波:由于 k是高斯核,消息计算可以表示为在高维空间的高斯卷积。为了加速,使用双边滤波和高斯滤波近似计算。
d. 兼容性变换:Q^​i​(l)=∑l′​μ(l,l′)Q~​i(m)​(l′)。
e. 局部更新:Q~​i​(xi​)=exp(−ψu​(xi​)−Q^​i​(xi​))。
f. 归一化:Qi​(xi​)=Zi​1​Q~​i​(xi​)。
重复步骤b-f若干次(如5次)。
3. 实现为RNN:将平均场迭代展开为循环神经网络(RNN)的步骤。每一步对应一次平均场迭代。可学习的参数包括兼容性矩阵 μ和核权重 w1​,w2​。可以与CNN一起端到端训练。
4. 训练:损失函数为最终输出 Q与真实标签的交叉熵。通过时间反向传播(BPTT)计算梯度。

语义分割、图像标注、实时分割

条件随机场、平均场近似、双边滤波、RNN

116

目标检测

基于关键点的目标检测 (CornerNet)

输入:图像 I。
输出:边界框,表示为左上角和右下角两个关键点。
参数:骨干网络(如Hourglass)权重,预测头参数。
中间变量:热图 Y^,嵌入向量 E^,偏移 O^。

1. 网络结构:使用Hourglass网络作为骨干,提取特征。然后三个预测头:
a. 热图头:预测两个热图,一个用于左上角,一个用于右下角。每个热图大小为 4H​×4W​×C,其中C是类别数。每个通道是二进制掩码,表示该类别的角点位置。
b. 嵌入头:预测每个角点的嵌入向量,使得属于同一个边界框的两个角点具有相似的嵌入。嵌入向量维度为1。
c. 偏移头:预测偏移量,用于补偿下采样带来的量化误差。偏移量对于每个角点预测2维(x和y方向)。
2. 角点检测:热图上的每个点预测该位置是角点的概率。训练时,使用高斯核将真实角点位置绘制到热图上,形成监督信号。损失函数为逐像素逻辑回归的Focal Loss:
Ldet​=N−1​∑c=1C​∑i=1H​∑j=1W​{(1−pcij​)αlog(pcij​)(1−ycij​)β(pcij​)αlog(1−pcij​)​if ycij​=1otherwise​,其中 pcij​是预测概率,ycij​是高斯核生成的真实值,α,β是Focal Loss参数。
3. 角点分组:通过嵌入向量将检测到的左上角和右下角配对。对于每个检测到的角点,网络预测一个嵌入向量。训练时,对于属于同一个边界框的两个角点,最小化它们嵌入向量的距离;对于不同边界框的角点,最大化距离。使用“拉动-推动”损失:
Lpull​=N1​∑k=1N​[(etk​​−ek​)2+(ebk​​−ek​)2],
(\mathcal{L}{\text{push}} = \frac{1}{N(N-1)} \sum{k=1}^{N} \sum_{j=1, j\neq k}^{N} \max(0, \Delta -

e_k - e_j

) ),
其中 etk​​,ebk​​是第k个边界框的左上角和右下角嵌入,ek​是它们的平均值,Δ是间隔(设为1)。总嵌入损失为 Lemb​=Lpull​+Lpush​。
4. 偏移损失:偏移量用于微调角点位置。对于每个真实角点,计算偏移量 ok​=(nxk​​−⌊nxk​​⌋,nyk​​−⌊nyk​​⌋),其中n是下采样因子(4)。使用平滑L1损失:
Loff​=N1​∑k=1N​SmoothL1Loss(o^k​,ok​)。
5. 总损失:L=Ldet​+αLpull​+βLpush​+γLoff​,其中 α,β,γ是权重,通常设为0.1, 0.1, 1。
6. 推理:从热图中提取峰值点作为角点(使用3×3最大池化),然后根据嵌入向量距离配对左上角和右下角,最后使用偏移量调整角点位置。

117

三维视觉

动态场景中的三维重建 (DynamicFusion)

输入:RGB-D视频序列,深度图 Dt​,彩色图 Ct​。
输出:动态场景的规范模型(canonical model)以及每帧的非刚性变形场 Wt​。
参数:体素大小,截断距离,变形场节点分辨率。
中间变量:规范空间的TSDF体积 Vc​,变形场 Wt​(一组变形节点,每个节点包含位置和旋转、平移参数),权重体积 W。

1. 规范模型表示:在规范空间(canonical space)中构建一个TSDF体积 Vc​,表示场景的静态几何。同时,维护一个权重体积 W用于融合多帧信息。
2. 变形场表示:使用嵌入变形图(embedded deformation graph)表示非刚性变形。变形图由一组节点组成,每个节点 g在规范空间中有位置 gc​,在帧t中有旋转 Rgt​和平移 tgt​。任意规范空间点 vc​的变形通过其邻近的K个变形节点(如K=4)加权插值得到:
vt​=∑k=1K​wk​(vc​)[Rkt​(vc​−gkc​)+gkc​+tkt​],其中权重 wk​(vc​)基于距离,并归一化使和为1。
3. 非刚性配准:对于新的一帧t,目标是将当前深度图与规范模型对齐。通过优化变形场参数 {Rgt​,tgt​}最小化几何误差和正则项。
a. 数据关联:将当前深度图的点云与规范模型进行关联。通过将规范模型点变形到当前帧,并投影到深度图,找到对应点。
b. 几何误差:对于每个对应点对,误差为距离:
Egeo​=∑i​∥vti​−uti​∥2,其中 vti​是规范模型点变形到当前帧的位置,uti​是当前深度图对应点。
c. 正则项:为了保证变形场光滑,加入正则项:
Ereg​=∑g​∑h∈N(g)​∥Rgt​(gc​−hc​)+gc​+tgt​−(hc​+tht​)∥2,其中 N(g)是节点g的邻居。
d. 优化:使用高斯牛顿法或列文伯格-马夸尔特法联合优化所有变形节点参数。
4. 模型更新:使用估计的变形场将当前深度图变形到规范空间,然后更新规范模型的TSDF值和权重。更新公式与KinectFusion类似,但需要将当前帧的点通过变形场映射到规范空间。
5. 变形场更新:随着模型的变化,变形场节点也需要更新。可以添加新的节点以适应新的几何,或者调整节点位置。
6. 颜色融合:类似地,可以将颜色信息融合到规范模型中。

动态场景重建、非刚性SLAM、人体运动捕捉

非刚性变形、TSDF、嵌入式变形图、动态场景

118

视觉定位

基于学习的视觉重定位 (NetVLAD)

输入:查询图像 Iq​,参考图像数据库 {Ir​}。
输出:最相似的参考图像及其位姿,或查询图像的位姿估计。
参数:NetVLAD网络权重,PCA降维矩阵,维度 D。
中间变量:图像特征图 F,VLAD描述子 V,残差向量 r。

1. 网络结构:使用CNN(如VGG16)提取图像特征图 F∈RH×W×D。然后通过NetVLAD层将局部特征聚合为全局描述子。
2. NetVLAD层
a. 给定 N个局部描述子 {xi​}∈RD,和 K个聚类中心 {ck​}∈RD。
b. 计算软分配:ak​(xi​)=∑k′​ewk′T​xi​+bk′​ewkT​xi​+bk​​,其中 wk​,bk​是可学习参数。
c. 计算VLAD向量:对于每个聚类中心k,计算残差和:
vk​=∑i=1N​ak​(xi​)(xi​−ck​)∈RD。
d. 拼接所有 vk​得到 K×D维向量,然后进行层归一化(符号平方根和L2归一化):
首先进行 intra-normalization:对每个 vk​进行L2归一化。然后拼接,进行L2归一化。最后进行符号平方根:(\mathbf{V} \leftarrow \text{sign}(\mathbf{V}) \sqrt{

\mathbf{V}

} ),再进行L2归一化。
3. 训练:使用三元组损失(triplet loss)。对于锚图像A,正样本P(同一地点不同视角),负样本N(不同地点),最小化:
L=max(d(A,P)−d(A,N)+α,0),其中 d是描述子之间的欧氏距离,α是边界(margin)。
4. 降维:为了得到紧凑的描述子,可以对NetVLAD输出进行PCA降维和白化,然后再次L2归一化。
5. 图像检索:给定查询图像,计算其NetVLAD描述子,然后在参考数据库中进行最近邻搜索(使用欧氏距离或余弦相似度),找到最相似的参考图像。然后可以通过特征匹配和PnP计算查询图像的精确位姿。

119

图像增强

基于深度学习的图像去雨 (RESCAN)

输入:有雨图像 I。
输出:去雨图像 J。
参数:递归网络权重,注意力机制参数。
中间变量:雨层 R,背景层 B,注意力图 A。

1. 模型假设:有雨图像可以分解为背景层和雨层:I=B+R。雨层具有重复的雨纹模式。
2. 网络结构:RESCAN使用递归的编码器-解码器结构,并带有注意力机制。网络包含多个阶段,每个阶段预测当前残差雨层,并逐步细化背景层。
a. 编码器:由卷积和池化组成,提取多尺度特征。
b. 解码器:由反卷积和卷积组成,逐步恢复空间分辨率。
c. 注意力模块:在编码器和解码器之间,通过注意力机制学习雨纹的位置,使得网络能够关注雨区域。
3. 多阶段递归:设网络有S个阶段。第s阶段的输入是上一阶段估计的背景层 Bs−1​(初始 B0​=I)。第s阶段网络预测一个雨层残差 Rs​和一个注意力图 As​。然后更新背景层:
Bs​=Bs−1​−As​⊙Rs​,其中 ⊙是逐元素乘法。注意力图 As​的值在0到1之间,表示每个像素是雨的概率。
4. 损失函数:每个阶段都计算损失,总损失为各阶段损失之和。每个阶段的损失包括:
a. 重建损失:Lrecs​=∥Bs​−Bgt​∥1​,其中 Bgt​是真实背景图像。
b. 注意力损失:鼓励注意力图在雨区域激活:
Latts​=∥As​⊙(I−Bgt​)∥1​。
总损失:L=∑s=1S​(Lrecs​+λLatts​)。
5. 训练:使用有雨-无雨图像对进行监督训练。

图像去雨、恶劣天气图像增强

图像分解、注意力机制、递归网络、残差学习

120

视觉SLAM

基于语义的SLAM (SLAM++) 或语义融合

输入:RGB-D图像序列,像素级语义分割结果。
输出:相机位姿,带语义标签的三维地图。
参数:物体数据库(CAD模型),语义分割网络权重。
中间变量:物体实例,物体位姿,点云语义标签。

1. 语义分割:对每帧RGB图像进行语义分割,得到每个像素的类别标签和实例标签(如果可行)。
2. 物体检测与识别:根据语义分割结果,将属于同一实例的像素聚类,并提取该实例的点云。然后与物体数据库中的CAD模型进行匹配,识别物体类别并估计其6自由度位姿(通过ICP或PnP)。
3. SLAM前端:相机位姿估计可以通过特征点法或直接法,并融合物体约束。例如,将物体视为地标,其位姿可以作为约束加入优化中。
4. 后端优化:构建包含相机位姿、物体位姿、以及特征点位置(可选)的因子图。因子包括:
a. 视觉里程计因子(相机-相机之间的相对位姿约束)。
b. 物体观测因子(相机观测到物体,提供相机与物体之间的相对位姿约束)。
c. 物体-物体约束(如果已知物体之间的空间关系,如支撑关系)。
优化所有变量,最小化误差。
5. 语义地图构建:将识别出的物体以CAD模型的形式放置在优化后的位姿上,同时将未识别的背景部分以稠密点云或TSDF模型表示,并赋予语义标签。

机器人抓取、增强现实、场景理解

物体识别、因子图、语义分割、CAD模型匹配

121

三维视觉

神经隐式表面重建 (NeuS)

输入:多视角图像及其相机位姿。
输出:场景的神经隐式表面表示(符号距离函数SDF)。
参数:MLP网络权重 θ,用于表示SDF和颜色。
中间变量:SDF值 f(x),颜色 c(x,v),权重函数 w(t)。

1. 场景表示:使用一个MLP网络将3D位置 x映射到符号距离值 f(x),以及将位置和视角方向 v映射到颜色 c(x,v)。表面定义为SDF的零水平集:({\mathbf{x}

f(\mathbf{x})=0})。
2. 体渲染:为了从给定的相机光线渲染颜色,需要积分沿光线的颜色。NeuS提出了一种新的权重函数,使得积分权重在表面处达到最大,并且与SDF的梯度相关。对于一条光线 r(t)=o+tv,期望的颜色为:
C(r)=∫0+∞​w(t)c(r(t),v)dt,其中 w(t)是权重函数,满足 ∫w(t)dt=1且在表面处集中。
NeuS推导出权重函数为:
w(t)=∫0+∞​ϕs​(f(r(u)))duϕs​(f(r(t)))​,其中 ϕs​(x)=se−sx/(1+e−sx)2是逻辑密度函数的导数,s是可学习的参数。
3. 离散化:在光线上一系列采样点 {ti​}处计算SDF和颜色,然后通过数值积分计算颜色:
C^(r)=∑i=1n​Ti​αi​ci​,其中 αi​=max(Φs​(f(r(ti​)))Φs​(f(r(ti​)))−Φs​(f(r(ti+1​)))​,0),Ti​=∏j=1i−1​(1−αj​),Φs​是逻辑斯蒂函数的累积分布函数。
4. 损失函数:包括颜色重建损失和SDF正则化损失:
L=∑r∈R​∥C^(r)−Cgt​(r)∥22​+λLreg​。
正则化损失包括:
a. 自由空间权重损失:鼓励在相机附近(自由空间)的权重为零。
b. 梯度过大惩罚:惩罚SDF梯度偏离1。
5. 训练:从多视角图像中采样光线,使用梯度下降优化网络参数。训练后,可以通过提取SDF的零等值面(如使用Marching Cubes)得到显式网格。

高质量三维重建、新颖视角合成

122

图像分类

注意力增强的卷积网络 (CBAM)

输入:特征图 F∈RH×W×C。
输出:细化后的特征图 F′。
参数:两个多层感知机(MLP)的权重,卷积核权重。
中间变量:通道注意力图 Mc​,空间注意力图 Ms​。

1. 通道注意力模块
a. 对输入特征图F,分别进行全局平均池化和全局最大池化,得到两个C维向量:Favgc​和 Fmaxc​。
b. 将这两个向量分别输入一个共享的两层MLP(第一层神经元数为C/r,第二层为C,r为缩减率),然后逐元素相加,再通过sigmoid激活函数得到通道注意力图:
Mc​(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))。
c. 将通道注意力图与输入特征图逐通道相乘:Fc​=Mc​(F)⊙F。
2. 空间注意力模块
a. 对通道注意力模块的输出 Fc​,沿通道维度分别进行平均池化和最大池化,得到两个H×W×1的特征图。
b. 将这两个特征图拼接,然后通过一个7×7卷积层,再通过sigmoid激活函数得到空间注意力图:
Ms​(Fc​)=σ(f7×7([AvgPool(Fc​);MaxPool(Fc​)])),其中 f7×7表示7×7卷积。
c. 将空间注意力图与输入特征图逐元素相乘:F′=Ms​(Fc​)⊙Fc​。
3. 顺序:CBAM依次应用通道注意力和空间注意力。可以插入到任何卷积网络中。

图像分类、目标检测、注意力机制

通道注意力、空间注意力、池化、多层感知机

123

目标检测

基于Transformer的检测 (DETR) 的改进:Deformable DETR

输入:图像特征图 F∈RH×W×C。
输出:检测结果(边界框和类别)。
参数:可变形注意力模块权重,Transformer编码器-解码器权重。
中间变量:查询向量 Q,参考点 P,采样偏移 ΔP,注意力权重 A。

1. 可变形注意力模块
给定查询向量 q,参考点 p,输入特征图 F,可变形注意力计算为:
DeformAttn(q,p,F)=∑m=1M​Wm​[∑k=1K​Amk​⋅F(p+Δpmk​)],其中M是多头注意力头数,K是采样点数量(通常K=4),Δpmk​是第m个头第k个采样点的偏移量,由查询向量通过线性层预测得到。Amk​是注意力权重,由查询向量通过另一个线性层和softmax预测得到。F(p+Δpmk​)通过双线性插值从特征图中采样得到。Wm​是输出线性层的权重。
2. 编码器:输入特征图通过一个1×1卷积降维,然后添加位置编码。然后通过多层编码器层,每层包含可变形自注意力模块和前馈网络(FFN)。在编码器中,查询向量是特征图上的每个像素,参考点就是像素自身的坐标。
3. 解码器:解码器包含对象查询(object queries)和编码器输出。对象查询是可学习的嵌入向量。解码器也由多层组成,每层包含自注意力和交叉注意力。在交叉注意力中,对象查询作为查询向量,参考点由对象查询预测得到(通过线性层),然后从编码器输出的特征图中采样。
4. 预测头:每个对象查询通过一个FFN预测边界框(中心、宽高)和类别概率。
5. 二分图匹配损失:使用匈牙利算法将预测与真实框匹配,然后计算损失。损失包括类别交叉熵损失和边界框损失(L1损失和GIoU损失)。
6. 优点:可变形注意力只关注参考点周围的一小部分采样点,计算复杂度与特征图大小呈线性关系,而原始Transformer注意力是二次的。因此,Deformable DETR收敛更快,且能处理高分辨率特征图。

目标检测、实例分割

Transformer、可变形注意力、二分图匹配、匈牙利算法

124

三维视觉

点云补全 (PCN)

输入:不完整的点云 Pin​∈RN×3。
输出:完整的点云 Pout​∈RM×3。
参数:编码器-解码器网络权重。
中间变量:全局特征 g,粗糙点云 Pcoarse​,细节特征 F。

1. 编码器:使用PointNet或PointNet++提取输入点云的全局特征向量 g∈RC。
2. 解码器:解码器分为两个阶段:
a. 粗糙点云生成:将全局特征g通过一个全连接层生成一个粗糙的点云 Pcoarse​∈RMc​×3,其中 Mc​是预定义的点数(例如1024)。
b. 细节生成:将粗糙点云与全局特征结合,通过一个点云上采样网络(如基于插值或基于卷积的网络)生成更密集的点云 Pout​∈RM×3(例如16384个点)。具体地,可以将粗糙点云的每个点与全局特征拼接,然后通过多层感知机(MLP)预测每个点的位移,从而得到更精细的形状。
3. 损失函数:使用倒角距离(Chamfer Distance)和地球移动距离(Earth Mover's Distance)的组合。
倒角距离:
(d_{\text{CD}}(S_1, S_2) = \frac{1}{

S_1

} \sum{x \in S_1} \min{y \in S_2} |x - y|_2^2 + \frac{1}{

125

视觉定位

基于学习的视觉里程计 (DeepVO)

输入:图像序列 I1:t​。
输出:相机位姿序列 T1:t​。
参数:CNN和RNN的权重。
中间变量:图像特征 ft​,隐藏状态 ht​,位姿增量 ΔTt​。

1. 特征提取:使用CNN(如FlowNet或VGG)提取每帧图像的视觉特征。对于单帧,可以使用预训练的光流网络提取两帧之间的光流,或者直接使用图像本身。
2. 时序建模:将图像特征序列输入到RNN(如LSTM或GRU)中,捕捉时序信息。RNN的隐藏状态编码了历史运动信息。
3. 位姿回归:从RNN的隐藏状态通过全连接层回归相对位姿增量。通常,回归6自由度的位姿变化:平移向量 t∈R3和旋转向量 r∈so(3)(或欧拉角、四元数)。
4. 位姿整合:初始位姿假设为原点,然后逐帧累加相对位姿:
Tt​=Tt−1​ΔTt​,其中 ΔTt​是由网络预测的相对变换矩阵。
5. 损失函数:使用真实相对位姿的平移和旋转误差:
L=∑t​∥tt​−t^t​∥22​+β∥rt​−r^t​∥22​,其中 β平衡平移和旋转损失。
6. 训练:使用有真实位姿的数据集(如KITTI)进行监督训练。由于是序列数据,可以使用滑动窗口方式训练。

视觉里程计、机器人导航

卷积神经网络、循环神经网络、位姿回归、序列建模

126

图像分割

全景分割 (Panoptic-DeepLab)

输入:图像 I。
输出:每个像素的语义标签和实例ID。
参数:骨干网络(如Xception)权重,三个预测头(语义分割、实例中心、实例偏移)的权重。
中间变量:语义分割图 S,中心点热图 C,偏移向量图 O。

1. 网络结构:使用编码器-解码器结构(如DeepLabv3+)提取特征。然后三个并行的预测头:
a. 语义分割头:预测每个像素的语义类别。
b. 实例中心头:预测每个实例的中心点位置,以热图形式表示,每个实例的中心点被建模为高斯核。
c. 实例偏移头:预测每个像素指向其实例中心点的2D偏移向量。
2. 后处理
a. 语义分割结果:对语义分割图进行argmax得到每个像素的类别,区分“物体”(可数实例,如人、车)和“背景”(不可数,如天空、道路)。
b. 实例分组:对于“物体”类别的像素,利用中心热图和偏移图进行实例分组。首先,从中心热图中提取峰值点作为实例中心候选。然后,对于每个像素,根据偏移图将其投票到最近的中心点。通过连通组件分析或聚类(如均值漂移)将像素分组到各个实例。
c. 合并:将语义分割和实例分组结果合并,得到全景分割输出。每个像素有一个语义标签和一个实例ID(对于“背景”类别,实例ID为0)。
3. 损失函数
语义分割损失:交叉熵损失或加权交叉熵。
实例中心损失:使用高斯核生成的软目标,采用交叉熵损失或像素级的逻辑回归损失(如Focal Loss)。
实例偏移损失:对于“物体”像素,使用L1或Huber损失,最小化预测偏移与真实偏移(从像素指向其实例中心)之间的差异。
总损失是三个损失的加权和。
4. 训练:需要全景分割标注(每个像素有语义标签和实例ID)进行监督训练。

全景分割、场景理解

语义分割、实例分割、中心点检测、偏移回归

127

三维视觉

神经辐射场加速 (InstantNGP)

输入:多视角图像及其相机位姿。
输出:训练好的神经辐射场模型,支持快速推理。
参数:多分辨率哈希编码表,小型MLP权重,密度和颜色网络参数。
中间变量:哈希表 H,特征向量 f,密度 σ,颜色 c。

1. 多分辨率哈希编码
对于3D坐标 x,在L个分辨率等级上进行编码。在第l级,网格分辨率为从 Nmin​到 Nmax​的等比序列。每个网格顶点存储一个D维特征向量。给定坐标 x,在第l级找到其所在的体素,体素的8个顶点的特征向量通过哈希表查找(哈希函数将顶点坐标映射到哈希表索引)。然后对特征向量进行三线性插值,得到该级的特征向量 fl​。最后,将所有L级的特征向量拼接,得到编码后的特征 f=[f1​,...,fL​]。
2. 小MLP解码:将编码后的特征 f输入一个小型MLP(例如两层),输出密度 σ。同时,将特征 f和视角方向 d输入另一个小型MLP,输出颜色 c。由于哈希编码已经将空间信息编码到高维特征中,MLP可以非常小,从而加速训练和推理。
3. 体渲染:与NeRF相同,沿光线采样点,计算密度和颜色,然后积分得到像素颜色。由于MLP计算快速,可以大大减少渲染时间。
4. 训练:使用与NeRF相同的损失函数(光度重建损失)。通过梯度下降联合优化哈希表参数和MLP参数。由于哈希表存在冲突,但作者发现一定程度的冲突可以被容忍,甚至起到正则化作用。
5. 高效实现:使用CUDA内核并行计算哈希编码和MLP前向传播,实现实时训练和渲染。

快速神经渲染、三维重建、新颖视角合成

哈希编码、神经辐射场、体渲染、实时渲染

128

目标检测

基于查询的检测 (Sparse R-CNN)

输入:图像特征图 F。
输出:检测结果。
参数:可学习的提议框(proposal boxes)和提议特征(proposal features),动态实例交互头权重。
中间变量:提议框 Bp​,提议特征 Fp​,迭代更新的框和特征。

1. 初始化:随机初始化N个提议框(4维)和N个提议特征(高维向量)。这些参数与检测头权重一起学习。
2. 主干网络:使用CNN(如ResNet)提取图像特征图 F。
3. 动态实例交互头:这是一个解码器结构,由多个级联的阶段(stage)组成。每个阶段包含:
a. 动态实例采样:对于每个提议框,使用RoIAlign从特征图F中提取提议特征 fp​。然后将这个特征与对应的提议特征(可学习的)拼接,输入到动态卷积层,生成该实例的卷积核参数。
b. 实例特征更新:使用生成的卷积核对整个特征图进行卷积,得到更新后的实例特征。然后通过自注意力和前馈网络进一步细化。
c. 预测:从更新后的实例特征预测边界框偏移和类别分数,用于更新提议框。
d. 迭代:将更新后的提议框和提议特征输入下一阶段,重复上述过程。
4. 损失函数:与DETR类似,使用二分图匹配损失(匈牙利匹配)和分类、框回归损失。
5. 优点:无需锚框和非极大值抑制,且参数量少,推理速度快。

目标检测、实例分割

稀疏检测、动态卷积、级联优化、二分图匹配

129

三维视觉

点云语义分割 (RandLA-Net)

输入:大规模点云 P∈RN×d。
输出:每个点的语义标签。
参数:局部特征编码器权重,共享MLP权重。
中间变量:点特征 F,采样后的点集 Psub​,特征向量 fi​。

1. 随机采样:为了处理大规模点云,逐层对点云进行随机下采样,减少点数。随机采样简单高效,且不会引入额外计算。
2. 局部特征聚合:对于采样后的每个点,查找其邻域点(使用K近邻或球查询),然后通过局部特征编码模块提取局部特征。局部特征编码模块包括:
a. 局部空间编码(LocSE):对于每个邻居点,编码其相对于中心点的相对坐标、欧氏距离等,然后通过MLP得到编码特征。
b. 注意力池化:对邻居点的特征进行加权求和,权重由中心点和邻居点的特征通过共享MLP和softmax得到。这样可以突出重要的邻居点。
然后,将聚合的局部特征与中心点的特征拼接,通过MLP得到新的中心点特征。
3. 扩张残差块:为了增大感受野,使用扩张残差块。每个块包含多个局部特征聚合单元,并且使用跳过连接。
4. 上采样:由于下采样降低了分辨率,为了得到每个原始点的预测,需要通过最近邻插值将特征传播到原始点。然后,通过几个共享MLP将特征映射到类别数。
5. 损失函数:使用加权交叉熵损失,缓解类别不平衡。

大规模点云语义分割、自动驾驶场景理解

点云采样、局部特征聚合、注意力池化、随机采样

130

视觉定位

视觉-语言导航 (VLN) 中的跨模态对齐

输入:全景图像序列,自然语言指令。
输出:导航路径或动作序列。
参数:视觉编码器、语言编码器、跨模态注意力模块、策略网络权重。
中间变量:视觉特征 V,语言特征 L,上下文向量 c,动作概率 π。

1. 视觉编码:对每个全景图像,使用CNN提取多个视角的图像特征,然后通过注意力或平均池化得到全局视觉特征 vt​。
2. 语言编码:使用LSTM或Transformer对自然语言指令进行编码,得到一系列单词特征 {l1​,...,lm​}。
3. 跨模态注意力:在每一步,使用视觉特征作为查询,对语言特征进行

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/weixin_49199313/article/details/160096072

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--