type
status
date
slug
summary
tags
category
icon
password
点云开源框架的介绍
三维数据类型
点云:某个坐标系下的点数据集,每个点包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等信息。
- 储存格式:pts、LAS、PCD、xyz、asc、ply等
Mesh:多边形网格(把点云连起来了,加上了拓扑结构),是计算机图形学中用于各种不规律物体建模的一种数据结构。
- 储存格式:obj、stl、ply等
数模:三维数字模型是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型。
- 储存格式:IGS、part、model、IGES等
总结:三维点云是真实物体表面的离散采样,点云处理就是从点云中提取到我们需要的信息。针对不同行业输出不同的信息,比如车辆提取一些6D信息
采集方式
- 激光扫描仪:星载、 机载、地面、移动
- 深度相机(拍图片的基础上还有个deep信息):通过近红外激光器把具有结构特征的光线投影到 物体上 红外摄像头采集得到深度信息
- 双目相机(计算机视觉):使用两个相机从不同位置获取物体的两幅图像 利用 三角原理 获得点的位置
- 光学相机多视角重建(运动结构恢复(Structure from motion)):多视角采集 然后恢复运动
- 结构光(小范围工业测量):结构光设备
三角测距的原理:
TOF的原理:通过频率来记录时间
双目视觉(利用人眼可以获得三维信息):对纹理信息,光照信息非常敏感
结构光:主动投射编码点,用相机拍照,提供纹理信息
应用领域
测绘
自动驾驶
林业
建筑
航空航天
船舶
汽车
3C(小的电子零件焊接)
商用点云处理框架
仪器厂商开发的一些软件
- Realworks:为点云处理和分析设计而成。该软件提供一套完整的解决方案。可从几乎所有 3D 激 光扫描仪引入数据,并进行有效的配准、分析、建模和创建可交付成果。(Trimble)
- Cyclone:为工程,测量,建筑和相关应用中的3D激光扫描项目提供最广泛的工作流程选项。(通用功能,Leica)
- FARO SCENE:与 FARO Focus 激光扫描仪、Focus Swift 室内移动扫描仪和 Freestyle 2 手持式扫描 仪搭配用于数据可视化、管理、去噪和配准。(仪器配套)
遥感处理
- ENVI LIDAR(遥感处理):可进行建筑物轮廓提取与三维模型的构建、森林资源调查、完整的通行权分析、电 力线和电线杆位置决策等。(自动提取DEM植被等)
工业检测
- Geomagic:Design从 3D 扫描中更快、更准确且更可靠地创建 CAD 模型;Control 3D 质量控制与 尺寸检查软件,可让您捕获和处理来自 3D 扫描仪和其他便携式设备的数据,以测量、了解和交流 检测结果,从而确保各个位置的质量。 (工业检测)
- PolyWorks(用的更多):通用的3D尺寸分析和质量控制软件解决方案,控制工具或零件尺寸,判断和避免制造 及装配问题。(工业检测)
航测部门
- TerraSolid:一套商业化LiDAR数据处理软件,基于Microstation开发的,运行于Micorstation系统之 上。(航测部门主要在用)
- 点云智绘(PCA):基于大疆禅思L1这种高密度小型化的机载激光雷达的专属、平民化、无参数化、 一键式的LiDAR数据处理与分析软件。
林业和山维
- LiDAR 360:数字绿土自主研发的专业级点云数据处理平台,包含了丰富的点云数据处理工具,
- EPS:实现点云数据的空间三维真实效果显示以及三维视图下的矢量化采集功能、分析功能和数据 入库。支持多种点云数据格式,并支持海量点云数据。系统提供了灵活多样的编辑工具,使矢量 采集工作更便捷,更高效。(山维)
研究单位
- 点云魔方(PCM):功能涵盖点云基础工具、数据质量检查、点云滤波、地物分类、基础测绘、 林业应用、建筑应用、输电通道三维重建与安全分析、光子点云处理等。入选了“国家测绘地理信 息自主创新产品”。(中国科学院遥感与数字地球研究所 )
其他
- AutoCAD Recap:将扫描文件数据转换成点云格式,能够聚合扫描文件,并对其进行清理、分类、 空间排序、压缩、测量
- QTModeler:全球首屈一指的3D点云和地形可视化软件。
- Arcgis pro/SuperMap GIS 10i:新一代三维GIS基础软件。
- potree:基于Three.js,一种基于WebGL的点云数据可视化解决方案
开源点云处理框架
主推的4个框架
- PCL: C++编写,有python接口,BSD授权方式,能实现点云相关的获取、滤波、分割、配准、检 索、特征提取、识别、追踪、曲面重建、可视化等,但依赖库太多。(点云)
- Open3d:C++编写,有python接口,MIT授权,支持快速开发和处理3D数据。(点云)
- CloudCompare: C++编写,GPL授权,可拔插操作,可二次开发,主要针对点云,富有活力,经常更新。(点云)
- Meshlab: C++编写, GPL授权,主要针对于模型,重建和过滤,网格简化等。(Mesh)
- OCC: OCC是一款开源的三维建模与可视化软件,用C++语言编写。目前在三维地质建模与可视 化、机械CAD等方面应用非常广泛。 Step iges brep (数模)
- CGAL: 计算几何算法库(CGAL),提供计算几何相关的数据结构和算法,诸如三角剖分(2D约 束三角剖分及二维和三维Delaunay三角剖分),Voronoi图(二维和三维的点,2D加权Voronoi图, 分割Voronoi图等),多边形(布尔操作,偏置),多面体(布尔运算),曲线整理及其应用,网 格生成(二维Delaunay网格生成和三维表面和体积网格生成等),几何处理(表面网格简化,细分 和参数化等),凸壳算法(2D,3D和dD),搜索结构(近邻搜索,kd树等),插值,形状分析, 拟合,距离等
点云算法总结
点云传统基本算法
去噪光顺算法:体素滤波、 双边滤波 、半径滤波、高斯滤波等
下采样算法:八叉树、随机、最远点
特征提取算法:PFH、FPFH、Spin Image、SHOT、RoPS、TriSI、3DSC、USC、ISS、VD_LSD、 LSP、 THRIFT
配准算法:ICP、RPM、KC、CPD
分割算法:RANSAC、超体聚类分割、区域生长算法
重建算法:泊松重建、凸包计算、Marching cubes、Delaunay Mesh Generation
点云深度学习算法
深度学习已经成功地应用于解决各种二维视觉问题。用深度神经网络处理点云主要包括三个任务,三维形状 分类、三维目标检测与跟踪和三维点云分割。
公开数据集:ModelNet、ScanObjectNN、ShapeNet、PartNet、S3DIS、ScanNet、Semantic3D、ApololCar3D
3D 形状分类:
- Multi-view based Methods :将三维图形投影到多个视图中,然后提取各个视图的特征,然后融合这些特征 进行精确的形状分类
- Volumetric-based Methods :将点云体素化为三维网格,然后将三维卷积神经网络(CNN)应用于体表示进 行形状分类
- Pointwise MLP Methods:使用多个共享多层感知器(MLP)独立地对每个点建模,然后使用对称聚合函数 聚合全局特征
3D 目标跟踪:
- region proposal-based methods:提出几个可能包含对象的区域(proposal),提取区域特征来确定每个 proposal的类别标签。
- single shot methods:该方法直接预测类别概率,并使用单级网络回归物体的三维bounding box,不需要 region proposal和后处理。因此,它们可以高速运行,非常适合实时应用。
3D 点云分割:
- 语义分割: Multi-view Representation、Spherical Representation、Volumetric Representation、Permutohedral Lattice Representation、Hybrid Representation
- 实例分割:基于proposal与proposal-free
- 部件分割:VoxSegNet: Volumetric CNNs for semantic part segmentation of 3D shapes、 3D shape segmentation with projective convolutional networks、 SyncSpecCNN: Synchronized spectral CNN for 3D shape segmentation、 3D shape segmentation via shape fully convolutional networks、 CoSegNet: Deep co-segmentation of 3D shapes with group consistency loss
PCL
- PCL (Point cloud library)
- Filter
- Segmentation
- Registration
- Keypoints
- Recognition
- 特点
- 支持多平台(Win,Linux,Mac)
- 功能齐全,可扩展性好
- 广泛用于机器人,很多开源算法和系 统(ROS)
Open3D
Open3D 是一个开源库,支持快速开发处理 3D 数据的软件。Open3D 前端公开了一组精心挑选的 C++ 和 Python 数据结构和算法。后端经过 高度优化,并设置为并行化。
其核心特性包括:
- 3D 数据结构
- 3D 数据处理算法
- 场景重建
- 表面对齐
- 3D 可视化
- 基于物理的渲染 (PBR)
- PyTorch 和 TensorFlow 支持 3D 机器学习
- 核心 3D 操作的 GPU 加速
- 在 C++ 和 Python 中可用
0.15版本开始提供c++预编译库(也可自己编译), 且之后版本不支持conda安装,仅支持pip安装
PCL vs Open3D
Open3D环境的安装
Open3D的学习
目前的实验环境是:
Miniconda、Python 3.8、Pytorch 1.8.1、Cuda 11.1、vs2019
创建conda环境(换源): conda create --name open3d python=3.8
之后需要激活环境:conda activate open3d
Open3d的安装: pip install open3d
安装验证: python -c "import open3d as o3d; print(o3d.version)"
我安装成功的版本是:0.18.0
可能遇到的问题
- pip install open3d (版本不一致问题)
解决方案:(找对应版本)
- pip install pillow==8.4
- pip install networkx
- pip install absl-py
- pip install matplotlib
- pip install protobuf==3.11
- pip install mediapipe==0.10.2
- pip install lpips==0.1.4
参考视频
- 3D视觉工坊(可以通过ins找我要资源)
- Author:Chailyn
- URL:https://own.chailyncui.blog/article/3D_Point_Clouds_open3D_1
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts