论文作者 | 3D视觉之心
编辑 | 自动驾驶之心
视觉三维重建是3D感知任务中非常重要的部分,SFM和MVS是核心技术模块,今年就为大家盘点下领域常用的视觉三维重建框架,内容较干,建议收藏!
(1) OpenMVG
链接:https://github.com/openMVG/openMVG
OpenMVG(多视图几何)是一个面向计算机视觉科学家的库,面向多视图几何社区。它旨在提供:精确的多视图几何问题求解器,用于执行从特征检测/匹配到SFM、完整SFM pipelines的微型库。
(2) COLMAP
链接:https://colmap.github.io/
COLMAP是一个通用的运动结构(SfM)和多视图立体(MVS)pipeline,具有图形和命令行界面。它为有序和无序图像集合的重建提供了广泛的功能!
(3) ODM
链接:https://github.com/OpenDroneMap/ODM
一个用于处理无人机图像的开源命令行工具包。ODM将简单的2D图像转化为:已分类的点云、3D纹理模型、地理参考正交校正图像、地理参考数字高程模型!
该应用程序适用于Windows、Mac和Linux,它可以从命令行工作,非常适合高级用户、脚本以及与其他软件的集成。
(4) OpenSfM
链接:https://github.com/mapillary/OpenSfM
OpenSfM是一个用Python编写的Structure from Motion库。该库充当处理pipeline,用于从多个图像重建相机姿势和3D场景。它由SFM的基本模块(特征检测/匹配、最小解算器)组成,重点是构建一个稳健且可扩展的重建管道。它还集成了外部传感器(如GPS、加速度计)测量,以实现地理对齐和稳健性。提供了一个JavaScript查看器来预览模型和调试管道。
(5) OpenMVS
链接:https://github.com/cdcseacave/openMVS
OpenMVS(多视图立体)是计算机视觉科学家的算法库,特别针对多视图立体重建社区。虽然有成熟完整的开源项目针对SFM(如OpenMVG),从输入图像集中恢复相机姿态和稀疏的3D点云,但没有一个项目涉及摄影测量链流程的最后部分。OpenMVS旨在通过提供一套完整的算法来恢复要重建的场景的整个表面来填补这一空白。输入是一组相机姿势加上稀疏点云,输出是纹理网格。该项目涵盖的主要主题包括:密集点云重建,用于获得尽可能完整和准确的点云网格重建,用于估计最好地解释网格表面的输入点云网格细化,用于恢复所有精细细节网格纹理,用于计算清晰和准确的纹理以给网格上色!
(6) TheiaSfM
链接:https://github.com/sweeneychris/TheiaSfM
Theia是由Chris Sweeney创建的SFM端到端结构。它的设计非常高效、可扩展和准确。pipeline的所有步骤都被设计为模块化的,因此代码易于阅读和扩展。
(7) Agisoft PhotoScan
链接:https://www.photoscan.cn/
Metashape无需设置初始值,无须相机检校,它根据最新的多视图三维重建技术,可对任意照片进行处理,无需控制点,而通过控制点则可以生成真实坐标的三维模型。照片的拍摄位置是任意的,无论是航摄照片还是高分辨率数码相机拍摄的影像都可以使用。整个工作流程无论是影像定向还是三维模型重建过程都是完全自动化的。
Metashape可生成高分辨率真正射影像(使用控制点可达5cm精度)及带精细色彩纹理的DEM模型。完全自动化的工作流程,即使非专业人员也可以在一台电脑上处理成百上千张航空影像,生成专业级别的摄影测量数据。
(8) ContextCapture
链接:https://www.i3vsoft.com/Products/sjjmrj.html
ContextCapture 是一款可由简单的照片和/或点云自动生成详细三维实景模型的软件。ContextCapture 的高兼容性,能对各种对象各种数据源进行精确无缝重建,从厘米级到公里级,从地面或从空中拍摄。只要输入照片的分辨率和精度足够,生成的三维模型是可以实现无限精细的细节。
(9) Inpho
链接:http://www.mapcore.com.cn/index.php?catid=89
Inpho®软件采用先进独特的摄影测量技术,把原始的航拍图像和卫星图像精确地转换成连贯准确的点云和地表模型、正射影像和三维的特征地物。Inpho软件采取模块化结构,既可以整合成完整完美的工作流程,也可以采用其中一些独立的组件整合到空间地理信息的生产工作流中。这些处理能力为国家测绘、林业、农业、采矿业、公用事业和能源、城市开发、国防和灾害应急的地理信息处理工作提供了有效的帮助。
(10) Pix4D
链接:https://www.pix4d.com.cn/
同时具有航线规划app,桌面端和云平台的无人机测绘和摄影测量软件工具!
(11) AliceVision
链接:https://alicevision.org/
重建方法汇总
(一)基于RGBD
(1)KinectFusion
代码:https://github.com/chrdiller/KinectFusionApp
KinectFusion是第一个使用RGBD相机的三维重建系统,使用的地图是TSDF地图,后续很多实时三维重建系统都是在KinectFusion上扩展的。
(2)BundleFunsion
论文:https://arxiv.org/abs/1604.01093 代码:https://github.com/niessner/BundleFusion
大致流程:输入的color+depth的数据流首先需要做帧与帧之间的对应关系匹配,然后做全局位姿优化,将整体的漂移校正过来(上图下方所示),整个重建过程中模型是在不断动态更新的。
(二)基于MVS
(1)COLMAP
论文:https://ieeexplore.ieee.org/document/7780814 代码:https://github.com/colmap/colmap
SFM通常首先进行特征提取/匹配以及后续的几何校验滤出外点,经过上述步骤可以得到所谓的场景图scene graph,该场景图是后续的增量式的基础(提供数据关联等信息)。增量式重建中需要非常仔细地挑选两帧进行重建,在图像进行注册(即定位当前帧在地图中的位姿)之前,需要进行三角化场景点/滤出外点以及BA优化当前的模型。
(2)OpenMVS
代码:https://github.com/cdcseacave/openMVS
OpenMVS的输入是图像和位姿,其中位姿可以是从COLMAP、SLAM等多种方式计算得到。然后进行稠密重建 - 点云融合 - 初始网格重建 - 网格优化 - 纹理贴图。
OpenMVS是目前的三维重建的框架中,复原效果比较好的;而且提供自动化的脚本,使用起来也不是很难,可以在github中下载编译安装。
投稿作者为『
自动驾驶之心知识星球
』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知
、毫米波雷达视觉融合
、
多传感器标定
、
多传感器融合
、
多模态3D目标检测
、
车道线检测
、
轨迹预测
、
在线高精地图
、
世界模型
、
点云3D目标检测
、
目标跟踪
、
Occupancy、
cuda与TensorRT模型部署
、
大模型与自动驾驶
、
Nerf
、
语义分割
、
自动驾驶仿真、
传感器部署、
决策规划、轨迹预测
等多个方向学习视频(
扫码即可学习
)
网页端官网:www.zdjszx.com
② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门
自动驾驶感知
(
2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、
目标跟踪
)、
自动驾驶定位建图
(
SLAM、高精地图、局部在线地图
)、
自动驾驶规划控制/轨迹预测等领域技术方案
、
大模型、端到端等
,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,
这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!
自动驾驶感知:
目标检测、语义分割、BEV感知、毫米波雷达视觉融合、激光视觉融合、车道线检测、目标跟踪、Occupancy、深度估计、transformer、大模型、在线地图、点云处理、模型部署、CUDA加速等技术交流群;
多传感器标定:
相机在线/离线标定、Lidar-Camera标定、Camera-Radar标定、Camera-IMU标定、多传感器时空同步等技术交流群;
多传感器融合:
多传感器后融合技术交流群;
规划控制与预测:
规划控制、轨迹预测、避障等技术交流群;
定位建图:
视觉SLAM、激光SLAM、多传感器融合SLAM等技术交流群;
三维视觉:
三维重建、NeRF、3D Gaussian Splatting技术交流群;
自动驾驶仿真:
Carla仿真、Autoware仿真等技术交流群;
自动驾驶开发:
自动驾驶开发、ROS等技术交流群;
其它方向:
自动标注与数据闭环、产品经理、硬件选型、求职面试、自动驾驶测试等技术交流群;
扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,
欢迎联系我们!