物理意义
数学中矩的概念来自物理学。在物理学中,矩是表示距离和物理量乘积的物理量,表征物体的空间分布。由其定义,矩通常需要一个参考点(基点或参考系)来定义距离。如力和参考点距离乘积得到的力矩(或扭矩),原则上任何物理量和距离相乘都会产生力矩,质量,电荷分布等。
单个点的力矩:
多个点则是积分得空间密度
如果点表示质量,则第零矩是总质量,一阶矩是重心,二阶矩是 转动惯量
还有一个多极矩的概念,设计到极坐标系和球面坐标,就不多说了link
数学意义
矩是物体形状识别的重要参数指标。在统计学中,矩表征随机量的分布。如一个“二阶矩”在一维上可测量其“宽度”,在更高阶的维度上由于其使用于橢球的空间分布,我们还可以对点的云结构进行测量和描述。其他矩用来描述诸如与均值的偏差分布情况(偏态),或峰值的分布情况(峰态)
定义在实数域的实函数相对于值c的n阶矩为:
如果点表示概率密度,则第零阶矩表示总概率(即1),1,2,3阶矩依次为以下三项。数学中的概念与物理学中矩的概念密切相关。
- 期望
随机变量的期望定义为其一阶原点矩:$E(x)=\int_{-\infty}^{\infty} x\,f(x)\,dx $ 在方差等定义中,期望也成为随机变量的“中心”。
显然,任何随机变量的一阶中心据为0。
对于以下二阶及更高阶的矩,通常使用中心矩(围绕平均值c的矩,均值是一阶矩),而不是原点矩,因为中心矩能更清楚的体现关于分布形状的信息。 - 方差
随机变量的方差定义为其二阶中心矩:$ Var(x)=\int_{-\infty}^{\infty} [x-E(x)]^2 \,f(x)\,dx $ 归一化矩
归一化n阶中心矩或者说标准矩,是n阶中心矩除以标准差 $\sigma^n $,归一化n阶中心矩为$x=\frac{E[(x-\mu)^n]}{\sigma^n} $
这些归一化矩是无量纲值,表示独立于任何尺度的线性变化的分布。举个栗子,对于电信号,一阶矩是其DC(直流)电平,二阶矩与平均功率成比例。 - 偏态
随机变量的偏态(衡量分布不对称性)定义为其三阶中心矩:$ S(x)=\int _{-\infty }^{\infty }[x-E(x)]^{3}\,f(x)\,dx$
需要注意,任何对称分布偏态为0,归一化三阶矩被成为偏斜度,向左偏斜(分布尾部在左侧较长)具有负偏度(失效率数据常向左偏斜,如极少量的灯泡会立即烧坏),向右偏斜分布(分布尾部在右侧较长)具有正偏度(工资数据往往以这种方式偏斜,大多数人所得工资较少)。
- 峰度
一般随机变量的峰度定义为其四阶中心矩与方差平方的比值再减3,减3是为了让正态分布峰度为0,这也被称为超值峰度:$ K(x)=\frac{\int _{-\infty }^{\infty }[x-E(x)]^{4}\,f(x)\,dx}{\sigma^2}-3$
峰度表示分布的波峰和尾部与正态分布的区别,峰度有助于初步了解数据分布的一般特征。
完全符合正态分布的数据峰度值为0,且正态分布曲线被称为基线。如果样本峰度显著偏离0,就可判断此数据不是正态分布。
-
混合矩
混合矩是多个变量的矩,比如协方差,协偏度,协峰度。虽然协方差只有一个,但协偏度和协峰度存在多个。 - 中心转换
由于:
$(x-b)^n=(x-a+a-b)^n=\sum\limits_{i=0}^n \left( \begin{array}{c} c\\r \end{array} \right) (x-a)^i (a-b)^{n-i} $
所以:$E[(x-b)^n]= \sum\limits_{i=0}^n \left( \begin{array}{c} c\\r \end{array} \right) E[(x-a)^i](a-b)^{n-i} $ - 累加性
当x和y是独立变量时,
$m_1(x+y)=m_1(x)+m_1(y) \\ Var(x+y)=Var(x)+Var(y)\\\mu_3(x+y)=\mu_3(x)+\mu_3(y) $ - 样本矩
矩常常通过样本矩来估计,这种方法不需要先估计其概率分布。$\mu '_{n}\approx {\frac {1}{N}}\sum _{i=1}^{N}X_{i}^{n}$
对于任何样本大小,原始样本矩的期望值等于群体的k阶矩(若存在)。
图像意义
在图像处理,计算机视觉和相关领域中,一个图像矩是图像像素强度的某个特定加权平均(矩),或者是这样的矩的函数,通常选择具有一些有吸引力的特性或解释。
图像矩对于分割之后对象的描述是有用的。通过图像矩得到的图像的简单属性包括面积(或总强度),其质心和关于其方向的信息。
-
原点矩
对一个二维连续函数$f(x,y)$,第$(p+q)$个点的矩(原点矩)被定义为$M_{pq} = \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} x^p y^q \,f(x,y) \,dx \,dy \quad \quad p,q=0,1,2,...$
照这个思路,像素强度为$I(x,y)$的灰度图,原点矩为:$M_{ij}=\sum\limits_x \sum\limits_y x^i y^i I(x,y)$
有些情况下,也可以把图像看成概率密度函数来计算 $\sum\limits_x \sum\limits_y x^i y^i I(x,y)$
唯一性定理(Hu[1962])指出,如果$f(x,y)$是分段连续的并且仅在xy平面的有限部分中具有非零值,则存在所有阶的矩,并且矩序列$M_pq$由$f(x,y)$唯一确定。 反之,中心矩$M_pq$唯一确定$f(x,y)$。
在实践中,图像被概括为具有几个较低阶矩的函数。
举个栗子,Opencv中moment函数从原点矩中获得的简单图像属性
- 面积(二值图)或灰度和(灰度图):M00
- 质心:$ {\bar{x},\bar{y}}={ \frac{M10}{M00},\frac{M01}{M00} }$
vector<Moments> mu(contours.size() ); vector<Point2f> mc(contours.size() ); mu[c] = moments( contours[i], false ); double area=mu[c].m00 ; mc[c] = Point2f( mu[c].m10/mu[c].m00 , mu[c].m01/mu[c].m00 );
- 中心矩
中心矩被定义为:$\mu_{pq}=\int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} (x-\bar{x})^p (y-\bar{y})^q \,f(x,y) \,dx\,dy \quad \bar{x}=\frac{M_{10}}{M_{00}} ,\bar{y}=\frac{M_{01}}{M_{00}} $
如果是数字图像,则等式变为$\mu_{pq}=\sum\limits_x \sum\limits_y (x-\bar{x})^p (y-\bar{y})^q\,f(x,y)$ 3阶及以下中心矩依次为:
$ \mu_{00}=M_{00},\\ \mu_{01}=0,\\\mu_{10}=0,\\ \mu_{11}=M_{11}-\bar{x}M_{01}=M_{11}-\bar{y}M_{10},\\ \mu_{20}=M_{20}-\bar{x}M_{10},\\ \mu_{02}=M_{02}-\bar{y}M_{01},\\ \mu_{21}=M_{21}-2\bar{x}M_{11}-\bar{y}M_{20}+2\bar{x}^2M_{01},\\ \mu_{12}=M_{12}-2\bar{y}M_{11}-\bar{x}M_{02}+2\bar{y}^2M_{10},\\ \mu_{30}=M_{30}-3\bar{x}M_{20}+2\bar{x}^2M_{10},\\ \mu_{03}=M_{03}-3\bar{y}M_{02}+2\bar{y}^2M_{01}, $
总结出来就是$\mu_{pq}=\sum\limits_x \sum\limits_y \left( \begin{array}{c} p\\m \end{array} \right) \left( \begin{array}{c} q\\n \end{array} \right) (-\bar{x})^{p-m} (-\bar{y})^{q-n} M_{mn} $
中心矩具有平移不变性
举个栗子
图像方向的信息可以通过首先使用二阶中心矩来构造协方差矩阵导出(底下这个式子很明显就是矩阵降维)
其中,图像上一点$I(x,y)$的协方差矩阵为
矩阵的特征向量对应于图像强度的长轴和短轴,因此可以从与最大特征值相关联的特征向量的角度朝向最靠近该特征向量的轴提取取向。可以证明,该角度$\theta$可由以下公式得出:
协方差矩阵的特征值可以表示为:
且特征值与特征向量轴的长度的平方成比例。特征值的幅度的相对差异体现了图像的偏心特性或者说他多细长。偏心率是:
-
矩不变性
矩因为其在图像分析上的应用广为人知,由于他们可以被用于导出关于特定变换类的不变量。,
在这种情况下,不变矩这个术语常被滥用。然而,虽然矩不变量是从矩中形成的不变量,不变量本身的唯一矩是中心矩。
注意下面的详细的不变量仅在连续区间保持不变性。在离散区间,尺度和旋转都不能很好的形成,离散图像转换是近似的,且变换不可拟。因此,当描述离散图像中的形状时,这些不变量仅是近似不变的。- 平移不变性
通过构造,任意阶中心矩$\mu_{ij}相对于平移都是不变的。 - 尺度不变性
相对平移和尺度的不变量$\eta_{ij}$可以通过适当的缩放零阶中心矩阵从中心矩构建 $\eta_{ij}=\frac{\mu_{ij}}{\mu_{00}^{1+\frac{i+j}{2}} } \quad i+j \geq 2$
注意平移不变量仅仅在中心矩时直接跟随使用。 - 旋转不变性
正如Hu等人的工作所示,可以构建关于平移、放缩和旋转的不变量:
- 平移不变性
这就是众所周知的HU矩不变量。
第一个,I1,类似于围绕图像的质心的转动惯量,像素强度类似于物理密度。
最后一个,I7,倾斜不变性,有能力区分其他相同图像的镜像。(不懂)
J. Flusser提出了推导完整和独立的旋转矩不变量集合的一般理论。他所传统的Hu矩既不独立也不完全。I3并不是非常有用,因为他不独立,依赖于其他不变量。原始的Hu集合中有一个缺失的三阶独立不变矩。
后来,J.Flusser和T.Suk就专门研究N旋转对称形状的情况。
点云意义
PCL 关于矩的使用有两个,一个是pcl::MomentInvariantsEstimation
,估计每个3D点处的三个矩不变量(j1,j2,j3)
。另一个就是 pcl::MomentOfInertiaEstimation
类 。可以获得基于偏心率和转动惯量的描述符。还能提取点云的对齐轴和定向边界框。
Note:提取的边界框不是最小可能的边界框。
- 理论入门
先讲特征提取的idea。首先计算点云的协方差矩阵,并提取其特征值和向量。你也可以想象成归一化合成的特征向量,且总是形成右手坐标系(主特征向量表示x轴,次向量表示z轴)。下一步执行迭代。每次迭代过程中,主特征向量旋转。旋转顺序不变,且围绕其他特征向量执行。这提供了点云的旋转不变性。因此,我们把这个旋转的主矢量当成当前轴。
对于每个当前轴,计算转动惯量。另外,当前轴已被用来计算偏心率。因此,当前向量被看成平面法向量,并且将输入的点云投影到他上面。根据所获得的投影计算偏心率。
当然,这个类还提供了获取Axis Aligned Bounding Box(AABB)和Oriented bounding box(OBB)的接口。将AABB作为特征向量计算OBB。pcl提供了一个示例,来体会矩的计算。
参考: