Latch-Learned Arrangements of Three Patch Codes (1)
来源:互联网 发布:佛山网页美工培训 编辑:程序博客网 时间:2024/05/20 16:44
Latch:Learned Arrangements of Three Patch Codes
1 简介
该算法是二值化特征描述方法的一个优化变种,一般的二值化特征描述主要通过计算特征点窗口内n个点对的比较值形成一个bit串,作为该特征点的特征描述子,这样的bit串特征描述子在图像匹配计算时可以通过同或计算汉明码,大大提高计算速度,但是点对的比较会有一个明显的缺点,就是受噪声影响较大,虽然后续的一些算法通过高斯模糊进行滤波,但是滤波后图像信息会有一定减少,建立在此基础上,作者提出了一种通过计算窗口内像素块的比较值形成bit串,同时作者也提出了如何定位像素块的方法。
2 像素块比较方法
假设特征点窗口内有3个块
若需要256 bits长的特征描述子,则需要选择256个3像素块,每个3像素块得到一个bit结果
3 像素快位置
在像素块比较中需要计算像素块内各个像素点的值,因此计算前提是定位像素快,一个很小的特征窗口能够产生非常多的像素块的组合,有些像素块对图像匹配不重要,有些非常重要,本节主要介绍如何选择像素块的组合方式使得匹配结果最优。本文中像素块位置的确定是通过有监督学习的方法进行的
3.1 数据集
首先构造一个训练数据集,该数据集来自Learning Local Image Descriptors Data,以下用LLIDD代表该数据集,LLIDD数据集主要对三个场景(Literty, Ntore Dame , Halp Dome)的3D场景构造图像中处理而来,首先通过Noah Snavely’s Photo Tourism算法计算3D构造图初始特征点,再通过立体深度地图匹配不同图像只能够对应的特征点,而数据集则是特征点领域内64x64的图像块。同时建立标签文件,记录各个图像块是否是来自同一目标。本文作者在LLIDD数据集的基础上创建了一个50k的数据样本对,每对数据样本包括两个图像块,同时有一个标签表示两个图像块是否相同,最终数据集包括一半匹配一半不匹配的图像块。
3.2 训练
随机产生56k个3像素快,即
再用每个3像素块去对每个数据对进行匹配,若匹配结果与标签结果相同则赋予一个值为1的bit,若不相同则赋予一个值为0的bit,这样对数据集中所有数据对匹配后将产生一个长度为50k的bit串,将bit串中每位值相加即为该像素快的匹配能力。对所有像素快都进行该运算后再对匹配能力进行排序,同时删除与前面3像素快相关度大于0.2的3像素快。另外在程序计算描述子的时候3像素块的选取采用增量各点选取的方法(0, 6, 12,…)。这样选取最大的n个作为3像素快候选集。
3.3 描述子计算伪代码:
PatchSize (2*s+1) x (2*s+1) = (2*3+1) x (2*3+1) //图像块大小BytesLength = 32 //每个特征描述子的长度 单位:ByteCompute(Img, KeyPoints): descriptors = Mat(Keypoints.length, BytesLength, Byte) //描述子初始化 为一个类型类Byte的 //Keypoints.length x BytesLength矩阵 grayScale = convertToGray(img) //灰度化 foreach keyPoint in Keypoints: for i = 1 to BytesLength: descriptors[k][i] = 0 for j=0 to 7 get one tripet Pathes P1 P2 P3 their position rotate the pixel in P1 P2 P3 to the direction of the Keypoint compute the bit result: b = (P1-P2) > (P3-P2) ? 1:0 descriptors[k][i] += (Byte)b<<j
- LATCH: Learned Arrangements of Three Patch Codes
- Latch-Learned Arrangements of Three Patch Codes (1)
- Comparation of three Codes: RZ, NRZ, NRZI
- 326. Power of Three#1
- learned the accelerated c++ book's first three chapters
- Three Laws of Robotics
- three bags of sweets
- Three Laws of Robotics
- ZOJ3516 Tree of Three
- The Rule of Three
- Romance of three kingdom
- The Rule of Three
- leetcode Power of Three
- Leetcode: Power of Three
- LeetCode Power of Three
- 326. Power of Three
- Leetcode230: Power of Three
- Power of Three
- 2.2 什么是lambda函数?它有什么好处?
- 黑马程序员——Java基础---io流(io中的其他对象)
- 各种传送门
- 中文转为unicode编码
- webservice xml soap wsdl 必要知识
- Latch-Learned Arrangements of Three Patch Codes (1)
- 初步认识机房收费
- HDU 2032 杨辉三角
- error LNK2019: 无法解析的外部符号 ___glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用 1>GEARS.obj : e
- hashMap
- 基于 Web 的 Go 语言 IDE - Wide 1.3.0 发布!
- java多线程之停止线程
- 18-UINavigationController 导航控制器
- android内存泄露