Distinctive Image Features from Scale-Invariant Keypoints 论文解读

著名的SIFT local feature提取方法

Scale-space extrema detection

初步筛查出keypoints

$L(x,y,\sigma) = G(x,y,\sigma)*I(x,y)$

其中 $G(x,y,\sigma)=\frac{1}{2\pi\sigma2}e{-(x2+y2)/2\sigma^2}$是高斯函数,$I(x,y)$是输入图片,$*$是卷积

difference-of-Gaussian:

$D(x,y,\sigma)=(G(x,y,k\sigma)-G(x,y,\sigma))*I(x,y)=L(x,y,k\sigma)-L(x,y,\sigma)$

其中k是常数

每个octave中$\sigma$从下到上成等比数列($\sigma$定义如上面的式子),相差k

上面的octave是下面的进行down sampling变成的1/2大小的图片,从而在不同scale提取

然后找DOG中极值

一个点比上下左右这些点都大或都小,就是极值。

Keypoint localization

下一步确定location, scale和ratio of principal,并筛去一些low contrast或poorly localized along an edge的点,找原图上对应的点的位置

$D(x)=D+\frac{\partial D^T}{\partial x}x+\frac 1 2 xT\frac{\partial2D}{\partial x^2}x$ (2)

其中D和它的导数是在sample point的值,$x = (x,y,\sigma)^T$是相对于sample point的offset

令(2)的导数为0,得出极值点:

$\hat x = -\frac{\partial^2D}{\partial x2}\frac{\partial D}{\partial x}$

代入(2)

$D(\hat x)=D+\frac 1 2 \frac{\partial D^T}{\partial x}\hat x$

如果$|D(\hat x)|$小于某个值,说明这个点不明显,要舍去

$H=\begin{bmatrix}D_{xx}&D_{xy}\D_{xy}&D_{yy}\end{bmatrix}$

$D_{xx}$等是二阶偏微分,求H的特征值,如果两个特征值相差太大,说明是poorly localized along an edge,这时要舍去。

设特征值$\alpha$, $\beta$. 设$\alpha=r\beta$, r>1

$\frac{Tr(H)^2}{Det(H)} = \frac{\alpha+\beta}{\alpha\beta}=\frac{(r\beta+\beta)2}{r\beta2}=\frac{(r+1)^2}{r}$

Tr为迹,Det为行列式

所以要r小于某个值$r_0$,只要确认

$\frac{Tr(H)2}{Det(H)}<\frac{(r_0+1)2}{r_0}$

Orientation assignment

确认方向orientation,使用L的gradient的近似,大小为$m(x,y)$, 方向为$\theta(x,y)$

$m(x,y)=\sqrt{(L(x+1,y)-L(x-1,y))2+(L(x,y+1)-L(x,y-1))2}$

$\theta(x,y)=\tan^{-1}((L(x,y+1)-L(x,y-1))/(L(x+1,y)-L(x-1,y)))$

在sample point周围一定大小的区域求这个值,然后把$\theta$画在直方图里,直方图最大值作为这个点方向,如果几个最大值接近,就几个方向都保留

Keypoint descriptor

在keypoint descriptor周围区域计算sample point的gradient magnitude和orientation,用Gaussian window加权,然后计入方向直方图,结果直观如右图所示,其中箭头长度表示那个方向的gradient magnitude求和,也就是说,上图有2x2=4个直方图,每个直方图有8个值,所以一共是4x8=32个值,也就是说descriptor vector有32维(实际最好维4x4x8=128维)

至此就有了local descriptor的location, scale, orientation和descriptor vector,就可以用这些特征来区分图像了!

Distinctive Image Features from Scale-Invariant Keypoints 论文解读的更多相关文章

  1. Distinctive Image Features from Scale-Invariant Keypoints(个人翻译+笔记)-介绍

    Distinctive Image Features from Scale-Invariant Keypoints,这篇论文是图像识别领域SIFT算法最为经典的一篇论文,导师给布置的第一篇任务就是它. ...

  2. Computer Vision_33_SIFT:Distinctive Image Features from Scale-Invariant Keypoints——2004

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  3. Distinctive Image Features from Scale-Invariant

    http://nichol.as/papers/Lowe/Distinctive Image Features from Scale-Invariant.pdf Abstract This paper ...

  4. 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读

    前言 本来想按照惯例来一个overview的,结果看到1篇十分不错而且详细的介绍,因此copy过来,自己在前面大体总结一下论文,细节不做赘述,引用文章讲得很详细,另外这篇paper引用十分详细,如果做 ...

  5. zz扔掉anchor!真正的CenterNet——Objects as Points论文解读

    首发于深度学习那些事 已关注写文章   扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 ​关注他 JustDoIT 等 ...

  6. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  7. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

  8. [论文解读] 阿里DIEN整体代码结构

    [论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...

  9. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  10. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

随机推荐

  1. 给linux串口,增加登录密码

    一.密码更改 1.在linux系统上,输入passwd,输入需要设定的密码,密码文件保存在/etc/passwd里面. 2.把/etc/passwd文件拷贝出来,放到rootfs的etc/目录下,实现 ...

  2. sscms自己从数据库筛选内容

    where条件除了SiteId和ChannelId之外, 还需要加上IsChecked='True',而不是CheckedLevel

  3. 【pyqtgraph】pyqtgraph可移动竖线LineSegmentROI的拖拽事件相关

    情景 Python+PyQt+pyqtgraph读取数据绘图,并在图像上添加了LineSegmentROI带handle的竖线(hanlde是为了RectROI的拖动),现要实现竖线可以直接拖动,并在 ...

  4. Codeforces Round #843 (Div. 2) Problem C

    C. Interesting Sequence time limit per test 1 second memory limit per test 256 megabytes input stand ...

  5. software Engineering homework 4

    博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1068 ...

  6. OO_Lab2总结博客

    OO_Lab2 一.单元内容 本单元内容为规格化设计,即通过参考已经完成的JML描述实现一个社交网络相关功能. 本单元整体来说难度不大,但是却是我最惨的一次作业,所以本博客可能会主要谈一谈测试中的一些 ...

  7. Object.definedProperty和Proxy的对比

    Object.definedProperty和Proxy经常用来实现对象的劫持 Object.definedProperty是vue2.x拦截对象属性变化的方法,再结合订阅-发布者模式和观察者模式实现 ...

  8. 估计人数【最小路径重复点覆盖】【直接在(i,j)建一个新点】

    估计人数 题意 思路 用最少的人,走完这几条线.最小重复路径点覆盖问题 建图之后,跑一下二分图. 考虑建图:图中'1'连着完下.或者右走.我们把图中所有的1编号,然后建图,然后floly,然后匈牙利. ...

  9. 服务器安装node

    卸载步骤[未安装请忽略] 1.卸载npm sudo npm uninstall npm -g 2.卸载node yum remove nodejs npm -y 安装步骤 1.下载 wget http ...

  10. (三).JavaScript的分支结构和循环结构

    1. 分支结构 1.1 分支语句之单分支 ①.语法: if(值,如果不是布尔值会强制转换成布尔值) { 代码块; } ②.案例: // 案例:如果a变量的值加键盘上输入的数大于100,就打印我爱你二狗 ...