awesome-3D-vision
awesome-3D-vision 是一个专注于三维计算机视觉领域的开源资源聚合库,旨在为从业者提供从理论算法到产业落地的全方位指引。它系统性地整理了 SLAM、深度重建、结构光、立体视觉及机器学习等核心技术资料,有效解决了该领域知识分散、技术栈复杂以及学术与工业界信息割裂的痛点。
该项目不仅涵盖事件相机原理、单目与多目标定方法等前沿学术综述,更独特地收录了详尽的硬件生态图谱,汇总了海康威视、奥比中光、基恩士等国内外知名厂商的业务方向与人才需求,填补了纯技术文档在产业链认知上的空白。无论是希望深入钻研算法的研究人员、需要选型硬件或求职的开发者,还是寻求技术解决方案的工程师,都能在此快速定位所需资源。通过串联起“相机技术 - 标定算法 - 行业应用”的完整链条,awesome-3D-vision 帮助用户高效构建知识体系,是进入 3D 视觉领域不可或缺的实用导航。
使用场景
某工业机器人团队正在为汽车零部件产线开发一套高精度自动抓取系统,需集成结构光相机并解决复杂光照下的三维重建难题。
没有 awesome-3D-vision 时
- 硬件选型盲目:面对海康、奥比中光等数十家厂商,团队耗费数周调研各家公司技术栈与岗位需求,仍难以匹配最适合结构光方案的相机型号。
- 标定算法从零造轮子:缺乏现成的标定综述参考,工程师需独自查阅分散的学术论文,反复尝试圆形标志点或相位标靶等算法,调试周期长达一个月。
- 技术路线迷茫:在 SLAM、深度学习与传统立体视觉之间犹豫不决,缺乏系统性知识索引,导致项目初期架构设计频繁返工。
- 资源检索低效:针对事件相机等特殊传感器,全网搜索碎片化教程,难以获取如 UZH-RPG 等权威机构的系统化知识点汇总。
使用 awesome-3D-vision 后
- 精准锁定供应商:直接查阅整理好的厂家汇总表,快速定位到奥比中光、埃尔森等专注结构光与三维重建的企业,三天内完成硬件选型与对接。
- 标定流程标准化:利用库内线阵相机标定综述及全自动标定论文链接,团队直接复用成熟算法方案,将相机标定调试时间压缩至一周以内。
- 技术决策清晰化:通过分类清晰的目录(如 VSALM、三维重建),迅速厘清技术边界,确立了“结构光 + 深度学习”的最优技术路径。
- 知识获取体系化:一键直达事件相机等前沿领域的权威资源汇总,避免了无效搜索,让算法工程师能专注于核心逻辑优化而非资料收集。
awesome-3D-vision 将原本需要数月摸索的硬件选型与算法验证过程,转化为按图索骥的高效执行,显著降低了 3D 视觉项目的落地门槛与研发成本。
运行环境要求
未说明
未说明

快速开始
硬件
相机技术&参数
相机生产厂家汇总
| 公司名称 | 主要业务 | 岗位 | base |
|---|---|---|---|
| 海康威视 | 安防监控、机器视觉解决方案 | 机器视觉算法、三维重建算法、立体视觉算法 | 杭州 |
| 大华 | 视频监控、机器视觉系统 | 机器视觉算法、立体视觉算法 | 杭州 |
| 奥比中光 | 3D相机、3D视觉解决方案 | 3D视觉、三维重建、立体视觉 | 深圳/西安/上海 |
| 北京凌云光技术集团 | 工业视觉、解决方案、3D相机 | 图像算法 | 北京 |
| 大恒图像 | 机器视觉系统、3D相机、3D传感器 | 图像算法、机器视觉算法 | 北京 |
| 基恩士 | 机器视觉解决方案、视觉产品 | 上海/苏州 | |
| 康耐视 | 机器视觉解决方案、传感器 | 机器视觉 | 上海/苏州/杭州 |
| 埃尔森智能科技 | 机器人3D视觉、3D相机、结构光 | 郑州 | |
| 立体视觉、双目感知 | 北京 | ||
| 阿丘科技 | AI视觉解决方案 | AI算法、视觉算法、机器视觉 | 北京/苏州/深圳 |
| 图漾科技 | 3D视觉系统、产品 | 视觉算法、图像处理 | 上海 |
| 精锐视觉 | 工业AI视觉 | 图像算法 | 深圳/上海 |
| 华夏视科 | 工业视觉、图像检测 | 图像算法 | 北京/上海 |
| Sick(德国) | 机器视觉解决方案 | 机器视觉工程师 | 北京/上海/深圳/广州 |
| 光鉴科技 | 3D视觉解决方案 | TOF算法、3D视觉算法 | 上海 |
| 征图新视 | 机器视觉解决方案 | 机器视觉、深度学习 | 深圳/常州/苏州 |
| 中星微电子 | 图像芯片 | 深度学习、视频图像处理 | 北京/上海 |
| 捷尚视觉 | 视频智能分析 | 图像算法 | 杭州 |
| 先临三维科技 | 三维扫描仪、三维成像 | 三维视觉算法、点云算法 | 杭州 |
| 华睿科技 | 机器视觉 | 机器视觉工程师 | 杭州 |
| 蓝芯科技 | 视觉系统、3D视觉传感器 | 杭州 | |
| 微视图像 | 机器视觉、工业相机、3D相机 | 北京 | |
| 库柏特科技 | 机器人、3D视觉产品 | 武汉 | |
| 辰视智能 | 结构光、3D系统、双目、多目 | 深圳 | |
| 星上维智能科技 | 结构光、三维机器视觉、三维扫描仪 | 广州 | |
| 创科视觉 | 机器视觉系统、3D相机 | 深圳 |
相机标定
综述
单相机标定
- 相机标定误差因素分析
- Fully automatic camera calibration method based on circular markers基于圆形标志点的全自动相机标定方法
- Accurate camera calibration using iterative refinement of control points
- Accurate Feature Extraction and Control Point Correction for Camera Calibration with a Mono-Plane Target
- 基于主动红外辐射标定板的超广角红外相机标定
- 基于相位标靶的相机标定
- 基于广义成像模型的Scheimpflug相机标定方法
- 多几何约束下的鱼眼相机单像高精度标定
手眼标定
其它
3D全景相机
360°环视
鱼眼相机标定
A Practical Toolbox for Calibrating Omnidirectional Cameras
多相机拼接
主要通过SIFT、SURF、Harris等算法进行特征点对应匹配。
3D视觉资源汇总
书籍
- 视觉测量[张广军]
- 机器人视觉测量与控制[徐德,谭民,李原]
- Machine Vision 2016: Automated Visual Inspection: Theory, Practice and Applications
资源
https://github.com/timzhang642/3D-Machine-Learning
https://github.com/sunglok/3dv_tutorial(涉及SLAM、多视图几何代码示例)
SLAM
优秀开源项目汇总
https://github.com/OpenSLAM/awesome-SLAM-list
https://github.com/tzutalin/awesome-visual-slam
https://github.com/kanster/awesome-slam
https://github.com/YoujieXia/Awesome-SLAM
https://github.com/youngguncho/awesome-slam-datasets
https://github.com/marknabil/SFM-Visual-SLAM
https://github.com/ckddls1321/SLAM_Resources
激光SLAM
分为前端和后端。其中前端主要完成匹配和位置估计,后端主要完成进一步的优化约束。
整个SLAM大概可以分为前端和后端,前端相当于VO(视觉里程计),研究帧与帧之间变换关系。首先提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后利用RANSAC去除大噪声,然后进行匹配,得到一个pose信息(位置和姿态),同时可以利用IMU(Inertial measurement unit惯性测量单元)提供的姿态信息进行滤波融合。
后端则主要是对前端出结果进行优化,利用滤波理论(EKF、UKF、PF)、或者优化理论TORO、G2O进行树或者图的优化。最终得到最优的位姿估计。
数据预处理
点云匹配
地图构建
视觉SLAM
Books
- 视觉SLAM十四讲 高翔
- 机器人学中的状态估计
- 概率机器人
- Simultaneous Localization and Mapping for Mobile Robots: Introduction and Methods by Juan-Antonio Fernández-Madrigal and José Luis Blanco Claraco, 2012
- Simultaneous Localization and Mapping: Exactly Sparse Information Filters by Zhan Wang, Shoudong Huang and Gamini Dissanayake, 2011
- An Invitation to 3-D Vision -- from Images to Geometric Models by Yi Ma, Stefano Soatto, Jana Kosecka and Shankar S. Sastry, 2005
- Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman, 2004
- Numerical Optimization by Jorge Nocedal and Stephen J. Wright, 1999
课程与讲座
- SLAM教程@ICRA 2016
- 几何及其拓展——机器人学中的表示、物理建模与场景理解,于机器人:科学与系统会议(2016年)
- 机器人学 - 宾夕法尼亚大学,由Vijay Kumar在Coursera上主讲(2016年)
- 机器人地图构建 - 弗莱堡大学,由Gian Diego Tipaldi和Wolfram Burgard主讲(2015–2016年)
- 机器人地图构建 - 波恩大学,由Cyrill Stachniss主讲(2016年)
- 移动机器人导论 - 弗莱堡大学,由Wolfram Burgard、Michael Ruhnke和Bastian Steder主讲(2015–2016年)
- 计算机视觉II:多视图几何 - 慕尼黑工业大学,由Daniel Cremers主讲(2016年春季)
- 高级机器人学 - 加州大学伯克利分校,由Pieter Abbeel主讲(2015年秋季)
- 地图构建、定位与自动驾驶车辆,CMU RI研讨会上由John Leonard主讲(2015年)
- 移动传感器问题:为SLAM设定未来目标及进展指标,由澳大利亚机器人与视觉中心赞助(2015年)
- 机器人学 - 宾夕法尼亚大学,由Philip Dames和Kostas Daniilidis主讲(2014年)
- 飞行机器人自主导航,由Jurgen Sturm和Daniel Cremers在EdX上主讲(2014年)
- 面向自主机器人的鲁棒高效实时地图构建,CMU RI研讨会上由Michael Kaess主讲(2014年)
- KinectFusion:利用移动深度相机进行实时3D重建与交互,由David Kim主讲(2012年)
代码
| 项目 | 语言 | 许可证 |
|---|---|---|
| COSLAM | C++ | GNU通用公共许可证 |
| DSO-直接稀疏里程计 | C++ | GPLv3 |
| DTSLAM-延迟三角测量SLAM | C++ | 修改版BSD |
| LSD-SLAM | C++/ROS | GNU通用公共许可证 |
| MAPLAB-ROVIOLI | C++/ROS | Apachev2.0 |
| OKVIS:基于关键帧的开源视觉惯性SLAM | C++ | BSD |
| ORB-SLAM | C++ | GPLv3 |
| REBVO - 单目相机的实时边缘驱动视觉里程计 | C++ | GNU通用公共许可证 |
| SVO半直接视觉里程计 | C++/ROS | GNU通用公共许可证 |
计算机视觉
资源汇总
图书
- 计算机视觉:模型、学习与推理 - Simon J. D. Prince,2012年
- 计算机视觉:理论与应用 - Rick Szeliski,2010年
- 计算机视觉:现代方法(第2版) - David Forsyth和Jean Ponce,2011年
- 计算机视觉中的多视图几何 - Richard Hartley和Andrew Zisserman,2004年
- 视觉对象识别综合讲座 - Kristen Grauman和Bastian Leibe,2011年
- 用于视觉特效的计算机视觉 - Richard J. Radke,2012年
- 高动态范围成像:采集、显示与基于图像的光照 - Reinhard, E., Heidrich, W., Debevec, P., Pattanaik, S., Ward, G., Myszkowski, K,2010年
- 数值算法:用于计算机视觉、机器学习和图形学的方法 - Justin Solomon,2015年
课程
- EENG 512 / CSCI 512 - 计算机视觉 - William Hoff(科罗拉多矿业学院)
- 3D计算机视觉:过去、现在与未来
- 视觉目标与活动识别 - Alexei A. Efros 和 Trevor Darrell(加州大学伯克利分校)
- 计算机视觉 - Steve Seitz(华盛顿大学)
- 视觉识别 2016年春季、2016年秋季 - Kristen Grauman(德克萨斯大学奥斯汀分校)
- 语言与视觉 - Tamara Berg(北卡罗来纳大学教堂山分校)
- 用于视觉识别的卷积神经网络 - 李飞飞和Andrej Karpathy(斯坦福大学)
- 计算机视觉 - Rob Fergus(纽约大学)
- 计算机视觉 - Derek Hoiem(伊利诺伊大学厄巴纳-香槟分校)
- 计算机视觉:基础与应用 - Kalanit Grill-Spector 和 李飞飞(斯坦福大学)
- 高层视觉:行为、神经元与计算模型 - 李飞飞(斯坦福大学)
- 计算机视觉进展 - Antonio Torralba 和 Bill Freeman(麻省理工学院)
- 计算机视觉 - Bastian Leibe(亚琛工业大学)
- 计算机视觉2 - Bastian Leibe(亚琛工业大学)
- 计算机视觉 Pascal Fua(洛桑联邦理工学院):
- 计算机视觉1 Carsten Rother(德累斯顿工业大学):
- 计算机视觉2 Carsten Rother(德累斯顿工业大学):
- 多视图几何 Daniel Cremers(慕尼黑工业大学):
深度学习
Github 链接
1、https://github.com/ChristosChristofidis/awesome-deep-learning
2、https://github.com/endymecy/awesome-deeplearning-resources
机器学习
Github 链接
1、https://github.com/josephmisiti/awesome-machine-learning
3D点云
点云标注工具
开源
商用
商用软件很多,阿里、腾讯、百度、京东都有对应业务
点云获取
传统的点云获取技术包括非接触式测量和接触式测量两种,它们的主要区别在于,在测量过程中测头是否与工件的表面相接触。
非接触式测量是利用光学原理的方法采集数据,例如结构光法、测距法以及干涉法等。该方法的优点在于测量速度较快、测量精度高,并且能够获得高密度点云数据,但其测量精度易受外界因素干扰,而且测量物体表面的反射光与环境光对测量精度也有一定影响。
相反,接触式测量是通过将测头上的测量传感器与被测物体的外表面相接触,然后通过移动测头来读取物体表面点的三维坐标值。该方法的优点在于测头的结构相对固定,并且其测量结果不受被测物体表面的材料与表面特性等因素的影响。这种方法的不足在于,由于测头长期与被测物体表面相接触,易产生磨损,并且这种测量方式的测量速度较慢,不适合测量几何结构较复杂的物体。
点云应用场景
逆向工程、游戏人物重建、文物保护、数字博物馆、医疗辅助、三维城市建模
点云种类
不同的点云获取技术获取的点云数据类型不同,根据点云数据中点的分布情况可将点云数据划分为以下四种类型
散乱点云
散乱点云是指所有数据点在空间中以散乱状态分布,任意两点之间没有建立拓扑连接关系。一般而言,激光点测量系统获得的点云数据以及坐标测量机在随机扫描状态下获得的点云数据都为散乱点云数据。
扫描线点云
测量设备所获得的三维点云数据是由多条直线或曲线构成,点与点之间有一定的拓扑连接关系。一般而言,这种点云数据类型常见于扫描式点云数据中。
网格化点云
网格化点云是指点云数据中任意一点,均对应于其参数域所对应的一个均匀网格的顶点。当对空间散乱点云进行网格化插值时,所获得的点云数据即为网格化点云数据。
多边形点云
多边形点云是指分布在一组平面内的点云数据,该组平面内的平面两两互相平行,并且一个平面内距离最近的点连接起来可以形成平面多边形。这种点云数据常见于等高线测量、CT 测量等获得的点云数据中。
点云去噪&滤波
主要包括双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致滤波、VoxelGrid滤波等
三角网格去噪算法、
- 基于K-近邻点云去噪算法的研究与改进
- Point cloud denoising based on tensor Tucker decomposition
- 3D Point Cloud Denoising using Graph Laplacian Regularization of a Low Dimensional Manifold Model
有序点云去噪
孤立点排异法、曲线拟合法、弦高差法、全局能量法和滤波法.
孤立点排异法是通过观察点云数据,然后将与扫描线偏离较大的点剔除掉,从而达到去噪的目的。这类方法简单,可除去比较明显的噪声点,但缺点是只能对点云做初步的去噪处理,并不能滤除与真实点云数据混合在一起的噪声数据点。曲线拟合法是根据给定数据点的首末点,然后通过最小二乘等方法拟合一条曲线,通常为3到4 阶,最后计算中间的点到该曲线的距离,如果该距离大于给定阈值,则该点为噪声点,予以删除,相反,如果该距离小于给定阈值,则该点为正常点,应该保留。弦高差法通过连接给定点集的首末点形成弦,然后求取中间每个点到该弦的距离,如果该距离小于给定阈值,则该点为正常点,予以保留,相反,若大于给定阈值,则该点为噪声点,予以删除。全局能量法通常用于网格式点云去噪,它通过建立整个曲面的能量方程,并求该方程在约束情况下的能量值的最小值。可以看出,这是一个全局最优化问题,因为网格数量比较大,因此会消耗大量的计算机资源与计算时间,而且由于约束方程是建立在整体网格的基础上,所以对于局部形状的去噪效果并不是很好。滤波法也是一种常用的有序点云去噪方法,它通过运用信号处理中的相关方法,使用合适的滤波函数对点云数据进行去噪处理,常用的滤波方法主要包括高斯滤波、均值滤波以及中值滤波法等。
无序点云去噪&空间散乱点云去噪算法
目前,针对空间散乱点云数据去噪方法,主要分为两类方法,即基于网格模型的去噪方法和直接对空间点云数据进行去噪的方法。
其中,基于网格模型的去噪方法需要首先建立点云的三角网格模型,然后计算所有三角面片的纵横比和顶点方向的曲率值,并将该值与相应的阈值进行比较,若小于阈值,则为正常点,予以保留,相反,则为噪声点,予以删除。由于该方法需要对空间点云数据进行三角网格剖分,所以,往往比较复杂,并需要大量计算。
点云精简
采用三维激光扫描仪获得的点云数据往往十分密集,点云数据中点的数量往往高达千万级甚至数亿级,即使对点云数据进行了去噪处理,点云数据中点的数量还是很多,所以往往不会直接使用这些原始点云数据进行曲面重建等工作,因为这会使后续处理过程变得耗时并且消耗过多的计算机资源,而且重构的曲面,其精度也不一定高,甚至出现更大的误差。所以,在进行空间点云曲面重建之前,往往需要对高密度的点云数据进行点云精简操作。点云精简的目的是在保持原始点云的形状特征以及几何特征信息的前提下,尽量删除多余的数据点。
目前,空间散乱点云数据的精简方法主要分为两大类:基于三角网格模型的空间点云精简方法与直接基于数据点的空间点云精简方法。
其中,基于三角网格模型的空间点云精简方法需要先对点云数据进行三角剖分处理,建立其相应的三角网格拓扑结构,然后再对该三角网格进行处理,并将区域内那些形状变化较小的三角形进行合并,最后删除相关的三角网格顶点,从而达到点云数据精简的目的。这种方法需要对点云数据建立其相应的三角网格,该过程比较复杂,且因为需要存储网格数据,故需要消耗大量的计算机系统资源,并且该方法的抗噪能力较弱,对含有噪声的点云数据,构造的三角网格可能会出现变形等情况,因此精简后的点云数据经过曲面重建后的模型与原始点云经过曲面重建后的模型可能大不相同。因此,目前关于直接基于点云数据的精简方法成为点云精简方法的主流。这种方法依据点云数据点之间的空间位置关系来建立点云的拓扑连接关系,并根据建立的拓扑连接关系计算点云数据中每个数据点的几何特征信息,最后根据这些特征信息来对点云数据进行点云精简处理。相比基于三角网格的空间点云精简方法,由于直接基于点云数据点的精简方法无需计算和存储复杂的三角网格结构,使得其精简的效率相对较高。因此,本章只研究直接基于空间点云数据的精简算法。
其中基于空间点云精简方法主要有:空间包围盒法、基于聚类的方法、法向偏差法、曲率精简法、平局点距法以及均匀栅格划分法。
Paper
- 点模型的几何图像简化法
- 基于相似性的点模型简化算法
- 基于最小曲面距离的快速点云精简算法
- 大规模点云选择及精简
- 一种基于模糊聚类的海量测量数据简化方法
- 基于均值漂移聚类的点模型简化方法
- 基于局部曲面拟合的散乱点云简化方法
点云关键点
常见的三维点云关键点提取算法有一下几种:ISS3D、Harris3D、NARF、SIFT3D,这些算法在PCL库中都有实现,其中NARF算法是用的比较多的
点云描述
如果要对一个三维点云进行描述,光有点云的位置是不够的,常常需要计算一些额外的参数,比如法线方向、曲率、文理特征等等。如同图像的特征一样,我们需要使用类似的方式来描述三维点云的特征。
常用的特征描述算法有:法线和曲率计算、特征值分析、PFH、FPFH、SHOT、VFH、CVFH、3D Shape Context、Spin Image等。PFH:点特征直方图描述子,FPFH:跨苏点特征直方图描述子,FPFH是PFH的简化形式。
点云线、面拟合
针对直线拟合:RANSAC算法、最小二乘法、平面相交法
针对曲线拟合:拉格朗日插值法、最小二乘法、Bezier曲线拟合法、B样条曲线法(二次、三次B样条曲线拟合)
针对平面拟合:主成成分分析、最小二乘法、粗差探测法、抗差估计法
针对曲面拟合:最小二乘法(正交最小二乘、移动最小二乘)、NURBS、 Bezier
- 三维激光扫描拟合平面自动提取算法
- 点云平面拟合新方法
- 海量散乱点的曲面重建算法研究
- 一种稳健的点云数据平面拟合方法
- 迭代切片算法在点云曲面拟合中的应用
- 基于最小二乘的点云叶面拟合算法研究
- 点云曲面边界线的提取
点云体积计算
基于三维点云求取物理模型体积的研究算法大致可分为以下 4 大类。
1.凸包算法:使用凸包模型近似表示不规则体,再通过把凸包模型切片分割进行累加、或将凸包模型分解为上下两个三角网格面,采用正投影法求取两者的投影体积,其差即所求体积。此方法适用于凸模型,非凸模型误差较大。
2.模型重建法:在得到点云数据后,使用三角面片构建物理模型的方法求得体积。该算法受点云密度、生成的三角网格数量、点精度影响较大,易产生孔洞。
3.切片法:将点云沿某一坐标轴方向进行切片处理,再计算切片上下两表面的面积,通过累加切片体积求得总体积。该方法受到切片厚度的影响,切片厚度越小,计算精度越高但会导致计算效率下降。
4.投影法:先将点云投影进行三角形剖分,再将投影点与其原对应点构建出五面体,通过累加五面体体积求得总体积。该算法同样容易产生孔洞。上述算法,无论是通过三维点云先构建物理模型再求体积、还是基于三维点云通过几何方法直接求体积,当激光雷达采集的三维点云存在密度不均匀、空间物体存在过渡带或过渡线等问题时,重建三维模型的误差较大,体积计算精度不高。
点云识别&分类
分类:基于点的分类,基于分割的分类,监督分类与非监督分类
除此之外,还可以基于描述向量/关键点描述进行分类。
- 3D ShapeNets: 一种用于体积形状的深度表示
- PartNet:一个大规模基准数据集,用于细粒度和层次化的零件级3D对象理解
- 重新审视点云分类:真实世界数据上的新基准数据集和分类模型
- 逃离细胞:用于识别3D点云模型的深度Kd网络[ICCV2017]
- [ICCV2017] 再次探讨彩色点云配准。
- [ICRA2017] SegMatch:基于片段的3D点云场景识别。
- [IROS2017] 使用点卷积网络进行3D物体分类。
- [CVPR2018] 点卷积神经网络。
- [CVPR2018] SO-Net:用于点云分析的自组织网络。
- [CVPR2018] PointNetVLAD:基于深度点云的大规模场景识别检索。
- [CVPR2019] 用于点云识别的球形分形卷积神经网络。
- [MM] MMJN:用于3D形状识别的多模态联合网络。
点云匹配、配准、对齐与注册
点云配准的概念可以类比于二维图像中的配准,只不过二维图像配准获取的是x、y、alpha、beta等放射变换参数,而三维点云配准则是模拟三维点云的移动和对齐,即会得到一个旋转矩阵和一个平移向量,通常表示为一个4×3的矩阵,其中3×3是旋转矩阵,1×3是平移向量。严格来说是6个参数,因为旋转矩阵也可以通过罗格里德斯变换转换成1×3的旋转向量。
常用的点云配准算法有两种:正态分布变换和著名的ICP点云配准,此外还有许多其它算法,列举如下:
ICP:稳健ICP、点到平面ICP、点到线ICP、MBICP、GICP
NDT 3D、多层NDT
FPCS、KFPSC、SAC-IA
直线段匹配、ICL
- 一种使用点到线度量的ICP变体
- 广义ICP
- 用于点到平面ICP表面配准的线性最小二乘优化
- 基于度量的迭代最近点扫描匹配用于传感器位移估计
- NICP:基于密集法线的点云配准
- 利用贝叶斯非参数混合模型进行高效的全局点云对齐[CVPR2017]
- 3DMatch:从RGB-D重建中学习局部几何描述子[CVPR2017]
- [CVPR2018] 密度自适应点集配准。
- [CVPR2018] 用于点云配准的逆组合判别优化。
- [CVPR2018] PPFNet:具有全局上下文感知的局部特征,用于鲁棒的3D点匹配。
- [ECCV2018] 学习和匹配多视图描述子,用于点云配准。
- [ECCV2018] 3DFeat-Net:弱监督下的局部3D特征,用于点云配准。
- [ECCV2018] 通过平移搜索匹配旋转不变特征,实现高效的全局点云配准。
- [IROS2018] 考虑各向异性位置不确定性的期望最大化方法,用于鲁棒的广义点云配准。
- [CVPR2019] PointNetLK:使用PointNet进行点云配准。
- [CVPR2019] SDRSAC:基于半正定规划的随机化方法,用于无对应关系的鲁棒点云配准。
- [CVPR2019] 完美匹配:采用平滑密度进行3D点云匹配。
- [CVPR] FilterReg:利用高斯滤波器和扭转参数化进行鲁棒高效的概率点集配准。
- [CVPR2019] 用于直接成对配准的3D局部特征。
- [ICCV2019] DeepICP:端到端的深度神经网络,用于3D点云配准。
- [ICCV2019] 深度最近点:学习用于点云配准的表征。
- [ICRA2019] 2D3D-MatchNet:学习在2D图像和3D点云之间匹配关键点。
- [CVPR2019] 完美匹配:采用平滑密度进行3D点云匹配。
- [CVPR2019] 用于直接成对配准的3D局部特征。
- [ICCV2019] 鲁棒的变分贝叶斯点集配准。
- [ICRA2019] 用于剔除异常值的低重叠率3D点云配准。
- 学习多视图3D点云配准[CVPR2020]
点云匹配质量评估
- [IROS2017] 分析物体匹配后的3D点云质量。
点云分割
点云分割也是一个很大的研究方向,由于多了一维,相比二维图像就多了许多复杂的问题。点云分割可以分为区域提取、线面提取、语义分割和聚类等。同样是分割问题,点云分割涉及的内容非常广泛,确实不是三言两语就能说清楚的。只能从字面上去理解,遇到具体问题时再进行具体的分类。一般来说,点云分割是目标识别的基础。
分割方法主要有四种:基于边的区域分割、基于面的区域分割、基于聚类的区域分割、混合区域分割方法以及深度学习方法。
分割技术包括:区域声场、RANSAC线面提取、NDT-RANSAC、K-Means(谱聚类)、Normalize Cut、3D Hough变换(线面提取)、连通分析。
- 基于局部表面凸性的散乱点云分割算法研究
- 三维散乱点云分割技术综述
- 基于聚类方法的点云分割技术的研究
- SceneEncoder: 基于可学习场景描述符的场景感知点云语义分割
- 从平面到角点:无序三维点云中的多用途基元检测
- 用于三维点云语义与实例分割的代表性原型学习与记忆
- JSNet: 三维点云的联合实例与语义分割
- PointNet: 面向三维分类与分割的点集深度学习
- PointNet++: 度量空间中点集的深度层次特征学习
- SyncSpecCNN: 用于三维形状分割的同步频谱卷积神经网络,CVPR2017
- [ICRA2017] SegMatch: 基于分割的三维点云地点识别。
- [3DV2017] SEGCloud: 三维点云的语义分割。
- [CVPR2018] 用于点云三维分割的循环切片网络。
- [CVPR2018] SGPN: 用于三维点云实例分割的相似性组提案网络。
- [CVPR2018] 基于超点图的大规模点云语义分割。
- [ECCV2018] 具有上下文融合的3D递归神经网络,用于点云语义分割。
- [CVPR2019] JSIS3D: 基于多任务逐点网络和多值条件随机场的三维点云联合语义-实例分割。
- [CVPR2019] PartNet: 用于细粒度和层次化形状分割的递归零件分解网络。
- [ICCV2019] 通过多任务度量学习实现的3D实例分割。
- [IROS2019] PASS3D: 用于三维点云的精确且加速的语义分割。
点云目标检索
这是点云数据处理中一个偏应用层面的问题。简单来说,Hausdorff距离常被用来进行深度图的目标识别和检索。如今,许多三维人脸识别都是用这种技术来实现的。
点云三维重建
我们获取到的点云数据都是一个个孤立的点,如何从一个个孤立的点得到整个曲面呢?这就是三维重建的主题。
在使用kinectFusion时,如果不了解相关原理,会发现重建出的曲面逐渐变得平缓,这正是重建算法不断迭代的效果。我们采集到的点云往往充满噪声和孤立点,而三维重建算法为了重构出光滑的曲面,常常需要处理这些噪声,从而获得视觉上较为舒适的曲面。
常用的三维重建算法和技术有:
泊松重建、Delauary三角化
表面重建、人体重建、建筑物重建、输入重建
实时重建:重建纸杯或农作物4D生长台式,人体姿势识别,表情识别
- 改进的点云数据三维重建算法
- 具有极大规模和密度多样性的点云可扩展表面重建,CVPR2017
- [ICCV2017] PolyFit: 基于点云的多边形表面重建。
- [ICCV2017] 使用回归从点云生成网格。
- [ECCV2018] 使用变形矢量场高效密集地重建点云物体。
- [ECCV2018] HGMR: 用于自适应3D配准的层次化高斯混合模型。
- [AAAI2018] 学习高效的点云生成方法,用于密集的3D物体重建。
- [CVPR2019] 基于点云的大型户外场景鲁棒重建。
- [AAAI2019] CAPNet: 基于2D监督的连续近似投影,用于3D点云重建。
- [MM] L2G 自编码器:通过层次化的自我注意力实现由局部到全局的点云重建,从而更好地理解点云。
- SurfNet: 使用深度残差网络生成3D形状表面
点云其他
- [CVPR2018] 大规模三维点云的反射去除。
- [ICML2018] 学习三维点云的表示和生成模型。
- [3DV] PCN: 点补全网络。
- [CVPR2019] PartNet: 一个用于细粒度和层次化零件级3D对象理解的大规模基准测试。
- [CVPR2019] ClusterNet: 具有严格旋转不变表示的深度层次聚类网络,用于点云分析。
- [ICCV2019] LPD-Net: 用于大规模地点识别和环境分析的3D点云学习。
- [ICRA2019] 使用随机梯度下降加速最近点迭代。
点云数据集
- [KITTI] KITTI 视觉基准测试套件。
- [ModelNet] 普林斯顿 ModelNet 数据集。
- [ShapeNet] 普林斯顿大学、斯坦福大学和 TTIC 研究人员合作构建的共享数据集。
- [PartNet] PartNet 数据集提供了 ShapeNetCore 中物体的细粒度部件标注。
- [PartNet] 来自南京大学和国防科技大学的 PartNet 基准测试数据集。
- [S3DIS] 斯坦福大规模室内场景 3D 数据集。
- [ScanNet] 丰富标注的室内场景 3D 重建数据集。
- [Stanford 3D] 斯坦福 3D 扫描资源库。
- [UWA 数据集]。
- [普林斯顿形状基准测试] 普林斯顿形状基准测试数据集。
- [悉尼城市物体数据集] 该数据集包含使用 Velodyne HDL-64E 激光雷达扫描的多种常见城市道路物体,采集于澳大利亚悉尼市中心商业区。共包含 631 个独立扫描,涵盖车辆、行人、标志和树木等类别。
- [ASL 数据集仓库(ETH)] 该网站致力于为机器人社区提供数据集,以促进结果评估和比较。
- [ETH 大规模点云分类基准测试] 该基准填补了空白,提供了一个包含超过 40 亿个点的大型自然场景标注 3D 点云数据集。
- [机器人 3D 扫描资源库] 加拿大行星模拟地形 3D 地图数据集是由在加拿大两个独特的行星模拟探测器测试设施中收集的三维激光扫描数据组成。
- [Radish] 机器人数据集存储库(简称 Radish)提供了一系列标准的机器人数据集。
- [IQmulus & TerraMobilita 比赛] 该数据库包含来自法国巴黎密集城市环境的 3D MLS 数据,由 3 亿个点组成。数据采集于 2013 年 1 月。
- [奥克兰 3D 点云数据集] 该资源库包含从移动平台上在城市环境中采集的带标签的 3D 点云激光数据。
- [机器人 3D 扫描资源库] 该资源库提供机器人实验中的 3D 点云数据、机器人运行的日志文件以及面向机器人社区的标准 3D 数据集。
- [福特校园视觉与激光雷达数据集] 该数据集由基于改装福特 F-250 皮卡的自主地面车辆试验平台收集。
- [斯坦福轨迹集合] 该数据集包含约 14,000 条由 Velodyne HDL-64E S2 激光雷达在自然街道场景中观测到的物体轨迹标注。
- [PASCAL3D+] 超越 PASCAL:野外 3D 物体检测基准测试。
- [3D MNIST] 该数据集旨在为 3D 计算机视觉问题(如 3D 形状识别)提供一个简单的入门途径。
- [WAD] [ApolloScape] 这些数据集由百度公司提供。
- [nuScenes] nuScenes 数据集是一个大规模的自动驾驶数据集。
- [PreSIL] 包含深度信息、语义分割(图像)、逐点分割(点云)、地面点标签(点云)以及所有车辆和行人详细的标注。[论文]
- [3D Match] 关键点匹配基准测试、几何配准基准测试以及 RGB-D 重建数据集。
- [BLVD] (a) 3D 检测,(b) 4D 跟踪,(c) 5D 交互式事件识别,以及 (d) 5D 意图预测。[ICRA 2019 论文]
- [PedX] 行人 3D 姿态估计,超过 5,000 对高分辨率(12MP)立体图像及 LiDAR 数据,并提供行人的 2D 和 3D 标注。[ICRA 2019 论文]
- [H3D] 全景 3D 多目标检测与跟踪数据集。[ICRA 2019 论文]
- [Matterport3D] RGB-D:由 194,400 张 RGB-D 图像生成的 10,800 张全景视图。标注包括表面重建、相机姿态以及 2D 和 3D 语义分割。还涉及关键点匹配、视图重叠预测、基于颜色的法线预测、语义分割和场景分类。[3DV 2017 论文] [代码] [博客]
- [SynthCity] SynthCity 是一个包含 3.679 亿个点的合成全彩色移动激光扫描点云数据集,涵盖九个类别。
- [Lyft Level 5] 包括高质量、人工标注的交通参与者 3D 包围盒,以及底层的高清空间语义地图。
- [SemanticKITTI] 面向自动驾驶的序列化语义分割,共 28 个类别。KITTI 测距的所有序列均已标注。[ICCV 2019 论文]
- [NPM3D] 巴黎-里尔-3D 数据集由移动激光系统(MLS)在法国两个不同城市(巴黎和里尔)采集而成。
- [Waymo 开放数据集] Waymo 开放数据集由 Waymo 自动驾驶汽车在各种条件下收集的高分辨率传感器数据组成。
- [A*3D:挑战性环境下的自动驾驶数据集] A*3D:挑战性环境下的自动驾驶数据集。
- [PointDA-10 数据集] 面向点云的领域适应。
- [牛津 Robotcar 数据集] 该数据集记录了多种不同的天气、交通和行人组合情况。
三维重建
资料汇总:https://github.com/openMVG/awesome_3DReconstruction_list
单目图像
主要分为基于SfM的三维重建和基于深度学习的三维重建方法。SfM方法将在下一节详细介绍,而基于深度学习的方法则主要通过RGB图像生成深度图。
论文
- 基于左右一致性约束的无监督单目深度估计
- 视频中深度与自运动的无监督学习
- 用于单目深度估计的深度序数回归网络
- 来自野外视频的深度信息
- 基于注意力机制的上下文聚合网络用于单目深度估计
- 使用多尺度深度网络从单张图像预测深度图(NIPS2014)
- 利用通用的多尺度卷积架构预测深度、表面法向量和语义标签(ICCV2015)
- 基于全卷积残差网络的更深层次深度预测
- 多尺度连续条件随机场作为序列式深度网络用于单目深度估计(CVPR2017)
- 单视图立体匹配
带代码的项目
结构光
结构光投影三维成像目前是机器人3D 视觉感知的主要方式,结构光成像系统是由若干个投影仪和 相机组成, 常用的结构形式有: 单投影仪-单相机、单投影仪-双相机 、单投影仪-多相机、单相机-双投影 仪和单相机-多投影仪等典型结构形式.
结构光投影三维成像的基本工作原理是:投影仪向目标物体投射特定的结构光照明图案,由相机摄取被目标调制后的图像,再通过图像处理和视觉模型求出目标物体的三维信息. 常用的投影仪主要有下列几种类型:液晶投影(LCD)、数字光调制投影(DLP)[如数字微镜器件 (DMD)]、激光 LED图案直接投影. 根据结构光投影次数划分,结构光投影三维成像可以分成单次投影3D和多次投影3D方法.
按照扫描方式又可分为:线扫描结构光、面阵结构光
参考链接:https://zhuanlan.zhihu.com/p/29971801
综述
Structured-light 3D surface imaging: a tutorial
Real-time structured light profilometry a review
A state of the art in structured light patterns for surface profilometry
Phase shifting algorithms for fringe projection profilometry: a review
Overview of the 3D profilometry of phase shifting fringe projection
Temporal phase unwrapping algorithms for fringe projection profilometry:a comparative review
Lectures&Video
- Build Your Own 3D Scanner: Optical Triangulation for Beginners
- https://github.com/nikolaseu/thesis
- CS6320 3D Computer Vision, Spring 2015
标定
- 高效线结构光视觉测量系统标定方法
- 一种新的线结构光标定方法
- 一种结构光三维成像系统的简易标定方法
- 基于单应性矩阵的线结构光系统简易标定方法
- 线结构光标定方法综述
- 三线结构光视觉传感器现场标定方法
- 单摄像机单投影仪结构光三维测量系统标定方法
- 超大尺度线结构光传感器内外参数同时标定
- 单摄像机单投影仪结构光三维测量系统标定方法
- 三维空间中线结构光与相机快速标定方法
- 线结构光传感系统的快速标定方法
单次投影成像
单次投影结构光主要采用空间复用编码和频率复用编码形式实现 ,常用的编码形式有:彩色编码 、灰度索引、 几何形状编码和随机斑点. 目前在机器人手眼系统应用中,对于三维测量精度要求不高的场合,如码垛、拆垛、三维抓取等,比较受欢迎的是投射伪随机斑点获得目标三维信息 。
One-shot pattern projection for dense and accurate 3D acquisition in structured light
A single-shot structured light means by encoding both color and geometrical features
Dynamic 3D surface profilometry using a novel colour pattern encoded with a multiple triangular mode
Review of single-shot 3D shape measurement by phase calculation-based fringe projection techniques
Robust pattern decoding in shape-coded structured light
多次投影成像
多次投影3D方法主要采用时间复用编码方式实现,常用的图案编码形式有:二进制编码、多频相移编码和混合编码法(如格雷码+相移条纹)等.
但是格雷码方法仅能在投射空间内进行离散的划分,空间分辨率受到成像器件的限制. 为了提高空间分辨率,需要增加投影条纹幅数,投射条纹宽度更小的格雷码条纹图,但条纹宽度过小会导致格雷码条纹的边缘效应,从而引 起解码误差.
正弦光栅条纹投影克服了格雷码空间离散划分的缺点,成为使用率最高的结构光类型之一. 众所周知,对于复杂外形,如有空洞、阶梯、遮挡等,采用正弦单频相移法条纹投影时,存在相位解包裹难题.另外为了能够从系列条纹图中求出相位绝对值,需要在条纹中插入特征点,比如一个点、一条线作为参考相位点,但是这些点或线特征标志有可能投影在物体的遮挡或阴影区域,或受到环境光等干扰等,发生丢失,影响测量结果的准确性. 因此,对于复杂轮廓的物体,常采用多频相移技术.
- 三维重建的格雷码-相移光编码技术研究
- Pattern codification strategies in structured light systems
- Binary coded linear fringes for three-dimensional shape profiling
- 3D shape measurement based on complementary Gray-code light
- Phase shifting algorithms for fringe projection profilometry: a review
- Overview of the 3D profilometry of phase shifting fringe projection
- Temporal phase unwrapping algorithms for fringe projection profilometry:a comparative review
- A multi-frequency inverse-phase error compensation method for projectornon linear in3D shape measurement
偏折法成像
对于粗糙表面,结构光可以直接投射到物体表面进行视觉成像测量;但对于大反射率光滑表面和镜面物体3D 测量,结构光投影不能直接投射到被测表面,3D测量还需要借助镜面偏折技术 .
- Principles of shape from specular reflection
- Deflectometry: 3D-metrology from nanometer to meter
- Three-dimensional shape measurement of a highly reflected specular surface with structured light method
- Three-dimensional shape measurements of specular objects using phase-measuring deflectometry
由于单次投影曝光和测量时间短,抗振动性能好,适合运动物体的3D测量,如机器人实时运动引导,手眼机器人对生产线上连续运动产品进行抓取等操作. 但深度垂直方向上的空间分辨率受到目标视场、镜头倍率和相机像素等因素的影响,大视场情况下不容易提升.
多次投影方法(如多频条纹方法)具有较高空间分辨率,能有效地解决表面斜率阶跃变化和空洞等难题. 不足之处在于:① 对于连续相移投影方法,3D重构的精度容易受到投影仪、相机的非线性和环境变化的影响;②抗振动性能差,不合适测量连续运动的物体;③在 Eye-in-Hand视觉导引系统中,机械臂不易在连续运动时进行3D成像和引导;④实时性差,不过随着投影仪投射频率和 CCD/CMOS图像传感器采集速度的提高,多次投影方法实时3D 成像的性能也在逐步改进.
偏折法对于复杂面型的测量,通常需要借助多次投影方法,因此具有多次投影方法相同的缺点.另外偏折法对曲率变化大的表面测量有一定的难度,因为条纹偏折后的反射角的变化率是被测表面曲率变化率的2倍,因此对被测物体表面的曲率变化比较敏感,很容易产生遮挡难题.
其他论文
- 基于面结构光的三维重建阴影补偿算法
- 用于工业三维检测自动化的增强相位测量轮廓术
- 结合两步时间相位解包裹、同相位轮廓术和相移干涉法的三维不连续固体轮廓术
- 利用两台投影仪和一台相机进行同相位操作的不连续固体360度轮廓术
- 基于单相机N次投影的相干数字解调技术,用于三维物体形状测量——同相位轮廓术
- 使用编码结构光投影的高速三维图像采集
- 利用结构光系统进行精确的三维测量
- 采用动态伪随机图案的结构光立体成像
- 利用循环信念传播实现稳健的一次性三维扫描
- 针对结构光的网格图案鲁棒分割与解码
- 利用彩色结构光和多遍动态规划快速获取形状
- [改进的彩色编码结构光条纹匹配]()
- 一次性密集图案投影的绝对相位映射
- 三维数字立体摄影:面部图像采集实用指南
- 一种使用具有多个子图案的光图案进行三维成像的方法及装置
- 高速激光三维成像仪
- 具有反射元件的三维牙科成像方法及装置
- 使用单一光谱条件的三维表面轮廓成像方法及装置
- 使用单一光谱条件的三维表面轮廓成像方法及装置
- 高速三维成像方法
- 用于三维建模的手持式光度立体相机
- 基于相移法的高分辨率、实时三维绝对坐标测量
- 一种快速的三步相移算法
代码
- https://github.com/jakobwilm/slstudio
- https://github.com/phreax/structured_light
- https://github.com/nikolaseu/neuvision
- https://github.com/pranavkantgaur/3dscan
扫描3D成像
扫描3D成像方法可分为扫描测距、主动三角法、色散共焦法等。扫描3D成像的最大优点是测量精度高,其中 色散共焦法还有其他方法难以比拟的优点,即非常适合测量透明物体、高反与光滑表面的物体. 但缺点是速度慢、效率低;当用于机械手臂末端时,可实现高精度3D测量,但不适合机械手臂实时3D引导与定位,因此应用场合有限;另外主动三角扫描在测量复杂结构形貌时容易产生遮挡,需要通过合理规划末端路径与姿态来解决.
扫描测距
扫描测距是利用一条准直光束通过一维测距扫描整个目标表面实现3D测量,主要包括:单点飞行时间法、激光散射干涉法、 共焦法。
单点测距扫描3D方法中,单点飞行时间法适合远距离扫描,测量精度较低,一般在毫米量级. 其他几种单点扫描方法有:单点激光干涉法、共焦法和单点激光主动三角法,测量精度较高,但前者对环境要求高;线扫描精度适中,效率高. 比较适合于机械手臂末端执行3D测量的应是主动激光三角法和色散共焦法.
Paper
- 主动光学测距成像传感器
- 用于机器人技术的主动与被动测距
主动三角法
主动三角法是基于三角测量原理,利用准直光束、一条或多条平面光束扫描目标表面完成3D测量的. 光束常采用以下方式获得:激光准直、圆柱或二次曲面柱形棱角扩束,非相干光(如白光、LED 光源)通过小孔、狭缝(光栅)投影或相干光衍射等. 主动三角法可分为三种类型:单点扫描、单线扫描和多线扫描
Paper
- 不同3D扫描仪和扫描技术的综述
- 使用带有激光三角测量传感器的合作机器人进行3D计量
- 飞行三角测量——一种运动鲁棒的光学3D测量原理简介
- 飞行三角测量——一种用于复杂物体运动鲁棒采集的光学3D传感器
- 结合简单光切法与实时算法的手动引导三维表面采集
色彩共焦法
色散共焦似乎可以扫描测量粗糙和光滑的不透明和透明物体,如反射镜面、透明玻璃面等,目前在手机盖板三维检测等领域广受欢迎。色散共焦扫描有三种类型:单点一维绝对测距扫描、多点阵列扫描和连续线扫描。
Paper
- 色彩共焦成像系统的光谱特性
- 光谱复用的色彩共焦多点传感
- 带有可驱动针孔阵列的色彩共焦矩阵传感器
- 结合色彩共焦和三角测量原理的高速3D测量并行采集方案
- 结合色彩共焦和三角测量原理的快速3D线传感器,适用于镜面和漫反射表面
- 通过色彩裂隙扫描共焦显微镜实现的一次性深度截面成像
- 利用光束扫描型色彩共焦显微镜进行三维表面轮廓测量
立体视觉3D成像
立体视觉字面意思是用一只眼睛或两只眼睛感知三维结构,一般情况下是指从不同的视点获取两 幅或多幅图像重构目标物体3D结构或深度信息. 深度感知视觉线索可分为 Monocular cues 和 Binocular cues(双目视差). 目前立体视觉3D 可以通过单目视觉、双目视觉、多 (目) 视觉、光场3D 成像(电子复眼或阵列相机)实现.
书籍
教程
- 立体视觉书籍推荐&立体匹配十大概念综述---立体匹配算法介绍
- 【关于立体视觉的一切】立体匹配成像算法BM,SGBM,GC,SAD一览
- StereoVision--立体视觉(1)
- StereoVision--立体视觉(2)
- StereoVision--立体视觉(3)
- StereoVision--立体视觉(4)
- StereoVision--立体视觉(5)
综述
单目视觉成像
单目视觉深度感知线索通常有:透视、焦距差异 、多视觉成像、覆盖、阴影 、运动视差等.
- 基于几何透视提取深度图——一种适用的2D转3D转换技术
- 对焦线索影响感知深度
- 基于“由焦距推断形状”技术的3D图像采集系统
- 多视角立体:教程
- 从多张图像重建3D——第一部分:原理
- 利用透视“由阴影推断形状”重建混合表面
- “由阴影推断形状”的数值方法——一项包含基准的新综述
- 运动视差感知深度的神经基础
- 立体3D中的运动视差
- 基于视差运动的3D图像传感器
双目视觉
在机器视觉中,利用两个相机从两个不同的视角拍摄同一场景,获取两幅视图图像,然后通过计算这两幅图像中同名点的视差来获得场景的三维深度信息。典型的双目立体视觉计算过程包括以下四个步骤:图像畸变校正、立体图像对齐、图像配准以及基于三角测量的视差图计算。
双目视觉的难点:
1、对光照条件敏感,依赖于被动光源。
2、双目视觉系统中视差的估计并不容易,立体匹配是计算机视觉中的一个经典难题。基线较长时,可以更精确地测量远处目标的距离;而基线较短时,则更适合测量近处目标。除了立体匹配之外,双目系统的标定也是一个难点。即使经过标定,系统仍可能出现“漂移”现象,因此在线标定功能是必不可少的。
综述
视差与深度计算
- 使用立体成像进行实时深度计算
- 双目视差与深度感知
- 基于数据驱动与模型驱动估计融合的快速立体视差图优化
立体匹配
立体匹配方法主要分为全局法和局部法两种,实际应用中以局部法为主,因为全局法速度较慢。
(一)基于全局约束的立体匹配算法:这类算法本质上属于优化算法,它将立体匹配问题转化为求解全局能量函数最小值的问题。其代表性算法包括图割算法、置信度传播算法和协同优化算法等。全局算法能够实现较低的误匹配率,但计算复杂度较高,难以满足实时性要求,因此在实际工程中应用较少。常见的全局算法有动态规划(DP)、置信度传播(BP)等。
(二)基于局部约束的立体匹配算法:这类方法主要利用匹配点周围的小范围局部信息进行计算,由于所需处理的信息量较少,匹配速度较快,因而受到广泛关注。其代表性算法包括绝对差和(SAD)、平方差和(SSD)、归一化相关系数(NCC)等。
- DeepPruner: 通过可微分PatchMatch学习高效立体匹配
- 利用恒定高速公路网络和反射式置信度学习改进立体匹配
- PMSC:基于PatchMatch的超像素切割用于精确立体匹配
- 立体视觉中透视深度图的精确偏差校正与协方差估计
- 变分立体视觉中透视深度图的有效极小曲面正则化
- 面向实时3D全景视觉的事件驱动立体匹配
- 利用基于学习的置信度度量提升立体匹配性能
- 基于图割的连续立体匹配,采用局部共享标签
- 跨尺度代价聚合用于立体匹配
- 用于视觉对应关系及其他任务的快速代价体积滤波
- 用于立体匹配及其他任务的常数时间加权中值滤波
- 一种用于立体匹配的非局部代价聚合方法
- 关于在图形硬件上构建精确立体匹配系统的探讨
- 高效的大型立体匹配
- 准确、稠密且鲁棒的多视角立体视觉
- 一种用于立体匹配的常数空间信念传播算法
- 结合颜色加权相关性、层次化信念传播及遮挡处理的立体匹配
- 在立体匹配中使用加权最小二乘法进行代价聚合与遮挡处理
- 立体匹配:一种基于异常置信度的方法
- 一种基于区域的协作优化立体匹配算法
- 面向社区照片集的多视角立体成像
- 不同代价聚合方法在实时立体匹配中性能对比研究
- 立体匹配中代价函数的评估
- 用于对应点搜索的自适应支持权重方法
- 基于信念传播和自适应差异度量的分段式立体匹配
多目视觉
多目视觉成像,也称为多视角立体成像,是指使用单个或多个相机从多个视角获取同一场景的多幅图像,从而重建场景的三维信息。
- 基于相反论模型估计的自适应运动恢复结构
- 多视角立体重建算法的比较与评估
- 计算机视觉中的多视图几何
光场成像
光场3D成像的原理与传统CCD和CMOS相机成像原理在结构上有显著区别。传统相机是光线穿过镜头后直接在感光平面上成像,通常生成2D图像;而光场相机则在传感器平面之前增加了一个微透镜阵列,使进入主镜头的光线再次通过每个微透镜,由感光阵列接收,从而同时获取光线的方向和位置信息。这种特性使得成像结果可以在后期处理,实现先拍照、后聚焦的效果。
光场相机的优点包括:单台相机即可实现3D成像,横向和深度方向的空间分辨率可达20微米至毫米级别,景深比普通相机大得多,因此特别适合用于“手眼”系统中的3D测量与引导。然而,目前精度适中的商业化光场相机价格仍然较为昂贵。
- 光场成像的模型、标定、重建及应用
- 利用相关性和特征提取方法从立体视觉系统中提取深度信息
- 基于微透镜阵列型光场相机的多目标快速测距方法
- 基于光场相机的四维光场图像水印及质量评价
- 基于光场相机的深度面光场计算与重建
- 光场相机视觉测量误差分析
- 一种基于光场图像的聚焦光场相机标定方法
- 光场相机成像模型及参数标定方法综述
SFM
运动恢复结构(SFM)是一个用于估计相机参数及三维点位置的问题。一个基本的SfM流程可以描述为:首先对每张2D图像检测特征点,然后对每对图像中的特征点进行匹配,仅保留满足几何约束的匹配结果,最后通过迭代式的鲁棒SfM方法恢复摄像机的内参和外参,并利用三角测量得到三维点坐标,再通过束调整进一步优化。
SFM主要基于多视图几何原理,用于从运动中实现3D重建,即从无时间序列的2D图像中推算出三维信息,是计算机视觉领域的重要分支。
该技术的核心思想是使用同一台相机,在内参保持不变的情况下,从不同视角获取多张图像,进而重构目标场景的三维信息。SFM常用于跟踪场景中的大量控制点,连续恢复场景的3D结构、相机的姿态和位置。
SFM方法可分为增量式(incremental/sequential SfM)、全局式(global SfM)、混合式(hybrid SfM)、层次式(hierarchical SfM)等。此外,还有基于语义的SfM(Semantic SfM)和基于深度学习的SfM。
增量式SfM
全局式SfM
层次式SfM
多阶段SfM
非刚性SfM
参考
教程
- 开源运动恢复结构. M. Leotta, S. Agarwal, F. Dellaert, P. Moulon, V. Rabaud. CVPR 2015 教程 (资料).
- 大规模图像三维重建. T. Shen, J. Wang, T.Fang, L. Quan. ACCV 2016 教程。
增量式SfM
增量式SfM首先使用SIFT特征检测器提取特征点并计算特征点对应的描述子,然后使用ANN(近似最近邻)方法进行匹配,低于某个匹配数阈值的匹配对将会被移除。对于保留下来的匹配对,使用RANSAC和八点法来估计基本矩阵,在估计基本矩阵时被判定为外点的匹配被看作是错误的匹配而被移除。对于满足以上几何约束的匹配对,将被合并为tracks。然后通过增量式的SfM方法来恢复场景结构。首先需要选择一对好的初始匹配对,一对好的初始匹配应该满足:
(1)足够多的匹配点;
(2)宽基线。之后增量式地增加摄像机,估计摄像机的内外参并由三角化得到三维点坐标,然后使用Bundle Adjustment进行优化。
增量式SfM从无序图像集合计算三维重建的常用方法,增量式SfM可分为如图 3所示几个阶段:图像特征提取、特征匹配、几何约束、重建初始化、图像注册、三角化、outlier过滤、Bundle adjustment等步骤。
增量式SfM优势:系统对于特征匹配以及外极几何关系的外点比较鲁棒,重讲场景精度高;标定过程中通过RANSAC不断过滤外点;捆绑调整不断地优化场景结构。
增量式SfM缺点:对初始图像对选择及摄像机的添加顺序敏感;场景漂移,大场景重建时的累计误差。效率不足,反复的捆绑调整需要大量的计算时间。
实现增量式SfM框架的包含COLMAP、openMVG、Theia等
- 照片旅游:探索三维照片集. N. Snavely, S. M. Seitz, and R. Szeliski. SIGGRAPH 2006.
- 迈向线性时间的增量式运动恢复结构. C. Wu. 3DV 2013.
- 运动恢复结构再探. Schöenberger, Frahm. CVPR 2016.
全局式SfM
全局式:估计所有摄像机的旋转矩阵和位置并三角化初始场景点。
优势:将误差均匀分布在外极几何图上,没有累计误差。不需要考虑初始图像和图像添加顺序的问题。仅执行一次捆绑调整,重建效率高。
缺点:鲁棒性不足,旋转矩阵求解时L1范数对外点相对鲁棒,而摄像机位置求解时相对平移关系对匹配外点比较敏感。场景完整性,过滤外极几何边,可能丢失部分图像。
- 结合两视图约束进行运动估计 V. M. Govindu. CVPR, 2001.
- 李代数平均法用于全局一致的运动估计. V. M. Govindu. CVPR, 2004.
- 多视图重建中鲁棒的旋转与平移估计. D. Martinec 和 T. Pajdla. CVPR, 2007.
- 非序列式运动恢复结构. O. Enqvist, F. Kahl, 和 C. Olsson. ICCV OMNIVIS 工作坊 2011.
- 基于点匹配的全局运动估计. M. Arie-Nachimson, S. Z. Kovalsky, I. KemelmacherShlizerman, A. Singer, 和 R. Basri. 3DIMPVT 2012.
- 相对运动的全局融合以实现鲁棒、准确且可扩展的运动恢复结构. P. Moulon, P. Monasse 和 R. Marlet. ICCV 2013.
- 相机位姿注册的全局线性方法. N. Jiang, Z. Cui, P. Tan. ICCV 2013.
- 基于相似性平均的全局运动恢复结构. Z. Cui, P. Tan. ICCV 2015.
- 基于特征轨迹的线性全局平移估计 Z. Cui, N. Jiang, C. Tang, P. Tan, BMVC 2015.
混合式
混合式SfM[5]在一定程度上综合了incremental SfM和global SfM各自的优点。HSfM的整个pipeline可以概括为全局估计摄像机旋转矩阵,增量估计摄像机位置,三角化初始场景点。
用全局的方式提出一种基于社区的旋转误差平均法,该方法既考虑了对极几何的精度又考虑了成对几何的精度。基于已经估计的相机的绝对旋转姿态,用一种增量的方式估计相机光心位置。对每个添加的相机,其旋转和内参保持不变,同时使用改进的BA细化光心和场景结构。
层次式SfM同样借鉴incremental SfM和global SfM各自优势,但是基于分段式的incremental SfM和全局式SfM,没有像混合式SfM分成两个阶段进行。
SfM中我们用来做重建的点是由特征匹配提供的,所以SfM获得特征点的方式决定了它不可能直接生成密集点云。而MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。
层次式SfM
- 基于层次聚类树的结构与运动流水线. A. M.Farenzena, A.Fusiello, R. Gherardi. 2009年3-D数字成像与建模研讨会。
- 基于相机三元组原子3D模型的随机化运动恢复结构. M. Havlena, A. Torii, J. Knopp, 和 T. Pajdla. CVPR 2009.
- 通过图优化实现高效的运动恢复结构. M. Havlena, A. Torii, 和 T. Pajdla. ECCV 2010。
- 从未标定图像中恢复层次化的结构与运动. Toldo, R., Gherardi, R., Farenzena, M. 和 Fusiello, A.. CVIU 2015。
多阶段SfM
- 从局部增量到全局平均的并行运动恢复结构. S. Zhu, T. Shen, L. Zhou, R. Zhang, J. Wang, T. Fang, L. Quan. arXiv 2017。
- 多阶段SFM:重温增量式运动恢复结构。R. Shah, A. Deshpande, P. J. Narayanan. 3DV 2014。-> 多阶段SFM:一种由粗到精的三维重建方法,arXiv 2016。
- HSfM:混合式运动恢复结构. H. Cui, X. Gao, S. Shen 和 Z. Hu,ICCV 2017。
非刚性SfM
- 在外点和缺失数据存在的情况下鲁棒的运动恢复结构. G. Wang, J. S. Zelek, J. Wu, R. Bajcsy. 2016。
项目&代码
| 项目 | 语言 | 许可证 |
|---|---|---|
| Bundler | C++ | GNU通用公共许可证 - 污染 |
| Colmap | C++ | BSD 3条款许可证 - 宽松 |
| TeleSculptor | C++ | BSD 3-Clause许可证 - 宽松 |
| MicMac | C++ | CeCILL-B |
| MVE | C++ | BSD 3-Clause许可证 + 部分受GPL 3许可 |
| OpenMVG | C++ | MPL2 - 宽松 |
| OpenSfM | Python | 简化BSD许可证 - 宽松 |
| TheiaSfM | C++ | 新BSD许可证 - 宽松 |
TOF
飞行时间(TOF)相机每个像素利用光飞行的时间差来获取物体的深度。TOF成像可用于大视野、远距离、低精度、低成本的3D图像采集。其特点是:检测速度快、视野范围较大、工作距离远、价格便宜,但精度低,易受环境 光的干扰。
分类
直接TOF
D-TOF通常用于单点测距系统,为了实现面积范围3D成像,通常需要采用扫描技术。
间接TOF
间接TOF(I-TOF),时间往返行程是从光强度的时间选通测量中间接外推获得,I-TOF不需要精确的 计时,而是采用时间选通光子计数器或电荷积分器,它们可以在像素级实现。
教程
Paper
Multi-view Stereo
多视角立体视觉(Multiple View Stereo,MVS)是对立体视觉的推广,能够在多个视角(从外向里)观察和获取景物的图像,并以此完成匹配和深度估计。某种意义上讲,SLAM/SFM其实和MVS是类似的,只是前者是摄像头运动,后者是多个摄像头视角(可以是单相机的多个视角图像,也可以是多相机的多视角图像)。也可以说,前者可以在环境里面“穿行”,而后者更像在环境外“旁观”。
多视角立体视觉的pipelines如下:
- 收集图像;
- 针对每个图像计算相机参数;
- 从图像集和相应的摄像机参数重建场景的3D几何图形;
- 可选择地重建场景的形状和纹理颜色。
参考链接:多视角立体视觉MVS简介
paper
- Learning Inverse Depth Regression for Multi-View Stereo with Correlation Cost Volume
- Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching
- Point-Based Multi-View Stereo Network
- Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference
- NRMVS: Non-Rigid Multi-View Stereo
- Multi-View Stereo 3D Edge Reconstruction
- Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference
综述
- Multi-view stereo: A tutorial
- State of the Art 3D Reconstruction Techniques N. Snavely, Y. Furukawa, CVPR 2014 tutorial slides. Introduction MVS with priors - Large scale MVS
Point cloud computation(点云计算)
- Accurate, Dense, and Robust Multiview Stereopsis. Y. Furukawa, J. Ponce. CVPR 2007. PAMI 2010
- State of the art in high density image matching. F. Remondino, M.G. Spera, E. Nocerino, F. Menna, F. Nex . The Photogrammetric Record 29(146), 2014.
- Progressive prioritized multi-view stereo. A. Locher, M. Perdoch and L. Van Gool. CVPR 2016.
- Pixelwise View Selection for Unstructured Multi-View Stereo. J. L. Schönberger, E. Zheng, M. Pollefeys, J.-M. Frahm. ECCV 2016.
- TAPA-MVS: Textureless-Aware PAtchMatch Multi-View Stereo. A. Romanoni, M. Matteucci. ICCV 2019
Surface computation & refinements(曲面计算与优化)
- Efficient Multi-View Reconstruction of Large-Scale Scenes using Interest Points, Delaunay Triangulation and Graph Cuts. P. Labatut, J-P. Pons, R. Keriven. ICCV 2007
- Multi-View Stereo via Graph Cuts on the Dual of an Adaptive Tetrahedral Mesh. S. N. Sinha, P. Mordohai and M. Pollefeys. ICCV 2007.
- Towards high-resolution large-scale multi-view stereo. H.-H. Vu, P. Labatut, J.-P. Pons, R. Keriven. CVPR 2009.
- Refinement of Surface Mesh for Accurate Multi-View Reconstruction. R. Tylecek and R. Sara. IJVR 2010.
- High Accuracy and Visibility-Consistent Dense Multiview Stereo. H.-H. Vu, P. Labatut, J.-P. Pons, R. Keriven. Pami 2012.
- Exploiting Visibility Information in Surface Reconstruction to Preserve Weakly Supported Surfaces M. Jancosek et al. 2014.
- A New Variational Framework for Multiview Surface Reconstruction. B. Semerjian. ECCV 2014.
- Photometric Bundle Adjustment for Dense Multi-View 3D Modeling. A. Delaunoy, M. Pollefeys. CVPR2014.
- Global, Dense Multiscale Reconstruction for a Billion Points B. Ummenhofer, T. Brox. ICCV 2015.
- Efficient Multi-view Surface Refinement with Adaptive Resolution Control. S. Li, S. Yu Siu, T. Fang, L. Quan. ECCV 2016.
- Multi-View Inverse Rendering under Arbitrary Illumination和Albedo, K. Kim, A. Torii, M. Okutomi, ECCV2016.
- Shading-aware Multi-view Stereo, F. Langguth and K. Sunkavalli and S. Hadap and M. Goesele, ECCV 2016.
- Scalable Surface Reconstruction from Point Clouds with Extreme Scale和Density Diversity, C. Mostegel, R. Prettenthaler, F. Fraundorfer和H. Bischof. CVPR 2017.
- Multi-View Stereo with Single-View Semantic Mesh Refinement, A. Romanoni, M. Ciccone, F. Visin, M. Matteucci. ICCVW 2017
Machine Learning based MVS
- Matchnet:统一基于补丁的匹配中的特征和度量学习,X. Han、Thomas Leung、Y. Jia、R. Sukthankar、A. C. Berg。CVPR 2015。
- 通过训练卷积神经网络比较图像补丁进行立体匹配,J. Zbontar 和 Y. LeCun。JMLR 2016。
- 用于立体匹配的高效深度学习,W. Luo、A. G. Schwing、R. Urtasun。CVPR 2016。
- 学习多视图立体视觉机器,A. Kar、C. Häne、J. Malik。NIPS 2017。
- 学习多补丁相似性,W. Hartmann、S. Galliani、M. Havlena、L. V. Gool、K. Schindler。ICCV 2017。
- Surfacenet:用于多视图立体视觉的端到端三维神经网络,Ji M.、Gall J.、Zheng H.、Liu Y.、Fang L。ICCV 2017。
- DeepMVS:学习多视图立体视觉,Huang P.、Matzen K.、Kopf J.、Ahuja N.、Huang J。CVPR 2018。
- RayNet:利用射线势能学习体三维重建,D. Paschalidou、A. O. Ulusoy、C. Schmitt、L. Gool、A. Geiger。CVPR 2018。
- MVSNet:非结构化多视图立体视觉的深度推断,Y. Yao、Z. Luo、S. Li、T. Fang、L. Quan。ECCV 2018。
- 通过鲁棒光度一致性学习无监督多视图立体视觉,T. Khot、S. Agrawal、S. Tulsiani、C. Mertz、S. Lucey、M. Hebert。2019年。
- DPSNET:端到端深度平面扫描立体视觉,Sunghoon Im、Hae-Gon Jeon、Stephen Lin、In So Kweon。2019年。
- 基于点的多视图立体网络,Rui Chen、Songfang Han、Jing Xu、Hao Su。ICCV 2019。
多视图网格纹理
- 使用多频段混合无缝基于图像的纹理图集。C. Allène、J-P. Pons 和 R. Keriven。ICPR 2008。
- 让色彩诞生!——大规模三维重建的纹理化。M. Waechter、N. Moehrle、M. Goesele。ECCV 2014。
纹理贴图
课程
- 图像处理与计算摄影 - Alexei A. Efros(加州大学伯克利分校)
- 计算摄影 - Alexei A. Efros(卡内基梅隆大学)
- 计算摄影 - Derek Hoiem(伊利诺伊大学厄巴纳-香槟分校)
- 计算摄影 - James Hays(布朗大学)
- 数字与计算摄影 - Fredo Durand(麻省理工学院)
- 计算相机与摄影 - Ramesh Raskar(麻省理工学院媒体实验室)
- 计算摄影 - Irfan Essa(佐治亚理工学院)
- 图形学相关课程 - 斯坦福大学
- 计算摄影 - Rob Fergus(纽约大学)
- 视觉计算导论 - Kyros Kutulakos(多伦多大学)
- 计算摄影 - Kyros Kutulakos(多伦多大学)
- 用于视觉特效的计算机视觉 - Rich Radke(伦斯勒理工学院)
- 图像处理导论 - Rich Radke(伦斯勒理工学院)
软件
- 用于多视图几何的MATLAB函数
- Peter Kovesi的用于计算机视觉和图像分析的MATLAB函数
- OpenGV - 几何计算机视觉算法
- MinimalSolvers - 极小问题求解器
- 多视图环境
- Visual SFM
- Bundler SFM
- openMVG:开放多视图几何 - 多视图几何;运动恢复结构库及软件
- 基于补丁的多视图立体视觉V2
- 用于多视图立体视觉的视图聚类
- 浮动尺度表面重建
- 大规模三维重建的纹理化
- 多视图立体重建
项目&代码
| 项目 | 语言 | 许可证 |
|---|---|---|
| Colmap | C++ CUDA | BSD 3条款许可 - 宽松型(可使用CGAL -> GNU通用公共许可证 - 可能导致污染) |
| GPUIma + fusibile | C++ CUDA | GNU通用公共许可证 - 可能导致污染 |
| HPMVS | C++ | GNU通用公共许可证 - 可能导致污染 |
| MICMAC | C++ | CeCILL-B |
| MVE | C++ | BSD 3条款许可 + 部分内容受GPL 3许可保护 |
| OpenMVS | C++ (CUDA可选) | AGPL3 |
| PMVS | C++ CUDA | GNU通用公共许可证 - 可能导致污染 |
| SMVS 基于阴影感知的多视图立体视觉 | C++ | BSD-3条款许可 |
深度相机三维重建
主要基于Kinect这类深度相机进行三维重建,包括KinectFusion、Kintinuous、ElasticFusion、InfiniTAM、BundleFusion
基于线条/面的三维重建
- 从三维线段进行表面重建
平面重建
参考:https://github.com/BigTeacher-777/Awesome-Planar-Reconstruction
论文
- [PlaneRCNN] PlaneRCNN:单张图像中的三维平面检测与重建 [CVPR2019(口头报告)][PyTorch]
- [PlanarReconstruction] 基于关联嵌入的单张图像分片式平面三维重建 [CVPR2019][PyTorch]
- [Planerecover] 通过卷积神经网络从单张图像恢复三维平面 [ECCV2018][TensorFlow]
- [PlaneNet] PlaneNet:从单张RGB图像进行分片式平面重建 [CVPR2018][TensorFlow]
数据集
3D人脸重建
9、利用2D辅助自监督学习,从单张图像进行联合3D人脸重建与密集面部对齐
纹理/材料分析与合成
- 使用卷积神经网络进行纹理合成(2015年)[论文]
- 静态材料的两步SVBRDF采集(SIGGRAPH 2015)[论文]
- 基于神经纹理合成的反射率建模(2016年)[论文]
- 使用自我增强型卷积神经网络从单张照片建模表面外观(2017年)[论文]
- 高分辨率多尺度神经纹理合成(2017年)[论文]
- 利用深度学习从单一材质的镜面物体中获取反射率和自然光照(2017年)[论文]
- 从野外照片集中联合估计材质与光照(2017年)[论文]
- TextureGAN:使用纹理补丁控制深度图像合成(2018 CVPR)[论文]
- 高斯材质合成(2018 SIGGRAPH)[论文]
- 通过对抗扩张进行非静态纹理合成(2018 SIGGRAPH)[论文]
- 基于图像的空间和统计纹理属性以及梯度幅值系数的多尺度纹理质量评估(2018 CVPR)[论文]
- LIME:实时内在材质估计(2018 CVPR)[论文]
- 学习面向材质的3D形状局部描述子(2018年)[论文]
场景合成/重建
- Make It Home: 家具布局的自动优化(2011年,SIGGRAPH)[论文]
- 基于室内设计准则的交互式家具布局(2011年)[论文]
- 使用局部退火可逆跳跃MCMC算法结合约束条件合成开放世界场景(2012年)[论文]
- 基于示例的3D物体排列合成(2012年SIGGRAPH Asia)[论文]
- Sketch2Scene:基于草图的3D模型协同检索与协同放置(2013年)[论文]
- 行动驱动的室内3D场景演化(2016年)[论文]
- Clutterpalette:用于细化室内场景的交互式工具(2015年)[论文]
- 用于创建场景变体的关系模板(2016年)[论文]
- IM2CAD(2017年)[论文]
- 预测完整的室内场景3D模型(2017年)[论文]
- 从单张RGBD图像完整解析3D场景(2017年)[论文]
- 基于活动关联对象关系图的室内场景自适应合成(2017年SIGGRAPH Asia)[论文]
- 使用遗传算法进行自动化室内设计(2017年)[论文]
- SceneSuggest:情境驱动的3D场景设计(2017年)[论文]
- 一种端到端的深度学习方法,用于实时同步3D重建与材质识别(2017年)[论文]
- 基于随机文法的人本化室内场景合成(2018年CVPR)[论文] [补充材料] [代码]
- FloorNet:基于3D扫描的统一平面图重建框架(2018年)[论文] [代码]
- ScanComplete:针对3D扫描的大规模场景补全与语义分割(2018年)[论文]
- 基于随机文法的可配置3D场景合成及逐像素真值标注的2D图像渲染(2018年)[论文]
- 基于单张RGB图像的整体3D场景解析与重建(ECCV 2018)[论文]
- 基于单张全景图的自动室内3D建模(2018年CVPR)[论文]
- 基于关联嵌入的单幅图像分片式平面3D重建(2019年CVPR)[论文] [代码]
- 基于多层深度与极线变换器的3D场景重建(ICCV 2019)[论文]
姿态估计
主要基于RGB、RGB-D以及点云数据,估计物体和相机/基准坐标系的关系。
主要有整体方式、霍夫投票方式、Keypoint-based方式和Dense Correspondence方式
标注工具
- LabelFusion:https://github.com/RobotLocomotion/LabelFusion
实现方式不同
整体方式
整体方法直接估计给定图像中物体的三维位置和方向。经典的基于模板的方法构造刚性模板并扫描图像以计算最佳匹配姿态。这种手工制作的模板对集群场景不太可靠。最近,人们提出了一些基于深度神经网络的方法来直接回归相机或物体的6D姿态。然而,旋转空间的非线性使得数据驱动的DNN难以学习和推广。
- 基于判别混合模板的视角分类
- 利用梯度响应图实时检测无纹理物体。
- 使用豪斯多夫距离比较图像
- Densefusion:通过迭代密集融合进行6D物体姿态估计
- Posecnn:一种用于杂乱场景中6D物体姿态估计的卷积神经网络。
- 视角与关键点
- 基于RGB图像的6D物体检测中的隐式3D方向学习。
- Render for cnn:利用训练有渲染3D模型视图的CNN在图像中估计视角。
Keypoint-based方式
目前基于关键点的方法首先检测图像中物体的二维关键点,然后利用PnP算法估计6D姿态
- Surf:加速鲁棒特征。
- 基于局部尺度不变特征的对象识别
- 使用局部仿射不变图像描述子和多视角空间约束进行3D物体建模与识别。
- 堆叠沙漏网络用于人体姿态估计
- 使深度热图对部分遮挡具有鲁棒性,从而进行3D物体姿态估计。
- Bb8:一种可扩展、准确且对部分遮挡具有鲁棒性的方法,无需使用深度即可预测复杂物体的3D姿态
- 实时无缝单次6D物体姿态预测。
- 通过端到端几何推理发现潜在的3D关键点。
- Pvnet:用于6DoF姿态估计的像素级投票网络。
Dense Correspondence和霍夫投票方式
- 使用3D特征图独立检测物体类别。
- 带有深度编码的霍夫投票用于联合物体检测和形状恢复。
- 智能物体检测与姿态估计。
- 利用3D物体坐标学习6D物体姿态估计。
- 为6D物体姿态估计生成全局假设。
- 对局部RGB-D补丁进行深度学习,以实现3D物体检测和6D姿态估计。
- Cdpn:基于坐标解耦的姿态网络,用于实时基于RGB的6-DOF物体 姿态估计。
- Pix2pose:用于6D姿态估计的物体像素级坐标回归。
- 归一化物体坐标空间,用于类别级别的6D物体姿态和尺寸估计。
- 在人群中恢复6D物体姿态并预测下一个最佳视角。
数据格式不同
基于点云方式
- PointFusion
- Frustum PointNets
- VoteNet
基于RGB方式
基于RGB-D方式
无序抓取
视觉伺服
综述
基于图像(2D)
基于位置(3D)
基于图像和位置(2.5D)
深度图补全&修复
深度图补全
1、HMS-Net:用于稀疏深度补全的分层多尺度稀疏不变网络
2、在RGB引导和不确定性下的稀疏且噪声较多的LiDAR补全
3、利用带有条件代价体积归一化的立体匹配网络进行3D LiDAR与立体视觉融合
7、DFineNet:基于RGB引导,从稀疏且带有噪声的深度输入中进行自运动估计与深度细化
深度图修复
基于Kinect的深度图修复
主要包括高斯滤波、双边滤波、插值、多尺度各向异性扩散以及连通域分析。
论文
- 基于Kinect的深度图像修复技术研究
- 深度图像自适应邻域修复方法
软件&系统开发
Github链接
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。