Налаштування пучка

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Маючи набір зображень тривимірних точок для різних положень камер(и), налаштування пучка (англ. Bundle adjustment) можна визначити як проблему одночасної оптимізації тривимірних координат точок сцени, параметрів відносного руху та оптичних характеристик камер(и) з метою визначення оптимальних координат точок сцени, які мінімізують загальну помилку репроєкції.

Використання[ред. | ред. код]

Налаштування пучків зазвичай використовується як останній крок методів об'ємної відбудови заснованих на пошуку відповідностей. Він являє собою задачу оптимізації тривимірної структури та параметрів камери (тобто положення камери і можливо, внутрішнього калібрування та радіального спотворення) з метою отримання реконструкції сцени яка є оптимальною за певних припущень щодо характеру шуму зображень[1]: якщо шум має нормальний розподіл із нульовим середнім, тоді налаштування пучків є пошуком максимальної вірогідності[2]:2. Назва методу пов'язана із пучками світлових променів, що виходять із кожної тривимірної точки та сходяться в оптичному центрі кожної камери, які оптимально підлаштовуються як щодо структури сцени, так і параметрів камер. Метод налаштування пучків було розроблено для вирішення задач фотограмметрії в 1950-х роках та останнім часом все частіше застосовується дослідниками комп'ютерного зору[2]:2.

Загальний підхід[ред. | ред. код]

Налаштування пучка зводиться до мінімізації помилки репроєкції між положеннями спостережуваних та передбачуваних точок зображення, яку можна виразити як суму квадратів великої кількості нелінійних, дійсних функцій. Таким чином, вирішення задаці мінімізації досягається за допомогою нелінійних алгоритмів найменших квадратів. З них метод Левенберга — Марквардта виявився одним з найуспішніших завдяки простоті реалізації та високої сходимості для широкого кола початкових оцінок. При вирішенні задач мінімізації, що виникають в рамках налаштування пучка, рівняння мають розріджену структуру блоків через відсутність зв'язку між параметрами різних 3D-точок і камер. Ця обставина може бути використана для отримання значних обчислювальних переваг, використовуючи розріджений варіант алгоритму Левенберга — Марквардта[2]:3.

Математичне визначення[ред. | ред. код]

Налаштування пучка є задачею спільної оптимізації набору початкових оцінок параметрів камери та структури сцени для знаходження таких значень параметрів, які найбільш точно передбачають положення спостережуваних точок у наборі доступних зображень. Більш формально[3] припустимо, що тривимірних точок видно на зображеннях і нехай  — проєкція -ї точки на зображенні . Вважатимемо що значення дорівнює 1, якщо точку видно на зображенні та 0 — інакше. Припустимо також, що параметри камери відповідного зображення задані вектором а параметри тривимірної точки задані вектором . Налаштування пучка мінімізує загальну помилку репроєкції щодо всіх параметрів тривимірної точки та камери

де  — прогнозована проєкція точки на зображенні та позначає евклідову відстань між точками зображення, представленими векторами та . Очевидно, що налаштування пучка за визначенням стійке до відсутності проєкцій частини точок зображення та мінімізує фізично значущі параметри.

Див. також[ред. | ред. код]

Програмне забезпечення[ред. | ред. код]

  • [1]: Apero / MicMac, вільне фотограмметричне програмне забезпечення з відкритим кодом. Ліцензія Cecill-B.
  • sba: Універсальна реалізація налаштування пучка на базі алгоритма Левенберга — Марквардта написана на C / C++. GPL.
  • cvsba: OpenCV обгортка для бібліотеки sba (C ++). GPL.
  • ssba: Пакет для задач налаштування пучка, що базується на алгоритмі Левенберга — Маркварда (C ++). LGPL.
  • OpenCV: бібліотека комп'ютерного зору. Ліцензія BSD.
  • mcba: налаштування пучка для багатоядерних обчислювальних систем (CPU / GPU). GPL3.
  • libdogleg: Загальний розріджений нелінійний вирішувач найменших квадратів, заснований на методі Dogleg Пауелла. LGPL.
  • ceres-solver: Нелінійний мінімізатор найменших квадратів. Ліцензія BSD.
  • DGAP: Програма DGAP реалізує фотограмметричний метод регулювання пучків, винайдений Гельмутом Шмідом та Дуейном Брауном. GPL.
  • COLMAP: конвеєр загального призначення для Structure-from-Motion (SfM) та Multi-View Stereo (MVS) із графічним інтерфейсом та інтерфейсом командного рядка. Ліцензія BSD.

Примітки[ред. | ред. код]

  1. B. Triggs; P. McLauchlan; R. Hartley; A. Fitzgibbon (1999). Bundle Adjustment — A Modern Synthesis. ICCV '99: Proceedings of the International Workshop on Vision Algorithms. Springer-Verlag. с. 298—372. doi:10.1007/3-540-44480-7_21. ISBN 3-540-67973-1.
  2. а б в M.I.A. Lourakis and A.A. Argyros (2009). SBA: A Software Package for Generic Sparse Bundle Adjustment. ACM Transactions on Mathematical Software. 36 (1): 1—30. doi:10.1145/1486525.1486527. S2CID 474253.
  3. R.I. Hartley and A. Zisserman (2004). Multiple View Geometry in computer vision (вид. 2nd). Cambridge University Press. ISBN 978-0-521-54051-3.

Рекомендована література[ред. | ред. код]

Посилання[ред. | ред. код]

  • [2]: Apero/MicMac, a free open source photogrammetric software. Cecill-B licence. (англ.)
  • sba: A Generic Sparse Bundle Adjustment C/C++ Package Based on the Levenberg–Marquardt Algorithm (C, MATLAB). GPL. (англ.)
  • cvsba: An OpenCV wrapper for sba library (C++). GPL. (англ.)
  • ssba: Simple Sparse Bundle Adjustment package based on the Levenberg–Marquardt Algorithm (C++). LGPL. (англ.)
  • OpenCV: Computer Vision library in the Images stitching module. BSD license. (англ.)
  • mcba: Multi-Core Bundle Adjustment (CPU/GPU). GPL3. (англ.)
  • libdogleg: General-purpose sparse non-linear least squares solver, based on Powell's dogleg method. LGPL. (англ.)
  • ceres-solver: A Nonlinear Least Squares Minimizer. BSD license. (англ.)
  • g2o: General Graph Optimization (C++) - framework with solvers for sparse graph-based non-linear error functions. LGPL. (англ.)
  • DGAP: The program DGAP implement the photogrammetric method of bundle adjustment invented by Helmut Schmid and Duane Brown. GPL. (англ.)
  • Bundler: A structure-from-motion (SfM) system for unordered image collections (for instance, images from the Internet) by Noah Snavely. GPL. (англ.)
  • COLMAP: A general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. BSD license. (англ.)
  • Theia: A computer vision library aimed at providing efficient and reliable algorithms for Structure from Motion (SfM). New BSD license. (англ.)