2019/02/09 对于KinectFusion 的理解

网上有很多关于Kinect Fusion 的详细介绍,包括各个部分的算法,思路,以及应用上的限制和优化。 在此就不多介绍了。

KinectFusion 提供了非常基础的用RGB-D 相机实现的 Dense mapping algorithm. 在实验初期我也阅读了很多次。 最近由于实验上遇到了非常棘手的问题, 又把之前的资料拿出来再次仔细的阅读,希望能有新的发现。

1。 pcl::kinfu 和 pcl::kinfuLS.

找了相关的Libs 和 网上资料,但是并没有找到合适的代码资料和 demo code。

2。 ICP in KinFu

KinFu 使用point-to-plane ICP。

无论是Point-to-point 还是 Point-to-plane, 它都包括2个主要的步骤。

  1。 find the corresponding points in adjacent frames.

  2. establish and optimize the error func iteratively.

由于需要确定 corresponding points pair, KinFu 使用了另外两个约束方程:

  1. 两帧图像上相关点的  T < transformation threshold.

  2. 两帧图像上相关点的  Normal difference <  Normal corresponding threshold.

正是由于这种找corresponding points 的算法, Kinfu 的ICP 只能用于运动距离比较小的tracking 应用。

所以,它提供的思路和算法并不能用于我的实验。

3。 TSDF Voxel model

由于我一直在用PCL::PointCloud, 所以在计算上我只用了CPU。 并且由于深度图像并不精确,每一帧深度点云存在很多误差。

所以我在思考能否用TSDF model  来优化我得到的3D 点云,并用RAYCAST 来计算摄像机的位移。

需要注意的是, 如果使用RAYCAST 投影点云, pcl::gpu::raycaster 提供的算法是应用于 3D voxel volume上的。

所以还是需要depth / 3d PCD -> 3D TSDF Voxel Volume -> Raycasted current View.

4。 点云边缘

PCL 提供的点云边缘是否能用于我的实验, 来优化追踪效果。

原文地址:https://www.cnblogs.com/RobotDyan900511/p/10358633.html

时间: 2024-11-09 09:23:20

2019/02/09 对于KinectFusion 的理解的相关文章

CF-1013 (2019/02/09 补)

CF-1013 A. Piles With Stones 比较两个序列的和,因为只能拿走或者不拿,所以总数不能变大. B. And 答案只有 -1,0,1,2几种可能,所以对于每一种答案都暴力扫一次是可以的 或者对于每个 \(a_i\) ,将\(a_i\) 标记加一,如果\(a_i \neq a_i\& x\) ,将\(a_i\&x\) 用另一个数组标记加一.然后整体扫一次就可以了 #include <bits/stdc++.h> using namespace std; in

PAT 甲级 A1058 (2019/02/09)

1 #include<cstdio> 2 int main(){ 3 int a[3], b[3], c[3], cont = 0; 4 scanf("%d.%d.%d %d.%d.%d",&a[0], &b[0], &c[0], &a[1], &b[1], &c[1]); 5 c[2] = ( c[0] + c[1] ) % 29; 6 cont = ( c[0] + c[1] ) / 29; 7 b[2] = ( b[0]

PAT 甲级 A1061 (2019/02/09) NULL(16/20)

1 #include<cstdio> 2 #include<cstring> 3 int main(){ 4 char str1[61], str2[61], str3[61], str4[61]; 5 char week[7][4]={"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"}; 6 sc

【02】你是如何理解 HTML 语义化的,有什么好处

[02]你是如何理解 HTML 语义化的 01,语义化,就是通过HTML标签来表示页面包含的信息. 02,其中有HTML标签的语义化和CSS命名的语义化. 03,HTML标签语义化的的含义是: 通过使用含有语义的标签(如h1~h6,aside)来表示文档结构. 04,CSS语义化的含义是: 为HTML标签添加有意义的class和id来补充未表达的语义. 05,为什么需要语义化 结构清晰.便于维护. 盲人可以用阅读器来阅读. 使搜索引擎更好的抓取网页.利于收录. ** 原文地址:https://w

AWS re:Invent(2019.01.09)

时间:2019.01.09地点:北京国际饭店 原文地址:https://www.cnblogs.com/xuefeng1982/p/10335801.html

【谜客帝国】第147届月思主擂谜会(2019.02.15)

 [谜客帝国]第147届月思主擂谜会(2019.02.15) 主持计分:东东 1.“人在中天日月间”(9笔字)春/月思 [注:面出陈孚<开平即事二首>,“势超大地山河上,-.”] 2. 玉漏声中烟气袅(3字法国奢侈品牌)YSL/月思 3. 双双相念初相爱(2字著名动漫人物)菜菜/月思 4.“数点燕云州外.雪霜威”(足球用语二,4+3)4132.451/月思 [注:面出余文<相见欢>,“登高望断龙旗,未曾归.几度中原北定,梦依稀.朔风乱,胡尘漫,掩斜晖.-.”] 5.“十载同心如一人

前端面试题2019.02.28

1.用 js 写出几种去除 string 空格的方法. (1).使用js循环   //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); var str = new String(s); if (whit

内部类(转载http://www.cnblogs.com/devinzhang/archive/2012/02/09/2344059.html)

Java内部类总结 Java内部类其实在J2EE编程中使用较少,不过在窗口应用编程中特别常见,主要用来事件的处理.其实,做非GUI编程,内部类完全可以不用. 内部类的声明.访问控制等于外部类有所不同,要灵活使用内部类来编写程序,还是有相当难度的,Java发明了这种难懂的玩意儿,在其他语言中是没有的,但是在Java中,内部类也相当的重要,尤其做GUI开发时候,事件的响应处理全靠内部类了. 内部类所做的功能使用外部类也同样可以实现,只是有时候内部类做的更巧妙些. 内部类按照其所在位置不同,可分为以下

02 09 日记

在知乎感情和婚姻话题上看了好久. 徐广斌,他, 我还是不知道他是一个什么样的人,跟我的期盼有多大的差别,但是我确实通过和他的交流,在亲密关系和婚姻方面,有了另一种认识,内心也得到了些许的平静. 我想象中的啊斌太完美了,一生中能有人让你真实的有过这种感觉,不管是不是错觉,都已经很幸运了. 所以不要贪心,不要对啊斌,对任何伴侣,有过高的预期. 我最后不一定跟啊斌在一起,我对他的了解还不够,所以,routine那种东西没什么意义,你受不了孤独了,就去求个安慰,老朋友他不会不给你,至于回报,等他自己来要