介绍

匹配不同图片的特征是计算机视觉常见的问题. 当所有要匹配的图片很相似的时候(大小,方位),简单的角点检测算子就可以匹配,但是,当你的图片大小,方位不同的时候,你就要用到尺度不变特征变换(scale invariant feature transform).

为什么是SIFT?

SIFT算子不仅仅具有尺度不变特性,你可以改变以下的内容,还可以得到很好的结果:

  • scale尺度
  • rotation旋转
  • Illumination亮度
  • Viewpoint视角

下面是一个例子:

我们要查找这些内容:

我们在下面这张图片中查找以上目标

这是结果:

可以看出上面的图片匹配非常鲁棒。大长方形圈出了匹配对象; 小正方形是这些区域内的特征. 注意看大长方形的形状,它和你要匹配的目标在场景图片中的方向和视角是一致的.

SIFT是一个非常复杂的算法. 它涉及到很多处理过程,也很容易让人糊涂. 因此我将整个算法分为以下几个部分, 下面是SIFT算法的主要部分:

  • 构建尺度空间
  • LOG近似
  • 角点匹配
  • 去除低质量角点
  • 给角点加上方位
  • 生成SIFT特征

我可以用SIFT算子做什么?

当你实现了整个算法之后,你就可以得到你图片的SIFT特征. 一旦你有了这些,你可以做任何你想做的:
图片查找,目标检测/识别, 或者你想到的任何东西,这些我们后面会谈到.

但是问题是这个算法是有专利的!

因此,对于学术目的而言,SIFT还是很好的. 如果你在找一些能应用到商业的算法,还是换个方法吧!

这个系列接下来的内容

  • 1. 介绍
  • 2. 尺度空间
  • 3. LOG 近似
  • 4. 角点匹配
  • 5. 去除低分辨率角点
  • 6. 角点的方向
  • 7. 生成特征

原文地址:http://aishack.in/tutorials/sift-scale-invariant-feature-transform-introduction/  作者:Utkarsh Sinha

实现地址:https://github.com/kassol/SIFT/tree/master/src

参考资料:http://www.inf.fu-berlin.de/lehre/SS09/CV/uebungen/uebung09/SIFT.pdf

     http://web.eecs.umich.edu/~silvio/teaching/EECS598/lectures/lecture10_1.pdf

        http://www.cs.ubc.ca/~lowe/papers/iccv99.pdf

     https://stackoverflow.com/questions/19815732/what-is-gradient-orientation-and-gradient-magnitude

【技术翻译】SIFT算子原理及其实现 (一)介绍的更多相关文章

  1. 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...

  2. 2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践 后门的基本概念及基础问题回答 常用后门工具 netcat Win获得Linux Shell Linux获得Win Sh ...

  3. 2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践

    2018-2019-2 20165212<网络对抗技术>Exp2 后门原理与实践 1.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作 ...

  4. 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践

    2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...

  5. 20155204 王昊《网络对抗技术》EXP2 后门原理与实践

    20155204 王昊<网络对抗技术>EXP2 后门原理与实践 一.实验内容 准备工作(试用ncat.socat) 1. 使用netcat获取主机操作Shell,cron启动. 明确目标: ...

  6. 2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践 目录 实验准备 后门概念 常用后门工具 实验内容与步骤 使用netcat获取主机操作Shell,cron启动 使用so ...

  7. SIFT算法原理(3)-确定关键点的主方位,构建关键点描述符

    介绍官网:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html ...

  8. sobel算子原理及opencv源码实现

    sobel算子原理及opencv源码实现 简要描述 sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测. 原理 算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去 ...

  9. 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区

    以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...

随机推荐

  1. nyoj92-图像有用区域【BFS】

    "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.    ...

  2. Rmq Problem mex

    求区间mex.莫队可做. 但如果强制在线,就可以用主席树做. 建立权值线段树,找每个数最后一次出现的位置.查询的时候找第r棵线段树最近出现位置在l之前的最小数即可.update的时候可以update这 ...

  3. 1、Ansible初识简要介绍及安装

    1.Ansible简介 1.1 Ansible介绍 Ansible 是一个简单的自动化运维管理工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...

  4. Problem 8

    Problem 8 # Problem_8.py """ The four adjacent digits in the 1000-digit number that h ...

  5. vue使用SockJS实现webSocket通信

    以前使用websocket都是使用 window.webSocket = new WebSocket('ws://' + config.webSocketUrl + '/webData/websock ...

  6. 警告: The APR based Apache Tomcat Native library failed to load.

    警告: The APR based Apache Tomcat Native library failed to load. The error reported was [C:\apache-tom ...

  7. I - Agri-Net

    I - Agri-Net poj 1258 注意:多组数据输入. #include<cstdio> #include<cstring> #include<iostream ...

  8. Java Pattern Matcher 正则表达式需要转义的字符

    见:http://blog.csdn.net/bbirdsky/article/details/45368709 /** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param ...

  9. Codeforces Round #234 (Div. 2) A. Inna and Choose Options

    A. Inna and Choose Options time limit per test 1 second memory limit per test 256 megabytes input st ...

  10. c++中字符输入函数getline、cin.getline区分

    1.cin>>s; s能够是:string  s.char s[]; 这个是ostream中的函数.遇到' '(空格) , '\n'(换行),就会自己主动结束,因此假设用cin读取字符串, ...