22.09.2013 Aufrufe

Workshopband als PDF - Mpc.belwue.de

Workshopband als PDF - Mpc.belwue.de

Workshopband als PDF - Mpc.belwue.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Abbildung 4: Systemüberblick mit mehreren Skalenstufen<br />

und zusätzlichen FIFOs für die Zeitmultiplex-Erweiterung<br />

<strong>de</strong>rn es wer<strong>de</strong>n zunächst nur die einzelnen Zell- bzw.<br />

Blockhistogramme gebil<strong>de</strong>t. Erst im zweiten Schritt<br />

wer<strong>de</strong>n daraus die einzelnen Fenster<strong>de</strong>skriptoren zusammengesetzt.<br />

Dies hat <strong>de</strong>n Vorteil, dass Blockhistogramme,<br />

die aufgrund <strong>de</strong>s Sliding Window-Prinzips<br />

in mehreren Fenstern auftreten, nur einmal berechnet<br />

wer<strong>de</strong>n müssen. Durch diese Vorgehensweise wird<br />

eine FPGA-Implementierung unter <strong>de</strong>n hier vorausgesetzten<br />

Echtzeitbedingungen erst möglich.<br />

Um die Flexibilität <strong>de</strong>s Designs für verschie<strong>de</strong>ne<br />

Konfigurationen und spätere Erweiterungen zu erhöhen,<br />

wur<strong>de</strong> das Design stark modularisiert aufgebaut.<br />

In diesem Kapitel wer<strong>de</strong>n die wesentlichen Hauptmodule<br />

in Bezug auf ihre Funktion und Implementierung<br />

im Detail erläutert.<br />

A. Systemüberblick<br />

In Abbildung 4 ist das komplette Design inklusive<br />

<strong>de</strong>r Multiskalen- und Zeitmultiplexerweiterung vereinfacht<br />

schematisch dargestellt. Je<strong>de</strong> Skalenstufe besteht<br />

aus je einem Skalierungsmodul für die Bildskalierung,<br />

einem HOG-Modul für die Deskriptor-Berechnung<br />

und einem SVM-Modul für die Klassifikation. Die<br />

nachfolgen<strong>de</strong>n FIFOs sind für die Multiskalen- und<br />

Zeitmultiplexerweiterung relevant (siehe Abschnitte<br />

III.E und III.F).<br />

Die Berechnung <strong>de</strong>r Zell- und Blockhistogramme<br />

erfolgt in dieser Implementierung nicht getrennt für<br />

je<strong>de</strong>s Klassifikationsfenster, son<strong>de</strong>rn für das gesamte<br />

Bild. Die Zuordnung <strong>de</strong>r Blockhistogramme zu <strong>de</strong>n<br />

einzelnen Fenster<strong>de</strong>skriptoren fin<strong>de</strong>t erst in <strong>de</strong>r SVM<br />

bei <strong>de</strong>r Bildung <strong>de</strong>s Skalarproduktes statt.<br />

B. Skalierung<br />

Da das Fenster für die Deskriptorberechnung eine<br />

feste Größe von 64 x 128 Pixel besitzt, wird im Skalierungsmodul<br />

das Eingangsbild für die jeweilige<br />

Skalenstufe auf eine in Pixel <strong>de</strong>finierte Auflösung<br />

herunterskaliert.<br />

Die Implementierung berechnet die Ausgangspixel<br />

mittels bilinearer Interpolation aus <strong>de</strong>m Eingangsbild<br />

[2]. Dies erhöht, im Gegensatz zu einem einfacheren<br />

und ressourcenschonen<strong>de</strong>ren Downsampling durch<br />

Überspringen je<strong>de</strong>s zweiten Pixels mit vorangegangener<br />

Gaußfilterung, die Flexibilität <strong>de</strong>r Skalierung, da<br />

die Skalierungsfaktoren nicht auf Zweierpotenzen<br />

60<br />

ERKENNUNG VON FUSSGÄNGERN IN ECHTZEIT AUF FPGAS<br />

beschränkt sind. Durch die freie Skalierungswahl wird<br />

die Erkennungsrate signifikant verbessert.<br />

C. Deskriptorberechnung (HOG)<br />

Der HOG-Deskriptor besitzt eine Reihe von Parametern,<br />

<strong>de</strong>ren optimale Werte von Dalal und Triggs [1]<br />

ermittelt wur<strong>de</strong>n. Wie auch bei <strong>de</strong>n meisten an<strong>de</strong>ren<br />

Implementierungen wur<strong>de</strong>n jedoch auch hier nicht<br />

überall die Werte mit <strong>de</strong>r besten Erkennungsrate gewählt,<br />

son<strong>de</strong>rn an einigen Stellen Kompromisse zugunsten<br />

<strong>de</strong>r Implementierbarkeit und Ressourcenschonung<br />

eingegangen. Dies betrifft vor allem die<br />

Wahl <strong>de</strong>r Aufteilung <strong>de</strong>s Klassifikationsfensters in<br />

Zellen und Blöcke (Abbildung 3). Nach [1] ergibt sich<br />

die beste Erkennungsrate bei einer Zellgröße von 6 x 6<br />

Pixel und 3 x 3 Zellen pro Block. Hierdurch wür<strong>de</strong><br />

jedoch <strong>de</strong>r Deskriptor sehr lang wer<strong>de</strong>n, was die echtzeitfähige<br />

Implementierung erheblich erschweren<br />

wür<strong>de</strong>. Statt<strong>de</strong>ssen wur<strong>de</strong> die meist verwen<strong>de</strong>te Einteilung<br />

in 2 x 2 Zellen und 8 x 8 Pixel gewählt, die nur<br />

eine geringfügig schlechtere Erkennungsrate bietet<br />

und einen Deskriptor mit nur etwa ein Drittel <strong>de</strong>r<br />

Elemente liefert. In Abbildung 5 ist die Struktur <strong>de</strong>r<br />

Implementierung dargestellt, wobei die einzelnen<br />

Schritte zur Berechnung <strong>de</strong>s HOG-Deskriptors entsprechend<br />

Abbildung 1 beschriftet sind. Im Folgen<strong>de</strong>n<br />

wer<strong>de</strong>n die einzelnen Abschnitte näher erläutert.<br />

1) Ableitung<br />

Die Ableitung setzt sich aus einem Zeilenspeicher<br />

und <strong>de</strong>n bei<strong>de</strong>n Subtraktionen für die parallele Berechnung<br />

<strong>de</strong>r horizontalen und vertikalen Ableitungen<br />

zusammen.<br />

Anschließend wer<strong>de</strong>n die Daten im Clock Domain<br />

Crossing an <strong>de</strong>n Core-Takt übergeben, <strong>de</strong>ssen Frequenz<br />

<strong>de</strong>m doppelten Pixeltakt entspricht. Diese Frequenzerhöhung<br />

dient in <strong>de</strong>n weiteren Abschnitten zur<br />

Ressourceneinsparung, da so zwei Operationen nacheinan<strong>de</strong>r<br />

mit einem Operator durchgeführt wer<strong>de</strong>n<br />

können.<br />

2) Gradientenberechnung und Bin-Zuordnung<br />

Für die Berechnung <strong>de</strong>s Gradientenbetrags wer<strong>de</strong>n<br />

die bei<strong>de</strong>n Ableitungen zunächst quadriert und aufsummiert.<br />

Anschließend wird aus <strong>de</strong>r Summe die<br />

Wurzel gezogen. Hierbei lassen sich durch die Taktverdoppelung<br />

nur minimal Ressourcen einsparen –<br />

lediglich ein Multiplizierer (DSP-Zellen) kann eingespart<br />

wer<strong>de</strong>n, in<strong>de</strong>m die bei<strong>de</strong>n Ableitungen nacheinan<strong>de</strong>r<br />

quadriert wer<strong>de</strong>n.<br />

Um auf die ressourcenintensive Division bei <strong>de</strong>r Bestimmung<br />

von tan (

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!