Distinctive Image Features from Scale-Invariant Keypoints 论文解读
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 论文解读的更多相关文章
- Distinctive Image Features from Scale-Invariant Keypoints(个人翻译+笔记)-介绍
Distinctive Image Features from Scale-Invariant Keypoints,这篇论文是图像识别领域SIFT算法最为经典的一篇论文,导师给布置的第一篇任务就是它. ...
- Computer Vision_33_SIFT:Distinctive Image Features from Scale-Invariant Keypoints——2004
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- Distinctive Image Features from Scale-Invariant
http://nichol.as/papers/Lowe/Distinctive Image Features from Scale-Invariant.pdf Abstract This paper ...
- 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读
前言 本来想按照惯例来一个overview的,结果看到1篇十分不错而且详细的介绍,因此copy过来,自己在前面大体总结一下论文,细节不做赘述,引用文章讲得很详细,另外这篇paper引用十分详细,如果做 ...
- zz扔掉anchor!真正的CenterNet——Objects as Points论文解读
首发于深度学习那些事 已关注写文章 扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 关注他 JustDoIT 等 ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- AAAI2019 | 基于区域分解集成的目标检测 论文解读
Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...
- [论文解读] 阿里DIEN整体代码结构
[论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...
- 点云配准的端到端深度神经网络:ICCV2019论文解读
点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(下)
自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...
随机推荐
- django rest 自定义返回数据接口和异常处理
参考 Django rest framework自定义返回数据格式 一.简介 drf 默认返回的异常格式是这样的 1 { 2 "username": [ 3 "该字段是必 ...
- Core_DataCollect BacNet说明
/* * BACnet_AI 0 模拟输入.定义一个标准对象,其属性表示模拟输入的外部可见特征. BACnet_AO 1 模拟输出.定义一个标准对象,其属性表示模拟输出的外部可见特征. BACnet_ ...
- re相关正则表达式(re.sub、re.I 、re.S、re.M)
re.I 表示忽略大小写 re.S 表示全文匹配 re.M 表示全文拼配行尾段位的字符或者数字,影响^和$ re.sub 表示替换 使用方法: re.sub(pattern, repl, string ...
- 3-1 熟悉Hadoop及其操作
Hadoop最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取.索引.查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题--如何解决数十亿网页的存储和索引 ...
- js计算某一天是本月的第几周
需要实现一个小需求,计算2月24号是2月的第几周: 废话不多说,直接上代码: /** * a = d = 当前日期 * b = 6 - w = 当前周的还有几天过完(不算今天) * a + b 的和在 ...
- 8css 盒子模型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CentOS 7(Linux)安装docker,执行yum install docker-io -y报错
CentOS 7(Linux)安装Docker,执行yum install docker-io -y报错 一.执行yum install docker-io -y报错 Error: docker-ce ...
- 【原创】SeetaFace2 Android编译
SeetaFace2 github上有很完整的编译说明,但是自己编译过程中还是遇到了一点小问题.记录一下 编译环境: wsl ubuntu 20.04 执行编译命令 cmake .. -DCMAKE_ ...
- 双调排序--GPU/AIPU适合的排序【转载】
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 双调排序是data-indepen ...
- linux 部署轻量级堡垒机Next Terminal
对比 类似的开源堡垒机有 Teleport,Jumpserver,Next Terminal等等. Teleport 安全性最好,较轻量,但是对被管理资产不透明,纳管前需要双向认证,在资产设备上需额外 ...