一种基于ASEF算法的高速特征点定位算法

一种基于ASEF算法的高速特征点定位算法

[TOC]
作者:侯伟
时间:2018.04.14
论文链接1:http://vision.lbl.gov/Conferences/cvpr/Papers/data/papers/1105.pdf
论文链接2:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.492.7927&rep=rep1&type=pdf
算法相关博客1:https://blog.csdn.net/kaka_36/article/details/18353155

@(总结)

一.背景

  • ASEF算法,全称:Average of Synthetic Exact Filters,是一篇2009年发表的论文,链接在本文开头部分,顺手贴上几篇ASEF的相关博客,链接在开头;
  • ASEF算法主要是应用了傅里叶变换,把图片变换到频域,然后进行滤波再变换到空间域,就得到了定位结果,思想非常简单,实现效果还不错,最关键的是速度极快,PC上能够做到0.3ms,我司的烂ARM A7 600Mhz都能做到10ms以内,这就很不一样了;

二. 算法原理

  1. 以定位人眼为例,我们的目的是让图像 f f 通过一个相关滤波器 h h ,然后就能得到人眼响应图 g g
    fh=g, f ∗ h = g 这 里 以 小 写 为 空 间 域 , 大 写 为 频 域 , ∗ 代 表 卷 积
  2. 我们知道,相关滤波类似于卷积,由信号处理方面的知识可知,空间域的卷积等同于频域的乘法,因此:
    fh=gF×H=G f ∗ h = g 对 应 于 F × H = G
    其中
    F=DFT(f)G=DFT(g)H=DFT(h) F = D F T ( f ) G = D F T ( g ) H = D F T ( h )
  3. 记住我们的目的是得到合适的 H H ,很明显, G G g g 的傅里叶变换,而 g g 可以由图像标定得到, F F 是图像 f f 的傅里叶变换,因此可以得到:
    H=GF H = G F
  4. 对于每一张图,我们都可以得到一个 H H ,最后,平均一下每个 H H ,就得到了我们需要的相关滤波器(频域):
    Hfinal=Ni=0HiN H f i n a l = ∑ i = 0 N H i N
  5. 应用的时候,只需要把 f f 变换到频域 F F ,然后与 H H 相乘,得到的 G G ,反傅里叶变换到空间域,就能得到定位点了:
    G=F×Hfinal G = F × H f i n a l
    g=IDFT(G) g = I D F T ( G )

    一种基于ASEF算法的高速特征点定位算法_第1张图片

三. 代码实现

我实现了该算法的训练和应用过程代码,后续会上传到github,非科班出生,代码很烂,轻喷,也欢迎PR。

你可能感兴趣的:(图像识别,机器学习)