SIFT算法

  • 一,关键点定位
    • DoG(Difference of Gaussian,高斯差分图)的构造
    • 选取极值点(关键点)
  • 二,关键点方向确定
  • 三,描述子的生成

一,关键点定位

直观上来说,关键点的定位是SIFT算法的核心部分,正是因为这一步的存在,才有了后面的操作。注意,这里只讲算法的大致流程。

DoG(Difference of Gaussian,高斯差分图)的构造

对同一张图片,选取不同的高斯核(也就是标准差不同),就产生了一个图像簇,使用这些图像簇互相做减法,就得到了DoG。再对原图进行下采样,重复上面的操作,就得到了多尺度DoG。多尺度的目的是为了模拟人眼远近看到的图片大小不同。通过这种方法达到了尺度不变性

就如上图一样,图片来自这里。具体的细节,也可以参考这篇文章,写得真的很好。

选取极值点(关键点)

选取极值点是在DoG图片中选取的,具体的做法就是和周围的像素相比较,选择一个最大的数来代替现在位置的数。


就比如上面的那张图片一样,中间的像素要和周围的333-1 = 26个像素相比较。

二,关键点方向确定

关键点确定之后,以关键点坐标(在原图上的坐标)为圆心,做一个圆,把圆内所有的梯度方向叠加到8个方向上面,然后选取最大值,作为关键点主方向。通过这种方法,达到了方向不变性。
确定了主方向,后面的操作就会围绕这个主方向来进行。

三,描述子的生成

将坐标轴和主方向的方向对齐。如下图:

然后就是选择一个大小合适的方框,把方框分为4×4个小格,每个小格都有8个主方向,同理,也是计算每个小格的梯度方向,然后加到8个方向里面(如果方向不同,就取方向最相近的一个方向。)然后最后得到的就是4×4×8大小的向量,这个向量就是SIFT描述子。
这里是参考网址。

(后面有时间了再写如何匹配)

SIFT算法流程介绍相关推荐

  1. Industry AI Live | 行为动作定位的算法流程介绍与分享

    「Industry AI Live」是 biendata 与人工智能媒体 PaperWeekly 共同发起的学术直播栏目,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一 ...

  2. Zbar算法流程介绍

    算法介绍: zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部分种类的一维码(条形码),比如I25,CODE39,CODE128,不过大家更关心的应该是现在很火的QR码的解码效率,随着 ...

  3. Apollo Planning决策规划算法代码详细解析 (5):规划算法流程介绍

    之前的章节介绍了planning模块的整体框架,经过scenario与stage的选择,便进入了具体的task任务,由一系列配置好的task组成了具体的规划算法,本章以apollo中的PublicRo ...

  4. 推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统相关算法流程、衡量指标和应用,以及如何使用jieba分词库进行相似推荐,业界广告推荐技术最新进展

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  5. 图像拼接(一)——SIFT算法新手入门级介绍!!!

    前言 因为博主毕设和图像拼接有关,所以博主简单地学习了SIFT算法,不知道以后研究生会不会接触图像这块,顺便也为了检验一下自己学的是否透彻,所以在CSDN上写一篇Blog,纪录一下,仅供各位小伙伴参考 ...

  6. HMAC算法及计算流程介绍

    HMAC算法及计算流程介绍 1.HMAC算法的应用: 目前HMAC算法主要应用在服务器对访问者进行鉴权认证流程中. 2.HMAC算法简介: HMAC是密钥相关的哈希运算消息认证码(Hash-based ...

  7. 【AI面试题】Kmeams算法流程以及Kmeans++介绍

    1. Kmeans算法流程 随机初始化K个中心点: 计算所有样本分别到K个中心点的距离: 比较每个样本到K个中心点的距离(这里的距离也可以使用欧氏距离),并将样本分类到距离最近的中心点所在的类别中: ...

  8. CS131-专题7:图像特征(SIFT算法)

    速记要点: SIFT是什么:全称Scale Invariant Feature Transform尺度不变特征转换,2004年的论文.可以检测出图像中的局部特征点. SIFT算法特点: 稳定性:SIF ...

  9. 教你一步一步用C语言实现sift算法、上

    原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言:     在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...

  10. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上

    教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...

最新文章

  1. Meta标签中的format-detection属性及含义
  2. 人会成为虚拟现实中的“机器人代码”吗?
  3. 字节Java高工面试:java软件开发工程师的市场薪资
  4. 搭建hypervisor类型为VMWare的cloudstack环境
  5. jvm学习笔记(二)
  6. python进阶指南_Python特性工程动手指南
  7. 第四十一期:一道经典的MySQL面试题,答案出现三次反转
  8. 书摘:35岁之前成功的12条黄金法则
  9. Struts2 - Action 基础用法
  10. YouTube怎么判断影片内含侵权内容? 解析Content ID内容识别系统的原理及功能
  11. (3)<meta>标签
  12. vr的延迟和渲染效率优化与Nvidia VRWorks
  13. 1.8. subshell
  14. BigDecimal 工具类
  15. 【BIEE】14_开发流程介绍
  16. webstorm 自定义项目模板
  17. 恶意软件清理助手 v2.50 Build 005
  18. Java——》获取map中最小key,最小value
  19. Java的三大特性之封装、继承、多态-----最简理解
  20. 明日之后各个服务器的信息,明日之后不同区可以一起玩吗_不同服务器互通吗...

热门文章

  1. Java课设——文本编辑器
  2. protues打不开问题
  3. 饭店计算机软件系统FIDlLIL,【万迅千里马餐饮管理系统_饭店餐厅管理软件】免费试用_餐饮软件_选软件网...
  4. 揭秘鲜为人知的酒店管理“黑洞”
  5. spotify电脑下载歌曲_Spotify Music Converter mac版下载
  6. 机器学习之旅:支持向量机通俗导论(理解SVM的三层境界)
  7. 2017计算机办公自动化试题,2017办公自动化考试试题
  8. 【Unity3D日常开发】Unity3D中数字网格类游戏Demo实现
  9. 最简短的加入收藏代码
  10. 猜姓氏c语言题目,猜姓氏的谜语及答案