Workshopband als PDF - Mpc.belwue.de
Workshopband als PDF - Mpc.belwue.de
Workshopband als PDF - Mpc.belwue.de
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 (