简介:

        LIOP特征描述算法,是2011ICCV上一片paper《Local Intensity Order Pattern for Feature Description》中提出的一种特征描述算法。等有空闲时间把原文仔细翻译一遍,然后放上来分享给大家。

        算法的提出者也是比较厉害的,其个人主页:http://zhwang.me/;LIOP在这里:http://zhwang.me/publication/liop/index.html

        今天我们就来讲一下这个算法,下面来详细介绍LIOP算法的整个过程,遵循paper的处理流程,我按顺序分析:

一:图像预处理、特征检测、归一化

1、高斯滤波

        使用SIGMA的高斯滤波器,对图像进行平滑滤波,由于像素强度的相对顺序对噪声敏感(稍后会提到),所以要消除噪声;

2、仿射区域检测

        检测图像中的仿射区域位置,并估计仿射区域的形状(使用Harris-AffineHessian-Affine);

3、归一化

        将检测到的仿射区域都归一化为一个固定直径的圆(文章中,圆的直径取41个pixl);

4、高斯滤波

        使用SIGMA的高斯滤波器,对图像进行平滑滤波,消除由于归一化中插值操作带来的噪声。

二:区域分割

        步骤一得到的圆形区域叫做Local Patch。现在要对其进行划分区域,将其划分成B个子区域(subregion)。然后我们来提取每个subregion的特征矢量,再将B个特征矢量连起来形成当前检测区域(Detected region)的特征矢量。

        如下图所示,图(a)是检测到的仿射区域,图(b)是归一化为固定直径的圆,图(c)是划分subregion(用不同颜色来标记),(d),(e),...,(f)是将每个subregion分离出来,以方便对每个subregion进行后续处理,用Bin 1,Bin 2,...,Bin n来表示。

注:图上画出了nBin,也就是说有nsubregion,在后面的用B来表示,其实nB都表示subregion的个数,这里我特地说一下,希望读者不要纠结于nB的含义。

三:LIOP特征描述

        对于一个圆(Local Patch),都有一个圆心这是毋庸置疑的。该圆在未发生旋转之前我们把它叫做Origina patch(如下图a),旋转之后我们把它称作Rotated patch(如下图b)。现在我们的目的是要提取圆内每一个点的LIOP特征(编码),将同属于一个subregion(即:Bin)的LIOP特征累加起来,然后将Bsubregion各自的LIOP特征串联起来,形成该Local Patch代表区域的特征矢量。

        接下来,我们来求一个点的LIOP特征,请仔细阅读。

        结合下图(a),假设圆心为X0,在Local Patch内有一个点X,以该点为圆心,R为半径画圆,取该圆上的N个采样点,记作X1,X2,...,XN,此图中N=4。旋转之后,X的位置旋转到了X' 的位置,其圆上的采样点也随之旋转(变成了X1',X2',X3',X4')。

        为了使该点的LIOP特征具有旋转不变性,我们需要按照一定的方向进行排序,在文章中,作者提出以Local Pacth的中心,与X点的连线(可以看成大圆(Local Patch)中心与小圆中心的连线)方向上,且离大圆中心最远的采样点开始,按逆时针方向将所有采样点进行排序,最终排序为:旋转前:X1,X2,X3,X4,旋转后:X1',X2',X3',X4'。该种方法能够保证待会提取的LIOP特征具有旋转不变性。

        排序方法确定了,我们还需要一个制作一个表,将N个采样点的所有排列组合方式都列出来,显然共有N!N的阶乘)中排列组合,然后每种排序方式用一个Ind(即Index)索引来表示。

        正如上图所示,现在我们要提取XLIOP特征,假如4个采样点的排序是P(X)=(86,217,152,101)。本来按像素值从小到大排应该是(86,101,152,217),看得出来86P(X)的第1个位置,101P(X)的第4个位置,152P(X)的第3个位置,217P(X)的第2个位置。因此X点的编码就为(1,4,3,2),在表中找到该排列组合的索引为6(即:Ind=6)。

        对于每个点周围的采样点,共有N!种排列方式,那么在该点的LIOP特征也即为N!位。文章中N=4,即每个点的LIOP特征矢量都是24bit的。接着上面说,上面得到了Ind=6,再根据上图所示,将X点特征矢量的第6位置1,其余为全部置0,也就得到了X点的LIOP特征矢量了,即:0000 0100 0000 0000 0000 0000

        同理可得,对于任意一个Local Patch内的点,我们都可以以相同的方式提取该点的LIOP特征矢量了,每个点的特征矢量中有且只有1bit1,其余都是0。我们将所有属于同一个subregion的点的特征矢量相加,则得到该subregion的特征矢量,再将Bsubregion的特征矢量串联起来,就可以得到该Local PatchLIOP特征了。

        由于是按照像素强度进行排序的,因此对噪比较敏感,在最后为了能够得到更具有鲁棒性的特征矢量,作者提出一种特征矢量的加权方法,其中sgn()是符号函数,Tlp是阈值。

        最后,我们来总结一下整个LIOP特征矢量提取所需要的参数:

        LIOP大概就是这样的,以上都是个人理解,一切请以作者原文为准。如跟读者理解有出入,烦请留言告知,以便交流。

参考文献:

[1] Zhenhua Wang, Bin Fan and Fuchao Wu. Local Intensity Order Pattern for Feature Description. Computer Vision(ICCV), 2011 IEEE International Conference on.

[2] Bin Fan, Fuchao Wu and Zhanyi Hu. Aggregating Gradient Distributions into Intensity Orders:A Novel Local Image Descriptor. Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on.

[3] Hong Cheng, Zicheng Liu, Nanning Zheng and Jie Yang. A deformable local image descriptor. Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on.

【特征检测】LIOP特征描述算法相关推荐

  1. PCL 点云特征描述与提取

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:开着拖拉机唱山歌 链接:https://zhuanlan.zhihu.com/p/1032192 ...

  2. PCL中3D点云特征描述与提取(三)

    PCL中3D点云特征描述与提取(三) 1 如何从一个深度图像中提取NARF特征 2 RoPs特征 2.1 理论基础 2.1.1 生物视觉认知学启示 2.1.2 局部参考坐标框架构建 2.1.3 RoP ...

  3. 3D,点云关键点和特征描述

    3D点云特征描述与提取是点云信息处理中最基础也是最关键的一部分.如果要对一个三维点云进行描述,光有点云的位置是不够的,常常需要计算一些额外的参数,比如法线方向.曲率.纹理特征.颜色.领域中心距.协方差 ...

  4. OpenCV4学习笔记(41)——ORB特征提取描述算法

    今天要整理记录的笔记内容是特征算法中比较常用的一种--ORB特征提取描述算法,顾名思义,ORB算法包含了对特征点的提取和描述这两个部分.而在上次的博文<OpenCV4学习笔记(39)>中, ...

  5. 【OpenCV 例程 300篇】249. 特征描述之视网膜算法(FREAK)

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]249. 特征检测之视网膜算法(FREAK) 1. FREAK 算法简介 快速视网膜 ...

  6. opencv 二维图像 特征检测 特征描述 特征匹配 平面物体识别跟踪

    github代码 一.Harris角点 cornerHarris() R = det(M) - k*(trace(M))^2  算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与 ...

  7. 【OpenCV 例程 300篇】244. 特征检测之 BRIEF 特征描述

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]244. 特征检测之 BRIEF 特征描述 6.7.1 算法简介 二进制鲁棒独立的特 ...

  8. BRISK特征点描述算法详解

    转自:BRISK特征点描述算法详解_AstoncPou的博客-CSDN博客_brisk特征点 BRISK特征点描述算法详解 简介 BRISK算法是2011年ICCV上<BRISK:Binary ...

  9. SIFT算法特征描述子构建---关键点定位原理及代码

    0.引言 sift针对局部特征进行特征提取,在尺度空间寻找极值点,提取位置,尺度,旋转不变量,生成特征描述子. 总共分四个步骤: 尺度金字塔生成 关键点/极值点提取 生成梯度直方图 特征描述子构建 s ...

最新文章

  1. 谷歌搜索没有相机图标_谷歌Pixel 2/3a/4 XL中招!更新安卓11相机崩溃
  2. Java 连接各种数据库
  3. 一台台式计算机的主要配件有哪些,电脑的基本配件有哪些
  4. IIS 7 php 7.0 部署WE MALL
  5. ueditor编辑器php上传配置,php版本UEditor编辑器图片上传设置
  6. microwindows位图解析
  7. micropython和python区别-选择C/C++还是选择MicroPython来开发?(第0章-第三节)
  8. 如何利用Camtasia为视频添加注释?
  9. 《App后台开发运维和架构实践》资源汇总
  10. 网络参数配置与常用网络命令使用
  11. SpringBoot使用自定义https
  12. 计算机关机界面卡住,电脑关机时卡在关机界面的解决方法
  13. 电脑分区后,电脑提醒没有权限在此位置保存文件怎么办?
  14. 喜欢看漫画的小伙伴就不要错过啦,python批量爬取动漫免费看
  15. 基于NRF24L01的CAN数据透传
  16. java算法:逻辑回归和线性回归
  17. 深度学习(9):FastFCN论文翻译与学习
  18. 今日头条统一提现怎么开通?
  19. 随机点名系统——微信小程序
  20. 英语学习(10个句子练到极致)

热门文章

  1. sqlserver jdbc 驅動
  2. Windows程序设计第五版源代码---LINEDEMO
  3. 微信校园浴室预约小程序系统毕业设计毕设(3)后台功能
  4. python双色球选号_教你用Python选注双色球号码
  5. 苹果cmsv10首涂第二十五套精简宽屏大气带后台简约模板
  6. 【Java教学】win11如何安装Java配置Java环境并进行自检
  7. linux kernal pwn WCTF 2018 klist(一)
  8. android 朗读读屏幕,android语音朗读功能demo实现
  9. openwrt编译固件流程
  10. 【SHEIN】校招前端岗位笔试题