Merge pull request #18371 from nathanrgodwin:sqpnp_dev
authorNathan Godwin <nathanrgodwin@gmail.com>
Fri, 20 Nov 2020 11:25:17 +0000 (05:25 -0600)
committerGitHub <noreply@github.com>
Fri, 20 Nov 2020 11:25:17 +0000 (11:25 +0000)
commit2255973b0f38591550ae08ed71dbc9056f317b96
treecc1f177d04b5af315764b08a95782e39d25cb669
parentac24a72e669a7550516dc92304792e3800b6c85c
Merge pull request #18371 from nathanrgodwin:sqpnp_dev

Added SQPnP algorithm to SolvePnP

* Added sqpnp

* Fixed test case

* Added fix for duplicate point checking and inverse func reuse

* Changes for 3x speedup

Changed norm method (significant speed increase), changed nearest rotation computation to FOAM

* Added symmetric 3x3 inverse and unrolled loops

* Fixed error with SVD

* Fixed error from with indices

Indices were initialized negative. When nullspace is large, points coplanar, and rotation near 0, indices not changed.
modules/calib3d/doc/calib3d.bib
modules/calib3d/include/opencv2/calib3d.hpp
modules/calib3d/src/solvepnp.cpp
modules/calib3d/src/sqpnp.cpp [new file with mode: 0644]
modules/calib3d/src/sqpnp.hpp [new file with mode: 0644]
modules/calib3d/test/test_solvepnp_ransac.cpp