In diesem Blog-Beitrag lernst du die Coral Camera kennen. Sie ist speziell für die Coral AI Dev Boards konzipiert und ermögliche coole Projekte etwa im Bereich der Bilderkennung.
Die Anschluss der Coral Camera erfolgt über die CSI-Schnittstelle, wie du es vielleicht vom Raspberry Pi kennst. CSI steht für Camera Serial Interface. Wegen der unterschiedlichen Pin-Anzahl und -Belegung lässt sich nur die Coral Camera an das Dev Board Mini anschließen. Die Kamera für den Raspberry Pi ist nicht kompatibel.
|
USB-Kameras unterstützt das Dev Board Mini derzeit nicht. Das liegt daran, dass der USB-Port des Boards nur USB 2.0 unterstützt, was für hohe Bildraten und eine gute Bildqualität zu langsam ist. Es empfiehlt sich die Coral Camera, da sie optimal auf das Board abgestimmt ist.
Kamera mit dem Dev Board verbinden
Zunächst identifizierst du auf dem Board die CSI-Schnittstelle für die Kamera. Sie befindet sich auf der kurzen Seite des Boards zwischen dem USB- und dem Lautsprecher-Anschluss. Gute Augen können die kleine Beschriftung „CAMERA“ entziffern.
Das Board sollte ausgeschaltet und vom Stromnetz getrennt sein. Falls die kleine schwarze Verriegelung geschlossen ist, sich also in einer waagerechten Position befindet, ziehst du sie nach vorne in eine senkrechte Position. Das ist der Auslieferungszustand. Nun schiebst du das Flachbandkabel der Kamera so in den CSI-Anschluss, dass die blaue Markierung nach oben zeigt. Dann drückst du die Verriegelung wieder in die Ausgangsposition zurück. Herzlichen Glückwunsch, deine Coral Camera ist nun einsatzbereit.
Der Anschluss der Kamera erfolgt über die CSI-Schnittstelle auf dem Board. Dabei zeigt die blaue Markierung des Flachbandkabels nach oben.
Um dies nochmals zu überprüfen, kannst du die folgenden Schritte ausführen: Schließe das Coral Dev Board Mini an den Host-PC an, starte die Git Bash und wechsle mit dem Befehl mdt shell auf die Mendel-Linux-Shell des Boards. Dort gibst du den folgenden Code ein: v4l2-ctl --list-devices. Hinweis: Das Zeichen nach der 4 ist der Buchstabe l, nicht die Zahl 1. Die Kamera sollte als /dev/video1 aufgeführt sein.
Kamera ausprobieren per Snapshot-Tool
Das Betriebssystem Mendel Linux, das auf dem Board installiert ist, bringt ein Python-Tool namens Snapshot mit. Es befindet sich unter /usr/bin/snapshot und nimmt Bilder von der Kamera auf. Um das Tool im interaktiven Modus zu starten, gibst du im Terminal des Boards snapshot ein. Mit der Leertaste nimmst du ein Foto auf, es landet in deinem Home-Verzeichnis. Mit [R] kannst du neu fokussieren, und mit [Q] beendest du das Tool. Videos sind damit nicht möglich.
Im interaktiven Modus wird bei jedem Drücken der Leertaste ein Foto im Format JPEG gespeichert. Der Dateiname erhält dabei eine aufsteigende Nummer, beginnend mit „img0000.jpg“. Ein versehentliches Überschreiben ist nicht möglich, da das Tool immer mit der nächsten verfügbaren Nummer fortfährt. Der Befehl snapshot --oneshot aktiviert den One-Shot-Modus: Damit knipst du genau ein Foto und beendest das Tool. Um die Dateien auf den Host-PC zu übertragen, bietet sich der Weg über eine MicroSD-Karte an. Das Board verfügt über einen entsprechenden Slot. Nähere Informationen dazu liefert der Kasten „MicroSD-Karte mit dem Dev Board Mini verwenden“.
Monitor an das Dev Board anschließen
Für Projekte mit Kamera und Bilderkennung erscheint es sinnvoll, das Coral Dev Board Mini mit einem Monitor zu verbinden. Du schließt den Monitor über den microHDMI-Anschluss des Boards an. Das Motiv der Kamera kannst du dann auf dem Bildschirm sehen. Um das Board bedienen zu können, verbindest du eine Tastatur mit Touchpad mit dem USB-OTG-Anschluss. Das ist der rechte der beiden USB-C-Anschlüsse. Eventuell ist dafür ein Adapter notwendig. Dann schließt du die Stromversorgung an und hältst den Power-Taster gedrückt. Er befindet sich direkt neben dem HDMI-Anschluss. Das Dev Board fährt daraufhin hoch. Tipp: Falls kein Mauszeiger erscheint, entfernst du die Tastatur vom USB-OTG-Anschluss und schließt sie erneut an. Einzige Anwendung ist das Terminal. Mit snapshot --oneshot kannst du mit der Kamera ein Foto schießen.
Autofokus der Coral Camera konfigurieren
Die Kamera unterstützt One-Shot-Autofokus und kontinuierlichen Autofokus. One-Shot Autofokus bedeutet, dass die Kamera einmal fokussiert und diesen Fokus dann beibehält und speichert. Beim kontinuierlichen Autofokus analysiert die Kamera das Bild und passt den Fokus fortlaufend an. Das ist ein Vorzug gegenüber der Raspberry-Pi-Kamera, die keinen automatischen Fokus ermöglicht.
Sysfs ist ein virtuelles Dateisystem des Linux-Kernels, das Hardware-Informationen übermittelt. Der zuständige sysfs-Knoten für Autofokus befindet sich unter /sys/module/ov5645_camera_mipi_v2/parameters/ov5645_af. Um den Modus des Autofokus zu ändern, schickst du die entsprechende Zahl dorthin: 0 schaltet den Autofokus aus, 1 aktiviert den One-Shot-Autofokus und 2 den kontinuierlichen. Um etwa den kontinuierlichen Autofokus anzuwenden, gibst du folgenden Befehl im Terminal ein: echo 2 > /sys/module/ov5645_camera_mipi_v2/parameters/ov5645_af
Gesichtserkennung mit der Coral Camera
Um ein kleines Projekt auszuprobieren, verbindest du das Board mit einem Monitor und mit dem Host-PC. Im Terminal gibst du zunächst den Code
export DEMO_FILES="$HOME/demo_files"
ein, um die entsprechende Umgebungsvariable zu definieren. Im nächsten Schritt lädst du ein Modell zur Gesichtserkennung herunter mit
wget -P ${DEMO_FILES}/ https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite
Um nun das Modell auszuführen, ruft du den folgenden Befehl auf:
edgetpu_detect \
--model ${DEMO_FILES}/ssd_mobilenet_v2_face_quant_postprocess _edgetpu.tflite
Auf dem Monitor siehst du den Stream der Coral Camera. Sobald darin ein menschliches Gesicht auftaucht, erkennt das Programm dies und zeichnet einen Rahmen darum.
Technische Daten der Coral Camera |
Anbindung | 24 Pin Dual Lane MIPI-CSI |
Auflösung | 5 Megapixel |
Automatische Korrekturen | Gamma, Noise, Schärfe, Weißabgleich, Farbe |
Brennweite | 2,5 mm |
Fokus | Autofokus: One Shot und kontinuierlich |
Maße | 25 mm x 25 mm |
Schärfebereich | 10 cm bis unendlich |
Sensor | Omnivision OV5645 SoC |
MicroSD-Karte mit dem Dev Board Mini verwenden
|