[SCRÂȘIT] [FOSȘIT] [CLIC] BERTHOLD HORN: Ultima dată, pe scurt, despre sferele tesselate în diferite dimensiuni. Am descoperit că reprezentarea rotației ca cuaternioni unitari a fost utilă. Și astfel, în explorarea acelui spațiu de rotație, avem de-a face cu o sferă în 4D și ar fi bine să o împărțim în zone egale. Și în acest proces, am început să vorbim despre 3D, care este puțin mai ușor, dar care va fi și important pentru noi. Și teselările suprafeței sferei se pot baza pe solidele platonice, din care există cinci. Și au proiecții cu suprafață egală pe sferă. Deci sunt foarte drăguți din punctul ăsta de vedere, dar divizia e cam grosolană. Și, de obicei, îl vom împărți mai fin. Deci o cale este să mergem la solidele arhimedeene. Și aici, le avem pe toate astea. Cred că, în acest punct de vedere, sunt 13 dintre ele. După cum am menționat data trecută, există potențial 14, deoarece acesta nu este egal cu imaginea în oglindă. Deci ai putea avea două dintre ele cu orientări diferite. Și au, din nou, poligoane obișnuite ca fațete, dar de data aceasta, aveți voie să utilizați mai mult de o variantă de poligon. Deci, aici, folosim chiar triunghiuri, pătrate și pentagoane și, ca rezultat, ariile nu sunt egale. Deci acesta este un exemplu destul de extrem în care avem triunghiuri și dodecagoane. Deci acele triunghiuri au evident o suprafață mult mai mică decât dodecagoanele și așa mai departe. Oricum, putem baza o teselație pe asta, împărțind sfera. De asemenea, acest lucru este relevant pentru... când vorbim despre rotații, suntem interesați de grupurile de rotație ale acestor obiecte. Și să vedem, mai e altul ascuns undeva în spatele aici? Nu? Bine. Și astfel există 12 elemente ale grupului de rotație pentru tetraedru. Există 24 pentru hexaedru. Și există 60 pentru dodecaedru. Deci, ce rămâne cu octaedrul și icosaedrul? Ei bine, octaedrul este dualul cubului, deci are același grup de rotație. Icosaedrul este dualul dodecaedrului, deci are același grup de rotație. Și vom defini mai precis ce înseamnă „dual”, dar aproximativ vorbind, înlocuiți o față cu un vârf, înlocuiți un vârf cu o față, înlocuiți o muchie cu o muchie în unghi drept. Așa că puteți vedea cum puteți construi una dintre acestea din cealaltă. Deci nu e mult-- avem grupuri de dimensiuni 12, 24 și 60. Și vorbim despre suprafața unei sfere în 4D, deci este un lucru tridimensional. Și îl împărțim doar în 60 de puncte distanțate în mod regulat. Deci vom avea nevoie de mai mult. Apropo, unul dintre aceste solide arhimediene este unul care este folosit în mod obișnuit. Acum, dacă le împărțim, vom începe adesea cu una dintre aceste solide, fie platonice, fie arhimedeene. Și aici, de exemplu, am luat un icosaedru și l-am împărțit în multe zone triunghiulare. Și acesta este un lucru popular. Deci aici este o cupolă geodezică. Și veți observa că multe dintre vârfuri au șase muchii care intră, dar există câteva care au cinci. Și regulile precise care afectează asta... vor fi 12 dintre cei cu cinci și totul va fi hexagonal. Și arată foarte obișnuit, dar, de fapt, fațetele nu au toate aceeași dimensiune. Iată încă una. Deci, acesta, într-un fel, este mai bun pentru scopurile noastre. Când împărțim suprafața în sus, este un fel de a face histograme pe sferă. Și dacă facem o histogramă în plan, de multe ori vom folosi doar teselație pătrată, care nu este cea mai bună, dar destul de simplă. Aici, nu este atât de evident ce să folosești. Dar unul dintre lucrurile care este convenabil la acest tip de teselație este că nu este foarte ascuțit. Deci nu aveți părți ale unei celule care sunt departe de centru în comparație cu alte părți. Deci, de fapt, teselațiile, cele triunghiulare nu sunt atât de grozave, cele pe care vi le-am arătat. Aceasta este o teselație duală triunghiulară. Înlocuim centrul fiecărui triunghi cu un vârf și așa mai departe. Și, în acest sens, aceasta este o teselație mai bună. Și, desigur, devine mai mare. Deci asta a fost, cred, Expo din 1968 de la Montreal. Ei au construit acest dom geodezic. Și ceea ce era interesant la el a fost că a fost construită uniune. Și arhitectul se asigurase că toate legăturile erau etichetate pentru că nu erau toate la fel. Dar diferența era mică. Așa că oamenii care lucrează la el au spus că e o prostie. Să lucrăm doar cu el. Și a început să nu devină o sferă pentru că nu respectaseră etichetarea. Așa că au trebuit să o demonteze din nou și să o ia de la capăt. Cred că asta mai există. Am fost acolo acum câțiva ani și a fost acolo. Și acesta, desigur, este Buckminster Fuller. Iată, de fapt, o pagină din cererea originală de brevet a lui Buckminster Fuller din 1965, unde descrie cum să construiți aceste domuri geodezice. Și din nou, domul geodezic pentru noi are o serie de caracteristici. Una dintre ele este că fațetele nu au exact aceeași dimensiune, ceea ce este de nedorit, și apoi sunt triunghiulare, ceea ce este de nedorit. Deci, este probabil să folosim în schimb dualul, care ar avea un număr mare de fațete hexagonale sau aproximativ hexagonale și un număr - ei bine, 12 -- fațete pentagonale. Destul de asta. Atunci, chiar acum, vom vorbi despre... deoarece am proiectorul aici, m-am gândit să fac asta. Vom trece prin anumite tipuri de suprafețe care îngreunează unele probleme de vedere artificială, numite „suprafețe critice”. Și sunt hiperboloizi ai unei singure foi. Așa că trebuie să vorbesc puțin despre... nu e foarte bine... O voi arunca în aer. Deci cvadricele sunt suprafețe definite de ecuații de ordinul doi. Deci avem x pătrat peste un pătrat plus y pătrat peste b pătrat plus z pătrat peste c pătrat este 1. Acesta este un elipsoid, arătat aici. Cazuri speciale în care a, b și c sunt identice - obțineți o sferă. Și suntem cu toții familiarizați cu acea formă de fotbal american. Vom fi interesați de această suprafață, care este un hiperboloid dintr-o singură foaie. Și este x pătrat peste un pătrat plus y pătrat peste b pătrat minus z pătrat peste c pătrat este egal cu 1. Și aceasta este o formă cu care s-ar putea să fiți familiarizat cu anumite tipuri de mobilier făcute din tije. Și are caracteristica că este reglat - adică putem încorpora linii drepte în suprafață, ceea ce, evident, nu puteți face aici. Și, de fapt, există două seturi de reguli care sunt în unghi unul față de celălalt. Și astfel puteți face această suprafață frumoasă, netedă și curbată din bețe drepte, ceea ce pare destul de ciudat. Dar există părți ale lumii în care acest lucru este utilizat pe scară largă pentru a face scaune, mese și așa mai departe. Și apoi avem hiperboloid- din două foi unde există două semne minus. Deci, practic, le puteți clasifica în funcție de semne. Toate acestea sunt pozitive. Aici, există un negativ și aici, există două negative. Și evident, se numește „două foi” pentru că sunt două suprafețe. Nu poți trece de la unul la altul. Și să vedem... semne, deci care este cealaltă posibilitate? Nu am putea avea semne negative, un semn negativ, două semne negative. Ce zici de trei semne negative? Ce tip de suprafață obținem atunci? Ei bine, obținem un elipsoid imaginar pentru că totul este negativ. Cum poate fi egal cu 1, cu excepția cazului în care permiteți numere complexe - de unde și termenul „imaginar”. Deci acestea sunt genul de cele generice. Acum, enervant, există o mulțime de cazuri speciale. Și deja am vorbit despre sferă. Acesta este un caz special și este destul de evident. Dar apoi există o mulțime de alte cazuri speciale. Deci, să vedem... deci ăsta e doar elipsoidul. Am văzut deja asta. Apoi, există un caz special, în care avem de-a face cu un con. Și apoi, avem unde acel gât al hiperboloidului unei foi devine infinitezimal de mic. Și apoi, avem paraboloid eliptic. Și pe acesta l-am văzut deja, hiperboloidul unei foi. Apoi avem paraboloizi hiperbolici. Deci, vedeți, acestea nu au un termen pătratic în z. Au doar un termen liniar în z. Și apoi, acesta este celălalt. Și mai sunt cazuri speciale. Și, cel mai surprinzător, un caz special este planar, ceea ce pare ciudat pentru că aveți o ecuație de ordinul doi. Cum poate fi asta? Stai o secunda. Ei bine, imaginați-vă dacă aveți două avioane care se intersectează. Cum poți descrie acea suprafață? Ei bine, într-un fel, ați putea lua ecuațiile pentru una dintre ele-- un lucru liniar este egal cu 0-- și luați ecuația pentru celălalt-- un lucru liniar este egal cu 0-- le înmulțiți, iar asta ar descrie acel obiect. Și, evident, atunci când înmulțiți cele două ecuații liniare, obțineți pătratici. Deci destule poze frumoase. Să vorbim despre orientarea relativă și stereo binocular. Deci problema care ne interesează este să calculăm 3D din 2D folosind două camere. Și am spus deja că dacă cunoaștem geometria acestor două camere, este relativ ușor pentru că dacă ai un punct în planul imaginii unde există o caracteristică, îl poți conecta la centrul de proiecție. Îți oferă o linie. Extindeți acea linie în mediul înconjurător, iar obiectul se află undeva de-a lungul acelei linii. Și acum faci asta pentru camera din stânga și faci asta pentru camera din dreapta. Ai două raze. Și, în mod ideal, se vor intersecta și asta vă oferă poziția 3D a obiectului la care vă uitați. Deci asta e partea ușoară. Pentru a face asta, trebuie să cunoașteți relațiile geometrice dintre camere. Și despre asta este orientarea relativă. Și, deci, asta este ceva pe care l-ați face din timp înainte de a instala acest lucru în mașina dvs. și de a-l folosi pentru vehicule autonome. Dar s-ar putea să trebuiască să o faceți din nou din mers pentru că, dacă linia de bază nu este ceva incredibil de rigid, este foarte posibil ca lucrurile să se ajusteze greșit atunci când utilizați acel vehicul. Așa că ar putea fi nevoie să facem din nou această calibrare. Totuși, nu este doar stereo binocular. Aceeași mașinărie se aplică structurii din mișcare, unde în loc de o imagine din stânga și din dreapta, avem o imagine înainte și o imagine după. Și din nou, există o dualitate -- camera sa mișcat sau s-a mișcat lumea? Nu contează... aceeași matematică. Deci, să ne uităm la carcasa stereo binoculară, ținând cont de faptul că este la fel cu carcasa cu mișcare finită. Deci mișcarea infinitezimală este mai ușoară, dar vorbim despre o cantitate substanțială de mișcare. Deci, să presupunem că avem un centru de proiecție din stânga și centrul de proiecție din dreapta, deci acestea sunt punctele principale ale camerelor noastre. Și apoi există o linie de bază. Și vom avea un vector B care descrie acea linie de bază. Și acum, ne uităm la un punct din lume și putem determina unde se află în cele două camere. Din imaginile individuale ale camerei, nu știm cât de departe este acea rază. Dar, desigur, dacă le avem pe amândouă, atunci putem găsi intersecția. Și aici, lucrez în sistemul de coordonate din dreapta. Trebuie să aleg un sistem de coordonate. Și am mai multe opțiuni: aș putea alege stânga, aș putea alege dreapta sau, pentru simetrie, aș putea alege pe cea din centru. Dar vreau să mă asigur, atunci când obțin rezultate, că acestea nu sunt părtinitoare de alegerea sistemului de coordonate. Deci, dacă în schimb aș fi ales sistemul de coordonate din stânga, ar trebui să primesc același răspuns ca și cum aș alege sistemul de coordonate din dreapta. Așa că vom verifica asta. Deci, în acest caz, linia de bază este măsurată în sistemul de coordonate corect. Atunci r-ul nostru este, desigur, măsurat în sistemul de coordonate corect. Și acest prim indică faptul că l-am convertit din sistemul de coordonate din stânga în sistemul de coordonate din dreapta. Să vorbim despre geometria acestui lucru. Deci, dacă am un punct în lume și îl conectez la linia de bază, asta definește un avion. Și mă pot gândi la imaginea acelui avion în ambele sisteme de camere. Deci, să presupunem că avem un plan imagine aici și un plan imagine aici. Apoi ne așteptăm să vedem așa ceva - că acest plan, care este definit de aceste trei puncte, L, R și P, se proiectează într-o linie. Și punctul P este reprezentat undeva de-a lungul acelei linii. Sau gândiți-vă la asta altfel - să presupunem că intru în imaginea din stânga și îmi folosesc operatorul de interes, cum ar fi SIFT sau SURF sau ceva de genul, și definesc acest punct. Ce stiu eu? Ei bine, știu că punctul mondial trebuie să fie de-a lungul acelei linii drepte. Și apoi mă întreb, ce înseamnă asta pentru camera potrivită? Ei bine, proiectez acea linie dreaptă în camera potrivită. Și, desigur, am doar o linie dreaptă în camera potrivită. Și astfel, o concluzie este că atunci când căutăm corespondențe, trebuie să căutăm doar de-a lungul unei linii. Deci, în loc să încercăm să căutăm acel punct interesant pe toată imaginea din dreapta, odată ce ne-am dat seama de geometrie, trebuie doar să căutăm de-a lungul acelei linii. Și asta ne oferă o anumită măsură a disparității, pe care o putem transforma într-o măsurătoare a distanței. Deci acele linii se numesc linii epipolare, unde există o corespondență între două seturi de linii. O modalitate de a gândi la asta este că există o linie aici între L și R. Și acum, imaginați-vă că trece un avion prin ea. Și acum desenăm alte avioane. Deci, de exemplu, aici ar fi un alt avion. Așa că gândiți-vă la toate avioanele care au proprietatea că trec prin acea linie. Sau am putea lua un avion și doar să-l rotim. Acestea sunt toate planurile epipolare. Și când ne uităm în imagini, intersectăm planul imaginii cu acest aranjament. Și așa vom obține un set de linii, fiecare dintre ele intersectate cu planul imaginii ne oferă o linie. Dar liniile nu vor fi paralele. Deci vom ajunge cu... dacă mă uit la imaginile reale, va fi ceva de genul acesta. Aceasta este imaginea mea din stânga. Deci, dacă nu sunt paralele, se vor intersecta. Și de fapt, toate se intersectează în același loc, dacă l-am desenat corect. Și deci aceasta este imaginea mea din stânga și aceasta este imaginea mea din dreapta. Deci, care este acest punct din imaginea din stânga, dacă te gândești la această aranjare geometrică a snopului de avioane în 3D? Deci acolo trebuie să fie locul în care toate aceste avioane se unesc. Deci aceasta este imaginea camerei potrivite. Deci aceasta este imaginea lui R. Și aceasta este, în mod corespunzător, imaginea camerei din stânga. Acum, acestea nu trebuie neapărat să apară în partea imaginii pe care o scanați. Ar putea fi în afara cadrului. Și de obicei vor fi, mai ales dacă facem fața camerei mai mult sau mai puțin paralelă cu lumea. Atunci am avea acest punct să se mute în acest fel, și acest punct să se mute în acest fel, iar aceste linii ar fi mai mult ca paralele. Așa că aici, parcă ochii tăi converg. Dacă te uiți la un obiect din apropiere, cei doi ochi nu sunt paraleli, dar converg. Deci, așa cum l-am desenat , presupun că sunt ușor convergente. Ar putea fi, de asemenea, paralele, caz în care aceste puncte s-ar muta. Sau ar putea, de fapt, să fie divergente, cu excepția faptului că acesta nu este cel mai grozav lucru. Pentru că atunci suprapunerea -- partea acestei imagini care apare de fapt în acea imagine -- este redusă. Deci, o parte din scopul încercării de a converge este că încercați să aveți cât mai multă suprapunere între cele două imagini posibil. Dar nu este necesar. Înseamnă doar că nu aveți o mulțime de informații de imagine străine care nu vă sunt de folos pentru a recupera adâncimea. Acum, de fapt, am spus că asta e imaginea din partea dreaptă. Este de fapt întreaga linie de bază. Toate imaginile de bază într- un punct din imaginea din stânga și în acest punct în imaginea din dreapta. Și celălalt centru de proiecție se întâmplă să fie pe linia de bază, așa că ajunge și acolo. Și așadar, una dintre proprietățile pe care le-am menționat a fost că, dacă cunoaștem geometria, atunci există o corespondență între aceste linii. Și dacă găsiți ceva pe linia din imaginea din stânga marcată cu roșu, atunci trebuie doar să căutați de-a lungul liniei corespunzătoare din imaginea din dreapta. Deci încercăm să găsim relația dintre aceste două camere. Și asta implică, evident, linia de bază. Asta e o traducere. În cazul echivalent al vederii în mișcare, există o translație din acea poziție în acea poziție. Și celălalt lucru este rotația relativă a unei camere în raport cu cealaltă. Și așa știm că rotația are 3 grade de libertate. Deci am putea crede că, ca și în orientarea absolută, este o problemă de 6 grade de libertate. Dar nu este chiar așa, iar motivul este ambiguitatea factorului de scară despre care am vorbit. Deci, dacă iau lumea întreagă și o extind doar printr-un factor arbitrar, pozițiile imaginii nu vor fi modificate, deoarece în proiecția în perspectivă, împărțim x, y, z și dacă extindeți atât x, cât și z. , rezultatul nu se schimbă. Deci, din situația binoculară de aici, nu putem obține dimensiunea absolută fără un factor suplimentar. Și asta înseamnă că nu putem obține lungimea absolută a liniei de bază decât dacă avem ceva suplimentar. Acum, desigur, în imagini, s- ar putea să fie și alte lucruri precum ați imaginat un Walmart și aveți o idee despre câți acri de teren ocupă Walmart. Apoi puteți scala totul în funcție de asta. Dar fără asta, trebuie să tratăm linia de bază ca un vector unitar. Și astfel avem doar 2 grade de libertate pentru acea componentă. Deci există un total de 5 grade de libertate. Deci avem cinci necunoscute, spre deosebire de șase pentru orientarea absolută. Apoi vine întrebarea de câte măsurători am nevoie? Care este numărul minim de corespondențe pentru a stabili acest lucru? Și este greu să vină cu un argument euristic bun. Care este analogul mecanic? Ei bine, analogul mecanic este că luăm punctele imaginii și creăm un fir care merge în acea direcție, un fir care merge în acea direcție. Și trebuie să se intersecteze, dar nu știm cât de departe. Așa că imaginați-vă că treceți aceste două fire printr-un guler care le obligă să se intersecteze undeva, dar gulerul este liber să se miște tot timpul. Deci, dacă asta e tot ce am, două raze, o corespondență, o rază din stânga și o rază din dreapta, atunci este evident că pot juca tot felul de jocuri. Pot schimba linia de bază. Pot muta asta , pot roti. Adică este constrâns, dar este doar un singur grad de constrângere de libertate. Deci, evident, asta nu va merge. Deci, să adăugăm o a doua corespondență. Deci avem un al doilea punct de imagine și avem un guler acolo. Și asta va fi mai restrâns, dar puteți vedea deja o serie de moduri în care acest lucru nu poate fi suficient. De exemplu, puteți desena această axă. Și puteți roti camera potrivită și toate firele sale care ies în jurul acestei axe și vor trece în continuare. Deci asta reduce gradul de libertate, dar nu este suficient. Deci răspunsul este 5. Și un argument care flutură cu mâna este că fiecare corespondență vă oferă o constrângere. De ce, mă rog? Ei bine, dacă comparați cele două imagini, veți descoperi adesea că există o disparitate, iar disparitatea are două componente. Deci, aceasta este o situație în care suprapunem cele două imagini, stânga și dreapta. Și comparăm poziția imaginii unui anumit punct. Și să presupunem că aliniem aproximativ lucrurile - că axele optice sunt paralele, mai mult sau mai puțin și sunt mai mult sau mai puțin perpendiculare pe linia de bază, astfel încât, dacă lucrurile sunt infinit de departe, ele ar apărea mai mult sau mai puțin. același loc în planul imaginii. Dar, în practică, nu o vor face. Și astfel va exista o eroare, disparitate, în direcția orizontală și verticală. Acum, „disparitatea” orizontală, așa cum se numește -- ar trebui să o pună între ghilimele, dar oricum -- corespunde adâncimii. Cu cât obiectul este mai aproape, cu atât cele două raze trebuie să treacă peste. Unghiul dintre ele devine mai mare și astfel poziția imaginii se schimbă. Dacă nu îmi converg ochii -- îmi păstrez ochii paraleli -- și apoi aduc un obiect din ce în ce mai aproape, atunci diferența dintre locul în care imaginează în cei doi ochi devine din ce în ce mai îndepărtată. Și am început de acolo. Aveam o formulă în care adâncimea era invers proporțională cu acea disparitate. Și asta este disparitatea orizontală. Deci, acesta este lucrul pe care încercăm să-l folosim pentru a obține profunzime. Dar ar putea exista și o disparitate verticală, și de la ce? Ei bine, nu ar trebui să fie acolo dacă am avea lucrurile aliniate corect. Este un indiciu că cele două camere nu sunt orientate la fel. Și astfel disparitatea verticală oferă constrângerea. Și dacă ne dăm seama de rotație și de linia de bază, ar trebui să putem reduce la zero disparitatea verticală peste tot, astfel încât să nu vedem niciodată o disparitate verticală. În utilizarea efectivă, odată ce avem totul configurat, ar trebui să avem doar disparități orizontale, care sunt apoi invers proporționale cu adâncimea. Și pentru a configura instrumentul, un lucru pe care îl putem face este să depășim aceste disparități verticale. Și așa a funcționat de fapt timp de zeci de ani. Oamenii făcuseră echipamente optice foarte atent. Se puneau în două plăci de sticlă care erau fotografii făcute din avion și exista un aranjament de imagini asemănător unui binocular . Și ai configurat-o observând că acest turn al bisericii este puțin mai înalt în această imagine decât atât. Și a existat o secvență de mișcări în care ai modifica acești cinci parametri în secvență și iterativ. Și una dintre trăsăturile urâte ale acesteia era că s-ar putea să nu converge. Așadar, a existat o componentă suplimentară în care ai înregistra cele cinci ajustări pe care le-ai făcut și le-ai introdus într- o formulă care îți spunea cum să ajustezi lucrurile astfel încât să converge. Deci a fost destul de dureros. Și este păcat că nu a existat o soluție ușoară. Dar vom găsi o soluție -- din păcate, nu o formă închisă. Dar, în orice caz, nimeni nu mai face așa. Dar a fost interesant de gândit că există această mașină mecanică complicată, asemănătoare lui Heath Robinson, care avea aceste butoane pe care le puteai ajusta pentru a găsi parametrii acestei transformări în spațiul tridimensional. Deci acesta este numărul minim de corespondențe de care avem nevoie. În practică, desigur, dorim acuratețe. Și, desigur, am dori să avem mai multe puncte. Și apoi nu va exista niciun aranjament care să le facă pe toate să funcționeze, așa că vom face un fel de chestie cu cele mai mici pătrate , în sensul că pozițiile imaginii se potrivesc cât mai mult posibil. Deci este important ca eroarea să fie în măsurarea poziției imaginii. Și astfel, lucrul pe care vrem să-l minimizăm va fi suma pătratelor erorilor din poziția imaginii, nu ceva din spațiu. Și vom reveni la acel punct. Deci, în practică, folosim mai mult de cinci puncte. Cinci este minimul. Și există o problemă veche, care este neliniară. Deci câte soluții? Și aproximativ vorbind, avem de-a face cu ecuații de ordinul doi. Și ajungem cu șapte ecuații de ordinul doi, aceste cinci plus încă două având de-a face cu linia de bază fiind un vector unitar și așa mai departe. Și așa, după teorema lui Bezout, am putea avea până la 2 până la 7 soluții, 128, ceea ce este oarecum înfricoșător. Și acesta este, de asemenea, un motiv pentru care de obicei nu folosiți cinci corespondențe. Folosești mai mult pentru a încerca să scapi de această ambiguitate. Oricum, multă vreme nu s-a știut care este răspunsul real. Și, de asemenea, există diferite moduri de numărare. Dar adevăratul răspuns este 20. Acum, Kupka, cu un secol în urmă, a arătat că nu poate fi mai mult decât, în modul lui de a număra, 11, care ar fi 22 după numărarea noastră. Și a fost nevoie de aproape un secol pentru a coborî de la 22 la 20. Dar într-un fel, pentru noi aceasta este un fel de curiozitate. Îți arată doar că este neliniar. Și îți arată că trebuie să fii atent când primești soluțiile. Dar, în practică, când luați mai multe măsurători decât este necesar și când aveți o idee aproximativă despre aranjament -- adică, ați construit acest lucru, de obicei, deci aproximativ care este geometria lui -- atunci nu este cu adevărat o problemă. Cu excepția persoanelor interesate de teoretice obscure, nu că ar fi ceva în neregulă cu asta. Este foarte distractiv să încerci să-ți dai seama. Deci, cum găsim linia de bază și rotația din corespondențe? Deci avem din nou linia de bază , L și R. Și apoi avem un punct acolo. Și acesta este r l1 și acesta este r l1. Aceasta este linia de bază. Acum, un lucru pe care îl putem face este să observăm imediat că acești trei vectori sunt coplanari. Acesta este unul dintre aceste planuri epipolare. Deci, ce înseamnă asta despre paralelipipedul pe care îl pot construi din acei trei vectori? Deci poate ar trebui să pun săgeți pe aceste lucruri. Așa că am spus că volumul formei de cărămidă distorsionată pe care îl obținem folosind acești trei vectori ca muchii - deci iată construcția despre care vorbesc. Deci iei acești trei vectori și construiești lucruri cu paralelogram înăuntru, iar totul se numește „paralelepiped”. Iar volumul său este produsul triplu. Și la ce ne așteptăm de la acel produs triplu bazat pe acest argument? Este un lucru plat, deci nu ar trebui să aibă volum. Deoarece acești trei vectori sunt coplanari. Deci acest obiect nu este ceva care are volum tridimensional. Este plat. Și astfel, în cazul ideal, ne așteptăm să fie 0. Și asta se numește „condiția de coplanaritate” și este baza tuturor acestor lucruri. Deci, imediat, vă puteți imagina o posibilă metodă a celor mai mici pătrate. Tot ce trebuie să facem este pentru fiecare corespondență pe care o avem, să calculăm acest produs triplu. Și ar putea fi pozitiv sau negativ, în funcție de direcțiile acestor săgeți - formează ele un sistem de coordonate din dreapta sau nu? Deci nu putem doar să le adunăm. Dar le putem aduna pătratele. Și se presupune că, dacă nu există erori, suma acelor pătrate ar trebui să fie 0. Deci o metodă potențială aici ar fi dată, de fapt, erorile noastre de măsurare , să minimizăm suma acelor pătrate. Deci am putea lua acest produs triplu, luăm suma pătratelor. Și dacă estimarea noastră a liniei de bază și estimarea noastră a rotației, care este îngropată aici, este corectă, atunci ar trebui să fie 0. Acum, aceasta este o abordare fezabilă. Nu este deosebit de bun pentru că-- ei bine, să o spunem așa-- dacă aveți date absolut perfecte, veți obține răspunsul perfect corect. Dar nu este o metodă bună. Și motivul este că are un câștig de zgomot foarte mare. Și acest lucru tipic pentru un număr destul de mare de metode proaste care și-au găsit drumul în viziunea artificială, unde din punct de vedere matematic, au dreptate pentru că le oferiți măsurătorile corecte, vă dau răspunsul corect. Dar ele nu sunt practic utile, deoarece cu o mică eroare de măsurare, nu obțineți răspunsul corect și de multe ori obțineți un răspuns greșit într-o măsură destul de mare. Și deci trebuie să facem puțin mai bine decât atât. Dar putem începe cu asta ca bază. Deci, ce încercăm cu adevărat să minimizăm? Ei bine, așa cum am menționat, cheia este imaginea. Aici facem măsurătorile. Și când facem măsurarea, atunci știm că acel punct este cunoscut, dar numai cu o anumită precizie. Și pentru marginile noastre, spuneam că dacă te descurci foarte bine, le putem determina la 1/40 de pixel. Dar orice ar fi, indiferent de cantitate, este în imagine că încercăm să potrivim lucrurile, nu un volum de produs triplu de ceva. Este adevărat că dacă totul este corect, volumul respectiv va fi 0, dar nu este adevărat că acesta în sine este o măsură bună a erorii. Este proporțională cu eroarea. Deci, dacă ne dăm seama de factorul de proporționalitate, l-am putea folosi. Ei bine, să mergem puțin mai departe și să spunem, deci măsurătorile nu sunt perfecte, sau linia de bază și rotația noastră nu sunt perfecte. Și atunci acele două lucruri nu se vor intersecta. Deci, să vedem cum iese. Deci avem r l prim aici. Deci aici, cele două raze nu se mai intersectează. Și această separare minimă, aceasta este o măsură de eroare, așa că ne-am putea gândi la minimizarea asta. Deci haideți să ducem această idee puțin mai departe. Așa că este destul de ușor să demonstrez-- nu mă voi deranja-- că această abordare minimă are proprietatea că este în unghi drept față de ambele. Pentru că dacă nu este, atunci îl poți muta mai aproape și obține o distanță mai mică. Și asta înseamnă că această direcție este perpendiculară pe ambii acești doi vectori. Deci este paralel cu produsul încrucișat. Și astfel pot desena o ecuație care ocolește această buclă. Așa că încep de aici și apoi ocolesc asta, de-a lungul acestui vector. Acum, nu știu cât de departe trebuie să merg pentru că am doar direcția, ține minte. Și apoi voi adăuga la asta un vector care merge în această direcție de eroare. Și asta va fi egal cu a merge în altă direcție, care este b plus, și apoi a ieși pe drumul cel bun. Deci tot ce spun este că dacă adun vectorii din stânga aici, atunci ei trebuie să fie egali cu vectorii din dreapta. Sau aș fi putut doar să ocolesc bucla și să spun că rezultatul este 0. Deci, aceasta este o ecuație care mă interesează, parțial pentru că aș dori să fac asta mică. Mi-ar plăcea ca acele raze să se intersecteze sau aproape să se intersecteze. Deci acolo am o ecuație vectorială. Ce fac cu ecuațiile vectoriale? Ei bine, anexa vă învață câteva trucuri. Una dintre ele este convertirea lui în lucruri despre care știm foarte mult, ecuații scalare. Și cum faci asta? Ei bine, iei produse cu puncte. Deci putem transforma aceasta într-o ecuație scalară. Și de fapt, este o ecuație vectorială. Deci oferă trei constrângeri diferite. Deci, ar trebui să putem face asta de trei ori și să luăm un produs punctual cu trei lucruri diferite și să obținem trei ecuații scalare, care corespund acelei ecuații vectoriale unice. Acum, când facem asta, am dori să alegem ceva care face să dispară mulți dintre acești termeni, pentru a simplifica ecuația. Așa că vrem să alegem ceva care face ca mulți dintre acești termeni să renunțe. Și așa, de exemplu, dacă luăm un produs punctat cu... de ce este bun? Ei bine, r l cruce r r este perpendiculară pe r l și perpendiculară pe r r. Deci, atunci când îl punctați cu acest termen, acel termen dispare. Când îl punctați cu acel termen, dispare, pentru că este perpendicular pe r r. Deci este unul simplu. Și obținem... așa că primul și ultimul mandat abandonează. Și am rămas cu asta. Și asta e frumos. Este un fel de intuitiv. Se spune că gama, care măsoară eroarea, decalajul dintre cele două raze, este proporțională cu produsul triplu. Și știm că atunci când lucrurile funcționează corect, produsul triplu este 0, iar apoi ne așteptăm ca gamma să fie 0. Deci, acesta este o modalitate de a calcula discrepanța în decalajul de acolo. Atunci putem folosi și același tip de idei. Să înmulțim cu ceva care face să dispară mulți termeni , adică: este perpendicular pe unele dintre aceste lucruri. Ne-am ocupat deja de r l cross r r. Asta elimină primul și ultimul mandat. Ce se întâmplă dacă încercăm să eliminăm acești doi termeni? Ei bine, asta înseamnă că trebuie să luăm un produs punctual cu produsul încrucișat al acestora. Și asta ne oferă... și deci acesta este un mod de a calcula beta. Deci asta ne va permite să stabilim cât de departe de-a lungul razei ajungem la intersecție sau aproape intersecție. Și, în mod similar, pentru alfa, asta ne va spune cât de departe suntem de celălalt. Și, deci, acesta este al treilea dintre produsele noastre punctuale și ne oferă... deci acest lucru ne permite să calculăm cele trei cantități, alfa, beta și gamma. Și sunt importante. Deci, în primul rând, gama este lucrul pe care încercăm să îl facem mic. Și apoi există alfa și beta. Și ne oferă poziția tridimensională. Dar există un alt punct important aici, și anume, sunt aceste lucruri pozitive sau negative? Acum, în cazul gamma, înseamnă doar că raza dreaptă merge sub sau deasupra razei stângi? Deci nu este chiar atât de interesant. Vrem doar să-l facem mic. Dar pentru alfa și beta, a fi negativ este o problemă reală. Vezi, avem de-a face cu ecuații pentru linii. Ei bine, ele nu se opresc sau încep nicăieri, așa că de fapt ne uităm la intersecția sau aproape de intersecția nu doar a acestor segmente de linie, ci a acestor două linii infinite. Și, în funcție de geometrie, s-ar putea ajunge ca -- să presupunem că acestea sunt întoarse spre exterior -- de fapt se intersectează în spatele tău. Și din punct de vedere matematic, obțineți un alfa negativ și un beta negativ. Și apoi trebuie să decideți dacă acest lucru este fizic rezonabil în cazul dvs. De obicei, nu va fi pentru că înseamnă că imaginezi ceva în spatele camerei. Deci, amintiți-vă formula -- X mare peste Z mare -- dacă faceți X mare și Z mare negativ, veți obține totuși un rezultat. Dar ce înseamnă? De obicei, nu imaginezi lucruri care sunt în spatele tău. Deci, de obicei, verificăm dacă în soluție, alfa și beta sunt mai mari decât 0. Și amintiți-vă, am spus că ar putea exista până la 20 de soluții. Ei bine, o modalitate de a le arunca pe majoritatea este să calculezi asta. Și o mulțime dintre ele vor avea valori negative pentru alfa sau valori negative pentru beta sau ambele. Și deci da, în sens matematic acele ecuații au până la 20 de soluții, dar unele dintre cele 20 de soluții nu vor avea sens fizic. Și așa poți pur și simplu să le arunci. Deci avem gamma. Oh, cred că nu avem distanța reală. Gamma este doar multiplicatorul. Deci distanța reală de eroare , d, este gamma, dar continuăm să revenim la același produs triplu. Asta e cheia tuturor. Acum, ceea ce am dori să facem este să avem o soluție în formă închisă, în care dăm cinci corespondențe și ajungem la cinci ecuații care spun că gamma este egal cu 0 și să le rezolvăm. Dar, din păcate, sunt de ordinul doi. Deci avem cinci pătratice și, până acum, nimeni nu a venit cu o soluție în formă închisă. Și probabil că nu există una pentru că puteți, oarecum dureros, să reduceți acele cinci ecuații la o singură ecuație de ordinul cinci, o chintică. Și știm că chinticele nu au soluții în ceea ce privește înmulțirea, adunarea, împărțirea și rădăcinile pătrate. Așa că acum, bineînțeles, dintr-un punct de vedere al numărului, cui îi pasă? Dacă aveți o ecuație de ordinul al cincilea, îi puteți găsi rădăcinile. Dar, în modul strict de a spune, există o soluție în formă închisă , probabil că nu. Deși nu am văzut o hârtie care să facă o dovadă clară în acest sens. Deci ce facem? Ei bine, știm că am dori să minimizăm eroarea din imagine, nu această eroare din lume. Vă puteți imagina că acest lucru ar putea deveni enorm. De exemplu, dacă există un obiect care este foarte departe, atunci acel decalaj devine evident mare, chiar și pentru o mică eroare în poziția imaginii. Deci acest d, această cantitate, nu este cea pe care vrem să o minimizăm. Dar este proporțional cu el. Și dacă poziția imaginii este corectă, atunci d va fi 0 și invers. Deci sunt înrudite și ne putem ocupa de asta doar printr-un factor de ponderare. Deci triplu produs și îl vom aduna. Îl vom pătra pentru că ar putea avea semne diferite. Deci vom minimiza suma erorii pătrate. Și vom... deci care este acel factor de ponderare? Ei bine, factorul de ponderare este factorul de conversie de la o eroare de aici la o eroare din imagine. Și dacă cunosc aceste distanțe, îmi pot da seama care este acel factor de ponderare. Cu toate acestea, formula pentru aceasta este o mizerie, așa că pur și simplu nu ți-o dau. Este în ziar dacă chiar vrei. Și apoi rezolv această problemă. Deci problema aici este, minimizați acest lucru în ceea ce privește b și rotație și supus... deci, din păcate, nu este o problemă de optimizare neconstrânsă . Acum, cum fac de fapt acest lucru, deoarece această greutate depinde de soluție. Așa că o să fac asta în mod iterativ. Deci, practic, acel factor de conversie între eroarea din lume și eroarea din imagine se schimbă cu soluția mea. Și așa voi folosi acest set special de factori de ponderare și voi rezolva această problemă, apoi voi recalcula factorii de ponderare și voi rezolva acea problemă. Și din fericire, în cele mai multe cazuri, converge foarte repede. Și asta face ca totul să fie fezabil. Fără asta, este pur și simplu insolubil. Da, ce este... oh, scuze, este felul meu de a spune rotație, fără a specifica că este un vector de rotație sau o matrice de rotație. Deci este r paranteză, punct, punct, punct. Deci acesta este un pătrat al unui produs triplu. Și, desigur, putem extinde produsul triplu în multe moduri diferite. De exemplu, permiteți-mi să-l extind într-un alt mod care este mai util. Și acum, ajungem la cuaternioni pentru că avem de-a face cu această cantitate, care este rotită din sistemul de coordonate din stânga în sistemul de coordonate din dreapta. Și așa putem introduce-- deci, dacă r l este lucrul pe care îl măsor de fapt în sistemul de coordonate din stânga, deoarece totul acolo este exprimat în sistemul de coordonate din dreapta, trebuie să îl rotesc în sistemul de coordonate din dreapta. Și pot face asta folosind cuaternioni. Deci, să numim acest produs triplu t pentru comoditate. Și așa că trec acum de la vectori la cuaternioni, dar aceștia sunt cuaternioni cu proprietatea specială că au parte scalară zero. Deci, amintiți-vă că dacă am doi cuaternioni care reprezintă vectori, formula de înmulțire se simplifică. Este doar produsul punctual și produsul încrucișat. Deci, una dintre lemele pe care le-am declarat fără dovezi a fost o modalitate de a muta unul dintre acești multiplicatori în cealaltă parte, luând conjugatul său. Și următorul lucru pe care îl voi face este să definesc o nouă cantitate, pentru comoditate, care este produsul liniei de bază și rotației. Sună foarte ciudat, dar aceasta este o cantitate foarte utilă. Deci iau un cuaternion care reprezintă linia de bază și de ce fac asta? Ei bine, pentru că îl simplifică și îl face simetric. Da, cred că amestec aici notații. Îmi pare rău, deci acesta este de fapt r l, și la fel și aici. A venit din două lucrări diferite care folosesc notații diferite. Deci care este treaba mea? Treaba mea este să găsesc linia de bază și să găsesc d. Și de ce este suficient? Ei bine, pentru că dacă găsesc d, atunci am terminat. Îmi pot recupera... deci când am terminat totul, pot să-mi recuperez b făcând asta. Deci, când termin, doar înmulțesc d cu q stea. Și asta este echivalent cu această expresie. Și apoi, desigur, steaua q și q este această identitate de cuaternion cu o parte vectorială zero. Și de b ori identitatea este doar b. Deci am înlocuit problema găsirii lui b și q cu problema găsirii lui d și q. Asta nu sună corect. Pentru că acei cuaternioni au o mulțime de componente. Deci b are patru componente și q are patru componente. Deci se pare că avem opt necunoscute. Și știm că întreaga problemă este constrânsă de 5 grade de libertate. Deci ce se întâmplă? Ei bine, există unele constrângeri. De exemplu, știm că linia de bază este un vector unitar. Și se dovedește că putem constrânge d să fie 1. Și putem arăta-- nu vom face asta, dar-- că acestea sunt perpendiculare între ele. Este destul de ușor de arătat. Ei bine, asta este într- adevăr la fel. Uită că [INAUDIBIL]. Deci avem acea constrângere, acea constrângere și acea constrângere. Deci acum numărătoarea este corectă. Avem opt cantități, opt variabile și avem trei constrângeri. Deci sunt doar 5 grade de libertate. Dar face mult mai rău decât orientarea absolută, unde singura constrângere pe care o aveam a fost ca q să fie un vector unitar, care a fost foarte ușor de implementat. Aici, acum, avem trei cantități, trei constrângeri. Există câteva simetrii interesante aici despre care vreau să vorbesc pe scurt, inclusiv lucrul ciudat pe care îl puteți înlocui - puteți schimba coordonatele stânga și dreapta, direcțiile razelor stânga și dreapta , ceea ce nu are niciun sens. Cum poate fi asta? E ca și cum cineva a dat peste cap și ți-a dat datele pentru ochiul stâng și le- a schimbat pe ochiul drept. Da. Ei bine, nu am de gând să spun cum să calculez greutatea. Din păcate, nu este banal. Deci, din nou, care este greutatea? Greutatea este relația dintre eroarea în spațiul 3 în care cele două raze se intersectează și eroarea în poziția imaginii. Și, evident, îl putem calcula pe baza razelor și a tuturor acestor lucruri. Dar este o formulă puțin complicată. Dar singurul lucru important de reținut este că trebuie să reglam greutatea. Deci facem acest calcul, obținem o estimare a liniei de bază și b și d. Și pe baza asta, recalculăm greutățile. Pentru că, în funcție de orientare, relația dintre eroarea în 3D și zona din imagine se va schimba -- sperăm că nu foarte mult. Și deci acest lucru depinde, evident, de o primă presupunere bună. Și deci va trebui să vorbim despre asta, deoarece acesta este întotdeauna un handicap dacă algoritmul tău iterativ are nevoie de o primă estimare bună. Deci avem o primă presupunere bună, calculăm greutățile punctelor pe baza asta. Rezolvăm această problemă de optimizare. Ne întoarcem, recalculăm greutățile, o facem din nou. Și de obicei, nu trebuie să o facem de prea multe ori. Deci, ce este asta despre schimbarea stânga și dreapta? Ei bine, are de-a face cu ideea că intersectăm linii, nu segmente de linie. Deci, când schimbați razele stânga și dreapta - deci iată raza noastră stângă și dreaptă desenată corect - și acum să presupunem că cineva spune, de fapt, am amestecat datele și vă dau acea rază pentru dreapta ochiul și raza aceea pentru ochiul stâng. Oh, se intersectează... dacă acestea se intersectează, acestea se intersectează. Deci, se întâmplă să fie în spatele camerei, așa că ați calcula alfa și beta și ați spune că sunt negative, așa că nu este corect. Dar există mai multe simetrii ca aceasta care pot fi utile în calculul numeric. Și deci produsul triplu care ne interesează este chestia asta. Să sperăm că ai primit-o acolo. Și, în mod surprinzător, este și asta, unde am schimbat q și acesta. Este un fel ca schimbarea rotației și a translației. Asta pare destul de ciudat. Și dacă nu crezi , îl poți extinde în ceea ce privește componentele. Aceasta este o expresie în termeni de cuaternioni, dar o putem rescrie în termeni de componente ale cuaternionilor, care desigur sunt acești vectori. Și apoi vei vedea că este perfect simetric. Deci, dacă te uiți la asta, vei vedea o serie de simetrii. Una dintre ele este între r l și r r. Dacă schimb stânga și dreapta, nimic nu se schimbă. Și cealaltă este dacă schimb rotația și translația, d și q apar simetric peste tot. Și de ce interesează asta? Un motiv este că înseamnă că, dacă căutați spațiul de soluții posibile și aveți o soluție aproximativă, puteți genera imediat alte soluții aproximative utilizând această simetrie. Deci, în total, cred că sunt opt, simetria lui opt -- Cred că există o simetrie a opt, astfel încât să vă găsiți soluția mai repede, deoarece tot ceea ce ați elaborat are opt interpretări diferite. Și, apropo, asta înseamnă că dacă aceasta este o soluție, știm, desigur, că aceasta este o soluție. Pentru că minus q reprezintă aceeași rotație cu q, așa că nu ne este util. Dar din formule, le vei obține și pe acelea. Atunci aceasta este o soluție și aceasta este o soluție. Deci asta ne oferă un factor de 2 factor de 2-- Presupun că de aici provine 8. Deci, atunci când rezolvați acest lucru numeric, puteți descoperi că există până la opt soluții. Acum, pe Stellar, există două lucrări care descriu acest proces. Și e cam enervant că este atât de dezordonat. Ar fi fost minunat dacă cineva ar fi găsit o soluție în formă închisă. Trebuie să recunosc că nu cred că există. Sunt destul de convins. Și așa am rămas blocați cu acest tip de calcul numeric. Deci, cum implementați de fapt acest lucru? Ei bine, o abordare este să presupunem că cunoști una dintre aceste două necunoscute. Se pare că dacă remediați una dintre ele, atunci în loc să fie pătratică, este liniară. Există o soluție simplă pentru cele mai mici pătrate , o soluție în formă închisă. Și apoi presupuneți că d este cunoscut -- tocmai l-ați calculat -- și rezolvați pentru q. Și este simetric, așa că te-ai aștepta să fie și un simplu cel mai mic pătrat. Și apoi, desigur, va trebui să faceți acest lucru din nou pentru că acum q s-a schimbat. Și a da o rețetă ca aceasta nu dovedește deloc că va converge. Dar o face. Și nu am de gând să dovedesc că da. Deci, aceasta este o metodă foarte euristică, foarte simplă, care funcționează. Puteți face mai bine folosind un pachet de optimizare neliniară. Și una populară este aceasta, mai ales pentru că există implementări gratuite, disponibile gratuit pe web. Și am avut pentru scurt timp un coleg de cameră când am început, Marquardt, și am avut o aventură interesantă în care l-am dus cu mașina peste graniță spre Botswana în miezul nopții. Și apoi nu am mai fost niciodată în contact cu el. Și poate fi acest Marquardt, dar nu știu pentru că se pare că a dispărut din vedere, nu a urmat știința și a găsit ceva mai profitabil de făcut sau orice altceva. Oricum, acesta este un pachet foarte frumos care vă permite să rezolvați probleme de optimizare neliniară . Și, practic, trebuie doar să dați o grămadă de ecuații care ar trebui să fie 0. Și aveți o grămadă de butoane, o grămadă de parametri. Și va regla parametrii până când acele ecuații sunt cât mai aproape de a fi 0 posibil. Așa că este ca o cutie neagră -- îți introduci ecuațiile și speri la ce e mai bun. Dar necesită să aveți o parametrizare neredundantă. Am menționat-o doar acum pentru că până acum am reușit să facem formulare închise, așa că nu a fost nevoie să facem așa ceva. Dar acest lucru este util nu doar pentru orientarea relativă. Multe dintre aceste tipuri de probleme de optimizare cedează acestei abordări. Deci care este problema? Ei bine, problema este rotația. Dacă o facem ca o matrice normală, avem acea problemă - nouă numere și doar trei grade de libertate. Deci un răspuns care este dat în mod obișnuit este unghiurile Euler. Și știi ce cred eu despre acestea. Așa că hai să le scoatem. Unul care este de fapt folosit este vectorul Gibbs. Deci vectorul Gibbs este tan theta de peste 2 ori omega hat, unde omega hat este vectorul unitar în direcția axei. Și evident, este un vector, are trei numere, 3 grade de libertate. Și, din păcate, are o singularitate la theta egal cu pi. Și asta este o problemă potențială, deoarece rotația de aproximativ 180 de grade este o rotație perfect legitimă. Acum, în acest caz particular, de obicei nu aveți camera dreaptă rotită cu 180 de grade față de camera din stânga. Deci, într-un anumit sens, mergeți mai departe, utilizați vectorul Gibbs. Probabil va funcționa. Desigur, ceea ce aș recomanda în schimb sunt cuaternionii unitari. Și am rezolvat detaliile acolo folosind cuaternioni de unitate. Singura problemă este că sunt redundante. Sunt patru numere, 3 grade de libertate. Dar acest pachet vă permite să adăugați constrângeri suplimentare. Așa că te prefaci că aceasta este o altă ecuație. Și va încerca să se apropie de a satisface acea ecuație, în timp ce va satisface cealaltă ecuație. Poate fi necesar să te joci cu ponderarea diferitelor componente și asta funcționează foarte bine. Converge destul de repede. Mă întrebam doar unde să mergem în continuare, având în vedere că nu avem mult timp. Am vorbit despre asta. Și probabil că acest lucru nu este o surpriză, dacă cunoașteți rotația, există o metodă simplă a celor mai mici pătrate pentru a găsi linia de bază. Și asta este în conformitate cu ceea ce am spus aici, așa că probabil că nu mă voi deranja cu asta. Ei bine, nu mult dincolo. Avem această formulă aici. Deci, unul dintre modurile în care ne-am gândit la rotație este axa și unghiul. Și acesta este un mod destul de intuitiv de a gândi. Adică, unii oameni cred că toate unghiurile sunt intuitive. Cred că asta este mai mult. Și de acolo, putem merge la asta destul de simplu. Deci, partea vectorială este, de fapt, în direcția axei. Și este doar scalat în funcție de cantitatea de rotație. Și apoi partea scalară - nu sunt sigur ce altceva poți spune despre asta. Are proprietatea frumoasă că, dacă combinăm două rotații, doar le înmulțim în această formă. Și transformarea unui vector este puțin mai complicată, dar am văzut formula pentru asta. Apoi folosim cuaternioni pentru a reprezenta vectori făcând partea scalară 0, deci este un lucru util. Și dacă doriți, le puteți folosi pentru a reprezenta scalari făcând partea vectorială 0. Dar asta nu este atât de interesant. Deci nu sunt sigur dacă asta răspunde la întrebarea ta. STUDENT: Da, cu siguranță a ajutat. BERTHOLD HORN: De asemenea, amintiți-vă că există o scurtă prezentare de patru pagini care rezumă tot ce doriți să știți despre cuaternioni. Cuaternioanele pot fi intimidante. Adică, când m-am uitat la cartea lui Hamilton, sunt ca 800 de pagini de matematică densă. Și apoi am luat o abordare inginerească și am spus, ce fac cu asta? Cum folosesc de fapt asta? Și se dovedește că asta este tot ce trebuia să știu despre asta. Nu am nevoie să știu toate lucrurile cu adevărat, cu adevărat ezoterice. Da, e o întrebare grozavă. Deci avem mai multe lucruri pe care le-am putea folosi ca măsură de eroare. Toate au proprietățile că, dacă lucrurile se aliniază perfect, ele sunt 0. Deci, de ce să prefer una în locul altuia? Și am avertizat împotriva utilizării produsului triplu în forma sa brută. Și motivul este că au diferiți factori de amplificare. Deci, să presupunem că razele, de exemplu, sunt aproape paralele, iar obiectul este la un an lumină distanță. Atunci o eroare de o secundă de arc va fi de sute de mii de kilometri. Și veți încerca să minimizați acest lucru, în cazul în care o altă parte a imaginii dvs. ar putea fi un obiect care este mai aproape. Deci vrei să compensezi asta. Și în acest fel w este pur și simplu relația - deci aici, în linii mari , z, f. Și astfel greutatea w este f peste z. Deci produsul triplu măsoară această eroare. Și asta poate fi uriaș doar pentru că z este mare. Dar ne interesează eroarea în poziția imaginii care este rezultatul oricărui algoritm pe care îl folosim pentru a găsi poziția imaginii. Și astfel putem reduce acea zonă de produs triplă într-o eroare relevantă pentru imagine, luând asta. Și aici, calculul este banal. Din nefericire, în cazul nostru, avem raze în unghiuri diferite. Și calculul este în hârtie online dacă vrei să-l vezi. Deci, lucrul care urmează, despre care voi atinge doar, este când eșuează? Mereu ajungem în acel punct. Așa că acum avem o metodă... ei bine, știm deja că avem nevoie de cinci corespondențe, așa că dacă nu avem cinci corespondențe, va eșua. Dar este posibil să existe anumite tipuri de suprafețe, dacă le privim cu doi ochi, există ambiguități și/sau sensibilitate mare la eroare, astfel încât să nu ne dăm seama ce se întâmplă? Așa că acele lucruri am fost descoperite destul de devreme, ca acum peste un secol, într-o lucrare originală pe care o numeau „Gefaerliche Flaechen”, care presupun că tradus corect înseamnă „suprafețe periculoase” sau „avioane”. Și cred că terminologia engleză este „suprafețe critice”. Deci, ideea este că pot exista cazuri în care te uiți la un obiect de o anumită formă care îngreunează această problemă , sau de fapt să facă ca metoda ta să eșueze, deoarece există multă ambiguitate. Și pentru a face acest lucru plauzibil, imaginați-vă că avem o vale în formă de U , deci așa. Și apoi avem un avion aici sus. Și avem câteva repere. Și îți amintești, treaba noastră aici este să ne dăm seama unde este avionul. Este orientarea relativă. Avem avionul care zboară de-a lungul luând măsurători și încercăm să relaționăm aceste măsurători. Ei bine, avem o ambiguitate, în sensul că dacă mișcăm acel avion de-a lungul suprafeței acestui cerc, nu schimbăm acest unghi. Deci ce măsoară eu în imagine? Pot măsura doar unghiul. Nu stiu distante. Deci dacă mă mișc și unghiurile nu se schimbă, atunci am o problemă. Și am făcut-o pentru A și C, dar, evident, același lucru este valabil și pentru A și B și pentru orice alt număr de puncte de bază pe care doriți să le adăugați. Astfel încât în ​​această situație, în care zburați chiar deasupra axei unei văi semicirculare, atunci va fi imposibil să distingeți diferite poziții de-a lungul aici. Acum, aceasta este o secțiune transversală. Acesta este 2D. Deci asta nu este toată povestea. Dar vă oferă o modalitate plauzibilă de a înțelege de ce ar putea exista o problemă. Și de aceea, atunci când stabilesc planurile de zbor pentru cartografiere, nu fac asta niciodată. Ei preferă să facă asta - să zboare avionul peste o creastă, mai degrabă decât peste o vale. Pentru că aici, când vă deplasați, unghiurile dintre diferitele imagini ale diferitelor caracteristici ale suprafeței se schimbă foarte mult. Și așa am dori să facem este să obținem generalizarea 3D a acestei probleme. Și asta e... ei bine, am cam dat răspunsul arătându- ți acele poze. Este un hiperboloid dintr-o singură foaie. Deci vom vedea că este o suprafață de ordinul doi, o suprafață cvadrică. Și se întâmplă să fie unul cu numărul potrivit de semne minus, pentru o singură foaie... Presupun că este un semn minus. Și deci dacă ne uităm la o astfel de suprafață, atunci va fi o problemă. Tu spui, ei bine, cui îi pasă? Adică, câte suprafețe? Cât de probabil este să mă uit la un hiperboloid dintr-o singură foaie? Ei bine, este adevărat, dar atunci, dacă te uiți la o suprafață, ai doar o mică parte din ea, diferența dintre ea și o secțiune a unui hiperboloid dintr-o foaie ar putea fi mică. Și în acest caz, vă veți aborda această situație periculoasă. Acesta este un argument. Și celălalt argument este că există și alte cazuri speciale de suprafețe cvadrice și, în special, de hiperboloid al unei foi, care sunt mai frecvente. Iar cel mai comun este avionul. Deci, se dovedește că o versiune a acestei suprafețe cvadrice este doar două plane care se intersectează. Și puteți vedea de ce ar putea fi asta. Deci, ecuația pentru un plan ar putea fi o ecuație liniară ca aceasta, egală cu 0. Deci, acesta este un singur plan. Și aceasta este ecuația pentru un al doilea plan. Cred că l-am scris în 2D, dar adaugă doar z. Deci, fiecare dintre aceste planuri are o ecuație liniară ca aceasta. Și pot vorbi despre asta spunând, acesta este planul în care ax plus cu plus cz plus orice este 0. Și dacă le înmulțesc împreună, desigur, produsul este 0. Și deci ce suprafață este? Ei bine, acest timp care este egal cu 0 este combinația a două planuri. Și în cazul nostru, unul dintre avioane trece prin centrul proiecției, deci proiectează într-o linie. Deci, dacă am un avion și mă uit drept de-a lungul avionului, văd doar o linie. Deci este și mai ciudat, pentru că înseamnă că o suprafață plană este o problemă. Și ce este mai comun decât suprafața plană? Ei bine, poate nu în topografia Elveției sau ceva de genul, ci în alte structuri create de om decât [INAUDIBIL] și au o mulțime de suprafețe plane. Și deci nu putem respinge acest lucru în totalitate. Trebuie să vorbim puțin despre Gefaerliche Flaechen, ceea ce vom face data viitoare. Și există o nouă problemă cu temele, din păcate. Aproape că am ratat-o ​​pentru că se pare că tocmai am avut una. Dar apoi cineva mi-a reamintit că nu ar trebui să se datoreze de Ziua Recunoștinței și, deci, nu este. Va merge , din nou, marți după.