[SCRÂȘIT] [FOSȘIT] [CLIC] BERTHOLD HORN: Fii o nouă problemă de teme după această clasă și vom încerca să acoperim cât mai mult posibil care este relevant pentru asta. Ultimele două întrebări, va trebui să așteptați cursul de săptămâna viitoare. Cu toate acestea, există timp suplimentar. Deci nu se datorează într-o săptămână. Urmează puțin mai târziu. Deci ar trebui să putem pune totul la punct până marți. OK, deci ultimul brevet despre care vorbeam a fost unul care ne-a permis să calculăm eficient ieșirile de filtrare în imaginile care au fost filtrate. Și în special, interesul a fost în suprimarea conținutului de frecvență mai mare, astfel încât să le putem eșantiona fără a obține artefacte de aliasing. Dar, de asemenea, le-am putea folosi pentru detectarea marginilor și orice fel de proces care este convoluțional și să obținem o accelerare prin exploatarea naturii rare a unei derivate superioare a unei spline. Deci, în loc să ne concentrăm asupra brevetului, să ne uităm la unele dintre materialele relevante și să le discutăm fără referire specifică la brevet. Deci, o componentă majoră a acestui lucru, desigur, este Nyquist. Deci, pentru a nu bate un cal mort până la moarte, după cum se spune, când eșantionăm o formă de undă, este oarecum surprinzător că ne așteptăm să captăm ceva despre forma de undă, deoarece forma de undă are suport infinit. Și tocmai primim aceste mostre discrete. Deci, este surprinzător că ne putem aștepta să captăm acea formă de undă în acest fel. Și singurul motiv pentru care poate funcționa este dacă există ceva foarte restricționat în ceea ce privește tipurile de forme de undă cu care avem de-a face. Și asta limitează banda. Deci, dacă conținutul lor de frecvență este limitat, atunci există această teoremă minunată care spune practic că, dacă eșantionăm la o frecvență suficient de mare, atunci captăm de fapt tot ce există. O putem reconstrui complet și este o dovadă constructivă. Nu este ceva care este pur și simplu o dovadă matematică. Dar există de fapt o metodă de reconstrucție a acestuia și a convoluției sale cu funcția sinc. Deci este o teorie foarte satisfăcătoare . Și Nyquist și predecesorii săi au arătat că criteriul este ca eșantionăm suficient de rapid, astfel încât componenta de cea mai înaltă frecvență a semnalului să aibă o frecvență mai mică de fs peste 2. Și putem să vedem de ce este asta. Acum, să presupunem că eșantionăm aici și aici și aici. Se pare că primim partea importantă. Alternăm suișuri și coborâșuri. Și, de asemenea, este clar că dacă eșantionăm, să spunem la frecvența completă, dacă avem un decalaj de aici până acolo între mostre, asta nu va funcționa, pentru că toate acele mostre sunt la fel. Deci, doar dacă uiți care este formula, te uiți la această diagramă și spui, ei bine, dacă în cele din urmă eșantionez unde-- jgheaburi și vârfuri, atunci am capturat forma de undă. Este un argument puțin periculos, pentru că dacă iau aceeași formă de undă și pred probe la aceeași frecvență, primesc asta, ceea ce nu este satisfăcător. Și, desigur, pot obține orice între ele dacă schimb doar faza eșantionării. Și de aceea este mai mic decât, nu mai mic sau egal cu. Deci trebuie să fie strict mai mic decât. OK, atunci dacă nu îndeplinim această cerință, avem aliasing. Deci de ce se numește aliasing? Iar aceia dintre voi care sunteți bine familiarizați cu acest lucru se pot duce la culcare pentru o clipă. Ne vom uita doar la asta aici. Deci iată o formă de undă. Și să presupunem, din nou, că eșantionăm, dar acum nu tocmai pe vârfuri, ci puțin offset. Deci avem-- în spațiul principal, avem o formă de undă cu frecvența f0. Și să presupunem că eșantionăm la un anumit interval, 1 peste delta. Și astfel eșantioanele pe care le vom obține sunt cosinus 2 pi f0 k 1 peste delta. Dreapta. Deci, acestea sunt mostrele noastre, să spunem. Și asta e... putem doar să înlocuim. Înlocuiește asta. Și acum, dacă adăugăm 2 pi la argument, nu se schimbă nimic, nu? De fapt, dacă adaug orice multiplu întreg de 2 pi la argument, obțin aceleași rezultate. Deci, de exemplu, aș putea... vreau să adun sau să scad? Va fi mai ușor dacă scad. OK, acestea vor fi în continuare aceleași mostre, corect, pentru că tocmai am schimbat faza cu un multiplu de 2 pi. OK, asta înseamnă că pot scrie asta. Și ceea ce înseamnă asta este că am început cu un val de frecvență f0. Și acum, spun că este la fel ca o undă de frecvență f0 minus fs, sau, de fapt, la fel ca-- cosinus este o funcție pară. Deci, dacă aș vrea, aș putea spune fs minus f0. Și să presupunem că aceasta este frecvența zero. Și iată f0-ul meu. Și aici este fs. Apoi spun că ceva la această frecvență fs minus f0 nu poate fi distins de ceva la f0 și, de asemenea, apropo, fs plus f0, dar nu sunt atât de îngrijorat de asta. Deci acum, imaginați-vă că f0 este mai mare. Deci presupun că este acolo. Ei bine, atunci acesta coboară, închide-l și așa mai departe. Deci, în mod clar, trebuie să întrerup lucrurile acolo. Atâta timp cât nu am niciun conținut de frecvență peste asta, nu voi avea nicio confuzie. Și se numește aliasing, pentru că acele alte frecvențe-- și există un număr infinit de ele-- arată la fel în eșantion. Observați, apropo, că asta înseamnă că nu puteți remedia acest lucru după eșantionare. Trebuie făcută înainte de prelevare. Și așa că există diverse kluges pentru a încerca și a face asta, care suprimă conținutul de frecvență mai mare. Dar ai comis deja păcatul. E prea tarziu. Nu mai sunteți în stare să distingeți frecvențele care au venit de aici sus de frecvențele de jos. Deci, și acesta este ceva ce cred că ar trebui să știm cu toții. OK, atunci vom folosi aproximativ filtru trece-jos, pentru că filtrarea cu adevărat trece-jos este foarte grea. Înainte de eșantionare, trebuie să filtram. Și asta este important când vorbim despre mai multe scale, pentru că nu putem doar să luăm fiecare al patrulea pixel și să presupunem că vom obține ceva sensibil. Ar fi un pic ca și proiectarea unui satelit de cartografiere a Pământului , ceea ce este foarte bun. Are o optică incredibil de bună, astfel încât fiecare pixel să corespundă unui punct de pe sol. Nu ar fi o imagine foarte utilă, pentru că acest pixel lovește piatra gri de acolo. Și acest pixel lovește masa. Și ar fi incoerent. Și ar fi un exemplu foarte dramatic de aliasing. Deci, acesta este un caz în care, de fapt, doriți ca lucrurile să devină încețoșate - suficient de neclare. OK, deci vom vorbi despre diferite moduri de estompare a filtrarii pre-eșantionare. Și așa vreau să încep prin a vorbi despre ceva numit imagine integrală. Așadar, o idee este, ce se întâmplă dacă ne convergem cu ceea ce voi numi un vagon, care este un filtru ca acesta? Practic, este o medie, nu? Luăm o medie de bloc. Și pentru a calcula media, vrem să calculăm suma. Deci, care este un mod eficient de a calcula suma? Ei bine, desigur, implementarea evidentă este că intrăm și pentru fiecare pixel din ieșire, aflăm căror pixeli din intrare corespunde , obținem acele valori, le adunăm și poate împărțim la numărul total de pixeli. Dar, evident, este scump, pentru că atunci numărul de calcule este aproximativ numărul de pixeli ori lățimea acelui filtru. Ei bine, există o modalitate foarte ușoară de a accelera dramatic acest lucru, care este utilizarea unei imagini integrale. Și o vom face mai întâi în 1D. Deci, să presupunem că avem un g pentru nivelul clasei. Avem o secvență, g de i. Și o vom transforma într-o secvență, G mare de i, unde un G mare de i este -- așa că am adunat nivelurile de la stânga la dreapta , ceea ce pare un lucru ciudat de făcut. Dar acum, înseamnă că dacă vrem suma de la k egal cu i la k egal cu j a celui original, putem obține doar -- corect, avem doar -- o scădere și independent de lungimea mediei blocului. În implementarea naivă, cantitatea de muncă merge cu lățimea mediei blocului. Ei bine, acum, nu mai este cazul. Este doar o singură operație. Deci, dacă vom face asta mult, atunci este foarte eficient să precalculăm această așa-numită imagine integrală. Și acesta este de fapt folosit destul de puțin. Desigur, cu imagini, avem de-a face cu 2D. Dar vă puteți imagina că putem efectua aceeași operație în 2D, unde, acum, valoarea din ieșire aici este suma tuturor pixelilor din acest dreptunghi. Apropo, desigur, cu pixeli, poate avem nevoie doar de 8 biți pentru a reprezenta nivelul de gri. Odată ce începem să le adunăm, avem nevoie de mai multe bucăți. Deci există câteva probleme legate de intervalul dinamic. Folosești virgulă mobilă? Folosești numere întregi pe 32 de biți... orice? Dar, evident, trebuie să estimăm care este maximul pe care îl vom obține atunci când adunăm toți pixelii și să presupunem că fiecare pixel este la valoarea sa maximă, și cetera, etc. Deci totul este destul de evident. OK, acum, în cazul 2D, ceea ce vreau să fac este de obicei să calculez un total pe un bloc ca acesta. Deci este o medie a blocurilor 2D. Și asta ar putea fi în scopuri de filtrare trece-jos aproximativă . Sau poate fi din alte motive. Deci, apropo, doar pentru că o numesc o imagine integrală, nu înseamnă că trebuie să fie derivată dintr-o imagine. Am putea, de exemplu, să avem gradient integral. Deci calculăm gradientul peste tot, care acum este un vector cu doi. Și efectuam aceleași operațiuni. Apoi obținem o matrice de doi vectori. Și acum, putem face lucruri cu asta. Și, de fapt, în unele procesări de recunoaștere de mare viteză, acesta este primul pas, în care estimați histogramele gradienților și apoi calculați folosind medii bloc de acest tip. Și este exact acest proces, doar făcut mai complicat, pentru că nu avem de -a face cu scalari. Și asta se potrivește bine pe GPU-uri. Deci este folosit pentru un pic de recunoaștere și așa ceva. Deci, să vedem. Să presupunem că vreau totalul peste acest dreptunghi. Cum îl pot calcula din imaginea integrală? Nu este complet evident, pentru că dacă iau doar valoarea de la acel colț, să presupunem că iau această valoare. Ei bine, acesta este totalul tuturor acestor lucruri. Deci nu asta vreau. Dacă iau valoarea din acest colț, acesta este totalul tuturor. Deci poate ar trebui să scad asta. Atunci s-ar putea să iau totalul la acest colț. Și asta este suma acestora. Ei bine, poate nu ar trebui să scad pe cea albastră... să mai iau o culoare. Dar trebuie să scap de partea de jos. Deci poate o pot scădea pe aceasta. Acum, dacă scad verdele și portocaliul din roșu, pe acesta l-am scăzut de două ori, cel albastru. Și așa că trebuie să-l adaug din nou. Deci, practic, obținem totalul peste acest dreptunghi adunând asta și asta și scăzând asta și asta. Deci și puteți extinde acest lucru și la dimensiuni mai mari, deși nu am văzut prea mult folos pentru asta. Deci asta înseamnă că fără... patru accesări la memorie și trei operații aritmetice, puteți obține totalul pentru acel bloc și independent de dimensiunea blocului. Deci nu este mai scump să faci o medie de 4 pe 4 decât peste 8 pe 8 sau invers. OK, deci și acesta este cu adevărat exemplul de nivel 0 a ceea ce este în acel brevet. Și vom vedea de ce. OK, acum, cât de bun este asta? Deci să presupunem că blocăm media astfel. Și apoi eșantionăm. Și încercăm să-l mulțumim pe Nyquist. Suprimăm cu adevărat toate acele frecvențe mai înalte? Ei bine, să ne uităm la asta. Deci puțină analiză Fourier -- când eram student, am fost învățat transformările Fourier în șase cursuri diferite. Și fiecare dintre ei a folosit o notație diferită - știi, frecvența în cicluri pe secundă față de radiani pe secundă. Împărțiți la 2 pi. Nu împărțiți la 2 pi. Și a fost foarte confuz. Așa că nu vă voi ține să obțineți corect multiplicatorii constanți cel puțin. Și apoi eu, mai târziu în viață, am început să fac ceva matematică. Și matematicienii au avut încă o altă cale, care este foarte sensibilă. Nu știu de ce nu l-au adoptat inginerii, care este versiunea unitară a unde împărțiți la rădăcina pătrată a lui 2 pi. Și apoi înainte și inversul sunt exact simetrice, cu doar schimbarea semnului. Dar oricum, OK, deci ce avem? Deci avem un bloc de, să spunem, cu delta pe care o facem o medie. Și putem face înălțimea acestui lucru 1 peste delta doar astfel încât atunci când obținem rezultatul, acesta să aibă aceeași mărime cu valoarea inițială. Și așa facem cu adevărat o medie mobilă. Și deci ce avem? Deci, acesta va fi de la minus delta peste 2 la plus delta peste 2 din 1 peste delta. Deci vom obține 1 peste deltă. Îmi imaginez că ai mai văzut asta înainte. Și astfel obținem... obținem o funcție sinc. Și, din păcate, nu pot scrie ca un sinc, pentru că din nou, matematicienii și inginerii nu pot fi de acord asupra definiției. Unul are un pi în el, iar celălalt nu. Și doar o va încurca. Așa că o voi lăsa așa. Deci ce înseamnă asta? Ei bine, asta înseamnă că atenuează frecvențele mai înalte, pentru că, în timp ce sinc continuă să se clătinească pe măsură ce mergem în omega, avem împărțirea cu 1 peste - cu omega. Deci scade invers cu frecvența. Asta e partea bună. Dar nu devine 0, decât în ​​locuri speciale. Și deci nu este o aproximare teribil de bună a unui filtru trece-jos. Dar ce este și mai rău este că nu ajunge la primul 0 suficient de repede. Deci, să vedem ce avem. Deci primul 0 este, desigur, în cazul în care argumentul sinusului este pi peste 2. Așa că am obținut-- și așa că la omega 0 este egal cu pi peste delta-- 2 pi peste delta-- într-adevăr-- care este de două ori frecvența avem pentru Nyquist. Deci, dacă o complotăm... deci iată ce vrem. Iată filtrul nostru trece-jos ideal. Și iată ce primim. Deci acesta este Nyquist. Și asta este ceea ce primim. Deci partea bună este că atenuăm frecvențele mai înalte. Partea proastă este că nu suntem agresivi în privința asta. Și o altă parte proastă este că de fapt atenuăm puțin unele dintre frecvențele pe care le dorim. Deci și de ce este asta? Ei bine, acest lucru este deosebit de relevant pentru noi în ceea ce privește camerele, pentru că asta face camera. Deci acesta este pixelul nostru. Și iată un alt pixel. Și astfel efectuează o operațiune de filtrare, pentru că fac o medie a luminii care vine peste întreaga zonă. Și asta e bine, pentru că efectuăm o filtrare trece-jos-- aproximativă trece-jos înainte de eșantionare. Nu este ideal, pentru că este acea funcție sinc, acea aproximare a acel blob? Nu, și este primul [INAUDIBIL]. Atunci de aceea avem nevoie de filtrare suplimentară, astfel încât să nu avem aliasing. OK, și deci un lucru pe care îl putem face este să găsim funcții de filtrare mai bune . Desigur, este probabil să fie mai scumpe din punct de vedere computațional. Deci, să începem cu mediarea blocurilor repetate. Bine, deoarece media blocurilor este atât de ieftin de calculat, poate o putem efectua de două ori în speranța de a obține ceva mai bun. Și, așadar, ceea ce vom face este să ne luăm funcția și să o convoluăm cu filtrul. Deci aceasta este imaginea. Acesta este filtrul nostru, care este un b pentru filtrul de mediere bloc. Și acum, hai să luăm asta și să o convocăm din nou. Acum, am menționat ultima dată că acest lucru este asociativ. Și așa putem scrie așa. Așa că, în loc să ne gândim la ea ca o convoluție cu vagon, ne putem gândi la ea ca la o convoluție a imaginii cu acest lucru, care este vagonul convolut cu un vagon. Deci și asta este această formă de undă triunghiulară, care este mai netedă. Deci asta e ceea ce tu... ai crede că ar fi benefic, că nu avem atât de mult conținut de înaltă frecvență. Deci, de fiecare dată când există o discontinuitate, înseamnă că există conținut de înaltă frecvență. Dacă este o funcție pas, atunci este 1 peste f. Dacă este doar o discontinuitate în derivată, în pantă, atunci este 1 peste f pătrat. Deci, acesta aici, ne așteptăm să scadă ca 1 peste f pătrat, pentru că acestea cad-- acestea suprimă 1 peste f fiecare dintre ele. Deci OK, bine, în domeniul transformării, desigur, va fi F ori B ori B, care este același cu FB pătrat. Deci aceasta este sinc pătrat. Deci această funcție, această filtrare este oarecum mai bună, pentru că acum luăm acest lucru la pătrat. Deci, când se apropie de 0, vom face asta. Oh, hopa. Nu, pătratul nu poate fi negativ. Deci scade la pătratul ratei. Deci, în loc de 1 peste f, scade ca 1 peste f pătrat. Și așa e mai bine. Dar nu este minunat. Și unul dintre lucrurile pe care le putem face este să o facem din nou. Putem face o secvență de mediere a blocurilor. Și din moment ce avem un mod destul de eficient de a face unul, nu este o nebunie să facem mai multe. Și, desigur, vom obține puteri mai mari ale funcției sinc, ceea ce va însemna că suprimăm mai bine frecvențele mai mari. Încurcăm unele dintre frecvențele benzii de trecere în acest proces. Deci probabil că nu vrem să mergem prea departe cu asta. Așa că am menționat că transformarea unui pas unitar este... ei bine, ceea ce putem dovedi cu ușurință, dar conectându-l în formula pentru transformarea Fourier. Și ce spune asta? Ei bine, asta spune că de fiecare dată când ai un pas, vei avea ceva care scade ca 1 peste frecvență. Și în imagini, desigur, avem de- a face cu două dimensiuni. Deci acest lucru se întâmplă atât în ​​x cât și în y. Deci, dacă avem pași în imagine, atunci ei vor produce un conținut de înaltă frecvență care nu scade teribil de repede. Așa că a fost o discuție aici cu mulți ani în urmă a unui matematician celebru de la Harvard, care a spus că a făcut o mulțime de imagini. Și luase transformata Fourier. Și a arătat că imaginile naturale au un spectru de putere care scade ca 1 peste f. Deci care a fost problema cu ea? Ei bine, a fost foarte bucuros să facă acest lucru pe multe imagini, pentru că folosea transformarea rapidă Fourier -- o face destul de eficientă. Ei bine, transformarea Fourier rapidă , desigur, este doar o implementare a transformării Fourier discrete. Iar transformata Fourier discretă presupune că datele dumneavoastră sunt periodice. Deci, dacă aveți... în cazul unidimensional, se spune că dacă aceasta este forma voastră de undă pe care o transformați, ceea ce vă uitați cu adevărat este aceasta, nu? Deci, ce înseamnă asta? Ei bine, înseamnă că, dacă nu ești atent, introduci o discontinuitate pe marginea pasului pe măsură ce se înfășoară. Și asta va produce un conținut de frecvență care scade ca 1 peste f. Deci, marele rezultat nu a fost o caracteristică a imaginilor naturale, ci o caracteristică a transformării Fourier discrete. Așa că ai grijă la asta. Deci, cum... aceasta este o problemă reală. Vezi asta din nou și din nou în ziare. Cum te descurci cu asta? Ei bine, ceea ce poți face este să faci lucrurile să se potrivească astfel încât diferite moduri-- unul se numește apodizare, adică înmulțirea cu o formă de undă care arată așa. Și asta înseamnă că la capete, ați tras imaginea în jos la 0. Și, desigur, se potrivește. Și acest lucru este destul de comun acolo. Oamenii își au numele pe aceste lucruri. Dar, practic, cea mai simplă este doar o formă de undă cosinus inversată. Și nu voi scrie formula. Este destul de evident. Doar faceți 1 minus cosinus al unui multiplu potrivit de frecvență și împărțiți la 2. Și obțineți acest filtru. Și asta are, de fapt, proprietăți foarte frumoase. Deci, aceasta este o abordare pentru a trata un DFT aplicat imaginilor. O altă abordare este să spun, ei bine, nu prea știu ce este în afara cadrului. Aceasta este atât de mult din imagine cât am primit-o. Și acum, mi se cere să ghicesc ce este acolo afară. Ei bine, ar putea fi așa. S-ar putea repeta periodic. Dar poate este o imagine în oglindă, nu? Nu foarte bine-- poate așa-- deci și asta e mai bine, pentru că acum, nu există nicio discontinuitate în luminozitatea în sine. Deci nu primești 1 peste j omega. Există potențial o discontinuitate în derivat, nu? Deci, asta înseamnă că trebuie să ne uităm la 1 peste f pătrat. De unde vine asta? Ei bine, dacă integrăm funcția de pas unitar, obținem rampa unității, o putem numi. Și transformarea sa este, desigur, pătratul, pentru că, practic, am combinat funcția pas cu ea însăși pentru a obține asta. Și așa este mai bine-- mult mai bine, pentru că acum scade ca 1 peste f pătrat. Încă nu ați rezolvat problema, ceea ce se datorează faptului că presupunem că este periodică. Și cum putem evita asta? Ei bine, putem face o imagine infinit de largă. Atunci nu avem această problemă. Dar asta, desigur, nu este chiar o opțiune. OK, deci vom analiza alte exemple de filtrare trece-jos aproximativă în 1D și apoi în 2D și vreau doar să vă reamintesc câteva proprietăți de bază de care avem nevoie. Una dintre ele este proprietatea de filtrare, proprietatea de cernere a impulsului unitar. Dreapta. Deci, impulsul unității este un lucru ciudat, pentru că nu este o funcție, corect, pentru că putem spune, OK, delta lui x este 0 pentru x nu 0. OK, vreau să spun, funcția este ceva, unde, pentru fiecare x, puteți spune care este valoarea. Și pentru impulsul unitar, putem face asta pentru orice, cu excepția [INAUDIBIL] Și atunci ce se întâmplă la x este egal cu 0? Ei bine, este infinit. Deci puteți vedea că există o problemă acolo. Iar modalitatea corectă de a trata asta este în ceea ce privește distribuțiile. Deci sunt aceste generalizări. Și avem nevoie de ei. Folosim impulsul tot timpul. Deci avem nevoie de el pentru asta. Dar avem nevoie de ele și pentru derivatele impulsului, care sunt și mai ciudate. Și așa cineva a remarcat odată că, în afară de Gaussian, nu există aproape nimic care să aibă o transformată Fourier, în sensul ca o funcție pe care o puteți nota. Aproape tot ceea ce este interesant include un fel de problemă, un fel de singularitate. Și așa am putea la fel de bine să ne obișnuim cu asta. Deci, cum ne descurcăm cu natura particulară a impulsului unității? Ei bine, acesta este drumul. Așa se definește. Aceasta este proprietatea sa. Și are sens, deoarece se presupune că acesta este 0 peste tot, cu excepția cazului în care argumentul său este 0. Și astfel singurul loc care contează este x este egal cu x0. Deci singura valoare a lui f care contează este f de x0. Și apoi singurul lucru care a mai rămas este scalarea. Ei bine, ideea este că am făcut impulsul unității astfel încât zona sa să fie 1. Și o modalitate pe care o găsesc foarte utilă să mă gândesc la aceste funcții -- Adică, impulsul este un lucru evident despre care știm cu toții. Dar devine mai dezordonat. Și așa e bine să ai un mod de a te gândi la ei. Deci, iată un mod de a gândi. Iată un vagon cu o suprafață unitară. Și acum, dacă fac epsilonul mai mic, devine mai îngust. Și devine mai sus. Și te poți gândi la impulsul unității ca fiind limita acestui lucru. Dar nu este corect din punct de vedere matematic să spui asta. Dar dacă vrei să știi care este efectul, să zicem, al convoluției cu impulsul unitar, poți lua convoluția cu acest lucru, pe care îl poți calcula. Este un lucru perfect valabil. Și apoi iei limita pe măsură ce epsilonul se transformă în 0. Deci, un lucru de reținut, totuși, este că nu este singurul mod de a o defini, aș fi putut la fel de bine să iau un gaussian, 1 peste -- probabil că am factor de scară greșit, așa ceva. Și din nou, devine mai îngustă și mai înaltă pe măsură ce epsilonul devine mai mic. Și definește același lucru în limită. Așa că nu face această poză prea literal. Este de ajutor. Dar nu este singurul răspuns. Și poate fi cel mai ușor de calculat. Dar bine, ce facem cu asta? Ei bine, putem juca câteva jocuri cu combinații de impulsuri. Deci, de exemplu, OK, oh, da. Am nevoie de aia. Și ce sunt acestea? Ei bine, acestea sunt doar impulsuri schimbate. Deci, unul dintre ele este la minus epsilon peste 2. Iar celălalt este la plus epsilon peste 2. Și mărimea lor este 1 peste epsilon, unde magnitudinea este aria sub impuls. Este ceea ce obținem când îl integrăm. Deci, acesta este impulsul unității și apoi avem impulsuri din diferite zone aici. Deci asta corespunde. Și, desigur, este doar f de x plus epsilon peste 2 minus f de x cu epsilon. Și în limită, asta e derivata. Deci putem... ce rost are? Ei bine, ideea este că am conectat convoluția cu derivate, corect. Și astfel putem lua derivata convolând cu aceasta. Și asta nu ar trebui să fie surprinzător, pentru că această formulă se potrivește cu asta, cu excepția faptului că aceasta este inversată, nu? Te-ai aștepta ca cel din dreapta să fie pozitiv și cel din stânga negativ, pentru că luăm pozitivul de plus epsilon peste 2 scăzând 1 cu minus epsilon peste 2. De ce? Ei bine, pentru că în convoluție, răsturnăm. Întoarcem înainte de a schimba, înmulțim și adunăm, nu? Dar punctul important este că există o legătură strânsă între operatorii invarianți cu deplasare liniară și operatorii derivați. Și putem trata derivatele practic ca convoluții. Și doar pentru a ne împrospăta memoria... nu? Așa că unul dintre cei doi este răsturnat. Deci, acesta merge de la stânga la dreapta la fel cum face f din x. Și acesta merge în direcția inversă, în raport cu această variabilă inactivă. Observați, din nou, că trebuie să fim atenți cu x. Am dori să scriem integrala bla, bla, bla, dx. Dar nu putem face asta, pentru că aici este parametrul lui x. Deci avem nevoie de o variabilă dummy. Așa că introduceți niște litere grecești. Și, desigur, pentru că este comutativ, acest lucru ar trebui să funcționeze și invers. Dar, în orice caz, unul dintre cele două trebuie să fie răsturnat. Și așa este diferit de corelație. Deci, corelația este exact același lucru cu convoluția, cu excepția faptului că nu răsturnați lucrurile. Și de aceea, acolo sus, arată puțin ciudat, pentru că ne așteptăm ca impulsul pozitiv să fie pe dreapta. OK, revenim la ceva ce am menționat ieri, care este o modalitate de a face față faptului că media pixelilor nu este o aproximare foarte bună a unui filtru trece-jos-- deci, în cameră, obținem un anumit avantaj din faptul că că nu facem mostre punctuale. Luăm o medie pe suprafața pixelului. Asta ajuta. Dar, după cum am văzut, se oprește la... undeva am văzut că își oprește 0. Primul 0 este de două ori frecvența la care Nyquist spune că ar trebui să fim. Așa că ar trebui să adăugăm o filtrare trece-jos suplimentară . Și nu, nu o poți face digital după ce ai făcut imaginea, pentru că în acel moment, ai confundat aceste frecvențe. Toate aceste a.k.a. s- au prăbușit într-unul singur. Și nu știți cât a venit dintr-o contribuție și cât a venit dintr-o altă contribuție - trebuie făcut în domeniul analogic înainte de a eșantiona. OK, deci este cam dificil să faci asta, pentru că avem 10 milioane de pixeli. Și încerci să faci o operație analogică care elimină o parte din conținutul de înaltă frecvență. Și am menționat că o modalitate de a face acest lucru a fost utilizarea acestor materiale birefringente. Și ai nevoie doar de un strat foarte subțire. Așa că cristalul pe care l-am adus ar devia razele cu o cantitate substanțială, cum ar fi un sfert de inch sau ceva de genul. Și le-am ales pe cele mari doar ca să poți vedea efectiv acel efect. Dar aici, vorbim despre pixeli care au o lățime de 5 microni. Și atunci când facem vreo medie și deviație, vorbim despre ceva care se deviază cu-- nu știu-- 5 microni, 2 microni, în acel interval. Deci filtrul, de fapt, din materialul special poate fi foarte subțire. Tu doar ca să te asiguri că îl tăiați în modul corect în orientarea cristalografică. Dar asta e problema lor. Problema noastră este să înțelegem ce face. Deci este puțin ca formula noastră pentru derivată, cu excepția faptului că nu există niciun minus, nu? Deci ce este asta? Ei bine, ceea ce spunem este că vom avea două imagini deplasate. Și dacă am avea doar o singură funcție delta, atunci aceasta ar fi operația de identitate, cu excepția unei schimbări. Și așa că acum, avem două imagini suprapuse care sunt doar ușor deplasate în cantitate mică. Și putem modela asta ca o convoluție cu două impulsuri, dintre care unul schimbă imaginea pentru simetrie, astfel încât răspunsul să iasă ca un număr real. Ne place să o facem simetrică. Și așa o va muta puțin spre dreapta. Iar celălalt s-a deplasat puțin la stânga. Și asta face acest filtru special, astfel încât atunci când te uiți la matricea reală de pixeli, nu mai este imaginea focalizată originală. Acum aveți două versiuni ușor modificate. Și deci cât de bine funcționează? Ei bine, luăm transformata Fourier, nu? Deci luăm... și asta va fi 1/2... epsilon. Și acesta este cosinusul de... ca să nu scadă cu frecvența. Ei bine, se întâmplă aproape de origine. Deci haideți să vedem cum arată. Cu sinc, a scăzut cu 1 suprafrecvență. Acest lucru continuă să meargă. Dar scade aici. Și care este primul 0? Este pi peste epsilon. Deci dacă vrem... cum alegem epsilonul? Ei bine, avem multe diplome. Practic, putem decide cât de groasă să facem această farfurie. Nu suntem limitați să facem epsilon egal cu distanța dintre pixeli sau egal cu 1/2 distanța dintre pixeli. Și Canon și Nikon au propria lor idee despre care este valoarea ideală. Oricum, ceea ce face asta este acum că reduce frecvențele înalte. Din păcate, există asta. Apoi mai sunt și alte frecvențe care nu sunt tăiate. Care-i povestea cu asta? Ei bine, ideea este că acesta funcționează cu celălalt filtru trece-jos, filtrul de medie a blocurilor, astfel încât, da, din păcate, acest lucru extrem de simplist care face doar două copii ale imaginii are această proprietate. Dar e în regulă, pentru că când ieșim aici, celălalt filtru este la 0, astfel încât cei doi împreună să facă o treabă mai bună. Adică, nu aș spune că este perfect. Puteți obține în continuare mai multe efecte atunci când aveți un conținut de înaltă frecvență în imagine, dar mult mai puțin decât ați avea fără acest filtru. Apropo, desigur, ai nevoie de două dintre ele, pentru că ai x și y. Deci, aveți de fapt două dintre aceste plăci, una rotită cu 90 de grade față de cealaltă. Și acum, vedeți patru imagini suprapuse una peste alta. Și, dar puteți trata acest lucru complet separat în x și y. Deci această analiză nu trebuie refăcută. Același lucru se întâmplă în direcția y. Și așa ajungem cu un filtru anti-aliasing pe care unii oameni îl scot, pentru că nu le place modul în care suprimă frecvențele înalte. Bine, deci încerc să leagă acest lucru înapoi de brevet... deci toate acestea aduc înapoi 603 sau oriunde ai învățat transformările Fourier și sistemele liniare? OK, deci care a fost ideea brevetului? Deci ideea brevetului a fost un pic asemănătoare cu imaginea integrală. Există vreo modalitate inteligentă de a reduce calculul, deoarece pentru a obține o filtrare bună trece-jos, avem tendința de a avea nevoie de suport mare? Și dacă implementați lucrurile în mod evident, cantitatea de calcul crește liniar cu dimensiunea suportului sau, în cazul imaginilor, în mod pătratic, cu dimensiunea suportului. Deci e bine să ai un mic sprijin. Și asta nu înseamnă îngust. Înseamnă doar că aveți doar câteva valori diferite de zero. Și deci hai... așa că s va fi integrala noastră. Și se numește s, pentru că în versiunea discretă, vom avea o sumă. Deci ce este? Ei bine, practic este o funcție pas-- arată așa. Deci ne interesează convoluția cu asta. Și asta ne oferă, așa că hai să vedem ce face asta. Dreapta? Așa că am folosit doar formula pentru convoluție. Conectam această funcție. Sau cum am spus ultima dată când am fost acolo, le putem întoarce. Le putem schimba, deoarece convoluția este comutativă. Și de ce facem asta? Pentru că acum, putem schimba limitele integrării. Oh, îmi pare rău. Deci, acest lucru ne va limita la psi mai mare decât 0. Deci limitele s-au schimbat. Așa că ajungem doar cu integrala. Ei bine, există un semn flip in, care corespunde convoluției care schimbă ordinea. Deci OK, se pare că a fost unul de prea mult. Bine, oricum, lucrul important este că am spus deja cum putem reprezenta derivata în termeni de convoluții. Ei bine, iată modul în care putem reprezenta integrarea. Și apropo, transformata Fourier a impulsului unității este... Am uitat dacă este 1 peste j omega sau 1 peste minus j omega. OK, deci avem acel operator. Și apoi avem operatorul derivat, pe care l-am trecut undeva mai devreme. Și are o transformată Fourier care este j omega. Și nu este prea surprinzător, acestea sunt inverse unul față de celălalt, pentru că, dacă ar fi să-i implic pe cei doi, ceea ce fac este să fac un operator care mai întâi integrează și apoi diferențiază. Și, desigur, aceasta este identitatea. Și în domeniul transformării Fourier, convoluția corespunde produsului. Deci, în domeniul transformării, obținem produsul din asta și asta, care, desigur, este 1. Deci, este consecvent. OK, deci cheia, într-adevăr, este că acești operatori pot fi tratați ca convoluții. Și pot trece la derivata a doua. Pot să mă uit la derivata a doua și o pot face în mai multe moduri diferite. Una este că este prima derivată implicată în sine. Așa că pot lua acele două impulsuri și le pot implica cu un alt set de două impulsuri. Și primesc ceva care are trei impulsuri, modelul standard, 1 minus 2, 1 - ceva de genul ăsta. Deci acesta ar fi D pătrat. Și, evident, pot lua astfel derivate de ordin superior. Și în ceea ce privește domeniul transformării, eu doar... convoluția devine multiplicare. Așa că, dacă fac două dintre acestea, voi multiplica asta de la sine. Și primesc minus omega pătrat. Deci derivata a doua corespunde cu minus omega pătrat. OK, așa că acum, vom aplica acest lucru la problema noastră de filtrare. Bine, deci să presupunem că avem un filtru pe care îl numim F. Încercăm să- l demontăm și să-l punem la loc într-un mod care reduce calculul. Acum, am spus că derivata integralei este identitatea. Deci, cu siguranță putem scrie lucrurile așa. Și apoi putem folosi diverse proprietăți precum comutativitatea. Deci, să începem de acolo. Și apoi putem folosi asociativitatea pentru a o scrie în acest fel. Deci ceea ce spune acest lucru este că pentru a converge cu filtrul F, pentru a aplica filtrul F, ceea ce putem face este să aplicăm în schimb acest filtru. Să-i spunem F prim. Și nu primim răspunsul pe care ni-l dorim. Dar putem obține răspunsul pe care îl dorim prin integrare sau vreun agent de la stânga la dreapta, nu? Și de ce ar fi asta interesant? Ei bine, asta ar fi grozav dacă acesta ar fi rar. Adică, asta nu se întâmplă întotdeauna. Dar aici putem aplica această metodă în cazul în care funcția noastră F este rară. Și nu F este rar, ci derivatul său. Și când se întâmplă asta? Ei bine, se întâmplă când este o constantă de cele mai multe ori. Deci ne gândim în special la spline. Deci ne gândim la filtre care au o formă de undă convenabilă. Dar îl împărțim în secțiuni. De exemplu, iată o aproximare a unui gaussian, să zicem. Și în fiecare dintre acestea, este un polinom. Și astfel, o derivată de ordin superior va fi 0. Deci, dacă este un polinom de ordinul n-lea , trebuie să repet acest proces de n ori, n plus de 1 ori, deoarece n plus derivata întâi a unui polinom de ordinul n-lea este 0. Și apoi, ceea ce se întâmplă este că primesc 0 aici, 0 aici, 0 aici. Deci hopa. Asta e rău. Totul este 0. Dar ai ceva aici la tranziții, nu? Deci asta vreau să spun prin rar. Deci, acum, în cazul acestei spline de trei secțiuni, avem doar patru zone, unde este diferit de zero. Și astfel calculul va fi mult mai eficient. Nu primim răspunsul pe care ni-l dorim. Dar putem obține răspunsul pe care îl dorim luând rezultatul și însumându-l, integrându-l. Și, desigur, dacă am luat n plus 1 derivate înainte, trebuie să facem n plus 1 însumare. Dar însumarea este banală. Doar că ai un acumulator. Alergi de la stânga la dreapta. Începeți cu 0. Continuați să adăugați nivelurile de gri. Și acum, s-ar putea să trebuiască să vă faceți griji cu privire la intervalul dinamic. De câți biți aveți nevoie pentru a reprezenta asta? Dar nu ne vom face griji pentru asta. Bine, hai să facem un exemplu foarte simplu. Deci și din nou, de obicei, pentru a face o treabă bună, s- ar putea să aveți nevoie de derivate de ordin mai mare. Deci, să presupunem, de exemplu, că încercați să aproximați funcția sinc. Asta ar fi foarte important pentru noi, pentru că știm că este cel ideal. Dacă am putea obține vreodată funcția sinc, am avea un filtru trece-jos perfect. Dar haideți să o aproximăm. Și ce este în neregulă cu funcția sinc așa cum se află? Ei bine, principala problemă este că continuă pentru totdeauna. Și așa că trebuie să o truncăm cumva. Și trebuie să o reprezentăm. Și cât de aproape vrem o aproximare? Asta nu este foarte simetric. Deci haideți-- OK, deci iată cum-- arată puțin ca funcțiile sinc, nu, desigur, continuă pentru totdeauna. Dar o putem aproxima astfel. Și probabil că vrem o aproximare cubică. Deci, în fiecare dintre aceste patru zone, curba este descrisă de un cubic. Și există cubi diferite pentru diferite zone. Și asta este toată ideea de spline. Și acum, dacă noi... este cubic. Deci, dacă luăm derivata a patra, va fi 0 peste tot, cu excepția joncțiunilor. Deci, asta înseamnă că dacă facem asta, folosim asta pentru filtrare, putem lucra relativ puțin , pentru că în loc să avem-- să spunem că distanța dintre pixeli este așa. În loc să avem toate acele valori diferite de zero, avem numai valori diferite de zero în acele patru locuri. Și aceasta, apropo, este folosită intens în toate tipurile de software de manipulare a imaginilor, așa cum Photoshop ar interpola imagini folosind această funcție, cu excepția celor 2D. Deci se numește-- în 2D, se numește bicubic, pentru că facem cubic în x și cubic în y. Dar nu au considerat un adevărat caz 2D, pentru că este mai multă muncă. Deci OK, deci spune, de exemplu, că îți faci poza. Și descoperi, oh, am avut camera rotită cu 2 grade. Și apoi spui, OK, Photoshop sau oricare ar fi software-ul tău preferat de manipulare a imaginii, rotește-l cu minus 2 grade. Ei bine, desigur, acum, pixelii imaginii rotite nu se vor alinia cu pixelii din noua imagine. Și deci trebuie să interpolați. Trebuie să-ți dai seama ce valori să folosești. Și ai putea folosi cel mai apropiat vecin. Ei bine, cel mai apropiat vecin este destul de rău. Puteți vedea pixelarea. Și în special, dacă o repeți -- spuneți apoi spuneți, oh, de fapt, erau 2 grade și jumătate. Lasă-mă să-l întorc încă 1/2 grad, ceea ce este probabil o idee proastă. Vrei să te întorci și să faci 2.5. Dar să presupunem că o faci secvențial, apoi la fiecare pas, se va deteriora puțin. Și dacă folosești cel mai apropiat vecin, se va deteriora foarte mult. Deci, cel mai bun lucru este interpolarea liniară, care este ieftin de calculat. Dar nu este la fel de bună cum vom vedea în acest moment ca această metodă. Și atunci ai putea spune, ei bine, de ce să nu mergi și mai departe? De ce să nu aproximați funcția sinc cu ceva care arată așa - mai aveți o mișcare în ea? Și poți face asta. Dar din câte știu, acest lucru nu a prins niciodată din cauza costului de calcul. Deci, dacă te gândești să faci asta în 2D, trebuie să ne uităm la patru locuri în 1D. În 2D, există o grilă de 4 pe 4. Așa că trebuie să ne uităm la 16 pixeli vecini pentru a face o treabă bună. Ei bine, cu acesta, avem nevoie de 1, 2, 3, 4, 5, 6, 7. Este corect? Oricum, mai mult... și până când o vei împotrivi, mult mai mult. Deci și nu există o răsplată uriașă. Nu primești imagini care arată brusc mult mai bine bicubice. Și bicubic a fost inventat de IBM. Și a fost folosit în procesarea timpurie a imaginilor prin satelit. OK, deci să presupunem că ne întoarcem la media blocului simplu doar pentru a putea face numerele mai ușor. Nu, nu vreau să fac asta... fă alta. Deci, din nou, caz 1D - și acum, să presupunem că vrem o medie pe bloc de patru. Ei bine, să începem cu... există o problemă. Trebuie să facem niște presupuneri cu privire la ceea ce este în afara intervalului care ne este dat. Deci, să presupunem că este 0. Și, la un moment dat, când suntem aici, vom obține 0. Și apoi schimbăm 1. Și luăm media acelui bloc și obținem 2. Și trecem cu 1. Primim 3 și 6. Și apoi obținem... mai bine scriem de aici înainte să greșesc... 11, 18. Nu, asta e suma. Îmi pare rău. Acesta este lucrul greșit-- 11, 16, 16, 13, 10, 6, 7. Deci, aceasta este implementarea naivă a convoluției. Pur și simplu schimb acest bloc și adun tot ce se află sub bloc. Deci, lasă-mă să o fac altfel, ceea ce în acest caz, nu ne salvează foarte mult, pentru că este un exemplu foarte scurt. Deci, cealaltă modalitate este să adăugați de la stânga la dreapta-- 2, 3, 6, 11. Și apoi 7 este 18 și 19, 19, 21 , 24, 26, punct, punct, punct. Și acum, scad. Deci voi lua această valoare și voi scădea valoarea patru înapoi. Deci primesc 2. Scădeți această valoare. Primesc 3. Scădeți acesta, primesc 6, 11. Și apoi, până la 18, obțin 18 minus 2 este 16. Și 19 minus 3 este tot 16. Și 19 minus 6 este 13. Și puteți vedea cum funcționează. Și în acest exemplu, nu a cumpărat atât de mult. Dar dacă facem o medie pe blocuri pe un segment mare, aceasta ar putea fi o economie uriașă. Și dacă o facem în 2D pe imagini, cu atât mai mult. BINE. PUBLIC: Cum ajungem [INAUDIBIL]? BERTHOLD HORN: Pentru că există o... avem... unde am fost? PUBLIC: [INAUDIBIL] BERTHOLD HORN: 18. Oh, aici sus? PUBLIC: [INAUDIBIL] BERTHOLD HORN: Adăugăm 0 la un moment dat. Acestea s-ar putea să nu fie aliniate exact... oh, am greșit? OK, 2, 3, 6 și-- deci aceasta este 16. Această sumă este 16. Și apoi următoarea sumă este, de asemenea, 16. Vedeți, atunci pierdem un 1 în stânga, dar adăugăm 1 pe dreapta. Deci, Doamne, pentru un minut , am crezut că întreaga metodă a fost greșită. Și ar trebui să renunțăm și să-l concediem pe persoana care a scris acel brevet. Dar nu, din fericire, funcționează. Deci OK, nu cred că voi face alt exemplu. E prea plictisitor. Deci interpolare liniară... așa că am adus în discuție interpolarea cubică și am cântat laudele ei. Deci ar trebui să spun ceva despre interpolarea liniară. Și nu ne gândim la interpolarea liniară ca având vreo legătură cu convoluția. Dar, desigur, ne putem gândi la asta. Deci, din nou, să presupunem că avem mostre pe grila stradală. Și apoi creăm o funcție care conectează acele puncte. Și cel mai simplu mod este doar să desenezi linii drepte. Și aceasta este interpolare liniară. Acolo, desenăm qubiți. Bine, deci aceasta este formula care ne oferă acea linie dreaptă. Deci, în primul rând, observați că este liniar în x. Deci este o linie dreaptă. Și la punctele importante, și anume 0 și 1, ne oferă valoarea corectă. Deci, la 0, obținem-- la x este egal cu 0, obținem f de 0. Asta ne dorim. La x este egal cu 1, obținem f de 1. Deci aceasta este acea linie. BINE. Acum, asta corespunde convoluției cu acea funcție. Și te las pe tine să-ți dai seama. Ar trebui să fie clar după ce am făcut. Și acesta, la rândul său... acest triunghi, la rândul său, este convoluția acelor două vagoane. Și asta e ușor de văzut, pentru că luăm unul dintre ele. Îl răsturnăm. Asta nu face nimic. Și apoi îl glisăm sub celălalt. Și inițial, există foarte puțină suprapunere. Suprapunerea crește liniar până când suntem chiar deasupra ei. Și apoi scade liniar până când coborâm capătul din dreapta. Deci convoluția celor două vagoane este chestia aia. Deci, apropo, puteți vedea că, într-un anumit sens, corect, doar uitându-vă la asta, este o metodă de interpolare inferioară celei care utilizează acea aproximare a funcției sinc. Și are o serie de proprietăți urâte. Una dintre ele este că calitatea este diferită în apropierea punctelor de eșantion decât, să zicem, în mijlocul dintre ele. De ce este asta? Ei bine, să presupunem că e zgomot în imagine. Apoi, dacă sunt aici chiar deasupra punctului de eșantionare, moștenesc doar zgomotul măsurătorii acelei imagini. Să spunem că este sigma. Deci există un fel de variabilitate sigma. Acum, dacă sunt la jumătatea distanței dintre ele, iau media acestor două valori. Și așa e zgomot în asta. E zgomot în asta. Dar variația zgomotului adaugă. Deci, ceea ce am găsit este că primesc sigma pătrat plus sigma pătrat pentru varianța mea, care este 2 sigma pătrat. Deci abaterea standard... deci aceasta este varianța. Deci, abaterea standard a rădăcinii pătrate de 2 ori sigma - deci zgomotul din rezultatul interpolat este diferit atunci când sunt în locuri diferite în această tranziție. Acum, acest lucru este valabil și pentru interpolarea cubică. Dar este un efect mult mai mic. În cazul interpolării liniare, faceți o medie a două valori independente de zgomot când vă aflați la mijloc. Deci ai o reducere a zgomotului. Dar când stați chiar deasupra mostrelor originale, obțineți efectul complet al zgomotului de măsurare a imaginii. Deci este un efect cam enervant. OK, deci în ceea ce privește transformarea, știm că această transformare este sinc. Și această transformare este sinc în domeniul frecvenței. Și așa ajungem la pătrat. Deci și am vorbit despre sinc pătrat. Deci, acesta nu este un filtru trece-jos îngrozitor de bun. Este mai bine decât o singură etapă. Este mai bine decât... oh, așa că am menționat că cea mai crudă metodă este cel mai apropiat vecin. Deci, o întrebare interesantă este, căreia îi corespunde cel mai apropiat vecin? Deci să ne gândim la asta. Deci îl avem pe cel cubic. Și avem interpolarea liniară. Și cum rămâne cu cel mai apropiat vecin? Ei bine, cu cel mai apropiat vecin, cum ar arăta poza mea este... să vedem. Să presupunem că următoarea valoare este aici. Deci, cu cel mai apropiat vecin, voi primi acești pași. Deci este o constantă pe bucăți. Aici avem ceva liniar pe bucăți. Și în cazul interpolării cubice, avem ceva care este cubic pe bucăți. Și vă puteți întreba de ce nu există un pătratic pe bucăți. Dar asta e o poveste lungă. Deci nu facem asta. Deci, acesta este rezultatul pe care îl obținem de la - și puteți vedea că acesta este în mod evident inferior interpolării chiar și liniare. Și apoi cel mai apropiat vecin corespunde convoluției cu vagonul. Dacă te gândești la asta, are sens. Te gândești la fiecare dintre probe ca la un impuls. Și acum, îi convocăm pe cei cu un vagon. Și asta va crea o cutie ca aceasta și o cutie ca asta și o cutie ca aceasta. Deci fiecare dintre aceste impulsuri creează o cutie. Și le-ai pus împreună. Aveți interpolare liniară - rezultatul interpolat al celui mai apropiat vecin . Și astfel, într-un anumit sens, interpolarea liniară face asta de două ori. Este de două ori mai bun, într-un fel. Este pătratică în domeniul transformării. Bine, deci atâta timp cât trăim în coordonatele imaginii, x și y, le putem trata independent așa cum am făcut, de exemplu, cu interpolarea. Am spus, ei bine, vom folosi o spline cubică în x și o spline cubică în y și așa mai departe. Dar continuăm să spunem că într-adevăr, lucrurile ar trebui să fie... rotația este simetrică. Nu există o direcție preferată în imaginile naturale. Și acest lucru nu este în întregime adevărat, pentru că adesea aliniem lucrurile cu un orizont. Și apoi avem structuri create de om, care sunt adesea dreptunghiulare. Dar, într-un anumit sens, nu ar trebui să fie cu adevărat o părtinire specială. De ce am ales un sistem de coordonate pixel pătrat sau dreptunghiular ? Și dacă, în schimb, ne gândim la o situație de rotație asimetrică? Și una dintre întrebările care apar este, care este echivalentul filtrului trece-jos? Așa că ne putem imagina cu ușurință un filtru trece jos ca acesta. Deci u și v sunt componentele de frecvență corespunzătoare lui x și y. Și aici, avem un filtru trece-jos în direcția x și un filtru trece-jos în direcția y. Și acesta este un mod legitim de a gândi la limitarea intervalului de frecvență, dar nu este simetric rotațional. Deci, întrebarea mai interesantă este... vreau să merg... da. Ce se întâmplă dacă avem un filtru trece-jos care este simetric rotațional? Care este adevăratul echivalent bidimensional cu ceea ce am vorbit în 1D? Și așa că această funcție... o voi numi pastile. Cred că nimeni nu mai știe ce sunt cutii de pastile, deși bătrânii din zilele noastre au adesea un fel de cutie de pastile. Așa că își amintesc dacă și-au luat medicamentele. Dar acele cutii sunt dreptunghiulare. Nu despre asta vorbesc... vorbesc despre o chestie rotundă. Privită din asta... vedere în perspectivă ar fi așa. Deci valoarea sa aici este 1. Și valoarea sa aici este 0, nu? Trece de toate acele frecvențe joase. Și nu trece de frecvențe înalte. Și îi poți găsi transformarea. Dar o voi scrie doar, pentru că este oarecum plictisitor. Deci, de fapt, transformarea inversă, corect, pentru că trecem de la domeniul frecvenței la celălalt domeniu, cu excepția transformării destul de simetrice. Și avem un obiect simetric rotațional. Deci, în acest caz, nu contează deloc. OK, deci ce este rho? Ei bine, asta este într-un sistem de coordonate polare în domeniul spațial. Și v-ați imagina că transformarea inversă a acesteia ar trebui să fie și asimetrică rotațional. Si e. Și dacă mergeți de-a lungul oricărei raze, acesta va varia ca acest raport, unde J1 este funcția Bessel de ordinul întâi . Și aceasta este o funcție celebră în optică. De exemplu, când Airy a vorbit pentru prima dată despre rezoluția unui microscop, el a aflat că funcția sa de răspândire a punctului, răspunsul la un impuls, este aceea. Și apoi celebra lui ecuație pentru rezoluție se bazează pe primul 0 al acestei funcții. Deci, acesta este echivalentul, într-un anumit sens, al funcției sinc. Și dacă îl tragem-- acum, dacă îl pun pe tablă, va arăta exact ca și funcția sinc, pentru că are un vârf central. Și merge la 0 și apoi iese pe cealaltă parte și moare. Și ar trebui să te uiți la valori pentru a vedea că este diferit. Deci, există două moduri de a, în care este diferit. Unul este că primul 0 este 3,8371, punct, punct, punct mai degrabă decât la pi. Și zerourile nu sunt multipli ai primului, deși tind să fie din ce în ce mai aproape de periodic. Și celălalt lucru este că scade -- deci în funcția sinc, scade ca 1 peste f, corect, pentru că avem semnul în partea de sus care este întotdeauna între plus 1 și minus 1. Și împărțim la frecventa. Deci, funcția sinc scade ca 1 pe distanță. Aceasta scade ca 1 peste ceva la 3/2, nu? Nu-l am. Ei bine, deci scade de fapt un pic mai repede decât ar fi făcut-o sinc. Deci, acesta este filtrul trece-jos ideal pentru o imagine. Și asta în 2D. Și am arătat doar secțiunea transversală a acesteia. Dar rotația sa este simetrică cu această secțiune transversală. Și atunci când privești printr- un microscop, de exemplu, într-un singur punct de lumină și ar trebui să trasezi câmpul electric în planul imaginii, ar arăta așa. Acum, valori negative, luminozitate... Ei bine, treaba este că nu simțim câmpul electric. Simțim puterea. Simțim pătratul. Deci, în ceea ce privește luminozitatea imaginii, avem de fapt pătratul acestuia. Primim asta și așa mai departe. Iar criteriile de rezoluție ale lui Airy se bazează pe acest prim 0. Și spune, dacă aveți două obiecte care sunt atât de îndepărtate unul de celălalt, puteți spune că sunt un fel de două obiecte, pentru că al doilea obiect - blob-ul său ar fi ceva ca asta. Și este în mod evident arbitrar. Dar este un număr util de avut în vedere. Bine, deci este un fel de îngrijit. Și duce la altceva, adică transformarea Fourier este simetrică, destul de mult, înainte și înapoi. Deci iată, am luat... să vedem. Am luat transformata Fourier inversă a ceva din domeniul frecvenței. Și avem chestia asta cu funcția Bessel. Acum, când vorbim despre defocalizare, vorbeam în principiu despre cutii de pastile. Deci hai să facem asta. Și acum, asta este în domeniul spațial. Am spus că dacă imaginea ta nu este focalizată, convoluți cu o cutie de pastile în domeniul spațial, nu? Amintiți-vă, am avut obiectivul. Și obiectivul a adus lumină la un focus. Și, din păcate, avionul nostru de imagine era în locul greșit. Așa că am tăiat acel con de lumină. Și apoi obținem un model ca acesta. Iar raza depinde de cât de mult ne focalizăm. Să-i spunem R. Acum, de data aceasta, valoarea dinăuntru aici nu este 1. Este 1 peste pi R pătrat. De ce? Ei bine, vreau ca integrala să fie 1, pentru că, practic, toată energia care venea în acest punct este acum răspândită în această zonă. Și dacă ies mai mult din focalizare, este răspândit pe o zonă mai mare. Așa că ar trebui să mă normalizez în acea zonă. Acum, din cauza simetriei transformării Fourier, putem doar să scriem răspunsul, deoarece dacă pilulul din domeniul frecvenței se transformă în acel lucru cu funcțiile Bessel în domeniul spațial, atunci o pilulă din domeniul spațial ar trebui să se transforme în acel lucru Bessel funcționează în domeniul frecvenței. Deci asta este foarte important. Aceasta este ceea ce face defocalizarea. OK, și puteți vedea că avem o scădere a conținutului de înaltă frecvență. Dar, de asemenea, omorâm unele frecvențe complet, corect, din cauza acestor zerouri. Deci, dacă ar fi să trasez energia în domeniul frecvenței, m-aș aștepta să văd o zonă, unde este de fapt 0, și o altă zonă, unde este de fapt 0 și așa mai departe. Și asta funcționează. Așa că l-am pus pe un student euro să facă un DSLR și să facă poze cu... nu știu dacă... memorialul celor căzuți în centrul clădirii 10. Și apoi a comandat... acum, acesta este un Canon care vă permite pentru a controla lentila. Așa că a poruncit obiectivului să facă un pas, a făcut o altă poză, a poruncit obiectivului să facă un pas, a făcut o altă poză. Și așa a primit un teanc întreg de imagini care sunt în diferite grade de defocalizare. Și una dintre ele este destul de concentrată. Acum, din păcate, Canon nu vă spune cât de mare este treapta. Deci, o parte din exercițiul lui a fost, poți să-ți dai seama care este dimensiunea pasului? Ei bine, poți dacă poți să-ți dai seama cât de mari sunt aceste cutii de pastile. Și cum a făcut asta? Ei bine, s-a uitat la domeniul frecvenței. Și în domeniul frecvenței, odată ce știi unde este acest inel de zerouri, ai terminat. Puteți calcula raza. Puteți calcula R. Și astfel a putut determina cum s-a schimbat R pe măsură ce a crescut poziția lentilei. Și apoi știind deschiderea obiectivului, a putut calcula dimensiunea pasului. Și bine, ei bine, nu este chiar atât de simplu, pentru că există zgomot. Deci nu este ca și cum vă puteți aștepta ca acesta să fie exact 0. Dar dacă doar trasați asta ca o imagine, o priviți ca pe o imagine, există un inel întunecat și întunecat. Și apoi mai este un inel întunecat. Și apoi poți să-l vezi. Există un alt efect, și anume că într-un obiectiv ideal, acesta este exact ceea ce ne-am aștepta să obținem. Dar, în practică, așa cum am menționat, lentilele au întotdeauna un compromis între diferite probleme - aberații cromatice, aberații sferice, astigmatism și așa mai departe. Deci, funcția reală de răspândire a punctelor nu este o cutie de pastile așa cum am desenat-o acolo. Este puțin diferit. Și asta a făcut parte din exercițiu. Află cum se schimbă asta. Și destul de interesant, este diferit sub focalizare decât deasupra focalizării corecte. Deci, la modelul nostru ideal , desigur, te-ai aștepta exact la același efect de defocalizare dacă epsilonul tău este sub focalizarea perfectă decât atunci când epsilonul tău este deasupra focalizării perfecte. Și, în practică, nu este chiar așa. Dacă te uiți la secțiunea transversală a cutiei de pastile în loc de... aceasta este secțiunea transversală ideală a cutiei de pastile, desigur. Și dacă îl privești pe o parte a defocalizării, este mai concentrat lângă margini și nu atât de mult. Adică, pentru început, nu este un pas perfect. Și apoi pe cealaltă parte a defocalizării, arăta mai degrabă așa. Așa că vă puteți imagina că acest lucru a dus la unele dificultăți în implementarea efectivă a acestei idei. Dar este o primă aproximare. Deci iată o idee interesantă. Să presupunem că ai o poză. Și vrei să știi dacă este originalul sau dacă cineva l-a tipărit și apoi a făcut o fotografie. Și vom reveni la asta într-un alt mod. Adică, unul dintre lucrurile care se întâmplă este că obținem proiecție în perspectivă. Așa că o tipărim. Acum, luăm camera. Obținem din nou proiecția în perspectivă - este efectul a două proiecții în perspectivă în secvență. Este la fel ca o singură proiecție în perspectivă. Și se dovedește că nu este. Așa că puteți spune, după cum vom vedea, că s-au înșelat ceva , că cineva a modificat poza și a făcut-o altă fotografie. Dar iată o altă cale. Să presupunem că este ușor defocalizat. Și apoi faci o fotografie puțin defocalizată a acelei imagini ușor defocalizate. Este asta echivalent cu a face o fotografie care este mai mult defocalizată, cum ar fi suma celor două valori nefocalizate? Și deci ce facem? Ne conlucrăm cu funcția de răspândire a punctelor, care este această cutie de pastile o dată. Luați rezultatul. Și apoi ne convocăm din nou cu pastilele. Și asta e echivalent cu înmulțirea cu asta și apoi înmulțirea cu asta, corect, pentru că convoluția în domeniul spațial corespunde înmulțirii în domeniul frecvenței. Și acesta nu este... acest produs nu este echivalent cu J peste ceva pentru orice valoare a lui R. Sau dacă te uiți doar la domeniul frecvenței, dacă îl treci prin ambele operațiuni, vei pierde toate aceste frecvențe. Dar veți pierde și toate frecvențele celeilalte operațiuni, care ar putea fi aici. Deci s-ar putea să nu fie banal să folosiți această metodă. Dar din punct de vedere conceptual, cel puțin, există o diferență între o imagine defocalizată a unei imagini defocalizate și orice pas de defocalizare. Și ar trebui să poți spune că se întâmplă ceva neplăcut . Deci oh, OK. Așa că doar o notă... deci nu am spus multe despre brevet, pentru că m-am gândit că ar fi mai important să înțelegem teoria sistemelor liniare din spatele lui. Și când terminăm cu asta, ceea ce vom face în continuare este fotogrammetria. Fotogrammetria se referă la utilizarea imaginilor pentru a efectua măsurători. Și a fost o aplicație timpurie a fotografiei. Trimiți pe cineva în balonul cu aer cald. Și face o poză. Și poate face o poză dintr-o altă poziție. Și apoi puteți crea o hartă. De fapt, puteți obține informații tridimensionale. Așa că vom vorbi despre utilizarea imaginilor pentru a crea, în special, informații 3D. Deci se cam ridică. Am lucrat în cea mai mare parte a timpului la ceea ce unii ar putea considera un nivel foarte scăzut. Avem de-a face cu pixeli, niveluri de gri, strălucire, iradiere și așa mai departe. Deci acum, urcăm. Deci vom presupune că știm cum să obținem anumite caracteristici, cum ar fi marginile. Și apoi vom încerca să le potrivim între imagini pentru a obține informații despre locul în care se afla camera și informații despre obiecte. Deci bine.