【技术翻译】SIFT算子原理及其实现 (一)介绍
介绍
匹配不同图片的特征是计算机视觉常见的问题. 当所有要匹配的图片很相似的时候(大小,方位),简单的角点检测算子就可以匹配,但是,当你的图片大小,方位不同的时候,你就要用到尺度不变特征变换(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算子原理及其实现 (一)介绍的更多相关文章
- 2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践 实验内容(概要): (1)使用netcat获取主机Shell,cron启动 首先两个电脑(虚拟机)都得有netcat, ...
- 2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践 后门的基本概念及基础问题回答 常用后门工具 netcat Win获得Linux Shell Linux获得Win Sh ...
- 2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165212<网络对抗技术>Exp2 后门原理与实践 1.实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作 ...
- 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践
2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...
- 20155204 王昊《网络对抗技术》EXP2 后门原理与实践
20155204 王昊<网络对抗技术>EXP2 后门原理与实践 一.实验内容 准备工作(试用ncat.socat) 1. 使用netcat获取主机操作Shell,cron启动. 明确目标: ...
- 2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践 目录 实验准备 后门概念 常用后门工具 实验内容与步骤 使用netcat获取主机操作Shell,cron启动 使用so ...
- SIFT算法原理(3)-确定关键点的主方位,构建关键点描述符
介绍官网:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html ...
- sobel算子原理及opencv源码实现
sobel算子原理及opencv源码实现 简要描述 sobel算子主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测. 原理 算子使用两个33的矩阵(图1)算子使用两个33的矩阵(图1)去 ...
- 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区
以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...
随机推荐
- Python半双工聊天
半双工聊天 半双工聊天.创建一个简单的半双工聊天程序.指定半双工,我们的意思就是,当建立一个连接且服务开始后,只有一个人能打字,而另一个参与者在得到输入消息提示之前必须等待消息.并且,一旦发送者发送了 ...
- 企业级工作流解决方案(十三)--集成Abp和ng-alain--数据库读写分离
说到程序里面数据库管理,无非就是两件事情,一是数据库操作,对于数据库的操作,各种程序语言都有封装,也就是所谓的ORM框架,.net 方向一般用得比较多和就是.net framework和dapper, ...
- C# 日期格式
# DateTime日期格式化 在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1 ...
- POJ 1811
使用Pollard_rho算法就可以过了 #include <iostream> #include <cstdio> #include <algorithm> #i ...
- Hibernate单向关联N-N
单向N-N关联必须使用连接表. Company实体: package com.ydoing.hibernate5; import java.util.HashSet; import java.util ...
- linux下jenkins安装
在安装jenkins之前.首先确认jdk和tomcat,maven已经配置好 详细配置方法,请看的我博客. jdk:jdk的安装与配置 tomcat:tomcat的安装与配置 maven:maven的 ...
- java 微信server录音下载到自己server
/** * @author why * */ public class VoiceDownload { /** * * 依据文件id下载文件 * * * * @param mediaId * * 媒体 ...
- [UVALive 6661 Equal Sum Sets] (dfs 或 dp)
题意: 求从不超过 N 的正整数其中选取 K 个不同的数字,组成和为 S 的方法数. 1 <= N <= 20 1 <= K<= 10 1 <= S <= 15 ...
- Codeforces 456B Fedya and Maths 打表找规律
Description Fedya studies in a gymnasium. Fedya's maths hometask is to calculate the following expre ...
- zzulioj--1638--Happy Thanksgiving Day - Say 3Q I(水题)
1638: Happy Thanksgiving Day - Say 3Q I Time Limit: 1 Sec Memory Limit: 128 MB Submit: 91 Solved: ...