图像特征Dense Scale Invariant Feature Transform (DSIFT)

Table of Contents

Overview
Usage
Technical detailsDense descriptors
Sampling

Author:
Andrea Vedaldi
Brian Fulkerson

dsift.h implements a dense version of SIFT. This is an object that can quickly compute descriptors for densely sampled keypoints with identical size and orientation. It can be reused for multiple images of the same size.
Overview
See also
The SIFT module, Technical details

This module implements a fast algorithm for the calculation of a large number of SIFT descriptors of densely sampled features of the same scale and orientation. See the SIFT module for an overview of SIFT.
The feature frames (keypoints) are indirectly specified by the sampling steps (vl_dsift_set_steps) and the sampling bounds (vl_dsift_set_bounds). The descriptor geometry (number and size of the spatial bins and number of orientation bins) can be customized (vl_dsift_set_geometry, VlDsiftDescriptorGeometry).

dsift-geom.png
Dense SIFT descriptor geometry

By default, SIFT uses a Gaussian windowing function that discounts contributions of gradients further away from the descriptor centers. This function can be changed to a flat window by invoking vl_dsift_set_flat_window. In this case, gradients are accumulated using only bilinear interpolation, but instad of being reweighted by a Gassuain window, they are all weighted equally. However, after gradients have been accumulated into a spatial bin, the whole bin is reweighted by the average of the Gaussian window over the spatial support of that bin. This “approximation” substantially improves speed with little or no loss of performance in applications.
Keypoints are sampled in such a way that the centers of the spatial bins are at integer coordinates within the image boundaries. For instance, the top-left bin of the top-left descriptor is centered on the pixel (0,0). The bin immediately to the right at (binSizeX
,0), where binSizeX
is a paramtere in the VlDsiftDescriptorGeometry structure. vl_dsift_set_bounds can be used to further restrict sampling to the keypoints in an image.
Usage
DSIFT is implemented by a VlDsiftFilter object that can be used to process a sequence of images of a given geometry. To use the DSIFT filter:
Initialize a new DSIFT filter object by vl_dsift_new (or the simplified vl_dsift_new_basic). Customize the descriptor parameters byvl_dsift_set_steps, vl_dsift_set_geometry, etc.
Process an image by vl_dsift_process.
Retrieve the number of keypoints (vl_dsift_get_keypoint_num), the keypoints (vl_dsift_get_keypoints), and their descriptors (vl_dsift_get_descriptors).
Optionally repeat for more images.
Delete the DSIFT filter by vl_dsift_delete.

Technical details
This section extends the SIFT descriptor section and specialzies it to the case of dense keypoints.
Dense descriptors
When computing descriptors for many keypoints differing only by their position (and with null rotation), further simplifications are possible. In this case, in fact,
xh(t,i,j)==mσx+T,mσ∫gσwin(x−T)wang(∠J(x)−θt)w(x−Txmσ−xi)w(y−Tymσ−y^j)|J(x)|dx.

Since many different values of T are sampled, this is conveniently expressed as a separable convolution. First, we translate by xij=mσ(x^i, y^i)⊤
and we use the symmetry of the various binning and windowing functions to write
h(t,i,j)T′==mσ∫gσwin(T′−x−xij)wang(∠J(x)−θt)w(T′x−xmσ)w(T′y−ymσ)|J(x)|dx,T+mσ[xiyj].

Then we define kernels
ki(x)kj(y)==12π−−√σwinexp(−12(x−xi)2σ2win)w(xmσ),12π−−√σwinexp(−12(y−yj)2σ2win)w(ymσ),

and obtain
h(t,i,j)J¯t(x)==(kikj∗J¯t)(T+mσ[xiyj]),wang(∠J(x)−θt)|J(x)|.

Furthermore, if we use a flat rather than Gaussian windowing function, the kernels do not depend on the bin, and we have
k(z)h(t,i,j)==1σwinw(zmσ),(k(x)k(y)∗J¯t)(T+mσ[xiyj]),

(here σwin
is the side of the flat window).
Note
In this case the binning functions k(z)
are triangular and the convolution can be computed in time independent on the filter (i.e. descriptor bin) support size by integral signals.

Sampling
To avoid resampling and dealing with special boundary conditions, we impose some mild restrictions on the geometry of the descriptors that can be computed. In particular, we impose that the bin centers T+mσ(xi, yj)
are always at integer coordinates within the image boundaries. This eliminates the need for costly interpolation. This condition amounts to (expressed in terms of the x coordinate, and equally applicable to y)
{0,…,W−1}∋Tx+mσxi=Tx+mσi−Nx−12=T¯x+mσi,i=0,…,Nx−1.

Notice that for this condition to be satisfied, the descriptor center Tx
needs to be either fractional or integer depending on Nx
being even or odd. To eliminate this complication, it is simpler to use as a reference not the descriptor center T, but the coordinates of the upper-left bin T¯
. Thus we sample the latter on a regular (integer) grid
[00]≤T¯=[T¯minx+pΔxT¯miny+qΔy]≤[W−1−mσNxH−1−mσNy],T¯=⎡⎣Tx−Nx−12Ty−Ny−12⎤⎦

and we impose that the bin size mσ
is integer as well.
from VLFeat.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,475评论 0 23
  • 文/小思凡 北京丰台家, 8:35——10:12 『百问导师』 1.怎么刚刚就上了一张图,感觉内心的感觉变了?这里...
    任思凡阅读 335评论 0 0
  • 01 之所以选择步入婚姻,定是做好了要与对方相守到老的准备。 婚姻和爱情不同,前者是后者的感情升华,却也是后者的精...
    丑妹阅读 1,115评论 3 20
  • 今天没讲新的内容,老师布置了任务,我们把之前所讲的内容进行练习 1.用key1键控制LED灯的开关,每按一次亮一种...
    我叫赵健阅读 197评论 0 0
  • 一、可迭代对象和迭代器 1.迭代的概念 上一次输出的结果为下一次输入的初始值,重复的过程称为迭代,每次重复即一次迭...
    chen_000阅读 328评论 0 1