4.20. Összegzés

Áttekintetted a kamera képalkotási rétegének azon részeit, amelyek minden alkalommal előkerülnek, amikor egy szkript egy képkockát rögzít:

  • Az érzékelő előtti optika – a lyukkamera mint a legegyszerűbb képalkotó elem, majd a lencsék, amelyek sokkal több fényt gyűjtenek, miközben még mindig fókuszálnak, ahol a gyújtótávolság, a rekesz, a mélységélesség és a látómező az alkalmazás által választható beállítások. A valódi lencséknek torzítása, vignettálása és fősugár-szög (chief-ray-angle) hatásai vannak, amelyeket az érzékelő és az ISP később kompenzál.

  • Az érzékelőrács – fotodiódák kétdimenziós tömbje, amely a fotonokat töltéssé alakítja, ahol az expozíciós idő és az analóg erősítés a fényerőt a mozgási elmosódással és a zajjal szemben mérlegeli. A gördülő és globális zárak határozzák meg, hogy a tömb sorait hogyan olvassák ki, és egy kis halmaznyi chipen lévő kalibráció – oszlop-FPN, fekete szint, hibás képpont, lencseárnyékolás – tisztítja meg az adatokat, mielőtt elhagynák a chipet. Két busz köti össze a chipet az MCU-val: egy lassú I2C vezérlőbusz a regiszterekhez, és egy gyors párhuzamos vagy MIPI busz a képpontokhoz.

  • A szín és az ISP – egy Bayer-féle színszűrő-tömb minden képpontnak a vörös, zöld vagy kék egyikét adja; a debayerezés interpolálja a hiányzó két csatornát. A képjel-feldolgozó (image signal processor) fűzi össze a feldolgozási folyamat többi részét – statisztikakinyerés, automatikus fehéregyensúly, debayerezés, színmátrix-korrekció, gamma, skálázás, vágás, és végül egy becsomagolás a kért képpontformátumba.

  • Képpontformátumok – a nyers Bayer, az RGB888, az RGB565, a YUV422, a szürkeárnyalatos, a BINARY, valamint a tömörített JPEG / PNG kimenetek a memóriaméretet a színhűséggel és a downstream algoritmusokkal való kompatibilitással szemben mérlegelik. Az RGB565 az alapértelmezett a kész színekhez, mert illeszkedik az MCU szóhosszához, és az RGB888-hoz képest felére csökkenti a memóriaköltséget.

  • A CSI API – öt sornyi beállítás plusz egy pillanatkép-ciklus az az alak, amelyből minden szkript indul. A képkocka-puffer készletek (egyszeres, dupla, hármas, video FIFO vagy triggerelt) döntik el, hogyan osztozik az alkalmazás és a kamera a képkockákon; egy külön előnézeti csatorna táplálja a csatlakoztatott hibakereső programot anélkül, hogy versenyezne az alkalmazás puffereiért; az érzékelő beállításai lefedik a tájolást, az expozíciót, az erősítést, a fehéregyensúlyt, a képkockasebesség-korlátot és egy színcsíkos tesztmintát.

  • Több érzékelő és memóriakészletek – a két érzékelővel rendelkező lapok chipenként egy-egy CSI példányt hoznak létre, és mindegyiket a saját sebességén futtatják. Alulról nézve a képkocka-puffer készlet, az előnézeti terület, a MicroPython kupac (heap) és a kisebb gyors memóriafoglalások a RAM különálló régióiban helyezkednek el, úgy elhelyezve, hogy a sebességet igénylő részek megkapják azt, a csak méretet igénylő részek pedig azt kapják helyette.

Ennyi elég ahhoz, hogy egy képkockát a megfelelő formátummal, képmérettel és a jelenethez illő expozícióval vegyünk ki az érzékelőből; olyan képkocka-puffer módot válasszunk, amely illeszkedik az alkalmazás feldolgozási idejéhez; élő előnézetet jelenítsünk meg bármi felé, ami csatlakoztatva van; és visszaolvassuk az Image objektumot a Pythonba, készen arra, hogy műveleteket végezzünk rajta.

4.20.1. Ennek a referenciának a későbbi használata

Kezeld a képalkotási fejezeteket referenciaanyagként, ne egyszeri olvasmányként. A tervezett használat az, hogy visszatérsz frissíteni a tudásodat a képkocka-puffer módokról, a képpontformátumokról vagy egy adott érzékelőbeállítás jelentéséről. A csi.CSI referenciaoldal egy helyen sorolja fel az összes metódust, amikor a kérdés csak annyi, hogy „mi is pontosan ennek a hívásnak a neve”.

4.20.2. Merre tovább innen

A képfeldolgozás a természetes következő téma. A pufferrel a kezünkben és a csi API megértésével az marad hátra, hogy mit csináljunk a képpontokkal: küszöbértékek, élészlelés, foltkeresés, vonal- és alakzatészlelés, QR-kódok, AprilTag-ek, gépi tanulási következtetés. Az eszköztár áttolódik az image modulra és annak az Image objektumon elérhető metóduskatalógusára. Ebből a fejezetből minden tovább él; a ciklus alakja, a képkocka-puffer mód, a képpontformátum – mindezeken működnek a képfeldolgozási metódusok.