DE102006035229A1 - Beschleunigte Bildregistrierung mittels Parallelprozessoren - Google Patents

Beschleunigte Bildregistrierung mittels Parallelprozessoren Download PDF

Info

Publication number
DE102006035229A1
DE102006035229A1 DE102006035229A DE102006035229A DE102006035229A1 DE 102006035229 A1 DE102006035229 A1 DE 102006035229A1 DE 102006035229 A DE102006035229 A DE 102006035229A DE 102006035229 A DE102006035229 A DE 102006035229A DE 102006035229 A1 DE102006035229 A1 DE 102006035229A1
Authority
DE
Germany
Prior art keywords
parallel processors
histogram
blocks
matching algorithm
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102006035229A
Other languages
English (en)
Inventor
Yu Deuerling-Zheng
Christian Eisenacher
Adam K. Galant
Joachim Prof. Dr. Hornegger
Marc Prof. Dr. Stamminger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Friedrich Alexander Univeritaet Erlangen Nuernberg FAU
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Friedrich Alexander Univeritaet Erlangen Nuernberg FAU, Siemens AG filed Critical Friedrich Alexander Univeritaet Erlangen Nuernberg FAU
Priority to DE102006035229A priority Critical patent/DE102006035229A1/de
Publication of DE102006035229A1 publication Critical patent/DE102006035229A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30101Blood vessel; Artery; Vein; Vascular

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Beschleunigung der nicht-starren Bildregistrierung unter Verwendung von Parallelprozessoren. Dazu wird auf einer handelsüblichen Grafikkarte ein Block-Matching Algorithmus implementiert, der mittels Histogramm-basierten Ähnlichkeitsmaßen die Bewegungsvektoren für die einzelnen Blöcke berechnet. Alle Blöcke werden gleichzeitig und individuell bearbeitet. Das vollständige Bewegungsvektorfeld erhält man durch bilineare Interpolation. Optimierte Suchverfahren, z. B. die konjugierte Richtungssuche, werden angewendet. Der Algorithmus terminiert, wenn für alle Blöcke die optimale Verschiebung gefunden wird. Die Registrierung erfolgt komplett auf der Grafikkarte. Der Algorithmus ist vollautomatisch, präzise und sehr schnell. Die Registrierung von einem Bildpaar der Größe 1024 x 1024 mit der Subpixel-Genauigkeit von 0,1 Pixel dauert im Durchschnitt 0,7 Sekunden. Das Programm kann beispielsweise bei der Registrierung für die Digitale Subtraktions-Angiographie eingesetzt werden.

Description

  • Die Erfindung betrifft ein Verfahren zur Beschleunigung der nicht-starren Bildregistrierung unter Verwendung von Parallelprozessoren. Bildregistrierung ist eine Aufgabenstellung, die vor allem in der medizinischen Bildverarbeitung von Bedeutung ist. Aufgrund der Vielzahl der Untersuchungsmöglichkeiten können die medizinischen Bilder zu unterschiedlichen Zeitpunkten oder mit unterschiedlichen Geräten aufgenommen werden. Die Zusammendarstellung dieser Bilder kann dem Arzt bei der Diagnose wesentlich helfen. Dafür ist die geometrische Eins-zu-Eins Korrespondenz der zu bewertenden Objekte erforderlich. Die Aufgabe der Bildregistrierung besteht darin, diese Korrespondenz zu bestimmen.
  • Anwendungsbereich der Bildregistrierung ist beispielsweise die Digitale Subtraktions-Angiographie (DSA). DSA ist ein gängiges Verfahren zur Gefäßdarstellung. Es wird zunächst ein "Maskenbild" – ein digitales Röntgenbild vor Kontrastmittelgabe – aufgenommen. Dann erfolgen die Injektion des Röntgenkontrastmittels und die Aufnahme von "Kontrastbildern" – eine Serie zeitlich aufeinander folgender Bilder, in denen die Gefäße mit Kontrastmittel gefüllt sind. Im nächsten Schritt wird das Maskenbild mit jedem der Kontrastbilder subtrahiert, so dass nur noch die Zielstrukturen – also die kontrastmittelgefüllten Gefäße – dargestellt sind. Die resultierenden Differenzbilder sind aber nur diagnostisch aussagefähig, wenn die Strukturen in den beiden Eingabebildern gegeneinander ausgerichtet sind.
  • Da die Bilder zu unterschiedlichen Zeitpunkten aufgenommen sind, besteht häufig eine räumliche Veränderung der Strukturen, meistens durch Patientenbewegung. Obwohl eine Vielzahl von Ansätzen existiert, die Patientenbewegung vor und während der Aufnahme zu vermeiden, lassen sich aber nicht alle Arten von Bewegungen verhindern, beispielsweise die Herzschläge oder der Drang nach Husten oder Schlucken. Die rückwirkende Registrierung der zwei zu subtrahierenden Bilder ist daher erforderlich. Dafür wird eine Transformation bestimmt, die die Bewegung mathematisch beschreibt. Die auftretende geometrische Transformation besteht im Wesentlichen aus Translationen, aber auch geringe Rotationen, Skalierungen und sogar Deformationen sind vorhanden. Infolgedessen reicht die starre Registrierung üblicherweise nicht aus. Die nicht-starren Verfahren liefern zwar deutlich bessere Ergebnisse, sind aber auch mit hohem Rechenaufwand verbunden.
  • Ein bekannter Vertreter der nicht-starren Verfahren zur Bewegungskorrektur ist beispielsweise das Block-Matching. Der Verschiebungsvektor eines Pixels wird näherungsweise bestimmt, indem man die Ähnlichkeit zwischen den beiden Blöcken optimiert, die das Pixel im jeweiligen Bild umfassen (2). Um präzise Registrierungsergebnisse zu erlangen, sind robuste Ähnlichkeitsmaße gefragt. Wegen des Zuflusses von Kontrastmittel besteht in den beiden Frames eine Veränderung des durchschnittlichen Intensitätsspiegels; somit sind die Ähnlichkeitsmaße, die die Intensitätsdifferenz direkt analysieren, für DSA nicht geeignet. Dagegen bestimmen die Histogramm-basierten Ähnlichkeitsmaße die Korrespondenz nicht mit den eigentlichen Intensitätsdisparitäten, sondern mit der relativen Häufigkeit der Disparitäten. Es wurde in "Image Enhancement in Digital X-Ray Angiography" von E. Meijering, PhD thesis, Image Sciences Institute, Utrecht University, 2000, gezeigt, dass solche Ähnlichkeitsmaße sachgemäß robust gegen den Kontrastmittelzufluss sind.
  • Die Berechnung von Histogrammen ist bekanntermaßen rechenintensiv. Folglich ist der gesamte Algorithmus beim heutigen Stand der Technik nicht effizient genug, um dem Arzt sofort nach den Aufnahmen die registrierten Bilder zur Verfügung zu stellen.
  • Die Aufgabe wird erfindungsgemäß durch ein Verfahren zur nicht-starren Bildregistrierung mittels Parallelprozessoren mit folgenden Schritten gelöst:
    • – Anwendung eines Block-Matching-Algorithmus,
    • – Erstellung eines Histogramms,
    • – Ermittlung Histogramm-basierter Ähnlichkeitsmaße und
    • – Ermittlung der Verschiebungsvektoren.
  • Durch die Verwendung von Parallelprozessoren wird der Registrierungsablauf beschleunigt. Ein wesentliches Mitglied in der Familie der Parallelprozessoren ist die Grafikkarte. Grafikkarten dienen als Schnittstelle zur visuellen Ausgabe von Daten auf dem Bildschirm. In den letzten Jahren ist das Leistungsvermögen von Grafikkarten enorm gewachsen. Die Entwicklung der Grafikkarten ist schneller als Moore's Law und übertrifft die CPU-Entwicklung.
  • Über die OpenGL- oder DirectX-API kann man möglichst direkt auf die Hardware zugreifen. Diese Eigenschaft ermöglicht die Abbildung von allgemein gültigen (nichtgrafischen) Aufgaben auf die Grafik-Hardware.
  • In vorteilhafter Weise kann das Verfahren folgende Schritte aufweisen:
    • – Eine zweidimensionale nicht-starre Bildregistrierung erfolgt für Röntgenbilder der Digitalen Subtraktions-Angiographie, und
    • – der Block-Matching-Algorithmus wird auf einer Grafikkarte mit Parallelprozessoren durchgeführt, der mittels Histogramm-basierten Ähnlichkeitsmaßen die Verschiebungsvektoren berechnet.
  • Erfindungsgemäß lässt sich eine Datenübertragung zwischen CPU und GPU vermeiden, wenn die Verschiebungsvektoren auf der Grafikkarte gespeichert werden.
  • Es hat sich als vorteilhaft erwiesen, wenn die Parallelprozessoren den Block-Matching-Algorithmus für alle Blöcke parallel und zugleich individuell ausführen.
  • In vorteilhafter Weise können die Parallelprozessoren das Histogramm für ein Bild bzw. einen Bildausschnitt mit Hilfe von Framebuffer-Alpha-Blending erstellen und die Ähnlichkeitsfunktion mittels Sum-Reduction berechnen.
  • Erfindungsgemäß können die Parallelprozessoren das Suchen automatisch terminieren, wenn für alle Blöcke die optimale Verschiebung gefunden wurde, wobei die Ähnlichkeitswerte zurück zur CPU gelesen und dort bewertet werden können.
  • Es hat sich als vorteilhaft erwiesen, wenn die Parallelprozessoren die inkonsistenten Verschiebungen automatisch ermitteln und ggf. korrigieren.
  • In vorteilhafter Weise können die Verschiebungsvektoren auf die jeweiligen Blockmitten abgebildet und das vollständige Vektorfeld durch lineare Interpolation berechnet werden.
  • Es hat sich als vorteilhaft erwiesen, wenn der Block-Matching-Algorithmus für zweidimensionale oder dreidimensionale Bildregistrierung komplett auf Parallelprozessoren implementiert ist.
  • Die Robustheit der Ähnlichkeitsfunktion wird garantiert und das Bild kann der Einfachheit halber in eine ganzzahlige Anzahl von Blöcken geteilt werden, wenn erfindungsgemäß die Blockgröße 64×64 Pixel beträgt.
  • In vorteilhafter Weise können zuerst eine Pixel-Registrierung und anschließend eine Subpixel-Registrierung durchgeführt werden.
  • Das erfindungsgemäße Verfahren zur Beschleunigung der zweidimensionalen nicht-starren Bildregistrierung für Digitale Sub traktions-Angiographie (DSA) betrifft ein auf einer Grafikkarte abgebildeten Block-Matching Algorithmus, der mittels Histogramm-basierten Ähnlichkeitsmaßen die Verschiebungsvektoren ermittelt und folgende Schritte aufweist:
    • a) Lade das Maskenbild und das erste Kontrastbild als Texturen auf die Grafikkarte,
    • b) initialisiere zwei Texturen zur Speicherung der Verschiebungsvektoren und der Ähnlichkeitswerte für alle Blöcke,
    • c) verschiebe die Blöcke im Maskenbild mit den Vektoren in einer der Texturen gemäß Schritt b), berechne die Differenz beider Bilder und speichere das Resultat in einer anderen Textur,
    • d) erstelle die Disparitätshistogramme gleichzeitig für alle Blöcke,
    • e) berechne die Ähnlichkeitsfunktion mittels "Sum-Reduction",
    • f) vergleiche den aktuellen Ähnlichkeitswert mit dem der vorherigen Suchposition und bestimme die nächste Suchposition,
    • g) lese die Ähnlichkeitswerte zurück zu CPU und bestimme, ob für alle Blöcke die optimale Verschiebung gefunden wurde. Falls nein, gehe zurück zu Schritt b); falls ja, gehe weiter zu Schritt h),
    • h) ermittle und korrigiere die inkonsistenten Verschiebungen,
    • i) bilde die Vektoren auf entsprechende Blockmitten ab und berechne das vollständige Vektorfeld mittels bilinearer Interpolation und
    • j) lade das nächste Kontrastbild und gehe zu Schritt b). Das Programm ist terminiert, wenn alle Kontrastbilder bearbeitet sind.
  • Erfindungsgemäß kann ein kompletter Algorithmus für dreidimensionale nicht-starre Bildregistrierung auf Parallelprozessoren implementiert sein.
  • Die Erfindung ist nachfolgend anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert. Es zeigen:
  • 1 Ein das erfindungsgemäße Verfahren beschreibende Flussdiagramm,
  • 2 eine Skizze zur Erklärung des Block-Matching,
  • 3 eine Darstellung der Gegebenheiten bei der erschöpfende Suche,
  • 4 eine Darstellung zur Erläuterung der erfindungsgemäßen konjugierten Richtungssuche,
  • 5 eine Darstellung zur Erläuterung der erfindungsgemäßen Sum-Reduction nach der Ping-Pong-Methode,
  • 6 ein Maskenbild der Schulter; die Gefäße sind frei von Kontrastmittel,
  • 7 ein Maskenbild der Schulter; Blutgefäße mit Kontrastmittel,
  • 8 ein Subtraktionsbild vor der Registrierung, bei dem starke Artefakte vorhanden sind,
  • 9 ein Subtraktionsbild mit GPU-Registrierung mit Ganzpixel-Genauigkeit mit erheblich weniger Artefakten,
  • 10 ein Subtraktionsbild mit GPU-Registrierung mit Subpixel-Genauigkeit, bei dem die Artefakte fast verschwunden sind,
  • 11 ein Subtraktionsbild mit CPU-Registrierung zum Vergleich,
  • 12 ein Maskenbild des Kopfes; die Gefäße sind frei von Kontrastmittel,
  • 13 ein Maskenbild des Kopfes; Blutgefäße mit Kontrastmittel,
  • 14 ein Subtraktionsbild vor der Registrierung, bei dem geringe Artefakte vorhanden sind,
  • 15 ein Subtraktionsbild mit GPU-Registrierung mit Ganzpixel-Genauigkeit, bei dem keine Reduktion der Artefakte zu beobachten ist,
  • 16 ein Subtraktionsbild mit GPU-Registrierung mit Subpixel-Genauigkeit, bei dem Artefakte reduziert werden, und
  • 17 ein Subtraktionsbild mit CPU-Registrierung zum Vergleich, bei dem Artefakte nur zum Teil entfernt wurden.
  • In der 2 ist schematisch der Grundgedanke des Block-Matching-Algorithmus dargestellt, bei dem nach einer Verschiebung eines Punktes 1 von Interesse (POI) mit (xi,yi) die Verschiebung ermittelt werden soll, wobei ihn ein umgebendes Fenster 2 kennzeichnet. Gesucht wird das Fenster 3, das dem Fenster 2 am ähnlichsten ist und einen Verschiebungsvektor 4 aufweist, wobei der POI mit (xi + Δx, yi + Δy) sich in der Mitte dieses Fensters befindet.
  • Anhand der 3 werden nun die Bedingungen der bekannten vollen Suche erläutert. Das Suchfenster 5 weist eine Höhe von p und eine Breite von q auf. Die Kanten des Suchfensters 5 haben zu den Außenkanten des Bildes einen Abstand w, so dass Außenkanten des Bildes eine Abmessung von p + 2w bzw. q + 2w aufweisen. Bei der vollen Suche wird nun das Suchfenster 5 über die gesamte Fläche des Bildes bewegt, so dass sich ein Aufwand von (2w + 1)2 ergibt.
  • Bei der erfindungsgemäßen Richtungssuche startet die Suche entlang der x-Achse, wobei der Startpunkt (0) mit seinen beiden Nachbarpunkten (1) verglichen wird. Dann wird in der Richtung mit dem besten Ergebnis weitergesucht. Als Nächstes werden der Punkt (2) und dann der Punkt (3) gefunden, wobei der Punkt (3) eine Verschlechterung ergab. Nunmehr wurde von Punkt (2) entlang der y-Achse in beiden Richtungen weitergesucht, wobei der obere der Punkte (4) das beste Ergebnis erbrachte, so dass in dieser Richtung erst der Punkt (5) und dann der Punkt (6) verglichen wird. Da der Punkt (6) wieder eine Verschlechterung mit sich brachte, ist der Punkt (5) der gesuchte Punkt mit einer Verschiebung 4.
  • Block Matching:
  • Grafikprozessoren (Graphics Processor Units, GPU) besitzen die Eigenschaft, große Datenmengen parallel verarbeiten zu können. Infolgedessen soll die Implementierung des Block-Matching-Algorithmus entsprechend angepasst werden. Wird Block-Matching auf die CPU abgebildet, dann werden üblicherweise die Blöcke der Reihe nach (innerhalb des Suchraums) verschoben und die Ähnlichkeiten sequentiell untersucht. Um das Leistungsvermögen der GPU auszunutzen, ist es effizienter, das ganze Bild mit jedem der zu untersuchenden Bewegungsvektoren zu verschieben und dabei gleichzeitig die Ähnlichkeitsfunktion zu analysieren.
  • Andererseits müssen, um die optimierten Suchverfahren, wie z.B. die konjugierte Richtungssuche, zu benutzen, die Bewegungsvektoren für die Blöcke individuell berechnet werden können.
  • In dem Artikel "Fast Image Interpolation for Motion Estimation using Graphics Hardware" von Kelly et al., Proceedings of the SPIE, Volume 5297, Seiten 184 bis 194, 2004, sind einige Implementierungen von Block-Matching auf Grafikkarten vorhanden, aber nur erschöpfende Suchverfahren (exhaustive search) wurden dazu verwendet. Erfindungsgemäß wurde beim Gegenstand vorliegender Patentanmeldung jedem Block ein Index zugewiesen. Dies ermöglicht, die Blöcke individuell und gleichzeitig zu bearbeiten. Zudem werden die Verschiebungsvektoren auf der Grafikkarte gespeichert, um die Datenübertragung zwischen CPU und GPU zu vermeiden.
  • Es gibt zwei Faktoren, die den Rechenaufwand entscheiden, nämlich die Anzahl der Blöcke und die Blockgröße. Offensichtlich ist der Aufwand zu hoch, wenn für jedes Pixel ein Block definiert würde. Deshalb benutzen wir das bekannte kontrollpunktbasierte Registrierungsverfahren und definieren die Kontrollpunkte mit Hilfe eines regulären Gitters. Die Größe eines Blocks hängt mit der Robustheit der Ähnlichkeitsfunktion zusammen: Ein größerer Block beinhaltet zwar mehr statistische Information und liefert somit zuverlässigere Ergebnisse, ist aber rechenintensiver. Bei Meijering wird eine Größenordnung von 51×51 Pixel für angemessen gehalten. In der vorliegenden Arbeit haben wir die Größe von 64×64 Pixel genommen, so dass (a) die Robustheit der Ähnlichkeitsfunktion garantiert wird, und (b) das Bild der Einfachheit halber in eine ganzzahlige Anzahl von Blöcken geteilt werden kann, denn die medizinischen Bilder liegen meistens in einer Größenordnung von Zweierpotenzen vor.
  • Histogrammerstellung:
  • Histogramm-basierte Ähnlichkeitsmaße haben sich als robuste Gütemaße gegen Veränderung des Intensitätsspiegels bei der DSA bewährt. Die Bewertung solcher Gütemaße beansprucht aber den größten Teil der Rechenzeit. Ein Histogramm auf der CPU wird meistens als Feld implementiert, das so lang ist, wie es mögliche Intensitätswerte gibt. Als Indizes werden dabei die Intensitätswerte gewählt. Die Pixel mit gleichem Intensitätswert werden dabei in dem entsprechenden Feldelement (Histogrammeintrag) zusammen gezählt. Das Histogramm wird zunächst mit Nullen initialisiert. Dann wird das zu verarbeitende Bild durchlaufen und bei jedem Pixel der entsprechende Histogrammeintrag um Eins erhöht.
  • Wie oben beschrieben, benötigt man für die Histogrammerstellung zwei Operationen gleichzeitig: Gathering (Intensitäten der Pixel abrufen) und Scattering (bei jedem Pixel den entsprechenden Histogrammeintrag um Eins erhöhen). Dies war nicht möglich auf einer Grafikkarte der älteren Generation, denn im Vertex-Shader war nur Scattering und im Pixel-Shader nur Gathering möglich. In der vorliegenden Erfindung wurde die neue Besonderheit, Vertex-Texturing, eingesetzt. Mit Hilfe von Vertex-Texturing ist nun im Vertex-Shader auch Gathering realisierbar.
  • Ein anderes Merkmal, das im Sinne der Erfindung benutzt wird, ist das Framebuffer-Alpha-Blending. Alpha-Blending mischt die Farben der Pixel im Framebuffer, die auf die gleiche Position im Bildschirm ausgegeben werden. In dieser Arbeit werden die Pixel additiv gemischt. Im ersten Durchlauf (rendering pass) werden zwei Bilder pixelweise subtrahiert und das Resultat in eine Textur geschrieben. Im zweiten Durchlauf wird diese Textur dem Vertex Shader als Input übergeben, wobei die Intensität als x-Koordinate und der Blockindex jedes Texels als y-Koordinate ausgegeben. Somit werden alle Texels t innerhalb eines Blockes, die denselben Intensitätswert aufweisen, auf dieselbe Position des Bildschirms ausgegeben. Die Intensität des ausgegebenen Pixels p repräsentiert die Häufigkeit der Texels t; die Position des Pixels p weist auf die Intensität und die Blockzuordnung der Texels t hin. Vorteilhaft ist dabei, dass die Histogramme mittels dieser Vorgehensweise für alle Blöcke parallel auf der GPU erstellt werden können.
  • Berechnung der Ähnlichkeitsmaße:
  • Im Falle der optimalen Ausrichtung weist nur eine geringe Anzahl von Differenzwerten eine relativ hohe Häufigkeit auf, während die Mehrheit der Differenzwerte eine relativ niedrige Häufigkeit besitzen. Mit Histogramm-basierten Ähnlichkeitsmaßen wird diese Tatsache ausgenutzt, indem eine gewichtete Summation über die Histogrammeinträge durchgeführt wird. Geeignete Beispiele dafür sind z.B. die Energie des Dispari tätshistogramms und die Entropie des Disparitätshistogramms, wie es in Meijering beschrieben ist.
  • Während die Grafikkarten die Daten parallel verarbeiten, gibt es keinen globalen Akkumulator. Infolgedessen muss die Summation über mehrere Durchläufe erfolgen, beispielsweise durch fortschreitendes Downsampling. Dazu wird in jedem Durchlauf die lokale Summe von n×n Pixel einem Pixel der Zieltextur zugewiesen, wie dies anhand der 5 erläutert wird. Ein Bild wird in jedem Durchlauf um den Faktor n entlang jeder Achse reduziert; für ein Bild der Größe N×N werden logn N Durchläufe benötigt. Dieses Verfahren ist auch als "Sum-Reduction" bekannt. Die 5 zeigt auch, dass für diese Operation nur zwei Texturen verwendet werden, um die Gefahr von Speicherdefragmentierung zu vermeiden. Dabei werden von je 2×2 Pixeln im Target A die Summen gebildet und in je einem Pixel im Target B abgespeichert. Danach werden wieder je 2×2 Pixel im Target B zusammengefasst und in einem Pixel im Target A abgespeichert, so dass dort die Summe von 4×4 Pixeln enthalten ist.
  • Suchverfahren:
  • Ein wesentlicher Aspekt für das Block-Matching ist die Wahl eines geeigneten Suchverfahrens. Die erschöpfende Suche ist naheliegend, aber zugleich auch sehr rechenintensiv. Dabei werden alle (2w + 1)2 möglichen Positionen im Suchraum untersucht, wobei w die Anzahl der Pixel in alle Richtungen ist (2). Ein solches Verfahren ist damit nur bei kleinerer Datenmenge akzeptabel und wird hier nicht verwendet.
  • Verschiedene Optimierungsverfahren wurden untersucht. Ein häufig verwendetes Verfahren ist die konjugierte Richtungssuche (conjugate direction search), wie dies in dem Artikel "Predictive Coding Based an Efficient Motion Estimation" von Srinivasan et al., IEEE Transactions an Communications, Volume 33, Issue 8, Aug 1985, Seiten 888 bis 896, wobei die Suche zuerst entlang einer Richtung (z.B. horizontal) stattfindet, bis das Optimum erreicht wird. Danach erfolgt von diesem Punkt aus die Suche entlang der anderen Richtung (z.B. vertikal) (3). Die Komplexität bei der konjugierten Richtungssuche lässt sich einfach ableiten: Bei einer ganzzahligen Genauigkeit durchsucht man fünf Positionen im besten Fall und (2w + 3) im schlechtesten Fall.
  • Im Sinne der Erfindung wurde das Suchverfahren vollständig auf der Grafikkarte implementiert. Dafür werden zwei Texturen verwendet, deren Elemente vier-dimensionale Vektoren sind: In den Rot- und Grünkanälen stehen jeweils die x- und y-Komponente des Verschiebungsvektors; im Alpha-Kanal wird der aktuelle Ähnlichkeitswert gespeichert und der Blau-Kanal wird verwendet, um den Zustand des Suchvorgangs zu speichern. Es werden zwei Texturen benötigt, denn bei Verwendung von nur einer Textur können die Schreib- und Leseoperation nicht in einem Durchlauf erfolgen.
  • Wird für alle Blöcke der jeweils optimale Verschiebungsvektor gefunden, soll der Algorithmus sofort terminiert werden. Dazu werden die Texel in der zuletzt aktualisierten Textur mittels Sum-Reduction akkumuliert und zurück in die CPU gelesen. Der Wert im Blau-Kanal weist darauf hin, ob die optimale Verschiebung schon gefunden wurde.
  • Subpixel-Genauigkeit:
  • Auch Verzerrungen von einem Bruchteil eines Pixels können zu signifikanten Artefakten in dem subtrahierten Bild führen. Deshalb soll die Berechnung der Verschiebungsvektoren mit Subpixel-Genauigkeit ausgeführt werden. Ein verwendetes Verfahren bewertet die Ähnlichkeitsfunktion, wenn eines der Bilder um den Bruchteil eines Pixels verschoben wird. Dazu muss das verschobene Bild durch Resampling wieder erzeugt werden. Auf der Grafikkarte kann diese Operation mittels bilinearer Interpolation sehr schnell durchgeführt werden. In der vorliegenden Erfindung erfolgt das Suchen hierarchisch, d.h., zuerst wird die optimale Verschiebung mit der ganzzahligen Genauigkeit gefunden, dann wird mit einer Subpixel-Genauigkeit von 0,1 Pixel weitergesucht. Zudem haben wir erfindungs gemäß den Suchraum für Subpixel-Genauigkeit auf [–0.5, 0.5]×[-0.5, 0.5] beschränkt, unter der Annahme, dass die gesuchte Verschiebung näher an der gefundenen ganzzahligen Verschiebung liegt.
  • Erkennung und Korrektur der Inkonsistenz:
  • Die Blockgröße und das Ähnlichkeitsmaß sollen so gewählt werden, dass der Algorithmus zuverlässige Ergebnisse liefert. Dennoch kann gelegentlich auftretende Inkonsistenz nicht vollständig verhindert werden. Das Programm soll in der Lage sein, solche Inkonsistenzen automatisch zu erkennen und ggf. zu korrigieren. In der vorliegenden Arbeit erfolgt die Inkonsistenzprüfung, indem man einen Vektor mit seinen Nachbarn in der 8-Nachbarschaft vergleicht. Als Kriterien werden das Verhältnis der Länge und der Winkel zwischen den Vektoren genommen. Sind bei mehr als der Hälfte der Nachbarvektoren diese Kriterien erfüllt, wird der Vektor als inkonsistent bezeichnet. Ein inkonsistenter Vektor wird ersetzt durch den Durchschnittsvektor seiner konsistenten Nachbarn.
  • Interpolation der Verschiebungsvektoren:
  • Der Verschiebungsvektor für einen Block wurde gesucht, indem alle Pixel innerhalb dieses Blockes mit demselben Vektor verschoben wurden. Wenn aber der gefundene Vektor anschließend auf dieselbe Weise auf die Pixel abgebildet würde, entstehen Artefakte an den Rändern der Blöcke. Deshalb sollen sich die Vektoren nur auf die entsprechenden Blockmitten beziehen; das komplette Vektorfeld erhält man mittels bilinearer Interpolation. Während das ganze Bild in Blöcke zerlegt ist, befinden sich die Blockmitten alle innerhalb des Bildes. Das daraus resultierende Vektorfeld kann somit das Bild nicht vollständig abdecken. Dieses Problem haben wir gelöst, indem wir zusätzliche Punkte außerhalb des Bildes hinzufügen und den Null-Vektor an diesen Punkten zuweisen.
  • Algorithmus:
  • Die vorliegende Erfindung betrifft ein Verfahren zur Beschleunigung der zweidimensionalen nicht-starren Bildregist rierung für Digitale Subtraktions-Angiographie unter Verwendung von modernen Grafikkarten. Dazu wird ein Block-Matching-Algorithmus auf der Grafikkarte abgebildet, der mittels Histogramm-basierten Ähnlichkeitsmaßen die Verschiebungsvektoren mit folgenden Schritten berechnet:
    • S1 Lade das Maskenbild und das erste Kontrastbild als Texturen auf die Grafikkarte.
    • S2 Initialisiere zwei Texturen zur Speicherung der Verschiebungsvektoren und der Ähnlichkeitswerten für alle Blöcke.
    • S3 Verschiebe die Blöcke im Maskenbild mit den Vektoren in einer der Texturen von Schritt S2, berechne die Differenz der beiden Bilder und speichere das Resultat in einer Textur.
    • S4 Erstelle die Disparitätshistogramme gleichzeitig für alle Blöcke.
    • S5 Berechne die Ähnlichkeitsfunktion mittels "Sum-Reduction".
    • S6 Vergleiche den aktuellen Ähnlichkeitswert mit dem der vorherigen Suchposition und bestimme die nächste Suchposition.
    • S7 Lese die Ähnlichkeitswerte zurück zu CPU und bestimme, ob für alle Blöcke die optimale Verschiebung gefunden wurde.
    • S8 Falls nein, gehe zurück zu Schritt S2; falls ja, gehe weiter zu Schritt S9.
    • S9 Ermittle und korrigiere die inkonsistenten Verschiebungen.
    • S10 Bilde die Vektoren auf entsprechende Blockmitten ab und berechne das vollständige Vektorfeld mittels bilinearer Interpolation.
    • S11 Lade das nächste Kontrastbild.
    • S12 Sind alle Kontrastbilder bearbeitet? Falls nein, gehe zu Schritt S2; falls ja, Programm terminiert.
  • Im Folgenden werden noch zwei Berechnungsbeispiele angegeben, die aus dem Bereich einer menschlichen Schulter (6 bis 11) und aus dem Bereich eines menschlichen Kopfes (12 bis 17) stammen. Gezeigt werden jeweils die Input Bil der ohne (6 und 11) und mit Kontrastmittel (7 und 12), das Subtraktionsbild vor der Registrierung, das Subtraktionsbild nach der Registrierung mit Ganzpixel-Genauigkeit und mit Subpixel-Genauigkeit. Zum Vergleich dient außerdem ein in einer CPU registriertes Subtraktionsbild (11 und 17).
  • In dem Subtraktionsbild der Schulter sind in 8 starke Artefakte zu sehen, die bereits durch die Ganzpixel-Registrierung in 9 erheblich reduziert werden. Die Subpixel-Registrierung der 10 bringt nochmals eine Verbesserung.
  • In dem Subtraktionsbild des Kopfes sind in 14 nur geringe Artefakte zu sehen, die durch die Ganzpixel-Registrierung in 15 nicht reduziert werden. Erst die Subpixel-Registrierung in 16 beseitigt die Artefakte.
  • In beiden Fällen ist die Rechenzeitersparnis gegenüber der CPU-Registrierung enorm.

Claims (15)

  1. Verfahren zur nicht-starren Bildregistrierung mittels Parallelprozessoren mit folgenden Schritten: – Anwendung eines Block-Matching-Algorithmus, – Erstellung eines Histogramms, – Ermittlung Histogramm-basierter Ähnlichkeitsmaße und – Ermittlung der Verschiebungsvektoren.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, – dass eine zweidimensionale nicht-starre Bildregistrierung für Röntgenbilder der Digitalen Subtraktions-Angiographie erfolgt, und – dass der Block-Matching-Algorithmus auf einer Grafikkarte mit Parallelprozessoren durchgeführt wird, der mittels Histogramm-basierten Ähnlichkeitsmaßen die Verschiebungsvektoren berechnet.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Verschiebungsvektoren auf der Grafikkarte gespeichert werden.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Parallelprozessoren den Block-Matching-Algorithmus für alle Blöcke parallel und zugleich individuell ausführen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Parallelprozessoren das Histogramm für ein Bild bzw. einen Bildausschnitt mit Hilfe von Framebuffer-Alpha-Blending erstellen.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Parallelprozessoren die Ähnlichkeitsfunktion mittels Sum-Reduction berechnen.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Parallelprozessoren das Suchen automatisch terminieren, wenn für alle Blöcke die optimale Verschiebung gefunden wurde.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Ähnlichkeitswerte zurück zur CPU gelesen und dort bewertet werden.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Parallelprozessoren die inkonsistenten Verschiebungen automatisch ermitteln und ggf. korrigieren.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die Verschiebungsvektoren auf die jeweiligen Blockmitten abgebildet werden und das vollständige Vektorfeld durch lineare Interpolation berechnet wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass ein kompletter Block-Matching-Algorithmus für zweidimensionale oder dreidimensionale Bildregistrierung auf Parallelprozessoren implementiert wird.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die Blockgröße 64×64 Pixel beträgt.
  13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass zuerst eine Pixel-Registrierung und anschließend eine Subpixel-Registrierung durchgeführt werden.
  14. Verfahren zur Beschleunigung der zweidimensionalen nicht-starren Bildregistrierung für Digitale Subtraktions-Angio graphie (DSA), bei dem ein Block-Matching Algorithmus auf einer Grafikkarte abgebildet wird, der mittels Histogrammbasierten Ähnlichkeitsmaßen die Verschiebungsvektoren ermittelt, gekennzeichnet durch folgende Schritte: a) Lade das Maskenbild und das erste Kontrastbild als Texturen auf die Grafikkarte, b) initialisiere zwei Texturen zur Speicherung der Verschiebungsvektoren und der Ähnlichkeitswerte für alle Blöcke, c) verschiebe die Blöcke im Maskenbild mit den Vektoren in einer der Texturen gemäß Schritt b), berechne die Differenz beider Bilder und speichere das Resultat in einer anderen Textur, d) erstelle die Disparitätshistogramme gleichzeitig für alle Blöcke, e) berechne die Ähnlichkeitsfunktion mittels "Sum-Reduction", f) vergleiche den aktuellen Ähnlichkeitswert mit dem der vorherigen Suchposition und bestimme die nächste Suchposition, g) lese die Ähnlichkeitswerte zurück zu CPU und bestimme, ob für alle Blöcke die optimale Verschiebung gefunden wurde. Falls nein, gehe zurück zu Schritt b); falls ja, gehe weiter zu Schritt h), h) ermittle und korrigiere die inkonsistenten Verschiebungen, i) bilde die Vektoren auf entsprechende Blockmitten ab und berechne das vollständige Vektorfeld mittels bilinearer Interpolation und j) lade das nächste Kontrastbild und gehe zu Schritt b). Das Programm ist terminiert, wenn alle Kontrastbilder bearbeitet sind.
  15. Verfahren nach Anspruch 14, bei dem ein kompletter Algorithmus für dreidimensionale nicht-starre Bildregistrierung auf Parallelprozessoren implementiert wird.
DE102006035229A 2006-07-26 2006-07-26 Beschleunigte Bildregistrierung mittels Parallelprozessoren Withdrawn DE102006035229A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102006035229A DE102006035229A1 (de) 2006-07-26 2006-07-26 Beschleunigte Bildregistrierung mittels Parallelprozessoren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006035229A DE102006035229A1 (de) 2006-07-26 2006-07-26 Beschleunigte Bildregistrierung mittels Parallelprozessoren

Publications (1)

Publication Number Publication Date
DE102006035229A1 true DE102006035229A1 (de) 2008-03-27

Family

ID=39104356

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006035229A Withdrawn DE102006035229A1 (de) 2006-07-26 2006-07-26 Beschleunigte Bildregistrierung mittels Parallelprozessoren

Country Status (1)

Country Link
DE (1) DE102006035229A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117152221A (zh) * 2023-10-26 2023-12-01 山东科技大学 一种图像非刚性配准方法、系统、设备和存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DEUERLING-ZHENG, Yu; LELL, Michael; GALANT, Adam (u.a.): >>Motion compensation in digital subtrac- tion angiography using graphics hardware<<, July 2006, Computerized Medical Imaging and Graphics, Volume 30, Issue 5, S. 279-289, DOI:10.1016/j.comp medimag.2006.05.008
DEUERLING-ZHENG, Yu; LELL, Michael; GALANT, Adam (u.a.): >>Motion compensation in digital subtraction angiography using graphics hardware<<, July 2006, Computerized Medical Imaging and Graphics, Volume 30, Issue 5, S. 279-289, DOI:10.1016/j.comp medimag.2006.05.008 *
LEVIN, David; DEY, Damini; SLOMKA, Piotr J.: >>Acceleration of 3D, nonlinear warping using standard video graphics hardware: implementation and initial validation<<, 2004, Computerized Me- dical Imaging and Graphics, Volume 28, Issue 8, S. 471-483, DOI: 10.1016/j.compmedimag.2004.07. 005
LEVIN, David; DEY, Damini; SLOMKA, Piotr J.: >>Acceleration of 3D, nonlinear warping using standard video graphics hardware: implementation and initial validation<<, 2004, Computerized Medical Imaging and Graphics, Volume 28, Issue 8, S. 471-483, DOI: 10.1016/j.compmedimag.2004.07. 005 *
ZHU, Hui; FRIEDMAN, M.H.: >>Tracking 3-D coronary artery motion with biplane angiography<<, 2002 IEEE Biomedical Imaging, S. 605-608, DOI: 10.1109/ ISBI.2002.1029330 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117152221A (zh) * 2023-10-26 2023-12-01 山东科技大学 一种图像非刚性配准方法、系统、设备和存储介质
CN117152221B (zh) * 2023-10-26 2024-01-16 山东科技大学 一种图像非刚性配准方法、系统、设备和存储介质

Similar Documents

Publication Publication Date Title
DE60014338T2 (de) Verfahren und gerät zur bildverarbeitung
DE69625632T2 (de) Verfahren und Vorrichtung zum Erzeugen eines Bildes hoher Auflösung aus einer Folge von Bewegungsbildern niedriger Auflösung
DE69427210T2 (de) Verfahren und Gerät zur Erzeugung von dreidimensionaler Animation
EP2471040B1 (de) Verfahren und vorrichtung zum zusammenfügen von mehreren digitalen einzelbildern zu einem gesamtbild
DE69506856T2 (de) Verbessertes chromakey-system
DE69529622T2 (de) Auf mosaiken basiertes bildverarbeitungssystem und verfahren zum verarbeiten von bildern
DE19916612B4 (de) Verfahren und System zur Verbesserung diskreter Pixelbilder
EP2284795A2 (de) Quantitative Analyse, Visualisierung und Bewegungskorrektur in dynamischen Prozessen
DE102004043694B4 (de) Verfahren zur Segmentierung anatomischer Strukturen aus 3D-Bilddaten unter Nutzung topologischer Information
DE102004049676A1 (de) Verfahren zur rechnergestützten Bewegungsschätzung in einer Vielzahl von zeitlich aufeinander folgenden digitalen Bildern, Anordnung zur rechnergestützten Bewegungsschätzung, Computerprogramm-Element und computerlesbares Speichermedium
DE10296836T5 (de) System zur Modellierung statischer und dynamischer dreidimensioner anatomischer Strukturen durch 3D-Modelle
DE102005035012A1 (de) Hochleistungsschattierung von großen volumetrischen Daten unter Verwendung von partiellen Schirmraumableitungen
EP2528042B1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE69916808T2 (de) Verfahren und system zur strahlverfolgung
DE102010046507A1 (de) Berechnung der Detailstufe für die anisotrope Filterung
DE102004007637A1 (de) Verfahren zum Erzeugen eines Bildes mit erhöhter Auflösung unter Verwendung einer Mehrzahl von Bildern mit niedriger Auflösung
DE102010046259A1 (de) Bildrequenzumwandlung unter Verwendung von Bewegungseinschätzung und -kompensation
DE102010053458B4 (de) Verfahren zur Aufbereitung von IR-Bildern und korrespondierende Wärmebildkamera
DE4224568C2 (de) Vorrichtung und Verfahren zur Bildung der Anzeige eines dreidimensionalen sequentiellen tomografischen Flächenschattierungsbildes
EP3688725B1 (de) Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
DE602004012341T2 (de) Verfahren und System zur Bereitstellung einer Volumendarstellung eines dreidimensionalen Objektes
DE102006002914A1 (de) Mehrdimensionale Segmentierung basierend auf adaptiven begrenzenden Kasten- und Ellipsoid-Modellen
DE102008050049B4 (de) Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche
DE10254907B4 (de) Verfahren zur Oberflächenkonturierung eines dreidimensionalen Abbildes
DE10149357A1 (de) Verfahren und Vorrichtung zur optischen Vermessung eines Oberflächenprofils eines Objektes

Legal Events

Date Code Title Description
ON Later submitted papers
OP8 Request for examination as to paragraph 44 patent law
8120 Willingness to grant licences paragraph 23
8127 New person/name/address of the applicant

Owner name: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130201