当前位置: 首页 > 编程日记 > 正文

三维重建【二】————3D reconstruction 较为实用的算法资料整理(传统方式)

本文结合一些pape并且将资源进行整合,以便于后期的学习。博客将这些资源一下,这里不得提到大名鼎鼎的KinectFusion以及他后面的一系列工作。KinectFusion单篇论文引用都已经超过3000次了,可以称得上是具有划时代意义的一篇巨著,如果只想看现阶段效果最好的三维重建算法,请拉到文章最后(如有更好的算法,还请各位留言告知,以便于笔者及时更新,还望告知)

一、KinectFusion(2011)

帝国理工的Newcombe等人在2011年提出的KinectFusion,可在不需要RGB图而只用深度图的情况下就能实时地建立三维模型。KinectFusion算法首次实现了基于廉价消费类相机的实时刚体重建,在当时是非常有影响力的工作,它极大的推动了实时稠密三维重建的商业化进程。

在他们的论文中没有开源代码,最初的代码是由PCL团队实现的:https://link.zhihu.com/?target=http%3A//pointclouds.org/news/kinectfusion-open-source.html

KinectFusion之后,陆续出现了Kintinuous,ElasticFusion ElasticReconstruction,DynamicFusion,InfiniTAM,BundleFusion等非常优秀的工作。其中2017年斯坦福大学提出的BundleFusion算法,据说是目前基于RGB-D相机进行稠密三维重建效果最好的方法。

二、Kintinuous和ElasticFusion

这两个工作都是同一个人做出来的,这个人就是Thomas Whelan。这两个工作应该算KinectFusion之后影响力比较大的。

Kintinuous GitHub代码:https://github.com/mp3guy/Kintinuous

ElasticFusion GitHub代码:https://github.com/mp3guy/ElasticFusion

Kintinuous2.0重建效果:

ElasticFusion 重建效果:

三、ElasticReconstruction

项目官网:http://qianyi.info/scene.html

GitHub代码:https://github.com/qianyizh/ElasticReconstruction

重建效果:

四、InfiniTAM

InfiniTAM提供Linux,iOS,Android平台版本,CPU可以实时重建。

官网:http://www.robots.ox.ac.uk/~victor/infinitam/

GitHub代码:https://github.com/victorprad/InfiniTAM

重建效果:

五、DynamicFusion

官网:https://grail.cs.washington.edu/projects/dynamicfusion/

代码:https://github.com/mihaibujanca/dynamicfusion

重建效果:

六、BundleFusion

官网:http://graphics.stanford.edu/projects/bundlefusion/

论文:https://arxiv.org/pdf/1604.01093.pdf

代码:https://github.com/niessner/BundleFusion

重建效果:

参考文献:
【1】CMVS/PMVS: http://www.di.ens.fr/cmvs/

【2】https://www.zhihu.com/question/29885222/answer/918009389

【3】https://www.zhihu.com/question/29885222

【4】https://www.zhihu.com/question/29885222/answer/48940748

【5】https://mp.weixin.qq.com/s/NUFr_Jz98HM93Xm-6jDICw

基于图像的大规模场景三维重建(上):https://www.leiphone.com/news/201711/9dxX6g30dlEoqvPZ.html
基于图像的大规模场景三维重建(下):https://www.leiphone.com/news/201711/s6CHNAyjurPPyKiz.html

3D点云目标检测算法

相关文章:

【Codeforces 738D】Sea Battle(贪心)

http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1  n grid. In this game a ships are placed on the grid. Each of the ships consists of bconsecutive cells. No cell can be part of two ships, however, the ships ca…

【POJ】3617 Best Cow Line (字典序 字符串)

http://poj.org/problem?id3617 给定长度为N(1≤N≤2000)的字符串S,要构造一个长度为N的字符串T。期初,T是一个空串,随后反复进行下列任意操作。 从S的头部删除一个字符,加到T的尾部 从S的尾部删除一个字符,加到T的…

python数据池连接PG

发现网上都是mysql,后面发现PG跟mysql差不多,记录下来,怕忘了 import psycopg2 from DBUtils.PooledDB import PooledDB import psycopg2.extraspool PooledDB(psycopg2, 10,database"boatdb", user"postgres",password…

ASP.NET WebAPi之断点续传下载(下)

前言 上一篇我们穿插了C#的内容,本篇我们继续来讲讲webapi中断点续传的其他情况以及利用webclient来实现断点续传,至此关于webapi断点续传下载以及上传内容都已经全部完结,一直嚷嚷着把SQL Server和Oracle数据库再重新过一遍,这篇…

Git学习记录(一)

git-book 全面资料 git 用树形查看 (git 命令代替gitk查看节点树part two 日常使用只要记住下图6个命令即可,但是学海无涯啊 ​ 常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区Index / Stage:暂存区Reposito…

【牛客】CSL 的字符串 (stack map)

https://ac.nowcoder.com/acm/contest/551/D 这个题怎么说,data用来存储这个字母在字符串中最后一次出现的位置,vis则用来记录该字母是否在栈中。 当栈为空的时候,直接将s[i]放入栈中 如果不为空则需要比较栈顶元素和当前s[i]的那个元素&a…

Python:UTF-8编码转换成GBK编码

2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #temp #decode #encode #原理就是把UTF-8转换成万国码,再给万国码进行编码转换成GBK,在python 2.x里面这么用 ""&q…

三维重建【三】-------------------(三维重建资料收集)

Major学者的个人主页汇总: 1.陈宝权:http://web.siat.ac.cn/~baoquan/ 2.南亮亮:http://web.siat.ac.cn/~liangliang/ 3.mueller:http://people.ee.ethz.ch/~pascmu/publications.html 4.Yasutaka Furukawa:http://homes.cs.washi…

在 Linux 中查看时区

1.date date "%Z %z"或者 date -R2.timedatectl timedatectl|grep "Timezone"可以使用 timedatectl 来设置 Linux 时区 3.显示文件 /etc/timezone 的内容 cat /etc/timezone

【HDU】1237 简单计算器 (stack)

http://acm.hdu.edu.cn/showproblem.php?pid1237 题目很好理解,一开始想用优先队列,但好像有点难实现,用stack比较好实现,遇到“ * ” 或者" / " 就进行操作,遇到“ - ” 就把它的相反数加进stack&#xf…

关于 synchronizeOnSession

本文为[原创]文章,转载请标明出处。原文链接:https://weyunx.com/2019/01/22...原文出自微云的技术博客 最近在维护一个老项目,发现了一个问题。我们新增了一个耗时较久的复杂查询的功能,页面采用了 ajax 异步请求数据&#xff0c…

用python操作mysql数据库(之“更新”操作)

#!/usr/bin/env python # -*- coding: utf-8 -*-import MySQLdb#建立连接 conn MySQLdb.connect(host127.0.0.1,userroot,passwd1qaz#EDC,dbtest_db) cur conn.cursor()#对数据进行操作 sql "update user set name%s where id7" #定义sql语句,用于修改…

OpenCV【零】—————cv::Mat——Mat对象创建方法

OpenCV (一)——Mat对象创建方法 目录 OpenCV (一)——Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效访问 4. 存储方法 5. 显式创建Mat对象 6. 与其他语言对比的方式 7. Mat操作实例 1. c…

在Vmware中安装Ubuntu

转载自:https://blog.csdn.net/stpeace/article/details/78598333 不是每一个程序员都必须玩过linux,只是博主觉得现在的很多服务器都是linux系统的,而自己属于那种前端也搞,后台也搞,对框架搭建也感兴趣,…

C++回声服务器_5-多进程版本

服务器和客户端都是用多进程来接收和发送数据。 服务器代码 #include <cstdio> #include <cstdlib> #include <cstring> #include <unistd.h> #include <csignal> #include <sys/wait.h> #include <arpa/inet.h> #include <sys/s…

OpenCV 【一】—— OpenCV中数组指针、图像分块计算、指针取像素值与MatToEigen方法,内存对齐

{ Topic1: 高效开辟内存&#xff0c;使适用于大型数组。//开辟新数组&#xff0c;或者开辟新的0或者某一数值的数组/Mat或者Map直接使用memset //大数组操作效率较高 举例1&#xff1a;cv::Mat cv_ncc_temp(cv_input_32f.rows, cv_input_32f.cols, CV_8UC1);memset(cv_ncc_temp…

【Java】类与对象 - 参数传值

目录 面向过程语言简介 面向对象语言简介 面向对象编程的三个特性 参数传值 传值机制 基本数据类型的参数的传值 引用类型参数的传值 可变参数 面向过程语言简介 核心是编写解决问题某个问题的代码块&#xff0c;代码块是程序执行时产生的一种行为。面向过程语言缺少一…

新闻发布项目——业务逻辑层(newsTbService)

package bdqn.newsManageServlet.Service;import java.util.List;import bdqn.newsManageServlet.entity.newsTb;/*** 新闻业务逻辑层的接口* author Administrator**/ public interface newsTbService {//分页查询public List<newsTb>getPagingNews(int pagesize,int pa…

使用阿里云发布分布式网站,开发时候应该注意什么?

虽然之前写过关于负载均衡的文章&#xff0c;但是似乎大家都对负载均衡这个标题很陌生。今天就换个角度&#xff0c;从分布式网站发布角度说一下 首先&#xff0c;网站发布一定离不开服务器&#xff0c;就是阿里云的云服务器ECS。最近发现&#xff0c;老用户也有机会购买特价服…

【Java】类与对象 - 对象的组合

一个类的成员变量可以是Java允许的任何数据类型&#xff0c;因此&#xff0c;一个类可以把某个对象作为自己的成员变量&#xff0c;也就是说&#xff0c;该对象将其他对象作为自己的组成部分。 组合和复用 如果一个对象a组合了对象b&#xff0c;那么对象a就可以委托对象b调用…

CMakeLists.txt学习记录

一、Cmake 学习地址与作用 cmake详细见&#xff1a;https://gitlab.kitware.com/cmake/community/-/wikis/home 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。 二、常用命令 …

20145223《信息安全系统设计》 实验四 驱动程序设计

20145223杨梦云《信息安全系统设计》实验四实验报告 一、配置开发环境&#xff08;同实验一&#xff09; 二、阅读和理解源代码 进入/arm2410cl/exp/drivers/01_demo&#xff0c;使用vi编辑器或其他编辑器阅读理解源代码。 三、编译驱动模块及测试程序 上面介绍了在 Makefile 中…

Android屏幕适配框架-(今日头条终极适配方案)

2019独角兽企业重金招聘Python工程师标准>>> 在Android开发中,屏幕适配是一个非常头痛的问题,因而为了去进行屏幕适配,作为程序员,是呕心沥血,历经磨难,哈哈 我们之前做屏幕适配一般都会用到一下两种方式: 我们之前做屏幕适配一般都会用到一下两种方式: 第一种就是宽…

OpenCV 【三】————contours便利删除操作方法

int cmin 100;int cmax 1000;vector<vector<Point>>::const_iterator itc contours.begin();while (itc ! contours.end()){if (itc->size() < cmin || itc->size() > cmax)itc contours.erase(itc);elseitc;}

解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题

在myeclipse中新建的java web工程&#xff0c;lib中的jar包无法自动加载工程&#xff0c;不能像eclipse那样使用Web App Libraries。即使添加了Web App Libraries这个libraries&#xff0c;jar包还是如法加入。解决方法&#xff1a;在.project文件中&#xff0c;修改<nature…

企业分布式微服务云SpringCloud SpringBoot mybatis - 服务消费者(Feign)

一、Feign简介 Feign是一个声明式的伪Http客户端&#xff0c;它使得写Http客户端变得更简单。使用Feign&#xff0c;只需要创建一个接口并注解。它具有可插拔的注解特性&#xff0c;可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon&…

OpenCV 【四】————Watershed Algorithm(图像分割)——分水岭算法的原理及实现

分水岭算法实现&#xff08;C、opencv&#xff09; 1.作用&#xff1a; 通常用于分割图像&#xff0c;主要实现以临近像素间的相似性作为重要的参考依据&#xff0c;从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓&#xff0c;封闭性是分水岭算…

SQL脚本--有关压缩数据库日志

/*--压缩数据库的通用存储过程 压缩日志及数据库文件大小 因为要对数据库进行分离处理 所以存储过程不能创建在被压缩的数据库中 --邹建 2004.03(引用请保留此信息)--*/ /*--调用示例 exec p_compdb test--*/ use master --注意,此存储过程要建在master数据库中Go if exists …

【POJ】1308 Is It A Tree?((并查集 + set)or (map))

http://poj.org/problem?id1308 这个题数组开到200就可以了&#xff0c;但题目中貌似没有说呢&#xff1f; 读入每一对顶点&#xff0c;看看他们是否在同一个集合中&#xff0c;如果是的话&#xff0c;肯定成环&#xff0c;不是一棵树。 用set容器保存节点&#xff0c;最后…

Java程序员修炼之路(一)我们为什么选择Java

我们为什么选择Java大多数人选择Java可能只是因为听说Java前景好、Java比较好找工作、Java语言在TIOBE排行榜上一直位于前三等等之类的原因&#xff0c;但是Java具体好在哪里&#xff0c;心里却是没有什么概念的。其实我选择Java也是出于以上的原因&#xff0c;但是现在确实真正…