(ˆy − y).
A.2 Estimering av nya ändpunkter till mätlinjen
med LM
Då ändpunkterna, a respektive b, på mätlinjen inte är kolinjära med den vertikala gränspunkten vz kan de nya ändpunkterna beräknas enligt avsnitt 5.3.4 genom
att minimera kostnadsfunktionen (5.25). Då osäkerheterna i ändpunkterna inte är isotropiska minimeras kostnadsfunktionen med LM-algoritmen.
Problemet innebär att söka den mätlinje, där de projicerade ändpunkterna är kolinjära med gränspunkten, som minimerar kostnadsfunktionen. En punkt på denna linje är känd, nämligen den vertikala gränspunkten vz. Eftersom den nya
mätlinjen måste skära linjen <ab> i en punkt (kaa + kbb), se gur A.1, kan
problemet formuleras om till att hitta denna punkt. Optimeringen sker då alltså med hänsyn på parametrarna ka och kb.
ˆl
l
a
b
(k
aa + k
bb)
ˆ
a
ˆ
b
v
zΛ
bΛ
aFigur A.1. Estimeringen av nya ändpunkter kan konstrueras så att lösningen fås genom att hitta den punkt (kaa + kbb)på linjen l som minimerar det mahalanobiska avståndet
58 Levenberg-Marquardt
A.2.1 Konstruktion av funktionen f(x|p)
Indata till funktionen f(x|p) är de ursprungliga ändpunkterna x = (a>, b>)>och
parametrarna p = (ka, kb)> = k.
Först beräknas den linjeˆlsom går igenom punkten (kaa+kbb)och den vertikala
gränspunkten vz,
ˆl = vz× (kaa + kbb). (A.7) Därefter projiceras de ursprungliga ändpunkterna vinkelrätt på den nya linjen till de nya ändpunkterna ˆa och ˆb, vars inhomogena koordinater samlas i en vektor y, y = ˆ a ˆ b , (A.8)
som är utdata från funktionen.
A.2.2 Kostnadsfunktion
Betrakta kostnadsfunktionen (5.25), eftersom kovariansmatriserna Λ−1
a och Λ−1b
är symmetriska och positivt semidenita kan dessa faktoriseras genom Cholesky- faktorisering,
Λ−1a =K>aKa, Λ−1b =K >
bKb. (A.9)
Detta ger en mer lämplig form av kostnadsfunktionen att användas vid Levenberg- Marquardt optimeringen som nu kan skrivas
C = K a 0 0 Kb (y − ˆy) , (A.10)
där de inhomogena koordinaterna av de ursprungliga ändpunkterna har samlats i en vektor ˆy, ˆ y = a b . (A.11)
Bilaga B
Minsta-kvadrat-minimering
med SVD
En m × n matris A kan alltid faktoriseras till A = UDV>,
där
• U är en m × m ortogonal matris och kolumnerna i U är egenvektorerna till A>A.
• D är en m × n diagonalmatris och elementen i diagonalen är kvadratroten av egenvärdena till A>A och AA> i fallande ordning.
• V> är en n × n ortogonal matris och kolumnerna i V är egenvektorerna till
AA>.
Denna faktorisering kallas singulärvärdesfaktorisering (SVD) och en av dess egenskaper är att den kan användas vid lösning av linjära ekvationssystem av typen Ax = b. Här behandlas bara specialfallet, eftersom endast detta existerar i det här arbetet, då b = 0, d v s
Ax = 0. (B.1)
Lösningen till detta ekvationssystem fås genom att söka det x som minimerar kAxk, vilket är ett minsta-kvadrat-problem. Eftersom den triviala lösningen x = 0 inte är önskvärd måste ett krav införas för att förhindra x att bli 0,
Sök det x som minimerar kAxk , under kravet kxk = 1.
Matrisen A kan ersättas med sin singulärvärdesfaktorisering A = UDV> och
eftersom matriserna U och V> är ortogonala och därför normbevarande kan pro-
blemet formuleras till kAxk = UDV>x = DV>x och kxk = V>x . Genom att göra substitutionen y = V>xblir problemet nu
Sök det y som minimerar kDyk , under kravet kyk = 1. 59
60 Minsta-kvadrat-minimering med SVD D är en diagonalmatris med elementen i diagonalen i fallande ordning så lösningen är y = (0, 0, . . . , 1)> och eftersom y = V>x, fås den slutliga lösningen x av den
Bilaga C
Vinkelrät projektion och
vinkelrätt avstånd mellan
homogen punkt och homogen
linje
C.1 Vinkelrät projicering av punkt på linje
Antag en punkt x och en linje l = (lx, ly, lw)> i homogena koordinater. Den
vinkelräta projektionen ˆx av punkten x på linjen l, se gur C.1, ges då av ˆ x = ly(x ·Fl) − lxlw −lx(x ·Fl) − lylw lx2+ ly2 , (C.1) där F = −10 10 00 .
C.2 Det vinkelräta avståndet mellan en punkt och
en linje
En linje representeras i homogena koordinater som l = (a, b, c)>och är oberoende
av en skalfaktor k, l = k(a, b, c)>, ∀k 6= 0. En linje kan därför skalas om till
l = (sin θ, − cos θ, ρ)>, (C.2) där θ är vinkeln mellan linjen och x-axeln, se gur C.1, och ges av θ = arctan(a/ − b). Den sökta skalningen fås genom multiplikationen (sin θ/a)l el- ler (cos θ/ − b)l. Det vinkelräta avståndet d⊥ mellan punkten x, representerad i
62 Vinkelrät projektion och vinkelrätt avstånd mellan homogen punkt och homogen linje
x ˆ x d⊥ l θ
Figur C.1. Illustrering av en punkts vinkelräta projektion på en linje. θ är vinkel mellan linjen och x-axeln.
homogena koordinater x = (x, y, 1)>, och linjen l kan, efter skalningen, beräknas
genom
d⊥=
x>l. (C.3) Notera att minimering av det totala vinkelräta avståndet mellan en linje och en mängd punkter är oberoende av skalningen på linjen eftersom alla avstånd påverkas av samma skalfaktor.
Bilaga D
Alternativa beräkningar av
gränspunkt och gränslinje
D.1 Beräkning av gränspunkt
Figur D.1. En gränspunkt kan beräknas genom ett i världen känt längdförhållande, i detta fallet 1 : 1.
En metod för att beräkna en gränspunkt utifrån paral
Antag att punkterna a0, b0 och c0 denieras på en linje i bilden med det i
bilden beräknade längdförhållandet d(a0, b0) : d(b0, c0) = a0 : b0, där d(x, y) är
det euklidiska avståndet mellan punkterna x och y. Punkterna a, b och c är de korresponderade punkterna på motsvarande linje i världen med det kända längd- förhållandet d(a, b) : d(b, c) = a : b.
Punkterna i världen kan representeras som koordinater 0, a och a + b på linjen <a, b, c>. Dessa koordinater kan representeras som homogena 2-vektorer (0, 1)>,
(a, 1)> och (a + b, 1)>. På samma sätt kan punkterna i bilden representeras som homogena vektorer (0, 1)>, (a0, 1)> och (a0+ b0, 1)> på linjen <a0, b0, c0>.
En projektionstransformation av en linje representeras av en 2x2 homogen matris H2×2 och kan beräknas från de tre korresponderande punkterna. Alltså
beräkna H2×2 som ger a 7→ a0, b 7→ b0 och c 7→ c0.
64 Alternativa beräkningar av gränspunkt och gränslinje Gränspunkten v i bilden fås sedan av projektionen av punkten i oändligheten på linjen <a, b, c>, d v s (1, 0)>, v =H2×2 1 0 , (D.1)
där v är representerad som en punkt på linjen <a0, b0, c0> och efter konvertering
till bildkoordinater fås den sökta gränspunkten.
D.2 Beräkning av gränslinje
I avsnitt 4.2 beskrivs en metod för att beräkna gränslinjen utifrån två gränspunk- ter. Gränslinjen kan också beräknas utifrån minst tre i världen parallella linjer belägna med jämt fördelat avstånd i samma plan [21, 10]. Linjerna i världen pro- jiceras till ett karakteristiskt mönster i bilden. En mängd av linjer fördelade med samma avstånd i ett plan i världen kan representeras med (a, b, n)>där n samplas
med jämna intervall, t ex heltal, och (a, b)> är den gemensamma normalvektorn.
Linjemängden kan skrivas (a, b, 0)>+ n(0, 0, 1)>, där (0, 0, 1)> är linjen i oändlig-
heten på världsplanet. En projicerad linje i bilden lnkan då uttryckas ln= l0+ nl,
där l är den sökta gränslinjen. För tre linjer är problemet entydigt lösbart och gränslinjen kan beräknas genom