DE112005000804T5 - Multi-Label-Bildsegmentierung mit GPU - Google Patents

Multi-Label-Bildsegmentierung mit GPU Download PDF

Info

Publication number
DE112005000804T5
DE112005000804T5 DE112005000804T DE112005000804T DE112005000804T5 DE 112005000804 T5 DE112005000804 T5 DE 112005000804T5 DE 112005000804 T DE112005000804 T DE 112005000804T DE 112005000804 T DE112005000804 T DE 112005000804T DE 112005000804 T5 DE112005000804 T5 DE 112005000804T5
Authority
DE
Germany
Prior art keywords
node
matrix
texture
image
segmentation
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.)
Ceased
Application number
DE112005000804T
Other languages
English (en)
Inventor
Shmuel Aharon
Leo Grady
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 Medical Solutions USA Inc
Original Assignee
Siemens Medical Solutions USA Inc
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 Siemens Medical Solutions USA Inc filed Critical Siemens Medical Solutions USA Inc
Publication of DE112005000804T5 publication Critical patent/DE112005000804T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/143Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20101Interactive definition of point of interest, landmark or seed
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Generation (AREA)

Abstract

Ein Verfahren zur Bildsegmentierung, Folgendes umfassend:
Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei die Saatpunkte mit einem Knoten in einer Saattextur korrespondieren und wobei jeder Saatpunkt eine andere Farbe hat;
Aufstellen einer Matrix für jeden Knoten, Gewichte der Kanten zu Nachbarknoten enthaltend;
Ermitteln einer Wahrscheinlichkeit für die Möglichkeit des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt;
Zuordnen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten; und
Ausgeben einer Segmentierung des interessierenden Bildes entsprechend den Knotenzuordnungen, wobei die Segmentierung Bereiche des interessierenden Bildes voneinander trennt.

Description

  • MULTI-LABEL-BILDSEGMENTIERUNG MIT GPU
  • Diese Anmeldung beansprucht Priorität vor der am 9. April 2004 eingereichten provisorischen Anmeldung Nr. US 60/561,169, die hier in Gänze in Form einer Bezugnahme enthalten ist.
  • HINTERGRUND DER ERFINDUNG
  • 1. Fachgebiet
  • Die vorliegende Erfindung betrifft das Gebiet der Bildsegmentierung und dort insbesondere ein System und ein Verfahren zum Durchführen einer Multi-label-Bildsegmentierung auf der Basis einer Vorgabe von Labels für Pixel.
  • 2. Stand der Technik
  • Segmentierung ist ein wichtiger Teil vieler Bildverarbeitungsanwendungen in der klinischen Medizin, darunter solchen für anatomische Analysen und Modellierungen, morphologische Messungen, Visualisierungen und Operationsplanungen. Leider ist die Segmentierung oft eine herausfordernde Aufgabe, und zwar wegen der Schwierigkeiten, die durch bei medizinischen Bildern oft vorkommenden Mängel wie Rauschen, begrenzter Kontrast und unscharfe Grenzen entstehen.
  • Es ist bereits vorgeschlagen worden, eine Multi-label-Bildsegmentierung ohne rekursiv angewandte binäre Segmentierung unter Nutzung automatischer oder halbautomatischer Verfahren durchzuführen. Solche Zufallswanderer-Verfahren (Random-Walker-Verfahren) haben bessere Leistung als andere bis heute bekannten Segmentierungsalgorithmen gezeigt. Allerdings sind die Zufallswanderer-Verfahren durch die Rechenzeit begrenzt. Es sind bereits Verfahren vorgeschlagen worden, um die GPU bei der Bildsegmentierung zu beschleunigen. Diese Verfahren haben jedoch Nachteile, dazu zählen Leckeffekte der Segmentierung wegen unscharfer Grenzen, eine schlechte Leistung in Fällen, in denen Pixelintensitäten nicht klar durch eine Grenze getrennt sind, Versagen beim Erkennen von Objektgrenzen etc.
  • Es werden deshalb ein System und ein Verfahren benötigt, um ein Zufallswanderer-Verfahren unter Nutzung einer GPU-Implementierung schneller zu machen und für den interaktiven Betrieb ausreichende Bildraten zu erreichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst ein Verfahren zur Bildsegmentierung Folgendes: das Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei diese Saatpunkte mit einem Knoten in einer Saattextur korrespondieren, wobei jeder Saatpunkt eine andere Farbe hat; das Aufstellen einer Matrix für jeden Knoten, einschließlich der Gewichte der Kanten zu den jeweiligen Nachbarknoten; das Berechnen der Wahrscheinlichkeiten für die Möglichkeit, einen des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt; das Zuweisen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten; und das Ausgeben einer gemäß den Knotenzuweisungen durchgeführten Segmentierung des interessierenden Bildes, wobei diese Segmentierung das interessierende Bild in Bereiche untergliedert.
  • Das verfahren beinhaltet das Berechnen der Kantengewichte zwischen allen Knoten in der Saattextur.
  • Das Aufstellen der Matrix besteht im Aufstellen einer Laplace'schen Matrix mit fünf Diagonalenbändern, von denen vier die Kantengewichte enthalten und ein Hauptband die Summe der vier Nebendiagonalenbänder darstellt.
  • Das verfahren beinhaltet das Speichern der Laplace'schen Matrix der Kantengewichte als eine Textur von RGBA-Kanälen.
  • Das Verfahren beinhaltet das Berechnen der Summe für jeden Knoten sowie das Berechnen eines Vektors der Summen für jede Farbe, wobei die Farben RGBA-Kanäle sind. Das Berechnen der Summe für jeden Knoten umfasst auch das Berechnen eines Skalarprodukts der Nachbarn des jeweiligen Knotens.
  • Das Verfahren beinhaltet das Berechnen der Wahrscheinlichkeiten in Form eines konjugierten Gradientenvektors.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung gibt es eine maschinenlesbare Programmspeichervorrichtung, die konkret ein Programm aus von der Maschine ausführbaren Befehlen verkörpert, um die Verfahrensschritte der Bildsegmentierung durchzuführen. Das Verfahren beinhaltet Folgendes: das Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei diese Saatpunkte mit einem Knoten in einer Saattextur korrespondieren, wobei jeder Saatpunkt eine andere Farbe hat; das Aufstellen einer Matrix für jeden Knoten, einschließlich der Gewichte der Kanten zu dessen Nachbarknoten; das Berechnen einer Wahrscheinlichkeit für die Möglichkeit des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt; das Zuweisen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten; und das Ausgeben einer gemäß den Knotenzuweisungen durchgeführten Segmentierung des interessierenden Bildes, wobei diese Segmentierung das interessierende Bild in Bereiche untergliedert.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung gibt es eine mit einem Bus eines Computersystems verbundene Grafikverarbeitungseinheit zum Verarbeiten einer Laplace'schen Matrix von Kantengewichten zwischen Knoten, wobei jeder Knoten mit einem Pixel eines interessierenden Bildes korrespondiert; wobei die Grafikverarbeitungseinheit zum Berechnen einer Ausgabe-Textur dient, die Vektordaten für jeden RGBA-Kanal und ein Label für jeden Knoten enthält, wobei das Label mit einem RGBA-Kanal korrespondiert; und wobei die Grafikverarbeitungs einheit zum Ausgeben einer Segmentierung des interessierenden Bildes entsprechend dem Label für jeden Knoten dient.
  • Die Laplace'sche Matrix ist eine Texturrepräsentation der Kantengewichte zwischen in einer Speichereinrichtung gespeicherten Knoten, wobei diese Speichereinrichtung entweder Teil der Grafikverarbeitungseinheit ist oder an den Bus angeschlossen ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weiter unten werden bevorzugte Ausführungsformen der vorliegenden Erfindung detaillierter beschrieben, dabei wird Bezug auf die beigefügten Zeichnungen genommen werden. Es gibt folgende Zeichnungen:
  • 1 zeigt ein Blockschaltbild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 zeigt eine Reduktionsoperation gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 4A zeigt eine Laplace'sche Matrix gemäß einer Ausführungsform der vorliegenden Erfindung, die zu einem 3×3-Graph/Bild korrespondiert;
  • 4B zeigt einen 3×3-Graph/Bild gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 5 zeigt eine L-metrische Textur zum Speichern von vier Gewichten der Kanten zu den Nachbarknoten eines Randknotens gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 6 zeigt einen konjugierten Gradientenvektor gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 7A bis 7D zeigen Matrizen mit Wahrscheinlichkeiten gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 8 zeigt Saatpunkte in einem interessierenden Bild gemäß einer Ausführungsform der vorliegenden Er findung.
  • DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • Zum Beschleunigen eines Zufallswanderer-Verfahrens zur Bildsegmentierung wird eine Grafikverarbeitungseinheit (GPU) eingesetzt. Die GPU bietet Folgendes: Gleitkomma-Texturen; Rändern in Form von (mehreren) Texturen; programmierbare Pixeleinheiten, die Shader mit arithmetischen Befehlen benutzen und mit wahlfreiem Zugriff auf Texturdaten arbeiten; parallele Berechnungen (SIMD instructions) mit vier Werten pro Texturelement (RGBA); parallel arbeitende Pixeleinheiten (bis zu 16); und eine Gesamtleistung, die höher als die der CPU ist.
  • Der Einsatz einer GPU führt dazu, dass ein Zentralprozessor (CPU) praktisch nichts zu tun hat, soweit es die Bildsegmentierung betrifft. Während der Segmentierung finden fast keine Datenübertragungen vom oder zum Grafikspeicher statt.
  • Ein Verfahren zum Segmentieren gemäß einer Ausführungsform der vorliegenden Erfindung arbeitet so, dass es vier verschiedene Vektoren in RGBA-Texturelemente packt, um vier lineare Systeme gleichzeitig lösen zu können. Das Verfahren stellt eine dünn besetzte Matrix als Textur auf, die von einer Grafikverarbeitungseinheit (GPU) verarbeitet wird. Die Datenübertragung zwischen einem Zentralprozessor (CPU) und der GPU ist mengenmäßig beschränkt und führt somit zu einer Verkleinerung der mit Datenübertragungen verbundenen Geschwindigkeitseinbuße. Gegeben sei eine Menge von Pixeln oder Voxeln, die ein Nutzer als zu K Bildlabeln gehörend spezifiziert hat, die verbleibenden Pixel können mittels eines auf harmonischen Potentialen basierenden Multi-label-Segmentierungsverfahrens gekennzeichnet werden. Nun stelle man sich eine Person vor, die – für ein beliebiges K und ein Bild oder Volumen beliebiger Ab messungen – bei jedem Voxel losgeht und auf einem Zufallsweg so lange durch das Volumen wandert, bis sie auf ein vom Benutzer mit Label versehenes Pixel, im Folgenden „Label" genannt, trifft. Der erwartete Prozentsatz von solchen Zufallswanderern, die zuerst ein Label i erreichen, werde mit pi bezeichnet. Falls die Wanderer es zu vermeiden suchen, zum Erreichen eines benachbarten Voxel einen steilen Bildgradienten, etwa eine Kante, zu überqueren, so ist die Wahrscheinlichkeit dafür, dass ein an einem gegebenen Pixel losgegangener Wanderer zuerst auf das Label i trifft, ein Maß für die Stärke der Zugehörigkeit dieses Pixels zum Label i. Sobald für jedes Voxel die Menge {p1, p2, ..., pk} berechnet worden ist, kann dieses Voxel einem bestimmten Label zugeordnet werden, indem man hierfür das Label mit der höchsten Wahrscheinlichkeit auswählt, also dasjenige i, das mit maxi(pi) korrespondiert.
  • Das auf harmonischen Potentialen basierende Multi-label-Segmentierungsverfahren (MLHPS-Verfahren) löst ein großes, dünn besetztes, symmetrisches, positiv definites Gleichungssystem für jedes der K vom Nutzer eingegebenen Label. Das Besetzungsmuster der dünn besetzten Matrix ist stark strukturiert, und zwar in der Weise, dass die zu einem beliebigen Knoten gehörende Zeile im Raster bezüglich aller seiner Nachbarknoten ausschließlich Werte ungleich null enthält. Deshalb braucht man die Matrix nicht als solche zu speichern, sondern nur die Werte, die nicht null sind. Die Lösung jedes Gleichungssystems liefert die Wahrscheinlichkeiten dafür, dass bei jedem Voxel ein von dort losgehender Zufallswanderer zuerst ein bestimmtes vom Benutzer spezifiziertes Label erreicht. Die endgültige Segmentierung wird dann durchgeführt, indem man jedes Voxel demjenigen Segment zuordnet, für das sich die höchste Wahrscheinlichkeit ergeben hat.
  • Die Bilddaten, die markierten/unmarkierten Voxel, die System matrix, die Vektoren der rechten Seite und die Lösungsvektoren werden in der GPU alle in Form von Gleitkomma-Texturen repräsentiert. Die Berechnungen werden durchgeführt, indem man ein rechtwinkliges Grundelement in die Gleitkomma-Ergebnistextur rendert, die relevanten Vektoren und Matrizen als Eingangs-Texturen bereitstellt und die Berechnungen in einem Teilprogramm durchführt. Durch Verwenden unterschiedlicher Texturen als Eingabe/Ausgabe und durch Laden unterschiedlicher Teilprogramme kann man den Berechnungsfluss steuern.
  • Es ist klar, dass die vorliegende Erfindung durch unterschiedliche Formen von Hardware, Software, Firmware, Spezialprozessoren oder eine Kombination davon realisiert werden kann. Bei einer Ausführungsform kann die vorliegende Erfindung in Software realisiert werden, nämlich in Form eines Anwendungsprogramms, das konkret in einer Programmspeichervorrichtung verkörpert ist. Das Anwendungsprogramm kann auf eine Maschine beliebiger geeigneter Architektur hochgeladen und ausgeführt werden.
  • Es werde nun 1 betrachtet; gemäß einer Ausführungsform der vorliegenden Erfindung kann ein Computersystem 101 zum Realisieren der vorliegenden Erfindung unter anderem eine Grafikverarbeitungseinheit (GPU) 102, einen Speicher 103, eine Ein-/Ausgabeschnittstelle (I/O) 104 und einen Zentralprozessor (CPU) 109 umfassen. Der Speicher 103 kann sich in der GPU befinden oder er kann ein Hauptspeicher sein. Das Computersystem 101 ist normalerweise über die Ein-/Ausgabeschnittstelle 104 mit einer Bildschirmanzeige 105 und verschiedenen Eingabegeräten 106 wie etwa einer Maus und einer Tastatur verbunden. Zu den Hilfsschaltungen können Schaltungen wie Caches, Stromversorgungen, Taktgeneratoren und ein Kommunikationsbus gehören. Der Speicher 103 kann in Form von Speicher mit wahlfreiem Zugriff (RAM), Nur-Lese-Speicher (ROM), Plattenlaufwerk, Bandlaufwerk etc. oder einer Kombination davon realisiert sein. Die vorliegende Erfindung kann in Form einer im Speicher 103 gespeicherten und von der GPU 102 ausgeführten Routine 107 realisiert sein, die das von der Signalquelle 108 gelieferte Signal verarbeitet. Das Computersystem 101 als solches ist ein universelles Computersystem, das beim Ausführen der Routine 107 der vorliegenden Erfindung zu einem Spezialcomputersystem wird.
  • Die Computerplattform 101 beinhaltet auch ein Betriebssystem sowie Mikrobefehlscode. Die im vorliegenden Text beschriebenen verschiedenen Verarbeitungsvorgänge und Funktionen können entweder Teil des Mikrobefehlscodes sein oder aber Teil des über das Betriebssystem ausgeführten Anwendungsprogramms (oder beides). Außerdem können an die Computerplattform verschiedene Peripheriegeräte wie beispielsweise zusätzliche Datenspeichergeräte und ein Drucker angeschlossen sein.
  • Es ist auch klar, dass – weil einige der in den beigefügten Zeichnungen abgebildeten Systemkomponenten und Verfahrensschritte in Form von Software realisiert sein können – sich die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder den Verfahrensschritten) je nach der Weise, in der die vorliegende Erfindung programmiert ist, unterscheiden können. Mit dem in diesem Text dargelegten Wissen über die vorliegende Erfindung kann ein Fachmann mit auf diesem Gebiet durchschnittlichen Fähigkeiten diese und ähnliche Realisierungen oder Konfigurationen der vorliegenden Erfindung konzipieren.
  • PROGRAMMIERUNG DER GPU
  • Eine GPU kann auch für andere Aufgaben als zum Rendern von Bildern genutzt werden. Programmierer von Universal-GPUs bilden Verfahren verschiedener Arten auf die spezielle Architektur von GPUs ab. Wie in diesem Text beschrieben, können Texturen als Speicherungs- und Änderungsprozesse von Daten betrachtet werden.
  • Für Gleitkomma-Texturen und Präzision arbeiten moderne Grafikkarten mit Texturen mit Gleitkomma-Genauigkeit in jedem Texel. Die Beispiele in diesem Text beziehen sich auf 2D-Texturen. 1D- und 3D- Texturen können ebenfalls erzeugt werden, jedoch mit Abstrichen an die Leistung bzw. die Aktualisierungsgeschwindigkeit.
  • Texturen sind zweidimensionale Felder aus Gleitkommawerten, aber jedes Feldelement (Texel) kann bis zu vier Werte aufnehmen. Eine Textur ist die zum Speichern von Vektoren oder Matrizen benutzte Datenstruktur in der GPU.
  • Die neuesten Grafikkarten von NVIDIA und ATI bieten eine Gleitkommagenauigkeit von 32 bzw. 24 Bit. Tendenziell arbeiten die NVIDIA-Karten präziser, die ATI-Karten sind aber viel schneller. Leider entspricht keine der Gleitkomma-Implementierungen dem IEEE-Standard.
  • Bei Texturen als Render-Ziel kann das Aktualisieren von Werten in einer Textur dadurch erfolgen, dass man die Textur als das Render-Ziel festlegt und ein vierseitiges Rechteck darauf rendert. Das vierseitige Rechteck deckt den zu aktualisierenden Teil der Textur ab.
  • Für jedes abgedeckte Texel wird ein Pixel-shader-Programm ausgeführt um das Texel zu aktualisieren. Shader-Programme ermöglichen das Einlesen anderer Eingabe-Texturen mit wahlfreiem Zugriff, das Durchführen arithmetischer Operationen und das dynamische Springen im Kontrollfluss. Je höher die Shader-version, umso größer die Anzahl der Befehle.
  • Grundbausteine von universellen GPU-Implementierungen sind Operationen an Texturen wie beispielsweise die elementweise Addition und Multiplikation. Eingabe-Texturen können an Einleseeinheiten gekoppelt werden, Konstanten können an die GPU übergeben werden und es muss eine Ausgabe-Textur zum Speichern der Ergebnisse festgelegt werden.
  • Das folgende Codebeispiel (in der Sprache HLSL) zeigt, wie man die korrespondierenden Komponenten zweier Texturen multipliziert. Das Pixel-Shader-Programm liest beide Eingabe-Texturen ein, führt die Arithmetikoperation durch und gibt das Ergebnis für jede Pixelposition zurück.
  • Figure 00100001
  • Ein komplizierteres Beispiel einer Operation in der GPU ist beispielsweise das Berechnen von Bildgradienten in Shadern. Eine wichtige Operation für numerische Berechnungen wird Reduktionsoperation genannt, sie ist in 2 illustriert. Eine Reduktionsoperation berechnet den Größt-, den Kleinst- und den Mittelwert unter allen Werten in einer Textur, außerdem die Summe aller werte. Wenn beispielsweise zwei Vektoren als Textur gespeichert sind, dann ist die Summe zum Berechnen eines Skalarprodukts wichtig.
  • Die Reduktionsoperation nimmt die ursprüngliche n×n-Textur 201 und führt die Summen-/Mittelwert-/Kleinst-/Größtwert-Ermittlung an jedem 2×2-Block (z. B. 202) durch und rendert dabei eine n/2×n/2-Textur (203). Vier Werte der ursprünglichen Textur werden zu einem neuen in der kleineren Textur zusammengefasst. Dieser Vorgang wird wiederholt, bis das Render-Ziel eine 1×1-Textur (204) ist, die das Endergebnis enthält. Falls Breite und Höhe n der ursprünglichen Textur eine Zweierpotenz ist, besteht eine vollständige Reduktionskette aus log n Render-Durchgängen, bis das Ergebnis abgerufen werden kann. Die Implementierung benutzt einen Wechselpuffer, wobei zwei Texturen abwechselnd als Lese- und als Schreibziel dienen. In einem Durchgang wird die Textur A als Render-Ziel benutzt und die Textur B als Eingabedaten festgelegt, im folgenden Durchgang werden dann die Rollen vertauscht.
  • Statt 2×2-Bereiche (z. B. 202) zu einem Ausgabewert zusammenzufassen, kann man das auch mit einem größeren (beispielsweise 4×4) Bereich tun.
  • Was Vektoren betrifft, so mag es nicht intuitiv erscheinen, einen 1D-Vektor als eine 2D-Textur zu repräsentieren, doch hat dies Leistungsvorteile. Die Vektordaten werden linear in eine 2D-Textur geschrieben. Gemäß einer Ausführungsform der vorliegenden Erfindung werden vier Vektoren in eine Textur gelegt, um die RGBA-Kanäle zu füllen.
  • Das Skalarprodukt zweier Vektoren wird berechnet, indem die korrespondierenden Vektorkomponenten multipliziert und die Ergebnisse in einer Ausgabe-Textur gespeichert werden, wonach dann eine Reduktionsoperation zum Aufsummieren aller multiplizierten Komponenten folgt.
  • Für Algorithmen, die bestimmte Teile einer Textur unverändert lassen müssen, während sie übrigen Komponenten aktualisieren, kann eine Maskierung implementiert werden. Um das Definieren einer komplizierten Geometrie zum Maskieren solcher Bereiche zu vermeiden, kann der Z-Puffer zum Maskieren beliebiger Bereiche benutzt werden. Hierfür muss der Z-Puffer mindestens so groß wie die Textur sein. Abhängig von der Z-Testfunktion werden die zu aktualisierenden Bereiche auf 1 und der Rest auf 0 gesetzt, oder umgekehrt. Die Z-Testfunktion vergleicht den Z-Wert des Eingabepixels mit dem einen des Render-Ziels, um festzustellen, ob das Pixel gerendert oder verworfen wird. Z-Tests können eine beliebige der folgenden Vergleichsoperationen sein:
    <, ≤, =, ≠, ≥, >.
  • Das Rendern eines Vierecks in der Ebene z = 0:5 verhindert, dass Pixel in maskierten Bereichen in die Pixel-Pipeline gelangen. Diese Pixel werden sofort verworfen statt die Pipeline zu blockieren.
  • Es gibt mehrere Wege, die Daten zu packen, um von der 4-Kanal-Parallelität in GPUs zu profitieren. Eine Möglichkeit ist es, eine n×n-Textur (mit einem Kanal) in eine n/2×n/2-Textur mit vier Kanälen zu packen. Dieser Ansatz erfordert zusätzliche Pack- und Entpack-Durchgänge, und der Z-Puffer kann nicht mehr als Maske genutzt werden. Ein Packverfahren, das keine pack- und Entpackdurchgänge mit arbeitendem Z-Test benötigt, ist im vorliegenden Text bereits hinsichtlich des Skalarprodukts zweier Vektoren beschrieben worden.
  • IMPLEMENTIERUNG DES ZUFALLSWANDERERS
  • Es werde nun 3 betrachtet; ein Segmentierungsverfahren gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet das Spezifizieren 301 von Saatpunkten zum Kennzeichnen von interessierenden Bereichen. Saatpunkte können auf bekannte Weisen manuell oder automatisch vorgegeben werden. Das Verfahren beinhaltet das Speichern 302 von zwei oder mehr unterschiedlichen Saatfarben in den RGBA-Kanälen einer Saattextur, mehrere Farben an derselben Stelle sind unzulässig. Das Verfahren beinhaltet das Aufstellen 303 einer Laplace'schen Matrix für jeden Knoten (z. B. Pixel) und das Speichern 304 der Laplace'schen Matrix als Texturrepräsentation unter Verwendung der Kantengewichte. Ein System linearer Gleichungen wird mithilfe eines Verfahrens konjugierter Gradienten gelöst, um die Wahrscheinlichkeiten für das Korrespondieren jedes Knotens zu jedem Saatpunkt zu berechnen 305. Jedem Knoten wird das wahrscheinlichste Label zugeordnet, und die Segmentierung wird durchgeführt 306.
  • Die Struktur der Laplace'schen Matrix 400 (siehe Beispiel in 4A) ist für eine Texturrepräsentation geeignet. Bei 2D hat sie fünf Diagonalenbänder 401 bis 405. Die Nebendiagonalenbänder 401 bis 404 enthalten die Gewichte der Kanten zu benachbarten Pixeln (Knoten im Graph) und das Hauptdiagonalenband 405 repräsentiert die Summe der vier Nebendiagonalenbänder 401 bis 404. 4B zeigt ein Beispiel eines 3×3-Bildes 406.
  • Da die Diagonale 405 die Summe der Nebendiagonalen 401 bis 404 darstellt, müssen die Werte der Hauptdiagonale nicht erhalten bleiben. Die Matrix wird zeilenweise gespeichert. Dies korrespondiert mit einem Speichern der Gewichte der Kanten zu den vier Nachbarpixeln für jeden Pixel. Vier Werte passen perfekt in eine Vierkanal-Textur, wie in 5 gezeigt.
  • 5 zeigt die L-Matrix-Textur, die die Gewichte der vier Kanten zu den Nachbarn jedes Knotens speichert. Die Hauptdiagonale kann durch Aufsummieren der vier Kantengewichte an jedem Knoten berechnet werden.
  • Die Kantengewichte wij werden bestimmt durch
    Figure 00130001
    wobei Ii und Ij die Bildintensitäten der Pixel i bzw. j sind. Zum Berechnen der Kantengewichte und zum Speichern der Laplace'schen Matrix in ihrer Texturrepräsentation ist ein einziger Render-Durchgang erforderlich.
  • Außerdem ist nur ein weiterer Render-Durchgang erforderlich, um – wie in diesem Text beschrieben – eine Matrix-Vektor-Multiplikation durchzuführen.
  • Was die Matrix-Vektor-Multiplikation betrifft, so kann sie bei der Struktur der Laplace'schen Matrix in einem einzigen Render-Durchgang durchgeführt werden. An jedem Pixelort wird der Vektor zusammen mit seinen vier Nachbarn abgerufen. Diese fünf Werte müssen komponentenweise mit den fünf Matrixdiagonalen multipliziert werden. Die vier Nebendiagonalenbänder können durch Abfragen der Laplace'schen Textur an der aktuellen Position abgerufen werden. Die Hauptdiagonale ist die Summe der Nebendiagonalen. Der folgende Pixel-Shader-Code zeigt eine Implementierung eines Matrix-Vektor-Produkts.
  • Figure 00140001
  • Unter der Annahme, dass die Laplace'sche Textur an die Einleseeinheit 0 (sam0) gebunden ist, werden die vier Kantengewichte des laufenden Texel gelesen und im 4-komponentigen Vektor L gespeichert. Nun sind die Nebendiagonaleneinträge des laufenden Pixels (Knotens) in den RGBA-Komponenten von L vor handen. In der nächsten Zeile wird der Wert der Hauptdiagonale durch Aufsummieren aller Nebendiagonalenwerte errechnet. Der schnellste Weg zum Aufsummieren von vier Komponenten in der GPU ist das Berechnen eines Skalarprodukts des Vektors und des Einheitsvektors, denn diese Operation benötigt nur einen Zyklus. dot(L,1) = (1 × L.r) + (1 × L.g) + (1 × L.b) + (1 × L.a)
  • Es werde angenommen, dass die Vektortextur an die Einleseeinheit 1 (sam1) gebunden ist. Unter Benutzung von fünf Sätzen von Texturkoordinaten-Interpolatoren wird die Adressberechnung für benachbarte Texel in der Vertex-Einheit durchgeführt, dadurch werden Befehle im Pixel-Shader eingespart. Damit wird der Vektor abgerufen und in den Variablen vec[x] gespeichert.
  • Das Matrix-Vektor-Produkt und die Ausgabe-Textur können durch Multiplizieren der Vektordaten vec[x] mit den Matrixeinträgen diag und L errechnet werden.
  • Zwar erlaubt das Zufallswanderer-Verfahren eine beliebige Anzahl von Label-Farben, doch ist zum Lösen eines Systems linearer Gleichungen eine GPU-Implementierung gemäß einer Ausführungsform der vorliegenden Erfindung besonders effizient, wenn man mit vielfachen von Vier arbeitet, und zwar wegen der RGBA-Kanäle einer Textur. Hier werden Gelb, Rot, Grün und Blau zum Repräsentieren dieser Farben benutzt. Jede Farbe ist einem Kanal von RGBA zugeordnet.
  • Um einen Algorithmus mit konjugierten Gradienten abzuarbeiten, werden fünf Vektoren oder Texturen benötigt: X, P, R, Q und Z. Insgesamt werden damit für ein 512×512-Bild ungefähr 35 MB an Speicher benötigt, für ein 256×256-Bild sind es weniger als 10 MB. 6 zeigt einen konjugierten Gradientenvektor, gespeichert in einer Textur für vier unterschiedliche Farben.
  • Das Verfahren mit konjugierten Gradienten sucht ein nächstgelegenes lokales Minimum einer Funktion von n Variablen, wobei vorausgesetzt wird, dass der Gradient der Funktion ermittelt werden kann. Das Verfahren mit konjugierten Gradienten verwendet konjugierte Richtungen, um zu „tiefer gelegenen" Punkten zu gelangen. Die nächste Umgebung des Minimums hat die Form eines langen, engen Tals. Das Verfahren erzeugt fortschreitend Vektorfolgen von Iteraten, die sukzessive Näherungen an die Lösung sind, außerdem mit den Iteraten korrespondierende Restabweichungswerte sowie zum Aktualisieren der Iterate und Restabweichungswerte benutzte Suchrichtungen. Bei jedem Iterationsschritt des Verfahrens werden zwei Skalarprodukte gebildet, um Aktualisierungsskalare zu berechnen, die derart berechnet sind, dass die Folgen dadurch bestimmte Orthogonalitätsbedingungen erfüllen. Diese Bedingungen implizieren in einem symmetrischen, positiv definiten, linearen System, dass der Abstand zur wahren exakten Lösung in irgendeiner Weise minimiert wird.
  • Für jede Farbe muss ein System linearer Gleichungen gelöst werden. Außerdem werden alle vier Systeme (z. B. Gelb, Rot, Grün und Blau) gleichzeitig gelöst, weil alle Operationen an Vektoren und Matrizen für alle Farben parallel durchgeführt werden. Dies ermöglicht es, vier lineare Systeme mit dem Aufwand für ein einziges zu lösen. Die benötigten GPU-Operationen sind Vektoraddition, Skalarprodukt und Matrix-Vektor-Produkt. Die Lösung des Gleichungssystems liefert für jeden Knoten Wahrscheinlichkeitswerte für dessen Korrespondieren mit jedem Label. Aus diesen Wahrscheinlichkeiten wird das Segmentierungsergebnis bestimmt, indem jedem Knoten das Label mit der höchsten Wahrscheinlichkeit zugeordnet wird. Das System und das Verfahren können unter Verwendung von zwei oder mehr Labeln realisiert werden.
  • Die 7A bis 7D zeigen einen Zufallswanderer-Ansatz für die Segmentierung. Bei drei vorhandenen Saatpunkten, die drei unterschiedliche Label repräsentieren (in der Abbildung mit L1 701, L2 702 und L3 703 bezeichnet), wird abwechselnd das Potential jedes Labels auf 1 fixiert (d. h. mit einer gegen Masse angelegten Spannungsquelle) und das Potential der restlichen Knoten auf 0 gesetzt (d. h. auf Masse). Die berechneten elektrischen Potentiale repräsentieren für jeden Knoten die Wahrscheinlichkeit dafür, dass ein an diesem Knoten losgehender Zufallswanderer zuerst den Saatpunkt erreicht, der zurzeit auf 1 gesetzt ist. Die Wahrscheinlichkeiten korrespondieren damit, ob ein Knoten zu einem Bildbereich gehört, der durch Saatpunkte markiert ist.
  • 7A zeigt die anfänglichen Saatpunkte 701 bis 703 und die Segmentierung, die dadurch entsteht, dass jedem Knoten dasjenige Label zugeordnet wird, das mit der höchsten Wahrscheinlichkeit korrespondiert. Die 7B bis 7D zeigen für jeden Knoten die Wahrscheinlichkeit dafür, dass ein an diesem Knoten losgehender Zufallswanderer zuerst den Saatpunkt L1 701, L2 702 bzw. L3 703 erreicht. Für die Illustration wurden alle Gewichte (Widerstände) auf 1 gesetzt. Im Falle eines realen Bildes wären diese Widerstände eine Funktion des Intensitätsgradienten. Der Leser kann selbst nachprüfen, dass die Summe der Wahrscheinlichkeiten an jedem Knoten gerundet den Wert 1 ergibt.
  • Deshalb können zum Beispiel unterschiedliche Bereiche eines Herzmuskelbildes mit zwei oder mehr RGBA-Labeln versehen werden, etwa mit Gelb für Blut, Rot für eine Wand und Blau für Gewebe außerhalb des Herzens. Für jeden Knoten wird die Wahrscheinlichkeit dafür berechnet, dass er gelb (Blut), rot (Wand) oder blau (Außenbereich) ist, und er wird dann entsprechend dem wahrscheinlichsten Label gekennzeichnet. 8 zeigt als Beispiel ein Herzmuskelbild mit den Saat punkten 801 bis 805, die mit unterschiedlichen Gewebearten korrespondieren. Wie in 8 gezeigt, kann ein Saatpunkt isoliert oder nicht isoliert platziert sein; so ist beispielsweise der Saatpunkt 802 isoliert, einschließlich dreier Punkte, die eine Vorkammerwand kennzeichnen.
  • Ein Verfahren für eine durch eine GPU beschleunigte Segmentierung ist auf unterschiedliche Bildarten anwendbar, beispielsweise auf CT- und MR-Bilder, auf JPEG-Bilder und ähnliche, sowie auf Bilder für Objektidentifizierung, automatische Unterscheidung und Analyse etc.
  • Nachdem nun Ausführungsformen für ein System und Verfahren einer auf harmonischen Potentialen basierenden Multi-label-Segmentierung beschrieben worden sind, soll noch gesagt werden, dass Fachleute auf der Basis des oben dargelegten Wissens Modifikationen und Änderungen vornehmen können. Deshalb ist es klar, das an den bestimmten Ausführungsformen der beschriebene Erfindung Änderungen gemacht werden können, die unter den Umfang und die Wesensart der Erfindung fallen, wie sie in den beigefügten Ansprüchen definiert ist. Nachdem deshalb die Erfindung so detailliert und ausführlich beschrieben worden ist, wie es die Patentgesetze verlangen, wird in den beigefügten Ansprüchen festgelegt, was beansprucht wird und wofür Schutz durch eine Patenturkunde gewünscht wird.
  • Zusammenfassung
  • Ein Verfahren zur Bildsegmentierung umfasst das Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei diese Saatpunkte mit einem Knoten in einer Saattextur korrespondieren, wobei jeder Saatpunkt eine andere Farbe hat. Das Verfahren umfasst weiter das Aufstellen einer Matrix für jeden Knoten, einschließlich der Gewichte der Kanten zu den jeweiligen Nachbarknoten sowie das Berechnen der Wahrscheinlichkeiten für die Möglichkeit, einen des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt. Ausserdem umfasst das Verfahren das Zuweisen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten und das Ausgeben einer gemäß den Knotenzuweisungen durchgeführten Segmentierung des interessierenden Bildes, wobei diese Segmentierung das interessierende Bild in Bereiche untergliedert.

Claims (16)

  1. Ein Verfahren zur Bildsegmentierung, Folgendes umfassend: Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei die Saatpunkte mit einem Knoten in einer Saattextur korrespondieren und wobei jeder Saatpunkt eine andere Farbe hat; Aufstellen einer Matrix für jeden Knoten, Gewichte der Kanten zu Nachbarknoten enthaltend; Ermitteln einer Wahrscheinlichkeit für die Möglichkeit des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt; Zuordnen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten; und Ausgeben einer Segmentierung des interessierenden Bildes entsprechend den Knotenzuordnungen, wobei die Segmentierung Bereiche des interessierenden Bildes voneinander trennt.
  2. Das Verfahren nach Anspruch 1, zusätzlich umfassend das Ermitteln von Gewichten der Kanten zwischen allen Knoten der Saattextur.
  3. Das Verfahren nach Anspruch 1, wobei das Aufstellen der Matrix das Aufstellen einer Laplace'schen Matrix mit fünf Diagonalenbändern umfasst und wobei vier Nebendiagonalenbänder die Kantengewichte aufnehmen und ein Hauptband die Summe der vier Nebendiagonalenbänder ist.
  4. Das Verfahren nach Anspruch 3, zusätzlich umfassend das Speichern der Laplace'schen Matrix der Kantengewichte als eine Textur von RGBA-Kanälen.
  5. Das Verfahren nach Anspruch 3, zusätzlich Folgendes umfassend: Berechnen der Summe für jeden Knoten; und Berechnen eines Vektors der Summen für jede Farbe, wobei die Farben RGBA-Kanäle sind.
  6. Das Verfahren nach Anspruch 5, wobei das Berechnen der Summe für jeden Knoten zusätzlich das Berechnen eines Skalarprodukts der Nachbarn dieses Knotens umfasst.
  7. Das Verfahren nach Anspruch 1, zusätzlich umfassend das Berechnen der Wahrscheinlichkeiten anhand konjugierter Gradientenvektoren.
  8. Eine maschinenlesbare Programmspeichervorrichtung, die konkret ein Programm aus von der Maschine ausführbaren Befehlen verkörpert, um ein Verfahren der Bildsegmentierung durchzuführen, wobei das Verfahren Folgendes umfasst: Spezifizieren einer Gruppe von Saatpunkten in einem interessierenden Bild, wobei die Saatpunkte mit einem Knoten in einer Saattextur korrespondieren und wobei jeder Saatpunkt eine andere Farbe hat; Aufstellen einer Matrix für jeden Knoten, Gewichte der Kanten zu Nachbarknoten enthaltend; Ermitteln einer Wahrscheinlichkeit für die Möglichkeit des Charakterisierens eines Knotens als gleichartig zu jedem Saatpunkt; Zuordnen der Farbe des wahrscheinlichsten Saatpunkts zu dem Knoten; und Ausgeben einer Segmentierung des interessierenden Bildes entsprechend den Knotenzuordnungen, wobei die Segmentierung Bereiche des interessierenden Bildes voneinander trennt.
  9. Das Verfahren nach Anspruch 8, zusätzlich umfassend das Ermitteln von Gewichten der Kanten zwischen allen Knoten der Saattextur.
  10. Das Verfahren nach Anspruch 8, wobei das Aufstellen der Matrix das Aufstellen einer Laplace'schen Matrix mit fünf Diagonalenbändern umfasst und wobei vier Nebendiagonalenbänder die Kantengewichte aufnehmen und ein Hauptband die Summe der vier Nebendiagonalenbänder ist.
  11. Das Verfahren nach Anspruch 10, zusätzlich umfassend das Speichern der Laplace'schen Matrix der Kantengewichte als eine Textur von RGBA-Kanälen.
  12. Das Verfahren nach Anspruch 10, zusätzlich umfassend: Berechnen der Summe für jeden Knoten; und Berechnen eines Vektors der Summen für jede Farbe, wobei die Farben RGBA-Kanäle sind.
  13. Das Verfahren nach Anspruch 12, wobei das Berechnen der Summe für jeden Knoten zusätzlich das Berechnen eines Skalarprodukts der Nachbarn dieses Knotens umfasst.
  14. Das Verfahren nach Anspruch 8, zusätzlich umfassend das Berechnen der Wahrscheinlichkeiten anhand konjugierter Gradientenvektoren.
  15. Eine an einen Bus eines Computersystems angeschlossene Grafikverarbeitungseinheit zum Verarbeiten einer Laplace'schen Matrix von Kantengewichten zwischen Knoten, wobei jeder Knoten mit einem Pixel eines interessierenden Bildes korrespondiert; wobei die Grafikverarbeitungseinheit zum Berechnen einer Ausgabe-Textur dient, die Vektordaten für jeden RGBA-Kanal und ein Label für jeden Knoten enthält, wobei das Label mit einem RGBA-Kanal korrespondiert; und wobei die Grafikverarbeitungseinheit zum Ausgeben einer Segmentierung des interessierenden Bildes entsprechend dem Label für jeden Knoten dient.
  16. Die Grafikverarbeitungseinheit von Anspruch 15, wobei die Laplace'sche Matrix eine in einer Speichervorrichtung gespeicherte Texturrepräsentation der Gewichte der Kanten zwischen den Knoten ist und wobei die Speichervorrichtung in der Grafikverarbeitungseinheit sitzt oder am Bus angeschlossen ist.
DE112005000804T 2004-04-09 2005-04-06 Multi-Label-Bildsegmentierung mit GPU Ceased DE112005000804T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US56116904P 2004-04-09 2004-04-09
US60/561,169 2004-04-09
US11/098,676 US7697756B2 (en) 2004-04-09 2005-04-04 GPU accelerated multi-label image segmentation (MLS)
US11/098,676 2005-04-04
PCT/US2005/011400 WO2005101310A1 (en) 2004-04-09 2005-04-06 Gpu multi-label image segmentation

Publications (1)

Publication Number Publication Date
DE112005000804T5 true DE112005000804T5 (de) 2007-09-06

Family

ID=34966539

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005000804T Ceased DE112005000804T5 (de) 2004-04-09 2005-04-06 Multi-Label-Bildsegmentierung mit GPU

Country Status (3)

Country Link
US (1) US7697756B2 (de)
DE (1) DE112005000804T5 (de)
WO (1) WO2005101310A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060022990A1 (en) * 2004-07-30 2006-02-02 Silicon Graphics, Inc. Generating subdivision surfaces on a graphics hardware with floating-point fragment shaders
US20070165966A1 (en) * 2005-07-15 2007-07-19 Yissum Research Development Co. Closed form method and system for matting a foreground object in an image having a background
US8077969B2 (en) 2005-12-30 2011-12-13 Telecom Italia S.P.A. Contour finding in segmentation of video sequences
WO2007076893A1 (en) * 2005-12-30 2007-07-12 Telecom Italia S.P.A. Edge-guided morphological closing in segmentation of video sequences
US20090028432A1 (en) * 2005-12-30 2009-01-29 Luca Rossato Segmentation of Video Sequences
WO2007076892A1 (en) * 2005-12-30 2007-07-12 Telecom Italia S.P.A. Edge comparison in segmentation of video sequences
US20090219379A1 (en) * 2005-12-30 2009-09-03 Telecom Italia S.P.A. Average Calculation in Color Space, Particularly for Segmentation of Video Sequences
US8775495B2 (en) * 2006-02-13 2014-07-08 Indiana University Research And Technology Compression system and method for accelerating sparse matrix computations
US8031936B2 (en) 2006-03-20 2011-10-04 Accenture Global Services Limited Image processing system for skin detection and localization
US20090080773A1 (en) * 2007-09-20 2009-03-26 Mark Shaw Image segmentation using dynamic color gradient threshold, texture, and multimodal-merging
US8473467B2 (en) 2009-01-02 2013-06-25 Apple Inc. Content profiling to dynamically configure content processing
US8331669B2 (en) * 2009-08-25 2012-12-11 Siemens Aktiengesellschaft Method and system for interactive segmentation using texture and intensity cues
DE102010022307A1 (de) * 2010-06-01 2011-12-01 Siemens Aktiengesellschaft Verfahren zur Überprüfung der Segmentierung einer Struktur in Bilddaten
US8842738B2 (en) * 2010-09-01 2014-09-23 Electronics And Telecommunications Research Institute Signal processing method and apparatus based on multiple textures using video audio excitation signals
US8848800B2 (en) * 2010-09-01 2014-09-30 Electronics And Telecommunications Research Institute Signal processing method and apparatus based on multiple textures using video sensor excitation signals
KR101527369B1 (ko) * 2010-09-01 2015-06-09 한국전자통신연구원 영상오디오여기신호를 이용한 다중 텍스쳐 기반 신호 처리 방법 및 장치
US8831094B2 (en) * 2010-09-01 2014-09-09 Electronics And Telecommunications Research Institute Video processing method and apparatus based on multiple texture images
US9292933B2 (en) 2011-01-10 2016-03-22 Anant Madabhushi Method and apparatus for shape based deformable segmentation of multiple overlapping objects
US20130016907A1 (en) 2011-07-11 2013-01-17 Jarliden Andreas E Scribble segmentation method and apparatus
CN102254307B (zh) * 2011-07-15 2014-03-05 深圳万兴信息科技股份有限公司 一种移色处理方法和装置
CN102298776B (zh) * 2011-08-17 2013-03-13 浙江大学 一种基于Random Walk的图像融合方法
CN102314688B (zh) * 2011-09-09 2013-01-23 华中科技大学 图像分割方法和图像集分割方法
US8970581B2 (en) * 2012-01-04 2015-03-03 Carestream Health, Inc. System and method for interactive contouring for 3D medical images
US9626576B2 (en) 2013-03-15 2017-04-18 MotionDSP, Inc. Determining maximally stable external regions using a parallel processor
CN104091305B (zh) * 2014-08-11 2016-05-18 詹曙 一种用于计算机图形图像处理的、基于gpu平台和形态学分量分析的快速图像分割方法
US9898677B1 (en) 2015-10-13 2018-02-20 MotionDSP, Inc. Object-level grouping and identification for tracking objects in a video
CN106097308A (zh) * 2016-05-31 2016-11-09 长沙理工大学 一种基于机器视觉的新能源电动车辆充电孔检测与定位方法
US10354391B2 (en) * 2016-10-27 2019-07-16 Peter Jin-Pyong Yim Method and system for multi-label image segmentation
US10297028B2 (en) * 2017-07-10 2019-05-21 National Cheng Kung University Image data analytics for computation accessibility and configuration
CN107358635B (zh) * 2017-07-19 2020-11-03 辽宁工程技术大学 一种基于模糊相似性的彩色形态学图像处理方法
CN111028304B (zh) * 2019-12-16 2023-07-21 京东方科技集团股份有限公司 纹理数据压缩方法和装置、存储介质及电子设备
CN113780750B (zh) * 2021-08-18 2024-03-01 同济大学 一种基于医学图像分割的医疗风险评估方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785409B1 (en) * 2000-10-24 2004-08-31 Koninklijke Philips Electronics, N.V. Segmentation method and apparatus for medical images using diffusion propagation, pixel classification, and mathematical morphology
US20040008886A1 (en) * 2002-07-02 2004-01-15 Yuri Boykov Using graph cuts for editing photographs
US20040086185A1 (en) * 2002-10-31 2004-05-06 Eastman Kodak Company Method and system for multiple cue integration

Also Published As

Publication number Publication date
US7697756B2 (en) 2010-04-13
WO2005101310A1 (en) 2005-10-27
US20050226506A1 (en) 2005-10-13

Similar Documents

Publication Publication Date Title
DE112005000804T5 (de) Multi-Label-Bildsegmentierung mit GPU
DE69908966T2 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE102005008824B4 (de) Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors und die computerlesbare Programmspeichervorrichtung hierfür
DE19916354B4 (de) Verfahren und Vorrichtung zur Analyse von Bildstrukturen
DE60033250T2 (de) System und Verfahren zur Darstellung mit Strahlverfolgung
DE202017103725U1 (de) Blockoperationen für einen Bildprozessor mit einer zweidimensionalen Ausführungsbahnmatrix und einem zweidimensionalen Schieberegister
DE102017124573A1 (de) Systeme und verfahren zum beschneiden von neuronalen netzen für eine betriebsmitteleffiziente folgerung
EP1316057B1 (de) Auswerten von kantenrichtungsinformation
DE102004046237A1 (de) Verfahren und System für die gemischte rigide Registrierung von medizinischen 2D/3D-Bildern
DE3706509A1 (de) Elektronische geometrieprozessorschaltung fuer ein graphikanzeigesystem
DE102017113867A1 (de) Kernprozesse für Blockoperationen an einem Bildprozessor mit einer zweidimensionalen Ausführungsbahnmatrix und einem zweidimensionalen Schieberegister
DE102008032006A1 (de) Verfahren zur Steurung der Bildaufnahme bei einer Bildaufnahmeeinrichtung, sowie eine Bildaufnahmeeinrichtung
DE102008046859A1 (de) 3D Segmentierung von allgemeiner Läsion in CT
DE69921696T2 (de) Verfahren zur perspektivischen darstellung, ausgehend von einem voxelraum
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE102006053116A1 (de) Verfahren und System zur Histrogrammberechnung unter Verwendung einer Grafikverarbeitungseinheit
DE19709227A1 (de) Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln
DE19806985A1 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE102006048188A1 (de) System und Verfahren zur 3D Volumensegmentierung unter Verwendung exakter minimaler Flächen, die eine Grenze geben
DE102020103893A1 (de) Techniken für effizienten speicherzugriff und zur vermeidung unnötiger berechnungen
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE60026785T2 (de) Bildverarbeitungsgerät
EP1154369A2 (de) Verfahren zur zyklischen, interaktiven Bildanalyse sowie Computersystem und Computerprogramm zur Ausführung des Verfahrens
DE102005060503A1 (de) Verfahren und Vorrichtung für die effiziente Berechnung von Morphologie-Operationen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06T 7/40 AFI20070605BHDE

8131 Rejection