Cadence Design Systems

Bildverarbeitungssysteme haben andere Anforderungen

28. Oktober 2015, 11:42 Uhr | Von Chris Rowen, Fellow und CTO der IP-Group von Cadence Design Systems und Gründer von Tensilica
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Deutlich effizienter: Bildverarbeitung auf DSP

Beispiel: Faltungsnetzwerk

Beim maschinellen Lernen werden Faltungsnetze (CNNs) oft für die Mustererkennung verwendet. CNNs nutzen eine grobe Analogie zur Funktion des Gehirns: Die Sehzellen des Gehirns erfassen nur einen kleinen Ausschnitt des Sehbereichs und erkennen nur eine Reihe primitiver Merkmale. Ebenso lassen sich mehrere parallele Faltungsberechnungen organisieren, um bestimmte Muster in einem kleinen lokalen Bereich des aufgenommenen Bilds zu erkennen. Weitere Faltungsebenen nutzen diese primitiven Merkmale als Eingabe und berechnen komplexere Merkmale. Faltungsnetzwerke mit 5, 10 oder sogar 20 Faltungsebenen haben sich mittlerweile bewährt, um große Mengen von Objekten mit hoher Genauigkeit zu erkennen. Die Bildverarbeitung ist eine der wichtigsten Anwendungen für CNN, wobei einzelne Neuronen angeordnet werden, um überlappende Bereiche in einem Sehfeld abzudecken.

Neuronale Netze sind seit Jahrzehnten verbreitet, wogegen gute automatisierte Verfahren zum Training dieser Netze, damit fast alles erkennen können. erst seit Kurzem verfügbar sind. Derartige Aufgaben sind extrem rechenintensiv und erfordern die Durchführung von zahlreichen Faltungen an allen Bildstellen, um differenzierte und aussagefähige Muster zu erzeugen. Durch diese Ebene-zu-Ebene-Verarbeitung können Bildverarbeitungssysteme beispielsweise zwischen einer Katze und einem Hund unterscheiden oder Differenzen zwischen ähnlichen Verkehrszeichen unter nichtidealen Lichtverhältnissen erkennen.

Glücklicherweise eignet sich ein gut entwickelter Befehlssatz für die Bildverarbeitung ebenso für CNN-Berechnungen, da der Faltungs-Kernel den populären und seit langem in der Bildverarbeitung genutzten 2D-Filtern sehr ähnelt. Außerdem wird sich ein ganzes Bildverarbeitungssystem wahrscheinlich kaum ausschließlich auf CNN verlassen. Selbst wenn CNNs für spezifische Erkennungsfunktionen genutzt werden, werden vielseitigere datenparallele Befehle beispielsweise für eine Bildverbesserung, Skalierung, Datenumwandlung, Warping, Störunterdrückung, Tiefen-Verarbeitung und die Extraktion der 3D-Struktur von Bildern benötigt.

Konfigurierbarer Prozessor für eine intelligente Bildverarbeitung

Im Endeffekt unterstützt eine gute Bildverarbeitungsarchitektur vielfältige Operationen und Genauigkeiten. Ein Beispiel hierfür ist eine Anwendung zur Erkennung von Fußgängern. Die Tabelle listet verschiedene Operationen und die erforderliche Präzision für diesen Typ von Anwendung auf. Selbst bei einer einzigen Aufgabe, wie eine Erkennung von Fußgängern, wird eine schnelle 8-Bit-, 16-Bit- und 32-Bit-Vektorverarbeitung benötigt.

Cadence bietet eine ganze Familie konfigurierbarer Imaging- und Vision-DSPs an, mit einem ausgewogenen Verhältnis zwischen Verarbeitungseffizienz und Flexibilität. Sie unterstützen gleichzeitig die in der Bildverarbeitung sowie in Video- und Computer-Vision-Anwendungen genutzten komplexen Algorithmen. Die Cadence Tensilica IVP DSPs (siehe Grafik) nutzen eine SIMD/VLIW-Architektur mit vier parallelen Ausführungseinheiten und bis zu 200 separaten ALU-Operationen pro Zyklus. Die DSPs zeichnen sich durch einen integrierten DMA für Daten-Streaming und eine Datenspeicher-Bandbreite von mehr als 2000 Bit pro Zyklus aus. Der Befehlssatz der Familie, das Speicher-System und die Datentypen wurden alle für einen hohen Durchsatz und für eine 8-, 16- und 32-Bit-Pixel-Verarbeitung optimiert. Die Prozessoren werden außerdem durch eine umfangreiche Software-Umgebung mit DSP-C-Compilern unterstützt, so dass die Erstellung von Assembler-Code wegfällt. OpenCV und OpenVX werden ebenfalls mit 800 optimierten Funktionen voll unterstützt.

Durch diese Fähigkeiten eignet sich der Tensilica-IVP-Prozessor ideal als DSP für die Bildverarbeitung. In einem Design lassen sich die Algorithmen für die Bild- und Videoverarbeitung auf solch einem DSP ausführen und damit die Multi-Core-Host-CPU für andere wichtige Aufgaben entlasten.

Zusammenfassung

Sensoren werden immer erschwinglicher, Kameras lassen sich sehr einfach in viele Geräte integrieren, und mehr und mehr Anwendungen nutzen eine Bildverarbeitung. Da die Bildverarbeitung sehr hohe Anforderungen im Hinblick auf Bandbreite und Leistung stellt, lassen sich solche Algorithmen nicht gut auf einer Host-CPU ausführen, selbst wenn diese eine Multi-Core-CPU ist. Eine bessere Alternative besteht darin, die Bildverarbeitungsfunktion auf einen DSP zu verlagern, der für die Berechnung großer Pixel-Mengen optimiert ist.

passend zum Thema


  1. Bildverarbeitungssysteme haben andere Anforderungen
  2. Deutlich effizienter: Bildverarbeitung auf DSP

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Cadence Design Systems GmbH

Weitere Artikel zu Betriebssysteme