一、提取模板
1、预处理
使用高斯模糊预处理将要作为模板的RGB图
2、模板梯度计算
分别计算RGB三个通道中每个像素点x和y方向的梯度(sobel算子),取幅值最大的作为该像素的梯度,若梯度幅度值小于阈值,则被舍弃
3、梯度离散化及量化
对保留的梯度,以角度形式表示其方向(phase函数),将以上角度映射到0度至180度之间,而后离散化为n个区间,再用0-n-1的index分别表示各个角度。为了应对噪声,在该像素的3*3领域内进行统计投票,取得分最高的index值作为该像素点的最终index
4、模板保存
对index进行二进制编码,方便后续匹配时的计算,feature数目小于4的模板被舍弃,最后模板以mask形式保存
5、模板变换
针对原始模板(mask形式),按照angle和scale的一定步长进行平移、旋转、缩放等仿射变换,形成一系列的模板
6、模板金字塔
对RGB图片进行下采样,重复1-5的过程
二、进行匹配
1、测试图片梯度计算
按照提取模板时的方式计算梯度,并舍弃幅度值较小的
2、梯度扩散
为提高匹配的鲁棒性,对梯度进行扩散,具体操作为将有index值扩散到以该像素点为中心的33的领域内
3、预计算response map
针对各个方向,利用梯度与对应方向间夹角余弦的绝对值(取绝对值的目的是为了不受背景影响,即使背景很亮或者很暗仍然会比较鲁棒)计算相似分数,同一像素点的多个余弦值中取绝对值最大的,形成n个response map
4、计算similarity map
由于是利