mirror of
https://github.com/opencv/opencv.git
synced 2026-07-21 19:33:03 +04:00
7e5463b34f
Optimize calibrateCamera with Schur‑complement LM and parallel Jacobian accumulation #28461 ## Summary - Optimized `calibrateCamera` for faster runtime without changing outputs using Schur‑complement LM, Parallel Jacobian accumulation, alongside other optimizations. - Reduced time complexity from O(n^3) to O(n) - Add a perf test that uses a 500-image chessboard dataset for performance testing. ## Performance <img width="1200" height="800" alt="base_vs_fast_results" src="https://github.com/user-attachments/assets/6dafa19f-f9cb-4f7f-ba40-0940373712e8" /> <img width="1200" height="800" alt="fast_vs_ceres_results" src="https://github.com/user-attachments/assets/7157af27-8a2b-4810-8b53-3cc9972a8493" /> <img width="1200" height="800" alt="base_vs_fast_param_deviation" src="https://github.com/user-attachments/assets/fe4f954c-34f9-4b9a-b1b2-46e4c76ce08c" /> [Testing repo ](https://github.com/Ron12777/OpenCV-benchmarking) ## Testing - All local tests pass ## Related - [opencv_extra PR with test images](https://github.com/opencv/opencv_extra/pull/1312) 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 - [ ] 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