总结SIFT更新版Word下载.docx

上传人:b****6 文档编号:20920609 上传时间:2023-01-26 格式:DOCX 页数:29 大小:4.51MB
下载 相关 举报
总结SIFT更新版Word下载.docx_第1页
第1页 / 共29页
总结SIFT更新版Word下载.docx_第2页
第2页 / 共29页
总结SIFT更新版Word下载.docx_第3页
第3页 / 共29页
总结SIFT更新版Word下载.docx_第4页
第4页 / 共29页
总结SIFT更新版Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

总结SIFT更新版Word下载.docx

《总结SIFT更新版Word下载.docx》由会员分享,可在线阅读,更多相关《总结SIFT更新版Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

总结SIFT更新版Word下载.docx

神经网络

MLData

8多维空间中的聚类和搜索

快速近似最近邻搜索FLANN

聚类

9GPU加速计算机视觉

影像处理

矩阵减少

特征检测和描述

视频分析

10计算摄影学

图像修补

去噪

11图片拼接

拼接管道

相机

特征查找和图像匹配

旋转估计

自动校准

图像扭曲

缝估计

曝光补偿

图片调和

其他

12其他

立体匹配

人脸识别

运动分析

平面细分(CAPI)

OpenCL的加速计算机视觉

AndroidAPI

GNUScientificLibrary

MathematicalFunctions

ComplexNumbers

Polynomials

SpecialFunctions

VectorsandMatrices

Permutations

Combinations

Multisets

Sorting

BLASSupport

LinearAlgebra

Eigensystems

FastFourierTransforms

NumericalIntegration

RandomNumberGeneration

Quasi-RandomSequences

RandomNumberDistributions

Statistics

Histograms

N-tuples

MonteCarloIntegration

SimulatedAnnealing

OrdinaryDifferentialEquations

Interpolation

NumericalDifferentiation

ChebyshevApproximations

SeriesAcceleration

WaveletTransforms

DiscreteHankelTransforms

OnedimensionalRoot-Finding

OnedimensionalMinimization

MultidimensionalRoot-Finding

MultidimensionalMinimization

Least-SquaresFitting

NonlinearLeast-SquaresFitting

BasisSplines

PhysicalConstants

IEEEfloating-pointarithmetic

数学函数

复数

多项式

特殊功能

向量和矩阵

排列

合并

多集

排序

基本线性代数子程序(BLAS)支持

线性代数

快速傅立叶变换

数值积分

随机数生成器

准随机序列

随机分布

统计

N-元组

蒙特卡罗积分

模拟退火算法

常微分方程

插值

数值微分

切比雪夫逼近

系列加速度

小波变换

离散汉克尔变换

一维求根

一维最小化

多维求根

多维最小化

最小二乘法拟合

非线性最小二乘法拟合

基础样条曲线

物理常数

IEEE浮点运算

 

sift.h文件参考

检测SIFT图像功能。

#include“cxcore.h”

算法步骤:

1.建立尺度空间

为了让尺度体现其连续性,在简单降采样的基础上加上了高斯滤波。

一幅图像可以产生几组(octave)图像,一组图像包括几层(interval)图像。

2.寻找极值点

3.去除不稳定的极值点(低对比度)

利用公式

确定精确定位后的极值点的像素值,进行对比度的检测。

若像素值满足大于contr_thr/intvls(程序中为0.04/3),则该点才能最终确定为极值点。

4.去除边界影响点

使用Hessian矩阵去除边界影响点:

如果该点满足则保留,否则被排除

α为最大特征值,β为最小的特征值,在程序中r=10.

5.特征点方向

计算公式:

scl_octv=σ*2.0intvl/intvls,式中:

scl_octv为关键点的尺度,intvl为关键点在高斯差分金字塔中所处于的层数

以关键点为中心,划定一个邻域,利用所有在此区域内的点的梯度形成一个方向直方图。

偏移为rad的正方形区域,rad=四舍五入(3*1.5*scl_octv)

梯度加权系数w的确定:

w=exp(-(i*i+j*j)/exp_denom),每个像素点的梯度值都必须乘以该点所对应的高斯权,这样才能得到最终的梯度值。

根据Lowe的建议,模板采用[0.25,0.5,0.25],并连续加权两次。

生成含有36柱的方向直方图,梯度直方图范围0~360度,其中每10度一个柱。

由半径为图像区域生成

对方向直方图进行两次平滑

求取关键点方向(可能是多个方向)

对方向直方图的Taylor展开式进行二次曲线拟合,精确关键点方向

6.特征点描述

描述子采用4×

8=128维向量表征,综合效果最优(不变性与独特性)。

程序中hist[SIFT_DESCR_WIDTH][SIFT_DESCR_WIDTH][SIFT_DESCR_HIST_BINS]

最终以一维数组保存在feature数据结构

# 

SIFT_INTVLS 

3

每组octave 

的取样间隔 

SIFT_SIGMA 

1.6

默认情况下,初始高斯平滑的标准差sigma 

SIFT_CONTR_THR 

0.04

默认阈值,像素灰度值范围[0,1]。

去除那些对比度较低的不稳定极值点。

SIFT_CURV_THR 

10

关键点的原则曲率比,默认阈值,去除边界点影响点

SIFT_IMG_DBL 

1

双倍图像大小后再金字塔?

SIFT_DESCR_WIDTH 

4

描述符直方图数组的默认宽度 

SIFT_DESCR_HIST_BINS 

8

描述符阵列中每个直方图的默认bin数 

函数文档

intsift_features(IplImage*img,structfeature**feat)

查找图像中SIFT特征。

使用默认参数值,参见以上宏定义。

int_sift_features

IplImage* 

img,

struct 

feature 

** 

feat,

int 

intvls,

double 

sigma,

contr_thr,

curv_thr,

img_dbl,

descr_width,

descr_hist_bins 

参数

IMG

被检测的图像。

返回特征点的数据结构,采用连续存放的数组结构。

Intvls

每组octave的尺度空间采样的间隔数。

sigma

建立octave金字塔时使用的高斯平滑量。

contr_thr

尺度空间过程

的一个评价参数阈值,

是一个向量,确定特征位置和尺度大小。

该阈值用于去掉不稳定的特性点,假定像素值的范围是[0,1]。

curv_thr

去除边界点影响点中的参数。

img_dbl

是否双倍图像大小后再建立尺度空间?

1是,0否。

descr_width

使用

宽度的

阵列计算直方图方向,用于计算特征描述符。

descr_hist_bins

每个阵列中的用于计算的特征的描述符的直方图的方向数。

返回

返回的特征点数据的大小

feature数据结构表示图像中尺度旋转不变性的特征。

a(x-u)(x-u)+2b(x-u)(y-v)+c(y-v)(y-v)=1

#include<

imgfeatures.h>

DataFields

x

x坐标

y

y坐标 

a

仿射特性参数Oxford-type

b

c

scl

Lowe-style特征的大小 

ori

Lowe-style特征的方向

d

描述符号的数目 

descr 

[FEATURE_MAX_D]

描述符号128个

type

特征类型,OXFD或LOWE 

category

多用途特征种类

fwd_match

前一副图片的配对特征 

bck_match

后一副图片的配对特征

mdl_match

模型中的配对特征

CvPoint2D64f 

img_pt

图像中点的位置

mdl_pt

模型中点的位置

void* 

feature_data

自定义数据 

imgfeatures.hFileReference

#include"

cxcore.h"

intimport_features(char*filename,inttype,structfeature**feat)

从文件中读取特征数据

intexport_features(char*filename,structfeature*feat,intn)

导出n个特征数据到文件

voiddraw_features(IplImage*img,structfeature*feat,intn)

在图片上显示特征描述

doubledescr_dist_sq(struct 

f1,struct 

f2 

计算两个描述子的欧式距离。

descr[128]

kdtree.hFileReference

structkd_node*kdtree_build(structfeature*features,intn)

构建kd树。

intkdtree_bbf_knn(structkd_node*kd_root,structfeature*feat,intk,structfeature***nbrs,intmax_nn_chks)

使用BestBinFirst搜索算法最佳(k近邻)匹配的特征向量,返回特征数组。

intkdtree_bbf_spatial_knn(structkd_node*kd_root,structfeature*feat,intk,structfeature***nbrs,intmax_nn_chks,CvRectrect,intmodel)

使用BestBinFirst搜索算法最佳(指定空间范围的k近邻)匹配的特征向量,返回特征数组。

voidkdtree_release(structkd_node*kd_root)

释放kdtree内存空间。

实验表明BBF算法性能很好,因为我们仅考虑Ratio(最近邻距离/次最近邻距离)<

0.49的情形,所以不必花费大量时间在很多相似的距离中寻找最近邻上面。

借助透视变换

补充:

二维齐次坐标变换的矩阵的形式是:

这个矩阵每一个元素都是有特殊含义的。

形进行平移变换;

[g 

h]是对图形作投影变换;

[i]则是对图形整体进行缩放变换。

1)平移变换

2)缩放变换

3)旋转变换

4)对称变换

对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。

例如:

当b=d=0,a=-1,e=1时有x´

=-x,y´

=y,产生与y轴对称的图形。

当b=d=0,a=-1,e=-1时有x´

=x,y´

=-y,产生与x轴对称的图形。

当b=d=0,a=e=-1时有x´

=-y,产生与原点对称的图形。

当b=d=1,a=e=0时有x´

=y,y´

=x,产生与直线y=x对称的图形。

当b=d=-1,a=e=0时有x´

=-y,y´

=-x,产生与直线y=-x对称的图形。

5)错切变换

当d=0时,x´

=x+by,y´

=y,此时,图形的y坐标不变,x坐标随初值 

(x,y)及变换系数b作线性变化。

当b=0时,x´

=dx+y,此时,图形的x坐标不变,y坐标随初值 

(x,y)及变换系数d作线性变化。

6)复合变换

如果图形要做一次以上的几何变换,那么可以将各个变换矩阵综合起来进行一步到位的变换。

复合变换有如下的性质:

复合平移

对同一图形做两次平移相当于将两次的平移两加起来:

复合缩放

两次连续的缩放相当于将缩放操作相乘:

复合旋转

两次连续的旋转相当于将两次的旋转角度相加:

缩放、旋转变换都与参考点有关,上面进行的各种变换都是以原点为参考点的。

如果相对某个一般的参考点(xf,yf)作缩放、旋转变换,相当于将该点移到坐标原点处,然后进行缩放、旋转变换,最后将(xf,yf)点移回原来的位置。

切记复合变换时,先作用的变换矩阵在右端,后作用的变换矩阵在左端。

关于(xf,yf)点的缩放变换

绕(xf,yf)点的旋转变换

RANSAC为RANdomSAmpleConsensus(随机抽样一致)的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。

它于1981年由Fischler和Bolles最先提出。

RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(Outliers,偏离正常范围很远、无法适应数学模型的数据),即数据集中含有噪声。

这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。

同时RANSAC也假设,给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。

RANSAC基本思想描述如下:

①考虑一个最小抽样集的势为n的模型(n为初始化模型参数所需的最小样本数)和一个样本集P,集合P的样本数#(P)>

n,从P中随机抽取包含n个样本的P的子集S初始化模型M;

②余集SC=P\S中与模型M的误差小于某一设定阈值t的样本集以及S构成S*。

S*认为是内点集,它们构成S的一致集(ConsensusSet);

③若#(S*)≥N,认为得到正确的模型参数,并利用集S*(内点inliers)采用最小二乘等方法重新计算新的模型M*;

重新随机抽取新的S,重复以上过程。

④在完成一定的抽样次数后,若未找到一致集则算法失败,否则选取抽样后得到的最大一致集判断内外点,算法结束。

由上可知存在两个可能的算法优化策略。

①如果在选取子集S时可以根据某些已知的样本特性等采用特定的选取方案或有约束的随机选取来代替原来的完全随机选取;

②当通过一致集S*计算出模型M*后,可以将P中所有与模型M*的误差小于t的样本加入S*,然后重新计算M*。

RANSAC算法包括了3个输入的参数:

①判断样本是否满足模型的误差容忍度t。

t可以看作为对内点噪声均方差的假设,对于不同的输入数据需要采用人工干预的方式预设合适的门限,且该参数对RANSAC性能有很大的影响;

②随机抽取样本集S的次数。

该参数直接影响SC中样本参与模型参数的检验次数,从而影响算法的效率,因为大部分随机抽样都受到外点的影响;

③表征得到正确模型时,一致集S*的大小N。

为了确保得到表征数据集P的正确模型,一般要求一致集足够大;

另外,足够多的一致样本使得重新估计的模型参数更精确。

RANSAC算法经常用于计算机视觉中。

例如,在立体视觉领域中同时解决一对相机的匹配点问题及基本矩阵的计算。

使用GPUSIFT可加快处理速度,实验中加速比大约为4。

减少RANSAC样本集合可进一步加快速度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1