Projektpraktikum Medizinische Visualisierung

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Projektstatusbericht
Projektmeeting Stufe I Kick-Off Stufe II
Prüfungspläne Bachelor-Thesis
Agenda DataAssist e.K. Probleme heutiger Ansätze der Netzwerkdokumentation Management der Netzwerkdokumentation Management von Rechnern Der NetDoc Server.
Computeria Zürich Treff vom 4. Oktober 2006 Microsoft Vista (RC1) der Nachfolger von Windows XP Ein Vortrag von René Brückner.
Lehrmaterial Grundlagen EDV
VR Framework mit Gestenerkennung
Projektpartner, Förderer und Beteiligungen: Was gestatten deutsche Verlage? Zugang zur Open Access-Politik deutscher Verlage über die deutsche Schnittstelle.
Wird euch präsentiert von Ben Polidori
Neuerungen in PalmOS® 5 Florian Schulze (SS 2003).
Intranet-Portal mit Microsoft SharePoint Portal Server
Alexander Au, Jonas Posniak
Atmel AVR JTAG Einführung
Java: Grundlagen der Sprache
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Web-Programmierung und Web 2.0-Technologien
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
Universität Paderborn - Softwaretechnikpraktikum im SS Gruppe 11 1 Softwaretechnikpraktikum im SS2001 Projektleiter:Prof. Dr. Wilhelm Schäfer Gruppenleiter:Dr.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
Inhalt Einführung –Spezifikation Aufbau des Tools –Aufnahme –Stille entfernen –Speicherung –Kommunikation mit den anderen Teilen.
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Aichinger Christian, Strasser Jürgen
24. März 2011 Bernhard Arnold CMS Global Trigger Die wunderbare Welt der Elektronik.
VisualARQVisualARQ ARCHITECTURAL TOOLS FOR RHINO.
Web-HMI einbinden SPS-Technik mit Video, Multimedia und Entertainmentsystemen kombinieren I Peter Steib.
Die professionelle Schließanlagenverwaltung
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
Saia® Systemkatalog Kapitel B2-Kommunikation & Interaktion
Holonische Multiagentensimulation
Mit 3 Schichte zum Erfolg
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Reasoner Semantische Interoperabilität
App-Entwicklung mit HTML5, CSS und JavaScript
Wie schreibe ich eine Diplom- bzw. Masterarbeit ?
GRUPPE 23. Ziele Risiken Fazit Programm AGENDA GRUPPE 23.
Kanton Zürich Direktion der Justiz und des Innern Gemeinde XY Kick-off, 21. März 2035 KOMPAKT.
Fachhochschule München, Projektstudium Chipkarten SS 2002 Qualitätssicherung/Tester Wozu braucht man Tester? Vorbereitung Durchführung Ergebnisse Resumée.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Tose – Gruppe Applikation
Wasserfallmodell und Einzelbegriffe
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Visualisierung als Unterstützung des Denkens Visualisierung semantischer Information
My Statistics Schinnerl, Mikes, Walehrach, Grieshofer PPM-Projekt
Verarbeitung und Computerinneres
Masc CJD Jugenddorf Offenburg Die Installation ProfilAC … powered by Polikles ® 25. bis 27. Januar 2005 masc ag, rotkreuz
U N I V E R S I T Ä T KOBLENZ · LANDAU Arbeitsgruppe Computergrafik 4. Mai / 35 Projektpraktikum AR mit korrekter Beleuchtung Entwicklung einer.
Aloaha Software – Martin Wrocklage 05451/943522) Aloaha Software Portfolio.
Echtzeitsimulation einer Gasturbine Real-Time-Simulation of a Gas-Turbine Till Hoffmann -Diplomarbeit - September 2000.
Nik Lutz, Stefan Feissli, Christof Seiler Diplomarbeit Verteidigung.
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Präsentation Projektarbeit Projektarbeit vom – Erstellt von Michael Schilling 2005.
TNT Mips Einführung zur Erstellung eigener Projektarbeiten
Team 8 Eva Reinl, Markus Leimbach
Die Hardware eines PC s.
Seminar: Software-Architektur Einführender Vortrag
Dieser Vortrag wird gesponsort von:
2ter Review, 13. Oktober 2000, Berlin/Dortmund Pixelpark IMD 2. Review Dortmund Christoph Brandt / Torsten Prill Pixelpark AG 1 BMBF:
Karsten Risseeuw Filemaker Module FileMaker Konferenz 2014 Winterthur Filemaker Module Einführung in die Vorteile modularer.
SecuCAM CST 1.0 Ein Tool zur Kameraüberwachung WARNIMONT Pol T3IF Projet de fin d‘études Lycée du Nord Wiltz.
Projekt Content Management Systeme (CMS): Java lernen mit Joomla E3FI1T 2015/16 Stephan Baldes
Technische Universität München Praktikum Mobile Web Teil Kollaboratives Bewerten und Filtern am Touchscreen Robert Eigner
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Praktikum Mobile Web 2.0 – 2.Teil Wolfgang Wörndl, Robert Eigner.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
[Name des Projektes] Post-Mortem
 Präsentation transkript:

Projektpraktikum Medizinische Visualisierung

Einführung Das Team Projektleitung: Matthias Biedermann Projektassistenz: Andreas Langs Projektteilnehmer: Marcus Berlage Martina Brümmer Johannes Hamecher Jan Hermes Thomas Höllt Christian Isleib Sören Kewenig Carsten Meffert

Einführung Die Thematik Visualisierung von medizinischen Volumendaten, die zum Beispiel von CT oder MRI geliefert werden im Gegensatz zum Oberflächen Rendering werden hierbei mehrschichtige oder transparente Informationen dargestellt, zum Beispiel das Innere eines Körpers

Einführung Eigenschaften von bekannten Systemen bislang nur 8 bit Datensätze unterstützt hauptsächlich CPU-Rendering maximal interaktive Performance Ein GPU Renderer in Wien entstanden,

Einführung Ziele des Projektpraktikums Einarbeitung in den Bereich der medizinischen Visualisierung Schwerpunkt: Visualisierung Entwicklung eines Programmes zur Visualisierung von Volumendaten Entwicklung einer Benutzeroberfläche für möglichsten großen Lerneffekt: wurde auf keine bestehende Software zurückgegriffen [Ausnahme DICOM-Reader] Ziele siehe Wiki!

Einführung Ziele des Projektpraktikums Verarbeitung von Volumendaten: DICOM, PGM Rendern auf CPU und GPU Ein- und Ausgabegeräte (Maus, (Spacemaus, Phantom)) Stereodisplay Ziele siehe Wiki!

Einführung Organisation des Praktikums Zeitraum des Praktikums: 1.Oktober 2005 bis 31.März 2006 Organisation Vorbereitungsphase: Vorträge Übungsphase: Übungsaufgabe 1. Programmierphase: CPU-Raycasting 2. Programmierphase: GPU-Raycasting Audit

Vorbereitungsphase Vorträge und Entscheidungen Grundlagen der Volumenvisualisierung Renderingverfahren Transferfunktion Optimierungsmöglichkeiten existierende API's GPU-Programmierung GUI-Programmierung Haptik Raycasting Studienarbeit Selbstentwicklung CG, GLSL wxWidgets, QT Renderingverfahren-> direktes Rendering Wxwidgets-> plattformunabhängig und OpenSource Boost -> GLSL oder CG --> keine allgemeine Treiberunterstützung für GLSL (?) Namenssuche -> Galenus

Vorbereitungsphase Systemanforderungen Windows-PC (entwickelt und getestet unter Windows XP) aktuelle Grafikhardware mit Unterstützung für Shader-Model 3.0 (empfohlen: Nvidia, ab NV4x) je nach Datensatz ausreichend Arbeitsspeicher (mind. 512 MB) Bibliotheken: Boost(version), wxWidgets(), cg 1.4, glew(), Opengl DICOM Parser

Programmierphase 1 Teamaufteilung Projektleiter CPU-Rendering Datenverarbeitung GUI-Workflow Ziele der ersten Projektphase erwähnen Vielleicht Gruppenstärke -CPU Raycasting -Raw/PGM lesen/schreiben -Filter (Mean /Gauss/Median) -Basisoberfläche

Programmierphase 1 Module und Daten GUI Datenhaltung CPU Dateien Volumen GUI Datenhaltung CPU Moduldiagramm vielleicht besser!!!! Ablauf des Programmes erklären Kamera und Transferfunktion fest

Programmierphase 1 Probleme und Lösungen Integration der einzelnen Komponenten nur anhand des Klassendiagramms zu kurze Planungsphase --> direktes Implementieren warf Probleme auf Schnittstellen waren nicht genau genug spezifiziert Änderungen wurden bis zur Integrationspahse nicht an andere weitergegeben Dokumentation aktuell halten und mehr Wissensaufbau (?) Entwicklung des Raycasters in Kommandobox, ohne GUI besser direkt integrieren Problme bei der Schnittstellenabsprache

Programmierphase 1 Ergebnisse CPU rendert erste Bilder (ein Bild ca. 45 Sek.) Filter implementiert Lesen und schreiben von Dateien möglich GUI besteht aus Grundgerüst (keine Interaktion) Soweit alle Ziele der Projektphase erreicht. GUI renderte ununterbrochen (ein Bild 45 Sek.) Noch keine Camerasteuerung Transferfunktion war Hardgecodet für CPU Dicom in arbeit Kurz vor Weihnachten erst fertig Pgm lesen/schreiben und Raw schreiben aus Übung 3 übernommen

Programmierphase 1 Ergebnisse CPU – Raycaster Maximum Intensity Soweit alle Ziele der Projektphase erreicht. GUI renderte ununterbrochen (ein Bild 45 Sek.) Noch keine Camerasteuerung Transferfunktion war Hardgecodet für CPU Dicom in arbeit Kurz vor Weihnachten erst fertig Pgm lesen/schreiben und Raw schreiben aus Übung 3 übernommen CPU – Raycaster Maximum Intensity

Programmierphase 1 Ergebnisse CPU – Raycaster Mean Value Soweit alle Ziele der Projektphase erreicht. GUI renderte ununterbrochen (ein Bild 45 Sek.) Noch keine Camerasteuerung Transferfunktion war Hardgecodet für CPU Dicom in arbeit Kurz vor Weihnachten erst fertig Pgm lesen/schreiben und Raw schreiben aus Übung 3 übernommen CPU – Raycaster Mean Value

Programmierphase 2 Teamaufteilung Projektleiter GPU-Shader GlueCode GUI-Design GleuCode: Daten an Shader geben, opengl code, shader verwalten(laden, binden) Die verschieden shader (emabs, Mean, firstlokalmax, Mip) -Echtzeitfähiges Raycasting (dual NV40) -Verschiedene Shader -12 bit -Shader und GUI verbinden -Kamerasteuerung -Code komplett integrieren -Transferfunktion -Dicom -Spacemouse

Programmierphase 2 Module und Daten GUI CPU Datenhaltung Gluecode GPU Kamera, Transferfunktion CPU Dateien Datenhaltung Volumen Volumen Kamera, Shader, Transferfunktion Die Generalisierung in Shader war im Nachhinnein sinnlos ( Vererbung war nicht einsetzbar , beide mussten komplett separat gehalten werden ) Nur Vererbung der Klassensignatur Gluecode Shader,Textur uniformvariablen GPU

Programmierphase 2 Probleme und Lösungen Struktur des GlueCodes Laden der Shader und zur Verfügungstellen der Parameter Integration der Komponeten stellte sich als schwierig heraus unbekannte Nebeneffekte Texturen Kapselung problematisch: keiner wusste genau was wo anders gemacht wurde Hinweis: übernehmen der Funktionen wie sie im Dummy geschrieben waren, war nicht ohne weiteres möglich GUI warf auch Probleme auf --> Texturen Kapselung: Bsp. GUI, Nebeneffekte wurden erst viel später klar, nach Einarbeitung so wusste Johannes nicht wie es beim GlueCode funktioniert wird und andersrum --> bessere Dokumentation, Planung, Ablaufdiagramme, usw. GlueCode wurde zweimal geplant (Klassenstruktur) und trotzdem nicht perfekt.

Programmierphase 2 Probleme und Lösungen fehlende Testumgebung für die Shader GlueCode-Erstellung dauerte länger als Shaderprogrammierung einfache Optimierungverfahren führten nicht zu Performancesteigerung mehr als 256 steps führen zu Bildfehlern Cg reagierte nicht vorhersehbar Instabilitäten in der GUI unerwartete Auswirkungen von einem Programmteil auf einen Anderen Hinweis: übernehmen der Funktionen wie sie im Dummy geschrieben waren, war nicht ohne weiteres möglich GUI warf auch Probleme auf --> Texturen, klicken in Transferfunktion vor laden der Volumen führte zum Absturtz Kapselung: Bsp. GUI, Nebeneffekte wurden erst viel später klar, nach Einarbeitung so wusste Johannes nicht wie es beim GlueCode funktioniert wird und andersrum --> bessere Dokumentation, Planung, Ablaufdiagramme, usw. Neues opengl Fenster in der GUI führte zu falschen Zuweisungen der Texturen cg: unterschiedliche Anordnung von Methoden führte zu unterschiedlichen Ergebnissen, uniforms wurden teilweise nicht korrekt übergeben,

Programmierphase 2 Ergebnisse Verschiedene Shader implementiert 12 bit fähig Transferfunktion für CPU und GPU Kamerasteuerung per Mouse (Maya) Funktionalitäten über GUI ansteuerbar Outputfenster für Statusausgaben DICOM lesen mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf

Programmierphase 2 Ergebnisse mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf GPU - Torso mit linearer Transferfunktion

Programmierphase 2 Ergebnisse mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf GPU - Torso mit veränderter Transferfunktion

Programmierphase 2 Ergebnisse Emission - Absorbtion Slice Viewer mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf Emission - Absorbtion Slice Viewer

Programmierphase 2 Ergebnisse Mean Value Maximum Intensity mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf Mean Value Maximum Intensity

Programmierphase 2 Ergebnisse CPU - Raycaster mehfaches laden, verschiedene shader, GPU/CPU wechsel, Steps, opacity Mouse dreht sich auch über den Kopf CPU - Raycaster

Fazit Eindrücke und Ausblicke Das Projekt wurde als Erfolg gewertet Die Hauptziele wurden erreicht (bis auf Spacemouse) Mehr Softwaretechnische Planung wäre sinnvoll gewesen Unbekanntes Problemfeld macht planen schwierig GLSL statt CG vielleicht besser Boost war im Nachhinein überflüssig Audit war hilfreich (vielleicht früher) Mögliche Erweiterungen: Haptik, Stereodisplay, Shader(Optimierung) Zusammenfassung des Projekts, Team, Stimmung Vorteil kleine Gruppe, gute Zusammenarbeit, homogene Gruppe… Boost: bei Dateihaltung hinderlich, Multithreading wäre mit wxsWidgets gelaufen Klassendiagramme nicht aktuell, hätten einmal festgelegt werden müssen Viele Ergänzungen im Nachhinein