没有合适的资源?快使用搜索试试~ 我知道了~
P5-毕业论文1
需积分: 0 0 下载量 23 浏览量
2022-08-03
14:24:48
上传
评论
收藏 770KB PDF 举报
温馨提示
试读
35页
背景描述我们所在的自然,物体大多都是以三维的形式存在,储存记录信息,然后用这些信息重新构建这些三维物体便成为了计算机视觉领域的一个重要的研究课题。三维重构在医学
资源详情
资源评论
资源推荐
一、 绪论
1 背景描述
我们所在的自然,物体大多都是以三维的形式存在,储存记录信息,然后用这些信息重
新构建这些三维物体便成为了计算机视觉领域的一个重要的研究课题。三维重构在医学、建
筑、航空、机械制造等行业中都有着广泛的运用,比如施工管理虚拟环境中的 CAD 识别,
医学断层图像三维重构,基于连续超薄切片的线粒体三维重构,激光共焦扫描显微镜中的三
维重构,机器人加工控制——在加工一个零件的毛胚之前,机器人必须先建立毛胚的三维模
型;计算机辅助设计——一个自然三维体模型的自动生成可作为 CAD 系统的输入;动画制
作——为动画制作者提供大量真实世界的模型,等等。随着三维重构的方法不断完善,要求
不断降低,将会有越来越多的领域使用这项技术。
目前三维重构的方法主要分为两大类:动态重构和静态重构。
动态重构利用三维激光扫描仪等仪器得到物体表面的三维点坐标。这种方法的局限性在
于,扫描对象的尺寸有限,无法应用于大型实体如建筑物、火箭、航天飞机、山川等等,另
外成本目前还比较高,且要求用户具备一定操作水平。
静态重构则是利用实体的二维几何与拓扑信息,使用算法近似构建物体的表面,重构其
三维信息。逆向重构法以及当前的课题基于二维照片的三维重构法都属于静态重构,静态重
构一般对设备和操作人员的要求不高,精度比动态方法要高,而且一般精度可以根据要求调
整,但是整体算法比较复杂。
2 动态重构的基本方法
目前通过不同方向拍摄的二维照片恢复三维信息的动态重构主要的算法主要分为八叉
树算法和光线追踪算法。
八叉树算法要求确定物体的中心和能够完全包围物体的立方体,在到达要求的精度要求
之前,进行进一步细分。在细分的过程中,分辨当前点是黑的(处于物体内部),灰的(处
于物体边界)还是白的(处于物体外部),并给予相对的处理。完成细分后,确定结点之间
的空间位置以及连接信息,使用三角剖分的方式找出三角面片形成网格,最后再贴上纹理实
现三维的重构。
在早期的八叉树算法中,只是简单的将物体包裹在一个立方体当中,从中心沿三个轴向
将物体一分为八,并记录所有结点的信息。但这样的算法的时间空间复杂度都非常的高,除
了能够将本身就是矩形或者是由矩形简单组合地的物体较为精确地重构出来以外,对于形状
较为不规则的物体,无法进行有效地重构,而且会浪费大量的时间和空间。在重新绘制八叉
树记录点时,也不考虑遮挡,重复绘制,导致整个八叉树算法效率的进一步的降低。
在第二阶段,八叉树算法有了改进,在细分的过程中对于在物体外部的无效点不加以记
录和处理,并且在重绘八叉树细分以后的点的时候,考虑面对面的遮挡,面对线的遮挡,并
对于被遮挡的面和线不加以绘制[1]。但是在计算遮挡的过程中必须要对几乎所有的面和所
有的边之间进行“交”的计算,这个计算本身增加了时间的耗费,而且对于遮挡关系复杂的
物体,在计算完毕后还会将一条直线分成一系列的直线段,绘制这些直线段的时耗要远远大
于绘制一整条直线。所以采用遮挡计算对时间的影响还和物体本身的形状复杂度有关。但在
大多数的情况下,效率还是提高了的。
第二阶段的八叉树,对于大型的物体,时间和空间的耗费依然是不可容忍的,考虑到这
种算法重构的是体象素,而在视觉的观察中,内部的点是无法被观察到的,所以,之重构物
体表面的“壳”也可以达到同样的视觉效果而且能够很大程度上地节省时间和空间。在这个
基础上,Jingliang Peng 和 C.-C. Jay Kuo 对细分的结点进行了优先级的计算和挑选[2],使同
样的细分次数中,有效细分的次数更多,被细分的结点处于物体表面的可能性更大,进一步
提高了使用八叉树重构的效率。
虽然八叉树重构的效率得以提高,但是由于八叉树的本质是将一个立方体有限次的细分
得到一个物体的大致三维信息,最后八叉树信息是以基本单位结点(node)存在的,这就使
得重构得到的物体表面存在阶梯状(如图 1),无法得到连续的表面,在这种情况下,光线
追踪算法可以解决一定问题。
图 1:金字塔状物体的八叉树重构
光线追踪算法的原理是,一个三维物体在不同角度的相机的拍摄下,得到一系列的照片
(相机个数大于等于两个)。在空间取任意一点 A,在相机 C 中观察到其像点 a,则 A 必定
在 Ca 的连线上某一点。如果同时用相机 C、C’观察同一点 A,则 A 必定在 Ca 和 C’a’的连
线交点上,它的空间位置是唯一的。当提供多幅图的时候,空间点的位置受到了更多的约束,
所得的解会更精确[3]。为了改进算法的时间空间复杂度,同样只对物体表面上的三维点做
映射在光线追踪算法中,开始是以相机焦点为顶点,从顶点向照片掩膜边界引射线,形成光
锥,再用其他光锥中的射线一一和当前光锥相交,得到物体的近似外包壳,光锥越多,得到
的“壳”越接近物体表面,但是这对定标和三维立体几何计算的计算有非常精确的要求,而
且从二维照片映射到三维空间是一个比较困难的过程,所以这种算法在实际运用中往往得不
到较好的效果。
在后来的改进算法中,改进了从二维照片映射到三维空间的困难[4],方法改为由三维空间
映射到二维空间,这在一定程度上减小了整个算法的误差。要实现这种改进必须先找出立体
空间里的三维点到照片掩膜中的二维点的对应方式,目前最常用的是 DLT(Direct linear
transformation)系统。
3 本文的目的和贡献
鉴于光线追踪算法能够在比较好的时间和空间复杂度下,较为精确地重构一个物体,是
目前动态重构的一个较好的方法,但是这种算法对于误差的敏感度非常高,目前还没有非常
好的改进方式,尤其是物理测量形成的误差。本文使用 Maya 建模,对于各种参数的输入的
扰动进行分析,得到各种参数偏差对参数的影响以及对最后重构结果造成的影响,使得在重
构时可以根据要求精度和本文分析所得的误差度进行比较,分析重构的可行性。
4 论文组织安排
解下来的章节中,将有对基本算法的介绍和对偏差产生的影响的分析。第二章介绍了主
要定标的 DLT 算法及其参数具体计算方法和重构所用到的光线追踪算法。第三章和第四章
是论文的主要部分:第三章分析了输入数据对物理参数的影响和对 DLT 参数的影响程度,
第四章则通过实验分析了,不同的物理参数和 DLT 参数对重构结果产生的影响。第五章介
绍了一个用于误差分析的小程序;第六章则对使用以上误差分析方法得到的结果进行了一个
小结,并提出了一些建议。
二、 DLT 算法以及光线追踪算法
1 DLT 算法介绍
1.1 算法分析
DLT 系统分为参照坐标系(转台坐标系)、相机坐标系和照片坐标系,其中参照坐标系
和相机坐标系是三维坐标系,照片坐标系是二维坐标系。坐标系一律采用右手参照坐标系,
图(2.1)。
图(2.1)
DLT 定标算法本质上是通过找出几个特征点,使它们的参照坐标系中的三维坐标和照
片坐标系中的二维坐标一一对应,以用来确定整个坐标系的特征。然后再用确定下来的坐标
系的特征找出其他点的三维坐标和二维坐标的对应。
由于照片坐标系的原点在相机和参照两个坐标系原点的连线上,且与相机坐标系的
XOY 平行,照片坐标系点的坐标轴与这个点在相机坐标系中的坐标只有一个位移,所以求
三维物体到二维照片的映射点也就是求这个点从转台坐标系到相机坐标系的转换,公式
(2.1)。
Xc = M
T
(X – Xcr)
公式(2.1)
通过这个公式可以得到相机在参照坐标系中的坐标,其中 MT 是旋转矩阵,公式(2.2),
mij 是对应旋转矩阵 MT 中的 i 行 j 列,转角β可参见图(2.1)
公式(2.2)
所以可以解得 Xcr 的坐标为公式(2.3),Xcr 是相机在参照坐标系中的座标,A 为相机
中心到参照座标系中心的距离,ycr 是相机平台的高度(相对于转台):
公式(2.3)
根据相机的物理参数,包括焦距,转台到相机焦点的距离,相机转过的角度等等推算,
再经过相机非线性的扭曲误差的调整,以上式子可以转化成为:
x = x0 - cx *[m11*(X - Xcr) + m21*(Y - Ycr) + m31*(Z-Zcr)] / [m13*(X - Xcr) + m23*(Y -
Ycr) + m33*(Z-Zcr)] + cx△x
y = y0 – cy *[m12*(X - Xcr) + m22*(Y - Ycr) + m32*(Z-Zcr)] / [m13*(X - Xcr) +
m23*(Y - Ycr) + m33*(Z-Zcr)] + cy△y
公式(2.4)
cx、cy 为相机比例因子,x0 和 y0 是照片坐标系的原点在转台坐标系中的坐标。
DLT 算法的基本对应方程为公式(2.5),其中 L1 至 L11 为 11 个 DLT 参数,X, Y, Z 为
三维点的坐标,x, y 为对应点照片坐标系坐标。
公式(2.5)
这个式子展开以后即为公式(2.6)
公式(2.6)
联立公式(2.5)和公式(2.6)得到公式(2.7)
公式(2.7)
其中 A、x0、y0、cx、cy、ycr 为未知数,需要三个不对称的点(对称的点会导致整个
矩阵不是满秩的,无法解出唯一解)来解出这些未知数。
1.2 参数计算
为了消去一些未知数,简化方程,我们可以从参数β入手考虑,因为β为 0 的时候是相
机的起始位置,比较好精确地取得,而且β为 0 的时候 sinβ的值也是 0,这时 L5 和 L9 就
可以简单地化为 0。使用 k 代替 1/A,可以得到十一个参数公式(2.8):
公式(2.8)
如果我们可以使用 m 个定标点,它们的照片坐标和三维参照坐标的转换公式是:
公式(2.9)
因为在三维坐标系中,Z 是深度坐标系,相对来说比较不好取得,所以用于定标的点大
部分应该是 Z 为 0 的点,但根据公式(2.9),Z 等于 0 时,参数 L3, L7, L11 就无法计算得出,
所以不能所有的点都取 Z 等于 0。
当 Z 等于 0 时,去掉值为 0 的项,公式(2.9)可以简化为公式(2.10)
公式(2.10)
联立公式(2.8)和公式(2.10)可以得到公式(2.11)
剩余34页未读,继续阅读
13572025090
- 粉丝: 49
- 资源: 313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- VIVADO中UART IP核使用
- 【深度学习实际案例解析】深度学习实际案例解析
- 封装swagger组件,提供全新UI以及无状态登录接口调用解决方案
- 小龙坎支局2024年4月渠道积分核对数据.xlam
- onlyoffice搭建及与alist使用的view.html
- Quadcopter-UAV-attitude-estimation-linux常用命令大全demo
- Quadcopter-UAV-attitude-estimation-based-on-数据库课程设计
- pbdlib-python-master.zip
- 43904245495352013_base.apk
- 基于springboot+vue + redis的工作流审批系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0