VisualSFM是一款专业的SFM三维重建软件。如果你需要进行SFM三维重建久友下载站小编推荐VisualSFM。软件可以为用户提供便捷的三维重构平台,整个用户界面设置了重构所需的功能模块,这对用户的工作更加方便非常有帮助;该程序允许用户直接从用户界面导入文件进行编辑; rich可以直接在应用程序上单击隐藏菜单功能,它可以匹配两个视图,还可以成对匹配重建的3D地图。同时,它支持稀疏的重建,恢复的简历和密集的重建。您需要工作;需要注意的是,该程序仅支持win64位,目前不支持32位,需要它的用户可以下载体验。
使用说明:
用户可以直接通过此网站下载相应的安装软件包,然后将其解压缩。双击该程序将其打开
双击后,将弹出相应的用户界面,整个用户界面的功能模块分布非常清晰
3D重建-使用命令行
相同命令行的相同功能是选项“ + import”。请勿使用完全匹配的“ SfM->逐项匹配->计算丢失的匹配”。匹配文件的格式如下:匹配文件= <图像匹配列表>
图像匹配= <图像1路径> <图像2路径> <#匹配>
例如,以下给出了888.jpg和709.jpg之间的24个匹配项
使用您自己的特征检测器
选项1.您可以编写一个二进制函数检测器,例如Lowe的SiftWin32.exe。
或者,您可以使用类似SiftGPU的界面编写共享库。
选项2.以Lowe的ASCII格式写入.sift文件,它们将自动转换为VisualSFM二进制格式。 (让我知道是否有错误)。
选项3.以以下二进制格式写入.sift文件:
调整参数以提高速度
大多数参数存储在nv.ini中,该文件在首次运行时会自动生成。功能检测速度在GUI模式下,使用“菜单->工具->启用GPU->自定义参数”在控制台模式下,使用“ VisualSFM sfm [+ pmvs]输入和输出[SiftGPU参数]”您需要检查以下内容这些参数在SiftGPU上。通常,除非您用尽了图形内存,否则这样做是没有意义的。特征匹配速度“ param_gpu_match_fmax”是用于特征匹配的每个图像的特征数量。默认值为8192,但是在大多数情况下4k就足够了。请注意,特征按比例排序,因此将使用比例最大的特征。
如果您知道图像邻域(例如视频中的相邻帧),则应指定成对列表,而不要使用完整的成对匹配。
保存结果可能要花费很多时间(尤其是对于NFS)。现在,在Linux下默认启用beta功能以提高效率。可以通过设置param_asynchronous_write = 0或取消选中“按对匹配->异步写入”来禁用它。增量重构速度“ param_bundle_full_iteration”是b时的BA迭代次数
推出完整的模型。 “ Param_bundle_full_frequency”控制执行全包调整的频率。这两个参数决定了重建的速度。
焦距初始化
焦距(以像素为单位)是根据EXIF.Focallength和FocalplaneXRes / FocalplaneYRes自动计算的,而不是使用CCD数据库。
提示:如果调整JPEG大小,请保留原始EXIF! (例如XNView可以做到这一点)
如果EXIF不包含此信息,则焦距设置为1.2 *最大(宽度,高度),对应于中等视角。
VisualSFM还支持对所有图像使用单个固定校准[fx,cx,fy,cy]。
使用菜单“ SfM->更多功能->设置固定校准”
中级:功能与搭配
VisualSFM自动将功能检测和功能匹配保存到磁盘。每个图像文件[名称]。 [ext]将存储[name] .sift和[name] .mat。 [name] .sift存储所有检测到的SIFT函数,[name] .mat存储功能匹配。
提示:添加新照片(或关闭/重新启动)时,VisualSFM仅与缺少的内容匹配。
如果要更改特征检测参数,请再次运行重建。您需要删除所有相应的.sift和.mat文件。
如果要回读匹配结果,请在此处检查匹配文件代码;或者您可以使用“ SfM->对对匹配->导出F-矩阵匹配”
输出格式:N视图匹配(NVM)
VisualSFM将SfM工作区保存到NVM文件,该文件包含输入图像路径和多个3D模型。以下是格式说明
可视化
使用菜单->视图下的菜单项选择视图模式或更改参数。
您可以使用鼠标,键盘快捷键或工具栏按钮进行快速切换。
您可以将当前视图另存为JPEG文件或将其复制到内存中(粘贴到ppt吗?)
更多文件即将推出
鼠标控制和导航
在3D点模式下右键单击相机以查看所选图像
在缩略图模式下左键单击图像以查看所选图像
在单图像模式下单击鼠标右键可返回上一个查看模式。
通过左/右键单击按住+移动来平移/旋转。
按Shift +鼠标或鼠标滚轮缩放
使用“ Alt +鼠标滚轮”更改点的大小
更改通过Ctrl +鼠标滚轮更改相对摄像机尺寸。
只需尝试左/右双击/单击(在空白区域或在相机上,在图像上)
键盘快捷键
“ Z”缩放适合2D视图;重置3D视图。
“退格”以返回缩略图视图
密集3D模型和稀疏3D模型中的“ TAB”
在“ TAB”之间切换,以在原始图像及其无失真的视图之间切换
Pa“暂停”仅显示当前摄像机看到的点
“ T”在3D可视化模式之间切换:摄像机+点/摄像机/点
单张图像查看模式下的“ S”开关
单图像查看模式“ F”中“ F”显示/隐藏功能的SI SIFT显示样式
在密集重建模式下
显示在“ A”中显示/隐藏相机
“上/下”切换到上一个/下一个3D模型
嗯...
VisualSFM中的命令行
在主窗口中按ENTER,命令文本框将显示在状态栏中。
“ Am”动画经理
日志“日志”使用默认的文本编辑器打开日志文件
C“ clog <文件名>”替换默认的日志文件
找到“定位”以在文件资源管理器中打开当前图像
“ pwd”打印出当前目录
“ Cd <路径>”更改当前目录
“跳过”加载NVM
“ Ci”不加载匹配记录以打印当前相机
“ Pi”打印当前对
上“ on mi”
“ Psz”更改OpenGL的默认点大小
“缩放”更改高分辨率屏幕截图的缩放倍数
“ Ao”调整坐标系以适合主相机平面
排序“排序”将摄像机重新排序为输入顺序(对于所有型号)。
TAB显示以前的命令
轻松使用VisualSFM轻松显示动画
通过单击F4将当前视图添加到动画列表。添加多个视图(不同的视点或不同的视图模式)后,单击一次F5,您将看到已保存视图的过渡动画。双击F5,动画将循环播放。这就是我制作论文视频的方式。
在内部命令行中键入“ am”,您将看到制作动画的命令的完整列表。
手动干预重建
在GUI模式下,您可以暂停/恢复增量重建。
查找以下按钮:>> +继续,||暂停
相机如果相机未正确注册,则可以将其删除
右键在3D N视点模式下右键单击相机,然后选择一个相机
单击手动)按钮将相机从3D模型中移除
您也可以手动选择初始化对,请参见下面的常见问题解答。
较小的GPU内存可能存在问题
默认情况下,SiftGPU将通过在需要时对图像进行下采样来尝试满足您的内存要求。在小型内存GPU上,您获得的功能可能会少很多,这将在以下方面产生不同的结果
不同的计算机。
您可以查看有关远程/ CPU解决方案的常见问题解答,或者
您也以尝试禁用降采样并重新运行实验。
1,删除所有.sift和.mat文件
2,选择“工具->启用GPU->自定义参数”
在参数列表中添加“ -nomc”,表示“无内存限制”
3,重新运行比赛并重建。
由于内存不足,无法保证正常运行。
这可能有效,
VisualSFM的局限性
1.基于关键点的重建仅适用于纹理表面。
如果检测到的功能太少,该工具将无法使用
例如,白色的墙壁,颜色均匀的物体
2.增量重建方法有很多局限性:
循环并不总是关闭的,
敏感于初始化(您可能需要尝试手动初始化)
不稳定使诸如前进的运动退化
不要利用视频的运动连续性(可以考虑使用SLAM工具)。
3.只有一个径向参数。这足以拍摄产品照片,但是
如果您的相机有不适合此型号的大畸变,则可能无法使用。
4.由于操作系统的限制,大数据集中的32位版本的内存可能很容易耗尽。
多线程稳定性
重建在重建过程中,将修改点和摄像机,并同时对其进行可视化。由于我不想通过可视化降低重建速度,因此我使用了非常有限的互斥控件。
已经进行了一些内存管理,以确保当您查看实时重建(旋转,缩放,单击...)时,崩溃的可能性很小。但是内存泄漏的可能性仍然很小。
对于控制台模式,这不是问题。同样,如果仅使GUI窗口最小化或避免过多的鼠标拖动,则将减少此类内存泄漏的机会。
FAQ-1。一些典型错误消息的含义(例如ERROR1)。
1. SiftGPU未通过检测测试”或“错误:siftgpu无法正常工作”,
这意味着SiftGPU功能检测无法正常工作。图形驱动
已时,或者图形卡根本不支持SiftGPU。
更新图形驱动程序后,应重试。如果以相同的方式失败,也许
需要切换到CPU进行功能测试或获得更好的GPU。
2.“ ERROR1” +“错误:找不到过滤器二进制文件”
这意味着VisualSFM尝试使用CPU功能检测器,但找不到它。
在Windows下,如果param_use_
vlfeat_or_lowe == 0然后搜索。 \ SiftWin32.exe或
\ Sift.exe否则。 对于其他操作系统,它将寻找./sift3
“找不到CMVS!” 或“错误:上面的CMVS命令失败!\”
这意味着VisualSFM无法启动cmvs,genOption或pmvs2。
通常如果CMVS二进制文件未放置在正确的位置,通常会发生这种情况。
ViualSFM [.EXE]应该位于同一文件夹中:
Cmvs.exe / pmvs2.exe / genOption.exe [pthreadVC2.dll]适用于Windows,
CMVS / PMVS2 / GENOption其他操作系统。
如果尚未下载,请参阅FAQ-2。
请注意,这些命令也可能由于输入错误或单独输入而失败。 你应该
尝试自己在系统终端上运行这些命令,然后查看
这些二进制文件中的原始日志。
软件特色:
功能检测速度快,在GUI模式下,使用“菜单->工具->启用GPU->自定义参数”
控制台在控制台模式下,使用“ VisualSFM sfm [+ pmvs]输入和输出[SiftGPU参数]”
您需要检查SiftGPU的这些参数的文档。通常除非您的图形内存不足,否则无需这样做。
功能匹配速度
Param_gpu_match_fmax是在特征匹配中使用的每个图像的特征数。默认值为8192,但在大多数情况下4k应该足够。请注意,要素是按比例排序的,因此将使用比例最大的要素。
如果您知道图像邻域,例如视频中的相邻帧,则应指定匹配对列表,而不要使用完整的成对匹配。
软件功能:
支持使用VisualSFM GUI,通过命令行使用VisualSFM
该程序在使用时依赖于SiftGPU / PBA和PMVS / CMVS
改进用法,支持指定匹配列表以进行匹配
您可以使用自己的特征匹配和自己的特征检测器
支持更高速度参数的调整,输出格式:N-View Match(NVM)
技术细节,相机模型和坐标系,焦点初始化,中间:功能和匹配
命令行VisualSFM中的命令行!使用VisualSFM轻松显示动画
可能会花费很多时间来保存结果(尤其是对于NFS)。默认情况下,在Linux下启用测试功能以提高效率。
增量重建速度param_bundle_full_iteration是绑定完整模型时的BA迭代次数。