PCA-SIFT GLOH

news/2024/7/17 4:14:28 标签: 扩展, 存储

 

SIFT 后来有两种扩展,都用到PCA的概念。

1 PCA-SIFT

   PCA-SIFT与标准SIFT有相同的亚像素位置(sub-pixel ),尺度(scale)和主方向(dominant orientations),但在第4步计算描述子的时候,它用特征点周围的41×41的像斑计算它的主元,并用PCA-SIFT将原来的2×39×39 维的向量降成20维,以达到更精确的表示方式。

▲创建PCA-SIFT描述子的步骤:

     1) 计算或者载入投影矩阵

      2)检测关键点

      3) 通过与投影矩阵相乘投影关键点周围的像斑

▲     PCA-SIFT 投影矩阵的产生

△      选择一系列有代表性的图像并且检测这些图像的所有关键点

△     对每一个关键点:

1〉   在它的周围选择一个大小为41×41象素的像斑

2〉  计算垂直和水平的梯度,形成一个大小为39×39×2=3042的矢量

3〉  将这些矢量放入一个k×3042大小的矩阵A,k是所检测的关键点数目。

4〉  计算矩阵A的协方差: A=A-mean A   cov A =AT A

5〉  计算cov A 的特征值和特征矢量

6〉  选择前n个特征向量,投影矩阵是一个由这些特征向量组成的n×3042的矩阵

7〉  n可以是一个根据经验设置的固定值,也可以基于特征值动态选择。

8〉  投影矩阵只计算一次,并且存储

▲     建立描述子

△     输入: 在尺度空间关键点的位置和方向

△     在关键点周围提取一个41×41的像斑于给定的尺度,旋转到它的主方向

△     计算39×39水平和垂直的梯度,形成一个大小为3042的矢量

△     用预先计算好的投影矩阵n×3042与此矢量相乘

△     这样生成一个大小为n的PCA-SIFT描述子

▲SIFT和PCA-SIFT的比较

△ SIFT:

    维数:128

缺点:维数高、不完全的仿射不变

优点:需要较少的经验主义知识,易于开发

△     PCA-SIFT:

维数:可变,推荐20或者更少

缺点:不完全的仿射不变;投影矩阵需要一系列有代表性的图像;这个矩阵只对这类图像起作用

优点:保留不变性的同时低维,大大减少了计算时间

GLOH (Gradient location-orientation histogram)

     把原来SIFT中4×4棋盘格的location bins 改成仿射状的同心圆的17 location bins 来表示,并计算其中的梯度方向直方图(梯度方向分为16种),因此共16×17=272维,之后再作PCA将其降成128维,因此保有跟SIFT一样精简 的表示方法。

http://www.niftyadmin.cn/n/1310431.html

相关文章

art-template 模版引擎

模版引擎是第三方模块 可以让开发着以更友好的方式拼接字符串,使项目代码更加清晰,更加易于维护。 art-template 模版引擎 使用命令行工具 输入 npm i art-template 进行安装使用const template require(art-template) 引入模版引擎 告诉模版引擎要拼接…

房贷计算器——新增选择还款方式

房贷计算器——新增选择还款方式 #!/usr/bin/env python # coding: utf-8# In[4]: 文字‘房贷计算器’ 文字‘贷款总金额’:输入框 文字‘贷款期限’:输入框 文字‘年利率’:输入框 按钮‘开始计算’ 返回: 月供 总利息 from tki…

去除jquery.min.map 404错误信息

调试中出现了 jquery.min.map 404 (Not Found) 的js错误信息; 那么jquery.min.map到底是个什么呢? JQuery 官方解释 从 jQuery 1.9.0 版本后在原始代码里会有 sourceMappingURLjquery.min.map 什么是Source map 简单说,Source map就是一个信息…

【解题报告】饭卡(dp)

解题报告——饭卡 问题描述   Time Limit: 1000msMemory Limit: 32768KB64-bit integer IO format: %I64d Java class name: Main电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等…

从哈佛管理世界中看到这样一篇小文

一:沉稳 (1)不要随便显露你的情绪。 (2)不要逢人就诉说你的困难和遭遇。 (3)在征询别人的意见之前,自己先思考,但不要先讲。 (4&#xf…

C++生成GUID

#include <objbase.h>#include <stdio.h>//--生成GUIDconst char* newGUID(){static char buf[64] {0};GUID guid;if (S_OK ::CoCreateGuid(&guid)){_snprintf(buf, sizeof(buf), "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}", guid.Dat…

将一组行转为列的问题

数据库中表的设计往往与用户需要看到的结果存在差异&#xff0c; 用户为了对比分析数据往往需要将不同的行信息放在同一行的不同列进行比较&#xff08;该比较较为直观&#xff09;&#xff0c;所以就遇到了将将一组行转为列的问题。 1.物理表 create table ISSUESALESORDER ( …

使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据

一、 使用RSA证书加、解密敏感数据 X.509证书标准支持三种不对称加密算法&#xff1a;RSA, DSA, Diffie-Hellman algorithms。最常用的是RSA算法。所以本文就以前面章节使用makecert工具生成的生成的MyTestCert证书进行加密解密&#xff0c;这个证书具有RSA算法1024位的密钥对…