opencv/modules/calib3d/src
Manolis Lourakis 8d0fbc6a1e
Merge pull request #21702 from mlourakis:4.x
Fixes and optimizations for the SQPnP solver

* Fixes and optimizations

- optimized the calculation of qa_sum by moving equal elements outside the loop
- unrolled copying of the lower triangle of omega
- substituted SVD with eigendecomposition in the factorization of omega (2-3 times faster)
- fixed the initialization of lambda in FOAM
- added a cheirality test that checks a solution on all 3D points rather than on their mean. The old test rejected valid poses in some cases
- fixed some typos & errors in comments

* reverted to SVD

Eigen decomposition seems to yield larger errors in certain tests, reverted to SVD

* nearestRotationMatrixSVD

Added nearestRotationMatrixSVD()
Previous nearestRotationMatrix() renamed to nearestRotationMatrixFOAM() and reverts to nearestRotationMatrixSVD() for singular matrices

* fixed checks order

Fixed the order of checks in PoseSolver::solveInternal()
2022-05-13 18:11:14 +00:00
..
opencl
usac Merge pull request #21166 from rayonnant14:issue_21105 2021-12-13 17:12:49 +00:00
ap3p.cpp Merge pull request #20392 from fpetrogalli:aarch64-semihosting 2021-07-21 18:46:05 +03:00
ap3p.h Add SOLVEPNP_IPPE for planar pose estimation. Add solvePnPGeneric function that returns all the pose solutions and the reprojection errors. 2019-05-20 11:56:54 +02:00
calib3d_c_api.h mostly removed obsolete C API from calib3d (at least at the interface level) (#13081) 2018-11-09 16:12:22 +03:00
calibinit.cpp Merge pull request #21937 from Kumataro:4.x-fix-21911 2022-05-13 17:32:05 +00:00
calibration_handeye.cpp Add Robot-World/Hand-Eye calibration function. 2020-08-27 07:24:07 +02:00
calibration.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-12-03 12:32:49 +00:00
checkchessboard.cpp Merge pull request #19565 from cyyever:minor_fix 2021-03-05 15:04:51 +00:00
chessboard.cpp build: eliminate build warnings 2021-08-29 09:18:21 +00:00
chessboard.hpp eliminate build warnings 2020-03-26 19:18:09 +00:00
circlesgrid.cpp Merge pull request #19565 from cyyever:minor_fix 2021-03-05 15:04:51 +00:00
circlesgrid.hpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-11-06 20:04:31 +00:00
compat_ptsetreg.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-12-03 12:32:49 +00:00
distortion_model.hpp
dls.cpp Merge pull request #21405 from h6197627:3.4 2022-01-10 14:51:07 +03:00
dls.h Merge pull request #21405 from h6197627:3.4 2022-01-10 14:51:07 +03:00
epnp.cpp calib3d: initialize local vars, fix indentation in for loops 2019-05-27 14:39:47 +03:00
epnp.h
fisheye.cpp Merge pull request #21834 from victor1234:issue-19138_add_termcriteria_to_fisheye_undistortpoints 2022-04-16 17:59:53 +00:00
fisheye.hpp
five-point.cpp Merge pull request #20636 from thezane:recoverPoseFromDifferentCameras 2021-09-25 17:42:12 +00:00
fundam.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-04-08 11:23:24 +00:00
homography_decomp.cpp Merge pull request #13601 from JimZhou-001:JimZhou-001 2019-01-11 16:58:47 +03:00
ippe.cpp Fixed assertions on ippe solver 2020-09-21 21:56:28 -05:00
ippe.hpp Fix some typos 2019-06-05 12:24:13 +02:00
levmarq.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-05-16 04:40:39 +00:00
main.cpp
p3p.cpp calib3d: initialize local vars, fix indentation in for loops 2019-05-27 14:39:47 +03:00
p3p.h Add SOLVEPNP_IPPE for planar pose estimation. Add solvePnPGeneric function that returns all the pose solutions and the reprojection errors. 2019-05-20 11:56:54 +02:00
polynom_solver.cpp Merge pull request #19583 from theroyalpekka:patch-1 2021-03-05 13:55:52 +00:00
polynom_solver.h
posit.cpp mostly removed obsolete C API from calib3d (at least at the interface level) (#13081) 2018-11-09 16:12:22 +03:00
precomp.hpp Add solvePnPRefineLM to refine a pose according to a Levenberg-Marquardt iterative minimization process. Add solvePnPRefineVVS to refine a pose using a virtual visual servoing scheme. 2019-04-30 14:31:11 +02:00
ptsetreg.cpp add estimateAffine3D overload that implements Umeyama's algorithm 2021-04-28 11:33:48 +02:00
quadsubpix.cpp calib3d: fixed VS2019 warning C4756 2020-03-23 14:46:21 +03:00
rho.cpp Use BufferArea in more places 2020-02-26 11:45:19 +03:00
rho.h
solvepnp.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2022-01-12 13:26:10 +00:00
sqpnp.cpp Merge pull request #21702 from mlourakis:4.x 2022-05-13 18:11:14 +00:00
sqpnp.hpp Merge pull request #21702 from mlourakis:4.x 2022-05-13 18:11:14 +00:00
stereobm.cpp Merge pull request #19685 from danbey:setting_stereoBMImpl_in_init_list 2021-03-07 20:06:08 +03:00
stereosgbm.cpp Init params (StereoSGBMParams) in StereoSGBMImpl constructor initialization list 2021-03-10 13:05:35 -05:00
triangulate.cpp mostly removed obsolete C API from calib3d (at least at the interface level) (#13081) 2018-11-09 16:12:22 +03:00
undistort.dispatch.cpp Merge pull request #21931 from victor1234:calib3d-add-undistortImagePoints 2022-05-12 08:56:58 +00:00
undistort.simd.hpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2019-09-20 21:11:49 +00:00
upnp.cpp build: GCC9 compilation 2019-11-12 18:49:34 +03:00
upnp.h build: GCC9 compilation 2019-11-12 18:49:34 +03:00
usac.hpp Merge pull request #21166 from rayonnant14:issue_21105 2021-12-13 17:12:49 +00:00