Content uploaded by Christoph Palm
Author content
All content in this area was uploaded by Christoph Palm on Oct 14, 2015
Content may be subject to copyright.
GraphMIC: Medizinische Bildverarbeitung
in der Lehre
Alexander Eduard Szalo1, Alexander Zehner1,? , Christoph Palm1,2
1Regensburg - Medical Image Computing (ReMIC)
Ostbayerische Technische Hochschule Regensburg (OTH Regensburg), Regensburg
2Regensburg Center of Biomedical Engineering (RCBE)
OTH Regensburg und Universit¨
at Regensburg, Regensburg
info@graphmic.org
Kurzfassung. Die Lehre der medizinischen Bildverarbeitung vermittelt
Kenntnisse mit einem breiten Methodenspektrum. Neben den Grundla-
gen der Verfahren soll ein Gef¨
uhl f¨
ur eine geeignete Ausf¨
uhrungsreihen-
folge und ihrer Wirkung auf medizinische Bilddaten entwickelt werden.
Die Komplexit¨
at der Methoden erfordert vertiefte Programmierkennt-
nisse, sodass bereits einfache Operationen mit großem Programmierauf-
wand verbunden sind. Die Software GraphMIC stellt Bildverarbeitungs-
operationen in Form interaktiver Knoten zur Verf¨
ugung und erlaubt das
Arrangieren, Parametrisieren und Ausf¨
uhren komplexer Verarbeitungsse-
quenzen in einem Graphen. Durch den Fokus auf das Design einer Pipeli-
ne, weg von sprach- und frameworkspezifischen Implementierungsdetails,
lassen sich grundlegende Prinzipien der Bildverarbeitung anschaulich er-
lernen. In diesem Beitrag stellen wir die visuelle Programmierung mit
GraphMIC der nativen Implementierung ¨
aquivalenter Funktionen gegen-
¨
uber. Die in C++ entwickelte Applikation basiert auf Qt, ITK, OpenCV,
VTK und MITK.
1 Einleitung
Die Medizinische Bildverarbeitung nutzt ein breites Methodenspektrum von der
Bildverbesserung, der Merkmalsextraktion und Klassifikation, ¨
uber die Bild-
segmentierung und Bildregistrierung bis hin zur Visualisierung der Ergebnisse.
Die Besonderheiten medizinischer Bilder, insbesondere die unzureichende Ab-
grenzung von Gewebetypen, die Vielzahl an bildgebenden Modalit¨
aten und die
Varianz der Bildinhalte bei verschiedenen Patienten, aber auch beim gleichen
Patienten zu verschiedenen Zeitpunkten macht die besondere Herausforderung
?Der Autor lieferte den gleichen Beitrag zu dieser Arbeit wie der Erstautor
2 Szalo, Zehner & Palm
aus. Immer komplexere Verfahren versuchen, ¨
arztliches Vorwissen f¨
ur die au-
tomatisierte und damit objektive Verarbeitung nutzbar zu machen, verschiede-
ne Modalit¨
aten zu kombinieren oder L¨
osungsans¨
atze verschiedener Problemfel-
der gemeinsam zu bearbeiten. Ein Schl¨
ussel zur Medizinischen Bildverarbeitung
liegt damit in der detaillierten Kenntnis der gebr¨
auchlichen Verfahren in ihrer
Wirkung, der geeigneten Kombination und vor allem der problemspezifischen
Parametrisierung. Dabei m¨
ussen viele Methoden nicht von Grund auf imple-
mentiert werden. Vielmehr haben sich mehrere Programmbibliotheken etabliert,
die den Entwicklungsprozess vereinfachen sollen. Allerdings sind diese Biblio-
theken in hohem Maße komplex und auf Programmierebene nur mit großem
Aufwand kombinierbar. Die Lehre der Medizinischen Bildverarbeitung ist damit
konfrontiert, nichttriviale Methoden zu vermitteln und in praktischen ¨
Ubungen
zu vertiefen. Die Nutzung der professionellen Bildverarbeitungsbibliotheken zur
praktischen Umsetzung der Konzepte erfordert aber mitunter tiefgehende Pro-
grammierkenntnisse, die sich erst im Lauf des Studiums und der beruflichen Pra-
xis entwickeln. So sind schon einfache Vorverarbeitungsverfahren mit einem nicht
unerheblichen Aufwand zur Umsetzung verbunden, was schnelle Erfolgserlebnis-
se erschwert. Die Software GraphMIC soll den Zugang zur Bildverarbeitung im
Rahmen der Lehre erleichtern. Durch die Interaktion mit visuellen Komponen-
ten ist es m¨
oglich, Operationen aus den Bibliotheken ITK [1] und OpenCV [2]
in einem Graphen zu arrangieren, zu parametrisieren und auszuf¨
uhren. Features
wie Multithreading, die integrierte Visualisierung von zweidimensionalen (2D)
und dreidimensionalen (3D) Bilddaten und die Verarbeitung von Bildsequen-
zen erlauben das Erlernen von Methoden der Bildverarbeitung mit besonderem
Schwerpunkt auf den Einsatz in der Medizin.
2 Material und Methoden
2.1 Stand der Technik
Die Anwendungen MevisLab [3] und CASSANDRA (www.cassandra-vision.com)
setzen ebenfalls auf die visuelle Darstellung von Bildoperationen. MevisLab bie-
tet neben eigenen Modulen große Teile der Funktionen aus ITK und VTK [4].
Allerdings setzt ein effizientes Arbeiten umfangreiche Kenntnisse der Bibliothken
voraus. CASSANDRA integriert OpenCV zur Bildverarbeitung. Relevante Ei-
genschaften f¨
ur den Einsatz im medizinischen Bereich wie die Verarbeitung von
3D Bilddaten oder die Unterst¨
utzung bekannter Bildformate wie DICOM sind
nicht vorhanden. Das vielfach in der Lehre verwendete Programm ImageJ [5]
bietet zahlreiche Funktionen zur Interaktion mit Bilddaten, darunter die Erstel-
lung von Java Plugins, um die Wirkung eigener Methoden zu vermitteln [6]. In
ImageJ geht jedoch schnell aufgrund der gewachsenen Struktur die ¨
Ubersicht
und der Zusammenhang zwischen den Methoden verloren.
Die in GraphMIC verwendeten Bibliotheken ITK und OpenCV zeigen ver-
schiedene Anwendungsschwerpunkte. ITK ist f¨
ur die Verarbeitung medizinischer
Bilddaten ausgelegt und konzentriert sich insbesondere auf die Registrierung und
Segmentierung. Die Zahl der in ITK verf¨
ugbaren Bildoperationen bel¨
auft sich
GraphMIC: Medizinische Bildverarbeitung in der Lehre 3
aktuell auf ¨
uber 700. OpenCV stellt ca. 2500 Algorithmen insbesondere f¨
ur die
Echtzeitbildverarbeitung bereit.
2.2 Konzept
Ziel von GraphMIC ist die Entkopplung vom Verst¨
andnis der Methoden der Me-
dizinischen Bildverarbeitung und vertiefter Programmierkenntnisse. Das wird
durch die Abbildung der Bildoperationen auf einen Graphen erreicht, in dem
Operationen als Knoten und Kommunikationswege zum Datenaustausch von
Bildern und Parametern als Kanten darstellt werden. Durch Interaktion mit vi-
suellen Komponenten lassen sich Parameter und die Reihenfolge der Operationen
anpassen und erlauben so das Erlernen der Wirkung von Funktionen aus ITK
und OpenCV auf experimentellem Wege.
Vereinfachung durch visuelle Programmierung Nachfolgend stellen wir
die native Programmierung auf Basis des ITK Frameworks der visuellen Pro-
grammierung mit GraphMIC anhand eines einfachen Beispiels gegen¨
uber.
ITK nutzt das Template-Konzept von C++ sehr intensiv. Der Vorteil besteht
in der Wiederverwendbarkeit von Code f¨
ur diverse Bilddatentypen und Bilddi-
mensionen. Allerdings muss sp¨
atestens beim Einsatz der Bildverarbeitungsklas-
sen in einer Applikation der Typ des tats¨
achlich zu verwendenden Bildtypen
festgelegt werden (Abb. 1(1)). Mittels typedef wird dieser Typ auch f¨
ur die
verwendeten Operationen weitergegeben (Abb. 1(2)). Der Instantiierung der be-
teiligten Klassen (Abb. 1(3)) folgt die Spezifikation des zu verarbeitenden Bildes
Abb. 1. Beispielprogramm zum ITK BilateralImageFilter (vgl. [1]).
4 Szalo, Zehner & Palm
(Abb. 1(4)). Durch die Verkn¨
upfung der Ausg¨
ange (GetOutput) mit den Ein-
g¨
angen (SetInput) wird die Ausf¨
uhrungsreihenfolge festgelegt (Abb. 1(5–7)). In
dem Sinne ist ein Pipelinekonzept in ITK bereits angelegt. Der Parametrisie-
rung der Operationen (Abb. 1(5–7)) folgt die Ausf¨
uhrung der gesamten Pipeli-
ne (Update) (Abb. 1(7)). Umfangreiche Verarbeitungssequenzen sind im Code
schwierig nachzuvollziehen und zu warten. ¨
Anderungen der Pipeline erfordern ein
Anstoßen des Buildprozesses: z.B. Anwendung auf einen anderen Bildtypen, ei-
ner anderen Verarbeitungsreihenfolge oder einer anderen Parametrisierung. Das
Ergebnis der Pipeline ist nur durch Nutzung eines externen Viewers nachvoll-
ziehbar, Zwischenergebnisse m¨
ussen separat persistiert werden.
Abb. 2 zeigt die Umsetzung des Beispiels aus Abb. 1 mit GraphMIC. Bild-
operationen werden als Knoten und ihre Beziehungen als Kanten sofort erkenn-
bar. ¨
Andert sich die Konfiguration eines Knotens, werden entsprechende Ver-
bindungen farbig markiert. Damit wird der Verarbeitungszustand der Pipeline
verdeutlicht. Parameter einer Operation werden je nach Datentyp als Textbox,
Dropdown bzw. Checkbox abgebildet. Ausgef¨
uhrte Knoten geben die Berech-
nungszeit an und optionale Vorschaubilder liefern einen schnellen ¨
Uberblick ¨
uber
die Wirkung einer Methode. Im Gegensatz zum nativen Code bleibt der Bildtyp
in GraphMIC variabel, so dass der Graph z.B. durch Auswahl eines 3D Daten-
satzes eine unver¨
anderte Nutzung erlaubt, sofern die Operationen kompatibel
sind.
Performance durch native Operationen Die Datenstruktur eines Knotens
besitzt neben Logiken zur Thread- und Parameterverwaltung eine Referenz auf
die zugrundeliegende ITK bzw. OpenCV Operation. Alle Knoten k¨
onnen sowohl
mit Einzelbildern als auch Bildserien umgehen und wenden die Bildoperation f¨
ur
jedes in der Bildsequenz vorliegende Bild an. Bei der Verarbeitung wird grund-
s¨
atzlich mit dem Datentypen des Eingabebildes gearbeitet. Typkonversionen sind
Abb. 2. Umsetzung des ITK Beispiels aus Abb. 1 in GraphMIC.
GraphMIC: Medizinische Bildverarbeitung in der Lehre 5
m¨
oglich, m¨
ussen aber explizit vom Benutzer in den Graphen eingebunden wer-
den.
Integrierte Visualisierung Um bei der Betrachtung gewonnener Bilddaten
nicht auf externe Anwendungen angewiesen zu sein, ist ein auf VTK basierter
Viewer in GraphMIC integriert (Abb. 3) und erlaubt die Betrachtung von 2D
und 3D Bilddaten ohne ein vorheriges Schreiben auf den Datentr¨
ager zu erfor-
dern. Werkzeuge des Viewers erlauben die verschiedenen Interaktionen z.B. das
Setzen von Saatpunkten f¨
ur die Segmentierung oder die manuelle Vorregistrie-
rung verschiedener Modalit¨
aten.
Moderne Frameworks Die Applikation basiert auf dem Qt5 Framework und
erlaubt die plattformunabh¨
angige Programmierung (www.qt.io). Die QtQuick
Technologie erm¨
oglicht die Umsetzung eines modernen User Interfaces durch
Hardwarebeschleunigung. Der Anwendungskern profitiert von vielen High-Level
Komponenten wie der Qt Meta Language und dem signal-slot Konzept. MITK [7]
erlaubt es, die verschiedenen Kombinationen von Templateparametern in ITK
f¨
ur die dynamische Verwendung durch Makros zu umgehen.
3 Ergebnisse
Als Proof of Concept wurde die Software exemplarisch mit einer Reihe von Me-
thoden aus den Bibliotheken ITK (110) und OpenCV (40) umgesetzt, die sich
gemeinsam in einer Pipeline nutzen lassen. Abb. 3 zeigt das zugeh¨
orige User
Interface von GraphMIC. Die linke Seite bietet eine ¨
Ubersicht der angelegten
Pipelines. Der mittlere Bereich integriert den Editor zum Arrangieren der Kno-
ten. Die abgebildete Pipeline zeigt ein Beispiel f¨
ur die kombinierte Verarbeitung
von ITK und OpenCV Modulen. So wird die Kreisdetektion mit Hilfe eines
Moduls aus OpenCV berechnet, w¨
ahrend die Vorverarbeitung aus ITK Modu-
len besteht. Der rechte Fensterbereich enth¨
alt den Viewer, der die Analyse von
Ergebnisbildern bzw. Bildserien durch verschiedene Interaktionsm¨
oglichkeiten
unterst¨
utzt.
4 Diskussion
GraphMIC hat derzeit den Entwicklungsstand eines Prototyps und soll in Zu-
kunft ausgebaut werden. Neben der Integration von weiteren Modulen aus ITK
und OpenCV sollen vor allem zwei Aspekte weiterentwickelt werden: der Viewer
und benutzerdefinierte Knoten.
MITK stellt eine API f¨
ur einen Viewer mit umfangreicher Funktionalit¨
at zur
Verf¨
ugung. Sobald eine stabile Integration in Qt5 verf¨
ugbar ist, wird die MITK
Viewer API f¨
ur GraphMIC adaptiert und ersetzt den derzeitigen rudiment¨
a-
ren VTK Viewer. Ein weiteres Ziel ist die Implementierung benutzerdefinierter
Operationen mithilfe von Python. Diese sollen die Erstellung eigener Knoten
6 Szalo, Zehner & Palm
Abb. 3. Umsetzung einer Pipeline in GraphMIC zur Landmarkendetektion in Blockfa-
ceaufnahmen eines Rattenhirnschnittblocks. Die Landmarken dienen zur Registierung
der 2D Bilder zu einem 3D Modell.
erlauben und nahtlos in die Bildverarbeitungspipeline integriert werden k¨
onnen.
In Zukunft soll GraphMIC die Lehre der medizinischen Bildverarbeitung unter-
st¨
utzen. Dazu ist es geplant die Software frei zur Verf¨
ugung zu stellen.
Literaturverzeichnis
1. Ibanez L, Schroeder W, Ng L, Cates J. The ITK Software Guide Second Edition.
Kitware Inc.; 2005.
2. Bradski G, Kaehler A. Learning OpenCV: Computer Vision with the OpenCV
Library. Cambridge, MA: O’Reilly; 2008.
3. Koenig M, Spindler W, Rexilius J, Jomier J, Link F, Peitgen H. Embedding VTK
and ITK into a visual programming and rapid prototyping platform. Procs SPIE
Medical Imaging. 2006;.
4. Schroeder W, Martin K, Lorensen B. VTK Textbook 4th edition. Kitware, Inc.;
2006.
5. Rasband WS. ImageJ. U.S. National Institutes of Health, Bethesda, Maryland, USA;
1997.
6. Burge M, Burger W. Digitale Bildverarbeitung - Eine Einf¨
uhrung mit Java und
ImageJ 2nd Edition. Heidelberg: Springer Verlag; 2006.
7. Wolf I, Nolden M, Boettger T, Wegner I, Schoebinger M, Hastenteufel M, et al. The
MITK Approach. Insight Journal. 2005;.