4.20. Recapitulare¶
Ai parcurs componentele stivei de imagistică a camerei care apar de fiecare dată când un script captează un cadru:
Optica din fața senzorului – un orificiu mic (pinhole) ca cel mai simplu element formator de imagine, apoi obiectivele, care colectează mult mai multă lumină păstrând în același timp focalizarea, cu distanța focală, diafragma, adâncimea de câmp și câmpul vizual ca parametri pe care îi alege aplicația. Obiectivele reale vin cu distorsiune, vignetare și efecte de unghi al razei principale (chief-ray-angle) pe care senzorul și ISP-ul le compensează ulterior.
Grila senzorului – o matrice bidimensională de fotodiode care transformă fotonii în sarcină electrică, cu timpul de expunere și amplificarea analogică (gain) echilibrând luminozitatea față de estomparea de mișcare și zgomot. Obturatoarele rolling și global stabilesc modul în care sunt citite rândurile matricei, iar un set mic de calibrări on-chip – FPN de coloană, nivelul de negru, pixelii defecți, umbrirea obiectivului – curăță datele înainte ca acestea să părăsească cipul. Două magistrale conectează cipul la MCU: o magistrală lentă de control I2C pentru registre și o magistrală rapidă paralelă sau MIPI pentru pixeli.
Culoarea și ISP-ul – o matrice de filtre de culoare Bayer atribuie fiecărui pixel una dintre culorile roșu, verde sau albastru; debayering-ul interpolează celelalte două canale lipsă. Procesorul de semnal de imagine (ISP) leagă împreună restul pipeline-ului – extragerea statisticilor, balansul automat de alb, debayering-ul, corecția matricei de culoare, gamma, scalarea, decuparea și o împachetare finală în formatul de pixel solicitat.
Formatele de pixel – Bayer brut, RGB888, RGB565, YUV422, tonuri de gri, BINARY și ieșirile comprimate JPEG / PNG echilibrează dimensiunea memoriei față de fidelitatea culorii și compatibilitatea cu algoritmii ulteriori. RGB565 este formatul implicit pentru culoarea finită deoarece se aliniază cu lățimea cuvântului MCU-ului și înjumătățește costul de memorie față de RGB888.
API-ul CSI – cinci linii de configurare plus o buclă de instantanee este forma de la care pornește fiecare script. Bazinele de tampon de cadre (frame buffer) (single, double, triple, video FIFO sau triggered) decid modul în care aplicația și camera partajează cadrele; un canal de previzualizare separat alimentează orice program de depanare atașat fără a concura pentru tampoanele aplicației; parametrii senzorului acoperă orientarea, expunerea, amplificarea (gain), balansul de alb, limita ratei de cadre și un model de test cu bare de culoare.
Senzori multipli și bazine de memorie – plăcile cu doi senzori instanțiază câte un
CSIper cip și rulează fiecare la propria rată. Dedesubt, bazinul de tampon de cadre (frame buffer), regiunea de previzualizare, heap-ul MicroPython și alocările mai mici de memorie rapidă rezidă în regiuni distincte de RAM, plasate astfel încât componentele care au nevoie de viteză să o obțină, iar cele care au nevoie doar de spațiu să primească în schimb acel spațiu.
Acest lucru este suficient pentru a extrage un cadru din senzor cu formatul, dimensiunea cadrului și expunerea potrivite pentru scenă; pentru a alege un mod de tampon de cadre (frame buffer) care să corespundă timpului de procesare al aplicației; pentru a expune o previzualizare live oricărui dispozitiv atașat; și pentru a citi Image înapoi în Python, gata de a fi prelucrat.
4.20.1. Utilizarea acestei referințe mai târziu¶
Tratează capitolele despre imagistică drept material de referință, nu o lectură citită o singură dată. Revenirea pentru a-ți reîmprospăta cunoștințele despre modurile de tampon de cadre (frame buffer), formatele de pixel sau semnificația unui anumit parametru al senzorului este utilizarea prevăzută. Pagina de referință csi.CSI enumeră fiecare metodă într-un singur loc, atunci când întrebarea este pur și simplu „care era exact numele acestui apel”.
4.20.2. Unde să mergi de aici¶
Procesarea imaginilor este următorul subiect natural. Cu tamponul (buffer) în mână și API-ul csi înțeles, ceea ce rămâne este ce să faci cu pixelii: praguri, detectarea muchiilor, găsirea de blob-uri, detectarea de linii și forme, coduri QR, AprilTag-uri, inferență de învățare automată. Setul de instrumente se mută la modulul image și la catalogul său de metode pe obiectul Image. Tot ce este din această secțiune se transmite mai departe; forma buclei, modul de tampon de cadre (frame buffer), formatul de pixel – toate acestea sunt elementele asupra cărora operează metodele de procesare a imaginilor.