详细介绍:计算机视觉(三):特征检测与光流法
文章目录
- 10.边缘检测与形态学处理
- 思维导图
- 边缘检测基础:定义与数学原理
- 离散边缘算子:从理论到离散构建
- 抗噪声边缘检测:LoG与DoG
- Canny边缘检测器:“最优”边缘检测方案
- 形态学操作:边缘后处理工具
- 边缘检测的数学本质是“梯度极值”,请解释梯度与边缘的关系,并对比Roberts、Sobel、Laplacian三种离散算子的核心差异(从核尺寸、抗噪声能力、定位精度角度)。
- 为何Canny边缘检测器被称为“最优”?其四步流程中“非极大值抑制”和“双阈值滞后”分别处理了传统算子的哪些难题?
- 形态学操作中“膨胀”与“腐蚀”是基础,请定义二者的数学表达式,解释其“对偶性”的含义,并说明开运算(A∘B)和闭运算(A·B)的核心应用场景(各举1个工程实例)。
- 11.图像分割
- 思维导图
- 图像分割概述
- 基于像素的途径(Pixel-based Methods)
- 基于分组/聚类的方法(Grouping/Clustering-based Methods)
- 轮廓基方法(Contour-based Methods)
- 深度学习基分割(Deep Learning-based Segmentation)
- 霍夫变换检测直线时,为何要将参数空间从“y=mx+c”改为“ρ=xcosθ+ysinθ”?请结合参数范围与计算复杂度说明。
- K-means与Mean Shift作为两种常用聚类技巧,在“簇数预设”“簇形状适应性”“离群点鲁棒性”三个维度有何核心差异?这些差异如何影响它们的分割场景选择?
- 格式塔原则中的“邻近性”和“相似性”在图像分割中如何具体应用?请结合文档中的电梯按钮案例和灰度图像分割案例说明。
- 12.彩色视觉
- 13.计算机视觉中的特征检测
- 14.光流与运动目标检测
- 15.双目立体视觉与3D重建
10.边缘检测与形态学运行
核心围绕“从边缘检测原理到工程实现”展开:最初明确边缘是图像灰度值快速突变的区域,由表面法向量/深度/光照/颜色不连续导致,其数学本质对应图像梯度的极值点(梯度方向为边缘法向,梯度幅值为边缘强度);随后介绍离散边缘算子(Roberts(2×2,定位好但噪声敏感)、Sobel(3×3,抗噪声强但定位稍差)、Laplacian(3×3,线性各向同性但易放大噪声));针对噪声问题,提出LoG(高斯-拉普拉斯) 和DoG(高斯差分)方案(先平滑再求导,DoG可近似LoG);重点详解Canny边缘检测器(被认为“最优”,四步流程:①高斯平滑(σ控制尺度)→②梯度幅值/方向计算→③非极大值抑制(边缘细化到单像素)→④双阈值滞后(高阈值启动边缘、低阈值连接间隙,比例1:3或2:3));最终介绍形态学操作(基础操作:膨胀(扩张边界)、腐蚀(收缩边界),及其对偶性;组合管理:开运算(先腐后膨,去小凸起)、闭运算(先膨后腐,填小间隙),及应用算法如边界提取、区域填充、连通分量提取),为边缘后处理提供软件。
思维导图

边缘检测基础:定义与数学原理
1. 边缘的本质与成因
- 边缘定义:图像中灰度值发生快速、显著变化物体边界、纹理突变的直观体现。就是的像素区域,
- 核心成因(文档图4-7):
- 表面法向量不连续(物体表面朝向变化);
- 深度不连续(前景与背景交界);
- 光照不连续(阴影、高光);
- 颜色/反射率不连续(不同材质交界)。
- 关键特性:理想边缘为“阶跃型”(灰度从B₁突变到B₂),实际边缘受噪声影响呈“平滑阶跃”,需结合平滑操作抑制噪声。
2. 边缘检测的数学理论
- 梯度(Gradient):
图像f(x,y)的梯度定义为∇ f = [ ∂ f ∂ x , ∂ f ∂ y ] \nabla f = \left[\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right]∇f=[∂x∂f,∂y∂f],是边缘检测的核心工具:- 梯度方向:θ=arctan(∂f/∂y / ∂f/∂x),指向灰度增长最快的方向,即边缘的法向;
- 梯度幅值:∥ ∇ f ∥ = ( ∂ f / ∂ x ) 2 + ( ∂ f / ∂ y ) 2 \|\nabla f\| = \sqrt{(\partial f/\partial x)^2 + (\partial f/\partial y)^2}∥∇f∥=(∂f/∂x)2+(∂f/∂y)2,幅值越大,边缘强度越强。
- 拉普拉斯(Laplacian):
二阶导数算子,定义为∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2}∇2f=∂x2∂2f+∂y2∂2f,其零交叉点(灰度从正变负或负变正)对应边缘位置,具有旋转各向同性(对任意方向边缘响应一致)。
离散边缘算子:从理论到离散达成
离散的,需用就是由于数字图像有限差分近似导数,文档介绍三类常用离散算子,对比如下:
| 算子类型 | 核尺寸 | 核示例(以x方向为例) | 关键特性 | 优势 | 劣势 |
|---|---|---|---|---|---|
| Roberts算子 | 2×2 | [[-1, 0], [0, 1]] | 一阶导数,用对角线差分近似梯度 | 定位精度高,计算快 | 抗噪声能力弱,对45°边缘敏感 |
| Sobel算子 | 3×3 | [[-1,0,1], [-2,0,2], [-1,0,1]] | 一阶导数,邻域加权平均(中心权重2) | 抗噪声能力强,工程常用 | 定位精度略低于Roberts |
| Laplacian算子 | 3×3 | [[0,1,0], [1,-4,1], [0,1,0]] | 二阶导数,线性各向同性 | 对边缘方向无偏向 | 易放大噪声,无边缘方向信息 |
- 操作逻辑:所有算子均通过“核与图像卷积”实现,卷积结果即为边缘响应(幅值/零交叉点)。
抗噪声边缘检测:LoG与DoG
离散算子直接处理含噪声图像时,易将噪声误判为边缘,文档提出“先平滑再求导”的解决方案:
1. LoG(高斯-拉普拉斯,Laplacian of Gaussian)
- 原理:利用卷积的微分性质,先对图像做高斯平滑(抑制噪声),再做拉普拉斯(提取边缘),即∇ 2 ( G σ ∗ f ) = G σ ∗ ∇ 2 f \nabla^2(G_\sigma * f) = G_\sigma * \nabla^2 f∇2(Gσ∗f)=Gσ∗∇2f(G σ G_\sigmaGσ为高斯核,σ \sigmaσ为平滑尺度)。
- 高斯核公式:G σ ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 G_\sigma(x,y) = \frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}}Gσ(x,y)=2πσ21e−2σ2x2+y2,σ \sigmaσ越大,平滑越强,边缘越粗。
- 边缘提取:LoG卷积结果的零交叉点即为边缘,需阈值化去除弱零交叉(噪声导致)。
2. DoG(高斯差分,Difference of Gaussians)
- 定义:用两个不同尺度的高斯核平滑图像后相减,即D o G = G σ 1 − G σ 2 DoG = G_{\sigma_1} - G_{\sigma_2}DoG=Gσ1−Gσ2(σ 1 > σ 2 \sigma_1 > \sigma_2σ1>σ2)。
- 核心优势:计算量远低于LoG(无需二阶导数),且在工程上可近似LoG(当σ 1 = k σ 2 \sigma_1 = k\sigma_2σ1=kσ2,k≈1.6时近似度最高)。
- 边缘提取:与LoG类似,通过DoG结果的零交叉点或局部极值提取边缘。
Canny边缘检测器:“最优”边缘检测方案
J. Canny于1986年提出的检测器,被认为是“最优边缘检测器”,核心满足三大目标:低误差率(少漏检/误检)、高定位性(检测边缘接近真实边缘)、单边缘响应(一个真实边缘对应一个检测点)。
Canny四步流程
步骤1:高斯平滑
- 操作:用高斯核G σ G_\sigmaGσ与图像卷积,得到平滑图像S ( x , y ) = G σ ∗ f ( x , y ) S(x,y) = G_\sigma * f(x,y)S(x,y)=Gσ∗f(x,y);
- 作用:抑制高斯噪声,σ \sigmaσ决定尺度(σ = 1 \sigma=1σ=1像素检测细边缘,σ = 3 \sigma=3σ=3像素检测粗边缘)。
步骤2:梯度计算
- 操作:用有限差分近似x/y方向梯度:
G x ≈ [ S ( x , y + 1 ) − S ( x , y ) + S ( x + 1 , y + 1 ) − S ( x + 1 , y ) ] / 2 G_x ≈ [S(x,y+1)-S(x,y) + S(x+1,y+1)-S(x+1,y)]/2Gx≈[S(x,y+1)−S(x,y)+S(x+1,y+1)−S(x+1,y)]/2,G y ≈ [ S ( x , y ) − S ( x + 1 , y ) + S ( x , y + 1 ) − S ( x + 1 , y + 1 ) ] / 2 G_y ≈ [S(x,y)-S(x+1,y) + S(x,y+1)-S(x+1,y+1)]/2Gy≈[S(x,y)−S(x+1,y)+S(x,y+1)−S(x+1,y+1)]/2;
计算梯度幅值G = G x 2 + G y 2 G = \sqrt{G_x^2 + G_y^2}G=Gx2+Gy2和方向θ = a r c t a n ( G y / G x ) \theta = arctan(G_y/G_x)θ=arctan(Gy/Gx)(量化为0°、45°、90°、135°四方向); - 作用:将边缘转化为“高幅值区域”,保留边缘强度与方向信息。
- 操作:用有限差分近似x/y方向梯度:
步骤3:非极大值抑制(NMS)
- 操作:沿梯度方向(边缘法向)对比当前像素与邻域像素的梯度幅值,仅保留局部极大值(非极大值像素设为0);
- 作用:将“宽边缘脊”细化为单像素宽边缘,提升定位精度。
步骤4:双阈值滞后(Hysteresis Thresholding)
- 操作:
- 设高阈值T H T_HTH和低阈值T L T_LTL(推荐比例T H : T L = 1 : 3 T_H:T_L=1:3TH:TL=1:3或2 : 3 2:32:3);
- 幅值>T H T_HTH:强边缘(直接保留,作为边缘种子);
- 幅值在T L T_LTL~ T H T_HTH:弱边缘(仅保留与强边缘连通的部分);
- 幅值<T L T_LTL:噪声(丢弃);
- 作用:连接边缘间隙,去除孤立弱边缘(噪声),提升边缘完整性。
- 操作:
形态学执行:边缘后处理工具
针对二值图像(边缘检测输出),文档介绍形态学基本操作及应用算法,核心是“结构元素(B)对图像(A)的变换”。
1. 基础操作定义与性质
| 操作名称 | 数学定义 | 核心作用 | 关键性质 |
|---|---|---|---|
| 膨胀(Dilation) | $ A⊕B = {z , (\hat{B})_z ∩ A ≠ ∅}(\hat{B}为B反射)$ | 扩张物体边界,填补小间隙 | 1. 交换律:A⊕B=B⊕A; 2. 结合律:(A⊕B)⊕C=A⊕(B⊕C) |
| 腐蚀(Erosion) | $ A⊖B = {z , B_z ⊆ A}(B_z为B平移z)$ | 收缩物体边界,去除小凸起 | 1. 对偶性:( A ⊖ B ) c = A c ⊕ B ^ (A⊖B)^c = A^c⊕\hat{B}(A⊖B)c=Ac⊕B^; 2. 单调性:A⊂C→A⊖B⊂C⊖B |
| 开运算(Opening) | A ∘ B = ( A ⊖ B ) ⊕ B A∘B = (A⊖B)⊕BA∘B=(A⊖B)⊕B | 先腐蚀再膨胀,去除小凸起、断窄连接 | 1. A∘B⊂A; 2. 对噪声鲁棒 |
| 闭运算(Closing) | A ⋅ B = ( A ⊕ B ) ⊖ B A·B = (A⊕B)⊖BA⋅B=(A⊕B)⊖B | 先膨胀再腐蚀,填补小间隙、去除小holes | 1. A⊂A·B; 2. 平滑物体轮廓 |
2. 典型应用算法
- 边界提取:β ( A ) = A − ( A ⊖ B ) \beta(A) = A - (A⊖B)β(A)=A−(A⊖B),用腐蚀后的图像与原图求差,得到物体边界;
- 区域填充:已知种子点X₀,迭代X k = ( X k − 1 ⊕ B ) ∩ A c X_k = (X_{k-1}⊕B)∩A^cXk=(Xk−1⊕B)∩Ac,直到X_k收敛,填充A中的空洞;
- 连通分量提取:已知种子点X₀(属于某连通分量),迭代X k = ( X k − 1 ⊕ B ) ∩ A X_k = (X_{k-1}⊕B)∩AXk=(Xk−1⊕B)∩A,直到X_k收敛,提取A中所有与X₀连通的像素;
- 击中-击不中变换:A ⊛ B = ( A ⊖ B 1 ) ∩ ( A c ⊖ B 2 ) A⊛B = (A⊖B₁)∩(A^c⊖B₂)A⊛B=(A⊖B1)∩(Ac⊖B2)(B₁为目标结构,B₂为背景结构),用于特定形状(如角点、线段)的检测。
边缘检测的数学本质是“梯度极值”,请解释梯度与边缘的关系,并对比Roberts、Sobel、Laplacian三种离散算子的核心差异(从核尺寸、抗噪声能力、定位精度角度)。
梯度与边缘的关系:
边缘是图像灰度快捷突变的区域,数学上对应灰度函数的“一阶导数极值”——梯度幅值∥ ∇ f ∥ \|\nabla f\|∥∇f∥的峰值位置即为边缘,梯度方向θ \thetaθ与边缘方向垂直(沿边缘法向)。例如,阶跃型边缘的梯度幅值在突变处最大,拉普拉斯(二阶导数)的零交叉点恰好对应该突变位置,二者均为边缘定位的核心依据。三种离散算子对比:
| 对比维度 | Roberts算子(一阶) | Sobel算子(一阶) | Laplacian算子(二阶) |
|---|---|---|---|
| 核尺寸 | 2×2 | 3×3 | 3×3 |
| 抗噪声能力 | 弱(仅用2×2邻域,未加权) | 强(3×3邻域加权,中心权重2,平滑效果好) | 弱(二阶导数放大噪声) |
| 定位精度 | 高(对角线差分,对边缘位置敏感) | 中(加权导致边缘轻微偏移) | 中(零交叉点定位较准,但受噪声干扰) |
| 边缘方向信息 | 无(仅输出幅值) | 有(可计算梯度方向) | 无(仅输出零交叉) |
| 适用场景 | 低噪声、需高精度定位的场景 | 通用场景(如工业检测) | 需各向同性边缘响应的场景 |
为何Canny边缘检测器被称为“最优”?其四步流程中“非极大值抑制”和“双阈值滞后”分别解决了传统算子的哪些问题?
Canny“最优”的原因:
Canny检测器通过数学推导,满足边缘检测的三大核心目标(文档46-47页):- 低误差率:先高斯平滑抑制噪声,减少“漏检真实边缘”和“误检噪声”;
- 高定位性:非极大值抑制将边缘细化到单像素,确保检测边缘与真实边缘的距离最小;
- 单边缘响应:双阈值滞后仅保留与强边缘连通的弱边缘,避免同一真实边缘被多次检测(传统算子常出现“边缘脊宽”问题)。
关键步骤的作用:
- 非极大值抑制(NMS):解决传统算子(如Sobel)输出“宽边缘脊”的问题——沿梯度方向(边缘法向)对比邻域幅值,仅保留局部极大值,将$边缘从多像素宽细化为1像素宽,显著提升定位精度;
- 双阈值滞后:解决传统单阈值的“边缘断裂”和“噪声残留”问题——高阈值(如T H T_{H}TH=100)保留强边缘(无噪声),低阈值(如T L T_LTL=33)通过“连通性判断”连接强边缘间隙,同时丢弃孤立弱边缘(噪声),确保边缘的完整性与纯净度。
基础,请定义二者的数学表达式,解释其“对偶性”的含义,并说明开运算(A∘B)和闭运算(A·B)的核心应用场景(各举1个工程实例)。就是形态学操作中“膨胀”与“腐蚀”
膨胀与腐蚀的定义:
- 膨胀(A⊕B):A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A⊕B = \{z | (\hat{B})_z ∩ A ≠ ∅\}A⊕B={z∣(B^)z∩A=∅},其中B ^ \hat{B}B^是结构元素B关于原点的反射,B z B_zBz是B平移z后的集合。本质是“用B扩张A的边界”,例如二值图像中,物体的像素会向周围邻域扩展,填补小间隙。
- 腐蚀(A⊖B):A ⊖ B = { z ∣ B z ⊆ A } A⊖B = \{z | B_z ⊆ A\}A⊖B={z∣Bz⊆A},本质是“用B收缩A的边界”,例如二值图像中,物体边缘的孤立小像素(噪声)会被移除,小凸起消失。
对偶性含义:
膨胀与腐蚀关于“集合补运算”对偶,即( A ⊖ B ) c = A c ⊕ B ^ (A⊖B)^c = A^c ⊕ \hat{B}(A⊖B)c=Ac⊕B^(A^c是A的补集,B ^ \hat{B}B^是B的反射)。例如,“腐蚀A”的补集等于“膨胀A的补集”,该性质可简化形态学操作的计算(如用膨胀实现腐蚀的补运算)。开/闭运算的应用场景:
- 开运算(A∘B=(A⊖B)⊕B):先腐蚀去除小凸起,再膨胀恢复物体主体,核心用于“去除图像中的小噪声块”。例如,工业检测中,金属表面图像的小杂质(小白色块)可借助开运算去除,同时保留金属的整体轮廓。
- 闭运算(A·B=(A⊕B)⊖B):先膨胀填补小间隙,再腐蚀恢复物体主体,核心用于“连接断裂的边缘或轮廓”。例如,手写文字识别中,笔画断裂的字符(如“0”的缺口)可通过闭运算填补,确保字符完整,提升识别率。
11.图像分割
核心将分割方法分为基于像素的方法、基于分组/聚类的方式、轮廓基方法及深度学习基方法四大类:基于像素的方法包括点检测(用3×3掩码计算响应值∣ R ∣ ≥ T |R|≥T∣R∣≥T)、线检测(4个方向掩码对比响应值)、霍夫变换(直线检测用ρ = x cos θ + y sin θ \rho=x\cos\theta+y\sin\thetaρ=xcosθ+ysinθ参数空间,圆检测用3D累加器)、直方图分割(自动阈值迭代步骤:初始T→分G₁/G₂→算μ₁/μ₂→更新T至收敛);基于分组/聚类的方法以格式塔原则(邻近性、相似性等7大准则)为基础,涵盖K-means聚类(迭代分配-更新均值至收敛,需预设K)、Mean Shift(凭借核窗口找密度峰值,单参数窗口大小)、图基分割(像素为节点,边权重为相似度)、背景减除(移动平均更新背景,阈值差分提取前景);轮廓基方法包括Snakes(主动轮廓模型)(内/外能量驱动轮廓变形)和Level Set(水平集方程∂ ϕ ∂ t + F ∣ ∇ ϕ ∣ = 0 \frac{\partial \phi}{\partial t}+F|\nabla \phi|=0∂t∂ϕ+F∣∇ϕ∣=0);最终提及深度学习基分割(实例分割、语义分割,如OSVOS、RGMP等办法),并利用实例验证各方法效果。
思维导图

图像分割概述
- 核心目标:将图像从像素阵列转化为有意义的区域/轮廓表示,提取关键语义信息(如物体边界、前景目标),实现图像的“紧凑表达”。
- 方法分类:文档将分割方法分为四大类——基于像素的方法、基于分组/聚类的方法、轮廓基途径、深度学习基方法,无统一通用理论,需根据场景选择。
- 挑战:部分复杂场景(如纹理模糊、遮挡)即使人类也难以准确分割,需结合先验知识或多方法融合。
基于像素的方法(Pixel-based Methods)
该类方法通过单个像素或局部邻域的灰度/响应值实现分割,核心是“像素级特征判断”。
1. 点检测(Point Detection)
- 原理:用3×3掩码计算像素响应值R = ∑ i = 1 9 w i z i R=\sum_{i=1}^9 w_i z_iR=∑i=19wizi(w i w_iwi为掩码系数,z i z_izi为邻域像素值),当∣ R ∣ ≥ T |R|≥T∣R∣≥T(T为非负阈值,通常取最大绝对响应的90%)时,判定为孤立点。
- 典型掩码:用于检测孤立亮点/暗点的掩码为[ 1 1 1 1 − 8 1 1 1 1 ] \begin{bmatrix}1&1&1\\1&-8&1\\1&1&1\end{bmatrix}1111−81111,通过中心像素与邻域的差值放大孤立点响应。
2. 线检测(Line Detection)
- 原理:设计4个方向(水平、垂直、+45°、-45°)的3×3掩码,计算每个像素在4个方向的响应R 1 R_1R1~R 4 R_4R4,若∣ R i ∣ > ∣ R j ∣ |R_i|>|R_j|∣Ri∣>∣Rj∣(∀j≠i),则像素属于掩码i对应的线方向。
- 典型掩码:
线方向 掩码示例 水平 [[-1,-1,2],[-1,-1,2],[-1,-1,2]] 垂直 [[-1,-1,-1],[2,2,2],[-1,-1,-1]] +45° [[-1,2,-1],[-1,2,-1],[-1,2,-1]] -45° [[2,-1,-1],[-1,2,-1],[-1,-1,2]] - 实例:对金属线键合图像用-45°掩码处理,阈值化后可提取-45°方向的导线。
3. 霍夫变换(Hough Transform)
- 核心思想:将图像空间的“点”映射到参数空间的“曲线”,通过“投票”找参数空间的局部极大值,实现直线/圆等几何形状的检测,适用于边缘不连通、部分遮挡的场景。
(1)直线检测
- 参数空间转换:
- 原始直线方程y = m x + c y=mx+cy=mx+c存在m→±∞的问题(垂直直线),优化为极坐标形式:ρ = x cos θ + y sin θ \boldsymbol{\rho=x\cos\theta+y\sin\theta}ρ=xcosθ+ysinθ,其中ρ \rhoρ为原点到直线的垂直距离,θ \thetaθ为垂线与X轴的夹角(0 ≤ θ ≤ 2 π 0≤θ≤2π0≤θ≤2π,0 ≤ ρ ≤ m a x ρ 0≤ρ≤maxρ0≤ρ≤maxρ)。
- 步骤:
- 初始化H ( θ , ρ ) H(θ,ρ)H(θ,ρ)累加器数组为0;
- 对每个边缘点( x , y ) (x,y)(x,y),遍历θ ∈ [ − 90 ° , 180 ° ] θ∈[-90°,180°]θ∈[−90°,180°],计算ρ = x cos θ + y sin θ ρ=x\cosθ+y\sinθρ=xcosθ+ysinθ,令H ( θ , ρ ) = H ( θ , ρ ) + 1 H(θ,ρ)=H(θ,ρ)+1H(θ,ρ)=H(θ,ρ)+1;
- 寻找H ( θ , ρ ) H(θ,ρ)H(θ,ρ)的局部极大值,对应图像空间的直线(ρ = x cos θ + y sin θ ρ=x\cosθ+y\sinθρ=xcosθ+ysinθ)。
- 难点:累加器单元格大小需平衡精度与计算量(太大合并不同直线,太小漏检)。
(2)圆检测
- 方程:圆的一般方程为( x − a ) 2 + ( y − b ) 2 = r 2 \boldsymbol{(x-a)^2+(y-b)^2=r^2}(x−a)2+(y−b)2=r2(( a , b ) (a,b)(a,b)为圆心,r为半径)。
- 累加器设计:
- 已知r:2D累加器A ( a , b ) A(a,b)A(a,b),边缘点( x , y ) (x,y)(x,y)对( a = x ± r 2 − ( y − b ) 2 , b ) (a=x±\sqrt{r²-(y-b)²},b)(a=x±r2−(y−b)2,b)投票;
- 未知r:3D累加器A ( a , b , r ) A(a,b,r)A(a,b,r),遍历可能的r值,计算对应( a , b ) (a,b)(a,b)并投票。
- 实例:检测硬币图像,需为不同尺寸的硬币(便士、25美分)设计单独累加器。
4. 直方图相关方法
- 直方图定义:灰度直方图h ( r k ) = n k h(r_k)=n_kh(rk)=nk(r k ∈ [ 0 , L − 1 ] r_k∈[0,L-1]rk∈[0,L−1]为灰度级,n k n_knk为该灰度级的像素数),归一化直方图p ( r k ) = n k / n p(r_k)=n_k/np(rk)=nk/n(n为总像素数,∑ p ( r k ) = 1 \sum p(r_k)=1∑p(rk)=1)。
- 常见操作:
操作类型 目的 关键步骤 直方图均衡化 拉伸灰度范围,提升对比度 计算累积分布函数s k = ∑ j = 0 k p ( r j ) s_k=\sum_{j=0}^k p(r_j)sk=∑j=0kp(rj),映射灰度级 直方图规定化 使输入图直方图匹配参考图 计算输入与参考图的累积分布,建立灰度映射关系 直方图分割 用阈值T分割前景与背景 自动阈值迭代:
1. 初始T;
2.分G₁(>T)/G₂(≤T);
3.算μ₁/μ₂;
4. 更新T = ( μ 1 + μ 2 ) / 2 T=(μ₁+μ₂)/2T=(μ1+μ2)/2;
5.收敛(abs( T n e w − T o l d ) < T 0 (T_{new}-T_{old})<T₀(Tnew−Told)<T0)
基于分组/聚类的方法(Grouping/Clustering-based Methods)
该类办法基于“像素相似性”或“人类视觉分组准则”,将像素聚为有意义的簇,核心是“全局/局部相似性聚类”。
1. 格式塔(Gestalt)原则
- 核心思想:人类视觉框架会根据“整体大于部分之和”的原则分组,文档提出7大准则:
准则名称 描述 示例 邻近性 距离近的像素倾向于分组 电梯按钮与标签的邻近分组 相似性 灰度/颜色/纹理相似的像素倾向于分组 同色像素聚为同一区域 共同命运 运动一致的像素倾向于分组 同一物体的像素同步移动 共同区域 同一闭合区域内的像素倾向于分组 矩形框内的像素聚为一组 平行性 平行的曲线/像素倾向于分组 平行的导线聚为一组 对称性 对称的像素/曲线倾向于分组 对称的物体轮廓聚为一组 连续性 连续的曲线/像素倾向于分组 断裂但连续的边缘聚为一条线
2. K-means聚类
- 原理:通过迭代最小化“簇内误差平方和”,将像素分为K个簇。
- 步骤:
- 初始化K个簇中心μ 1 , μ 2 , . . . , μ K \mu_1,\mu_2,...,\mu_Kμ1,μ2,...,μK(随机或按距离选择);
- 分配:将每个像素x j x_jxj分配到最近的簇中心μ i \mu_iμi(距离用欧氏距离);
- 更新:重新计算每个簇的均值μ i = 1 ∣ S i ∣ ∑ x j ∈ S i x j \mu_i=\frac{1}{|S_i|}\sum_{x_j∈S_i}x_jμi=∣Si∣1∑xj∈Sixj(S i S_iSi为第i个簇的像素集);
- 收敛:若所有簇中心的变化量<ε,停止;否则重复步骤2-3。
- 优缺点:
优点 缺点 简单快速,收敛到局部最小值 需预设K值,对初始化敏感 适用于球形簇数据 对离群点敏感,仅处理球形簇
3. Mean Shift(均值漂移)
- 原理:通过核窗口(如高斯核)计算“均值漂移向量”,将窗口移动到密度峰值处,实现自适应聚类(无需预设簇数)。
- 关键公式:Mean Shift向量
m ( x ) = ∑ i = 1 n x i g ( ∥ x − x i ∥ 2 h ) ∑ i = 1 n g ( ∥ x − x i ∥ 2 h ) − x \boldsymbol{m(x)=\frac{\sum_{i=1}^n x_i g\left(\frac{\|x-x_i\|^2}{h}\right)}{\sum_{i=1}^n g\left(\frac{\|x-x_i\|^2}{h}\right)}-x}m(x)=∑i=1ng(h∥x−xi∥2)∑i=1nxig(h∥x−xi∥2)−x
其中g ( x ) = − k ′ ( x ) g(x)=-k'(x)g(x)=−k′(x)(k为核函数),h为窗口大小(唯一参数)。 - 步骤:
- 对每个像素初始化核窗口;
- 计算Mean Shift向量,移动窗口至新中心;
- 重复步骤2至窗口中心收敛;
- 合并距离<窗口大小的簇。
- 优缺点:
优点 缺点 无需预设簇数,对离群点鲁棒 计算量大,随特征维度增加性能下降 可处理非球形簇 窗口大小影响结果,需手动调整
4. 图基分割(Graph-based Segmentation)
- 模型:将图像视为无向图G = ( V , E ) G=(V,E)G=(V,E),其中:
- 节点V:每个像素为一个节点;
- 边E:任意两像素间有边,权重为“相似度(Affinity)”。
- 相似度计算:
- 距离相似度:a f f ( x , y ) = e x p ( − ( x − y ) T ( x − y ) 2 σ d 2 ) aff(x,y)=exp\left(-\frac{(x-y)^T(x-y)}{2\sigma_d^2}\right)aff(x,y)=exp(−2σd2(x−y)T(x−y));
- 灰度相似度:a f f ( x , y ) = e x p ( − ( I ( x ) − I ( y ) ) T ( I ( x ) − I ( y ) ) 2 σ I 2 ) aff(x,y)=exp\left(-\frac{(I(x)-I(y))^T(I(x)-I(y))}{2\sigma_I^2}\right)aff(x,y)=exp(−2σI2(I(x)−I(y))T(I(x)−I(y)));
- 颜色/纹理相似度:类似灰度,替换特征为RGB值或纹理特征。
- 核心:利用图分区算法(如最小割/最大流)将图分为多个子图,使子图内相似度高、子图间相似度低。
5. 背景减除(Background Subtraction)
- 应用场景:静态背景下提取前景(如监控中的行人、道路上的车辆)。
- 步骤:
- 初始化背景模型B ( 0 ) B^{(0)}B(0)(如第一帧图像);
- 帧更新:用移动平均更新背景B ( t ) = w a B ( t − 1 ) + w c F ( t ) B^{(t)}=w_a B^{(t-1)} + w_c F^{(t)}B(t)=waB(t−1)+wcF(t)(w a w_awa为背景权重,w c w_cwc为当前帧权重);
- 前景提取:计算帧差∣ F ( t ) − B ( t ) ∣ |F^{(t)}-B^{(t)}|∣F(t)−B(t)∣,大于阈值的像素为前景;
- 后处理:用形态学操作(膨胀/腐蚀)去除噪声。
- 实例:对儿童在沙发上玩耍的序列帧,用平均背景法提取儿童(前景),阈值越大,前景越纯净但可能丢失细节。
轮廓基方法(Contour-based Methods)
“能量驱动轮廓变形”。就是该类方法利用“动态轮廓”演化逼近物体边界,核心
1. Snakes(主动轮廓模型)
- 定义:又称“可变形轮廓”,借助能量函数最小化驱动轮廓贴合物体边界。
- 能量函数:
E s n a k e = ∫ 0 1 E i n t ( V ( s ) ) + E i m a g e ( V ( s ) ) + E c o n ( V ( s ) ) d s \boldsymbol{E_{snake}=\int_0^1 E_{int}(V(s)) + E_{image}(V(s)) + E_{con}(V(s)) ds}Esnake=∫01Eint(V(s))+Eimage(V(s))+Econ(V(s))ds- E i n t E_{int}Eint:内能量,控制轮廓平滑度(如长度能量∑ ( ∂ x / ∂ s ) 2 + ( ∂ y / ∂ s ) 2 \sum(\partial x/\partial s)^2+(\partial y/\partial s)^2∑(∂x/∂s)2+(∂y/∂s)2、弯曲能量);
- E i m a g e E_{image}Eimage:图像能量,由图像梯度/边缘信息驱动(梯度大处能量小,吸引轮廓);
- E c o n E_{con}Econ:约束能量,手动引导轮廓(如外力吸引至目标区域)。
- 优势:抗噪声、处理边界间隙,适用于医学图像分割(如CT/MRI图像)。
2. Level Set(水平集)
- 原理:将2D轮廓嵌入3D水平集函数ϕ ( x , y , t ) \phi(x,y,t)ϕ(x,y,t),通过水平集方程控制轮廓演化。
- 核心方程:∂ ϕ ∂ t + F ∣ ∇ ϕ ∣ = 0 \boldsymbol{\frac{\partial \phi}{\partial t}+F|\nabla \phi|=0}∂t∂ϕ+F∣∇ϕ∣=0,其中F为速度函数(控制轮廓膨胀/收缩),∣ ∇ ϕ ∣ |\nabla \phi|∣∇ϕ∣为梯度模(保持轮廓平滑)。
- 优势:可处理轮廓拓扑变化(如合并/分裂),适用于动态物体分割。
深度学习基分割(Deep Learning-based Segmentation)
- 类型:
- 语义分割:将每个像素分类为语义类别(如“人”“车”“背景”);
- 实例分割:在语义分割基础上区分同一类别的不同个体。
- 方法对比:文档给出实时性对比,RGMP(7.70 FPS)和Ours(6.25 FPS)实时性优于OSVOS(0.11 FPS)和PReMVOS(0.03 FPS)。
霍夫变换检测直线时,为何要将参数空间从“y=mx+c”改为“ρ=xcosθ+ysinθ”?请结合参数范围与计算复杂度说明。
选择“ρ-θ空间”而非“m-c空间”的核心原因是解决“垂直直线参数发散”和“计算复杂度过高”的问题,具体如下:
- 参数范围问题:
- 原方程y = m x + c y=mx+cy=mx+c中,斜率m的范围是[ − ∞ , + ∞ ] [-∞,+∞][−∞,+∞](垂直直线时m→±∞),导致参数空间无限大,无法构建有限大小的累加器数组;
- 极坐标方程ρ = x cos θ + y sin θ \rho=x\cosθ+y\sinθρ=xcosθ+ysinθ中,ρ为原点到直线的垂直距离(范围[ 0 , m a x ρ ] [0,maxρ][0,maxρ],maxρ为图像对角线长度),θ为垂线与X轴的夹角(范围[ 0 , 2 π ] [0,2π][0,2π]),参数空间有限,可构建固定大小的累加器(如θ取180个档位,ρ取200个档位),计算可控。
- 计算复杂度问题:
- m-c空间的无限性导致累加器无法初始化,需处理“无限大”参数,工程上不可行;
- ρ-θ空间的有限性使累加器大小固定(如180×200=36000个单元格),每个边缘点仅需遍历θ的180个档位计算ρ,投票过程复杂度为O(N×180)(N为边缘点数),工程上易实现。
综上,ρ-θ空间通过“有限参数范围”解决了垂直直线的参数发散难题,同时降低了计算复杂度,是霍夫直线检测的工程首选。
K-means与Mean Shift作为两种常用聚类方法,在“簇数预设”“簇形状适应性”“离群点鲁棒性”三个维度有何核心差异?这些差异如何影响它们的分割场景选择?
两种办法在核心维度的差异及场景选择如下表所示:
| 对比维度 | K-means聚类 | Mean Shift聚类 |
|---|---|---|
| 簇数预设 | 需手动预设K值(如K=3表示分3类) | 无需预设簇数,经过窗口大小h自适应聚类 |
| 簇形状适应性 | 仅适用于球形簇(基于欧氏距离,假设簇内内容呈球形分布) | 适用于任意形状簇(基于密度峰值,可处理非球形、非凸簇) |
| 离群点鲁棒性 | 弱(离群点会显著拉偏簇中心,影响聚类结果) | 强(离群点所在区域密度低,不会形成独立簇,自动被忽略) |
场景选择影响:
- K-means适用于“簇形状规则、离群点少、已知大致簇数”的场景,如:
- 简单图像的前景-背景-中间调分割(K=3);
- 工业产品的表面缺陷分割(缺陷与背景呈球形分布)。
- Mean Shift适用于“簇形状不规则、离群点多、未知簇数”的场景,如:
- 自然图像的纹理分割(如森林中树木、草地、天空的非球形簇);
- 医学图像的器官分割(器官轮廓不规则,含噪声离群点)。
格式塔原则中的“邻近性”和“相似性”在图像分割中如何具体应用?请结合文档中的电梯按钮案例和灰度图像分割案例说明。
格式塔的“邻近性”和“相似性”原则是人类视觉分组的核心,在分割中通过“像素距离”和“特征相似性”实现分组,具体应用如下:
邻近性原则的应用:
- 核心逻辑:距离越近的像素/区域,越倾向于被分为同一组,解决“模糊分组”难题;
- 文档案例(电梯按钮):
原电梯按钮布局中,按钮与标签的距离相近且无明确分隔,导致用户易按错(如按钮“3”与标签“4”误分组);
当在按钮与标签间添加分隔线后,邻近性被明确:按钮与同一分隔线内的标签距离更近,被正确分组,误按率降低。 - 分割应用:在交通标志图像中,标志内部的像素距离近,被分为同一组,与背景(距离远)区分开。
相似性原则的应用:
- 核心逻辑:灰度/颜色/纹理相似的像素,越倾向于被分为同一组,解除“特征一致区域的提取”问题;
- 灰度图像案例:
对含“白墙-灰桌-黑椅”的室内图像,相似性原则通过灰度值分组:- 灰度值∈[200,255]的像素(白墙)聚为一组;
- 灰度值∈[100,150]的像素(灰桌)聚为一组;
- 灰度值∈[0,50]的像素(黑椅)聚为一组;
最终实现墙、桌、椅的分割。
- 彩色图像扩展:在RGB图像中,相似性原则利用RGB值的欧氏距离分组(如红色苹果的RGB值相似,被分为同一组)。
综上,邻近性原则解决“空间位置关联”的分组,相似性原则解决“特征属性关联”的分组,二者结合可实现更符合人类视觉的分割结果。
12.彩色视觉
首先介绍彩色成像手艺的四种构建方式(场时序、多芯片、色彩滤镜阵列如Bayer模式、Foveon X3传感器,其中Foveon X3借助三层CMOS建立每个像素捕捉RGB三通道);其次阐述颜色基础,包括电磁波光谱(可见光400-700nm)、加性颜色混合(RGB混合成白光,适用于显示器)与减性颜色混合(CMY混合成黑色,适用于印刷);接着讲解颜色匹配实验(通过调整三原色权重匹配测试光,推导颜色匹配函数)及标准颜色空间(线性空间如RGB、CIE XYZ,非线性空间如CIE LAB(感知均匀)、HSV(直观调色));最后介绍环境对颜色感知的影响(色适应、同化作用、后像)及颜色的实际应用(基于颜色的图像检索(CBIR)、皮肤检测、目标跟踪),并布置作业要求用C/C++实现皮肤检测算法。
思维导图

彩色成像科技
彩色成像通过不同硬件方案达成RGB三通道信息捕捉,四种核心技术对比如下:
| 技术类型 | 核心原理 | 关键特点 | 应用场景 |
|---|---|---|---|
| 场时序(Field Sequential) | 按时间顺序切换RGB光源/滤镜,单传感器分时捕捉 | 结构简单,易出现色彩串扰 | 早期彩色相机 |
| 多芯片(Multi-chip) | 镜头→棱镜分光(按波长)→RGB三个CCD分别接收 | 色彩还原准,无插值,体积大、成本高 | 专业摄影设备(如单反) |
| 色彩滤镜阵列(CFA) | 单芯片表面覆盖RGB滤镜马赛克(如Bayer模式) | 常用Bayer模式(2G:1R:1B),仅25%R/B、50%G | 消费级相机、手机摄像头 |
| Foveon X3传感器 | 三层CMOS传感器,不同波长光穿透深度不同(红深、绿中、蓝浅) | 每个像素直接捕捉RGB三通道,无插值损失 | 专业级相机(如Sigma相机) |
光谱与颜色混合
光谱基础
- 电磁波光谱中可见光范围400-700nm,测量工具为分光辐射度计(分离波长并测量各波长能量);
- 光源光谱示例:红宝石激光(单波长)、钨丝灯(连续光谱)、日光(宽光谱)。
颜色混合类型
| 混合类型 | 核心原理 | 原色组合 | 混合结果 | 应用场景 |
|---|---|---|---|---|
| 加性混合 | 不同波长光叠加,能量相加 | R(红)、G(绿)、B(蓝) | RGB=白光,R+G=黄,G+B=青,R+B=品红 | 显示器、投影仪、LED屏幕 |
| 减性混合 | 颜料吸收特定波长,反射剩余波长,能量相减 | C(青)、M(品红)、Y(黄) | CMY=黑色(理论),实际需加K(黑)弥补色彩偏差 | 印刷、胶片、颜料调色 |
颜色匹配
颜色匹配实验
- 目标:确定三原色( primaries )的权重,使与测试光的视觉效果一致;
- 实验设计:双分区屏幕,一侧为测试光,另一侧为可调强度的三原色,观察者调整权重至视觉匹配;
- 关键现象:部分测试光需“负权重”(将某原色加入测试光侧才能匹配)。
颜色匹配计算
- 步骤1:选择三原色(如645.2nm红、525.3nm绿、444.4nm蓝);
- 步骤2:测量颜色匹配函数c 1 ( λ i ) , c 2 ( λ i ) , c 3 ( λ i ) c_1(\lambda_i),c_2(\lambda_i),c_3(\lambda_i)c1(λi),c2(λi),c3(λi)(单位波长测试光的三原色权重);
- 步骤3:对任意光谱信号t ( λ ) t(\lambda)t(λ),通过矩阵运算求权重:[ e 1 e 2 e 3 ] = [ c 1 ( λ 1 ) ⋯ c 1 ( λ N ) c 2 ( λ 1 ) ⋯ c 2 ( λ N ) c 3 ( λ 1 ) ⋯ c 3 ( λ N ) ] [ t ( λ 1 ) ⋮ t ( λ N ) ] \begin{bmatrix}e_1\\e_2\\e_3\end{bmatrix}=\begin{bmatrix}c_1(\lambda_1)&\cdots&c_1(\lambda_N)\\c_2(\lambda_1)&\cdots&c_2(\lambda_N)\\c_3(\lambda_1)&\cdots&c_3(\lambda_N)\end{bmatrix}\begin{bmatrix}t(\lambda_1)\\\vdots\\t(\lambda_N)\end{bmatrix}e1e2e3=c1(λ1)c2(λ1)c3(λ1)⋯⋯⋯c1(λN)c2(λN)c3(λN)t(λ1)⋮t(λN),即e = C t e=Cte=Ct。
标准颜色空间
颜色空间用于数值化表示颜色,分为线性与非线性两类,核心参数对比如下:
| 颜色空间 | 类型 | 核心特点 | 关键参数/标准 | 应用场景 |
|---|---|---|---|---|
| RGB | 线性 | 设备友好,基于单波长原色,感知非均匀 | R(0-255)、G(0-255)、B(0-255) | 显示器、相机、数字图像存储 |
| CIE XYZ | 线性 | 1931年CIE制定,基于人眼视觉,国际标准 | X、Y、Z(三刺激值),投影(x=X/(X+Y+Z),y=Y/(X+Y+Z)) | 颜色标准化、跨设备转换 |
| CIE LAB | 非线性 | 1976年制定,感知均匀(相同距离对应相同视觉差异) | L(亮度)、a(红绿)、b(黄蓝) | 颜色差异评估、印刷调色 |
| HSV | 非线性 | 直观符合人类调色习惯,H编码为角度 | H(0-360°)、S(0-1)、V(0-1) | 图像编辑(如PS调色) |
| YIQ | 非线性 | NTSC电视标准,分离亮度(Y)与色度(I/Q) | Y(亮度)、I(橙蓝)、Q(绿紫) | 电视广播、视频压缩 |
- 关键补充:CIE XYZ存在感知非均匀问题(相同坐标距离≠相同视觉差异),通过McAdam椭圆验证,因此需CIE LAB等均匀空间优化。
环境对颜色感知的影响
- 色适应(Chromatic Adaptation):长期暴露于某光源(如暖光、冷光),视觉系统会适应该光源的色度与亮度,导致相同物体在不同光源下感知颜色不同;
- 同化作用与对比效应:周围颜色影响当前感知(如灰色块在红色背景下偏绿,在绿色背景下偏红);
- 后像(Afterimage):强光刺激后,感光细胞产生负响应,出现与刺激色互补的残留图像(如长时间看红色后,看白色背景出现绿色后像)。
颜色的实际应用
基于颜色的图像检索(CBIR)
- 原理:提取图像颜色直方图(无空间信息,抗平移/旋转/尺度),计算查询图与数据库图的直方图交集,按相似度排序;
- 示例:Google图片搜索、Spylight时尚检索。
颜色基皮肤检测
- 核心:利用皮肤在特定颜色空间(如YCbCr、RGB)的阈值范围,区分皮肤与非皮肤区域;
- 应用:人脸检测、视频监控中的目标分割。
颜色基目标跟踪
- 原理:为每个目标建立颜色模型(如聚类模型),凭借颜色匹配跟踪目标(如跟踪不同人物);
- 参考算法:D.Ramanan等人的“Tracking People by Learning their Appearance”。
作业任务
- 要求:用C/C++编写皮肤检测算法,提交代码+实验报告;
- 额外 credit:基于皮肤颜色在视频中实现人脸检测。
彩色成像手艺中,色彩滤镜阵列(如Bayer模式)与Foveon X3传感器在RGB信息捕捉方式上有何核心差异?这些差异导致二者在图像质量与应用场景上有何不同?
核心差异体现在“RGB信息的像素级捕捉方式”:
色彩滤镜阵列(Bayer模式):
- 捕捉方式:单芯片表面覆盖RGB滤镜马赛克,常用2G:1R:1B比例(人眼对绿光更敏感),每个像素仅捕捉1个通道(如R或G或B),缺失通道需通过插值(如双线性插值)补充;
- 图像质量:存在插值误差,易产生伪色或细节损失;
- 应用场景:消费级设备(手机、普通相机),成本低、体积小。
Foveon X3传感器:
- 捕捉方式:三层CMOS传感器,利用“不同波长光穿透硅的深度不同”(蓝光穿透浅、绿光中、红光深),每个像素直接捕捉RGB三通道信息,无需插值;
- 图像质量:无插值损失,色彩还原更准、细节更丰富;
- 应用场景:专业级设备(如Sigma单反相机),对色彩精度要求高的场景(专业摄影、色彩检测)。
加性颜色混合与减性颜色混合的核心原理、原色组合及能量变化规律完全不同,试对比二者差异,并说明各自的典型应用场景为何不同?
二者差异源于“能量作用方式”,具体对比如下:
| 对比维度 | 加性颜色混合 | 减性颜色混合 |
|---|---|---|
| 核心原理 | 不同波长的光直接叠加,能量相加 | 颜料/滤光片吸收特定波长,反射剩余波长,能量相减 |
| 原色组合 | R(红,650nm)、G(绿,550nm)、B(蓝,~450nm) | C(青)、M(品红)、Y(黄)(分别吸收R、G、B) |
| 混合规律 | 原色叠加:RGB=白光,R+G=黄,G+B=青,R+B=品红 | 原色叠加:CMY=黑色(理论),实际因颜料纯度需加K(黑) |
| 能量变化 | 混合后总能量≥单一原色能量(如R+G能量>R) | 混合后总能量≤单一原色能量(如C+M反射能量<C) |
| 应用场景差异 | 适用于“自发光设备”(显示器、投影仪、LED),因设备可直接发射RGB光叠加; | 适用于“非自发光介质”(印刷、胶片、颜料),因介质需通过反射环境光呈现颜色,需用颜料吸收特定波长。 |
CIE XYZ颜色空间作为国际标准,为何还需要CIE LAB颜色空间?二者在“感知均匀性”上有何核心差异?CIE LAB的哪些设计使其能解决XYZ的不足?
需CIE LAB的原因:CIE XYZ虽为国际标准,但存在感知非均匀性——坐标空间中“相同的欧氏距离”对应“不同的视觉颜色差异”,无法准确量化人眼感知的颜色相似度,而实际场景(如印刷调色、颜色质量检测)需“坐标距离与视觉差异成正比”,因此需CIE LAB优化。
感知均匀性差异:
- CIE XYZ:非均匀,通过McAdam椭圆验证——在XYZ的(x,y)投影图中,人眼能分辨的最小颜色差异(Just Noticeable Difference, JND)表现为大小、形状不同的椭圆,椭圆越大,该区域坐标距离与视觉差异的偏差越大(如红色区域椭圆远大于绿色区域);
- CIE LAB:感知均匀,1976年基于XYZ转换而来,通过非线性变换调整坐标比例,使LAB空间中“相同的欧氏距离”对应“人眼感知的相同颜色差异”,McAdam椭圆近似为大小一致的圆。
CIE LAB的设计优化:
- 坐标定义:L(亮度,0=黑~100=白)、a(红绿轴,a+为品红、a-为绿)、b(黄蓝轴,b+为黄、b-为蓝);
- 转换逻辑:基于XYZ与标准白光(如D65)的关系,通过非线性压缩(如对XYZ值取立方根)调整感知比例,确保不同颜色区域的视觉差异与坐标距离一致,满足颜色差异评估、跨设备颜色匹配等需求。
13.计算机视觉中的特征检测
核心聚焦点特征检测:首先定义特征为“不同图像间具有不变性的表示”,说明其在全景拼接等场景中的关键作用(如通过“检测特征点→匹配→图像配准”搭建拼接);随后详细阐述Harris角点检测(基于H矩阵的特征值分类角点/边缘/平坦区域,响应函数R = d e t ( H ) − α t r a c e ( H ) 2 R=det(H)-αtrace(H)^2R=det(H)−αtrace(H)2,α=0.06,具有旋转/光照不变性但无尺度不变性);重点讲解SIFT(尺度不变特征变换)(Lowe 2004年提出,通过构建高斯金字塔与DoG尺度空间、极值检测、亚像素关键点定位、方向分配及128维描述子,实现旋转/尺度/光照不变性);最后介绍特征检测的典型应用——全景拼接(完整流程:提取SIFT特征→k-d树匹配→RANSAC求单应→捆绑调整→光度融合),并提及Harris的ANMS改进(解决特征点分布不均问题)。
思维导图

特征检测基础
特征的定义与意义
- 特征:图像中“不同图像间具有不变性的表示”,需满足“外观相似性”,是实现图像配准、拼接、识别的核心。
- 为什么得特征检测:直接处理像素级数据计算量大,特征可压缩信息(如全景拼接需通过特征点匹配构建图像对齐)。
- 特征类型:文档聚焦点特征(核心),此外还有边缘、线、曲线等,点特征因“局部性(抗遮挡)、数量多、易区分、效率高”成为主流。
点特征的评价标准
优质点特征需满足:窗口沿任意方向平移时,灰度变化显著(如图14所示,角点满足此条件,平坦区域/边缘不满足)。
Harris角点检测(核心点特征算法1)
1. 数学原理
- 灰度变化度量:设窗口W WW平移( u , v ) (u,v)(u,v),加权平方差(SSD)为:
E ( u , v ) = ∑ ( x , y ) ∈ W ω ( x , y ) [ I ( x + u , y + v ) − I ( x , y ) ] 2 E(u,v)=\sum_{(x,y)\in W}\omega(x,y)[I(x+u,y+v)-I(x,y)]^2E(u,v)=(x,y)∈W∑ω(x,y)[I(x+u,y+v)−I(x,y)]2
其中ω ( x , y ) \omega(x,y)ω(x,y)为高斯窗口(加权邻域),I II为灰度值。 - H矩阵(相关矩阵):对I ( x + u , y + v ) I(x+u,y+v)I(x+u,y+v)泰勒展开并化简,得E ( u , v ) ≈ [ u v ] H [ u v ] E(u,v)\approx\begin{bmatrix}u&v\end{bmatrix}H\begin{bmatrix}u\\v\end{bmatrix}E(u,v)≈[uv]H[uv],其中:
H = ∑ ( x , y ) ∈ W ω ( x , y ) [ I x 2 I x I y I y I x I y 2 ] H=\sum_{(x,y)\in W}\omega(x,y)\begin{bmatrix}I_x^2&I_xI_y\\I_yI_x&I_y^2\end{bmatrix}H=(x,y)∈W∑ω(x,y)[Ix2IyIxIxIyIy2]
I x , I y I_x,I_yIx,Iy为图像x/y方向梯度(Sobel算子计算)。 - 特征值分类逻辑:通过H的两个特征值λ m a x , λ m i n \lambda_{max},\lambda_{min}λmax,λmin判断像素类型:
像素类型 特征值条件 灰度变化特性 角点 λ m a x , λ m i n \lambda_{max},\lambda_{min}λmax,λmin均大且接近 任意方向平移均有显著变化 边缘 一特征值大,一特征值小 沿边缘方向平移无变化 平坦区域 两者均小 任意方向平移均无显著变化
2. 检测步骤(6步)
- 高斯卷积平滑图像,计算x/y方向梯度I x , I y I_x,I_yIx,Iy;
- 对每个像素计算H矩阵;
- 计算梯度乘积的加权和:S x 2 = ω ∗ I x 2 S_{x^2}=\omega*I_x^2Sx2=ω∗Ix2、S y 2 = ω ∗ I y 2 S_{y^2}=\omega*I_y^2Sy2=ω∗Iy2、S x y = ω ∗ I x I y S_{xy}=\omega*I_xI_ySxy=ω∗IxIy;
- 构建每个像素的H矩阵:H ( x , y ) = [ S x 2 S x y S x y S y 2 ] H(x,y)=\begin{bmatrix}S_{x^2}&S_{xy}\\S_{xy}&S_{y^2}\end{bmatrix}H(x,y)=[Sx2SxySxySy2];
- 计算角点响应值:R = d e t ( H ) − α t r a c e ( H ) 2 R=det(H)-αtrace(H)^2R=det(H)−αtrace(H)2(d e t ( H ) = λ 1 λ 2 det(H)=\lambda_1\lambda_2det(H)=λ1λ2,t r a c e ( H ) = λ 1 + λ 2 trace(H)=\lambda_1+\lambda_2trace(H)=λ1+λ2,α=0.06);
- 筛选角点:R>阈值且为局部极大值。
3. 特性与改进
- 核心特性:
- 不变性:旋转不变(H矩阵特征值旋转后不变)、光照不变(梯度对线性光照变化不敏感);
- 变异性:尺度不变性缺失(不同尺度下角点可能变为边缘/平坦区域)。
- 改进方案:
- 问题:Harris检测的角点在高对比度区域分布密集,低对比度区域稀疏;
- 解决:ANMS(自适应非极大值抑制)(Brown et al. 2005),筛选“局部极大值且响应值比半径r内邻居高10%”的点,完成均匀分布(如图40,ANMS后特征点空间分布更均匀)。
SIFT(尺度不变特征变换,核心点特征算法2)
1. 基础信息
- 提出:David Lowe(1999 ICCV,2004 IJCV精炼),引用超23000次;
- 核心优势:相比Harris,新增尺度不变性,且具有旋转/光照不变性,抗噪声、仿射变换、3D视角变化;
- 应用场景:图像检索、目标识别、视频跟踪、手势识别。
2. 完整流程(6步)
| 步骤 | 核心操作 | 关键参数/数字 |
|---|---|---|
| 尺度空间构建 | 1.高斯金字塔:每组S=5层,σ = 1.52 \sigma=1.52σ=1.52(修正相机初始模糊σ = 0.5 \sigma=0.5σ=0.5); 2.DoG金字塔:相邻高斯层相减(近似LoG,效率更高) | 组数O = [ l o g 2 m i n ( M , N ) − 3 ] O=[log_2min(M,N)-3]O=[log2min(M,N)−3],DoG层数=S-1=4(S=5) |
| 局部极值检测 | 1.在3D尺度空间(x,y,σ)中,每个点与“同层8邻域+上下层9点”共26点比较,找极大/极小值 | 确保尺度连续性,k=2^(1/n)(n=2,每组内尺度间隔) |
| 关键点定位 | 1.泰勒展开优化亚像素位置(剔除偏移>0.5的点); 2.剔除低对比度点; 3.剔除边缘点(H矩阵T r 2 ( H ) d e t ( H ) ≤ 12.1 \frac{Tr^2(H)}{det(H)}≤12.1det(H)Tr2(H)≤12.1) | 边缘剔除阈值γ=10,( γ + 1 ) 2 γ = 12.1 \frac{(γ+1)^2}{γ}=12.1γ(γ+1)2=12.1 |
| 方向分配 | 1.以关键点为中心,1.5σ为半径,计算梯度幅值/方向; 2.36°/柱构建梯度直方图,取峰值为主方向 | 高斯加权(1.5σ),直方图10柱(360°/36°) |
| 描述子生成 | 1.取16×16区域,划分为4×4子块; 2.每子块8方向直方图,生成128维向量 | 128维描述子(4×4×8),具有独特性 |
| 特征匹配 | 1.k-d树搜索最近邻/次近邻; 2.欧式距离度量相似性 | 匹配阈值:最近邻距离/次近邻距离<0.8(减少误匹配) |
3. 核心特性验证
| 变换类型 | 特性表现 |
|---|---|
| 旋转 | 方向分配步骤确保旋转后描述子一致 |
| 尺度 | 高斯金字塔+DoG尺度空间,找到特征点的“特征尺度”,确保尺度不变 |
| 光照 | 梯度计算对线性光照变化(如I=aI+b)不敏感,描述子鲁棒 |
| 视角/仿射变换 | 局部区域描述子(16×16)对局部形变鲁棒 |
典型应用:全景拼接
1. 完整流程(5步)
- 特征提取:提取每幅图像的SIFT特征点;
- 特征匹配:k-d树寻找每个特征点的k个最近邻,筛选匹配对;
- 图像配准:
- 选择匹配点最多的m幅图像;
- RANSAC算法计算两幅图像间的单应矩阵H(剔除 outliers);
- 贝叶斯后验概率验证匹配结果;
- 连接集确定:寻找图像匹配的连接集,确定全景图数量;
- 全景生成:
- 捆绑调整(Bundle Adjustment)计算相机参数(焦距f、旋转矩阵R);
- 增益补偿(解决亮度差异)+多频段光度融合(消除拼接缝)。
Harris角点检测与SIFT在“不变性、适用场景、计算复杂度”上的核心差异是什么?请结合文档内容对比说明。
两者核心差异如下表,源于设计目标的不同(Harris聚焦简单角点检测,SIFT聚焦尺度不变的通用特征):
| 对比维度 | Harris角点检测 | SIFT(尺度不变特征变换) |
|---|---|---|
| 不变性 | 旋转、光照不变;无尺度不变性 | 旋转、尺度、光照不变;抗仿射/视角变化 |
| 适用场景 | 低精度、实时性要求高的场景(如简单跟踪) | 高精度、跨尺度/视角的场景(全景拼接、图像检索) |
| 计算复杂度 | 低(仅需梯度计算+H矩阵,O(MN)) | 高(高斯金字塔+128维描述子,O(MNlogMN)) |
| 特征描述 | 无显式描述子(仅角点位置) | 128维描述子(高独特性) |
| 关键参数 | α=0.06(响应函数) | 128维描述子、σ=1.52(高斯初始值) |
SIFT算法通过哪两个核心步骤搭建“尺度不变性”?请结合“高斯金字塔”和“DoG尺度空间”的设计逻辑说明。
SIFT依据“构建多尺度空间”和“特征尺度选择”两个核心步骤实现尺度不变性,具体逻辑如下:
- 构建多尺度空间(高斯金字塔+DoG金字塔):
- 高斯金字塔:将图像按组(Octave)和层(Level)缩放,每组图像尺寸减半,层间高斯模糊σ按2 1 / n 2^{1/n}21/n递增(n=2),覆盖不同尺度(如第0组σ=1.52,第1组σ=3.04);
- DoG金字塔:相邻高斯层相减得到DoG图像,近似LoG(拉普拉斯高斯),LoG空间具有“尺度归一化”特性(Lindeberg 1994),确保不同尺度下的特征点可比较。
- 特征尺度选择:
- 在3D DoG尺度空间(x,y,σ)中,通过“同层8邻域+上下层9点”的26点比较,找到局部极值点,该极值点对应的σ即为“特征尺度”;
- 特征尺度确保:同一物理特征(如角点)在不同图像尺度下,均能被检测到且对应同一特征尺度,完成尺度不变性。
例如,文档中σ=2.5和σ=9.8的DoG图像,分别检测到小尺度和大尺度的特征点,且对应同一物理目标,验证了尺度不变性。
Harris角点检测中,H矩阵的特征值(λ m a x λ_{max}λmax,λ m i n λ_{min}λmin)如何区分“角点、边缘、平坦区域”?响应函数R=det(H)-αtrace(H)²的设计目的是什么?
H矩阵特征值的分类逻辑:
H矩阵反映窗口内灰度梯度的分布,其特征值λ m a x ≥ λ m i n λ_{max}≥λ_{min}λmax≥λmin,对应灰度变化的“主方向”和“次方向”,分类规则如下:- 角点:λ m a x λ_{max}λmax和λ m i n λ_{min}λmin均较大且数值接近(如λ m a x ≈ λ m i n λ_{max}≈λ_{min}λmax≈λmin>阈值),说明窗口沿任意方向平移均有显著灰度变化,符合角点的定义;
- 边缘:λ m a x λ_{max}λmax远大于λ m i n λ_{min}λmin(如λ m a x λ_{max}λmax>阈值,λ m i n λ_{min}λmin<阈值),说明窗口仅沿某一方向(边缘垂直方向)有灰度变化,沿边缘方向无变化,符合边缘的定义;
- 平坦区域:λ m a x λ_{max}λmax和λ m i n λ_{min}λmin均较小(<阈值),说明窗口沿任意方向平移均无显著灰度变化,符合平坦区域的定义。
响应函数R的设计目的:
直接用λ_min判断角点(Shi-Tomasi 1994)虽简单,但对噪声敏感;Harris提出R=det(H)-αtrace(H)²(α=0.06),设计目的如下:- det(H)=λ m a x λ m i n λ_{max} λ_{min}λmaxλmin(反映特征值乘积,角点时大,边缘/平坦时小);
- trace(H)=λ m a x + λ m i n λ_{max}+λ_{min}λmax+λmin(反映特征值和,避免单一特征值大导致R误判);
- α为权重系数(0.04~0.06),平衡det(H)和trace(H)²,确保:
- 角点:R>阈值(det(H)大,trace(H)²相对小);
- 边缘:R<0(λ m i n λ_{min}λmin小,det(H)≈0,trace(H)²大);
- 平坦区域:|R|小(det(H)和trace(H)²均小);
最终实现更鲁棒的角点筛选,减少噪声和边缘的误判。
14.光流与运动目标检测
核心内容包括:光流定义为图像中亮度模式的表观运动,需满足亮度一致性、空间连贯性、小运动三大假设,因“孔径问题”(单像素仅1个方程无法解2个未知量u,v)需额外约束;光流计算分两类——Lucas-Kanade局部法(利用空间连贯性,假设窗口内像素运动一致,通过最小二乘求解稀疏光流,适用于纹理丰富区域)和Horn-Schunck全局法(引入全局平滑项,最小化能量函数得到稠密光流,对噪声敏感);针对大运动场景,采用金字塔粗到精策略(从低分辨率估算运动,逐步映射到高分辨率);运动目标检测介绍三种方法——帧差法(相邻帧差分阈值化,简单但易漏检)、背景减法背景更新)、就是(当前帧减背景模型,背景建模用均值/中值,核心光流法(通过光流向量差异提取运动目标,鲁棒但复杂)。
思维导图

光流基础(Optical Flow Basics)
光流与运动场的定义
- 光流:图像中亮度模式的表观运动,描述像素在连续帧间的位移向量(u,v);理想情况下与“运动场”(3D场景运动在图像的投影)一致,但光照变化会导致光流与运动场偏离。
- 运动场:3D场景中物体/相机运动在图像平面的投影,是真实运动的反映。
光流计算的三大核心假设
- 亮度一致性:同一空间点在不同帧的亮度不变,即I ( x , y , t ) = I ( x + u , y + v , t + 1 ) I(x,y,t)=I(x+u,y+v,t+1)I(x,y,t)=I(x+u,y+v,t+1)(核心方程推导基础)。
- 空间连贯性:相邻像素属于同一表面,运动向量相似(解决“孔径问题”的关键约束)。
- 小运动:像素位移小,满足泰勒展开的线性近似条件(I ( x + u , y + v , t + 1 ) ≈ I + I x u + I y v + I t I(x+u,y+v,t+1)\approx I + I_x u + I_y v + I_tI(x+u,y+v,t+1)≈I+Ixu+Iyv+It)。
孔径问题(Aperture Problem)(文档18-21页)
- 成因:单像素仅能构建1个光流约束方程I x u + I y v = − I t I_x u + I_y v = -I_tIxu+Iyv=−It,但存在2个未知量(u,v),仅能求解“法向流”(垂直于边缘的运动分量),无法求解“切向流”(平行于边缘的运动分量)。
- 解决策略:扩大孔径(利用更多像素的空间信息)或引入空间连贯性约束(如Lucas-Kanade的窗口假设)。
局部光流方法:Lucas-Kanade(稀疏光流)
核心思想
- 利用空间连贯性假设:假设K×K窗口(典型大小15x15~31x31)内所有像素的运动向量(u,v)相同,将单像素的欠定问题转化为超定问题(窗口内K²个方程,2个未知量)。
数学求解过程
- 步骤1:计算图像梯度I x I_xIx(x方向)、I y I_yIy(y方向)、I t I_tIt(时间方向)(常用Sobel算子或中心差分)。
- 步骤2:构建超定方程组A d = b A\mathbf{d} = \mathbf{b}Ad=b:
A = [ I x ( p 1 ) I y ( p 1 ) I x ( p 2 ) I y ( p 2 ) ⋮ ⋮ I x ( p K 2 ) I y ( p K 2 ) ] , d = [ u v ] , b = − [ I t ( p 1 ) I t ( p 2 ) ⋮ I t ( p K 2 ) ] A=\begin{bmatrix}I_x(p_1)&I_y(p_1)\\I_x(p_2)&I_y(p_2)\\\vdots&\vdots\\I_x(p_{K²})&I_y(p_{K²})\end{bmatrix},\quad \mathbf{d}=\begin{bmatrix}u\\v\end{bmatrix},\quad \mathbf{b}=-\begin{bmatrix}I_t(p_1)\\I_t(p_2)\\\vdots\\I_t(p_{K²})\end{bmatrix}A=Ix(p1)Ix(p2)⋮Ix(pK2)Iy(p1)Iy(p2)⋮Iy(pK2),d=[uv],b=−It(p1)It(p2)⋮It(pK2) - 步骤3:最小二乘求解:通过伪逆得到最优解d = ( A T A ) − 1 A T b \mathbf{d}=(A^T A)^{-1}A^T \mathbf{b}d=(ATA)−1ATb,展开为:
[ ∑ I x 2 ∑ I x I y ∑ I x I y ∑ I y 2 ] [ u v ] = − [ ∑ I x I t ∑ I y I t ] \begin{bmatrix}\sum I_x^2&\sum I_x I_y\\\sum I_x I_y&\sum I_y^2\end{bmatrix}\begin{bmatrix}u\\v\end{bmatrix}=-\begin{bmatrix}\sum I_x I_t\\\sum I_y I_t\end{bmatrix}[∑Ix2∑IxIy∑IxIy∑Iy2][uv]=−[∑IxIt∑IyIt] - 步骤4:窗口加权:为降低边缘像素影响,常用高斯权重(窗口中心权重高,边缘低)。
求解条件与适用场景
- 求解条件:A T A A^T AATA需可逆且良态,即其两个特征值λ 1 , λ 2 \lambda_1,\lambda_2λ1,λ2均较大(避免低纹理区域),且λ 1 / λ 2 \lambda_1/\lambda_2λ1/λ2适中(避免边缘区域,类似Harris角点检测条件)。
- 适用场景:纹理丰富区域的稀疏光流(仅跟踪特征点,如角点),实时性高,常用于目标跟踪。
全局光流方法:Horn-Schunck(稠密光流)
核心思想
- 引入全局平滑约束:假设光流场整体平滑(相邻像素运动向量差异小),通过最小化“光流约束误差+平滑误差”的全局能量函数,得到稠密光流(每个像素均有u,v)。
能量函数与迭代求解
- 能量函数:e = ∑ ∑ ( c i j + λ s i j ) e=\sum\sum\left(c_{ij}+\lambda s_{ij}\right)e=∑∑(cij+λsij),其中:
- c i j = ( I x u i j + I y v i j + I t ) 2 c_{ij}=(I_x u_{ij}+I_y v_{ij}+I_t)^{2}cij=(Ixuij+Iyvij+It)2(光流约束误差,满足亮度一致性);
- s i j = 1 4 [ ( u i + 1 , j − u i j ) 2 + ( u i , j + 1 − u i j ) 2 + ( v i + 1 , j − v i j ) 2 + ( v i , j + 1 − v i j ) 2 ] s_{ij}=\frac{1}{4}\left[(u_{i+1,j}-u_{ij})^2+(u_{i,j+1}-u_{ij})^2+(v_{i+1,j}-v_{ij})^2+(v_{i,j+1}-v_{ij})^2\right]sij=41[(ui+1,j−uij)2+(ui,j+1−uij)2+(vi+1,j−vij)2+(vi,j+1−vij)2](平滑误差);
- λ \lambdaλ:平滑项权重(平衡约束与平滑,λ越大光流越平滑)。
- 迭代公式:对能量函数求导并令导数为0,得到更新规则:
u i j n + 1 = u ‾ i j n − I x ( I x u ‾ i j n + I y v ‾ i j n + I t ) λ + I x 2 + I y 2 , v i j n + 1 = v ‾ i j n − I y ( I x u ‾ i j n + I y v ‾ i j n + I t ) λ + I x 2 + I y 2 u_{ij}^{n+1}=\overline{u}_{ij}^n - \frac{I_x(I_x \overline{u}_{ij}^n + I_y \overline{v}_{ij}^n + I_t)}{\lambda + I_x^2 + I_y^2},\quad v_{ij}^{n+1}=\overline{v}_{ij}^n - \frac{I_y(I_x \overline{u}_{ij}^n + I_y \overline{v}_{ij}^n + I_t)}{\lambda + I_x^2 + I_y^2}uijn+1=uijn−λ+Ix2+Iy2Ix(Ixuijn+Iyvijn+It),vijn+1=vijn−λ+Ix2+Iy2Iy(Ixuijn+Iyvijn+It)
(u ‾ i j n , v ‾ i j n \overline{u}_{ij}^n,\overline{v}_{ij}^nuijn,vijn为第n次迭代时像素(i,j)的4邻域均值)。
- 能量函数:e = ∑ ∑ ( c i j + λ s i j ) e=\sum\sum\left(c_{ij}+\lambda s_{ij}\right)e=∑∑(cij+λsij),其中:
优缺点对比
优点 缺点 输出稠密光流(每个像素均有结果) 对噪声敏感(全局平滑放大噪声) 无需手动选择特征点 迭代求解,实时性低于Lucas-Kanade 适用于弱纹理区域 边缘区域光流精度较低
大运动处理:金字塔粗到精策略
问题背景
- 光流的“小运动假设”不成立时(像素位移大),泰勒展开误差大,直接求解会出现混叠(Aliasing)(近邻匹配错误)。
解除策略:高斯金字塔(Coarse-to-Fine)
- 步骤1:构建图像金字塔:对连续帧I t I_tIt和I t + 1 I_{t+1}It+1分别构建高斯金字塔(从高分辨率→低分辨率,每层尺寸减半,高斯模糊)。
- 步骤2:粗分辨率层求解:在最顶层(低分辨率)估算初始光流( u c o a r s e , v c o a r s e ) (u_{coarse},v_{coarse})(ucoarse,vcoarse)(位移被缩小,满足小运动假设)。
- 步骤3:上采样与精修:将粗层光流上采样(缩放至当前层尺寸),作为当前层的初始值,迭代优化;逐层向下,直至最高分辨率层,得到最终光流。
- 效果:无金字塔时Lucas-Kanade在大运动区域失效,加金字塔后可准确跟踪。
运动目标检测(Moving Object Detection)
| 方法名称 | 核心原理 | 关键公式/步骤 | 优缺点 | 适用场景 |
|---|---|---|---|---|
| 帧差法 | 相邻帧亮度差分→阈值化→连通区域提取 | 两帧差:D n ( x , y ) = a b s ( f n − f n − 1 ) D_n(x,y)=abs(f_n - f_{n-1})Dn(x,y)=abs(fn−fn−1); 三帧差:D n ′ = D n + 1 ∩ D n D'_n=D_{n+1} \cap D_nDn′=Dn+1∩Dn(优化漏检) | 优点:简单、实时; 缺点:易漏检(慢运动)、边缘不完整 | 快速运动目标、实时性要求高的场景(如监控) |
| 背景减法 | 当前帧 - 背景模型→阈值化→前景提取 | 背景模型: 1.前n帧均值:B ( x , y ) = 1 n ∑ i = 0 n − 1 I t − i B(x,y)=\frac{1}{n}\sum_{i=0}^{n-1}I_{t-i}B(x,y)=n1∑i=0n−1It−i; 2.前n帧中值:B ( x , y ) = m e d i a n { I t − i } B(x,y)=median\{I_{t-i}\}B(x,y)=median{It−i} | 优点:目标完整; 缺点:背景更新复杂(动态背景如树叶) | 静态背景下的运动目标(如室内监控) |
| 光流法 | 光流向量差异(运动目标与背景光流不同)提取目标 | 计算光流场→聚类光流向量→区分目标与背景光流 | 优点:鲁棒(不受光照/背景动态影响); 缺点:计算复杂、实时性低 | 动态背景、复杂场景(如交通监控) |
作业要求
- 任务:实现Lucas-Kanade光流算法;
- 输入:图像对或图像序列;
- 输出:光流场( u , v ) (u,v)(u,v)(每个特征点的位移向量);
- 参考资源:提供OpenCV/Python等代码链接(如http://opencv-python-tutroals.readthedocs.org)。
Lucas-Kanade(局部光流)与Horn-Schunck(全局光流)在“约束条件、求解方式、光流类型、适用场景”上的核心差异是什么?请结合文档内容对比说明。
两者的核心差异源于“约束条件”的不同,具体对比如下:
| 对比维度 | Lucas-Kanade(局部光流) | Horn-Schunck(全局光流) |
|---|---|---|
| 约束条件 | 局部空间连贯性:假设K×K窗口(15x15~31x31)内像素运动一致,将欠定障碍转化为超定问题 | 全局平滑约束:假设光流场整体平滑(相邻像素运动差异小),最小化全局能量函数 |
| 求解方式 | 最小二乘直接求解(d = ( A T A ) − 1 A T b \mathbf{d}=(A^T A)^{-1}A^T \mathbf{b}d=(ATA)−1ATb),非迭代 | 迭代求解(能量函数求导→更新规则,需多轮迭代收敛) |
| 光流类型 | 稀疏光流:仅求解特征点(如角点)的光流,非特征点无结果 | 稠密光流:每个像素均有光流结果,覆盖全图像 |
| 适用场景 | 实时性要求高、纹理丰富的场景(如目标跟踪、视频稳像) | 需稠密光流、弱纹理区域的场景(如3D结构估计) |
| 对噪声敏感性 | 抗噪声(窗口加权平滑局部噪声) | 对噪声敏感(全局平滑放大噪声) |
光流计算的“三大假设”分别有什么作用?“孔径问题”的本质是什么?如何通过算法设计解决孔径问题?
三大假设的作用:
- 亮度一致性假设:是光流约束方程的推导基础,将“像素运动”与“亮度变化”关联,得到核心方程I x u + I y v = − I t I_x u + I_y v = -I_tIxu+Iyv=−It;
- 空间连贯性假设:解决“孔径问题”的核心,凭借假设相邻像素运动相似,为单像素的欠定方程补充约束(Lucas-Kanade的窗口约束、Horn-Schunck的全局平滑均基于此);
- 小运动假设:确保泰勒展开的线性近似成立(I ( x + u , y + v , t + 1 ) ≈ I + I x u + I y v + I t I(x+u,y+v,t+1)\approx I + I_x u + I_y v + I_tI(x+u,y+v,t+1)≈I+Ixu+Iyv+It),是光流线性求解的前提。
孔径障碍的本质:
单像素仅能提供1个光流约束方程(I x u + I y v = − I t I_x u + I_y v = -I_tIxu+Iyv=−It),但存在2个未知量(u:x方向位移,v:y方向位移),属于欠定问题,仅能求解“法向流”(垂直于边缘的运动分量),无法求解“切向流”(平行于边缘的运动分量)。解决策略:
- 扩大孔径:增加窗口内像素数量,利用空间连贯性假设(如Lucas-Kanade用15x15窗口,得到225个方程,超定求解);
- 全局约束:引入全局平滑项(如Horn-Schunck的能量函数),从全局角度约束光流场,补充局部约束不足。
运动目标检测的“帧差法”“背景减法”“光流法”各有什么核心局限?在实际应用中如何选择?
各方法的核心局限:
- 帧差法:①“小运动失效”(像素位移小于1像素时,差分结果低于阈值,漏检);②“边缘不完整”(差分仅保留目标边缘,内部空洞);③“对光照敏感”(光照突变误判为运动目标);
- 背景减法:①“动态背景难建模”(如树叶晃动、水面波纹,背景模型易污染);②“背景更新滞后”(缓慢变化的背景如阴影,无法及时更新,导致目标残留);
- 光流法:①“计算复杂”(尤其是稠密光流,实时性低);②“弱纹理区域精度低”(光流求解依赖梯度,弱纹理区域梯度小,光流误差大)。
实际应用选择原则:
- 若场景为静态背景、快速运动目标、实时性要求高(如室内监控、工业流水线):选帧差法(优先三帧差优化漏检);
- 若场景为静态背景、慢运动目标、需完整目标轮廓(如商场人流统计):选背景减法(背景建模用中值法抗噪声,加背景更新策略);
- 若场景为动态背景、复杂光照、需鲁棒检测(如交通监控、户外场景):选光流法(结合金字塔解除大运动,用稀疏光流平衡实时性与精度)。
15.双目立体视觉与3D重建
核心是通过双相机拍摄的图像恢复场景3D几何,首先介绍图像中3D信息的提取线索(如阴影、纹理、运动等),随后阐述双目立体的核心原理——基于三角测量(Triangulation),通过计算对应点的视差(Disparity)推导深度(公式z = f b d z=\frac{fb}{d}z=dfb,f ff为焦距、b bb为基线、d dd为视差);关键步骤包括利用极线约束(Epipolar Constraint)将对应点匹配从2D搜索降为1D,通过图像校正(Rectification)使极线平行以简化匹配,采用窗口匹配(如SSD、相关性)解决对应点问题;还详细讲解双目标定(相对定向需5对对应点、绝对定向需3个非共线点)、基础矩阵(Fundamental Matrix)的8点估计算法(秩2约束),末了补充结构光扫描(单条纹、二进制编码等)作为双目立体的补充,搭建高精度3D扫描与建模。
思维导图

图像中的3D信息提取线索
文档首先列举了从2D图像恢复3D信息的关键线索,这些是立体视觉的基础支撑:
| 线索类型 | 具体形式 | 作用 |
|---|---|---|
| 光照相关 | 阴影(Shading)、高光(Highlights)、光度立体(Photometric Stereo) | 从亮度变化推断表面法向与深度 |
| 纹理与聚焦 | 纹理密度变化、聚焦/散焦(Focus/Defocus) | 纹理稀疏→远,聚焦区域→深度匹配 |
| 运动相关 | 运动视差、从运动恢复结构(SfM) | 多帧运动图像关联3D结构 |
| 其他线索 | 轮廓(Silhouettes)、互反射(Inter-reflections)、偏振(Polarization) | 辅助约束3D形状边界 |
双目立体视觉基础原理
1. 视差(Disparity)与深度(Depth)的关系
- 核心依据:三角测量原理,假设双相机光轴平行,焦距为f ff,基线(两相机光心距离)为b bb。
- 关键公式推导:
对3D点P ( x , y , z ) P(x,y,z)P(x,y,z),左相机投影点( x l , y l ) (x_l,y_l)(xl,yl)、右相机投影点( x r , y r ) (x_r,y_r)(xr,yr),由相似三角形得:
z f = x x l = x − b x r \frac{z}{f}=\frac{x}{x_l}=\frac{x-b}{x_r}fz=xlx=xrx−b,整理得视差d = x l − x r d=x_l-x_rd=xl−xr,深度公式:
z = f b d \boldsymbol{z=\frac{fb}{d}}z=dfb
结论:深度与视差成反比,视差越大,物体越近。 - 关键问题:需解决两个核心问题——①找到左/右图像的对应点( x l , y l ) (x_l,y_l)(xl,yl)与( x r , y r ) (x_r,y_r)(xr,yr)(对应点匹配问题);②已知相机内参(f ff)与外参(b bb)(相机标定问题)。
2. 极线约束(Epipolar Constraint)
- 定义:过左相机光心C l C_lCl、右相机光心C r C_rCr与3D点P PP的平面为极平面,极平面与左/右图像平面的交线为极线,两光心连线与图像平面的交点为极点。
- 作用:将对应点匹配从“2D全图搜索”简化为“1D极线搜索”,大幅降低计算复杂度,是双目匹配的核心约束。
3. 图像校正(Stereo Image Rectification)
- 目的:通过单应变换将左/右图像重投影到平行于基线的公共平面,使对应极线变为水平且对齐,此时对应点仅在同一行搜索,进一步简化匹配。
- 关键步骤:
- 计算新旋转矩阵R RR:以基线方向为r 1 r_1r1(r 1 = ( c 1 − c 2 ) / ∥ c 1 − c 2 ∥ r_1=(c_1-c_2)/\Vert c_1-c_2\Vertr1=(c1−c2)/∥c1−c2∥),构建正交坐标系r 2 = r 1 × [ 0 , 0 , 1 ] T r_2=r_1×[0,0,1]^Tr2=r1×[0,0,1]T、r 3 = r 1 × r 2 r_3=r_1×r_2r3=r1×r2;
- 重投影左/右图像,更新相机投影矩阵P ~ 1 = A [ R ∣ t ~ 1 ] \tilde{P}_1=A[R|\tilde{t}_1]P~1=A[R∣t~1]、P ~ 2 = A [ R ∣ t ~ 2 ] \tilde{P}_2=A[R|\tilde{t}_2]P~2=A[R∣t~2];
- 优化重采样误差,确保校正后无明显畸变(Good Rectification需避免边缘拉伸)。
对应点匹配算法
1. 基础匹配逻辑
- 核心思想:对左图像每个像素,在右图像对应极线上(校正后为同一行),经过“窗口匹配”计算相似度,选择最优像素作为对应点。
- 相似度度量:Sum of Squared Difference(SSD)、归一化互相关(NCC)等。
2. 窗口大小的影响
| 窗口大小 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 小窗口(如8×8) | 对边缘细节保留好,适用于纹理丰富区域 | 对噪声敏感,易匹配错误 | 精细结构场景(如小物体) |
| 大窗口(如20×20) | 抗噪声能力强,匹配更稳定 | 模糊边缘,易跨物体匹配 | 低纹理场景(如墙面) |
| 自适应窗口 | 平衡细节与抗噪声,动态调整窗口大小 | 计算复杂度高 | 复杂纹理场景(Kanade&Okutomi算法) |
双目立体标定
标定是获取相机内参(焦距f ff、主点( u 0 , v 0 ) (u_0,v_0)(u0,v0))与外参(旋转R RR、平移t tt)的关键步骤,分两类:
| 标定类型 | 目的 | 输入需求 | 关键约束 |
|---|---|---|---|
| 相对定向 | 求左相机相对于右相机的R RR与t tt | ≥5对图像对应点(无场景3D坐标) | 旋转矩阵正交性(R T R = I R^TR=IRTR=I),尺度模糊(需固定t tt的模) |
| 绝对定向 | 求立体系统相对于外部坐标系的R RR与t tt | 3个非共线场景点的左/右环境3D坐标 | 无尺度模糊,需场景点真实3D坐标 |
| 求解方法 | 最小化重投影误差 | 超定系统(多组对应点) | 带正交约束的非线性优化(E = ∑ ∥ e i ∥ 2 + λ ( R T R − I ) E=\sum\Vert e_i\Vert^2+\lambda(R^TR-I)E=∑∥ei∥2+λ(RTR−I)) |
基础矩阵(Fundamental Matrix)
1. 定义与作用
- 核心公式:对未校准相机,对应点x = ( u , v , 1 ) T x=(u,v,1)^Tx=(u,v,1)T与x ′ = ( u ′ , v ′ , 1 ) T x'=(u',v',1)^Tx′=(u′,v′,1)T满足x ′ T F x = 0 \boldsymbol{x'^T F x=0}x′TFx=0,其中F = K − T ε K ′ − 1 F=K^{-T}\varepsilon K'^{-1}F=K−TεK′−1(ε = [ t ] × R \varepsilon=[t]_\times Rε=[t]×R为本质矩阵,K KK为相机内参)。
- 性质:3×3矩阵,秩为2,7个自由度(9个元素-1个尺度-1个秩约束)。
2. 8点算法(Estimation)
- 步骤:
- 构建线性方程组:每对对应点生成1个方程u u ′ f 11 + v u ′ f 12 + u ′ f 13 + u v ′ f 21 + v v ′ f 22 + v ′ f 23 + u f 31 + v f 32 + f 33 = 0 uu'f_{11}+vu'f_{12}+u'f_{13}+uv'f_{21}+vv'f_{22}+v'f_{23}+uf_{31}+vf_{32}+f_{33}=0uu′f11+vu′f12+u′f13+uv′f21+vv′f22+v′f23+uf31+vf32+f33=0,8对对应点生成8×9矩阵U UU;
- 求解最小二乘:求U T U U^TUUTU的最小特征值对应的特征向量,即为F FF的初始解;
- 秩约束修正:因噪声导致初始F FF可能秩为3,通过SVD分解F = U Σ V T F=U\Sigma V^TF=UΣVT,令Σ ′ = diag ( σ 1 , σ 2 , 0 ) \Sigma'=\text{diag}(\sigma_1,\sigma_2,0)Σ′=diag(σ1,σ2,0),得到秩2的F ′ = U Σ ′ V T F'=U\Sigma' V^TF′=UΣ′VT。
结构光与3D扫描
作为双目立体的补充,通过投影结构化光解决对应点匹配难题,实现高精度3D扫描:
| 结构光类型 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 单条纹扫描 | 投影激光条纹,沿物体移动扫描 | 精度高(<0.01mm) | 慢,需多帧图像(Cyberware扫描仪) |
| 二进制编码光 | 投影n nn幅二进制图案,每像素生成n nn位编码 | 快(2 n − 1 2^n-12n−1条纹仅需n nn幅图) | 对遮挡敏感 |
| 实时3D重建 | 投影复杂图案(如随机散斑),单帧匹配 | 实时性强(30Hz) | 精度略低,需复杂匹配算法 |
| 应用案例 | Digital Michelangelo方案、Microsoft Kinect | 覆盖工业检测、数字文物建模等 | —— |
双目立体视觉中,深度与视差的关系是如何推导的?该关系反映了二者怎样的内在联系?
推导依据是平行光轴双相机的相似三角形原理,具体步骤如下:
- 假设双相机光轴平行,左相机光心C l C_lCl、右相机光心C r C_rCr,基线长度b = ∥ C l C r ∥ b=\Vert C_lC_r\Vertb=∥ClCr∥,焦距均为f ff;
- 3D点P ( x , y , z ) P(x,y,z)P(x,y,z)在左图像投影为( x l , y l ) (x_l,y_l)(xl,yl),右图像投影为( x r , y r ) (x_r,y_r)(xr,yr),因光轴平行,y l = y r y_l=y_ryl=yr;
- 对左相机,由相似三角形z f = x x l \frac{z}{f}=\frac{x}{x_l}fz=xlx;对右相机,z f = x − b x r \frac{z}{f}=\frac{x-b}{x_r}fz=xrx−b;
- 联立两式消去x xx,得视差d = x l − x r d=x_l-x_rd=xl−xr,整理得深度公式z = f b d \boldsymbol{z=\frac{fb}{d}}z=dfb。
内在联系:深度与视差成反比——视差越大(左/右投影点横向距离越远),物体越近;视差越小,物体越远,这是双目立体借助2D视差恢复3D深度的核心依据。
极线约束在双目对应点匹配中起到什么作用?图像校正为何能进一步简化匹配过程?
极线约束的作用:
极线约束源于“3D点P PP、左光心C l C_lCl、右光心C r C_rCr共面(极平面)”,导致右图像中P PP的对应点必在极线上,左图像对应点同理。该约束将对应点匹配从“2D全图搜索”(复杂度O ( M N ) O(MN)O(MN))降为“1D极线搜索”(复杂度O ( M ) O(M)O(M)或O ( N ) O(N)O(N)),大幅降低计算量,避免无效搜索。图像校正的目的与简化原理:
图像校正通过单应变换,将左/右图像重投影到平行于基线的公共平面,使校正后的极线满足两个条件:①极线水平;②左/右图像的对应极线位于同一行。
此时,左图像中任意像素( u , v ) (u,v)(u,v)的对应点必在右图像的第v vv行,匹配仅需在同一行滑动窗口搜索,无需再沿倾斜极线查找,进一步将匹配复杂度从“1D任意方向”简化为“1D水平方向”,且便于硬件加速。
基础矩阵的8点算法为何需要对初始解进行“秩2约束”修正?该约束的物理意义是什么?
秩2约束修正的原因:
基础矩阵F FF的理论秩为2,源于其定义F = K − T ε K ′ − 1 F=K^{-T}\varepsilon K'^{-1}F=K−TεK′−1——本质矩阵ε = [ t ] × R \varepsilon=[t]_\times Rε=[t]×R是3×3反对称矩阵与旋转矩阵的乘积,秩为2,因此F FF的秩也为2。但在实际计算中,由于图像噪声、对应点匹配误差,通过8点算法得到的初始F FF可能秩为3,违背理论约束,若直接使用会导致极线不相交于极点,产生匹配错误,因此需凭借SVD分解将最小奇异值置0,强制F FF秩为2。秩2约束的物理意义:
秩2约束对应双目立体的极线几何一致性——所有极线必须相交于极点(左极点在右图像的极线上,右极点在左图像的极线上)。若F FF秩为3,极线会呈现无规律分布,无法满足“3D点、双光心共面”的物理规律,导致后续3D重建结果失真;秩2约束确保F FF符合双目成像的几何本质,保证极线约束的有效性。
浙公网安备 33010602011771号