分类

图像处理

VisualSFM(SFM三维重建工具)

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

大小:1.27 MB

语言:简体中文系统:WinXP, Win7, Win8, Win10, WinAll

类别:图像处理时间:2017-02-21

软件标签:三维软件

  VisualSFM主要运用于SFM的3D重建,他是一个GUI应用程序通过利用多核并行性进行特征检测,利用匹配和调整来快速运行,软件集成了多种工具链,在应对复杂重建项目的时候也具备超强的能力,在重建数据的处理中,采用多核绑定调整,将SFN的三维数据全部整合在一个SiftGPU中,并对其结构的线性时间增量判断三维的重建效果,帮助您在复杂的模型中恢复三维结构;同时,该软件他还提供了几个简单的输出小工具,Mathias Rothermel和Konrad Wenzel的SURE,让您在输出的时候也可以选择多种类型的保存方式!

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

软件功能

  基本用法

  使用VisualSFM GUI

  通过命令行使用VisualSFM

  依赖SiftGPU / PBA和PMVS / CMVS

  典型硬件要求

  注意高分辨率图像的东西

  高级用法

  指定配对列表以进行匹配

  使用您自己的功能匹配

  使用自己的特征检测器

  调整更高速度的参数

  技术细节

  相机型号和坐标系

  焦点初始化

  中间:特征和匹配

  输出格式:N-View Match(NVM)

  使用GUI

  可视化

  鼠标控制和导航

  键盘快捷键

  一些很酷的功能

  VisualSFM中的命令行!

  使用VisualSFM轻松显示动画

  手动干预重建

  限制和问题

  小的GPU内存的潜在问题

  VisualSFM的局限性

软件特色

  特征检测速度

  在GUI模式下,使用“菜单 - >工具 - >启用GPU->自定义参数”

  在控制台模式下,使用“VisualSFM sfm [+ pmvs]输入输出[SiftGPU参数]”

  您需要检查SiftGPU的这些参数的文档。

  通常没有必要这样做,除非你的图形内存不足。

  特征匹配速度

  “param_gpu_match_fmax”是在特征匹配中使用的每图像的特征数。默认值为8192,但在大多数情况下,4k应该足够了。请注意,要素按比例排序,因此将使用最大比例的要素。

  如果你知道图像邻域,如视频中的相邻帧,你应该指定一个匹配对列表,而不是使用完全的成对匹配。

  大量的时间可能用于保存结果(特别是对于NFS),默认情况下在Linux下启用测试功能以提高效率。可以通过设置param_asynchronous_write = 0或取消选中“Pairwise Matching-> Asynchronous Writes”来禁用它。

  增量重建速度

  “param_bundle_full_iteration”是绑定完整模型时的BA迭代次数。

  “param_bundle_full_frequency”控制执行频繁的全束调整。

  这两个参数决定了重建的速度。

使用说明

  1.将图像添加到SfM工作区

  选项1.“文件 - >打开多图像”。你可以多次这样做。

  选项2.“SfM->加载NView匹配”。选择包含相对图像路径的TXT文件。

  选项3.“SfM->加载NView匹配”。从格式中选择“文件夹中的所有Jpeg”,选择一个。

  或者,当您看到菜单项上的图标时,使用相应的工具栏按钮。

  2.运行特征检测和完全成对图像匹配

  点击“SfM-> Pairwise Matching-> Compute Missing Match”

  您可以返回步骤1,添加更多图片,然后再次计算缺失的匹配项。

  有关自定义功能检测和功能匹配,请单击此处

  3.运行稀疏重建

  “SfM-> Reconstruct Sparse”或相应的工具栏按钮。

  束调整步骤将自动使用多色束调整。

  4.使用Yasutaka Furukawa的CMVS / PMVS进行密集重建(自己获取CMVS包)

  “Sfm-> Reconstruct Dense”。请注意,CMVS / PMVS相关参数存储在nv.ini中

  将提示您保存[name] .nvm文件,CMVS将在文件夹[name] .nvm.cmvs中运行

  如果将重建保存到[name] .nvm,[name] .i.ply是第i个模型的结果。

  *保存SfM工作空间,包括空闲时的任何时间的3D重建

  “SfM->保存NView匹配”。您可以随后打开保存的3D模型

  它默认使用包含所有工作空间信息的NVM格式。

使用方法

  3D重建 - 使用命令行

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  命令行示例:

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  在增量重建步骤中,如果按“Ctrl + C”一次,它将退出循环并保存当前模型。 如果按“Ctrl + C”三次,将调用exit(0)。

  使用命令行在大型数据集上应该稍快,因为它不会生成可视化的缩略图(纹理)。 在GUI模式下,您也可以通过单击暂停“||”来跳过像素加载部分 按钮,当它说“加载像素数据...”。

  指定配对列表以进行匹配

  这允许匹配部分图像对,而不是进行全对匹配

  1.写一个包含图像路径对的txt文件; 路径中没有空格!

  2.将图像加载到VisualSFM;

  3.使用“SfM->成对匹配 - >计算指定匹配”;

  4.您可以根据需要指定其他列表的次数。

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  使用您自己的功能匹配

  1.编写一个包含所有功能匹配的txt文件

  2.将您的图像(带有功能)载入VisualSFM

  3.使用“SfM->成对匹配 - >导入功能匹配”

  4.您可以使用相同的方法再次添加要素匹配。

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  使用自己的特征检测器

  选项1.你可以编写一个二进制功能检测器,像Lowe的SiftWin32.exe工作。

  或者你可以编写一个具有类似SiftGPU的接口的共享库。

  选项2.以Lowe的ASCII格式编写.sift文件,它们将被自动转换为VisualSFM二进制格式。 (让我知道如果有一个错误)。

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  机型号和坐标系

  小心它与其他SFM软件(如bundler)略有不同。

  内部摄像机模型有8个参数(7如果径向失真被禁用)

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

  输出格式:N-View Match(NVM)

  VisualSFM将SfM工作区保存到NVM文件中,这些文件包含输入图像路径和多个3D模型。 下面是格式说明

VisualSFM(SFM三维重建工具) 0.5.26 绿色版64位

常见问题

  除PMVS之外的密集重建工具?

  VisualSFM本地支持运行CMVS / genOption / PMVS2工具链,但是您需要运行Meshlab将密集点转换为网格。

  使用VisualSFM的几个附加软件:

  CMP-MVS by Michal Jancosek:这个工具直接生成网格。您需要单击VisualSFM的“重构密集”函数并选择“NVM-> CMP-MVS”来转换数据。

  SURE由Mathias Rothermel和Konrad Wenzel:SURE本身支持NVM文件格式,您不需要运行导出功能。

  MVE by Michael Goesele的研究小组:此工具与CMVS / PMVS导出数据格式相同

  MeshRecon by Zhuoliang Kang:这个工具直接生成网格,并与NVM文件一起工作(没有径向失真,仅Windows)。

  如果一些GPU计算不工作怎么办?

  CPU更换功能检测(大多数卡,甚至英特尔不需要)

  1.获得SIFT二进制(VLFeat的Lowe's)

  2.将SIFT二进制文件放在同一目录中。

  3.通过设置param_use_vlfeat_or_lowe选择Lowe的VLFeat二进制

  4.通过“工具 - >启用GPU->禁用SiftGPU”禁用GPU功能检测。

  或将参数param_use_siftgpu修改为0以进行永久选择

  远程解决方案:

  1.通过终端(GUI的X终端)在支持CUDA的Linux服务器上运行VisualSFM。

  2.您可以将工作区复制到本地机器进行可视化。

  使用CPU进行功能匹配(大多数卡甚至英特尔都不需要)

  禁用GPU功能匹配,取消选中“工具 - >启用GPU->使用GLSL匹配”

  *。将参数param_use_siftmatchgpu修改为0以进行永久选择

  使用CPU进行多芯束调整(基于GPU的PBA不支持ATI)

  Windows:使用非CUDA包。

  Linux:下载PBA代码,运行make with makefile_no_gpu,并重命名libpba_no_gpu.so

  到libpba.so,并将其复制到VisualSFM bin文件夹。

  如果VisualSFM无法找到两个图像进行初始化怎么办?

  如果VisualSFM找不到一个好的对来初始化,你可以尝试手动选择它。

  选项1.切换到“2-View 3D points”,使用左/右扫描所有图像对,找到一个3D点对,选择“SfM->更多功能 - >设置初始化对”。

  选项2.如果您知道哪两个图像是好的,请右键单击“缩略图视图”中的两个图像,在“2-View 3D点”中验证它,然后选择“设置初始化对”。

  如果VisualSFM生成多个模型怎么办?

  首先,检查特征检测和匹配是否正常工作。基本上,您检查检测到的功能和匹配的数量,并查看它们是否太小。

  第二,如果特征检测和匹配工作正常,则有两种不同的情况

  常见的情况:两个模型不共享足够的图像。问题是由于在非常不同的观点之间缺乏特征匹配。你应该得到更多的图片来覆盖过境的观点。

  罕见的情况:两个模型共享足够的图像(param_image_reuse_max)。尝试使用“SfM->更多功能 - >合并稀疏模型”(V0.5.26 +),并看看它是否合并模型。这些问题通常是由初始化的选择引起的。您可以删除一个模型,然后尝试继续保留模型的重建

∨ 展开

网友评论

我要跟帖
取消
所有评论 共 0