接上一篇文章。这篇写特征描述符。特征匹配算法在确定角点后,还需要使用描述符来描述这些角点。

本文参考书籍:Computer Vision: Algorithms and Applications, Richard Szeliski

参考文献

[1] Multi-Image Matching using Multi-Scale Oriented Patches

[2] Distinctive Image Features from Scale-Invariant Keypoints

[3] Modeling the Shape of the Scene: A Holistic Representation of the Spatial Envelope

[4] Histograms of Oriented Gradients for Human Detection

[5] SURF: Speeded Up Robust Features

特征描述符

确定了角点之后,需要设计特征描述符。通常来讲一个描述符描述了该角点在一定区域内的特性。与检测特征点的算法类似,一个优秀的特征描述符同样需要独特性(可区分)以及各种图形变换的不变性。

传送门:图形变换与特征不变性

模板

最容易想到的方式就是采用光强直接编码,这一类通常称作模板类(Template)。

将m*n窗口内的灰度值编码成一维向量。

然而这种描述符对灰度的绝对值非常敏感,光强发生变化后,效果不好。

采用梯度编码,克服了光强绝对值变化。但是无法保证旋转,尺度的不变性。

类似的还有在立体视觉里使用的census变换。

传送门:立体匹配代价计算

直方图

采用直方图也可以描述特征点的特征。

显然,颜色直方图有旋转不变性和尺度不变性。然而,单一的直方图在显著性(独特性)方面不是很好。采用空间直方图(spatial histograms)能够提升这种独特性。

然而,采用了多窗口,势必影响到了旋转和尺度不变性。

在讨论更好的算法之前,先列一下上一步特征点检测算法的输出

  • 特征点的坐标P(x, y, s)
  • 特征点的梯度方向θ 由 确定。
  • 特征点的尺度(x, y, s)

以下对几个常用的特征描述符做简单说明。

MOPS(Multiscale Oriented Patches descriptor)

[1]提出了多尺度带方向的块描述符。

MOPS算法过程

  • 根据尺度和角度,选取40*40的窗口。
  • 缩小到原窗口的1/5。
  • 旋转至水平。
  • 采样这个8*8的窗口。
  • 正则化窗口灰度。(减掉均值,除以标准差)

GIST

[3]提出了GIST描述符。

  • 计算Gabor滤波器的响应函数
  • 将图像窗口分成4*4个cell
  • 对每一个cell, 计算滤波器响应的均值
  • GIST描述符大小为4*4*N,N就是filter bank的大小
  • GIST在本质上编码了梯度的空间分布。

HOG(Histograms of Oriented Gradients)

[4]提出了HOG描述符。HOG描述符广泛使用于行人检测。

  • 将窗口划分成若干8*8的Cell。
  • 对每一个cell计算方向梯度直方图。直方图横坐标为梯度方向,纵坐标为梯度值。
  • 每四个Cell构成一个Block。形成描述符。

SIFT(Scale Invariant Feature Transfrom)

[2]SIFT给出了一种尺度无关的特征变换。整个算法包含了特征点检测,特征描述符和匹配。这里只简单说一下特征描述符,关于更详细的描述请参考我的另一篇文章。

传送门: SIFT算法详解

  • 在角点附近选取16*16窗口
  • 根据角点探测得到的梯度方向θ做旋转,并按照尺度s规范化尺度。
  • 在4*4的Cell下生成直方图,直方图的横坐标为8个方向,纵坐标为梯度的幅度值。

SURF(Speeded Up Robust Features)

[5]提出了SURF描述符。

  • 在PATCH中,计算每一个像素的Haar特征。本质上计算了该PATCH的积分图。
  • 每一个Cell由4个值构成。
  • 4*4个Cell,总共16*4 = 64维。

计算机视觉大型攻略 —— 特征与匹配(3)特征描述符相关推荐

  1. 计算机视觉大型攻略 —— 视觉里程计(1) 综述

    参考文献: [1] Visual Odometry Part I: The First 30 Years and Fundamentals,  Friedrich Fraundorfer and Da ...

  2. 计算机视觉大型攻略 —— SLAM(2) Graph-based SLAM(基于图优化的算法)

    前面介绍了基于EKF的SLAM算法.EKF算法由于状态向量,协方差矩阵的大小随着特征点(路标)的增长而迅速增长,导致其不太适合大场景的应用.本文描述基于图优化的SLAM算法.目前由于SLAM图的稀疏性 ...

  3. 计算机视觉大型攻略 —— CUDA(2)执行模型

    Professional CUDA C Programming[1]是一本不错的入门书籍,虽说命名为"Professional",但实际上非常适合入门阅读.他几乎涵盖了所有理论部分 ...

  4. opencv计算机视觉编程攻略 第2版,OpenCV计算机视觉编程攻略(第2版)pdf

    摘要 1. 50多个知识点的案例解读,全面掌握基础知识与进阶内容 2. 学习OpenCV重要的图像操作类和函数 3. 初学者和从业者即查即用的工具书 4. 掌握计算机视觉与图像处理的基础知识与概念 O ...

  5. 定向光流直方图是什么_OpenCV计算机视觉编程攻略(第3版)

    OpenCV计算机视觉编程攻略(第3版) 本书特色 第3版简介 内容速览 阅读须知 读者对象 小标题 排版规范 读者反馈 客户支持 下载代码 下载书中的彩色图片 勘误 举报盗版 疑难解答 电子书 1 ...

  6. opencv3计算机视觉python语言实现pdf_对比《OpenCV计算机视觉编程攻略第3版》《OpenCV 3计算机视觉Python语言实现第2版》PDF代码......

    OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等).从图像处理的基本操作出发,计算机 ...

  7. OpenCV计算机视觉编程攻略之行人检测

    OpenCV计算机视觉编程攻略之行人检测,OpenCV 提供了一个基于HOG 和SVM且经过训练的行人检测器,可以用这个SVM 分类器以不同尺度的窗口扫描图像,在完整的图像中检测特定物体. 原图如下: ...

  8. OpenCV计算机视觉编程攻略之提取图片轮廓-使用Canny函数

    OpenCV计算机视觉编程攻略之提取图片轮廓-使用Canny函数,很方便..代码如下: #include <vector> #include <iostream> #inclu ...

  9. OpenCV计算机视觉编程攻略之生成椒盐噪声实现

    OpenCV计算机视觉编程攻略(第3版)P21的访问像素值,生成椒盐噪声实现. 运行结果图片,截图如下: 看书留下记录,代码如下: #include <random> #include & ...

最新文章

  1. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略
  2. ux和ui_设计更好的结帐体验-UX / UI案例研究
  3. HDOJ 1012-1020
  4. mysql 统计当天,本周,本月,上一月的数据
  5. linux多线程学习(六)——信号量实现同步
  6. 使用async 和 await方法来
  7. Android自定义开机和关机动画
  8. 如何利用迅雷下载百度云获取实际下载地址
  9. sir模型初始值_sir模型初始值_SIR 模型笔记
  10. 机械硬盘换固态硬盘重装系统
  11. PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较
  12. 钉钉打新债自动提醒-python
  13. 应用计算机测定线性电阻伏安特性实验报告,电阻伏安特性曲线实验报告.docx
  14. laravel5.4中orm中的wherein与多条件查询
  15. 梦幻跨服购买需要登录服务器未响应,《梦幻西游》手游跨服交易有什么是需要注意的_ 《梦幻西游》手游官网-人人都玩,无处不在...
  16. 有什么软件android跟电脑连接无线,手机电脑连接的软件有哪些(安卓手机连接电脑的方法)...
  17. 不曾想过 未来的_未来想要什么
  18. 曾经觉得学习晦涩难懂的我是如何爱上linux
  19. Dell G3 搭建深度学习环境(Ubuntu16.04)
  20. 理解--漏极开路输出--推挽输出

热门文章

  1. Matlab常用清除命令:clc、clear、clear all、clf、close、close all
  2. 初识openstack之0——虚拟化及Xen和KVM介绍
  3. 2.计算机二级考试 公共基础知识资料
  4. 纯前端实行—简单的用户信息记录界面
  5. 万字干货!核心用户获取和运营策略
  6. “加密上海·喜玛拉雅Web3.0数字艺术大展”落幕,AIGC和数字艺术衍生品是最大赢家?...
  7. JXTA promotion 3, basic concepts
  8. UE4制作尸潮爬墙学习笔记
  9. 给初学Java的老铁,知道这4点太重要了!
  10. STM32单片机基础之蜂鸣器