In diesem Artikel sprechen wir über den Einsatz modernster Computer-Vision-Objekterkennung auf stromsparenden und kostengünstigen Edge-Geräten. Zum Abschluss sehen wir ein Budget-Hardware-Setup, das Tauben nahezu in Echtzeit erkennen kann.

Der Stand der KI

In den letzten Jahren gab es enorme Fortschritte in der KI mit der Einführung von Large Language Models. Diese Methoden wurden auch von der Computer-Vision-Community übernommen, bei der Bilder in Tokens umgewandelt und an ein Sprachmodell zur Klassifizierung, Erkennung oder anderen Aufgaben übergeben werden – diese werden Vision Language Models genannt. Obwohl diese Methoden eine bessere Leistung in Bezug auf Genauigkeit oder Präzision zeigen, benötigen sie im Vergleich zu ihren älteren Verwandten – nennen wir sie die Convolutional Neural Network-basierten – weit mehr Rechenleistung. Der Bedarf an Rechenleistung wird noch problematischer, wenn ein Modell auf dem Edge eingesetzt wird.

  • Large Language Model (LLM), z. B. ChatGPT, Llama2
  • Vision Language Model (VLM), z. B. GPT-4V, Swin-L oder ViTL
  • Convolutional Neural Network (CNN), z. B. YOLO oder EfficientNet

Objekterkennung

Objekterkennung ist eine Aufgabe in der Computer Vision, bei der wir ein Bild als Eingabe nehmen und Objekte innerhalb des Eingabebildes lokalisieren und klassifizieren. Die de-facto-Metrik zur Bewertung der Qualität eines Objektdetektors ist die mean Average Precision (mAP). Diese wird durch die Summe der Überschneidung zwischen der vorhergesagten und der annotierten Bounding Box berechnet.

Modell

mAP (50-95) COCO

Modellgröße (#Parameter)

Swin-L (DINO)

63,2

218M

ViT-L (Co-DETR)

65,9

304M

YOLOv8x

53,9

68,2M

YOLOv8s

44,9

11,2M

YOLOv8n

37,3

3,2M

YOLO (Ultralytics auf GitHub)

YOLO (You Only Look Once) ist die modernste CNN-basierte Methode zur Objekterkennung, aber die neueren YOLO-Versionen können auch andere Aufgaben wie Segmentierung, Pose-Schätzung oder Klassifizierung durchführen.

Illustration of six AI tasks: Detect (highlighting a person), Segment (objects separated), Semantic (road scene with city wildlife such as urban birds or pigeons), Classify (worker labeled), Pose (skeleton overlay), OBB (cars boxed), and Track (cars with IDs).

Wie aus der obigen Tabelle ersichtlich, übertreffen VLM-Methoden CNN-Methoden, benötigen aber eine höhere Anzahl trainierbarer Parameter. Die Anzahl der Parameter ist ein Indikator für sowohl Rechenleistung als auch Speichernutzung, aber mehrere Faktoren beeinflussen die Inferenzgeschwindigkeit. YOLO gibt es auch in verschiedenen Größen, die durch das letzte Zeichen im Namen angezeigt werden. Je kleiner ein Modell ist, desto schneller ist die Inferenz und desto geringer ist der Speicherverbrauch, aber auch die Genauigkeit nimmt ab.

YOLOv8 performance plots

Edge-Geräte

Edge-Geräte sind in ihrer Verarbeitungskapazität und ihrem Stromverbrauch begrenzt. Sie bieten KI-Fähigkeiten für IoT-Geräte, Sensoren, Kameras, Drohnen und Smartphones. Es gibt günstige Lösungen für 20 $, aber man kann auch aus High-End-System-on-Chip-Lösungen (SoC) über 1000 $ wählen. Als Faustregel gilt: Je mehr es kostet, desto höher ist die Rechenleistung und der Stromverbrauch. Bei der Wahl der Hardware wird es einen Kompromiss zwischen Preis und Leistung geben. Die folgenden Tabellen zeigen einige Beispiele von Geräten, Stand Februar 2024.

Low-End Edge:

Coral AI

NXP iMX8 Plus

Hailo8

Typ

Dedizierter Chip (NPU)

SoC (arm64) + GPU + NPU

Dedizierter Chip (NPU)

Befehlssatz SoC

N/A

FP, INT

N/A

Befehlssatz GPU

N/A

FP32

N/A

Befehlssatz NPU

INT8

INT8

INT8

Form

USB, PCIe, m.2, Chip

Board, Chip

PCIe, m.2, Chip

TOPS (INT)

4 TOPS

2,3 TOPS

26 TOPS

FLOPS (FP)

N/A

7,2 GFLOPS

N/A

Stromverbrauch

~2 Watt

~5–15 Watt

~2,5 Watt

Preis

~20 $

~60 $

~140 $

High-End Edge:

Intel Ultra

Qualcomm Snapdragon v3

Nvidia Jetson Orin

Typ

SoC (x64) + GPU + NPU

SoC (arm64) + GPU + NPU

SoC (arm64) + GPU + NPU

Befehlssatz SoC

FP, INT, BF16

TBA

FP, INT

Befehlssatz GPU

F16

TBA

FP32, FP16

Befehlssatz NPU

INT8

INT4, TBA

INT8

Form

Chip

Chip

Board, Chip

TOPS (INT)

max. 34 TOPS

TBA 75 TOPS

20–275 TOPS

FLOPS (FP)

max. 4,5 TFLOPS

TBA

max. 5,3 TFLOPS

Stromverbrauch

~18–64 Watt

TBA

~7–60 Watt

Preis

~375 $

~900 $ TBA

~400–1100 $

Deployment eines quantisierten YOLO

In diesem Beitrag gehen wir davon aus, dass wir bereits ein quantisiertes Modell haben. Kurz gesagt ist Quantisierung der Schritt, bei dem die Modellpräzision verringert wird, zum Beispiel statt FP32 auf INT8 quantisiert wird. Auf vielen Hardwareplattformen verbessert das zwar die Inferenzgeschwindigkeit, die Genauigkeit der Erkennung nimmt jedoch ab. Wir diskutieren Quantisierung im nächsten Kapitel, „Quantized YOLO for Edge Solutions”, ausführlicher.

Das Modell-Deployment auf Edge-Hardware ist für jedes Gerät unterschiedlich. Besprechen wir einige Fälle:

  • Coral AI funktioniert nur mit INT8-Präzision. Das bedeutet, die Modellgewichte sind in INT8-Präzision und die Inferenz wird als Integer durchgeführt.
  • NXP ist ebenfalls am effizientesten bei ausschließlicher Verwendung von INT8-Präzision.
  • Intel kann die Inferenz auf verschiedene Weisen ausführen. Es hängt auch davon ab, welche CPU-Generation verwendet wird. Im Allgemeinen besteht es aus einer CPU, auf der FP32 oder eine Kombination aus FP32 und INT8 ausgeführt werden kann, einer iGPU, auf der FP16 ausgeführt werden kann, und einer NPU, auf der nur INT8 ausgeführt werden kann.

Testen wir nun die Inferenzgeschwindigkeit auf folgender Hardware:

*Intel i7-9750H

**Raspberry Pi4 + Coral AI Edge TPU

Modell

mAP50-95

Inferenz

Durchschn. Geschwindigkeit

yolov8n F32

37,4

Nicht quantisiert, Intel*

24,40 ms ~ 40 FPS

yolov8n INT8+FP32

37,1

Quantisiert, Intel*

15,18 ms ~ 66 FPS

yolov8n FULL INT8

32,9

Quantisiert, Coral**

61,00 ms ~ 16 FPS

Das Setup

Das ist ein selbst gebautes Setup, das Tauben nahezu in Echtzeit erkennen kann. Es handelt sich um einen Raspberry Pi4, der mit einem Akkupack und 2 Coral AI Edge TPUs verbunden ist. Eine für die Vogelerkennung und die andere für die Vogelklassifizierung. Nach dem Deployment dieses Setups, zusammen mit zwei Plastikkrähen, landete in den letzten 1,5 Jahren keine Taube mehr auf meinem Balkon. Schaut euch mein Repo an, um sicherzustellen, dass keine Tauben euren Balkon verschmutzen. GitHub Repository

A small black electronic device with attached cables and adapters sits on a light wooden surface, ready to support your bird photography adventures. One white cable has two clear USB connectors, perfect for quick setups in the field. A black external power bank is connected to the device, making it an ideal companion for capturing urban wildlife, such as pigeons, on the go.

https://github.com/adamp87/pigeon

Für weitere technische Details zur Quantisierung, lest weiter im nächsten Kapitel „Quantized YOLO for Edge Solutions”.