4.20. Zusammenfassung

Sie haben die Teile des Bildgebungs-Stacks der Kamera durchlaufen, die jedes Mal auftreten, wenn ein Skript ein Einzelbild aufnimmt:

  • Die Optik vor dem Sensor – eine Lochblende als einfachstes bilderzeugendes Element, dann Objektive, die deutlich mehr Licht sammeln und dabei trotzdem fokussieren, mit Brennweite, Blende, Schärfentiefe und Sichtfeld als den Stellschrauben, aus denen die Anwendung wählt. Reale Objektive bringen Verzeichnung, Vignettierung und Chief-Ray-Angle-Effekte mit sich, die der Sensor und der ISP später kompensieren.

  • Das Sensorraster – ein zweidimensionales Array aus Fotodioden, das Photonen in Ladung umwandelt, wobei Belichtungszeit und analoge Verstärkung Helligkeit gegen Bewegungsunschärfe und Rauschen abwägen. Rolling und Global Shutter bestimmen, wie die Zeilen des Arrays ausgelesen werden, und ein kleiner Satz von On-Chip-Kalibrierungen – Spalten-FPN, Schwarzpegel, Defektpixel, Lens Shading – bereinigt die Daten, bevor sie den Chip verlassen. Zwei Busse verbinden den Chip mit dem MCU: ein langsamer I2C-Steuerbus für die Register und ein schneller paralleler oder MIPI-Bus für die Pixel.

  • Farbe und der ISP – ein Bayer-Farbfilter-Array gibt jedem Pixel eine von drei Farben: Rot, Grün oder Blau; das Debayering interpoliert die fehlenden zwei Kanäle. Der Image Signal Processor fügt den Rest der Pipeline zusammen – Statistikextraktion, automatischer Weißabgleich, Debayering, Farbmatrix-Korrektur, Gamma, Skalierung, Zuschnitt und ein abschließendes Packen in das angeforderte Pixelformat.

  • Pixelformate – rohes Bayer, RGB888, RGB565, YUV422, Graustufen, BINARY und die komprimierten JPEG-/PNG-Ausgaben wägen Speichergröße gegen Farbtreue und Kompatibilität mit nachgelagerten Algorithmen ab. RGB565 ist der Standard für fertige Farbe, weil es zur Wortbreite des MCU passt und die Speicherkosten gegenüber RGB888 halbiert.

  • Die CSI-API – fünf Zeilen Einrichtung plus eine Schnappschuss-Schleife ist die Form, mit der jedes Skript beginnt. Framebuffer-Pools (einfach, doppelt, dreifach, Video-FIFO oder getriggert) entscheiden, wie die Anwendung und die Kamera Einzelbilder teilen; ein separater Vorschaukanal versorgt das angeschlossene Debug-Programm, ohne mit den Puffern der Anwendung zu konkurrieren; Sensor-Stellschrauben decken Ausrichtung, Belichtung, Verstärkung, Weißabgleich, Bildraten-Obergrenze und ein Farbbalken-Testmuster ab.

  • Mehrere Sensoren und Speicher-Pools – Boards mit zwei Sensoren instanziieren eine CSI pro Chip und betreiben jeden mit seiner eigenen Rate. Darunter liegen der Framebuffer-Pool, der Vorschaubereich, der MicroPython-Heap und die kleineren Zuweisungen im schnellen Speicher in getrennten RAM-Bereichen, so platziert, dass die Teile, die Geschwindigkeit brauchen, sie erhalten, und die Teile, die nur Größe brauchen, diese stattdessen erhalten.

Das genügt, um ein Einzelbild mit dem richtigen Format, der richtigen Bildgröße und der richtigen Belichtung für die Szene aus dem Sensor zu holen; einen Framebuffer-Modus zu wählen, der zur Verarbeitungszeit der Anwendung passt; eine Live-Vorschau für das Angeschlossene bereitzustellen; und das Image zurück in Python zu lesen, bereit zur Bearbeitung.

4.20.1. Diese Referenz später nutzen

Behandeln Sie die Bildgebungskapitel als Referenzmaterial, nicht als einmalige Lektüre. Zurückzukommen, um Framebuffer-Modi, Pixelformate oder die Bedeutung einer bestimmten Sensor-Stellschraube aufzufrischen, ist der vorgesehene Zweck. Die Referenzseite csi.CSI listet jede Methode an einem Ort auf, wenn die Frage einfach lautet „wie war noch mal der genaue Name dieses Aufrufs“.

4.20.2. Wie es von hier aus weitergeht

Bildverarbeitung ist das natürliche nächste Thema. Mit dem Puffer in der Hand und dem verstandenen csi-API bleibt übrig, was mit den Pixeln zu tun ist: Schwellenwerte, Kantenerkennung, Blob-Suche, Linien- und Formerkennung, QR-Codes, AprilTags, Inferenz mit maschinellem Lernen. Das Werkzeugset verlagert sich auf das image-Modul und seinen Katalog von Methoden auf dem Image-Objekt. Alles aus diesem Abschnitt wirkt fort; die Form der Schleife, der Framebuffer-Modus, das Pixelformat – all das ist es, worauf die Bildverarbeitungsmethoden operieren.