详细解释计算协方差矩阵 C(3D Harris),并给出计算样例及步骤

详细解释3D Harris特征提取中的协方差矩阵CCC计算

在3D Harris特征提取中,协方差矩阵CCC是核心计算步骤,用于量化点云局部邻域的几何变化。其计算基于邻域点的坐标或法向量,反映邻域在三个主方向上的分布特性。


1. 协方差矩阵CCC的定义

对于点云中的某个点ppp,其邻域N(p)N(p)N(p)包含nnn个点{q1,q2,...,qn}\{q_1, q_2, \dots, q_n\}{q1,q2,...,qn}。协方差矩阵CCC定义为:
C=1n∑i=1n(qi−qˉ)(qi−qˉ)TC = \frac{1}{n} \sum_{i=1}^n (q_i - \bar{q})(q_i - \bar{q})^TC=n1∑i=1n(qi−qˉ)(qi−qˉ)T

其中:

-qˉ=1n∑i=1nqi\bar{q} = \frac{1}{n} \sum_{i=1}^n q_iqˉ=n1∑i=1nqi是邻域点的质心(均值)。

-(qi−qˉ)(q_i - \bar{q})(qi−qˉ)是点qiq_iqi相对于质心的偏移向量。

-(qi−qˉ)T(q_i - \bar{q})^T(qi−qˉ)T是偏移向量的转置(列向量转行向量)。

-(qi−qˉ)(qi−qˉ)T(q_i - \bar{q})(q_i - \bar{q})^T(qi−qˉ)(qi−qˉ)T是一个3×33 \times 33×3的外积矩阵,表示点qiq_iqi对协方差矩阵的贡献。

若使用法向量

若邻域点的几何信息为法向量{n1,n2,...,nn}\{n_1, n_2, \dots, n_n\}{n1,n2,...,nn},则协方差矩阵可定义为:
C=1n∑i=1n(ni−nˉ)(ni−nˉ)TC = \frac{1}{n} \sum_{i=1}^n (n_i - \bar{n})(n_i - \bar{n})^TC=n1∑i=1n(ni−nˉ)(ni−nˉ)T

其中nˉ=1n∑i=1nni\bar{n} = \frac{1}{n} \sum_{i=1}^n n_inˉ=n1∑i=1nni是邻域法向量的均值。


2. 协方差矩阵的物理意义

协方差矩阵CCC是一个对称矩阵,其特征值λ1,λ2,λ3\lambda_1, \lambda_2, \lambda_3λ1,λ2,λ3(按降序排列)反映邻域在三个主方向上的变化程度:

  • 大特征值:对应方向变化剧烈(如边缘或角点)。
  • 小特征值:对应方向变化平缓(如平面区域)。

3D Harris算法通过分析特征值的分布来检测关键点:

  • 角点 :三个特征值均较大(λ1≈λ2≈λ3\lambda_1 \approx \lambda_2 \approx \lambda_3λ1≈λ2≈λ3)。
  • 边缘 :两个特征值较大,一个较小(λ1≈λ2≫λ3\lambda_1 \approx \lambda_2 \gg \lambda_3λ1≈λ2≫λ3)。
  • 平面 :一个特征值较大,两个较小(λ1≫λ2≈λ3\lambda_1 \gg \lambda_2 \approx \lambda_3λ1≫λ2≈λ3)。

3. 计算步骤与样例

样例数据

假设点ppp的邻域N(p)N(p)N(p)包含以下3个点(坐标形式):
q1=(1,2,3),q2=(2,3,4),q3=(3,4,5)q_1 = (1, 2, 3), \quad q_2 = (2, 3, 4), \quad q_3 = (3, 4, 5)q1=(1,2,3),q2=(2,3,4),q3=(3,4,5)

步骤1:计算质心qˉ\bar{q}qˉ

qˉ=(1+2+33,2+3+43,3+4+53)=(2,3,4)\bar{q} = \left( \frac{1+2+3}{3}, \frac{2+3+4}{3}, \frac{3+4+5}{3} \right) = (2, 3, 4)qˉ=(31+2+3,32+3+4,33+4+5)=(2,3,4)

步骤2:计算偏移向量qi−qˉq_i - \bar{q}qi−qˉ

q1−qˉ=(1−2,2−3,3−4)=(−1,−1,−1)q2−qˉ=(2−2,3−3,4−4)=(0,0,0)q3−qˉ=(3−2,4−3,5−4)=(1,1,1)q_1 - \bar{q} = (1-2, 2-3, 3-4) = (-1, -1, -1) \\ q_2 - \bar{q} = (2-2, 3-3, 4-4) = (0, 0, 0) \\ q_3 - \bar{q} = (3-2, 4-3, 5-4) = (1, 1, 1)q1−qˉ=(1−2,2−3,3−4)=(−1,−1,−1)q2−qˉ=(2−2,3−3,4−4)=(0,0,0)q3−qˉ=(3−2,4−3,5−4)=(1,1,1)

步骤3:计算外积矩阵(qi−qˉ)(qi−qˉ)T(q_i - \bar{q})(q_i - \bar{q})^T(qi−qˉ)(qi−qˉ)T

对于q1−qˉ=(−1,−1,−1)q_1 - \bar{q} = (-1, -1, -1)q1−qˉ=(−1,−1,−1):
(q1−qˉ)(q1−qˉ)T=−1−1−1−1−1−1=111111111(q_1 - \bar{q})(q_1 - \bar{q})^T = \begin{bmatrix} -1 \\ -1 \\ -1 \end{bmatrix} \begin{bmatrix} -1 & -1 & -1 \end{bmatrix}= \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}(q1−qˉ)(q1−qˉ)T= −1−1−1 −1−1−1= 111111111

同理:

-q2−qˉq_2 - \bar{q}q2−qˉ的外积矩阵为000(零矩阵)。

-q3−qˉ=(1,1,1)q_3 - \bar{q} = (1, 1, 1)q3−qˉ=(1,1,1)的外积矩阵与q1q_1q1相同:
111111111\begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} 111111111

步骤4:求和并平均得到协方差矩阵CCC

C=13(111111111+000000000+111111111)=13222222222=232323232323232323C = \frac{1}{3} \left( \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} + \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} + \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} \right)= \frac{1}{3} \begin{bmatrix} 2 & 2 & 2 \\ 2 & 2 & 2 \\ 2 & 2 & 2 \end{bmatrix}= \begin{bmatrix} \frac{2}{3} & \frac{2}{3} & \frac{2}{3} \\ \frac{2}{3} & \frac{2}{3} & \frac{2}{3} \\ \frac{2}{3} & \frac{2}{3} & \frac{2}{3} \end{bmatrix}C=31 111111111 + 000000000 + 111111111 =31 222222222 = 323232323232323232

步骤5:特征值分解

协方差矩阵CCC的特征值为:
λ1=2,λ2=0,λ3=0\lambda_1 = 2, \quad \lambda_2 = 0, \quad \lambda_3 = 0λ1=2,λ2=0,λ3=0

(因为CCC的秩为1,仅有一个非零特征值。)

物理意义

此邻域在(1,1,1)(1,1,1)(1,1,1)方向上变化剧烈(如一条直线),而在其他方向无变化,因此检测为边缘特征而非角点。


4. 使用法向量的协方差矩阵计算

若邻域点的法向量为:
n1=(0.5,0.5,0.707),n2=(0.5,−0.5,0.707),n3=(−0.5,0,0.866)n_1 = (0.5, 0.5, 0.707), \quad n_2 = (0.5, -0.5, 0.707), \quad n_3 = (-0.5, 0, 0.866)n1=(0.5,0.5,0.707),n2=(0.5,−0.5,0.707),n3=(−0.5,0,0.866)

(已归一化,即∥ni∥=1\|n_i\| = 1∥ni∥=1)

步骤1:计算法向量均值nˉ\bar{n}nˉ

nˉ=(0.5+0.5−0.53,0.5−0.5+03,0.707+0.707+0.8663)≈(0.167,0,0.760)\bar{n} = \left( \frac{0.5+0.5-0.5}{3}, \frac{0.5-0.5+0}{3}, \frac{0.707+0.707+0.866}{3} \right) \approx (0.167, 0, 0.760)nˉ=(30.5+0.5−0.5,30.5−0.5+0,30.707+0.707+0.866)≈(0.167,0,0.760)

步骤2:计算偏移向量ni−nˉn_i - \bar{n}ni−nˉ

n1−nˉ≈(0.333,0.5,−0.053)n2−nˉ≈(0.333,−0.5,−0.053)n3−nˉ≈(−0.667,0,0.106)n_1 - \bar{n} \approx (0.333, 0.5, -0.053) \\ n_2 - \bar{n} \approx (0.333, -0.5, -0.053) \\ n_3 - \bar{n} \approx (-0.667, 0, 0.106)n1−nˉ≈(0.333,0.5,−0.053)n2−nˉ≈(0.333,−0.5,−0.053)n3−nˉ≈(−0.667,0,0.106)

步骤3:计算外积矩阵并求和

(此处省略具体矩阵计算,直接给出结果)
C≈0.2220−0.03700.50−0.03700.006C \approx \begin{bmatrix} 0.222 & 0 & -0.037 \\ 0 & 0.5 & 0 \\ -0.037 & 0 & 0.006 \end{bmatrix}C≈ 0.2220−0.03700.50−0.03700.006

步骤4:特征值分解

特征值约为:
λ1≈0.5,λ2≈0.222,λ3≈0.006\lambda_1 \approx 0.5, \quad \lambda_2 \approx 0.222, \quad \lambda_3 \approx 0.006λ1≈0.5,λ2≈0.222,λ3≈0.006
物理意义

三个特征值均较小且差异不大,说明邻域法向量分布均匀,可能为平面区域或噪声点。


5. 总结

  • 协方差矩阵CCC 是3D Harris算法的核心,通过邻域点的坐标或法向量计算。
  • 特征值分析 可区分角点、边缘和平面:
    • 角点:三个特征值均大且接近。
    • 边缘:两个特征值大,一个小。
    • 平面:一个特征值大,两个小。
  • 计算步骤:质心计算 → 偏移向量 → 外积矩阵 → 求和平均 → 特征值分解。

通过调整邻域大小和响应阈值,可优化关键点检测效果。

相关推荐
dingzd958 小时前
跨境社媒运营越到后面 越比拼账号的表达稳定性
大数据·人工智能·矩阵·内容营销
机汇五金_11 小时前
矩阵机箱有哪些常见结构形式?
线性代数·矩阵
2301_8008951012 小时前
线性代数保研面试复习
线性代数·面试·保研
机汇五金_14 小时前
矩阵机箱为什么越来越强调模块化设计?
人工智能·线性代数·矩阵
AI_yangxi14 小时前
短视频矩阵系统哪个好
大数据·人工智能·矩阵
2601_9618451514 小时前
新高考一卷真题2025|真题PDF全科整理
线性代数·矩阵·pdf·动态规划·概率论·高考
机汇五金_15 小时前
影响矩阵机箱稳定运行的几个关键因素
线性代数·矩阵
歪歪歪比巴卜15 小时前
企业新媒体矩阵规模化后的治理结构与数据能力研究(2026)
大数据·矩阵·媒体
会Tk矩阵群控的小木15 小时前
小红书矩阵软件:基于Python+ADB的多设备批量管理自动化脚本实战
运维·python·adb·矩阵·自动化·新媒体运营·个人开发
apcipot_rain17 小时前
计科八股20260609——10分钟速通《线性代数》,知识点极简版
人工智能·线性代数·机器学习