4.20. Shrnutí¶
Prošli jste částmi zobrazovacího řetězce kamery, na které dojde pokaždé, když skript zachytí snímek:
Optika před senzorem – dírková komora jako nejjednodušší prvek tvořící obraz, dále objektivy, které shromáždí mnohem více světla a přitom stále zaostřují, s ohniskovou vzdáleností, clonou, hloubkou ostrosti a zorným polem jako parametry, z nichž si aplikace vybírá. Reálné objektivy s sebou nesou zkreslení, vinětaci a efekty úhlu hlavního paprsku (chief-ray-angle), které senzor a ISP později kompenzují.
Mřížka senzoru – dvourozměrné pole fotodiod, které přeměňuje fotony na náboj, kde doba expozice a analogový zisk vyvažují jas proti rozmazání pohybem a šumu. Rolling a global shutter určují, jak jsou řádky pole vyčítány, a malá sada kalibrací na čipu – sloupcový FPN, černá úroveň, vadné pixely, stínování objektivu – vyčistí data, než opustí čip. Čip s MCU spojují dvě sběrnice: pomalá řídicí sběrnice I2C pro registry a rychlá paralelní nebo MIPI sběrnice pro pixely.
Barva a ISP – Bayerovo pole barevných filtrů přiřadí každému pixelu jednu z barev: červenou, zelenou nebo modrou; debayering interpoluje chybějící dva kanály. Procesor obrazového signálu (ISP) spojuje zbytek pipeline dohromady – extrakci statistik, automatické vyvážení bílé, debayering, korekci barevnou maticí, gamu, škálování, oříznutí a finální zabalení do požadovaného formátu pixelů.
Formáty pixelů – surový Bayer, RGB888, RGB565, YUV422, stupně šedi, BINARY a komprimované výstupy JPEG / PNG vyvažují velikost paměti proti barevné věrnosti a kompatibilitě s navazujícími algoritmy. RGB565 je výchozí pro hotovou barvu, protože odpovídá šířce slova MCU a oproti RGB888 sníží paměťové nároky na polovinu.
CSI API – pět řádků nastavení plus smyčka snímání je tvar, ze kterého vychází každý skript. Fondy framebufferů (jednoduchý, dvojitý, trojitý, video FIFO nebo spouštěný) rozhodují o tom, jak aplikace a kamera sdílejí snímky; samostatný náhledový kanál zásobuje připojený ladicí program, aniž by soupeřil o buffery aplikace; nastavení senzoru pokrývají orientaci, expozici, zisk, vyvážení bílé, omezení snímkové frekvence a testovací vzor barevných pruhů.
Více senzorů a paměťové fondy – desky se dvěma senzory vytvoří jednu instanci
CSIna čip a každou provozují vlastní rychlostí. Pod tím vším žijí fond framebufferů, náhledová oblast, halda MicroPythonu a menší alokace v rychlé paměti v odlišných oblastech RAM, umístěné tak, aby části, které potřebují rychlost, ji dostaly, a části, které potřebují jen velikost, dostaly tu.
To stačí k tomu, abyste ze senzoru získali snímek se správným formátem, velikostí snímku a expozicí pro scénu; zvolili režim framebufferu, který odpovídá době zpracování aplikace; vystavili živý náhled čemukoli připojenému; a načetli Image zpět do Pythonu připravený k dalším operacím.
4.20.1. Pozdější použití této reference¶
Berte kapitoly o zobrazování jako referenční materiál, ne jako jednorázové čtení. Zamýšleným využitím je vracet se k osvěžení režimů framebufferu, formátů pixelů nebo významu daného nastavení senzoru. Referenční stránka csi.CSI uvádí všechny metody na jednom místě, když je otázka jen „jak se zase přesně jmenuje tohle volání“.
4.20.2. Kam dál odsud¶
Zpracování obrazu je přirozeným dalším tématem. S bufferem v ruce a pochopeným API csi zbývá to, co s pixely dělat: prahy, detekce hran, hledání blobů, detekce čar a tvarů, QR kódy, AprilTagy, inference strojového učení. Sada nástrojů se přesune na modul image a jeho katalog metod objektu Image. Vše z této části se přenáší dál; tvar smyčky, režim framebufferu, formát pixelů – to vše je to, s čím metody zpracování obrazu pracují.