2012-12-17 10 views
7

Jeśli mam znaną pozycję kamery (Obrót + Położenie) i Intrinsics (współczynniki zniekształceń i matryca kamery) i 2 kamery wskazujące na tę samą scenę z nieco innych kątów.Funkcje regulacji paczki

Czy istnieje sposób użycia regulacji wiązki w celu ulepszenia ułożenia kamery? Najlepiej w niektórych już istniejących API lub funkcji, które nie wymagają zbyt wiele wiedzy matematycznej do użycia.

Odpowiedz

2

Możesz wypróbować implementację bezpośrednio w OpenCV. Jest w module contrib. Ale nie udało mi się jeszcze sprawić, by działała prawidłowo.:/ article about it

+1

Ogranicza się tylko do zdjęć panoramicznych od czasu tego pisania, więc jeśli wykonujesz jakieś tłumaczenia, na przykład wyniki są okropne. – rbaleksandar

+2

Chciałbym sprzeciwić się wspólnej koncepcji zdjęć panoramicznych, która jest równoznaczna z ruchem obrotowym kamery. Tylko dlatego, że ramy kamer są rzutowane na kulę, nie oznacza, że ​​muszą zostać przechwycone w ten sposób. Myślę, że to błąd w obecnej implementacji OpenCV, że HomographyBasedEstimator i BundleAdjusterReproj oraz BundleAdjusterRay przyjmują model ruchu obrotowego. Chciałbym, aby istniały alternatywne metody rozwiązywania bardziej ogólnego problemu, gdy model ruchu jest afiniczny. –

5

Powinieneś użyć PBA (Multicore Bundle Adjustment) from Changchang Wu. To naprawdę fajna biblioteka i napisana w C++. Ponadto zawiera obliczenia wielordzeniowe, a nawet obliczenia na GPU z przyspieszeniem około 20 razy.

Jest przejrzysty i łatwy w użyciu.

Dlatego zamiast używać SBA from Lourakis lub używać należy użyć PBA.

+0

PBA jest dobrze zoptymalizowany i bardzo szybki, ale obsługuje mniej funkcji niż SSBA (na przykład fx/fy). Wybór do wyboru zależy od problemu, nad którym pracujesz. – simon

2

Wypróbuj solarkę Ceres. Przykładowa implementacja jest dostępna here. Ponownie, będziesz potrzebować zrozumienia matematycznych zasad regulacji pakietu. Ale to jest nieuniknione.

Powiązane problemy