矩阵 Hessian

Jacobian相当于一阶导数,Hessian相当于二阶导数。 一维函数的导数的motivation是很明显的。二阶导数的零点就是一阶导数的极值点。 对于很多应用,我们不仅关心一阶导数的零点(也就是函数的极值点),也关心一阶导数的极值点,比如信号处理中,信号的一阶导数的极值点反映信号变化的最剧烈程度。极值点寻求在编程时不方便,不如找二阶导数的零点。  Jacobian对于标量函数f: Rn-> R1,实际是个向量,这个向量实际上就是函数的梯度gradient。gradient根据Cauchy-Swartz公式,指向的是在某处方向导数取极大值的方向。在二维图像处理中,可用gradient来检测灰度值的边缘。

 在Hessian 矩阵的n 个特征值中, 幅值最大的特征值对应的特征向量代表着P 点曲率最大的方向, 同样, 幅值最小的特征值对应的特征向量代表着P 点曲率最小的方向.H es s i a n 矩阵的这一几何意义有着广泛的用途, 如提取指纹图像中的脊线、二维医学图像的分割等. 

理解Hessian矩阵

最近用到结构光条中心的精确提取,用Opencv写了一下Steger的算法,效果不错,没来得及体会算法,今天想了一下。核心思想是“线条中心是灰度一阶导数为0,二阶导数很大的点”。这样,二维的话,需要一些参数知道。包括线条的法线方向和二阶导数值。可以利用Hessian矩阵。Hessian矩阵是二阶矩阵,元素是二阶导数。这是一个二阶导数空间,把此矩阵映射到特征空间,最大特征值自然就是二阶导数极大值,(????????hessian矩阵的证明)对应的特征向量是此极大值的方向,等同于线条的法线方向。Steger法的聪明之处在于想到了用二阶导数极大值的方向作为线条的法线方向。

Hessian矩阵很好的解决了图像中如何求取二阶导数的最大值和方向 。图像中可以得到横纵方向的任意组合的二阶导数。可以证明,按照Hessian矩阵的方法排列的矩阵得到的特征值和方向就是所求。一个空间的特征空间就是最大的方向,很好的性质,而且Hessian矩阵貌似很有规律,证明应当不难。

角点探测

1,K—R法利用灰度梯度方向的变化率在边缘走向方向的投影,其值反映了角点的尖锐程度。

2,Harris法其实就是Steger提取光条中心的升级版,提取了点的中心。关键是把角点转化为亮点。用自相关模版对图像卷积,结果的变化率体现了本身灰度的变化率,于是角点转化为亮点。对结果矩阵,用Hessian矩阵,在两个正交方向上都有较大值的点就是亮点,即角点。

Hessian矩阵很好的解决了图像中如何求取二阶导数的最大值和方向 。图像中可以得到横纵方向的任意组合的二阶导数。可以证明,按照Hessian矩阵的方法排列的矩阵得到的特征值和方向就是所求。一个空间的特征空间就是最大的方向,很好的性质,而且Hessian矩阵貌似很有规律,证明应当不难。

事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。

“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”理解这句话的关键,在于把“线性变换”与“线性变换的一个描述”区别开。一个是那个对象,一个是对那个对象的表述。同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。若矩阵A与B是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得A、B之间满足这样的关系:A = P-1BP线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。看到这里,想记下一点东西,1,学数学要注意面对公理化的体系时的学习方法。2,用运动形象的理解矩阵。3,相似矩阵是一族对同一变换的基于不同基底的描述,也就是描述的运动是相同的,只是基于不同角度罢了(想想基底不就是“维”吗,可以理解成某个角度吧)。

我觉得研究生期间有两门数学课是必须要学的(必修的数值分析和概率论与数理统计之外):一门是泛函分析,另外一门是矩阵论。 
矩阵论的重要性工作时间长了就能慢慢体会到,但是大家一般对泛函分析不太了解,所以也就很难认识到其重要性了。事实上,泛函分析虽然很抽象,很难直接应用到工作当中去,但是可以帮助我们对很多问题有一个更本质的认识。举两个例子:说到采样,大家的第一反应肯定是一个词“2倍”(采样定理)。学得比较扎实的,可能还会把为什么是2倍解释清楚。但我对采样的理解是:采样实际上是在进行正交分解,采样值不过是在一组正交基下分解的系数。如果原信号属于该组正交基所张成的线性子空间,那么该信号就能无失真的恢复(满足采样定理)。学过信号处理的朋友,你知道这组正交基是什么吗?:)第二个例子是关于为什么傅里叶变换在线性系统理论中如此重要?答案可能五花八门,但我认为我的理解是比较深入的:原因是傅里叶基是所有线性时不变算子的特征向量(和本文联系起来了)。这句话解释起来比较费工夫,但是傅里叶变换能和特征向量联系起来,大家一定感觉很有趣吧。”  



本人初学,许多东西都是学习借鉴的他人的博文

你可能感兴趣的:(矩阵 Hessian)