Aktuelles Angebot an studentischen Arbeiten

In unseren Arbeitsgruppen sind oftmals Arbeiten in Vorbereitung, die hier noch nicht aufgelistet sind. Teilweise besteht auch die Möglichkeit, ein Thema entsprechend Ihrer speziellen Interessenslage zu definieren. Kontaktieren Sie hierzu einfach einen Mitarbeiter aus dem entsprechenden Arbeitsgebiet. Falls Sie darüber hinaus allgemeine Fragen zur Durchführung einer Arbeit am LIS haben, wenden Sie sich bitte an Dr. Thomas Wild.

Für Interessenten einer Ingenieurpraxis:

Wir betreuen gerne Ingenieurpraxen, die in der Industrie durchgeführt werden, wenn das jeweilige Thema zu unseren eigenen Arbeitsgebieten passt. Ingenieurpraxen am Lehrstuhl bieten wir jedoch nicht an, da aus unserer Sicht Studenten bereits frühzeitig Industrieerfahrung sammeln sollten.

 

Bachelorarbeiten

Approximate Computing für digitales Kino

Approximate Computing für digitales Kino

Stichworte:
Analyse und Abschätzung von Rechenungenauigkeiten, Programmierung (Matlab bzw. GPU/FPGA), Bildverarbeitung

Beschreibung

Für die Anwendung im professionellen Kino- und TV-Bereich muss die Bildqualität einer Digitalkamera
höchsten Ansprüchen genügen. Die Signalverarbeitung der Sensordaten in der Kamera besteht aus
vielen verschiedenen Schritten, die die Bildqualität beeinflussen. Diese Schritte werden in der Kamera
auf einem FPGA durchgeführt, bei Rohdatenaufnahme auf einem Rechner mit CPU und/oder GPU.
Das heißt, es müssen die gleichen Schritte für verschiedene Plattformen implementiert und optimiert
werden.
Durch Implementierung für verschiedene Rechenplattformen, können Abweichungen entstehen, zum
Beispiel, wenn float Operationen mit Integer Operationen angenähert werden. Diese
Rechenungenauigkeiten vergrößern sich dann ggfs. durch die Fehlerfortpflanzung über die vielen
Prozessschritte. Deswegen soll in der Arbeit untersucht werden, wie sich Abweichungen in einer
Bildverarbeitungskette fortsetzen (Fehlerfortpflanzung).
Wenn die Fehler am Ende der Prozesskette zu groß werden, kann die Qualität dramatisch reduziert
sein. Wie die Abweichungen zu bewerten sind wirde durch Verwendung von etablierten
Bildqualitätsmetriken beurteilt.
Auch kleine Fehler können jedoch Schwierigkeiten bereiten, und zwar besonders beim Testen der
Prozessschritte. Automatisiertes Testen wird schwierig bis unmöglich, und das Auffinden von Fehlern,
die nicht aus Rechenungenauigkeiten, sondern aus echten Unterschieden kommen, wird stark
erschwert.
Um die Qualitätsabschätzung und den Test von Bildverarbeitungsalgorithmen zu verbessern, soll in
diesem Praktikum eine genaue Analyse der Rechenungenauigkeiten auf verschiedenen Plattformen
durchgeführt werden: FPGA, CPU und GPU. Nachdem die einzelnen Operationen verglichen worden
sind, soll weiterhin die Fehlerfortpflanzung durch eine typische Kamera-Prozesskette untersucht
werden. Je nach Art der Arbeit, Interesse und verfügbarem Zeitrahmen, kann die Arbeit dann in
Richtung Testautomatisierung oder in Richtung Optimierung durch Approximate Computing fortgesetzt
werden.
Testautomatisierung
In Richtung Testautomatisierung können die Ergebnisse der Fehlerfortpflanzung direkt genutzt
werden, um Vorschläge für das Testen von Prozessschritten zu erarbeiten.
Das automatisierte Testen ist einfach, wenn die Implementierung der einzelnen Schritte auf allen drei
Plattformen (FPGA, CPU,GPU) bitgenau gleich ist. In diesem Fall kann sehr einfach ein
automatisierter Test durchgeführt werden und anhand einer Referenz-Implementierung Ergebnisse für
verschiedenen Eingangsdaten überprüft werden. Wie zuvor erwähnt ist das Bitgenauigkeit meist nicht
gegeben, und deswegen müssen automatisierte Tests entwickelt werden, die auf den Ergebnissen der
Fehlerfortpflanzungs-Analyse basieren.
Optimierung durch Approximate Computing
Performance-Optimierung durch Approximate Computing heißt in diesem Fall, dass zum Beispiel
übergenaue Rechenschritte, deren Annäherung durch ungenauere Schritte zu wenig oder keiner
Qualitätseinbuße führt, ersetzt werden mit einfacheren Implementierungen, die Fehler erlauben.
Dadurch soll höhere Geschwindigkeit oder besserer Ressourcenverbrauch erreicht werden. Falls
diese Richtung gewählt wird, sollen also zunächst die Schritte identifiziert werden, bei denen eine
Performance-Optimierung lohnend ist, und im Idealfall trickreiche Optimierungen gefunden werden die
die Performance verbessern. Je nach Erfahrungen und Interesse, kann sich dieser Teil der Arbeit
mehr auf GPU-Prozessierung mit Cuda/OpenCL oder auf FPGA-Prozessierung mit VHDL
konzentrieren.
Für eine bessere Vorstellung des Themas im Folgendem einen groben Überblick über die geplanten
Tätigkeiten:
1) Fehlerfortpflanzung in einer Bildverarbeitungskette
2) Evaluierung von Rundungsfehlern und Unterschieden durch unterschiedliche Implementierung
von den in der Bildverarbeitung benötigten Rechenoperationen je nach Implementierung
(FPGA,CPU,GPU) und Zahlendarstellung (integer, float,...)
3) Weiterentwicklung in Richtung a) oder b)
a) Tests für die ganze oder einen Teil der Bildkette
i) Bildkette aus FPGA-Modulen (aus HIL Test)
ii) Bildkette in Trilian (GPU/CPU)
iii) Bildkette in Matlab (als Referenz)
b) Performance-Optimierung durch Approximate Computing
i) Mit dem Ziel Ressourcenverbrauch und/oder Datenrate auf dem FPGA zu verbessern
ii) Mit dem Ziel die GPU-Implemetierung zu beschleunigen
Diese Punkte dienen hier zur Orientierung, die Herangehensweise zur Beantwortung der oben
genannten Frage sollen im Rahmen einer Masterarbeit selbstständig geplant werden (in Abstimmung
und mit Beratung der Betreuer).
Wer Spaß an Bildverarbeitung hat, und wer Lust hat verschiedene Rechen-Plattformen
kennenzulernen, bitte schickt einfach eine Kurzbewerbung bestehend aus Lebenslauf und aktuellem
Notenauszug per Email.
Vorraussetzung sind Erfahrung mit mindestens einer der folgenden Tools/Sprachen: Matlab, C/C++,
VHDL, Cuda, OpenCL. Genaueres in persönlichem Gespräch.
Das Thema eignet sich somit für ein längeres Praktikum oder auch für eine Abschlussarbeit im
Bereich Elektrotechnik oder Informatik.
Bei Interesse an einer Werkstudententätigkeit, oder an einer Bachelorarbeit, wird das Thema
entsprechend eingegrenzt.
Weitere Infos: Dr. Tamara Seybold; Email: tseybold@arri.de

Betreuer:

Walter Stechele

Hardware accelerated Image Fusion

Hardware accelerated Image Fusion

Beschreibung

Automated driving systems require reliable information on the current environment in order to make proper decisions. Different sensor systems like cameras, LIDAR and radar contribute to this information. To minimize the possibility of incorrect recognitions or undetected objects the data provided by the different sensors must be exhaustively analyzed and compared to each other.

Such comparisons are only possible if the full surrounding is observed by each sensor system. As a single camera has a limited viewing angle multiple cameras are placed at different places around the vehicle to provide the required visual input.

 Additionally the processing time of the sensor inputs and data fusion must stay within limited bounds to ensure low end-to-end reaction times. For the camera systems this leads to a hardware accelerated implementation in order to achieve the required processing time.

Goal

The major goal of the thesis is the selection and implementation of a suitible algorithm to combine multiple images provided by different cameras to one image. Whereas the evaluation of the algorithm can be done with a pure software version e.g. with OpenCV the final version should run on Xilinx Zynq with suitable hardware accelerators implemented in the FPGA part.

Voraussetzungen

To successfully complete this project, you should already have the following skills and experiences:

  • Knowledge of a hardware description language e.g. VHDL
  • Solid C programming skills
  • Hands-on FPGA development experience, preferably using Xilinx Vivado
  • Self-motivated and structured work style

Kontakt

Dirk Gabriel
Room N2117
Tel. 089 289 28578
dirk.gabriel@tum.de

Betreuer:

Dirk Gabriel

Masterarbeiten

Approximate Computing für digitales Kino

Approximate Computing für digitales Kino

Stichworte:
Analyse und Abschätzung von Rechenungenauigkeiten, Programmierung (Matlab bzw. GPU/FPGA), Bildverarbeitung

Beschreibung

Für die Anwendung im professionellen Kino- und TV-Bereich muss die Bildqualität einer Digitalkamera
höchsten Ansprüchen genügen. Die Signalverarbeitung der Sensordaten in der Kamera besteht aus
vielen verschiedenen Schritten, die die Bildqualität beeinflussen. Diese Schritte werden in der Kamera
auf einem FPGA durchgeführt, bei Rohdatenaufnahme auf einem Rechner mit CPU und/oder GPU.
Das heißt, es müssen die gleichen Schritte für verschiedene Plattformen implementiert und optimiert
werden.
Durch Implementierung für verschiedene Rechenplattformen, können Abweichungen entstehen, zum
Beispiel, wenn float Operationen mit Integer Operationen angenähert werden. Diese
Rechenungenauigkeiten vergrößern sich dann ggfs. durch die Fehlerfortpflanzung über die vielen
Prozessschritte. Deswegen soll in der Arbeit untersucht werden, wie sich Abweichungen in einer
Bildverarbeitungskette fortsetzen (Fehlerfortpflanzung).
Wenn die Fehler am Ende der Prozesskette zu groß werden, kann die Qualität dramatisch reduziert
sein. Wie die Abweichungen zu bewerten sind wirde durch Verwendung von etablierten
Bildqualitätsmetriken beurteilt.
Auch kleine Fehler können jedoch Schwierigkeiten bereiten, und zwar besonders beim Testen der
Prozessschritte. Automatisiertes Testen wird schwierig bis unmöglich, und das Auffinden von Fehlern,
die nicht aus Rechenungenauigkeiten, sondern aus echten Unterschieden kommen, wird stark
erschwert.
Um die Qualitätsabschätzung und den Test von Bildverarbeitungsalgorithmen zu verbessern, soll in
diesem Praktikum eine genaue Analyse der Rechenungenauigkeiten auf verschiedenen Plattformen
durchgeführt werden: FPGA, CPU und GPU. Nachdem die einzelnen Operationen verglichen worden
sind, soll weiterhin die Fehlerfortpflanzung durch eine typische Kamera-Prozesskette untersucht
werden. Je nach Art der Arbeit, Interesse und verfügbarem Zeitrahmen, kann die Arbeit dann in
Richtung Testautomatisierung oder in Richtung Optimierung durch Approximate Computing fortgesetzt
werden.
Testautomatisierung
In Richtung Testautomatisierung können die Ergebnisse der Fehlerfortpflanzung direkt genutzt
werden, um Vorschläge für das Testen von Prozessschritten zu erarbeiten.
Das automatisierte Testen ist einfach, wenn die Implementierung der einzelnen Schritte auf allen drei
Plattformen (FPGA, CPU,GPU) bitgenau gleich ist. In diesem Fall kann sehr einfach ein
automatisierter Test durchgeführt werden und anhand einer Referenz-Implementierung Ergebnisse für
verschiedenen Eingangsdaten überprüft werden. Wie zuvor erwähnt ist das Bitgenauigkeit meist nicht
gegeben, und deswegen müssen automatisierte Tests entwickelt werden, die auf den Ergebnissen der
Fehlerfortpflanzungs-Analyse basieren.
Optimierung durch Approximate Computing
Performance-Optimierung durch Approximate Computing heißt in diesem Fall, dass zum Beispiel
übergenaue Rechenschritte, deren Annäherung durch ungenauere Schritte zu wenig oder keiner
Qualitätseinbuße führt, ersetzt werden mit einfacheren Implementierungen, die Fehler erlauben.
Dadurch soll höhere Geschwindigkeit oder besserer Ressourcenverbrauch erreicht werden. Falls
diese Richtung gewählt wird, sollen also zunächst die Schritte identifiziert werden, bei denen eine
Performance-Optimierung lohnend ist, und im Idealfall trickreiche Optimierungen gefunden werden die
die Performance verbessern. Je nach Erfahrungen und Interesse, kann sich dieser Teil der Arbeit
mehr auf GPU-Prozessierung mit Cuda/OpenCL oder auf FPGA-Prozessierung mit VHDL
konzentrieren.
Für eine bessere Vorstellung des Themas im Folgendem einen groben Überblick über die geplanten
Tätigkeiten:
1) Fehlerfortpflanzung in einer Bildverarbeitungskette
2) Evaluierung von Rundungsfehlern und Unterschieden durch unterschiedliche Implementierung
von den in der Bildverarbeitung benötigten Rechenoperationen je nach Implementierung
(FPGA,CPU,GPU) und Zahlendarstellung (integer, float,...)
3) Weiterentwicklung in Richtung a) oder b)
a) Tests für die ganze oder einen Teil der Bildkette
i) Bildkette aus FPGA-Modulen (aus HIL Test)
ii) Bildkette in Trilian (GPU/CPU)
iii) Bildkette in Matlab (als Referenz)
b) Performance-Optimierung durch Approximate Computing
i) Mit dem Ziel Ressourcenverbrauch und/oder Datenrate auf dem FPGA zu verbessern
ii) Mit dem Ziel die GPU-Implemetierung zu beschleunigen
Diese Punkte dienen hier zur Orientierung, die Herangehensweise zur Beantwortung der oben
genannten Frage sollen im Rahmen einer Masterarbeit selbstständig geplant werden (in Abstimmung
und mit Beratung der Betreuer).
Wer Spaß an Bildverarbeitung hat, und wer Lust hat verschiedene Rechen-Plattformen
kennenzulernen, bitte schickt einfach eine Kurzbewerbung bestehend aus Lebenslauf und aktuellem
Notenauszug per Email.
Vorraussetzung sind Erfahrung mit mindestens einer der folgenden Tools/Sprachen: Matlab, C/C++,
VHDL, Cuda, OpenCL. Genaueres in persönlichem Gespräch.
Das Thema eignet sich somit für ein längeres Praktikum oder auch für eine Abschlussarbeit im
Bereich Elektrotechnik oder Informatik.
Bei Interesse an einer Werkstudententätigkeit, oder an einer Bachelorarbeit, wird das Thema
entsprechend eingegrenzt.
Weitere Infos: Dr. Tamara Seybold; Email: tseybold@arri.de

Betreuer:

Walter Stechele

Hardware accelerated Image Fusion

Hardware accelerated Image Fusion

Beschreibung

Automated driving systems require reliable information on the current environment in order to make proper decisions. Different sensor systems like cameras, LIDAR and radar contribute to this information. To minimize the possibility of incorrect recognitions or undetected objects the data provided by the different sensors must be exhaustively analyzed and compared to each other.

Such comparisons are only possible if the full surrounding is observed by each sensor system. As a single camera has a limited viewing angle multiple cameras are placed at different places around the vehicle to provide the required visual input.

 Additionally the processing time of the sensor inputs and data fusion must stay within limited bounds to ensure low end-to-end reaction times. For the camera systems this leads to a hardware accelerated implementation in order to achieve the required processing time.

Goal

The major goal of the thesis is the selection and implementation of a suitible algorithm to combine multiple images provided by different cameras to one image. Whereas the evaluation of the algorithm can be done with a pure software version e.g. with OpenCV the final version should run on Xilinx Zynq with suitable hardware accelerators implemented in the FPGA part.

Voraussetzungen

To successfully complete this project, you should already have the following skills and experiences:

  • Knowledge of a hardware description language e.g. VHDL
  • Solid C programming skills
  • Hands-on FPGA development experience, preferably using Xilinx Vivado
  • Self-motivated and structured work style

Kontakt

Dirk Gabriel
Room N2117
Tel. 089 289 28578
dirk.gabriel@tum.de

Betreuer:

Dirk Gabriel

Forschungspraxis oder MSCE Forschungspraxis

Approximate Computing für digitales Kino

Approximate Computing für digitales Kino

Stichworte:
Analyse und Abschätzung von Rechenungenauigkeiten, Programmierung (Matlab bzw. GPU/FPGA), Bildverarbeitung

Beschreibung

Für die Anwendung im professionellen Kino- und TV-Bereich muss die Bildqualität einer Digitalkamera
höchsten Ansprüchen genügen. Die Signalverarbeitung der Sensordaten in der Kamera besteht aus
vielen verschiedenen Schritten, die die Bildqualität beeinflussen. Diese Schritte werden in der Kamera
auf einem FPGA durchgeführt, bei Rohdatenaufnahme auf einem Rechner mit CPU und/oder GPU.
Das heißt, es müssen die gleichen Schritte für verschiedene Plattformen implementiert und optimiert
werden.
Durch Implementierung für verschiedene Rechenplattformen, können Abweichungen entstehen, zum
Beispiel, wenn float Operationen mit Integer Operationen angenähert werden. Diese
Rechenungenauigkeiten vergrößern sich dann ggfs. durch die Fehlerfortpflanzung über die vielen
Prozessschritte. Deswegen soll in der Arbeit untersucht werden, wie sich Abweichungen in einer
Bildverarbeitungskette fortsetzen (Fehlerfortpflanzung).
Wenn die Fehler am Ende der Prozesskette zu groß werden, kann die Qualität dramatisch reduziert
sein. Wie die Abweichungen zu bewerten sind wirde durch Verwendung von etablierten
Bildqualitätsmetriken beurteilt.
Auch kleine Fehler können jedoch Schwierigkeiten bereiten, und zwar besonders beim Testen der
Prozessschritte. Automatisiertes Testen wird schwierig bis unmöglich, und das Auffinden von Fehlern,
die nicht aus Rechenungenauigkeiten, sondern aus echten Unterschieden kommen, wird stark
erschwert.
Um die Qualitätsabschätzung und den Test von Bildverarbeitungsalgorithmen zu verbessern, soll in
diesem Praktikum eine genaue Analyse der Rechenungenauigkeiten auf verschiedenen Plattformen
durchgeführt werden: FPGA, CPU und GPU. Nachdem die einzelnen Operationen verglichen worden
sind, soll weiterhin die Fehlerfortpflanzung durch eine typische Kamera-Prozesskette untersucht
werden. Je nach Art der Arbeit, Interesse und verfügbarem Zeitrahmen, kann die Arbeit dann in
Richtung Testautomatisierung oder in Richtung Optimierung durch Approximate Computing fortgesetzt
werden.
Testautomatisierung
In Richtung Testautomatisierung können die Ergebnisse der Fehlerfortpflanzung direkt genutzt
werden, um Vorschläge für das Testen von Prozessschritten zu erarbeiten.
Das automatisierte Testen ist einfach, wenn die Implementierung der einzelnen Schritte auf allen drei
Plattformen (FPGA, CPU,GPU) bitgenau gleich ist. In diesem Fall kann sehr einfach ein
automatisierter Test durchgeführt werden und anhand einer Referenz-Implementierung Ergebnisse für
verschiedenen Eingangsdaten überprüft werden. Wie zuvor erwähnt ist das Bitgenauigkeit meist nicht
gegeben, und deswegen müssen automatisierte Tests entwickelt werden, die auf den Ergebnissen der
Fehlerfortpflanzungs-Analyse basieren.
Optimierung durch Approximate Computing
Performance-Optimierung durch Approximate Computing heißt in diesem Fall, dass zum Beispiel
übergenaue Rechenschritte, deren Annäherung durch ungenauere Schritte zu wenig oder keiner
Qualitätseinbuße führt, ersetzt werden mit einfacheren Implementierungen, die Fehler erlauben.
Dadurch soll höhere Geschwindigkeit oder besserer Ressourcenverbrauch erreicht werden. Falls
diese Richtung gewählt wird, sollen also zunächst die Schritte identifiziert werden, bei denen eine
Performance-Optimierung lohnend ist, und im Idealfall trickreiche Optimierungen gefunden werden die
die Performance verbessern. Je nach Erfahrungen und Interesse, kann sich dieser Teil der Arbeit
mehr auf GPU-Prozessierung mit Cuda/OpenCL oder auf FPGA-Prozessierung mit VHDL
konzentrieren.
Für eine bessere Vorstellung des Themas im Folgendem einen groben Überblick über die geplanten
Tätigkeiten:
1) Fehlerfortpflanzung in einer Bildverarbeitungskette
2) Evaluierung von Rundungsfehlern und Unterschieden durch unterschiedliche Implementierung
von den in der Bildverarbeitung benötigten Rechenoperationen je nach Implementierung
(FPGA,CPU,GPU) und Zahlendarstellung (integer, float,...)
3) Weiterentwicklung in Richtung a) oder b)
a) Tests für die ganze oder einen Teil der Bildkette
i) Bildkette aus FPGA-Modulen (aus HIL Test)
ii) Bildkette in Trilian (GPU/CPU)
iii) Bildkette in Matlab (als Referenz)
b) Performance-Optimierung durch Approximate Computing
i) Mit dem Ziel Ressourcenverbrauch und/oder Datenrate auf dem FPGA zu verbessern
ii) Mit dem Ziel die GPU-Implemetierung zu beschleunigen
Diese Punkte dienen hier zur Orientierung, die Herangehensweise zur Beantwortung der oben
genannten Frage sollen im Rahmen einer Masterarbeit selbstständig geplant werden (in Abstimmung
und mit Beratung der Betreuer).
Wer Spaß an Bildverarbeitung hat, und wer Lust hat verschiedene Rechen-Plattformen
kennenzulernen, bitte schickt einfach eine Kurzbewerbung bestehend aus Lebenslauf und aktuellem
Notenauszug per Email.
Vorraussetzung sind Erfahrung mit mindestens einer der folgenden Tools/Sprachen: Matlab, C/C++,
VHDL, Cuda, OpenCL. Genaueres in persönlichem Gespräch.
Das Thema eignet sich somit für ein längeres Praktikum oder auch für eine Abschlussarbeit im
Bereich Elektrotechnik oder Informatik.
Bei Interesse an einer Werkstudententätigkeit, oder an einer Bachelorarbeit, wird das Thema
entsprechend eingegrenzt.
Weitere Infos: Dr. Tamara Seybold; Email: tseybold@arri.de

Betreuer:

Walter Stechele

Studentische Hilfskräfte

Weiterentwicklung eines Linux Client Deployment Systems mit Puppet

Weiterentwicklung eines Linux Client Deployment Systems mit Puppet

Beschreibung

Die Fakultät für Elektro- und Informationstechnik stellt für Studenten und Mitarbeiter eine Vielzahl von Linux PCs zur Verfügung. Ein Konfigurationsmanagement stellt sicher, dass eine einheitliche Konfiguration auf allen PCs vorhanden ist und jederzeit aktuell gehalten wird. Für diese Aufgaben setzen wir die Open Source Werkzeuge Foreman (für die Grundinstallation) und Puppet (für das Konfigurationsmanagement) ein. Deine Aufgabe ist es, als Werkstudent die Anpassung und Weiterentwicklung dieses Systems zu begleiten. Die konkreten Aufgaben werden dabei je nach Bedarf vergeben, aktuell geplant sind beispielsweise die Umsetzung einer automatisierten Testumgebung.
Diese Arbeit gibt dir die einmalige Möglichkeit, am „Schalthebel der Automatisierung“ zu sitzen, wie sie in aktuellen Cloud-Umgebungen üblich ist. Mit deiner Arbeit beeinflusst und verbesserst du so die Installation hunderter PCs. Um die Aufgabe erfolgreich umsetzen zu können, sind folgende Voraussetzungen notwendig:

  • sehr gute Linux-Kenntnisse
  • geübter Umgang mit Werkzeugen der Open Source Welt, wie git, Skript-Sprachen, etc.
  • Interesse an einer längerfristigen Beschäftigung
  • selbständige Arbeitsweise und der Wunsch, sich in neue Themen einzuarbeiten


Bitte erläutere in deiner Bewerbung kurz, warum du dich für das Thema interessierst und welche relevanten Vorkenntnisse du bereits gesammelt hast.

Betreuer:

Philipp Wagner

Master-/Diplomarbeiten


Bachelor-/Studienarbeiten


Forschungspraxis


Werkstudenten-Stellen

Interdisziplinäres Projekt


Vergebene Arbeiten