Maksym Ivashechkin
0e8748746f
Merge pull request #24005 from ivashmak:merge_usac_5.x
...
Merge usac to 5.x #24005
### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
Base branch is PR #23979 . Merging PR #23078 , 23900 and PR #23806 to 5.x
2023-07-27 17:51:16 +03:00
Rostislav Vasilikhin
9d6f388809
Merge pull request #21018 from savuor:levmarqfromscratch
...
New LevMarq implementation
* Hash TSDF fix: apply volume pose when fetching pose
* DualQuat minor fix
* Pose Graph: getEdgePose(), getEdgeInfo()
* debugging code for pose graph
* add edge to submap
* pose averaging: DualQuats instead of matrix averaging
* overlapping ratio: rise it up; minor comment
* remove `Submap::addEdgeToSubmap`
* test_pose_graph: minor
* SparseBlockMatrix: support 1xN as well as Nx1 for residual vector
* small changes to old LMSolver
* new LevMarq impl
* Pose Graph rewritten to use new impl
* solvePnP(), findHomography() and findExtrinsicCameraParams2() use new impl
* estimateAffine...2D() use new impl
* calibration and stereo calibration use new impl
* BundleAdjusterBase::estimate() uses new impl
* new LevMarq interface
* PoseGraph: changing opt interface
* findExtrinsicCameraParams2(): opt interface updated
* HomographyRefine: opt interface updated
* solvePnPRefine opt interface fixed
* Affine2DRefine opt interface fixed
* BundleAdjuster::estimate() opt interface fixed
* calibration: opt interface fixed + code refactored a little
* minor warning fixes
* geodesic acceleration, Impl -> Backend rename
* calcFunc() always uses probe vars
* solveDecomposed, fixing negation
* fixing geodesic acceleration + minors
* PoseGraph exposes its optimizer now + its tests updated to check better convegence
* Rosenbrock test added for LevMarq
* LevMarq params upgraded
* Rosenbrock can do better
* fixing stereo calibration
* old implementation removed (as well as debug code)
* more debugging code removed
* fix warnings
* fixing warnings
* fixing Eigen dependency
* trying to fix Eigen deps
* debugging code for submat is now temporary
* trying to fix Eigen dependency
* relax sanity check for solvePnP
* relaxing sanity check even more
* trying to fix Eigen dependency
* warning fix
* Quat<T>: fixing warnings
* more warning fixes
* fixed warning
* fixing *KinFu OCL tests
* algo params -> struct Settings
* Backend moved to details
* BaseLevMarq -> LevMarqBase
* detail/pose_graph.hpp -> detail/optimizer.hpp
* fixing include stuff for details/optimizer.hpp
* doc fix
* LevMarqBase rework: Settings, pImpl, Backend
* Impl::settings and ::backend fix
* HashTSDFGPU fix
* fixing compilation
* warning fix for OdometryFrameImplTMat
* docs fix + compile warnings
* remake: new class LevMarq with pImpl and enums, LevMarqBase => detail, no Backend class, Settings() => .cpp, Settings==() removed, Settings.set...() inlines
* fixing warnings & whitespace
2021-12-27 21:51:32 +00:00