Samokalibracja w programie Bundle Adjustment Toolobx

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox 11 III 2012 Samokalibracja w programie Bundle Adjustment Toolobx Do wyrównania s...
30 downloads 0 Views 351KB Size
Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012

Samokalibracja w programie Bundle Adjustment Toolobx Do wyrównania sieci zdjęć naziemnych pola testowego będziemy potrzebować następujące pliki: 1. 2. 3. 4. 5.

plik kamery plik z przybliżonymi elementami orientacji zewnętrznej zdjęć plik ze współrzędnymi fotopunktów pola testowego plik z pomiarami na zdjęciach plik z pomiarami na zdjęciach z wyłączeniem punktów wiążących

Etap 1 - przygotowanie do obliczeń 

W katalogu Bundle Adjustment Toolbox 2.1 należy stworzyć swój folder i skopiować do niego 5 plików wejściowych.



Należy utworzyć kopie zapasowe plików wejściowych i „schować” je w bezpiecznym miejscu



Uruchamiamy program MATLAB. Ustawiamy folder roboczy (Current Directory) jako Bundle Adjustment Toolbox 2.1



Uruchamiamy BAT Config (BAT.exe) BAT Config (Bundle Adjustment Toolbox Config) to program, dzięki któremu za pośrednictwem interfejsu graficznego można dokonać modyfikacji skryptu do wyrównania sieci zdjęć metodą wiązki, tak by obliczenia wykonane były przy wybranych przez nas ustawieniach. Po wpisaniu odpowiednich ustawień modyfikacji skryptu calibration.m dokonuje się wciskając pomarańczowy przycisk w oknie głównym programu. Potem skrypt wystarczy jedynie uruchomić.

Etap 2 - wyrównanie wstępne Wyrównanie wstępne ma na celu określenie dokładniejszych przybliżeń elementów orientacji zewnętrznej. Przeprowadzenie samokalibracji jednoetapowo mogłoby skutkować rozbieżnością procesu iteracyjnego w skutek zbyt dalekich wartości przybliżonych, głównie kątowych elementów orientacji zewnętrznej.   

W oknie Input Files podajemy lokalizację pliku kamery (Camera file), pliku z przybliżonymi elementami orientacji zewnętrznej (Image EO file), pliku z fotopunktami (GCP file) oraz pliku z pomiarami (Image coordinate file). Wybieramy plik bez punktów wiążących. W oknie Input Files wskazujemy folder, w którym ma się znaleźć plik raportu. Może to być ten sam folder, w którym zgromadziliśmy pliki wejściowe. Błąd pomiaru współrzędnej tłowej przyjmujemy na poziomie 0.3 a współczynniki skalowania współrzędnych obrazowych ustalamy jako równy 1. Zakładamy przeprowadzenie 7 iteracji. Okno Input Files powinno wyglądać jak poniżej.

1

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012



W Oknie Camera zakładamy, że stała kamery oraz współrzędne punktu głównego będą traktowane jako wielkości stałe a pozostałe parametry nie będą szacowane. Okno Camera powinno wyglądać jak poniżej.



W oknie Exterior Orientation ustawiamy kąty oraz współrzędne jako wolne (Free) oraz przyjmujemy system obrotu alfa, ni, kappa. Są to ustawienia domyślne. Ustawienia te nie będą już zmieniane. W oknie Control Points ustawiamy współrzędne jako obserwowane a ich błędy przyjmujemy na poziomie 0.3. Należy z wyrównania wykluczyć następujące punkty (nie mają dokładnie wyznaczonych współrzędnych terenowych): 317 103 418 113 503 519 703 811 903, wpisując ich numery w polu Excluded points. Numery punktów należy oddzielać spacją. Okno Control Points powinno wyglądać jak poniżej.



2

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012

Współrzędne terenowe fotopunktów traktowane są podczas wyrównania jako wielkości obserwowane. Wykorzystywane są ich równania obserwacyjne (Jaka jest ich postać?). Współrzędne terenowe fotopunktów otrzymują w wyniku wyrównania poprawki.    

Korzystając z menu File/Save należy zapisać przyjęte ustawienia pod nazwą etap1.brj. W celu zmodyfikowania zawartości skrytpu calibration.m wciskamy pomarańczowy przycisk [Modify calibration.m] Otwieramy skrypt calibration.m i uruchamiamy go wciskając przycisk . Obliczenia na tym etapie zakończyły się sukcesem jeżeli: - została wykonana każda z zaplanowanych siedmiu iteracji bez wyświetlenia przez program ostrzeżeń o złym uwarunkowaniu układu równań. - różniczki kątów i współrzędnych środków rzutu dla ostatnich iteracji są zerowe lub bardzo bliskie zeru - błędy średniokwadratowe dla współrzędnych tłowych na poszczególnych zdjęciach są w granicach kilku/kilkunastu pikseli Wartości różniczek można sprawdzić w raporcie:

Różniczki ostatnich iteracji

3

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012

Średnie błędy kwadratowe współrzędnych obrazowych też odszukujemy w raporcie:

Jeżeli istnieją punkty, których współrzędne obrazowe mają poprawki na poziomie kilkudziesięciu/kilkuset pikseli i są to wartości wyraźnie większe niż w przypadku pozostałych punktów, wtedy punkty te należy wykluczyć z wyrównania (zamiana jedynki na zero w plikach wejściowych). 

Dzięki wykonanym na tym etapie obliczeniom znane są z większą dokładnością przybliżone elementy orientacji zewnętrznej. Jeżeli obliczenia się udały należy w oknie Input Files zaznaczyć opcje:

Teraz należy uruchomić skrypt ponownie. Obliczenia zostaną wykonane jeszcze raz a obliczone elementy orientacji zewnętrznej zostaną wpisane do pliku z przybliżonymi elementami orientacji. Należy otworzyć ten plik aby sprawdzić czy tak się stało.

Etap 3 – estymacja elementów orientacji wewnętrznej i dystorsji radialnej 

W oknie Input Files ustawić jako nieaktywne opcje:



W oknie Input Files wskazać plik z pomiarami na zdjęciu zawierający wszystkie pomierzone punkty, także punkty wiążące (zgodnie z filmem plik pomiary1.txt). W oknie InputFiles ustawić:



Podczas estymacji dystorsji może wystąpić probelm sztucznego złego uwarunkowania macierzy równań normalnych. W rzeczywistości wynika on jednak ze zróżnicowanej wielkości liczb macierzy układu równań normalnych, i może być w prosty sposób rozwiązany poprzez wykonanie mnożenia określonych wierszy macierzy pochodnych przez stałą liczbę (w tym przypadku 1000-1). Złe skalowanie macierzy może skutkować wzrostem jej liczby warunkowej, co program Matlab zgłosi jako zagrożenie dla dokładności wyniku. 

W oknie Camera Settings uwolnić elementy orientacji wewnętrznej. Okno Camera Settings powinno wyglądać jak poniżej

4

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

   

11 III 2012

Wciskamy pomarańczowy przycisk Modify m-file a następnie uruchamiamy skrypt calibration.m. Zostaną wyświetlone wykresy obrazujące rozkład dystorsji na obrazie. Ponieważ nie wyznaczaliśmy innych zniekształceń niż dystorsja radialna, wykresy TOTAL correction i TOTAL radial distortion correction będą wyglądały tak samo. Sprawdzamy uzyskane dokładności i ewentualnie eliminujemy punkty o znacznych poprawkach współrzędnych. Wymagana jest bardzo wysoka dokładność obliczeń. Średnie błędy kwadratowe dla współrzędnych tłowych powinny być na poziomie znacznie poniżej 0.5 piksela. To jakie są one faktycznie zależy od konkretnego egzemplarza aparatu i obiektywu. Nie zawsze wielomian dystorsji radialnej dobrze opisuje wszystkie zniekształcenia obiektywu, jednak w przypadku lustrzanki cyfrowej i średniej klasy obiektywu należy spodziewać się średnich błędów dla współrzędnych tłowych na poziomie setnych części piksela. Średnie błędy dla współrzędnych fotopunktów powinny być nie większe niż 0.3 mm. Wielkości poprawek dla współrzędnych pikselowych i terenowych zależą również od sposobu wagowania. Im mniejszy błąd pomiaru współrzędnych na zdjęciu założymy, tym większe odchyłki otrzymamy na fotopunktach i odwrotnie. Przy tak dużej ilości obserwacji prawdopodobieństwo wystąpienia błędów grubych jest jednak spore dlatego konieczna jest ich detekcja.

Detekcja błędów Czytamy raport W raporcie sprawdzamy wartości 10 największych odchyłek dla współrzędnych tłowych. Obserwacje z dużymi odchyłkami należy wykluczyć z wyrównania. Przykład poniżej. błędy grube !

Dokonujemy graficznej analizy odchyłek ( działanie sprawdzić na przykładzie jednego obrazu) Otwieramy skrypt plotResiduals.m i wpisujemy numer analizowanego zdjęcia (PhNr) np: PhNr = 5; %Numer zdjecia Uruchamiamy skrypt i analizujemy wykres odchyłek.

5

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012

to ta odchyłka! faktycznie ma dużą wartość po wsp. y. Ten pomiar należy usunąć!

Wyświetlamy wykres 3D Otwieramy skrypt plot3d.m. Parametry takie jak poniżej powinny być optymalne. W razie potrzeby należy je zmienić. Sk = 500; %Skala odchylek Font =6; %Rozmiar czcionki d = 10; %Odstęp numeru od punktu ck = 300; %Wielkosc stalej kamery na potrzeby rysunku

Uruchamiamy skrypt i analizujemy wykres. Jeżeli któreś z fotopunktów mają duże poprawki można wykluczyć go z obliczeń.

Etap 4 – dopasowanie optymalnego modelu błędów obrazu Jeżeli usuniemy wszystkie błędy grube, należy odnaleźć adekwatny model błędów obrazu. W większości przypadków model ze współczynnikami k1 + k2 okaże się wystarczający. Korzystając z okna Camera Settings należy przetestować następujące modele: k1 k1+k2 k1+k2+k3 k1+k2+p1+p2 k1+k2+k3+p1+p2 Należy kontrolować czy wprowadzanie dodatkowych parametrów rzeczywiście powoduje spadek wartości współczynnika wariancji (Sigma0). Należy również sprawdzać istotność estymowanych parametrów rozumianą jako relacja błędu parametru do jego wartości. Jeżeli błąd parametru jest zbliżony lub równy estymowanej wartości wtedy parametr jest nieistotny. Jako model optymalny należy wybrać ten, dla którego współczynnik wariancji osiągnął już najniższą możliwą wartość i mimo wprowadzania dalszych parametrów nie maleje lub maleje nieznacznie.

6

Jakub Kolecki, Samokalibracja w programie Bundle Adjustment Toolbox

11 III 2012

Należy w formie tabeli lub wykresu przedstawić wskaźniki dokładnościowe otrzymane dla każdego z pięciu modeli (Sigma0, błędy średnie kwadratowe współrzędnych obrazowych).

Do sporządzenia końcowego sprawozdania przydadzą się: 1. Pliki wejściowe do programu 2. Pliki wejściowe zmienione przez program (głównie chodzi o plik z elementami orientacji zewnętrznej) 3. Rysunki poziomicowe obrazujące rozkład dystorsji radialnej (i ew. tangencjalnej) oraz sumaryczny rozkład zniekształceń obrazu. Wystarczy zapisać rysunki otrzymane dla jednego, właściwego modelu błędów obrazu. 4. Raport końcowy 5. Wynikowy plik kamery sporządzony na podstawie dostępnych w raporcie estymowanych parametrów kamery. 6. Figurka z widokiem 3D na pole testowe.

7