目前网络上大量的运行openmvg的重建管道文章因为OpenMVG的升级有些已经不能用了,自己也还在踩坑当中,简单记录下自己遇见的一些问题。
OpenMVG的安装是否简单,按照官网给出来的安装操作,即可在linux上安装好软件。
Compiling on Linux
Install the required external libraries.
$ sudo apt-get install libpng-dev libjpeg-dev libtiff-dev libxxf86vm1 libxxf86vm-dev libxi-dev libxrandr-dev
If you want see the view graph svg logs, install Graphviz.
$ sudo apt-get install graphviz
Checkout OpenMVG.
$ git clone --recursive https://github.com/openMVG/openMVG.git
$ mkdir openMVG_Build && cd openMVG_Build
Configure and build
$ cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/
$ cmake --build . --target install
二、运行测试数据实现运动结构恢复
注意:
也就是说网上大量的
openMVG_main_SfMInit_ImageListing -i
openMVG_main_ComputeFeatures -i
openMVG_main_ComputeMatches -i
openMVG_main_IncrementalSfM -i
openMVG_main_ComputeSfM_DataColor -i
openMVG_main_ComputeStructureFromKnownPoses -i
代码已经不能用了
并且unbuntu里边的 /usr/local/bin 确实只能找到openMVG_mian_SFm ,
查看tutorial操作,这里说得不够明显
OpenMVG on your image dataset · openMVG/openMVG Wiki · GitHub
看这个网站,SfM: Structure from Motion — openMVG library
因此我采用的是使用python脚本来进行demo的运行。这里也遇见了问题。
使用global方式是运行成功的
但是使用sequential方式是失败的了。
在该目录下找不到这个文件
使用make编译源码后,神奇的是运行成功也没有在当前目录生成执行文件。
比如我到example下编译
完成
生成后路径下并没有找到可执行问题,黑人问号?
Multiple View Geometry 简称 MVG,包含三个关键矩阵:一个是单应矩阵 ′=xi′=Hxi,参见博文 OpenCV 之 平面单应性
另两个是基础矩阵 ′=0xi′TFxi=0,本质矩阵 =[]=′E=R[t]x=K′TFK
例如,已知四组对应特征点坐标,用 DLT 算法求解单应矩阵 H,代码如下:
// Setup left, right corresponding points and solve for H
openMVG::Mat xLeft(2, 4), xRight(2, 4);
// Instantiation of homography solver
using H_Solver = openMVG::homography::kernel::FourPointSolver;
// Perform model solving
std::vector Hs;
H_Solver::Solve(xLeft, xRight, &Hs);
补充另外求解思路(使用本质矩阵进行求解):
通过对极约束方程利用八点法求解本质矩阵(--->svd分解相机R t,获得相机运动姿态)
问题一:如果通过代码一步步来进行重建管道?
问题二:SfM_SequentialPipeline.py 脚本运行失败
问题三:如何运行openmvg提供给的demo