ubuntu18.04编译OpenMVG

目前网络上大量的运行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 <images-dir> -f focal_length -o <output-dir>

openMVG_main_ComputeFeatures -i <output-dir>/sfm_data.json -o <output-dir>

openMVG_main_ComputeMatches -i <output-dir>/sfm_data.json -o <output-dir>

openMVG_main_IncrementalSfM -i <output-dir>/sfm_data.json -m <output-dir> -o <output-dir>/reconstruction

openMVG_main_ComputeSfM_DataColor -i <output-dir>/reconstruction/sfm_data.bin -o <output-dir>/colored.ply

openMVG_main_ComputeStructureFromKnownPoses -i <output-dir>/reconstruction/sfm_data.bin -m . -o <output-dir>/reconstruction/robust.bin -f <output-dir>/matches.f.bin

代码已经不能用了

并且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方式是失败的了。

在该目录下找不到这个文件

估计是上一步骤没有生成。 

三、源码Example编译

使用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<openMVG::Mat3> Hs;
H_Solver::Solve(xLeft, xRight, &Hs);  

补充另外求解思路(使用本质矩阵进行求解):

通过对极约束方程利用八点法求解本质矩阵(--->svd分解相机R t,获得相机运动姿态)

五、未解决的问题

问题一:如果通过代码一步步来进行重建管道?

问题二:SfM_SequentialPipeline.py 脚本运行失败

问题三:如何运行openmvg提供给的demo

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值