[SCRÂȘIT] [FOSȘIT] [CLIC] PROFESOR: Sfârșitul secțiunii de fotogrammetrie. Vom vorbi doar pe scurt despre orientarea exterioară, care este al patrulea dintre subiectele fotogrametrice despre care vorbim. Deci despre ce este vorba? Acest lucru este cel mai bine ilustrat gândindu-ne la o dronă care zboară deasupra unor terenuri despre care avem un model detaliat. Deci știm unde sunt punctele într- un sistem de coordonate global. Și avem o proiecție în perspectivă a camerei. Primim imagini ale acestor trei puncte. Și întrebarea este, unde suntem? Deci p1, p2, p3 sunt cunoscute. Să presupunem că centrul de proiecție este p0. Asta vrem să găsim. Și am dori, de asemenea, să găsim atitudinea unui avion în lume. Deci este același lucru vechi, rotație plus translație, cu excepția cazului acesta, avem un amestec de informații 2D și 3D. Coordonatele punctelor din lume sunt date în 3D. Deci avem un model de teren. Punctele corespunzătoare din imagine sunt în 2D. Deci, să vedem. O întrebare imediată este, de câte corespondențe avem nevoie? Deci știm că căutăm șase grade de libertate. Și așadar, o întrebare este, cât de mult contribuie fiecare punct de imagine ? Câtă constrângere oferă? Deci avem imagini cu... deci iată imaginea noastră. Avem trei puncte. Și în mod naiv, putem spune că de fiecare dată când măsurăm unde este ceva în imagine, avem x și y, deci două numere, două constrângeri. Și astfel, cu trei dintre ele, ar trebui să avem suficiente constrângeri pentru a rezolva problema. Deci avem nevoie de trei sau mai multe. Și în acest caz, acel argument naiv este de fapt corect. Avem nevoie doar de trei. Și această problemă, cred, nu știu dacă Biserica a fost prima care a rezolvat-o. Sau, în orice caz, a scris-o într-un manual. Nu știu, anii 1950. Deci este o veche problemă fotogramatică bine cunoscută. Desigur, oamenii cu viziune artificială nu au citit aceste lucruri. Și au reinventat toată fotogrammetria. Și au făcut de fapt o treabă proastă, au venit cu ceva numit geometrie proiectivă, de exemplu. Deci, oricum, ne întoarcem la rădăcini, care este fotogrammetrie. OK, acum un lucru pe care l-ai putea spune este să presupunem că nu-mi pasă de atitudine. Atunci am doar trei grade de libertate. Pot rezolva problema asta? Ei bine, din păcate, acestea sunt cuplate. Deci nu puteți trișa și doar rezolvați pentru variabilele pe care le doriți. OK, deci ce știm? Ei bine, să presupunem că orientarea interioară este cunoscută. Deci asta înseamnă că x0, y0, f sunt cunoscute. Și atunci când avem un punct dat în imagine, putem doar conecta punctul de imagine la centrul de proiecție. Și avem o rază în spațiu. Și știm că obiectul se află de-a lungul acelei raze în spațiu. Și avem acea rază în sistemul de coordonate al camerei, nu? Deci cu originea în centrul proiecției și așa mai departe. Bine, deci dacă avem aceste trei raze, este ca și cum am avea trei bastoane. Și încerci să aranjezi ca bastoanele să treacă prin trei puncte în lumea 3D. Deci vă deplasați în jurul poziției centrului de proiecție până când se întâmplă asta. Asta facem. Deci, dacă avem razele, putem calcula aceste unghiuri, deci cele trei unghiuri. OK, deci acestea sunt cunoscute. Odată ce avem punctele noastre de imagine, putem construi acele raze. Și astfel putem doar să luăm produsele punctate pentru a obține cosinusul. Și putem lua produsul transversal și luăm mărimea acestuia pentru a obține sinusul. Și asta ne dă a-- 8 și 2 ne vor permite să calculăm unghiurile. OK, așa că le știm. Deci ce nu știm? Ei bine, ceea ce nu știm este lungimea acestor picioare ale trepiedului. Deci, o modalitate prin care ne putem gândi la asta este că sarcina noastră aici este să găsim r1, r2, r3. Și nu am terminat odată ce avem r1, r2, r3. Dar cam am terminat. Pentru că atunci putem construi p0 prin intersectarea a trei sfere, nu? Deci, dacă știm r1, știm că planul se află pe o sferă cu raza r1 în jurul punctului p1. Știm r2. Știm că este pe o sferă cu raza r2 în jurul punctului p2. Și două sfere se intersectează într-un cerc. Deci nu am terminat. Nu prea am rezolvat problema. Așa că atunci îl luăm pe al treilea. Există o sferă cu raza r3 despre p3. Intersectăm acel cerc cu acea sferă. Și obținem de obicei două soluții. Deci există o potențială ambiguitate. Dar, practic, atunci avem soluții. Și dacă avem mai mult de trei puncte, putem rezolva ambiguitatea. Puteți vedea, de asemenea, că va exista o oarecare ambiguitate doar gândindu-vă la, să presupunem că avem lungimea acelor trei trepiede. Există o altă poziție decât cea pe care am arătat-o, unde acele lungimi ar fi exact aceleași? Deci gândește-te să muți acel avion în altă parte. Pretindem că, cu trei, avem o soluție, eventual, totuși, mai mult de o soluție. Deci lucrați cu planul B. Și acele lungimi ar fi în continuare aceleași ca și acolo. Ei bine, dacă îl mișc puțin, nu va funcționa. Pentru că atunci voi da peste cap una sau alta dintre aceste lungimi. Dacă îl mut spre stânga, măresc r3 și scad r1. Dar imaginați-vă că zburăm pe pământ. Apoi putem avea o imagine în oglindă a poziției avionului. Și obținem exact aceleași trei lungimi pentru trepied. Deci, dacă desenăm planul care conține p1, p2, p3 și ne gândim la acesta ca la o oglindă, apoi ne imaginăm în oglindă acel plan, atunci acesta are aceeași lungime. Acum, desigur, aceasta este o modalitate de a dezambigua. Pentru că de obicei, avioanele nu zboară pe sol. Așa că o putem rezolva așa. De asemenea, există o problemă legată de ordinea ciclică a imaginilor care ar fi diferită dacă am privi-o de dedesubt. E ca și cum ai privi niște scrisuri din partea greșită. Este imagine în oglindă. Și la fel și aici, dacă ne uităm la ea din poziția imaginii în oglindă a avionului în sus, totul este o imagine în oglindă. Așa că o putem rezolva așa. Deci, dacă avem doar două soluții, atunci putem scăpa cu ușurință de cea problematică folosind un astfel de argument. OK, deci cum găsim r1, r2, r3? Ei bine, înainte existau cărți pline de formule de soluții triunghiulare. Deci, dacă știi o latură și două dintre unghiuri, sau dacă știi două dintre laturi și un unghi, tot felul de combinații. Și de ce s-a făcut asta? Ei bine, pentru că era important pentru navigație. Și a fost important pentru sondaj. Așa că oamenii obișnuiau să știe aceste lucruri, dar nu atât de multe acum. Deci sunt în anexa cărții. Și anexa este pe Stellar. De exemplu, există o regulă a sinusurilor, care este doar că a peste sinus a este b peste sinus b. Și există regula cosinusului. Practic, acestea sunt singurele două de care aveți nevoie. Puteți rezolva toate aceste probleme folosind aceste două reguli. Uneori este convenabil să aveți unele dintre celelalte reguli. Pentru că fac munca mai scurtă. OK, deci problema noastră este că avem acest unghi. Noi stim aia. Ce mai știm? Ei bine, dacă avem modelul digital de teren, atunci știm această distanță. Putem calcula asta în mod similar pentru acela și așa mai departe. Deci, în acest triunghi, știm acel unghi. Și știm această distanță. Și întrebarea este, ce este r1 și r2? Ei bine, acestea nu sunt suficiente informații pentru a le rezolva folosind regula sinusului sau cosinusului. Dar putem scrie o ecuație care implică necunoscutele, r1 și r2, și toate aceste mărimi cunoscute. Și nu o voi face. Pentru că s-ar putea să apară în test. Deci rezultatul va fi că avem trei dintre aceste triunghiuri. Obținem câte o ecuație din fiecare dintre ele. Deci vom avea trei ecuații neliniare în cele trei necunoscute, r1, r2, r3. Și apoi putem vorbi despre rezolvare. S- ar putea să nu fie ușor să găsești o soluție în formă închisă. Dar măcar putem vorbi despre câte soluții ar putea exista. Și numeric putem rezolva întotdeauna această problemă. Bine, acesta este r1, r2, r3. Și apoi, așa cum am spus, mai trebuie să intersectăm acele sfere, deci puțină algebră acolo. Și apoi avem poziția avionului. Dacă avem mai multe vederi, mai multe corespondențe, este întotdeauna mai bine. Apoi putem formula problema celor mai mici pătrate. Și dacă ne îngrijorează valorile aberante, putem folosi sachetul. Să presupunem că avem 10 corespondențe. Apoi am putea alege trei corespondențe pentru a obține o soluție, să luăm un set diferit de trei corespondențe pentru a obține o soluție și așa mai departe. Și așa am făcut toate acestea în alte contexte. Așa că nu vreau să fac asta. Deci ce a mai ramas? Ei bine, ceea ce a mai rămas este găsirea atitudinii. Ce este atitudinea? Ei bine, înseamnă că este orientarea în raport cu sistemul de coordonate de la sol. Deci trebuie să găsim o rotație. Ei bine, treaba este că odată ce știm unde este planul, centrul proiecției p0, atunci putem construi acești vectori în 3D în sistemul de coordonate de la sol. Doar scădeți p0 minus p1 sau p1 minus p0 și p2 minus p0 și p3 minus p0. Deci putem construi trei vectori. De exemplu, am putea spune... Și asta scapă de traducere. Pe noi ne interesează doar direcțiile. Dar știm și acești vectori în sistemul de coordonate al camerei. Deci, pe baza pozițiilor imaginii de aici, le conectăm până la centrul de proiecție, care este originea în cazul camerei. Și obținem trei vectori în acel sistem de coordonate. Deci ei corespund -- trei vectori din sistemul de coordonate al camerei cu cei trei vectori din sistemul de coordonate mondial . Deci este o constrângere destul de grea. Asta înseamnă că ar trebui să fim capabili să relaționăm cele două sisteme de coordonate. Și știm că am scos traducerea. Deci tot ce a mai rămas este o rotație. Și așadar, în funcție de drumul pe care îl mergem, suntem interesați de o transformare de la sistemul de coordonate al camerei în sistemul de coordonate mondial sau de la sistemul de coordonate mondial la sistemul de coordonate al camerei? Dar vom ajunge cu așa ceva. Acum, desigur, acești vectori pot avea lungimi diferite, dacă facem doar aceste scăderi. Ne interesează doar direcția, deci vectori unitari. Și așa... ne așteptăm la asta. Și așa cum am spus, ar putea merge invers de la sistemul de coordonate mondial la cel al camerei. Deci avem trei ecuații ca aceasta. Și ceea ce căutăm este r. Și să o reprezentăm ca o matrice ortonală, în acest caz. Ei bine, putem lipi aceste trei ecuații împreună într-o ecuație matriceală, nu? Deci avem... acum, toate aceste lucruri sunt acum cunoscute. Avem orientarea interioară a camerei. Și așa știm cum să construim cei trei vectori de la centrul de proiecție la cele trei poziții ale imaginii. Și am calculat unde este p0. Deci avem cei trei vectori. Și ce este asta? Ei bine, aceasta este o matrice de trei câte trei. Și aceasta este o matrice de trei câte trei , a cărei prima coloană este vectorul A1. A doua coloană este A2. A treia coloană este A3. Deci avem un produs și toate matricele trei câte trei. Și putem rezolva doar pentru r inversând unul dintre ele, deci foarte simplu. Întrebarea interesantă este, este și rezultatul normal? Așa că o voi lăsa o întrebare fără răspuns. OK, da. Se află în sistemul de coordonate al camerei. Deci este p1 prim, p2 prim și P3 prim. Deci A1 este p1 prim. Pentru că în acest sistem de coordonate, cealaltă parte este proiecția centrală a acestei origini, 000. Scădere prim. Deci aceasta este raza până la acel punct din mediu așa cum se vede în sistemul de coordonate al camerei. Și așa cum am spus, știți, acesta este cazul minim. Avem doar trei corespondențe. În practică, ne-am dori să avem mai mult, să obținem o precizie mai bună. Și apoi folosim cele mai mici pătrate. Și nu mai există o soluție în formă închisă. Dar putem folosi asta pentru a începe. Alegeți doar trei dintre răspunsuri, trei dintre corespondențe, pentru a obține o estimare inițială, apoi aveți o iterație care minimizează erorile celor mai mici pătrate . Doar asigurați-vă că ceea ce minimizați este în planul imaginii. Pentru că aici se află eroarea de măsurare, nu o altă arbitrară. Deci există asta. Acum, să presupunem că vreau să spun, acesta nu trebuie să fie un avion. Ar putea fi vreo cameră turistică în... nu știu... vreo piață faimoasă undeva în lume. Și poate mai e un turist cu o cameră. Și deci există o problemă legată. Deci, aici este o poziție a camerei. Și iată o sculptură faimoasă, o catedrală, orice altceva. Și iată o altă poziție a camerei. Iată o altă cameră. Și ar putea fi sute de acestea. Și poate că ați văzut rezultatele acestui lucru. Și în acest caz, facem ceva numit o ajustare a pachetului. Și din nou, aceasta este o veche problemă de fotogrammetrie, pe care oamenii de viziune artificială au redescoperit-o și din care au făcut-o . Dar în cele din urmă au înțeles bine. Și deci care este problema? Ei bine, este o optimizare neliniară. Și metoda pe care am propus-o, despre care am vorbit, Levenberg-Marquardt, este una bună pentru a rezolva probleme de optimizare neliniară. Deci care sunt necunoscutele? Ei bine, necunoscutele sunt un set de puncte din mediul înconjurător al cărora s- ar putea să aveți mai multe vederi. Și nu știm de unde să înceapă. Și așadar, o parte a problemei este găsirea locului în care se află într-un sistem de coordonate mondial. Ce altceva este necunoscut? Ei bine, un alt lucru care este necunoscut este că nu știm unde sunt camerele. Deci trebuie să permitem camerelor să se miște. Acestea sunt necunoscute. Și apoi, ei bine, camerele au o atitudine în spațiu. Deci există o rotație. O să scriu doar așa. Așa că modificăm lucrurile pentru a face erorile cât mai mici posibil. Și din nou, erorile sunt erorile din imagine, nu din 3D. Si ce altceva? Ei bine, în cele mai multe cazuri, nu știm care sunt proprietățile camerei. Așa că trebuie să facem și orientarea interioară și poate, dacă doriți să fiți precis, o anumită toleranță pentru distorsiunea radială. Deci, presupunând că avem o presupunere inițială, atunci este doar o chestiune de a o pompa în această cutie neagră, care minimizează eroarea prin modificarea tuturor acestor parametri, o mulțime de parametri. Dar, probabil, ai o mulțime de constrângeri, o mulțime de imagini. Și astfel oamenii au făcut reconstrucții incredibile ale tot felul de lucruri și nu neapărat din mai multe camere, ci de exemplu, o cameră care zboară pe o dronă. Deci există niște vulcani în zona riftului african care sunt foarte rar vizitați. Și cineva a zburat cu o dronă peste unul dintre ele și a făcut o reconstrucție 3D completă foarte detaliată a formei actuale a calderei de pe acel vulcan. Și aceasta este metoda. Așa că atunci când zbori cu drona, nu știi exact unde ești. Dar știi aproximativ. Și asta ajută la pornirea soluției. Deci, de fiecare dată când aveți această optimizare neliniară, doriți să fiți aproape de soluție sau s- ar putea să fiți absorbit de minime locale care nu sunt soluția globală. OK, există un lucru despre care nu am vorbit prea mult, și anume cum găsești aceste puncte interesante? Am vorbit în detaliu despre cum să găsim marginile. Nu am spus prea multe despre punctele interesante. Dacă doriți, există o resursă online pe Stellar care descrie una dintre câteva metode care fac asta. Și este de Lowe, care a fost tipul care a brevetat metoda originală. Și de atunci, au existat o mulțime de metode alternative care nu încalcă brevetul și sunt mai rapide și poate nu la fel de precise, sau poate mai precise. Există o întreagă industrie care vine cu identificarea zonelor care ar putea fi ușor de găsit din nou într-o altă imagine și descriind acele zone. Ca să poți face o potrivire bună și să le regăsești într-o altă imagine. OK, deci este ajustarea pachetului pentru scurt timp. Adică, există o întreagă industrie în asta. Dar avem toate elementele de bază. Trecând prin toate celelalte probleme de fotogrammetrie, am dezvoltat toate instrumentele de care aveți nevoie pentru a implementa așa ceva. OK, schimbă subiectul. Așa că ne-am făcut drumul la chestii de nivel scăzut, filtrare, aliasing, subeșantionare, detectarea marginilor și așa mai departe. Și apoi am făcut fotogrammetria. Am lucrat și în 2D cu privire la recunoașterea și determinarea poziției și atitudinii. Deci, hai să încercăm să facem asta în 3D. Și, evident, nu va fi la fel de bun. Dacă aveți Robot Vision, acesta este capitolul 16. Dar nu aveți nevoie de Robot Vision. Pentru că există o resursă online special pe acest subiect numită Extended Gaussian Images. Deci ce încerci să faci? Ei bine, încercăm să descriem obiecte 3D. Dacă obiectul 3D este poliedric, nu este atât de greu, multe reprezentări interesante. Putem obține coordonatele vârfurilor și apoi construi un grafic care arată care vârfuri sunt conectate la ce, și apoi poate vorbim despre fețe. Și fiecare față este conectată la vârfurile de pe acea față din grafic și la marginile feței. Și fiecare muchie este legată de cele două vârfuri și de cele două fețe care se unesc. Așa că vă puteți imagina o soluție drăguță, tipică, informatică care implică o structură de date conectată. Deci poliedrele nu sunt atât de dificile. Deci nu vom spune prea multe despre ei. Și într-un mod derogatoriu, au fost numite blocuri probleme ale lumii, precum blocurile pentru copii. Deci de acolo am început în anii ’60. Și sperăm că am progresat departe de asta. Deci ce alte reprezentări putem avea? Ei bine, ne uităm la grafică. Și de obicei vor folosi măsuri, care sunt perfecte pentru acea aplicație. Deci putem aproxima orice curbă. Așa că ne interesează suprafețele curbe, acum că am renunțat să mai vorbim despre lumea blocurilor. Și putem reprezenta orice suprafață curbă cu orice precizie dorim, aproximând-o printr- o suprafață poliedrică cu multe fațete. Și asta funcționează grozav pentru randare. Deoarece pentru fiecare dintre aceste fațete, putem determina cu ușurință suprafața normală luând doar un produs încrucișat a două dintre margini. Și putem obține muchiile scăzând vârfurile. Deci este un calcul foarte simplu. Și apoi folosim o hartă de reflectanță, sau ceva de genul acesta, pentru a ne da seama cât de strălucitor să picteze acea fațetă mică și așa mai departe. Deci este foarte convenabil pentru ieșirea de imagini. Dar ce zici de lucrurile pe care vrem să le facem? Deci ce vrem să facem? Ei bine, câteva lucruri. Am dori să aflăm unde sunt lucrurile și cum s-au rotit în spațiu. Și bănuiesc că noi numim asta. Deci asta e poziția și orientarea. Și celălalt lucru pe care ne-am putea dori este să facem o oarecare recunoaștere. Și deci să vedem cât de bine funcționează această reprezentare. Ei bine, am putea încerca să facem alinierea luând două ochiuri și încercând să le aliniem, ceea ce ar însemna că ar trebui să sortăm alocarea unui vârf într-o aliniere într-unul dintre obiectele cu un vârf și celălalt, și poate minimizați pătratul distanței dintre ele. Dar nu prea are sens. Pentru că aceste vârfuri nu au nicio semnificație anume. Nu este ca și cum ar avea pe ele o etichetă care să aibă sens. Și dacă digitalizezi din nou suprafața, care sunt șansele de a obține acea plasă anume? Zero, sau aproape de zero. Și deci pentru aliniere, acest lucru nu este deosebit de util. Adică, poți face ceva. Puteți spune, OK, voi face un lucru iterativ, în care am alinierea aproximativă. Și astfel, pentru fiecare vârf, pot găsi care este cel mai apropiat vârf în prezent și să încerc să reduc acea distanță și să sper că va converge, acel proces. Dar nu e grozav. Și pentru recunoaștere, nici măcar nu poți spune, OK, asta are 320 de fațete. Iar celălalt are 360 ​​de fațete. Deci probabil că este același obiect. Nu este. Deci trebuie să faci mai mult. Și există modalități de a progresa de la acea reprezentare și de a ajuta la tratarea alinierii și recunoașterii. Dar ne vom uita la o metodă mai elegantă, care are unele limitări. Deci aceasta nu este o problemă care a fost rezolvată curat pentru toate situațiile posibile. Deci, ce căutăm într-o reprezentare? Deci, un lucru este că este ca fizica. Am dori să înțelegem invarianța și simetriile. Deci ce fel de invarianță? Ei bine, ceea ce mi-aș dori este ca dacă obiectul se mișcă translația, atunci reprezentarea să nu se schimbe, ei bine, într-un mod semnificativ. De exemplu, dacă înseamnă că toate coordonatele x sunt incrementate cu un număr fix, atunci aceasta nu este invarianță. Dar înseamnă că păstrez o reprezentare care este schimbată într-un mod foarte simplu, de înțeles. Deci asta e traducere. Și o modalitate prin care pot face față cu asta este să spunem, ei bine, doar referiți totul la centroidul obiectului. Și asta scapă de componenta de traducere. Și am rezolvat problema invarianței. Apoi rotire, ok? Deci ceea ce mi-aș dori este că... acum, desigur, dacă mă rotesc, este probabil că reprezentarea se va schimba. Dar aș vrea să se schimbe într-un mod ușor de înțeles, sistematic și simplu. Dacă mă gândesc, de exemplu, la imaginile de proiecție în perspectivă, acestea nu se schimbă într-un mod simplu, de înțeles. După cum știm, dacă luăm un obiect 3D și îl rotim în fața unei camere, obținem imagini care nu sunt simple modificări față de o imagine anterioară. Proiecția în perspectivă induce o transformare complexă, dezordonată. Deci, dacă vreau să recunosc obiectul sau vreau să-l aliniez, aceasta nu este o reprezentare bună. Pentru că transformarea este foarte complexă. Deci nu pot avea invarianță rotațională. Sau, mai degrabă, de fapt, nu vreau. Pentru că o să încerc să recuperez rotația. Dar ce mi-aș dori este ca atunci când rotiți ceva, reprezentarea se schimbă într-un mod foarte ușor de înțeles, pe care îl pot exploata atât pentru a gestiona recunoașterea, cât și pentru a gestiona problema de aliniere. OK, deci acum există o mulțime de încercări de a face acest lucru, de a găsi o reprezentare care să îndeplinească aceste criterii. Să ne uităm doar la unul. Deci este vorba despre cilindri generalizați. Deci un cilindru, când cineva spune cilindru, ai tendința să te gândești la un cilindru circular drept. Acesta este unul care are o secțiune transversală circulară. Și se obține prin măturarea unui generator de-a lungul unei linii drepte. Deci, în acest caz, ne putem gândi la acest obiect ca fiind creat luând un cerc și deplasându-l de-a lungul unei linii. Și poate, și mai restrâns, acel cerc este perpendicular pe linie. Și așa generăm acel cilindru. Deci, aceasta este cea mai strictă definiție a unui cilindru. Și o putem generaliza puțin schimbând forma generatorului nostru. Și acum putem genera forme mai complicate. Dar au încă proprietatea că secțiunea transversală oriunde este aceeași, dacă o tai perpendicular pe axa oriunde pe lungime. și presupun că definiția matematică a unui cilindru permite acea versiune. Acum pot să introduc alte câteva lucruri. Una dintre ele este că pot înclina generatorul în raport cu axa. Ei bine, asta nu face mare lucru. Este doar o transformare pentru scurtarea. Dar să presupunem că permit mărimea generatorului să varieze pe măsură ce merg. Ei bine, atunci pot genera conuri, de exemplu. Deci, din nou, măturăm de-a lungul unei linii. Și acum permitem modificarea dimensiunii. Apoi putem permite ca linia de-a lungul căreia măturăm să fie curbată. Până acum, am avut o linie dreaptă. Deci s-ar putea să am o curbă ca asta. Și apoi să luăm o secțiune transversală circulară, dar cu rază variabilă. Așa că pot genera o formă ca asta. Și le putem combina. Și am putea chiar să permitem generatorului să se schimbe pe măsură ce merge de-a lungul formei. Dar acum scapă de sub control. Atunci poți face orice. Și nu mai este unic. Deci aceasta a fost o idee care a fost urmărită o vreme ca reprezentare pentru obiecte, astfel încât să putem determina alinierea și să le recunoaștem. Și a fost oarecum interesant când oamenii încercau să reprezinte corpurile umane. Așa că vă puteți imagina că puteți reprezenta brațele, părți ale membrelor, ca cilindri generalizați și apoi să le legați cinematic împreună și să construiți un model 3D care să fie un fel de marionetă din lemn a unui artist care ar avea părți care ar fi fiecare cilindru generalizat individual . Există unele probleme cu asta. Deci unul este că, pentru a face recunoaștere, ați dori ca reprezentarea să fie unică. Va fi mai greu dacă există un număr infinit de moduri diferite de a descrie același obiect. Și iată un exemplu. Iată o sferă. Și l-aș putea reprezenta ca un cilindru generalizat având acea axă și apoi cercuri care cresc și se micșorează în dimensiune, o reprezentare perfectă a unei sfere. Din păcate, există un număr infinit de acestea. Pentru că ar putea fi această axă și acele cercuri. Deci, sfera este un caz dificil în special, din cauza simetriilor. Dar aceeași problemă apare în altă parte și în special atunci când permitem inexactități în date. Uneori este greu să faci diferența dintre obiectele care au o reprezentare unică generalizată a cilindrului și obiectele care nu au. Deci asta a fost folosit puțin. Nu a avut prea mult succes din cauza motivelor pe care le-am descris. Și a existat o tensiune între a permite mai multă libertate în generarea acestor cilindri generalizați și a asigura că există o anumită aparență de singularitate, unicitate. Pentru a putea rezolva problemele pentru care este proiectat totul. OK, așa că, în schimb, ne vom uita la această reprezentare. Și din nou, rețineți că aceasta este o zonă activă de cercetare, spre deosebire de unele dintre problemele 2D, despre care oamenii sunt cam de acord cu privire la soluții. Aici, fiecare soluție propusă are câteva limitări. Și așa ne vom uita și la limitările acestei reprezentări. OK, deci să ne întoarcem pentru un moment la poliedre. Am spus că nu vrem să facem poliedre ca un bun punct de plecare. Așadar, așa cum am menționat, o modalitate de a descrie poliedrul este de a da vârfurile și apoi coordonatele graficului în 3D. Adică, celelalte moduri. Dar într-un mod ai putea avea o listă de vârfuri cu coordonate 3D și apoi o structură grafică care să îți spună care vârf este conectat la ce vârf, care față are ce muchii și așa mai departe, acea structură grafică. Dar un alt mod este să priviți fețele și să desenați vectori unitari perpendiculari pe ele, apoi să le înmulțiți cu zonele. Și apoi aruncați întreaga structură a graficului și amintiți-vă doar acele cantități. Deci am avea un vector n1, care este acela, și apoi un vector n2, care este acesta. Și aceasta este, destul de interesant, în anumite circumstanțe este o reprezentare unică a acelui obiect în sensul că va exista un singur obiect care are acea reprezentare. Și asta e ceva ce ne dorim. Pentru că atunci când facem recunoaștere, ne-am dori unicitatea. Ne-am dori să nu se potrivească cu alt obiect. Și este oarecum surprinzător. Pentru că am aruncat o mulțime de informații. Am aruncat la gunoi relația dintre fețe. Am aruncat coordonatele reale, colțurile și alte lucruri. Și totuși, iată o reprezentare. Și Minkowski are o dovadă neconstructivă cu mult timp în urmă, că aceasta este unică pentru poliedre convexe. Știi, este interesant că de multe ori o teoremă va fi atribuită unei persoane care variază în funcție de geografie. Ei merg în altă țară. Și oh, aceasta este teorema lui Green sau, de fapt, nu, este Stokes, sau este... ei bine, în acest caz, Minkowski trebuie să aibă numele său pe această teoremă. Pentru că nu a existat o teoremă competitivă inventată de cineva din lumea vorbitoare de engleză. Așa că de fapt a ajuns să fie tipul cu numele de pe teoremă. Acum, destul de interesant, dovada nu este constructivă. Adică, dacă îmi dai aceste trei cantități, pot să-ți spun că există un singur poliedru convex care corespunde acestora. Dar nu am un algoritm care să construiască acel lucru. Și așa a fost un efort pentru o vreme în lumea viziunii artificiale pentru a veni cu un algoritm. Și cred că Katsu Ikeuchi a venit cu un algoritm iterativ care ar rezolva problema într-un mod foarte lent. Dar cred că oamenii și-au dat seama destul de repede cui îi pasă? Pentru că care este treaba noastră? Meseria noastră este recunoașterea și alinierea. Nu este reconstrucție. Deci, dacă descriem obiectul folosind aceste cantități, vrem să le comparăm cu biblioteca de modele și să le potrivim și să ne dăm seama cum trebuie să rotim acest obiect pe care îl vedem astfel încât să se alinieze cu modelul din biblioteca noastră? Nu suntem în treaba să spunem: OK, trebuie să reconstruim asta în 3D. Adică, poate că am făcut deja asta. Dar faptul că este o dovadă neconstructivă nu este un factor de descurajare. Nu este important, nu este relevant. OK, deci cum folosesc asta într-un caz mai interesant? Deci aceasta este doar o poliedră. A, și apropo, nu este prea greu să demonstrezi că... când stivuiești acești vectori coadă în coadă, ei formează o buclă închisă. Aceasta este suma acestor vectori, n1, n2, n3, este zero. Și vom demonstra ceva similar într-o clipă. Deci aceasta este o constrângere a ceea ce ar constitui o reprezentare validă. Dacă obțineți o grămadă de vectori care nu se adună până la zero, atunci știți că nu este un obiect convex închis. Și asta se poate întâmpla dacă, de exemplu, ați omis una dintre fațete. Atunci da, nu vor ajunge la zero. Dar, în afară de asta, orice combinație de vectori reprezintă un poliedru convex, atâta timp cât satisface această constrângere. Bine, deci să luăm un obiect mai complex, cum ar fi... nu știu... un vehicul de reintrare ICBM. Oarecum simplificat. Există o parte cilindrică. Și poate că există o parte conică. Și cred că există o parte plată pe care nu o vedem aici, care este pe spate. Deci, ceea ce pot face este să aproximez acest lucru folosind reprezentarea poliedrică a plasei . De exemplu, îl pot tăia în felii, astfel încât normalul pentru toate punctele de pe aceste felii, ei bine, nu sunt exact la fel. Dar au foarte puține variații. Și cu o secțiune conică, pot face asta. OK, deci ideea este, adică pot face o plasă mult mai fină. Dar de fapt combin lucruri care au normale de suprafață similare. Și atunci ce să fac? Ei bine, atunci calculez toate aceste mărimi, aria ij înmulțită cu vectorul unitar nij. Și le păstrez. Acum, desigur, trebuie să fiu atent. Pentru că tocmai am spus că reprezentarea rețelei nu este bună. Pentru că s-ar putea să desenez o plasă diferită. Așa că acum, trec la sfera unității. Și am trasat acești vectori. Deci fiecare dintre ele are o direcție în spațiu care corespunde apoi unui punct de pe sferă. Și am pus jos o masă în acel punct corespunzătoare zonei acelui plasture. De exemplu, dacă aș împărți plasturii mai fin, aș fi avut două zone de jumătate din dimensiune. Dar ambele contribuie la același punct al sferei. De aceea aș putea merge cu ei așa. Așa că l-aș putea tăia în bucăți mici. Nu contează. Important este cât de multă masă ajunge aici pe sferă . OK, acum lasă-mă să fac asta pentru toată suprafața cilindrică. Ei bine, normalele de suprafață pentru această suprafață cilindrică continuă să se rotească. Dar toate sunt într-un plan care este perpendicular pe axa cilindrului. Atunci imaginați-vă că tăiați acea sferă cu acel plan. Voi obține un cerc grozav. Așa că voi doborî mase pe tot parcursul acestui mare cerc. Și aceasta este partea reprezentării care corespunde suprafeței cilindrice. Deci, de exemplu, aici, există un vector unitar care indică așa. Asta va fi pe sferă undeva aici. Și am pus jos o masă. Și în acest caz, așa cum am tăiat-o, toate aceste mase sunt la fel. OK, ce zici de partea conică? Ei bine, același lucru. Construiesc un vector unitar. iau in calcul zona. Să numim asta bi și... nu știu... mi, doar pentru varietate. Și asta ajunge pe unitatea de aici, undeva. Și am pus jos o masă acolo. Și acum, dacă iau în considerare toate fațetele de pe con, suprafața normală se va schimba. Și nu sunt într-un avion. Dar dacă te gândești la normalele de suprafață, ele formează ele însele un con cu unghiul complementar al conului. Așa că apoi am tăiat sfera cu acel con. Și voi obține un cerc mic. Deci, dacă vă gândiți la toate fațetele acestui con, toate vor contribui la punctele sferei din acel cerc mic. Bine, și apoi, ei bine, lipsește o piesă. Dacă vreau să descriu întreaga suprafață a acestui obiect, care este placa de la capăt. Și farfuria de la capăt va ajunge în urmă. Dar undeva pe sferă, trebuie să existe o masă mare care să corespundă acelei zone. De ce este mare? Ei bine, pentru că totul în acea zonă arată la fel. Astfel că întreaga zonă mare a plăcii din spate contribuie la masă într-un singur punct. Deci este ca un impuls. Și aici este reprezentarea mea pentru un obiect non-poliedric. Și puteți vedea acum cum am putea folosi acest lucru în diferite moduri pentru sarcina pe care ne-am propus-o, alinierea și recunoașterea. Deci am putea avea o bibliotecă de obiecte. Și pentru fiecare dintre ele precalculăm această reprezentare. Și apoi putem face o comparație. Acum, comparația nu este cel mai puțin pătrate în plan. Este pe sferă. Deci, va necesita un pic de gândire despre cum să implementăm asta. Dar, practic, vrem să-i aliniem, astfel încât acolo unde acesta are multă masă, celălalt să aibă multă masă. Și așa vă puteți imagina că inventați o măsură a modului în care se corelează, cât de bine se potrivesc. Și apoi poate fi folosit în două moduri. Cea este orientarea. Așa că ar trebui să iau una dintre cele două reprezentări și să rotesc sfera până când lucrurile se aliniază cât mai bine. Și pentru recunoaștere, fac apoi scăderea pentru a vedea cât de bine se potrivesc. Și astfel, această reprezentare oferă cele două sarcini pe care le-am descris, o mulțime de detalii de completat. Apoi am spus că ne dorim anumite proprietăți. Unul dintre ele a fost citatul „invarianță” sau transformări simple rezultate din translație și rotație. Ei bine, mai întâi, traducerea nu intră în ea. Pentru că ne uităm doar la normalurile de suprafață. Deci, dacă luați acest obiect și apoi îl mutați, obținem exact aceeași reprezentare. Deci este invariabil la traducere. Rotire, ce zici de rotație? Ei bine, rotația are un efect foarte simplu asupra acestei reprezentări. Dacă rotesc acest obiect și rotesc doar vectorii normali, asta înseamnă că mă rotesc acolo unde ajung ei pe sfera unității. Deci este ca și cum ați roti sfera unității într-un mod echivalent. Deci modificarea reprezentării rezultată din rotație este foarte simplă, foarte intuitivă, ușor de înțeles, ușor de implementat. Și astfel satisface această constrângere. Deci, în general, cu ce vom avea de-a face este un fel de densitate. Deci grosolan vorbind, dacă am o anumită masă aici, înseamnă că există o zonă pe obiect egală cu masa care are acea orientare. Deci este ca și cum masa din orice punct de aici îmi spune zona care are acea orientare. În cazul fațetelor discrete, în cazul în care iau o limită și iau o suprafață curbată continuu , ceea ce am de-a face este densitatea. Deci densitatea punctelor de pe suprafață îmi spune ceva despre curbură. Deci, dacă obiectul este foarte curbat, normalele suprafeței învecinate vor fi îndreptate în direcții foarte diferite. Și asta înseamnă că vor fi răspândite pe sferă. Și obținem o densitate scăzută. Deci, densitatea scăzută corespunde curburii mari. Și invers, densitatea mare corespunde curburii scăzute. Și putem vedea asta chiar aici, unde lucrul cu cea mai mică curbură este placa, placa de capăt. Și oferă o contribuție uriașă sferei. Pentru că are o curbură foarte scăzută. OK, și bineînțeles, va trebui să spunem ce înțelegem prin curbură. Pentru că acesta este 3D. Deci este puțin diferit. Acum, o modalitate de a începe acest lucru este să priviți mai întâi o versiune 2D a acesteia. Și, în primul rând, care este ideea Gaussianului extins? Care este imaginea Gaussiană? Ei bine, lucrul important de reținut este relația dintre punctele de pe obiect și punctele de pe sferă. Ce au in comun? Este suprafața normală. Deci, dacă vreau să găsesc partea sferei care corespunde acestui petic special al suprafeței, găsesc doar punctul de pe sferă care are aceeași normală de suprafață. Așa că reveniți la 3D pentru un moment. Să presupunem că avem un Pământ care nu este o sferă. Și am dori să desenăm o hartă care se bazează pe sfere. Ei bine, atunci avem o modalitate de a mapa între ei. Și există o mulțime de moduri imaginabile. Ei bine, Gauss a venit cu unul, care în esență înseamnă că voi mapa acest punct la punctul de pe sferă care are aceeași direcție a normalului. Și acesta este cel pe care îl folosim de fapt. Pentru că dacă spui că suntem aici la MIT la 42 de grade și jumătate latitudine, acesta nu este acest unghi față de centrul Pământului, pe care îl spunem uneori în mod greșit. Ce este, este acest unghi. Și atunci când avem de-a face cu un cerc, toate acestea sunt la fel. Dar când avem o altă formă, trebuie să fim clari despre ce direcții vorbim. Și în acest caz, descoperim că cel care... de ce îl folosim? Ei bine, pentru că este ușor de determinat. Ai gravitația îndreptată perpendicular pe suprafață. Și apoi aveți rotație în jurul sferei cerești. Deci puteți determina polul nord ceresc. Sau puteți privi unde este soarele și ce perioadă a anului este. Și acesta este unghiul pe care îl vei măsura. Acum, există subtilități acolo, cum ar fi forța centrifugă, distribuția neuniformă a maselor pe Pământ și așa mai departe. OK, deci Gauss a spus, practic, că o modalitate de mapare între obiectul convex de formă arbitrară și sfera unității este să identifice doar punctele care au aceeași orientare. Și asta e punct la punct. Ei bine, putem generaliza asta la forme. Deci, să presupunem că avem Africa aici, apoi o putem mapa pe sferă. Și de ce este convenabil? Ei bine, pentru că există o mulțime de metode inteligente pentru a mapa sferele pe suprafețe plane pentru realizarea hărților. Dar primul pas este că trebuie să îl convertiți din elipsoid într-o sferă. OK, deci cum o facem? Ei bine, pentru fiecare punct de aici, ne uităm la normala suprafeței și găsim punctul de aici care are aceeași normală de suprafață. Deci aceasta este ideea de bază a cartografierii. Facem corespondențe între puncte care au aceeași normală la suprafață. Și puteți vedea că această mapare este de fapt inversabilă. Deci, dacă sunt pe sferă și vreau să știu ce punct îi corespunde această parte a Madagascarului aici, doar găsesc punctul care are aceeași orientare la suprafață pe această altă formă convexă, atâta timp cât este convexă. Acum există o problemă când avem forme neconvexe. Pentru că ar putea exista mai multe puncte care au aceeași orientare la suprafață. Și aceasta este limitarea acestei metode, că are proprietăți foarte frumoase pentru obiectele convexe, are unele probleme cu obiectele neconvexe. Dar pentru moment, să ne concentrăm asupra obiectelor convexe. Deci, în cazul obiectelor convexe, această mapare este reversibilă. OK, înapoi la 2D. Deci, ideea este că, din nou, trecem acum de la o formă la un cerc și poate ar trebui să fac această formă mai puțin asemănătoare unui cerc, având în vedere că cercurile mele oricum nu sunt atât de grozave. OK, deci iată un obiect convex. Și acum ceea ce vrem să facem este să luăm un patch, ei bine, în acest caz, un scurt segment de linie, pe acea suprafață și să- l mapăm pe sferă. Și cum facem asta? Ei bine, ne uităm la normalele de suprafață. Deci există o suprafață normală la început. Și asta va corespunde cu o suprafață normală aici. Și există o suprafață normală la sfârșit. Și pentru că este convex, se schimbă monoton între ele. Deci întregul interval de normale de suprafață între hărți în întregul interval de normale de suprafață de aici. Și vom parametriza acel cerc unitar în plan după unghiul, eta. OK, și ce vrem să facem? Ei bine, vrem să reducem o densitate, care este invers proporțională cu curbura. Deci masa, delta s, care este proporțională cu delta s, va sfârși prin a fi răspândită peste această parte a cercului unitar. Deci, dacă avem o curbură mare, se va întoarce rapid. Și oricare ar fi masa este răspândită într-un unghi mare. Și invers, dacă suntem în partea plană, suprafața normală să se întoarcă foarte încet. Și toate acestea vor ajunge într-un segment foarte mic aici. Și astfel densitatea va fi mare. Și așa vom ajunge cu o cantitate continuă din acel unghi. Și acesta este lucrul care ne interesează. Deci, mai întâi, să alegem un punct arbitrar. Deci s este lungimea arcului de-a lungul curbei de aici până acolo. Și din nou, aceste valori normale sunt paralele. Deci, acesta trebuie să fie înclinat eta. Și deci ceea ce ne interesează este curbura. Să începem cu asta. Este rata de cotitură, nu? Deci, de exemplu, dacă nu vă întoarceți, atunci k este zero. Deci este rata de schimbare a direcției. Sau este inversul unu peste raza curbei. OK, și atunci densitatea va fi inversul acesteia. Deci densitatea... și atât. Deci aceasta este reprezentarea noastră pentru o curbă convexă închisă în 2D. Mapăm pe un cerc unitar inversul curburii. Și această reprezentare este unică. Nu există niciun alt obiect convex închis care să aibă aceeași distribuție. Acum, în cazul 2D, este de fapt inversabil. Acum, puteți vedea cum ați putea face o tranziție de la un caz discret la un caz continuu. Puteți împărți acest lucru în o mulțime de fațete mici care sunt linii drepte. Și fiecare dintre aceste fațete va contribui la masa punctuală pe cerc. Și apoi, pe măsură ce produceți dimensiunea fațetelor, acestea devin din ce în ce mai mici și din ce în ce mai apropiate. Și tot ce contează este densitatea. Câtă masă există pe unitate de suprafață? OK, numim acest lucru G pentru Gauss. OK, acum voi arăta inversarea, deși vom descoperi că, așa cum a descoperit Minkowski, nu există nicio inversare în 3D. Dar doar pentru a ilustra unele dintre aceste idei mai mult. OK, deci suntem într-un unghi eta. Și delta va fi perpendiculară pe asta. Și atunci când facem o mică modificare, obținem delta s este minus sine eta. Delta s și delta y sunt egale cu cosinus eta delta s, nu? Pentru că ne vom întoarce cu o sumă, delta x. Dacă arunc în aer asta... OK, aceasta este eta cu ceva care este proporțional cu sine eta. Și apoi treceți în 1. Și deci tot ce trebuie să fac este să integrez acea ecuație. Pentru că îmi spune pe măsură ce mă deplasez cât de departe mă mișc. Acum, s-ar putea să nu știu delta s. Probabil mă integrez în eta. Deci, să vedem. Putem spune că x este x0 plus-- și apoi schimbăm variabilele. [INAUDIBIL] Și, desigur, aceasta este... Și, în mod similar, va exista o ecuație pentru y. Pune-l acolo sub. Deci y este [INAUDIBIL]. Deci, în cazul 2D, îl pot inversa. De fapt, pot obține obiectul convex care corespunde acelei imagini circulare. Am menționat că nu este cazul în 3D. În timp ce suntem acolo, am fost puțin neglijent în privința limitelor. Nu le-am pus. Dar putem face asta. Și o întrebare interesantă este, ce este asta? Deci acestea sunt cantitățile care apar acolo. Am inceput x0. Și am desenat această integrare. Și construiesc tot acest obiect convex presupus închis . Și deci ar trebui să revin la același punct, nu? Prin urmare, acea integrală mai bine să fie 0 atunci când ocolesc bucla. Deci, din nou, pentru că am început de la x0, integrez pe întreaga curbă, ar trebui să mă întorc presupunând că este o curbă închisă. Deci presupunem că este o curbă convexă închisă. Atunci acele integrale mai bine să fie zero. Și asta înseamnă că centroidul acelei distribuții de masă-- mă tot întorc să mă gândesc la el ca la o distribuție de masă. Există o densitate pe cerc, sau sfera, care este la origine. Pentru că acestea sunt într-adevăr-- integrala lui x, g, bla, bla, bla. Și scuze, da, x. Și acesta ar fi y. Deci integrala lui x ponderată de acest lucru este zero. Și integrala lui y ponderată de acel lucru este zero. Și acestea sunt momentele, primele momente, pe care le folosiți la calcularea centroidulului. Deci, asta înseamnă că, OK, această distribuție de masă pe cerc trebuie să aibă o proprietate specială, și anume că pot fi mai mult aici sau mai puțin în altă parte și așa mai departe. Toate acestea sunt în regulă. Dar mai bine are proprietatea că centroidul este la origine. Deci, aceasta este o limitare, care este exact aceeași cu ceea ce am avut în cazul poliedric, că unii dintre acești vectori au fost zero. Este chiar aceeași afirmație. Deci, aceasta este o limitare a distribuțiilor legitime. Dar asta e tot. În afară de asta, vă puteți aranja masele cum doriți. OK, deci să ne uităm la un exemplu. Totul este foarte bine în teorie. Să ne gândim la un cerc cu raza r. Întotdeauna bine să începi cu ceva cu adevărat simplu. Ei bine, în acest caz, curbura, care este curbura? Deci curbura este k este d theta peste ds. Deci, cum aflu? Ei bine, un mod în care mă pot gândi este să relaționez direcția normală a suprafeței cu lungimea arcului de-a lungul circumferinței cercului. Deci pot spune că s este teta noastră, presupunând că theta este măsurată în radiani. OK, deci este foarte simplu pentru un cerc. Și apoi am nevoie de a la s. Ei bine, pot aduce a la s, atunci 1 peste r. Deoarece eta este 1 peste r ori s. OK, deci asta înseamnă că curbura este doar inversul razei de curbură pentru un cerc. Acum, într-un caz mai general , mai putem vorbi despre raza de curbură. Să presupunem că curba nu este un cerc. Să presupunem că acea formă eliptică sau ceva. Putem vorbi încă despre raza de curbură. Deoarece putem potrivi un cerc local în acea parte a curbei și punem întrebarea care este raza cercului cel mai potrivit în acea poziție? OK, deci cercul este foarte ușor. Și nu este deosebit de interesant. Pentru că este la fel de jur împrejur. Are același -- g este constant. Deci g de eta este 1 peste k. Și asta este r. Și așa este constantă pe tot parcursul. Și apropo, acest lucru arată că avem această interpretare nu foarte corectă , și anume că valoarea pentru un anumit unghi eta este cât de mult din suprafața obiectului o are ca normală a suprafeței? Deci aceasta înseamnă că, în primul rând , în cazul unui cerc, acea cantitate este constantă. Nu contează în ce direcție ne uităm. Și apoi, de asemenea, asta crește ca rază. Pentru că pe măsură ce facem cercul mai mare, acesta devine din ce în ce mai plat. Deci tot mai multe dintre ele au aproximativ aceeași orientare. Deci, acesta este un mod util de a gândi la asta. OK, deci nu vom putea folosi acest lucru pentru a determina orientarea. Pentru că orientarea este ambiguă cu atâta simetrie. Așa că trebuie să venim cu un exemplu mai bun, mai complicat. Și fac asta în 2D acum. Pentru că pentru 3D, o să notez rezultatul. E prea plictisitor să te descurci. Așa că, torturându-te cu o versiune 2D, te scutesc de durerea de a te uita la versiunea 3D. Deci, să ne uităm la o elipsă. Și o vom alinia frumos, astfel încât ecuațiile să iasă ușor. Centrul elipsei este la origine. Și axele principale sunt aliniate cu axele x și y. Și, desigur, știm că într-un fel putem-- și aceasta este o așa-numită formă implicită a ecuației pentru o elipsă. Există o carte minunată care s-a epuizat de multe ori și apoi a fost retipărită, care vorbește despre diferite moduri de a reprezenta curbele. Și crezi că, ei bine, există unul și poate mai este altul. Nu, există o duzină care sunt utilizate în mod obișnuit și încă o duzină care sunt mai puțin utilizate, deci o mulțime de reprezentări. Și nu învățăm prea multe despre ei în zilele noastre. Dar iată un altul, care este mai util pentru scopurile noastre. OK, deci ce este asta? Ei bine, ne putem gândi la asta ca la un cerc zdrobit. Deci, practic, am înmulțit-- imaginați-vă cercul cu raza a și am strivit dimensiunea verticală cu acest factor. Și înțelegem asta. Și că theta este unghiul din cercul original. Deci a existat un cerc original. Și l-am strivit cumva pentru a produce asta. Deci, theta nu este un unghi în acea diagramă. Este un unghi din diagrama versiunii nestropite. Bine, dar puteți vedea că dacă luați x peste un pătrat și y peste b pătrat, veți obține 1. Și asta este, în multe privințe, o reprezentare mai convenabilă . Pentru că l-ai putea folosi pentru a genera cercul. Acesta aici, cum generezi cercul? Ei bine, cred că ai putea încerca toate x și y posibile. Și unii dintre ei vor produce 1. Și alții nu. Și poți lăsa un punct acolo. Dar dacă vrei să-l desenezi, acest lucru este mult mai convenabil. Pentru că doar parcurgeți theta și calculați o aproximare poliedrică a oricât de fin detaliu doriți. OK, deci reprezentarea parametrică este grozavă. Și asta se referă și la Pământ. Pământul poate fi considerat ca o sferă care este strivită în direcția verticală. Și amintiți-vă că acele unghiuri nu sunt aceleași, așa cum am vorbit despre asta, nu este latitudinea. Și nu este nici latitudinea geocentrică. A, și apropo, dacă aveam nevoie de zonă, sunt pi ori ab. Și puteți verifica că funcționează pentru cazul limitativ, în care avem de-a face cu un cerc. Deci, ce trebuie să știm? Ei bine, trebuie să-l mapăm la un cerc pe baza normalelor suprafeței sau, în acest caz, normala curbei. Deci trebuie să calculăm normala curbei. Ei bine, putem începe prin a calcula o tangentă. Deci cum facem asta? Ei bine, facem diferența doar cu parametrul. Și asta ne oferă un vector care merge de-a lungul curbei. Așa că vom căuta așa ceva prin diferențierea asta în raport cu theta. Și astfel obținem minus a sinus theta b cosinus theta. Apoi definiți mai întâi acest vector r, care este acest lucru. Deci, aceștia sunt acum doi vectori. Pentru că suntem în 2D. OK, deci asta e tangenta. Și normalul, desigur, este doar perpendicular pe asta. Și deci cum fac asta? Ei bine, răsturn x și y și schimb sinusul. Și acesta nu este un vector unitar. Dar este un vector în direcția perpendiculară pe curbă. Și asta îmi spune unde sunt pe sferă. Acum, pe sferă, pe cerc, am asta. Și astfel aceste direcții trebuie să se potrivească. Deci direcția, nu este un vector unitar. Dar dacă o normalizez, atunci ar trebui să se potrivească cu asta. Dacă le potrivesc, primesc... să vedem. a sine theta. unde n este lungimea acelui vector. Deci, să presupunem că n pătrat este b pătrat cos pătrat theta plus un pătrat sinus pătrat theta. OK, bine, lasă-mă să definesc un alt vector. În analogie cu vectorul pe care îl avem acolo. Și apoi aflăm că... Și detaliile acestui lucru nu sunt îngrozitor de importante, doar algebră. Important este că asta ajungem. Și cantitatea care ne interesează este doar inversul acesteia, G este 1 peste k. Deci aceasta este curbura. Iar cantitatea pe care o dorim este inversul curburii. Deci un lucru care este interesant este să vă întrebați care sunt extremele acestui lucru? Și așa v-ați imagina că extremele vor fi la capetele semi-axelor. Și așa ne-am aștepta ca extrema să apară pentru theta este egal cu 0 și eta este egal cu pi peste 2. Ei bine, 0 și pi sunt același lucru. Și pi peste 2 și 3 pi peste 2. Și în acest caz, ajungem cu ab peste a cub, care este b peste a pătrat și ab peste b cub, care este a peste b pătrat. Așa că voi desena acea elipsa din nou. Să vedem. a este cea mare. OK, deci detaliile nu sunt atât de importante. Dar ceea ce am făcut este că am calculat imaginea circulară extinsă pentru o elipsă. Și este o funcție continuă a eta, unghiul pe cercul unitar. Și variază, spre deosebire de cerc. Și are un maxim și un minim și un maxim și un minim, pe măsură ce ocoliți. Și depind de semiaxele. Și după cum vă puteți imagina, a este cea mai mare dintre cele două semi-axe. Deci aici vedem că curbura este destul de mare. Și b este axele mai scurte. Și curbura este mică. Și astfel există o distribuție continuă pe cerc, pe care o putem folosi acum pentru a determina orientarea unei elipse care nu este aliniată cu un sistem de coordonate. Pentru că vom avea aceeași distribuție a acestui unghi. Dar va fi rotit. Și așa că, pentru a obține meciul, trebuie să luăm unul dintre cei doi și să îl rotim până când este o potrivire bună cu celălalt. Și, în mod similar, odată ce am făcut asta, putem verifica cât de bună este. Și dacă se potrivește bine, atunci avem, de fapt, o elipsă. Dacă nu, atunci obiectul nu este o elipsă. Și deci, dacă avem o bibliotecă de obiecte, ceea ce am face este să facem acest calcul pentru fiecare obiect din bibliotecă și să găsim pe cel care se potrivește cel mai bine. Cunosc toate aceste unghiuri diferite, la fel ca imaginea Pământului de acolo. Deci theta este un parametru. De fapt, nu apare în această diagramă. De unde vine este theta din cerc, înainte ca cercul să fie strivit. Și așa a fost odinioară theta. Dar acum a scăzut. În timp ce, eta este poziția pe sferă. Așa că mapam din acest spațiu pe sfera unității de direcții. Deci există o relație între cei doi, care să vedem, este ceva de genul b10-- Am pe undeva. Deci tan theta este legat de tan eta prin ceva de genul acesta. Și aceasta este, dacă am înțeles bine, aceasta este o formulă importantă folosită în geodezică. Deoarece raportează unghiul geocentric, unghiul pe care îl facem în centrul Pământului cu unghiul de latitudine pe care îl folosim pentru a calcula latitudinea. Și în cazul Pământului, diferența nu este foarte mare. Aplatizarea este doar 1 peste 292. Deci acele unghiuri sunt destul de apropiate. Dar este important să le păstrăm separate. Da, am înțeles bine. OK, deci este o versiune 2D. Și de fapt, există aplicații ale acestui lucru în 2D. Și puteți face lucruri mai interesante și în 2D. De exemplu, puteți face câteva operațiuni de filtrare. Deci, puteți face convoluția pe cerc, care este diferită de convoluția de-a lungul liniei. Pentru că lucrurile se înfășoară. Și acesta este un cu totul alt subiect. Există o lucrare despre asta și pe Stellar , în caz că te-ar interesa. Să revenim la 3D. Aceasta este problema care ne interesează cu adevărat. Și așa că începem cu maparea Gauss, care practic conectează punctele de pe o suprafață cu punctele unei sfere unitare pe baza orientării normale a suprafeței. Și acestea sunt patru puncte. Și apoi extindem asta la forme. Deci am putea avea un obiect aici. Și există o formă acolo. Și apoi există o formă corespunzătoare aici. Sunt legate prin faptul că fiecare punct de aici are o normală de suprafață. Și asta îmi dă un punct în acel patch. Deci, permiteți-mi să numesc asta obiectul. Și aceasta este zona delta o pentru obiect. Și aceasta este sfera. Și aceasta este o zonă deltă s. Și curbura este doar definită ca, sau limita de... Deci, din nou, acea intuiție că dacă avem o zonă foarte plată, atunci aproape toată acea zonă va ajunge foarte aproape de același loc pe sferă. Deci raportul va fi foarte mic, ceea ce înseamnă că curbura este foarte scăzută. Dacă, pe de altă parte, mă uit la ceva de genul acesta, unde este foarte curbat, ei bine, acele normale ale suprafeței vor fi într-adevăr răspândite peste tot [INAUDIBIL]. Ele vor corespunde unei suprafețe mari pe sferă. Și, prin urmare, acest raport va fi mare, curbură mare. Deci aceasta este curbura Gauss. Acum curbura în 3D este mai complicată decât în ​​2D. Deci aceasta nu este toată povestea despre curbură. Aceasta este doar o singură mărime scalară convenabilă care măsoară curbura. Apropo, dacă ocolesc circumferința acestei zone într-o anumită direcție, voi ocoli circumferința aici în aceeași direcție, atâta timp cât aceasta este convexă. Acum, cum rămâne cu suprafețele neconvexe? Ei bine, dacă te gândești ce este o suprafață neconvexă? Ei bine, ca un punct de șa sau unul dintre hiperboloizii noștri dintr-o foaie. Deci punct de șa, gândiți-vă la un cip Pringle. Deci iată o suprafață cu curbură negativă. Și dacă urmărim normalele suprafeței din exterior și le trasăm pe cele de pe sferă, ele vor călători de fapt în direcția opusă. Deci, pentru obiectul neconvex - și în acest caz, considerăm curbura negativă. Deci formula aia de sus ar trebui să țină cont de sinusul zonei, ca să spunem așa, care este direcția. Deci, dacă cele două direcții se potrivesc, atunci este pozitiv. Și dacă acesta merge în cealaltă direcție, este negativ. Dar asta nu se va întâmpla pentru obiectele convexe. Și mai ales vom vorbi despre obiecte convexe. Deci, luați un exemplu foarte simplu. Luăm o sferă cu raza r. Și k este 1 peste r pătrat. Și, prin urmare, g este r pătrat. Deci, aceasta este o analogie cu cazul nostru 2D, unde k a fost unul dintre r și g a fost r. Deci ce înseamnă asta? Și de unde vine asta? Ei bine, este destul de simplu. Este raportul dintre aceste două zone. Și în cazul unei sfere, pot să iau totul. Deci aceasta este o sferă unitară. Deci aria sa va fi de 4 pi. Aceasta este o sferă cu raza r. Deci are suprafețele 4 pi r pătrat. Și deci dacă iau raportul lor, suprafața delta s peste delta o, obțin unul peste r pătrat. Și din nou, asta este consistent, că dacă ai o sferă mică, are o curbură mare. Și invers, pentru o sferă mare, vrei să ai o curbură mare. OK, deci aceasta este un fel de cheie pentru noi. Și invers, g este delta o peste delta h. Și prin asta mă refer la limită, deoarece facem acele cantități din ce în ce mai mici. OK, deci ceea ce facem este strâns legat de curbura gaussiană. Pentru că este doar inversul curburii gaussiene. Oh, cred că nu avem timp. Dar unul dintre lucrurile interesante pe care le putem face acum este să vorbim despre curbura integrală, care se aplică suprafețelor care nu sunt netede. Deci să presupunem că ne uităm la o cărămidă. Are un colt dreptunghiular. Nu putem vorbi cu adevărat despre curbura sa. Pentru că este zero pe fețe și infinit pe margini. Dar putem vorbi de fapt despre o integrală de curbură peste o parte a cărămizii. Deci vom face asta data viitoare. Și vom vorbi despre cum să folosim acest lucru în recunoaștere și aliniere. Și va fi un test joi.