All Versions
Latest Version
Avg Release Cycle
183 days
Latest Release
743 days ago

Changelog History
Page 1

  • v1.6 Changes

    May 13, 2020

    OpenMVG v1.6 "Halibut" is out

    What's new:

    • 24 PR has been handled.
    • 22 issues/features enhancement has been completed.

    OpenMVG core:


    • ➕ Add a helper class to manage to draw colors from gradient & heat bar/map #1594
    • ➕ Add opacity support in svgStyle #1697


    • ➕ Add 3 two-view triangulation routines [1,2] Thx to @rjanvier #1623 #1645
    • ➕ Add Upright Essential matrix solver [3] #1718
    • ➕ Add relative upright up2p solver [4] Thx to @vlarsson #1721



    • ➕ Add ability to chose Triangulation and Resection/Pose method from command line #1729
    • ➕ Add display of view-graph statistics in ComputeMatches #1662
    • 👍 ExportToOpenMVS supports now grayscale images @junlinp #1709
    • FrustrumExport top face is now colored @csparker247 #1702

    🏗 Build enhancement

    • 🛠 Fix includes for GCC 9.2 #1666


    ⚡️ [1] Triangulation: Why Optimize? - BMVC 2019
    [2] Closed-Form Optimal Triangulation Based on Angular Errors - ICCV19
    [3] Fast and Reliable Minimal Relative Pose Estimation under Planar Motion. Sunglok Choi, Jong-Hwan Kim, 2018
    [4] Closed-form solutions to the minimal absolute pose problems with known vertical direction. Zuzana Kukelova, Martin Bujnak, Tomas Pajdla. ACCV 2010
    [5] Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs Yu. A. Malkov, D. A. Yashunin. 2016

  • v1.5 Changes

    July 15, 2019

    OpenMVG v1.5 “Coho Salmon” is out

    What's new:

    • 21 PR has been handled.
    • 29 issues/features enhancement has been completed.

    OpenMVG core:


    • ➕ Add a new P3P solver "Lambda Twist: An Accurate Fast Robust Perspective Three Point (P3P) Solver, ECCV 2018. Thx to @rjanvier & @midjji #1500


    • ✨ Enhancement to SequentialSfMReconstructionEngine2
      • fix possible infinite loop #1241
      • enhance resection stability #1399
    • ✨ Enhanced unit test for robust triangulation #1520


    • ➕ Add Spherical SfM scene to Cubic SfM Scene converter to allow to use MVS on spherical SfM scene (Thx to @li.guan) #1505


    • ➕ add a unit test for union_find #1550

    Clustering (NEW)

    🏗 Build enhancement

    • 🛠 Fix a CMake build error related to OSI/CLP/COIN (regression) #1463
    • ⚡️ Update Dockerfile to use ubuntu::bionic #1464
    • 🛠 Fix some CXX Flag transitivity with cmake build system #1176
    • ✨ Enhance iOS build support #1300

    Continuous Integration

    • ⚡️ Update to build on macOS 10.13 and 10.14
    • 🏁 Faster windows CI (no debug build)

    📚 Documentation

    • ⚡️ Update doc for Microsoft vcpkg #1531 (official port! -> vcpkg install openmvg[core,openmp])
    • ⚡️ Update doc for the Docker interface

    💻 UI

    • 🛠 Fix GCP registration if the numbering is not continuous #1536
  • v1.4 Changes

    August 25, 2018

    OpenMVG v1.4 “Chinook Salmon” is out

    What's new:

    • 14 PR has been handled.
    • 22 issues/features enhancement has been completed.

    OpenMVG core:


    • 🛠 Fix SVG matches export when images have different width or height size #1216
    • 👉 Use reference instead of a temporary in the function named MatchesPairToMat #1188
    • Create a RegionMatcherFactory #1056


    • 🛠 Fix the CVPR 2017 resection solver #1253
    • ➕ Add an orthographic essential matrix solver "Two-View Orthographic Epipolar Geometry: Minimal and Optimal Solvers", Magnus Oskarsson, Journal of Mathematical Imaging and Vision, 2017. #1246


    • ➕ Add a GMS Filter (Grid-based Motion Statistics filter) "GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence, JiaWang Bian and al., CVPR2017 #1049


    Implement a new Incremental SfM pipeline, SequentialSfMReconstructionEngine2: #1241

    • The reconstruction initialization is done thanks to an abstract interface, SfMSceneInitializer. The reconstruction can now start from 2 to n images (n-uplets or existing poses).
    • The triangulation stage considers the entire scene tracks.
    • The resection stage is based on 2d-3D matching confidence.
    • The reconstruction can start with existing camera poses.

    - This new engine is easier to read and to customize (compact and use more abstraction).

    🔨 Sfm Data Colorization refactoring #1252 #1256

    Fix a bug in ESfM_Data enum (behavior was a minor impact on control_point usage) #1306


    • 👍 Extend the localization software to support any camera type in the command line #1210


    • Add openMVG_main_SfMInit_ImageListingFromKnownPoses to init OpenMVG sfm_data scene (views, intrinsics & poses) from GT dataset #1195:
      • DTUMVS, ETH3D, Kitty, Middlebury, Strecha
    • ✂ Remove useless code in IncrementalSfM #1254
    • ➕ Add functions to export tracking data to sfm_data landmarks. enhancement #1292
    • 🚚 Move export2X and exportX binaries to software/SfM/export directory enhancement #1268
    • 🚚 Move the matcher out of a loop for to be more efficient in main_ListMatchingPairs.cpp #1172

    🏗 Build enhancement

    • 👉 User modern CMake recommendations #1176 #1146 #1235 #1147 #1221 #1269
    • 🛠 Fix shared libraries build #1339 #1293 #1286 #1358
    • ✨ Enhance build documentation to support external libs build by Microsoft/VCPKG #1327
    • 👌 Support Ceres-Solver 2.0 API changes #1323
    • ✨ Enhance support of external JPEG, PNG, and TIFF libraries #1266


    • Rewrite main_pano_converter.cpp to use the Spherical camera model enhancement #1314

    Continuous Integration

    • ✨ Enhance Travis XCode build #1170

    📚 Documentation

    💻 UI

    • 🛠 Fix some minor issues #1224
  • v1.3 Changes

    December 08, 2017

    OpenMVG v1.3 “Yellowtail” is out

    What's new:

    OpenMVG core:


    • Generalization of usage of bearing vectors (normalized camera ray vectors).
    • 👍 Allow to use a common interface for essential matrix, triangulation, and resection with know intrinsic data (pinhole, spherical, …).


    • ➕ Add a 3D plane solver.
    • ➕ Add a 2D convex hull computation.


    • Faster method to list triplets of a graph.


    • ➕ Add integral image computation.
    • 🛠 Fix a memory leak in JPG image header reader (@jby1993).

    🔋 Features:

    • 🛠 Fix a mask filtering bug with AKAZE features.


    • Simplification of the Hamming distance metric code.

    Bundle Adjustment:

    • 🛠 Fix usage of control points with Spherical cameras (@Joeppie).


    • Faster Fundamental and Essential solvers.
    • E solver is now usable with bearing vectors.
    • ➕ Add a P3P solver (faster and more accurate - CVPR 2017).
    • Simplification of the multiple view triangulation module.


    • Add a new binary openMVG_main_ChangeLocalOrigin in order to normalize (re-center) GPS scene to be processed by MVS softwares @hcjghr.

    Third party:

    • ⚡️ Update ceres, cereal, eigen, stlplus, easy_exif.

    General enhancement:

    • 15 PR have been handled.
    • 25 issues/features enhancement have been completed.


    • 👍 Incremental SfM supports spherical images,
    • ✨ Enhanced SfM report (min, mean, max track length is now exported).

    🏗 Build/Continuous integration:

    • ✨ Enhanced Visual Studio continuous integration (VS2015/2017).
    • ✨ Enhanced GCC and CLANG continuous integration.

    💻 UI:

    • Enhanced GUI control for ui_openMVG_control_points_registration @trylle.

    💅 Code Style:

    • 👉 Use more C++11 feature.

    Congrats to @rjanvier, @rperrot, @rwiesenfarth, @hcjghr, @Joeppie, @jby1993, @whuaegeanse & al. for their valuable contributions!

  • v1.2 Changes

    July 11, 2017

    OpenMVG v1.2 “Sockeye Salmon” is out

    What's new:

    OpenMVG core:


    • ➕ Add a spherical camera model


    • ➕ Add a super fast AVX2 L2 distance functor for SIFT matching (5x faster).

    Bundle Adjustment:

    • ➕ Add support for the spherical camera model.


    • 🛠 Fix a track generation bug
    • ➕ Add a new fast method to compute common track between various views.


    • ➕ Add a runtime CPUID instruction set detection.


    • 🛠 Fix ComputeFeatures -n option. Fix the multithread feature extraction.
    • ➕ Add triangulation of a match file in ComputeStructureFromKnownPoses (now 2 length tracks can be kept).
    • ➕ Add a sfm_data scene clustering approach to split the scene in chunks for MVS post-processing.
    • ➕ Add an adjacency matches matrix viewer #831.
    • ➕ Add new GUI samples (2 view matches, distortion, VO tracking).

    General enhancement:

    • 31 PR have been handled
    • 58 issues/features enhancement have been completed


    • 👌 Improve Incremental SfM speed

    🏗 Build/Continuous integration:

    • Faster and less memory hungry compilation (2X faster)
    • ➕ Add OSX to the tested compilation and running targets
    • 💅 Use codacity to detect codestyle error
    • ➕ Add compilation time detection of CPU instruction set support for recent CPU
    • 🛠 Fix AVX/AVX2 VisualStudio enhanced instruction set support
    • ➕ Add support for building a Ubuntu Snap package


    • 👀 Random number generation is now seeded

    💅 Code Style:

    • 👉 Use more C++11 feature
    • Work on minimizing the includes, use forward declarations.

    Congrats to @bjornpiltz & @hugbed & @rjanvier & @rperrot & @srivathsanmurali & al. for their valuable contributions!

  • v1.1 Changes

    January 04, 2017

    OpenMVG "Otocinclus" v1.1 is out.

    What's new:

    OpenMVG core:

    🔋 Features:


    • Geodesy: Enable usage of GPS position priors for rigid & non rigid registration doc.


    • ✨ Geodesy: Enhance GCP registration support
    • 👀 Enable the usage of a Cache system to handle large dataset on tiny computers {experimental feature} => see the -c option on main_ComputeFeatures and SfM softwares,
    • ➕ Add a feature tracking demo (description based or local window based (KTL)).
    • localization: the binary can now localize a collection of images


    • ➕ Add a sample that convert a spherical panoramic images into many pinhole images demo.

    General enhancement:

    🏗 Build/Continuous integration:

    • ✂ Remove tinyThread optional dependency
    • 👉 Use FLANN as a header only library
    • ➕ Add a uninstall target


    • 👌 Improve Incremental SfM speed

    Memory usage:

    • Bundle Adjustment uses twice less memory,
    • GlobalSfM use less memory (avoid storage of normalized feature coordinates).

    💅 Code Style:

    • 👉 Use more C++11 feature (type alias)
    • Work on minimising the includes, use forward declarations, clean #ifdef #define

    OpenMVG: Open Multiple View Geometry
    Pierre Moulon, Pascal Monasse, Romuald Perrot, Renaud Marlet
    RRPR 2016: 1st Workshop on Reproducible Research in Pattern Recognition

    Congrats to @rperrot & @mitjap & @hcjghr & @sebastienchappuis & @bjornpiltz for their valuable contributions!

    Thanks to the community for using the project and doing more & more challenging projects!

  • v1.0 Changes

    April 25, 2016

    OpenMVG "Pangio kuhlii" v1.0 is out.

    What's new:

    OpenMVG core:

    -Geometry module:

    • ✨ Enhanced HalfPhane object's intersection (add bounding box to camera frustum intersection)

    - Cameras:

    • ➕ Add a FishEye camera model (nice fit for GoPro images).

    - 🔋 Features:

    • affine detector (MSER/TBMR),
    • 👌 support of feature filtering thanks to image mask
      🖨 easy removal of unwanted part (avoid specific image object like removing the car footprint in street mapping sequences)

    - Multiview:

    • faster rotation averaging,
    • ✨ enhanced translation averaging (can handle any combination of n-uplet of relative translations).
      2-view estimates can be mixed with 3-view and n-view estimates.

    - SfM/Bundle Adjustment:

    • optional usage of Weighted GCP,
    • ⚡️ precise control over which intrinsic parameters will be optimized
      (ex ADJUST_FOCAL_LENGTH|ADJUST_DISTORTION => will keep principal point fixed).

    General enhancement:

    🏗 Build:

    • 👍 full support of ARM target (ready to be used on Raspberry & co.),
    • ➕ added continuous integration for VISUAL STUDIO thanks to AppVeyor.


    • AC-RANSAC is 20-40% faster thanks to a residual error quantification,
    • 👀 multi-threaded computation of features => see -n option on main_ComputeFeatures ,
    • faster Incremental & Global SfM pipelines,
    • faster IO for the matches and sfm_data files.

    Memory usage:

    • 👉 make some parts use twice less memory than before.

    OpenMVG exporter:

    • OpenMVG provides its own exporter for OpenMVS.

    📚 Documentation:

    • 📚 WIP: doxygen documentation

    Congrats to @Ornis & @rperrot & @cdcseacave for their valuable contributions!
    Thanks to @igorti & @pyp22 for dataset sharing for validation of the FishEye camera model.
    Thanks to the community for using the project and realizing more & more challenging projects!

  • v0.9 Changes

    October 05, 2015

    OpenMVG "Corydoras sterbai" v0.9 is out.

    ⚡️ It's recommended to checkout the master tree from the Git rather than download this archive (in order to get submodule updates).

    What's new:

    • 🆕 New features:
      • New Image Localization API :
      • new demo: find image poses inside an existing SfM reconstruction.
      • Matching API:
      • add a generic CascadeHashing implementation that works on arbitrary descriptor type,
      • Ground control point support :
      • QT GUI application & Rigid Registration to GCP.
      • Automatic pair selection for the sequential/incremental pipeline ,
      • New Camera Model:
      • Brown-Conrady Radial3+tangential2.
      • OpenMVG2MVE2 :
      • new exporter for MVE2.
      • Add a sample for features & description repeatability evaluation.
    • ✨ Enhancement:
      • Build:
      • enhanced cmake compilation (cmake report shows third party library version numbers)
      • add ability to use 3rd libraries as external modules,
      • OpenMVG is more easy to install and use in your own projects: Find_package(OpenMVG)
      • Speed:
      • faster Incremental & Global SfM pipelines,
      • faster matching of image collections.
      • Robustness:
      • enhanced stability of the global SfM pipeline

    Thanks to
    👕 @baritone, @cbalint13, @davidli43, @fcastan, @KevinCain,
    @LMescheder, @Ornis, @pranny, @pyp22, @rhiestan, @rperrot, @simogasp
    ✅ for testing and feedback.

  • v0.8.1 Changes

    May 30, 2015

    OpenMVG "Paracheirodon innesi diamant" V0.8.1 is out.

    It's recommended to checkout the master tree from the Git rather than download this archive.

    What's new:

    • Speed enhancement:
      • Incremental SfM pipeline: Looking for next image to resect is now done in parallel.
      • Matching of image collection: a bit faster thanks to a better usage of parallelism.
    • 🌲 Logging:
      • If graphviz is installed, view graphs are exported for the Image matching and the Global SfM processes.
    • Connection with 3rd party application:
      • Extended the BAF ASCII output format for easy usage of OpenMVG SfM scene with 3rd party applications
      • Add a software to export undistorted images
    • API:
      • each openMVG module now use it's own namespace "openMVG::module"
      • Remove the deprecated openMVG/bundle_adjustment module
      • Rewrite some samples to fit the new openMVG/sfm and openMVG/cameras modules
    • 🏗 Build (experimental):
      • (optional) openMVG can now use external Eigen & Ceres libraries.
      • OpenMVG can now be used as a third party library with Find_package(OpenMVG). (Prefer to use a local openMVG installation path: see BUILD)

    Here the complete list of closed issues:

  • v0.8 Changes

    May 12, 2015

    OpenMVG "Paracheirodon simulans" V0.8 is out.

    It's recommended to checkout master tree from the Git rather than download this archive

    What's new:

    • Introduce a SfM data container and a sfm core module.

    The sfm module is highly flexible and can uses:

    • 📇 abstract views (image metadata storage),
    • abstract features & descriptors (image descriptions),
    • abstract camera intrinsic interface (Pinhole, PinholeRadial1/3).

    Sequential & Global SfM pipelines:

    • have been rewritten to fit new data structures
    • ✅ are now unit tested!
    • export a HTML SfM statistics report.

    👍 The Global SfM pipeline supports now multiple focal groups (Stéphane Flotron).

    • 🔋 Features/descriptions:
      • OpenMVG AKAZE implementation (Romuald Perrot).
    • Geometry:
      • Robust triangulation from known camera poses,
      • Camera frustum intersections.
    • Ready to use demo & tutorial python scripts for launching OpenMVG SfM pipelines.

    👌 Improved data serialization and code base.
    🚀 Released camera trajectory accuracy evaluation code (regarding dataset with ground truth).