permutohedral lattice理解
[完结]saliency filters精读之permutohedral lattice
勘误使于2017年3月19日
本文写于2012年硕士生阶段,有较多疏漏和误解,于今日起开始勘误,以最大限度的保留原始文章,同时更正其中错误。
一、背景碎碎念




本文思想
二、现有成果

三、Permutohedral Lattice
本文贡献
- 它不仅仅把一个点映射到格子中心表示,而是映射到单形格子的各个顶点上,这样子近似卷积的更加精确;
- 由于每个lattice具有同等形态,能够用质心差值插值映射到lattice的各个顶点上;
- 并且能够快速在此lattice上找到映射点四周的顶点,这样子两次映射(splat,slice)能够快速进行;
- blur阶段可以每一维离散进行,并且一个lattice顶点的周边顶点能够迅速确定,此阶段能够快速进行。
定义



网格性质
- 这个子平面被相同形状的单形填充,不留缝隙,没有重叠
- 子平面中任意一点所在的单形顶点都能以
的时间内定义
- 单形顶点周围所有的顶点也能以
的时间内定义
计算高斯卷积
生成特征值映射到子平面的点
首先将每个坐标点除了一个误差,是由splat,blur以及slice中产生的。然后映射到子平面上,注意此时的映射矩阵与上面的不同,因为上面的基向量不是正交的,并且此映射可以用的时间计算出来。
举例bilateral filter,position由5-D向量组成,



Splat阶段:
这个阶段主要是把特征点的值使用质心插值的方法,累加到所在单形的所有顶点上。上文已经介绍了如何通过点找到所在单形的顶点。那么质心插值如何计算?

查找单形顶点的所有相邻点对,即
同splat阶段步骤,利用权重b计算插值。由于在splat阶段建立了b的table,所以用时O(nd)。
本算法总计用时为O((n+l)d^2)。

可以看到5-20维度时候permutohedral lattice根据filter size情况最优。
完结。
permutohedral lattice理解的更多相关文章
- Computer Graphics Research Software
Computer Graphics Research Software Helping you avoid re-inventing the wheel since 2009! Last update ...
- 快速双边滤波 附完整C代码
很早之前写过<双边滤波算法的简易实现bilateralFilter>. 当时学习参考的代码来自cuda的样例. 相关代码可以参阅: https://github.com/johng12/c ...
- 论文阅读笔记十一:Rethinking Atrous Convolution for Semantic Image Segmentation(DeepLabv3)(CVPR2017)
论文链接:https://blog.csdn.net/qq_34889607/article/details/8053642 摘要 该文重新窥探空洞卷积的神秘,在语义分割领域,空洞卷积是调整卷积核感受 ...
- 论文阅读笔记九:SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED CRFS (DeepLabv1)(CVPR2014)
论文链接:https://arxiv.org/abs/1412.7062 摘要 该文将DCNN与概率模型结合进行语义分割,并指出DCNN的最后一层feature map不足以进行准确的语义分割,DCN ...
- lattice diamond fpga 状态机的理解
比如序列检测101,需要三个状态 :so,s1,s2. 思路:(1)s0状态有两种情况0或1,若为0时在自身打圈,是1时进入s1状态. (2)s1状态有两种0或1,若为1自身打圈,因为1可以作为下次检 ...
- Lattice Diamond 学习之编译、检查和设置约束
在新建工程以及完成代码的输入之后.则就要进行编译,并检测错误. 一. Generate Hierarchy(产生层次结构). 1. 点击Generate Hierarchy 图标或者Design -- ...
- 【心得】Lattice Diamond 后端约束实战小结
[博客导航] [导航]FPGA相关 IOB约束 参考<插入IO寄存器和位置约束---lattice&diamond>,推荐的方法是: 1.在strategy设置[Map Desig ...
- 【Static Program Analysis - Chapter 4】格理论(Lattice Theory)与程序分析
# 从一个例子说起, **任务:给定这样一段代码,假设我们想分析出这段代码中,每个数值型变量和表达式的符号,即正数,负数或0.** 此外,还有可能出现两种情况就是: 1.我们无法分析出结果,即我们无法 ...
- [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演
7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice. One corner is at (0,0, ...
随机推荐
- PostgreSQL数组使用
原文:https://my.oschina.net/Kenyon/blog/133974 1.数组的定义 不一样的维度元素长度定义在数据库中的实际存储都是一样的,数组元素的长度和类型必须要保持一致, ...
- STM32串口usart发送数据
主函数请直接关注41行到47行代码!! #include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h> #include ...
- AVL树的理解及自写AVL树
AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多 ...
- Java 构造器 遇到多个构造器时要考虑用构建器
静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数. 当一个类中有若干个必选属性和多个可选属性时,采用重叠构造器模式.JavaBeans模式或者Builder模式,但各有优劣. 当 ...
- layer.load的使用
在ajax请求和回调返回的过程中,我们一般都要用到layer.load这个方法 例如: //loading层 var index = layer.load(1, { shade: [0.1,'#fff ...
- 前端可视化数据--echarts
很幸运能够给大家分享我对echarts的见解,在一些大型互联网公司面试时都会问到会使用echarts么? 今天在做项目时有这个需求,有幸学习echarts. 二.echarts.js的优势与不足 优 ...
- 线段树模板hdu 1166:敌兵布阵
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- PAT基础6-6
6-6 求单链表结点的阶乘和 (15 分) 本题要求实现一个函数,求单链表L结点的阶乘和.这里默认所有结点的值非负,且题目保证结果在int范围内. 函数接口定义: int FactorialSum( ...
- static之静态初始化块
static之静态初始化块 所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是: 父类的静态初始化块 子类的静态初始化块 父类的初始化块 父类的 ...
- hiredis 使用 linux c++
1.linux下如何安装hiredis 1)下载地址 https://github.com/redis/hiredis 2)编译和安装 解压后的文件夹执行 make;make install; 3) ...