[转]一篇文章教你学会使用三维重建知名开源系统rainbow70626

如何把一组图像转换为3D模型,这可能是三维重建初学者们最常遇到的问题。这个过程融合了计算机视觉、计算机图形学、图像处理等多门学科的知识,是一套非常复杂的工程系统,许多同学想要学习却苦于没有资料参考,导致入门难度大大提高。

在介绍开源系统之前,我们先简单概述一下三维重建的基本原理:

下图给出了各种三维重建开源系统的信息,第一列为开源系统名称,其他列为该系统支持重建的哪些阶段。绿色表示支持,红色表示不支持。

VisualSFM的基本理念是SFM(StructureFromMotion):

安装:

下载好的文件名称叫VisualSFM_windows_32bit.zip,将其解压便可得到exe文件,无需安装。

VisualSFM的操作:

点击“openMultipleImages”按钮,选择所需的图片(运用shift选取),再点击“open”,如下图所示。

在TaskViewerwindow中可以看到处理的步骤及进度,如下图。

2.匹配照片之间的特征点

点击“ComputeMissingMatches”,如下图。

3.进行稀疏重建

点击“Compute3DReconstruction”,如下图。

结果如下图:

4.进行稠密重建

点击“RunDenseReconstruction”,如下图。

选择一个文件放置将要创建的模型,如下图。

在完成上面4步后,基本操作就完成了。

在VisualSFM中,已经根据图像重建出了三维点云,下一步就是使用meshlab把三维点云重建成三维模型。

接下来运行meshlab,如下所示:

打开之后会提示打开使用的图像文件,这里只要选择同目录下的list.txt文件即可,打开后会载入一个稀疏的点云模型。

2.选择File——>ImportMesh,导入00/models中的option-0000.ply文件。如下图所示:

同时可以利用图中的按钮删除一些你不想要的杂点。

3.Filter–>PointSet–>SurfaceReconstruction:Poisson进行网格化。

OctreeDepth:控制着网格的细节,此值越大细节越丰富但占内存越大运行起来慢,一般设10,可慢慢调大。

4.上面的操作会生成一个气泡把模型包起来,接下来使用Filters–>Selection–>Selectfaceswithedgeslongerthan把模型中多余的面去除。

5.修复流型边缘,Filters–>Selection–>SelectNon-Manifoldedges

6.参数化,Filter–>Texture–>Parameterizationfromregisteredrasters

7.投影纹理,Filter–>Texture–>Projectactiverasterscolortocurrentmesh,fillingthetexture

这里可以设置分辨率,512的2的二次方倍:512/1024/2048/4096/8192…分辨率越高,则结果越清晰。

8.ExportMeshas...导出文件,最终结果如下图:

Bundler和CMVS-PMVS是进行多视图三维重建的一套非常有用的工具包。Bundler利用一系列无序图片生成场景的稀疏点云,并且估计每一幅图片的相机参数(内参和外参)。CMVS-PMVS可以利用已知图片以及图片对应相机参数(使用Bundler求得)来进行稠密的三维重建(densereconstruction)。

2.源码下载

直接从github上来下载Bundler和CMVS-PMVS的源码,在linux终端分别输入如下命令,等待下载完成。

3.安装依赖

为了编译和运行Bundler,我们需要安装如下依赖

sudoapt-getinstallliblapack-devlibblas-devminpack-devf2cgfortranjheadimagemagick接下来继续安装SIFT依赖

sudoapt-getinstalllibc6-dev-i386安装CMVS-PMVS依赖

sudoapt-getinstalllibgtk2.0-devlibdevil-devlibboost-all-devlibatlas-cpp-0.6-devlibatlas-devlibcminpack-devlibgfortran3libmetis-edf-devlibparmetis-devfreeglut3-devlibgsl0-dev4.编译Bundler和CMVS-PMVS

首先我们编译Bundler,在linux终端使用cd命令进入到bundler_sfm下,也就是Makefile文件所在的目录,然后在终端输入make命令,回车等待编译完成。编译完成后会在bin目录下会生成可执行文件。为了使Bundler顺利执行,我们还要进行如下操作:

sudocp/usr/bin/jheadbin/sudocpbin/libANN_char.so/usr/lib/接下来我们继续对CMVS-PMVS进行编译,我们依然使用cd命令进入到CMVS-PMVS/program/下,然后依次执行以下命令:

mkdirbuild&&cdbuildcmake..make执行完成后,CMVS-PMVS也就编译完成了,生成的可执行文件位于build目录下的main目录中。为了接下来运行方便,我们将生成的可执行文件cmvs、genOption、pmvs2这三个文件拷贝到bundler_sfm目录的bin下。

5.执行Bundler和CMVS-PMVS进行三维重建

我们可以利用自带的example中的图片进行测试,我们以ET为例来说明如何进行三维重建。首先还是使用cd命令进入到ET文件夹下,然后执行以下命令:

../../RunBundler.sh最终会生成很多的结果文件,其中bundler文件夹下的bundler.out中存储了重建的稀疏点3D坐标和相机参数。

接下来我们就可以利用PMVS进行稠密点云的重建了,在这之前我们还需要将Bundler的输出转换为CMVS-PMVS的输入格式。我们利用bin下的Bundle2PMVS即可完成这一过程。

../../bin/Bundle2PMVSprepare/list.txtbundle/bundle.out此时会生成pmvs目录,在此目录下有prep_pmvs.sh文件,我们编辑此文件,将里边的BUNDLER_BIN_PATH修改为bundler的bin文件夹的实际路径。例如:

BUNDLER_BIN_PATH=/home/chao/AAAAAA/temp/bundler_sfm/bin

然后依次执行如下操作:

shpmvs/prep_pmvs.sh../../bin/cmvspmvs/../../bin/genOptionpmvs/../../bin/pmvs2pmvs/option-0000(注意option之前的空格键)生成的最终结果位于pmvs目录的models文件夹下,名称为option-0000.ply,我们直接使用meshlab打开此文件便可以看到结果。如下图所示:

我们也可以自己拍照片来进行三维重建,但是要注意两个问题

参考资料

解压并运行COLMAP:

2.新建项目

【File】–>【NewProject】

3.新建database文件,选择images所在路径

【New】新建db文件

【Select】选择images所在路径

4.特征提取

【Processing】–>【Featureextraction】

Cameramodel选择【SIMPLE_RADIAL】

参数选择【ParametersfromEXIF】

5.特征匹配

【Processing】–>【Featurematching】

6.稀疏重建

【Reconstruction】–>【Automaticreconstruction】

或者【Reconstruction】–>【Startreconstruction】

Workspacefolder,【Selectfolder】选择项目目录

Imagefolder,【Selectfolder】选择图片路径

7.稠密重建

【Reconstruction】–>【Densereconstruction】

Workspace工作空间,【Select】选择项目目录

【Undistortion】–>【Stereo】稀疏重建-->【Fusion】所有点云融合

8.重建后的点云在COLMAP中可视化不错,也可以用meshlab软件可视化:

mve是加强版的三维重建开源软件,三维重建和纹理映射都有,功能齐全,但在国内用的不多。

系统:ubuntu17.10编译器:gcc7.2.0MVE工具的编译:

或者应用git命令:

可以选择直接阅读手册编译:

也可按照下面内容操作:

1)进入下载好的mve文件夹

cdmve2)进行编译

make-j8所有库安装好,编译完成,就可以使用了。

应用MVE前准备

同样在上面提到的用户手册(userguide)中,有说如何应用:

按照上述命令,一步一步处理序列图片,可以最终得到三维重建的结果。

不过在输入上述命令的时候,会遇到找不到命令的情况,因为上述的应用还尚未添加到环境变量中,所以不能直接在命令行下使用,所以为了方便使用,将这些所有的工具都添加到环境变量中去,添加环境变量的方式如下:

1)应用vi编辑器打开环境变量的文件(命令如下,即将mve的所有apps都添加到环境变量中):

vi~/.bashrc2)更新环境变量,使上述修改的环境变量能够生效

source~/.bashrc3.数据准备

使用DerHass数据集,里面包含一堆图片,可以把MVE的所有工具都能用一遍,生成一个ply的三维模型:

4.应用MVE

1)下载得到数据集后解压:

2)在上图所示的文件夹,即存放der_hass-20140923文件夹的目录下打开终端,输入命令(der_hass-20140923代表的时待处理的数据集,der_hass代表的是处理后输出的存放数据的文件夹):

最后得到的各种ply文件如图:

最后生成的文件为surface-L2-clean.ply,用meshlab打开的结果为:

用OpenMVS重建的结果如下所示:

详细步骤

OpenMVS依赖的几个开源库,有两个是可选的可以先不安装.

2.安装说明

工具:

3.Linux编译

Ubuntu16.04

opencv中部分函数未定义

先卸载:

sudoapt-getautoremoveopencv-docopencv-datalibopencv-devlibopencv2.4-javalibopencv2.4-jnipython-opencvlibopencv-core2.4libopencv-gpu2.4libopencv-ts2.4libopencv-photo2.4libopencv-contrib2.4libopencv-imgproc2.4libopencv-superres2.4libopencv-stitching2.4libopencv-ocl2.4libopencv-legacy2.4libopencv-ml2.4libopencv-video2.4libopencv-videostab2.4libopencv-objdetect2.4libopencv-calib3d2.4再源码安装,可以安装比如4.1.1版本。

boost报错

解决方法:升级boost==1.6.3

使用说明

OpenMVS可执行文件生成在openMVS/openMVS_build/bin/里面,在openMVS_build文件夹下打开终端,按照顺序执行如下命令:(-w设置的是数据的路径,-i是输入的文件名,-o是输出的文件名)。

稠密重建

./bin/DensifyPointCloud-w/home/**/data/openMVS_sample-iscene.mvs-otest_dense.mvs输出log:

得到的稠密点云test_dense.ply:

曲面重建

./bin/ReconstructMesh-w/home/data-itest_dense.mvs-otest_mesh.mvs输出的log:

生成的网格模型test_mesh.ply:

网格优化

./bin/RefineMesh-w/home/data-itest_mesh.mvs-otest_refinemesh.mvs输出的log:

优化的模型test_refinemesh.ply:

纹理贴图

./bin/TextureMesh-w/home/data-itest_refinemesh.mvs-otest_texture.mvs输出的log:

输出的结果test_texture.plytest_texture.png。

openMVG(OpenMultipleViewGeometry):开源多视角立体几何库,这是一个cv界处理多视角立体几何的著名开源库,信奉“简单,可维护”,提供了一套强大的接口,每个模块都被测试过,尽力提供一致可靠的体验。

CMVS-PMVS(amodifiedversion):将运动结构(SfM)软件的输出作为输入,然后将输入图像分解成一组可管理大小的图像簇。MVS软件可以用来独立和并行地处理每个簇,其中来自所有簇的重建不错过任何细节。

常见的多视图三维重建管线:重建稀疏点云-StructurefromMotion(Sfm)→重建稠密点云-Multi-ViewStereo(MSV)→重建表面-SurfaceGeneration(SG)→纹理映射-TextureMapping(TM)

在本部分中,OpenMVG负责从原始图像到稀疏点云,PMVS负责重建稠密点云、重建表面和纹理映射。

OpenMVG安装过程:

原始数据:11张从不同角度拍摄的城堡照片

右上方俯视城堡稀疏点云:(打开reconstruction_xxx下的colorized.ply或robust.ply)

#1.把openMVG生成的SfM_Data转为适用于PMVS输入格式的文件cdopenMVG/ImageDataset_SceauxCastle/reconstruction_global/openMVG_main_openMVG2PMVS-isfm_data.bin-o./*注:执行后会在-o路径下生成一各PMVS目录,包含models,txt,visualize三个子目录:models为空;txt包含对应图像的txt文档,每个里面都是一个3x4的矩阵,大概是相机位姿;visualize包含11张图像,不确定是原图像还是校正过的图像#2.使用PMVS重建稠密点云、表面、纹理pmvs2./PMVS/pmvs_options.txt#注:不要修改pmvs_options.txt文件名*注:执行后会在./PMVS/models文件夹中生成一个pmvs_options.txt.ply点云文件,用meshlab打开即可看到重建出来的彩色稠密点云。

THE END
1.在线教程丨10s出图!腾讯首个3D生成大模型上线在线教程丨10s 出图!腾讯首个 3D 生成大模型上线 3D 模型在游戏开发、影视动画、虚拟现实 (VR) 等多个行业和场景中发挥着重要作用,但现有的 3D 生成扩散模型在快速生成和泛化能力上仍存在不足。为了解决这些问题,腾讯的研究团队推出了 Hunyuan3D-1.0,同时开源了轻量版与标准版模型。这一创新框架通过结合多视角https://blog.51cto.com/u_16060192/12821884
2.Unique3D:清华大学开源2D图像转3D模型生成框架新媒派Unique3D是一种开源的2D图像转3D生成框架,它能够从单张图片中生成高质量和高效率的3D网格模型。这项技术由清华大学团队开发,它结合了多视图扩散模型和法线扩散模型,以及一种高效的多级上采样策略,可以快速从单张图片中生成具有高保真度和丰富纹理的3D网格。Unique3D在图像处理和3D建模领域具有重要意义,为游戏开发、动画https://pidoutv.com/sites/21408.html
3.Kaedim:AI驱动的在线2D图片转3D建模平台Kaedim支持一键生成3D模型,用户只需上传图像并点击Generate按钮,即可等待模型生成。此外,对于需要批量处理多个图像的用户,Kaedim也提供了批量处理功能,能够同时处理多张图像并生成对应的3D模型。这一功能极大地提高了工作效率,满足了用户对于高效创作的需求。 https://www.zhanid.com/daohang/kaedim3d.html
4.图片转3D模型?用Aiuni来实现近日,Github上发布了一个类似于Tripo的模型–aiuni,它是由一个清北背景的AI团队,主要用AI将图片转3D,该项目地址:https://wukailu.github.io/Unique3D/。目前该团队也上线了内测C端产品Aiuni,和开源模型Unique3D主要的区别在于:Aiuni的数据集涵盖了更多高质量高审美的商用数据,因此生成的效果会更精美;此外,比起https://blog.itpub.net/70041321/viewspace-3036644/
5.汽车模型图max3dmax3ds3d模型免费下载专用模型 SU模型SU模型 产品|机械产品|机械 3d打印3d打印 家装|工装家装|工装 材质贴图 贴图贴图 VRayVRay HDRIHDRI PBRPBR 平面 素材 图标图标 元素元素 背景背景 PPTPPT 字体字体 动图动图 模板 在线设计在线设计 样机样机 海报海报 插画插画 UIUI https://www.aigei.com/item/qi_che_mo_xing_13.html
6.已知XYZ坐标,怎么样生成3D图?急求!!如建筑物或机器,也可以是虚构的场景或道具。生成3D模型的方法有很多种,最常见的方法之一是使用3D建模https://ask.zol.com.cn/x/24954637.html
7.终极指南:照片建模,如何从照片创建3D模型这是小编平时使用最多的一个在线图片转3D模型的工具,它操作非常的简单,只需要点击“Images”选择图片,就会自动生成3D模型。程序中有预设好的样式,包括长方体,圆柱体,球体,弧面体,心形等,选择后只需要鼠标点击一下“Refresh”,就可以实时转换,在线预览,再点击“Download”下载即可。 https://www.3dzyk.cn/thread-19580-1-3.html
8.照片生成3d模型软件哪个好APP推荐照片生成3d模型软件哪个好下载豌豆荚照片生成3d模型软件哪个好榜单为您提供最新照片生成3d模型软件哪个好大全,这里不仅有照片生成3d模型软件哪个好安卓版本APP、历史版本应用下载资源,还有类似照片生成3d模型软件哪个好的应用推荐,欢迎大家前来豌豆荚下载。https://www.wandoujia.com/bangdan/404054/
9.2023最好用的3D样机神器!一键生成效果图,还能自定义角度!今天推荐的这款 3D 样机插件,不仅免费可用,内置的高品质丰富模型还可以为你的作品加分添彩,助你轻松提升过稿率! 01设计稿尺寸自适应,3 步生成 3D 样机效果图 之前给同学们发过不少样机资源的源文件,一些在线样机网站也分享过,但这些资源的使用都略繁琐。不仅要上传下载、导入导出,还得把设计稿转成图片后,贴到https://www.shangyexinzhi.com/article/7212735.html
10.科学网—六年磨一剑!科研绘图神器ThreeD11发布ThreeD v11拥有60余项绘图功能,极大突破了PPT3D功能局限,可提高PPT作图效率数十倍至上百倍,全面革新了PPT的三维绘图方法。从前很多被认为很难画甚至不可能用PPT画的图,现在甚至可以一键生成了。 一、三维造型 1. 二维形状一键转三维 ThreeD插件可一键将二维图形变成三维模型,比如圆形变成球体,正方形变成正八面体,线https://wap.sciencenet.cn/home.php?mod=space&do=blog&id=1401429
11.在线3D工具魔猴网推出使用方便的在线3D工具,人人都可以在线处理3D模型。现推出的工具包括:3D模型转换、3D模型修复、模型定制器、2D转3D、照片浮雕、图案DIY、立体文字等等。http://www.mohou.com/tools/
12.图片3D图案在线生成器SD分享导航站SD分享导航站上传图片生成3D立体图案,自定义输入想要生成的效果 网站:https://pissang.github.io/voxelize-image/ https://home.designshidai.com/3341.html
13.一键生成3D模型,这些AI3D工具不容错过,并且免费!七个圈一键生成3D模型,这些 AI 3D 工具不容错过,并且免费! 大家好我是花生~ 之前为大家推荐过的AI3D 模型生成工具 Genie 在前几天推出了新的 1.0 版本, 今天为大家介绍一下此次更新的特点,再为大家推荐另外 4 款同类的AI3D 工具,可以帮助我们通过文本或图像快速生成完整的 3D 模型。https://www.qigequan.com/college/aike-zuotu/9993.html
14.触站AIAI绘画网站AI绘图设计软件热门应用查看更多 换脸与放大 照片动漫风格化 一键生成三种证件照 文生图[手部优化] 文生图[修复放大] 图生图[普通放大] 半透明玻璃感图标 冰块清凉风格图标 一键抠图+修复背景 涂鸦生成作品 主体擦除 贴纸化 风格化写真 虚拟摄影 作品广场 全部二次元高级大模型端午主题写实?插画3D国风龙年特辑场景https://www.czhanai.com/
15.迄今最精准人脸数字模型,任意2D照片转换逼真3维人脸伦敦帝国理工学院的研究人员开发了一种新的系统,能自动对各种族、年龄的人脸进行准确的 3D 建模。他们还建立了一个大规模人脸扫描数据库,用于训练这个系统。实验证明,该系统比当前常用的最好模型表现优异许多,可以将任意角度拍摄的 2D 快照生成逼真的 3D 人脸。Science 对此作了报道,标题中提到“计算机科学家构建了迄https://www.36kr.com/p/5073179
16.10个建筑AI工具,从设计到施工全覆盖!肯定有你从来没听过的针对不太懂Promt的设计师,也提供了下拉菜单式的选项,可以选择风格、材质、环境、时间等参数来生成渲染图。 你也可以上传本地的渲染图,通过提示语给出修改意见,它就能根据需求来修改已有图片的风格和细节。 Maket支持多人在线协作,虽然不能做出尺寸非常精准的住宅设计,也不能建立三维模型,但却可以在前期方案设计的https://www.hxsd.com/information/9177/
17.照片转3d模型3D打印机照片:如何将照片转换为3D模型?(中)由研究人员开发的人工智能化处理工具能够将单张照片转换为3D打印模型。 来自英国诺丁汉大学的研发团队开发了一款3D面部重建在线应用程序使用一张图片来检索图片中的人像,并生成一个可以完全用于3D打印的模型。 Lithophane 首先,什么是Lithophane? Lithophane是一种利用识别打印厚度的3D打印照片处理平台,它可以显示不同的灰色https://blog.csdn.net/weixin_39672680/article/details/111610732
18.3DM/GLTF格式在线转换3DM转GLTF网站在进行模型格式在线转换时,支持对顶点颜色和图片纹理进行处理,转换后的模型,不仅保留了基础的模型结构,还保留了模型的顶点颜色和图片纹理。 模型下载 在3DM转GLTF网站的转换页面会预览页面中,点击【下载】按钮,网站会自动生成模型文件的下载链接。 https://www.mvrlink.com/3dm-to-gltf/
19.VoxCraft用户可以通过简单的文本描述或上传图片,让VoxCraft AI进行解析并生成相应的3D资产。VoxCraft AI旨在简化3D建模流程,使设计师、艺术家和开发者能够更专注于创意和艺术性,同时提高工作效率。 VoxCraft的主要功能 图像到3D生成:支持通过单张图片创建3D模型。VoxCraft能够从图片中推断出物体的3D结构,并生成一个带有纹理的https://ai-bot.cn/sites/11164.html
20.在线AI工具meshy使用流程及体验分享!meshy是一个三维模型贴图在线生成的网站,可以生成贴图,也可生成模型,支持多种模型格式输出,比如OBJ、GLB、GLTF等。本文3DCAT实时云渲染将对此3D游戏资产AI生成平台meshy进行使用流程及体验上的分享! 1、输入官网地址(www.meshy.ai),点击注册账户并登录; https://www.3dcat.live/share/post-id-284/
21.123DCatch下载安装123D Catch APP是迄今为止手机上最为强大的照片生成3D模型的工具,主要功能便是快速地将数码照片转换成为需要的三维模型,可以让使用者将手机相机所拍摄的数字照片上传至云端,并将其转换成3d模型。123D Catch APP利用云计算的强大能力,可将数码照片迅速转换为逼真的三维模型。只使用123d catch破解版让您更容易拍摄出自http://www.kkx.net/az/63422.html
22.png3D在线2D图片转3D专业好用png3D-在线2D图片转3D,操作简单,一用即会,0基础也能轻松进行AI艺术图生成,苏打办公完美贴合你的需求,立即体验!http://bangong.360.cn/site/details?id=3093