VLFeat翻译,毕设内容,初次尝试,欢迎指正啊~~

VLFeat教程
局部特征帧
本篇介绍在VLFeat中频繁使用的局部特征帧的概念。特征帧又称帧,是用来表示图像特征的位置或形状的几何图形,包括点、圆或椭圆等。帧的类型在某些类别的平面变换下封闭(例如圆在相似变换下封闭),可在相应的协变特征检测器中使用。

帧的类型
VLFeat使用以下五种类型的帧:
1. 通过中心(x,y)定义的点;
2. 通过中心(x,y)和半径σ定义的圆;
3. 通过中心T=(x,y)和一个半定矩阵 Σ 定义的椭圆,所述椭圆由属于集合{x∈R2:(x−T)⊤Σ−1(x−T)=1}的点 构成;
4. 通过中心(x,y)、半径σ和旋转度θ定义的定向圆;
5. 通过仿射变换 (A,T)定义的定向椭圆, 其中A∈R2×2是线性部分, T∈R2 是变换;
每种类型的帧可以被2,3,4,5或6个数字分别代表,使用 vl_plotframe中详述的协议打包成一个向量帧。

作为几何帧的特征帧
一帧的作用是双重的。首先,它指定了一个局部的图像区域。其次也更更重要的是,它指定了一个图像变换。一帧的实例其实也可以看作是一个规范或标准帧的变体。
例如,一个点(x , y)的可以看作是规范点帧的变体,规范点帧即为原点( 0,0 )。同样,中心为(x ,y),半径为σ的一个圆可以看作是规范圆帧的变体,规范圆帧即为中心在原点的单位圆。
一般来说,不同类型的帧在不同类别的二维变换下封闭。例如,点在所有的变换下都封闭,然而圆盘在刚体运动、相似性等变换下封闭,但在一般的仿射变换中不封闭。在一类可兼容的变换中,如果一帧只能通过标准帧的唯一一种变换获得,那么它就是唯一的。举例来说,一个点(x ,y)的可以由(0,0)通过唯一的变换T =( X,Y)获得的。同样地,一个圆可以由标准圆经过唯一的变换和重新缩放得到。然而,无论是一个点或是一个圆都足以完全指定一个相似变换(例如,一个圆的旋转度未确定) 。
由于帧指定图像域的变换,即坐标的变化,因此它们是几何参考帧的代表。特别是,从标准帧到由局部特征检测子检测的帧的映射通常消除了局部图像外观的规范化,这是特征不变描述子在计算中的关键过程。

定向帧
虽然非定向帧(点、圆和椭圆)很容易理解,但他们的定向变形则需要加以解释。直观上,一个定向圆(椭圆)是一个由半径指明其方向的圆(椭圆),如下图所示:

标准定向帧:半径指向下,圆心位于原点的单位圆。这个帧可以看成是没有进过变换和旋转且具有单位半径的定向圆盘,编码为4维向量[0;0;1;0];或者,也可以看成是经过仿射变换 (I,0) 的定向椭圆,编码为6维向量[0;0;1;0;0;1]。图像由vl_demo_frame生成。
图像是通过 vl_plotframe函数生成:
A = eye(2) ;
T = [0;0] ;
f = [T ; A(:)] ;
vl_plotframe(f) ;
这种特定的定向帧通常被认为是标准的,如上面的代码段所示,它对应特定的仿射变换。因为椭圆也是一个圆,该帧可以等效地由一个具有单位半径且没有旋转的定向圆表示。
radius = 1 ;
theta = 0 ;
f = [T ; radius ; theta] ;
vl_plotframe(f)
帧旋转的正向是顺时针方向,因为图像使用的是左手坐标系(Y轴的正方向朝下):

旋转45度后的帧,注意旋转是顺时针的,这是因为图像使用了左手系(Y轴的正方向朝下)。图像通过 vl_demo_frame生成
radius = 1 ;
theta = pi/4 ;
f = [T ; radius ; theta] ;
vl_plotframe(f) ;
如上所示,帧经常用于指定图像的变换。特别是,定向椭圆和定向圆可以通过上面所示的标准定向圆经过独特的仿射变换获得(所不同的是,定向椭圆封闭于所有的仿射变换,而定向圆并不是封闭于所有的仿射变换)。
对于定向椭圆,仿射变换(A,T)在用数值表示它的帧向量中是明确编码的。如以下代码所示
f = [T ; A(:)] ;
vl_plotframe(f) ;
生成图像

定向椭圆指定为如上所示的标准定向帧的仿射变换 (A,T)。图像由 vl_demo_frame生成。
需要注意的是,当特征用检测子,例如 vl_covdet 或 vl_sift提取时均进行了归一化,这是通过应用仿射变换完成的,其中的仿射变换是由特征帧指定的一个的逆变换;以这种方式,帧实际上变换成了它的标准式。
类似的,非定向帧可以看成是标准非定向帧(位于原点的单位圆)的仿射变换。但是,在这种情况下,仿射变换 (A,T) 仅由旋转(AR,T)决定。>当歧义存在而且需要选中一个仿射变换(A,T)时,通常会选择R使得图像的Y轴映射到其自身(见下)。
帧类型之间的转化
函数 vl_frame2oell可以将任意一种帧类型转换成定向椭圆。
由于所有的定向帧都是定向椭圆的特例,对于定向圆和定向椭圆来说,它们之间的变换是毫无意义的。另一方面,将非定向帧变为定向帧需要指定(任意)一个方向给它们。 当在转换过程中需要指定一个任意方向时,默认仿射变换(A,T)是向上的。这也就意味着A将Y轴映射到它自身。

通过将定向帧的方向去除然后由vl_frame2oell重新生成定向椭圆的过程可以更好的理解这一过程:在这个过程中,方向信息丢失,取而代之的是默认方向。

第一行:随机采样的定向椭圆。第二行:与第一行相同的椭圆但是将方向移除了。第三行:由vl_frame2oell重新生成的定向椭圆;注意方向是Y轴正向。图像由vl_demo_frame生成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值