在OpenCV中训练SIFTfunction

我创建了一个小型SIFT应用程序,它抓取关键点并将其保存到文本文件中。 我使用它来从徽标(例如AT&T)获取信息,并使用它来与具有该徽标的其他图像进行比较。 问题是我的许多图像都有徽标的变化,由于缩放,旋转或照明,它不会捡起它。 我想知道是否有可能获得一组图像,抓住它的关键点,并通过某种训练算法运行它来增强检测。

我在网上搜索了培训SIFT关键点的方法,但它们都在某种博士论文中,这些论文都涉及到所有这些数学算法,老实说,因为我没有参加任何数学课程。

如果有人有任何建议或链接,以便能够了解培训的工作原理或需要做些什么来实施,请告诉我。 或者,如果有人在没有SIFT的情况下有更简单的方法,那么我会非常感谢其他forms的检测。 以下列出了我尝试过的内容:

  • 冲浪
    • 因为返回无效结果而失败
  • Haar特征与Adaboosting
    • 因为我在2011年7月11日开始训练100张带有100张负片的正面模型而失败,并且截至2011年7月19日仍在运行
  • 模板与具有和不具有阈值的相同徽标的各种变换匹配
    • 失败,因为我必须根据它无法在图像中检测任何内容的次数指数地创建徽标

提前致谢

一个简单的起点是收集几个AT&T徽标的SIFT / SURF描述符,并在它们上使用FLANN 。 然后,拍摄测试图像,计算描述符并进行范围搜索并确定最近邻距离等,并尝试找出“接近度”的度量。

您可以使用PCA来减少维数,然后您可以在从徽标中提取的矢量要素集上训练某种分类器,如SVM。 你也可以使用BoW(包字或function)。 你也可以谷歌上的“标识识别”很多材料可用。