ViualSFM(SFM三维重建工具) 0526 绿色版64位

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

软件功能

  基本用法

  使用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重建 - 使用命令行

  命令行示例:

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

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

  指定配对列表以铺开匹配

  这允许匹配部分图像对,而不是铺开全对匹配

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

  2.将图像加载到VisualSFM;

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

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

  使用您自己的功能匹配

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

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

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

  4.您可以使用相同的计划再次增补要素匹配 。

  使用自己的特征检测器

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

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

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

  机型号和坐标系

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

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

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

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

常见尴尬

  除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的Lowes)

  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 +),并校验校验它是否归并模型。这些尴尬通常是由初始化的选择引起的。您可以删除一个模型,然后尝试绵延保留模型的重建

渝ICP备2025076537号-22