三维重建——纹理映射

纹理映射部分主要编译运行了Github上两个以C++为主的源代码:G2LTex和mve两部分。

G2LTex

G2LTex源码链接:https://github.com/fdp0525/G2LTex
项目的输入数据集目录结构:

|——apt0
   |——apt0
   |  |——color_00.jpg(彩色图像序列)
   |  |——…………
   |  |——color_**.jpg
   |  |
   |  |——color_01.png(深度图像序列)
   |  |——…………
   |  |——color_**.png
   |  |
   |  |——color_01.cam(相机位姿)
   |  |——……………
   |  |——color_**.cam
   |
   |——data.ply//(要进行重建对象的的格网模型)

进入G2LTex主目录,运行:

./bin/G2LTex Data/apt0/apt0 Data/apto/apt0.ply

//生成的文件目录后续补充(Data/apt0目录下生成result.obj等文件。)

运行时遇到的错误:Could not load image header of Data/apt0/apt0/color_00.jpg

tok:Data/apt0/apt0
tok:Data/apt0/apt0.ply
PLY Loader: comment VCGLIB generated
Reading PLY: 347095 verts... 665321 faces... done.
	Removed 150 redundant faces.
Generating texture views: 
-----------tok ext size:12
Failed to open settings file at: 
depth fx:0 fy:0 cx:0 cy:0 width:0 height:0
RGB fx:0 fy:0 cx:0 cy:0 width:0 height:0
Global depth:0 RGB:0
Local RGB:0 edge:0  Reg:0
Global Iterations:0 Local Iterations:0
Could not load image header of Data/apt0/apt0/color_00.jpg
Cannot determine image format

在Github上有人问到了相类似的问题,但目前还没有得到解答,也没有详细阅读这个项目下的源码,只能等待作者及时有效的回复。
Github上问题链接地址:https://github.com/fdp0525/G2LTex/issues/18
具体纹理映射的效果可以通过项目的result目录查看所给数据集的重建效果。

MVE

mve源码链接:https://github.com/simonfuhrmann/mve
这个项目结构比较复杂功能也比较强大,其中可以具体查看他们的首页Multi-View Environment,他们也提供了数据集和相应的论文。
编译运行mvs的示例可以查看TexRecon – 3D Reconstruction Texturing
我编译测试mve的Der Hass数据集的过程可以参考下面描述:

imdir=<directory where you have your images>    //数据集目录

codedir=<directory where you want to do the compilation>    //编译mve的位置
cd $codedir

# Download and compile MVE  下载编译MVE
cd $codedir
git clone https://github.com/simonfuhrmann/mve.git
//可以现在Github上进行下载
make -j8 -C mve
# Compile UMVE
cd mve/apps/umve && qmake && make

# Download and compile texrecon
cd $codedir
git clone https://github.com/nmoehrle/mvs-texturing.git texrecon
cd texrecon && mkdir build && cd build
cmake ..
make -j8


# Image import & bundling (images --> camera parameters)
cd $imdir           //进入到数据集目录
$codedir/mve/apps/makescene/makescene -i . scene
$codedir/mve/apps/sfmrecon/sfmrecon scene

# Multi-view stereo reconstruction (images + camera parameters --> depth maps)
$codedir/mve/apps/dmrecon/dmrecon -s3 scene 
#-s3 downscales the images three times  缩小图像三次

# Surface reconstruction (depth maps + camera parameters --> 3D model)
$codedir/mve/apps/scene2pset/scene2pset -F3 scene point-set.ply
$codedir/mve/apps/fssrecon/fssrecon point-set.ply surface.ply
$codedir/mve/apps/meshclean/meshclean -t10 -c10000 surface.ply surface-clean.ply

# Texturing (3D model + images + camera parameters --> textured 3D model)
$codedir/texrecon/build/apps/texrecon/texrecon scene::undistorted surface-clean.ply textured

# Inspect results
$codedir/mve/apps/umve textured.obj

mve的输入数据集的结构:

mve源码数据输入
|——data-mvs
|  |——bundle.nvm    //具体内容含义还没分析清楚
|  |——IMG_0001.jpg  //彩色图像序列
|  |——IMG_0002.jpg
|  |——………………
|  |——IMG_***.jpg

得到mve重建后的模型textured.obj重建后的模型非常清晰。


——————————————————————
对上面两个源码又有了一定的认识和理解。其中MVE是一个完整的单目三维重建项目。openMVG和openMVS这两个开源项目也提供了一个完整的单目三维重建流程。这两个项目对单个物体的最终重建效果都非常清晰。也相互测试了各自的官方数据集,效果分别如下图,但是用openMVS对MVE数据集Derhass测试时,ubuntu18.04下,报出killed,没有得到最终的重建结果。
思路还是比较混乱,可能后期清晰一点之后再回来补充。
我们目前需要和寻找的理想重建方案是一种基于采集到的深度图像进行室内实时重建的方案。目前接触测试的几个开源的rgbdslam(ORB_SLAM2为主),在测试自己的数据集时特征提取上出了很大的问题,对于官方数据集效果确实非常好。确实还有很长的路要走,还是继续了解一些三维重建的方案,先有一定的入门了解。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Matlab双目视觉三维重建纹理映射是一个将立体图像融合为三维模型并将纹理映射至该模型的过程。首先,双目摄像机通过同时拍摄目标物体的两幅图像,得到左右两个视角的图像。然后,通过将两幅图像进行双目视差计算,确定目标物体上每个像素的三维坐标。 在Matlab中,可以利用视差图进行视差计算,常用的方法包括基于区域的方法(如块匹配算法、动态规划算法)和基于特征点的方法(如SIFT算法、SURF算法)。计算得到的视差图表示了物体上每个像素点相对于摄像机的深度信息。 接下来,需要创建一个三维模型来表示物体的几何形状。可以使用Matlab的三维点云对象,将每个像素点的三维坐标信息转化为对应的点云坐标。然后,可以使用三维重建算法(如体素构建算法、点云重建算法)将点云对象转化为三维几何模型。 最后,将纹理映射到三维模型上,可以使用Matlab的纹理映射函数进行操作。首先,需要将图像映射到三维几何模型的坐标系中。可以通过将图像上的像素点坐标映射到三维模型上的对应点坐标来实现。然后,可以利用纹理采样技术,将图像的颜色信息映射到三维模型上的每个点上,实现纹理映射。 基于Matlab双目视觉三维重建纹理映射可以应用于许多领域,如虚拟现实、三维建模和医学图像处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值