计算机视觉数学入门-线性代数和数值方法

在计算机视觉中,图像,视频的表示都是由矩阵、张量来进行表示的,所以矩阵分解在计算机视觉中算是比较重要的数学技术,如在PCA和image segmentation中,都会用到SVD方法,或用于提取矩阵奇异值,或用于简化计算大规模线性方程组,可谓用途很多。

线性代数与数值方法:
A.1 矩阵分解
矩阵分解方法可大致分为奇异值分解(SVD)、特征值分解、QR因子分解和乔里斯基(cholesky)因子分解。

A1.1 奇异值分解SVD
SVD是矩阵分解中最常用的方法,即任意的一个MN的实数值矩阵都可以分解为mp(U)、pp、pn(V)的三个矩阵相乘,U、V为正交矩阵,p为min(m,n)

  奇异值分解的一个重要性质是可以对展开式进行截尾计算,获得原始矩阵在最小二乘意义下的最佳逼近,可用于基于特征脸的人脸识别系统和卷积核的可分性估计。

A1.2 特征值分解
如果矩阵C是对称矩阵(m=n),那么它可以写成特征值分解的形式,特征值递减,可以为正,也可以为负
特殊情况是,若C为满秩的,所有特征值均为非负,可通过一系列外积之和来进行构造,则该矩阵被成为对称半正定矩阵(SPD),如一组数据点围绕其中心的协方差即为对称半正定矩阵


image.png
   对于大型矩阵的特征值分解求解,经常使用QR迭代求解,并最好使用一些线性代数工具包如LAPACK等。
   对有缺失数据项的矩阵进行因子分解会用到各种不同的迭代算法,涉及对缺失项进行假设或最小化一些加权的重构度量,这一领域也有着广泛的研究。

A 1.3 QR因子分解
QR因子分解是一项广泛应用于稳定求解病态最小二乘问题的方法,也是一些更复杂算法的基础,如计算SVD及特征值分解:
A = QR
其中Q是正交矩阵(酉矩阵),R为上三角形矩阵,在计算机视觉中,QR因子分解可以用于将摄像机矩阵转换为旋转矩阵和一个上三角的标定矩阵,也可以用于各种自标定算法,和SVD、特征值分解不同的是,QR因子分解并不需要迭代计算。

A 1.4 乔里斯基分解
乔里斯基因子分解可以用于将任意的对称正定矩阵C转换成上三角矩阵或下三角矩阵的乘积,其中的上三角矩阵和下三角矩阵是对称的
C = LL^T = R^TR
L是下三角矩阵,R是上三角矩阵。

A. 2 线性最小二乘
线性最小二乘问题在计算机视觉中很常见,如在基于特征点匹配的图像对齐中,即要最小化一个平方距离目标函数。
最简单的拟合方式为直线拟合,复杂些的有多项式拟合,正弦拟合。
对于线性最小二乘问题,通常用x表示未知参数,其求解正则方程来求得x得最小值,常用的解法是乔里斯基分解,转化为求解两个三角系统计算。

   全部最小二乘:
   在一些问题中(如在2D图像中进行几何曲线拟合成或者在三维空间中用平面拟合一组数据点云),测量误差不只在一个特定的方向上存在,测量点在各个方向都具有一定的不确定度,这种情况成为“变量含误差模型”,很多时候我们将其转化为这样的数学表达式:
   ![image.png](https://upload-images.jianshu.io/upload_images/16818227-7606a1f72aaea271.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
   可见,该误差度量函数有一个平凡解x =0,因此我们需要要求x满足,x的模为1,即转化为以下问题:
 ![image.png](https://upload-images.jianshu.io/upload_images/16818227-1cd012d2668b5e1a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
 对于线性方程拟合问题,考虑到最大似然法要求各个随机变量噪声分布相同,所以常对数据采用归一化,中心化处理。

A.3 非线性最小二乘
很多视觉问题中,如从运动到结构的问题,最小二乘的函数不是线性的,这种问题称为“非线性最小二乘问题或非线性回归”。对于这类问题,因为大多数为多维函数,需要使用梯度导数(雅可比矩阵)在当前估计的参数p附近对函数迭代地进行线性化,并计算出一个增量改进。


image.png

此类方法的局限在于该近似仅在局部极小值附近或在delta p很小时成立,每一步的更新不一定总能减少累加来的平方残差,所以有很多方法来解决这一问题,如直线搜索减少步长、带阻尼的高斯牛顿法、大残差方法(newton-type)、Quasi-Newton方法

A. 4 直接稀疏矩阵方法
光速平差法等优化问题都会涉及极度稀疏的雅克比矩阵和hessian矩阵,当hessian矩阵足够稀疏时,使用稀疏的乔里斯基因子分解就会比用一般的乔里斯基因子分解效率更高。

变量重排:
使用非迭代的解法求解稀疏矩阵问题的关键是为变量确认一个合理的顺序,可以减少填充的数量。
。。。。

ps:这部分有些复杂

A. 5 迭代方法
当问题的规模很大时,

你可能感兴趣的:(计算机视觉数学入门-线性代数和数值方法)