首页IT科技三维重建流程图(【三维重建】三维重构基础知识、三维数据、重建流程)

三维重建流程图(【三维重建】三维重构基础知识、三维数据、重建流程)

时间2025-08-03 02:00:22分类IT科技浏览10031
导读:1.在计算机内生成三维信息 1.使用几何建模软件,通过人机交互生成人为控制下的三维:3DMAX、Maya、AutoCAD、UG...

1.在计算机内生成三维信息

1.使用几何建模软件                  ,通过人机交互生成人为控制下的三维:3DMAX                  、Maya                          、AutoCAD        、UG

2.获取真实的物体形状:三维重构

三维图像重构:

摄像机获取图像                          ,对图像分析处理        ,结合CV知识推导出现实中物体的三维信息

从二维图像到三维空间的重构(模仿生物两只眼睛观察物体产生的深度)

对二维图像中像素点的三维信息的恢复             ,尤其是深度信息

一般采用两个摄像机                           ,对同一个物体进行采集                。

单视图:信息不完全            ,需要利用经验知识

多视图:类似人的双目定位        ,相对比较容易

理想:对每个像素点的深度进行恢复

三维矢量图形 代替 三维位图

位图:记录一个个的点位                           ,以像素为单位                ,放大后图像变得模糊不清

矢量图:不受分辨率影响    ,适合三维建模                           ,线条顺滑                    ,不逼真,无法产生多彩多变的图像

过程:

图像获取:获取二维                       ,影响因素:光照                         ,相机几何特性

摄像机标定:建立有效的成像模型    ,求解摄像机的内外参数                  ,结合图像得到在空间中的三维点坐标

特征提取:特征点             、特征线                           、区域                          。

大多以点为匹配基元                          ,怎么提取与怎么匹配 紧密联系        ,提取时确认匹配方法

提取算法:

基于方向导数的方法

基于图像亮度对比关系的方法

基于数学形态学的方法

立体匹配:根据提取的特征             ,建立各个图像之间的对应关系                           ,将同一个物理空间点            ,在不同的图像中的成像点        ,一一对应起来          。影响因素:光照                           ,噪声                ,物体特性    ,摄像机特性

三维重建:利用 匹配结果+摄像机标定的内外参数 进行重建

重构方法:

空间点的重建:最基本

空间直线            、空间二次曲线的重建

极线约束法

全像素的三维重建:最理想                           ,测量条件严格                    ,仅限于某一具体对象

空间点的三维重建举例:

四个坐标系

1.像素坐标系:图像的每个像素点,存储在数组中                       ,在图像左上角定义原点                         ,建立图像坐标系uv    ,坐标分别对应数组中的存储位置

2.图像坐标系(ICS):用来表示像素在图像中的物理位置所建立的坐标系                  ,原点一般在中心            。上图xy                         。

3.摄像机坐标系(CCS):如图                          ,XY轴与成像平面坐标系的xy平行        ,Z轴与光轴平行             ,垂直于图像                           ,交点为图像的主点            ,也就是成像平面坐标系的原点               。OO‘为焦距        。

4.世界坐标系(WCS):在环境中选择一个参考坐标系        ,描述的是摄像机和物体的位置                        。与摄像机坐标系的关系用旋转矩阵R和平移向量t来描述                   。对应关系如下:

坐标系转换

记一个点在

世界坐标系(WCS                           ,World Coordinate System)中的坐标为

X

w

=

[

x

w

,

y

w

,

z

w

]

T

X_w=[x_w,y_w,z_w]^T

Xw=[xw,yw,zw]T                ,

相机坐标系(CCS    ,Camera Coordinate System)的坐标为

X

c

=

[

x

c

,

y

c

,

z

c

]

T

X_c=[x_c,y_c,z_c]^T

Xc=[xc,yc,zc]T                           ,

相机图像中的投影(ICS                    ,Image Coordinate System)中的坐标为

X

=

[

u

,

v

]

T

X=[u,v]^T

X=[u,v]T 内参矩阵

表示相机和图像的关系

外参矩阵

相机和世界的变换

外参矩阵包括平移矩阵t 和 旋转矩阵R

R为3x3, t为3x1

因此                       ,结合上面两个                         ,推导出 世界和图像的转换

图像采集设备的标定方法:

摄影测量学的传统设备标定方法:17个参数描述二维与三维的约束关系    ,计算量大                  ,高精度

直接线性变换法:参数少                          ,便于计算

2.相关概念

(1)彩色图像和深度图像

彩色:RGB        ,像素点存储其亮度

深度:像素点存储该点到相机的距离             ,深度值

深度值只与该点到摄像机的距离有关                           ,和光照            ,环境        ,方向都没有关系    。

但是                           ,由于物体表面反射                ,半透明或透明物体    ,深色物体                           ,距离超过量程等因素                    ,会造成深度图缺失

利用一张RGB+一张dept,可以补全

(2)PCL

Point Cloud Library 点云库

PCL框架包括很多先进的算法和典型的数据结构                       ,如滤波        、分割                           、配准                、识别    、追踪                           、可视化                    、模型拟合、表面重建等诸多功能

libpcl I/O:完成数据的输入                       、输出过程                         ,如点云数据的读写;

libpcl filters:完成数据采样                         、特征提取    、参数拟合等过程;

libpcl register:完成深度图像的配准过程    ,例如迭代最近点算法;

libpcl surface:完成三维模型的表面生成过程                  ,包括三角网格化                  、表面平滑等                        。

(3)点云数据(PCD)

扫描资料 以点的形式记录                          ,点可以是 三维坐标                          、颜色        、光照强度等                       。

点云包括几何信息和非几何信息:

几何信息:(能够被空间变换影响的        ,点的这部分维度叫做特征)如:点的坐标             、曲面法线                           、法向量            、切向量。

非几何信息:(不能被空间变换影响             ,这部分维度叫做描述子)如:颜色        、温度                           、光照强度                    。

3.三维重建流程

比较常见的流程是:

提取图像特征(如SIFT                、SURF等)->利用特征将图像计算图像之间的特征匹配->基于匹配的特征进行稀疏重建                           ,得到各个图像的相机位姿和稀疏的特征点云(SfM)->基于相机位姿进行稠密重建            ,得到稠密点云(PMVS/CMVS)->基于点云重建网格    、体素或者纹理

3.1 深度图像获取

同时获取深度图像和彩色图像

3.2 预处理

对深度图像进行去噪和修复(图像增强)

3.3 点云计算

预处理后的图像具有二维信息        ,像素点的值为深度信息                           ,物体表面到传感器之间的直线距离

根据上面的结果                ,计算推导出 世界坐标系和图像像素坐标系之间的转换关系

3.4 点云配准

多个不同角度的图片    ,之间有一些公共部分

为了利用深度图像进行三维重建                           ,需要对图像进行分析                    ,求解各个图片之间的变换参数                           。

这个配准的过程,以公共部分为基准                       ,把不同时间                           、角度                    、光照的多个图像                         ,叠加匹配    ,到统一的坐标系中     。

计算出每个图片相应的 平移向量与旋转矩阵                  ,消除冗余信息

(1)粗糙配准

提取多个图片之间的特征点(特征点可以是:直线、拐点                       、曲线曲率;自定义符号                         、旋转图形    、轴心)

根据特征方程 初步配准

粗糙配准后                          ,点云和目标点云 将处于同一尺度与参考坐标系内

通过自动 记录坐标        ,得到粗糙配准的 初始值

算法:SFM(Structure From Motion)

主要用在单目重建             ,一段时间内获取连续图像                           ,重建三维环境

双目:多个摄像机            ,拍摄同一时刻的同一物体        ,也称为静态立体视觉

单目:一个摄像机                           ,但单个图像无法完成                ,需要一段时间的一系列图像    ,也称为动态立体视觉

从不同角度拍摄同一物体

固定传感器                           ,旋转物体

旋转传感器                    ,固定物体

单目根据实时性不同,分为 离线重建                       ,在线重建

离线重建:如SFM

在线重建:与SLAM (simultaneous localization and mapping                         ,同步定位与地图绘制)和VO有联系    ,分为渐进式重建                  、直接式重建                。

渐进式:(深度滤波)利用下一时刻图像                  ,不断融合之前的三维信息

SVO: [https://github.com/uzh-rpg/rpg_svo ](https://github.com/uzh-rpg/rpg_svo (深度滤波在depth_filter.cpp) (深度滤波在depth_filter.cpp里面)

REMODE:https://github.com/uzh-rpg/rpg_open_remode

直接式:(深度融合)利用若干时刻图像                          ,一次性完成一个场景的三维重建                          。与SFM类似          。但计算的图像少        ,因此实时性高            。

SfM指的是给出

n

n

n 个固定的三维空间点的

m

m

m
张图像:

x

i

j

=

P

i

X

j

,

i

=

1

,

.

.

.

,

m

;

j

=

1

,

.

.

.

,

n

.

x_{ij}=P_iX_j, i=1,...,m;j=1,...,n.

xij=PiXj,i=1,...,m;j=1,...,n.

m

×

n

m \times n

m×n
个对应关系

x

i

j

x_{ij}

xij
中估计出

m

m

m
个投影矩阵

P

i

P_i

Pi

n

n

n
个三维空间中的点 SfM问题中的不确定性

如果我们对场景进行一个变换

Q

Q

Q             ,同时对相机矩阵进行其逆变换

Q

1

Q^{-1}

Q1

                           ,则图像会保持不变:

x

=

P

X

=

(

P

Q

1

)

(

Q

X

)

x=PX=(PQ^{-1})(QX)

x=PX=(PQ1)(QX)

因而SfM问题中会存在不确定性            ,通过一些约束可以减小不确定性                         。

(2)精细配准

经过粗糙配准        ,得到变换估计值                           ,作为初始值

不断收敛和迭代 的进行精细配准                ,达到更加精准

基于最小二乘法 对 误差函数 进行最小化处理    ,反复迭代                           ,直到均方差误差小于设定阈值

算法:ICP(迭代最近点)                          、SAA(模拟退火)        、GA(遗传算法)

拓展:最小二乘法(最小平方法)(二乘就是平方的意思)

作用:误差估计             、不确定度                           、系统辨识及预测            、预报

数学优化技术                    ,通过 最小化误差的平方和 寻找数据的最佳函数匹配

利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小

同一组数据                       ,选择不同的

f

(

x

)

f(x)

f(x)                         ,通过最小二乘法可以得到不一样的拟合曲线    ,最小二乘法                  ,就是找一个最接近正确的fx (3)全局配准

使用整幅图像 直接计算转换矩阵               。

通过精准配准的结果                          ,进行多帧图像的配准

序列配准:按照一定顺序

同步配准:一次性

减少误差        ,但消耗内存             ,时间复杂度也大

3.5 数据融合

配准后的深度信息                           ,仍然是空间中散乱无序 的点云数据            ,只能展现物体部分信息        。

对点云数据进行 融合        ,获得更加精细的重建模型

KinectFusion技术

以传感器初始位置为原点                           ,构造体积网格                ,把点云空间    ,分割为一堆小的立方体                           ,立方体称为:体素(Voxel)

为所有Voxel赋予SDF值(Signed Distance Field                    ,有效距离场),隐式模拟表面

SDF:此Voxel到重建表面的最小距离值                        。

SDF大于0                       ,表示Voxel在表面前

SDF小于0                         ,表示Voxel在表面后

SDF接近0    ,表示Voxel贴近表面

高效实时                  ,但可重建的空间范围小                          ,因为需要大量空间存储大量的Voxel

TSDF(Truncated Signed Distance Field        ,截断符号距离场)

为了解决Voxel占用大量空间的问题                   。

TSDF方法             ,只存储 距离真实表面 较近的几层Voxel                           ,而不是所有的

可以大幅度降低KinectFusion的内存消耗            ,减少模型的冗余点

3.6 表面生成

构造物体的可视 等值面

常用 体素级方法 直接处理原始的灰度体数据

体素级重建算法:MC(Marching Cube        ,移动立方体)

http://paulbourke.net/geometry/polygonise/

常用工具

VisualSFM是一个整合了特征提取        、图像匹配                           、稀疏点云重建                、稠密重建(需要单独下载CMVS/PMVS)的软件                           ,                ,免费但不开源(不能用于商业用途)    。基于一系列RGB图像    ,我们可以得到一个稠密的点云                        。

PMVS/CMVS用SFM的输出作为输入                           ,利用稀疏的特征点云    、图像和对应的相机位姿来重建稠密点云                       。可以用于商业目的。PMVS指的是将大的点云合理地分割                           、重建                    、拼接的过程                    。

MeshLab是常用的点云、网格显示和处理软件                    ,内置了很多3D重建算法,能够进行基于点云的网格重建                       、简化等                           。

COLMAP是一个开源的软件                       ,可以用于商业目的     。类似于VisualSFM的前半部分                         ,COLMAP能够用于从图像中得到稀疏特征点云和相机位姿                。如果有CUDA的话    ,COLMAP也能用于稠密点云重建和表面重建                          。

Bundler是稀疏重建工具                  ,然而效果可能不如VisualSFM

声明:本站所有文章                          ,如无特殊说明或标注        ,均为本站原创发布          。任何个人或组织             ,在未征得本站同意时                           ,禁止复制                         、盗用    、采集                  、发布本站内容到任何网站                          、书籍等各类媒体平台            。如若本站内容侵犯了原著者的合法权益            ,可联系我们进行处理                         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网站关键词优化wang(《解锁网站排名的利器——SEO关键词优化软件》) emlog模板开发(Emlog插件开发指南:打造个性化博客的利器)