Kamera an das Coral AI Dev Board Mini anschließen

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.

In diesem Blog erscheint nach und nach eine Serie von Artikeln, die sich mit dem Coral Dev Board Mini beschäftigen und dir zeigen, wie du damit umgehst und was du alles damit machen kannst.

Teil 1: Coral Dev Board Mini: Künstliche Intelligenz für den Hobbykeller

Teil 2: Das Coral AI Dev Board Mini im Überblick

Teil 3: Das Coral Dev Board Mini anschließen und loslegen

Teil 4: Mendel Linux: Das Betriebssystem des Coral AI Dev Board Mini

Teil 5: Kamera an das Coral AI Dev Board Mini anschließen

Teil 6: Die Erweiterungsleiste des Coral Dev Board Mini

Teil 7: Programmieren mit dem Coral AI Dev Board Mini

Teil 8: Bilderkennung mit dem Dev Board Mini und der Coral Camera

Teil 9: Spracherkennung mit dem Coral Dev Board Mini

Teil 10: Gestenerkennung mit dem Coral Dev Board Mini

Teil 11: KI-Modelle für das Coral AI Dev Board Mini erweitern

Extra: Mit dem Edge TPU-Compiler Modelle für das Coral Dev Board Mini erstellen

 

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.

 Die Google Coral Camera

 Die Coral Camera hat eine Auflösung von 5 Megapixel und ermöglicht zusammen mit dem Dev Board Mini viele interessante Projekte wie Bild- und Gesichtserkennung.

 

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.

 

So wird die Coral Camera an das Dev Board Mini angeschlossen

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


Das Board verfügt an der Unterseite über einen Slot für eine MicroSD-Karte. Damit lässt sich der Speicherplatz erweitern, der intern 8 GByte beträgt. Der Anschluss der SD-Karte erfolgt mit der Unterseite nach oben. Gib im Terminal den Befehl sudo fdisk -l ein, um zu ermitteln, wo sich die SD-Karte im Dateisystem befindet. In der Regel ist dies /dev/mmcblk2. Im nächsten Schritt formatierst du die Karte. Achtung: dabei werden bestehende Daten auf der Karte überlöscht! Das erledigt die Codezeile sudo mkfs.ext4 /dev/mmcblk2. Vergewissere dich etwa anhand der Größe, dass es sich tatsächlich um die SD-Karte handelt und nicht um den internen Speicher. Um die SD-Karte in das System einzuhängen, gibst du sudo mount /dev/mmcblk2 /mnt ein. Nach cd /mnt kannst du auf den zusätzlichen Speicher zugreifen.


Um später mit Windows darauf zuzugreifen, kannst du das Tool Linux Reader verwenden, dass sich unter www.diskinternals.com/linux-reader kostenlos herunterladen lässt. Oder du verwendest das Dateisystem FAT32. In diesem Fall lautet der Befehl sudo mkfs.vfat /dev/mmcblk2.

 

 

 

Leave a comment

All comments are moderated before being published