基于gpu的多视图三维重建developer.download.nvidia.com/gtc/pdf/1030_4.pdf3...
TRANSCRIPT
基于GPU的多视图三维重建
史英杰
北京航空航天大学
2011-12-14
2
选题目标
多视图三维重建(Multi-View Stereo)
输入:图片序列、相机参数
输出:三维模型
设计并实现一个能够兼顾重建精度和效率的多视图三维重
建算法,在取得较高重建精度的同时,通过GPU提高算法
速度。
选题背景与意义
精度
速度
3
选题背景与意义
基于侧影轮廓线的方法 原理:利用物体轮廓投影形成的视锥求交
优点:速度快
缺点:缺乏表面细节
基于颜色匹配的方法 原理:利用颜色信息求匹配点
优点:像素级重建、重建精度高
缺点:算法耗时、计算量大
多视图三维重建
4
选题背景与意义
Middlebury 数据集
测评系统
多视图三维重建
Multi-view stereo evaluation
http://vision.middlebury.edu/mview
D. Scharstein et al.
5
选题背景与意义
深度图融合法 原理:将双目视觉重建出的多幅深度图融合为一个点云
优点:算法复杂度低、易于GPU加速
缺点:鲁棒性低、易受光照等因素影响
基于表面贴片的方法 原理:通过表面贴片对三维点进行优化求解
优点:多视图匹配增大鲁棒性
缺点:算法复杂、计算量大
多视图三维重建
6
选题背景与意义
通过多目匹配的重建算法在点云扩张阶段会产生噪点累积
重建算法计算量大、耗时严重
存在的问题
研究思路
通过一种渐进式的点云扩张方式,有效控制噪点的累积
利用GPU进行并行加速,提高算法效率
7
基于特征匹配和渐进扩张的三维重建算法[1]
Harris算子
图像求导
高斯滤波
特征提取
像素点兴趣值
( , )0.5 ( 1, ) 0 ( , ) 0.5 ( 1, )
I x yI x y I x y I x y
x
( , )0.5 ( , 1) 0 ( , ) 0.5 ( , 1)
I x yI x y I x y I x y
y
2
2
( )
( )
( )
I I I
x x yM G s
I I I
x y y
2det( ) ( )I M k tr M
本质是一种角点,即图像中两个方向变化都剧烈的点
[1]Accurate, dense and robust multiview stereopsis. Furukawa et al. 2008 PAMI
8
基于特征匹配和渐进扩张的三维重建算法
DoG算子
高斯模板
LoG
特征提取
DoG
2 2 2( ) / 2
2
1( , , )
2
x yG x y e
( , , ) ( , , ) ( , )L x y G x y I x y
( , , ) ( , , ) ( , , )D x y L x y k L x y
一种具有尺度空间不变性的特征点
9
基于特征匹配和渐进扩张的三维重建算法
特征匹配
匹配速度快,但匹配精度低,可能出现误匹配
添加相关图片
极线约束
( ) { | ( ) ( ) ( ) / ( ) ( ) 0.5}V p I n p c p O I c p O I
'( ) { | ( ), ( , , ( )) }V p I I V p Ncc p I R p
去除低相似度图片
R(p)
n(p) c(p)
10
基于特征匹配和渐进扩张的三维重建算法
特征匹配
投投1
投投2
投投投投
n(p)
c(p)
投投1 投投3
投投2 投投3
Patch p
通过双线性插
值求得每个点
的RGB
三维坐标,三
维法线
相关图片的数
量作为匹配是
否成功的标准
基于贴片的三维点优化
贴片:和三维点一一对应,用于对三维点进行优化
11
基于特征匹配和渐进扩张的三维重建算法
点云扩张
( ) { ( ', ') | ( , ), ' ' 1}i iC p C x y p Q x y x x y y
候选扩张网格
基于图片的点云扩张
将二维图像划分为
网格,并记录对应
的三维点信息
生成新三维点
( ') ( )n p n p ( ') ( )R p R p ( ') ( )V p V p
'p
扩张以初始匹配点云为基础,其精度对最终结果有直接影响
12
基于特征匹配和渐进扩张的三维重建算法
渐进扩张
第一次扩张:粗粒度扩张
第二次扩张:细粒度扩张
目的:快速得到物体表面轮廓,不纠结于细节
目的:得到物体表面细节信息
粗粒度扩张之后进行噪点过滤,避免第二阶段产生更多噪点
13
基于特征匹配和渐进扩张的三维重建算法
点云去噪[1]
邻居关系
过滤器1:
过滤器2:
过滤器3:
( ( ) ( ')) ( ) ( ( ) ( ')) ( ') 2c p c p n p c p c p n p
( )
( ) (1 ( )) 1 ( )i
i
p U p
V p N p N p
( )V p
( )
( )
W p
A p
与p临近的
贴片集合
与p冲突的
贴片集合
与p所在二维网格
及其相邻网格中
贴片的集合
14
基于特征匹配和渐进扩张的三维重建算法
泊松重建[2]
[2]Poisson surface reconstruction. M. Kazhdan et al. in Symp. Geom. Proc. 2006
点云 三角网格
15
基于GPU的特征提取
算法流程
CPU GPU
Texture
memory
计计计计计计
计计gx, gy,计
计计计计计
gxgy
计计计计计计
计计计
计计计计计计
计计
计计计计计计计计计计计计
计计CPU
计计计计
计计计计计计
计
计计计计计计
计计
计计计计计计计计
Harr i s DoG
GPU端主要任务
高斯滤波
计算差分金字塔
采用CPU-GPU协同工作的方式提高效率
16
基于GPU的特征提取
线程组织方式
gri d
bl ock t hread
以像素为单位
17
基于GPU的特征提取
Intel Xeon 3.0GHz/3GB
GeForce GTX 285
(a) (b)
0
5
10
15
20
25
30
35
40
45
50
DSR DR TSR TR
加速
比
Harris DoG 与图片分辨率有关,
尚有一定的优化空
间
18
基于GPU的非线性优化
算法流程
CPU GPU
计计Kernel
计计计计计 Texture
memory
计计计计
计计
Yes
NoConstant memory
计计计计计
计计计计计计
计计
No
Yes
计计计计计计
计计计计计
计计计计计计
计计计计计计
计计
计计计计计计
计计计CPU
计计计计计计
计计计计计
GPU端主要任务
迭代求优
CPU端主要任务
生成初值
处理结果
19
基于GPU的非线性优化
目标函数
降低自由度
优化方法
线程组织方式
1 1( , , )
( )( 1) / 2
n n
i ii j iN I I p
Ncc pn n
到光心的
高度h( , , )x y z h
( , , ) ( , )m n t
Nelder-Mead法
一种单纯形法,不必求
目标函数导数,适合于
GPU计算
多线程处理多个非线性优化,每一个负责一个整个的优化过程
20
基于GPU的非线性优化
存储器的选择
纹理存储器
自动进行插值运算
有缓存、只读
常量存储器
容量小、速度快
存储图片
存储相机参数
21
基于GPU的非线性优化
基于GPU的特征匹配
将所有可能
匹配点保存
下来
和串行算法相比的优势
同时得到所有匹配点,通过对这些点按照Ncc进行排序,
可优先处理精度较高的点。
和串行算法相比的劣势
会做一部分重复运算
22
基于GPU的非线性优化
基于GPU的特征匹配
(a) (b) (c)
(a) (b) (c)
23
基于GPU的非线性优化
基于GPU的特征匹配
数据集 三维点个数(C) 三维点个数(G) NCC平均值(C) NCC平均值(G)
DSR 1659 1536 0.879 0.902
DR 6957 7165 0.781 0.896
TSR 1337 1022 0.853 0.898
TR 5423 3974 0.746 0.869
通过并行的特征匹配,可以得到更少但更精确的三维点,
有利于接下来的点云扩张
24
基于GPU的非线性优化
基于GPU的点云扩张
(a) (b) (d)(c)
(a) (b) (d)(c)
25
基于GPU的非线性优化
基于GPU的点云扩张
0
20000
40000
60000
80000
100000
120000
match expand-1 filter-1 expand-2 final
三维
点( 个
)
DSR DR
TSR TR
点云变化曲线基本重合
26
基于GPU的非线性优化
非线性优化加速比
与并发线程数有关,超过4000时趋于稳定
CPU平均执行
时间:5.2ms
GPU平均执行
时间:0.18ms
27
基于GPU的非线性优化
泊松表面重建结果
(a) (b)
(d)(c)
(a) (b)
(d)(c)
28
基于GPU的非线性优化
算法时间测试
数据集 图像个数 特征提取 特征匹配 第一次扩张 第二次扩张 泊松重建 总时间
DSR 16 1s 9s 45s 44s 13s 1m52sDSR(C) 16 26s 19s 276s 95s 13s 7m9s
DR 48 3s 43s 57s 118s 20s 4m1sDR(C) 48 78s 112s 557s 171s 21s 15m39sTSR 16 1s 8s 35s 40s 10s 1m34s
TSR(C) 16 24s 16s 245s 86s 10s 6m21sTR 47 3s 54s 55s 109s 19s 4m
TR(C) 47 76s 93s 540s 169s 21s 14m59s
29
基于GPU的非线性优化
Middlebury测评
本文方法
对Temple重建效果较差,有待改进
30
基于GPU的非线性优化
Middlebury测评
重建
算法
TempleRing TempleSparseRing DinoRing DinoSparseRing
Acc Com Time Acc Com Time Acc Com Time Acc Com Time
Furuka
wa[1]0.47 99.6 272:12 0.63 99.3 128:34 0.28 99.8 300:34 0.37 99.2 151:37
Zach[3] 0.56 99.0 0:33 0.51 99.1 0:35
Chang[4] 0.54 99.0 02:04 0.73 94.5 01:19 0.51 94.6 08:53 0.66 89.9 03:46
Merrell[5] 0.83 88.0 00:19 0.84 83.1 00:21
本文 0.78 94.4 04:00 0.97 86.5 01:34 0.58 98.9 04:01 0.61 97.7 01:52
[3] Fast and high quality fusion of depth maps. C. Zach et al. 2008 3DPVT
[4] GPU-friendly multi-view stereo reconstruction using surfel representation and graph cuts.
Ju Yong Chang et al. 2011 CVIU
[5] Real-time visibility-based fusion of depth maps. P. Merrell et al. 2007 ICCV
31
谢谢!
敬请各位专家老师批评指正