harris角点,亚像素 以及 hdrplus的亚像素对齐

角点检测:Harris 与 Shi-Tomasi

   最近在弄对齐,对齐里有个亚像素对齐,然后opencv里又有个角点亚像素refine,然后就到了角点...,这一系列关联下去,就去学了个角点,然后这些基本推导都非常类似...
    看上去只要是扯到图像结构啥的,都会涉及到梯度啊,局部极小,然后taylor,hessian,特征值一系列都会有所涉及,所以原理推导基本都很类似。
    1.harris角点认为局部移动导致变化强烈的点就是角点,然后公式里talor展开合并得到一个二次型,矩阵就是类hessian。二次型矩阵是实对称矩阵A,可以正交分解成特征值特征向量形式,然后空间内某方向的变化都可以由两个方向线性表达,所以变化量就是两特征值的组合。这里的类hessian是半正定矩阵,特征值全是非负的
    2.角点就是变化强烈的地方,可以用特征值来衡量。  然后harris角点弄了个响应函数R(主要就是只用行列式与迹来组合判断特征值是否比较大),Tomasi后来的改良是直接判断最小特征值比较大,就是说图像有两个垂直方向,变化都很强烈,导致任意方向都很强烈
    3.这里看上去有个有趣的推论:图像局部移动,肯定存在垂直的两个方向,这两个方向恰好就是是所有方向中的变化最大与变化最小的。 
      类似局部问题,只要taylor展开,类似推导,是半正定的二次型都这样。

链接里有提到一个多尺度harris,后续再看,不知道效果如何:Harris角点

————————————————————————————————————————

Harris角点的亚像素

亚像素角点的求法 

如链接里提到的“遵循位移向量与梯度垂直,即乘积为0”,在邻域内比如3x3内9个点构造方程组,最小二乘求解,链接里的公式并不准确,里面的求和符号写的位置是有问题的,单一点得到的是秩1的矩阵,不可求逆,需要求和后才能尽量避免秩1,不过意思是那个意思。

opencv里是CornerSubPixel, 迭代求解,由初始点P,得到邻域3x3点,方程组求得亚像素P1后,再用P1找邻域3x3(这里使用的是双线性插值算出周围的邻域点),不断迭代下去。

______________________________________________________________________

HDRplus的亚像素对齐

1. 由角点亚像素回到对齐的亚像素,HDRplus那篇文章里是coarse层使用块匹配(块匹配使用了FFT快速求解,FFT的小块应该是算出系数后直接求,否则优势应该不明显才对,具体后面实现算法时再细想下)
2. 对于块匹配,每个patch会算出一个diff整点图,一种直接用,paper里是用这个diff整点图,局部使用一个二次函数进行拟合,然后再求这个二次函数的局部极小值点,从而实现亚像素。 
3. 所以这个亚像素算法是否可靠还要考虑二次拟合是否合理(难道只是因为局部性就肯定合理么?需要细想下)

————————————————————————————————————————

再回到Harris角点的亚像素

由对齐的亚像素再回到角点的亚像素,考虑两者区别,如果借鉴hdrplus方法的话,可以这么操作,在求角点时是会整张图算出每个点的局部变化信息(每个点都有个二次型矩阵,特征值特征向量),
那是否也可以类似使用这些整点信息,二次拟合个函数,然后再求局部极值来确定亚像素呢?(还没实现,还只是一个初步设想)

 

——————————————————————————————————————————

由DIS;LK; HDRplus对齐;然后亚像素对齐,再到Harris角点的亚像素refine,再到Harris角点,这一系列看下来,这些方法都极其类似,由于问题不同,相应又有所区别。
harris角点由于问题是一张图,所以是单张信息的自相关求解,
而对齐是两张图,所以区别是两张图信息进行联立互相关。
由于推导都是taylor展开,梯度,求导,类hessian矩阵,特征值特征向量等,所以都类似
在亚像素方面,harris的亚像素是考虑位移向量梯度内积为0联立方程组迭代求解
hdrplus的亚像素则是局部二次拟合,然后求极值点。    看上去非常不同,本质上的联系区别可能还要推导品味
这些方法之间的联系区别还可以后续细细感受品味,现在这几个方法互相映照,原理也看得差不多了
差不多可以开始进行产品具体问题的修改优化了

 

 

 

 

 


 

你可能感兴趣的:(算法)