openMVG

安装

下载地址

git clone --recursive https://github.com/openMVG/openMVG.git

编译(MacOS)

1
2
3
mkdir openMVG_build
cd openMVG_build
cmake -DCMAKE_BUILD_TYPE=RELEASE . ../openMVG/src/

代码分析

/src/openMVG

  • MVG和SfM的核心代码库
  • image:image数据存储、IO、滤波、采样等
  • numeric:基于Eigen库实现矩阵、向量运算,SVD/QR/LU分解
  • features:特征提取、描述等
  • cameras:定义相机内参和多种畸变模型(多项式、Brown、鱼眼)
  • multiview:双视图及多视图的几何解算,包括本质矩阵、基本矩阵、PnP、三角化
  • robust_estimatorl:鲁棒估计
  • linear programming:线性规划算法,依赖OSI_CLP第三方库
  • matching:特征匹配(暴力匹配、cascade、kdtree加速等),剔除误匹配点
  • tracks:根据特征匹配结果进行多张图像的位置跟踪
  • geometry:定义3D空间位姿及转换
  • geodesy:坐标系转换,WGS84、GPS、UTM、ECEF等坐标系转换
  • sfm:实现sfm,位姿估计、三角化、BA优化(光束平差法)

/src/openMVG_Samples

  • 部分算法示例(利用openMVG库实现),包括相对定向、特征匹配等
  • imageData:部分数据,Exif_Test,SceauCastle(相机内参),StanfordMobileVisualSearch
  • features_siftPutativeMatches:提取SIFT特征,并进行匹配,结果展示
  • features_affine_demo :利用MSER/TBMR进行区域检测 ,将区域归一化到固定尺寸
  • features_image_matching:利用Image_describer进行特征提取,匹配

/src/software

  • 软件接口,包括SfM及可视化、VO(视觉里程计)、UI等

/src/dependencies

  • 依赖库,包括GLFW、OPENEXIF、OSI CLP、CEREAL

/src/third_party

  • 底层第三方库,包括eigen、fast、flann、jpeg等