Changelog History
Page 1
-
v1.6 Changes
May 13, 2020OpenMVG v1.6 "Halibut" is out
What's new:
- 24 PR has been handled.
- 22 issues/features enhancement has been completed.
OpenMVG core:
Graphics
- ➕ Add a helper class to manage to draw colors from gradient & heat bar/map #1594
- ➕ Add opacity support in svgStyle #1697
Multiview
- ➕ 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
Matching
Software/SfM
- ➕ 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
Wiki
- Initiate a wiki https://github.com/openMVG/openMVG/wiki (with tutorials and description of OpenMVG data structures) #1675
⚡️ [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, 2019OpenMVG v1.5 “Coho Salmon” is out
What's new:
- 21 PR has been handled.
- 29 issues/features enhancement has been completed.
OpenMVG core:
Multiview
- ➕ Add a new P3P solver "Lambda Twist: An Accurate Fast Robust Perspective Three Point (P3P) Solver, ECCV 2018. Thx to @rjanvier & @midjji #1500
SfM
- ✨ Enhancement to SequentialSfMReconstructionEngine2
- ✨ Enhanced unit test for robust triangulation #1520
Software/SfM
- ➕ Add Spherical SfM scene to Cubic SfM Scene converter to allow to use MVS on spherical SfM scene (Thx to @li.guan) #1505
Tracking
- ➕ 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 Travis.ci 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, 2018OpenMVG v1.4 “Chinook Salmon” is out
What's new:
- 14 PR has been handled.
- 22 issues/features enhancement has been completed.
OpenMVG core:
Matching:
- 🛠 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
Multiview:
- 🛠 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
Robust-Estimation:
- ➕ 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
SfM:
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
software/localization:
- 👍 Extend the localization software to support any camera type in the command line #1210
software/SfM:
- 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
Samples
- 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, 2017OpenMVG v1.3 “Yellowtail” is out
What's new:
OpenMVG core:
Cameras:
- 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, …).
Geometry:
- ➕ Add a 3D plane solver.
- ➕ Add a 2D convex hull computation.
Graph:
- Faster method to list triplets of a graph.
Image:
- ➕ Add integral image computation.
- 🛠 Fix a memory leak in JPG image header reader (@jby1993).
🔋 Features:
- 🛠 Fix a mask filtering bug with AKAZE features.
Matching:
- Simplification of the Hamming distance metric code.
Bundle Adjustment:
- 🛠 Fix usage of control points with Spherical cameras (@Joeppie).
Multiview:
- 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.
Software:
- 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.
SfM:
- 👍 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, 2017OpenMVG v1.2 “Sockeye Salmon” is out
What's new:
OpenMVG core:
Cameras:
- ➕ Add a spherical camera model
Matching:
- ➕ Add a super fast AVX2 L2 distance functor for SIFT matching (5x faster).
Bundle Adjustment:
- ➕ Add support for the spherical camera model.
Tracks:
- 🛠 Fix a track generation bug
- ➕ Add a new fast method to compute common track between various views.
System:
- ➕ Add a runtime CPUID instruction set detection.
Software:
- 🛠 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
Speed:
- 👌 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
Reproducibility:
- 👀 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, 2017OpenMVG "Otocinclus" v1.1 is out.
What's new:
OpenMVG core:
🔋 Features:
- ➕ Add an openMVG core sift implementation based on Anatomy of the SIFT Method IPOL2014, see the repeatability study here
Sfm:
- Geodesy: Enable usage of GPS position priors for rigid & non rigid registration doc.
Software:
- ✨ 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
Samples:
- ➕ 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
Speed:
- 👌 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
Publication:
OpenMVG: Open Multiple View Geometry
Pierre Moulon, Pascal Monasse, Romuald Perrot, Renaud Marlet
RRPR 2016: 1st Workshop on Reproducible Research in Pattern RecognitionCongrats 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, 2016OpenMVG "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.
Speed:
- 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, 2015OpenMVG "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. - 🆕 New features:
-
v0.8.1 Changes
May 30, 2015OpenMVG "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:
https://github.com/openMVG/openMVG/issues?q=milestone%3A%22Putative+0.8.1%22+is%3Aclosed - Speed enhancement:
-
v0.8 Changes
May 12, 2015OpenMVG "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).