DE112020000906B4 - Schrittweise 3d-punktwolkensegmentierung in objekt und hintergrund aus erfassungssitzungen - Google Patents

Schrittweise 3d-punktwolkensegmentierung in objekt und hintergrund aus erfassungssitzungen Download PDF

Info

Publication number
DE112020000906B4
DE112020000906B4 DE112020000906.8T DE112020000906T DE112020000906B4 DE 112020000906 B4 DE112020000906 B4 DE 112020000906B4 DE 112020000906 T DE112020000906 T DE 112020000906T DE 112020000906 B4 DE112020000906 B4 DE 112020000906B4
Authority
DE
Germany
Prior art keywords
point
probability
video stream
image
model
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.)
Active
Application number
DE112020000906.8T
Other languages
English (en)
Other versions
DE112020000906T5 (de
Inventor
Yochay TZUR
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020000906T5 publication Critical patent/DE112020000906T5/de
Application granted granted Critical
Publication of DE112020000906B4 publication Critical patent/DE112020000906B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Ausführungsformen der vorliegenden Systeme und Verfahren können Techniken bereitstellen, die ein automatisches und zuverlässiges Durchführen einer Aufgabe zum Bereinigen von Punktwolken bereitstellen. Ausführungsformen können die Fähigkeit bereitstellen, die Objekt-Hintergrund-Segmentierung aus Erfassungssitzungen in Augmented-Reality-Anwendungen (AR-Anwendungen) schrittweise zu erlernen. Die 3D-Punktwolke kann für Erfassen in AR-Anwendungen verwendet werden, indem Punkte aus der Wolke mit Bereichen im Live-Video in Übereinstimmung gebracht werden. Ein 3D-Punkt, der viele Übereinstimmungen hat, gehört mit größerer Wahrscheinlichkeit zum Objekt, während ein 3D-Punkt, der selten Übereinstimmungen hat, mit größerer Wahrscheinlichkeit ein Teil des Hintergrunds ist. Vorteile dieses Ansatzes sind unter anderem, dass keine manuelle Arbeit für die Segmentierung erforderlich ist und die Ergebnisse im Laufe der Zeit ständig verbessert werden können, da das Objekt in verschiedenen Umgebungen erfasst wird.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf Techniken zum Erzeugen von Augmented-Reality-Inhalten durch Automatisieren einer Punktwolkenbereinigung mit Hilfe einer unscharfen Punktesegmentierung entsprechend einem Objekt oder einem Hintergrund.
  • Die 3D-Punktwolke ist ein Standardformat zum Speichern von 3D-Modellen, die Tausende von Punkten umfassen können, von denen jeder seine Position und Farbe hat. In der Regel wird eine Punktwolke während einer 3D-Rekonstruktion erzeugt - einer Rechenpipeline, die die 3D-Geometrie eines Modells eines Objekts oder einer Szene anhand seines Videos berechnet. Beim Rekonstruieren eines 3D-Objekts anhand eines Videos enthält die sich ergebende Punktwolke in der Regel nicht nur das Objekt, sondern auch einige Hintergrundelemente, z.B. den Tisch, auf dem das Objekt steht, die Wände, den Boden und andere Objekte, die auf dem Video zu sehen sind. Für viele Anwendungen des 3D-Modells ist eine saubere Punktwolke wichtig, die nur zum Objekt gehörende Punkte enthält. Daher ist es sehr wichtig, die nicht zum Objekt gehörenden Bereiche des Modells zu entfernen. Diese Aufgabe wird manchmal als „Segmentierung in ,Objekt' und ,Hintergrund'“ bezeichnet.
  • Ein Ansatz für die Segmentierung ist manuelles Löschen von Hintergrundpunkten unter Verwendung einer interaktiven Anwendung, die es ermöglicht, Hintergrundbereiche zu markieren und zu entfernen. Tools wie Blender und MeshLab sind Beispiele für diesen Ansatz, der manuelle Arbeit und einen hohen Zeitaufwand erfordert und daher nicht skalierbar ist. Ein zweiter Ansatz besteht darin, Heuristik einzusetzen, z.B. eine Schwellenwertberechnung für den Abstand zur Kamera oder Berechnen von kompakten Blobs. Diese Verfahren versagen, wenn das Objekt den Annahmen über seine Größe und seinen Abstand zu Hintergrundelementen entspricht.
  • Daher besteht ein Bedarf an Techniken, die ein automatisches und zuverlässiges Durchführen der Aufgabe einer Segmentierung von Punktwolken in Objekte und Hintergründe bereitstellen.
  • Die Druckschrift US 2012 / 0 041 722 A1 betrifft ein Verfahren, das die bildbasierte Modellierung erleichtert. Das Verfahren umfasst: Empfangen von Eingangsbilddaten, die eine Fassade darstellen; Rekonstruieren von Eingangsbilddaten mit einer Rechenvorrichtung, um dreidimensionale Punkte, Linien und Kamerapositionen zu berechnen, die mit der Fassade assoziiert sind; und Durchführen einer semantischen Segmentierung mit mehreren Ansichten an den rekonstruierten Eingangsbilddaten, um die Fassadenstruktur zu erkennen und die Fassade zu segmentieren.
  • KURZDARSTELLUNG
  • Die Erfindung betrifft ein Verfahren, ein System und Computerprogrammprodukt zum Erzeugen von Augmented-Reality-Inhalten, deren Merkmale in den entsprechenden Patentansprüchen angegeben sind. Ausführungsformen sind in den abhängigen Ansprüchen angegeben. Insbesondere können die Ausführungsformen der vorliegenden Systeme und Verfahren Techniken bereitstellen, die automatisches und zuverlässiges Durchführen der Aufgabe einer Segmentierung von Punktwolken bereitstellen. Ausführungsformen können die Fähigkeit bereitstellen, die Objekt-Hintergrund-Segmentierung aus Erfassungssitzungen in Augmented-Reality-Anwendungen (AR-Anwendungen) schrittweise zu erlernen. Die 3D-Punktwolke kann für Erfassen in AR-Anwendungen verwendet werden, indem Punkte aus der Wolke mit Bereichen im Live-Video in Übereinstimmung gebracht werden. Ein 3D-Punkt, der viele Übereinstimmungen hat, gehört mit größerer Wahrscheinlichkeit zum Objekt, während ein 3D-Punkt, der selten Übereinstimmungen hat, mit größerer Wahrscheinlichkeit ein Teil des Hintergrunds ist. Vorteile dieses Ansatzes sind unter anderem, dass keine manuelle Arbeit für die Segmentierung erforderlich ist und die Ergebnisse im Laufe der Zeit ständig verbessert werden können, da das Objekt in verschiedenen Umgebungen erfasst wird.
  • Ein Verfahren zum Erzeugen von Augmented-Reality-Inhalten kann beispielsweise in einem Computer implementiert werden, der einen Prozessor, einen Speicher, auf den der Prozessor zugreifen kann, und Computerprogrammanweisungen aufweist, die in dem Speicher gespeichert sind und von dem Prozessor ausführbar sind, und das Verfahren kann Erfassen eines 3D-Modells eines Objekts in einer Szene in einem Video-Stream im Computersystem aufweisen, während sich eine Kamera durch die Szene bewegt, wobei das Erfassen für jeden Punkt für jedes Bild im Video-Stream Ermitteln aufweist, ob der Punkt dem Objekt entspricht oder ob der Punkt dem Hintergrund entspricht, Segmentieren jedes der Mehrzahl von Punkten im Computersystem in entweder einen Punkt, der dem Objekt entspricht, oder einen Punkt, der dem Hintergrund entspricht, auf der Grundlage einer Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, und einer Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, wobei die Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt innenliegend ist, und die Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt außenliegend ist, und Erzeugen von Augmented-Reality-Inhalten auf der Grundlage des segmentierten 3D-Modells des Objekts im Computersystem.
  • In Ausführungsformen kann das Erfassen aufweisen, dass das segmentierte 3D-Modell des Objekts verwendet wird, um die Position der Kamera in Bezug auf das 3D-Modell des Objekts zu schätzen. Das 3D-Modell des Objekts kann zunächst unter Verwendung einer Standardeinstellung der Wahrscheinlichkeit für jeden Punkt segmentiert werden, und für jedes Bild wird die Wahrscheinlichkeit für jeden Punkt aktualisiert, je nachdem, ob das Erfassen feststellt, dass der Punkt dem Objekt oder dem Hintergrund entspricht. Die Standardeinstellung der Wahrscheinlichkeit für jeden Punkt kann 0,5 betragen, und die Wahrscheinlichkeit kann erhöht werden, wenn das Erfassen den Punkt mit einem Pixel im Videobild in Übereinstimmung bringt, und die Wahrscheinlichkeit wird verringert, wenn das Erfassen den Punkt nicht mit einem der Pixel im Videobild in Übereinstimmung bringen kann. 5. Das 3D-Modell des Objekts in der Szene kann eine 3D-Punktwolke aufweisen, die eine Mehrzahl von Punkten aufweist, darunter mindestens einige Punkte, die dem Objekt entsprechen, und mindestens einige Punkte, die einem Hintergrund der Szene entsprechen. Der Video-Stream kann von der Kamera stammen, die sich durch die Szene bewegt.
  • Ein System zum Erzeugen von Augmented-Reality-Inhalten kann einen Prozessor, einen Speicher, auf den der Prozessor zugreifen kann, und Computerprogrammanweisungen aufweisen, die in dem Speicher gespeichert sind und von dem Prozessor ausführbar sind, um ein Erfassen eines 3D-Modells eines Objekts in einer Szene in einem Video-Stream durchzuführen, während sich eine Kamera durch die Szene bewegt, wobei das Erfassen für jeden Punkt für jedes Bild Ermitteln aufweist, ob der Punkt dem Objekt entspricht oder ob der Punkt dem Hintergrund entspricht, Segmentieren jedes der Mehrzahl von Punkten in entweder einen Punkt, der dem Objekt entspricht, oder einen Punkt, der dem Hintergrund entspricht, auf der Grundlage einer Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, und einer Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, wobei die Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt dem Objekt entspricht, und die Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt dem Hintergrund entspricht, und Erzeugen von Augmented-Reality-Inhalten auf der Grundlage des segmentierten 3D-Modells des Objekts.
  • Ein Computerprogrammprodukt zum Erzeugen von Augmented-Reality-Inhalten kann einen nichtflüchtigen durch einen Computer lesbaren Speicher mit darin gespeicherten Programmanweisungen aufweisen, wobei die Programmanweisungen durch einen Computer ausführbar sind, um den Computer zu veranlassen, ein Verfahren durchzuführen, das Erfassen eines 3D-Modells eines Objekts in einer Szene in einem Video-Stream aufweist, während sich eine Kamera durch die Szene bewegt, wobei das Erfassen für jeden Punkt für jedes Bild Ermitteln aufweist, ob der Punkt dem Objekt entspricht oder ob der Punkt dem Hintergrund entspricht, sowie Segmentieren jedes der Mehrzahl von Punkten in entweder einen Punkt, der dem Objekt entspricht, oder einen Punkt, der dem Hintergrund entspricht, auf der Grundlage einer Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, und einer Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, wobei die Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt dem Objekt entspricht, und die Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt dem Hintergrund entspricht, und Erzeugen von Augmented-Reality-Inhalten auf der Grundlage des segmentierten 3D-Modells des Objekts.
  • Figurenliste
  • Die Einzelheiten der vorliegenden Erfindung können - sowohl was ihren Aufbau als auch ihre Funktionsweise betrifft - am besten anhand der Begleitzeichnungen verstanden werden, in denen gleiche Bezugszahlen und Bezeichnungen gleichen Elementen entsprechen.
    • 1 veranschaulicht eine beispielhafte Darstellung eines Systems, in dem Ausführungsformen der vorliegenden Systeme und Verfahren implementiert werden können.
    • 2 ist ein beispielhafter Ablaufplan einer Ausführungsform eines Prozesses gemäß Ausführungsformen der vorliegenden Systeme und Verfahren.
    • 3 veranschaulicht ein Beispiel für ein 3D-Modell gemäß Ausführungsformen der vorliegenden Systeme und Verfahren.
    • 4 ist eine beispielhafte Darstellung des Verwendens von Segmentierungsinformationen zum Schätzen der Kameraposition in Bezug auf das Modell gemäß Ausführungsformen der vorliegenden Systeme und Verfahren.
    • 5 ist eine beispielhafte Darstellung des Verwendens von Segmentierungsinformationen zum Schätzen der Kameraposition in Bezug auf das Modell mit Aktualisieren der Segmentierungsinformationen gemäß Ausführungsformen der vorliegenden Systeme und Verfahren.
    • 6 ist ein beispielhaftes Blockschaubild eines Computersystems, in dem Prozesse der hier beschriebenen Ausführungsformen implementiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Systeme und Verfahren können Techniken bereitstellen, die ein automatisches und zuverlässiges Durchführen der Aufgabe einer Segmentierung einer Punktwolke in Objekt und Hintergrund bereitstellen. Ausführungsformen können die Fähigkeit bereitstellen, eine automatische Segmentierung einer 3D-Punktwolke in Objekt- und Hintergrundsegmente durchzuführen, indem die Objekt-Hintergrund-Segmentierung schrittweise aus Erfassungssitzungen in Augmented-Reality-Anwendungen (AR-Anwendungen) erlernt wird. In AR-Anwendungen kann ein 3D-Modell von einem oder mehreren Objekten, die in einer Szene in einem Video-Stream angezeigt werden sollen, erzeugt und auf einer Szene oder auf Objekten in einer Szene angezeigt werden. Um solche AR-Inhalte korrekt anzuzeigen, kann die Position der Kamera relativ zur Szene und zu Objekten in der Szene, auf denen AR-Inhalte angezeigt werden sollen, ermittelt und erfasst werden, während sich die Kamera bewegt. Ein Modell eines Objekts in der Szene kann durch 3D-Rekonstruktion von Bildern oder des Video-Streams erzeugt werden, um eine 3D-Punktwolke des Objekts zu erzeugen. Die 3D-Punktwolke kann für Erfassen in AR-Anwendungen verwendet werden, indem Punkte aus der Wolke mit Bereichen im Live-Video in Übereinstimmung gebracht werden.
  • Ein erzeugtes 3D-Modell, das eine 3D-Punktwolke aufweist, kann in der Regel nicht unverändert verwendet werden, da die Punktwolke Punkte enthalten kann, die sich auf dem Hintergrund der Szene und nicht auf dem zu erfassenden Objekt befinden. Eine Form des „Bereinigens“ des Bildes oder des Video-Streams kann angewandt werden, um den Hintergrund zu entfernen oder um die Punkte in Punkte zu segmentieren, die Teil des zu erfassenden Objekts sind, und Punkte, die nicht dazu gehören. Ausführungsformen der vorliegenden Systeme und Verfahren können eine solche Bereinigung automatisch durchführen, indem sie die Punkte in Punkte, die Teil des zu erfassenden Objekts sind, und in Punkte, die nicht dazugehören, segmentieren. Eine solche automatische Segmentierung kann eine höhere Leistung bereitstellen.
  • Beispielsweise können Ausführungsformen ein Verfahren zur schrittweisen Segmentierung einer 3D-Punktwolke in Objekt und Hintergrund bereitstellen. Ausführungsformen können Erfassungssitzungen verwenden, um Punkte schrittweise Objekt- und Hintergrundklassen zuzuordnen. Ausführungsformen können anstelle einer binären Segmentierung eine unscharfe Segmentierung verwenden, und die Segmentierung kann als „Nebeneffekt“ des Erfassungsprozesses betrachtet werden. Ein 3D-Punkt, der viele Übereinstimmungen mit Pixeln im Video hat, wird als innenliegender Punkt für das Erfassen des Objekts im Zeitverlauf betrachtet und ist mit höherer Wahrscheinlichkeit Teil des Objekts, während ein 3D-Punkt, der nur wenige Übereinstimmungen mit Pixeln im Video hat, mit höherer Wahrscheinlichkeit Teil des Hintergrunds ist. Vorteile dieses Ansatzes können ein besseres Erkennen und Erfassen von Objekten ermöglichen, wenn Objekte in verschiedenen Umgebungen neu positioniert werden, und können weiterhin umfassen, dass keine manuelle Arbeit für die Segmentierung erforderlich ist und die Ergebnisse im Laufe der Zeit ständig verbessert werden können, wenn das Objekt in mehreren Umgebungen erfasst wird.
  • Ein beispielhaftes System 100, in dem Ausführungsformen der vorliegenden Systeme und Verfahren implementiert werden können, ist in 1 dargestellt. Wie im Beispiel von 1 dargestellt ist, kann das System 100 eine Plattform 101 umfassen, die eine Kamera sein oder eine Kamera umfassen kann, um Videobilder eines dreidimensionalen (3D) Objekts 104 aufzuzeichnen, während sich die Kamera durch eine Mehrzahl von Blickpunkten 102A bis H bewegt, um einen Video-Stream 103 zu bilden. Die Plattform 101 kann sich entlang eines Pfades oder einer Bewegungsbahn 108 bewegen. Der Video-Stream 103 kann an das Bildverarbeitungssystem 106 übertragen werden, in dem Prozesse, die in Ausführungsformen der vorliegenden Systeme und Verfahren enthalten sind, implementiert werden können. Zum Beispiel kann das Bildverarbeitungssystem 106 eine 3D-Rekonstruktion durchführen, indem es gemäß Ausführungsformen der vorliegenden Systeme und Verfahren eine 3D-Punktwolke der Szene und/oder der Objekte in der Szene erzeugt. Ein Beispiel für ein solches Modell 300 eines Objekts ist in 3 dargestellt. Nachdem eine 3D-Punktwolke der Szene einschließlich des Modells 300 erzeugt wurde, können die Punkte in der 3D-Punktwolke in Punkte 302, die sich in dem durch das Modell 300 dargestellten Objekt befinden, und Punkte 304, die zum Hintergrund gehören, segmentiert werden.
  • Eine Ausführungsform eines Prozesses 200 für die Funktionsweise von Ausführungsformen der vorliegenden Systeme und Verfahren ist in 2 dargestellt. Der Prozess 200 beginnt bei 202, wo eine 3D-Punktwolke erzeugt werden kann. Beispielsweise kann der Video-Stream 103 empfangen und eine 3D-Punktwolke für ein Modell eines Objekts aus dem Video-Stream 103 mit n Punkten rekonstruiert werden. Jedem Punkt kann eine Wahrscheinlichkeit, Teil eines Objekts in einer Szene im Video-Stream 103 zu sein, zugewiesen werden. In Ausführungsformen einer unscharfen Segmentierung kann jedem Punkt i in der 3D-Punktwolke eine Wahrscheinlichkeit, bezeichnet als pi, zugewiesen werden, zu einem Objekt zu gehören. Dann ist 1-pi is, die Wahrscheinlichkeit, zum Hintergrund zu gehören. Die Wahrscheinlichkeit pi of, dass der Punkt i Teil eines Objekts ist, kann z.B. mit 50 % initialisiert werden. Die Wahrscheinlichkeiten aller Punkte in der Punktwolke können zu einem Vektor zusammengefasst werden. Bei 204 kann bei einer Punktwolke und einem Wahrscheinlichkeitsvektor P=[p0, p1...pn] eine Segmentierung durchgeführt werden, indem alle Punkte mit pi > 7, einem Schwellenwert, als zum Objekt gehörend betrachtet werden.
  • Um die Punktwolke für das Erfassen in einer Augmented-Reality-Sitzung (AR-Sitzung) zu verwenden, können bei 206 jedem Punkt einige Deskriptoren für sein visuelles Erscheinungsbild aus verschiedenen Blickwinkeln zugewiesen werden. Der Deskriptor kann anhand des Videos berechnet werden, das zur Rekonstruktion der Punktwolke verwendet wird. Bei 208 kann die 3D-Punktwolke dazu verwendet werden, ein Modell eines Objekts in einer AR-Sitzung zu erfassen. Wie in 4 dargestellt, kann der Erfasser 404 für jedes Bild 402 unter Verwendung der Segmentierungsinformationen 408 die Position 406 der Kamera in Bezug auf das Modell 410 schätzen, und anhand des Deskriptors der Punkte kann eine Übereinstimmung mit Punkten im AR-Video-Stream 103 berechnet werden. Eine Schätzung kann beispielsweise auf übereinstimmenden visuellen Deskriptoren beruhen, z.B. der skaleninvarianten Merkmalstransformation (scale-invariant feature transform - SIFT), die 3D-Punkte Bildpunkten zuordnen kann. Eine Segmentierung kann für ein Auswählen der zu berücksichtigenden 3D-Punkte verwendet werden. Zum Beispiel kann das Erfassen nur mit Punkten erfolgen, bei denen pi > T ist. Oder das Erfassen kann z.B. anhand von Stichprobenpunkten auf der Grundlage ihrer Wahrscheinlichkeit erfolgen. Das Ergebnis des Erfassens kann die Objektposition im Video-Stream 103 sein, da der Erfasser die geschätzte Kameraposition ausgeben kann. Übereinstimmungen, die die geschätzte Position unterstützen, können für die Position als innenliegend betrachtet werden, während die anderen Übereinstimmungen als außenliegend betrachtet werden können.
  • Bei 210 kann für die 3D-Punkte, die zu innenliegenden Übereinstimmungen gehören, der pi-Wert erhöht werden, während für Punkte, die zu außenliegenden Übereinstimmungen gehören, der pi-Wert verringert werden kann. Bei 212 werden die pi-Werte im Laufe der Zeit durch den Prozess so festgelegt, dass Punkte, die zum Objekt gehören, hohe pi-Werte haben können, während Hintergrundpunkte niedrige pi-Werte haben können. Bei 214 kann die ermittelte Segmentierung aktualisiert werden, um die Segmentierung zu verbessern. In Ausführungsformen kann die 3D-2D-Übereinstimmungsstatistik, bei der es sich um interne Daten im Erfasser handeln kann, zum Verbessern der Segmentierung verwendet werden. So können beispielsweise die 3D-Punkte, die zum Objektsegment gehören, als in der Regel „richtig“ und die Punkte, die zum Hintergrund gehören, als „schlecht“ übereinstimmend betrachtet werden. Wie in 5 dargestellt, kann in Ausführungsformen der Modellerfasser 502 für jeden Punkt seinen Übereinstimmungsfehler 504 ausgeben und angeben, ob er zur Positionsschätzung beigetragen hat (innenliegend-außenliegend). Das heißt, der Modellerfasser 502 kann anzeigen, welche Punkte tatsächlich für das Erfassen verwendet wurden (innenliegende Punkte) und welche nicht (außenliegende Punkte). Die Segmentierungsaktualisierung 506 kann die aktuelle Segmentierung 508 aktualisieren, indem sie den pi-Wert für innenliegende Punkte erhöht und den pi-Wert für außenliegende Punkte verringert, und dies kann verwendet werden, um die Segmentierungsinformationen 510 zu aktualisieren, die dann für den Modellerfasser 502 verwendet werden können. So können Informationen darüber, welche Punkte tatsächlich für das Erfassen verwendet wurden und welche nicht, zum Aktualisieren der Segmentierung verwendet werden, die dann zur Verbesserung des Erfassens verwendet werden kann.
  • Ein beispielhaftes Blockschaubild eines Computersystems 600, in dem Prozesse implementiert werden können, die in den hierin beschriebenen Ausführungsformen enthalten sind, wird in 6 gezeigt. Das Computersystem 600 kann unter Verwendung eines oder mehrerer programmierter Universalcomputersysteme wie eingebettete Prozessoren, Systeme auf einem Chip, Personal Computer, Workstations, Serversysteme und Minicomputer oder Großrechner oder in verteilten, vernetzten Datenverarbeitungsumgebungen implementiert werden. Das Computersystem 600 kann einen oder mehrere Prozessoren (CPUs) 602A bis N, die Eingabe/Ausgabe-Schaltung 604, den Netzwerkadapter 606 und den Speicher 608 enthalten. Die CPUs 602A bis N führen Programmanweisungen aus, um die Funktionen der vorliegenden Datenübertragungssysteme und -verfahren durchzuführen. Bei den CPUs 602A bis N handelt es sich in der Regel um einen oder mehrere Mikroprozessoren wie einen INTEL CORE®-Prozessor. 6 veranschaulicht eine Ausführungsform, bei der das Computersystem 600 als ein einzelnes Multiprozessor-Computersystem implementiert ist, in dem mehrere Prozessoren 602A bis N gemeinsam Systemressourcen wie den Speicher 608, die Eingabe/Ausgabe-Schaltung 604 und den Netzwerkadapter 606 nutzen. Die vorliegenden Datenübertragungssysteme und -verfahren umfassen jedoch auch Ausführungsformen, bei denen das Computersystem 600 als eine Mehrzahl von vernetzten Computersystemen implementiert ist, bei denen es sich um Einzelprozessor-Computersysteme, Multiprozessor-Computersysteme oder eine Mischung daraus handeln kann.
  • Die Eingabe/Ausgabe-Schaltung 604 stellt die Funktionalität bereit, Daten in das Computersystem 600 einzugeben oder aus dem Computersystem 600 auszugeben. Die Eingabe/Ausgabe-Schaltung kann Eingabeeinheiten wie Tastaturen, Mäuse, Touchpads, Trackballs, Scanner, Analog-Digital-Wandler usw., Ausgabeeinheiten wie Videoadapter, Monitore, Drucker usw. und Eingabe/Ausgabe-Einheiten wie Modems usw. umfassen. Der Netzwerkadapter 606 verbindet die Einheit 600 mit einem Netzwerk 610. Bei dem Netzwerk 610 kann es sich um ein öffentliches oder proprietäres LAN oder WAN handeln, das das Internet umfassen kann, ohne darauf beschränkt zu sein.
  • Der Speicher 608 speichert Programmanweisungen, die von der CPU 602 ausgeführt werden, sowie Daten, die von der CPU 602 verwendet und verarbeitet werden, um die Funktionen des Computersystems 600 durchzuführen. Der Speicher 608 kann zum Beispiel elektronische Speichereinheiten wie einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen programmierbaren Nur-Lese-Speicher (PROM), einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einen Flash-Speicher usw. sowie einen elektromechanischen Speicher wie Magnetplattenlaufwerke, Bandlaufwerke, optische Plattenlaufwerke usw. umfassen, die eine Schnittstelle für integrierte Laufwerkselektronik (IDE) oder eine Variation oder Verbesserung davon wie Enhanced IDE (EIDE) oder Ultra-Direkt-Speicherzugriff (UDMA), oder eine auf Small Computer System Interface (SCSI) beruhende Schnittstelle oder eine Variation oder Verbesserung davon wie Fast-SCSI, Wide-SCSI, Fast and Wide-SCSI usw., oder Serial Advanced Technology Attachment (SATA) oder eine Variation oder Verbesserung davon, oder eine Fibre Channel-Arbitrated Loop (FC-AL)-Schnittstelle verwenden können.
  • Der Inhalt des Speichers 608 kann je nach der Funktion, für deren Durchführen das Computersystem 600 programmiert ist, variieren. In dem in 6 gezeigten Beispiel werden beispielhafte Speicherinhalte veranschaulicht, die Routinen und Daten für Ausführungsformen der vorstehend beschriebenen Prozesse darstellen. Für den Fachmann ist jedoch offensichtlich, dass diese Routinen zusammen mit den Speicherinhalten in Verbindung mit diesen Routinen nicht in einem System oder einer Einheit enthalten sein können, sondern auf Grundlage von bekannten technischen Überlegungen unter einer Mehrzahl von Systemen oder Einheiten verteilt sein können. Die vorliegenden Datenübertragungssysteme und -verfahren können beliebige und alle diese Anordnungen enthalten.
  • In dem in 6 gezeigten Beispiel kann der Speicher 608 die Punktwolken-Erzeugungsroutinen 612, die Segmentierungsermittlungsroutinen 614, die Erfassungsroutinen 616, die Segmentierungsaktualisierung 618, die Video-Stream-Bilddaten 620 und das Betriebssystem 622 umfassen. Die Punktwolkenroutinen 612 können Softwareroutinen umfassen, um eine 3D-Punktwolke für ein Modell eines Objekts zu erzeugen, das aus Video-Stream-Bilddaten 620 rekonstruiert werden kann, das Wahrscheinlichkeiten zuweisen kann, dass jeder Punkt in der Punktwolke Teil des Objekts ist, und das Deskriptoren des visuellen Erscheinungsbildes aus verschiedenen Blickwinkeln zuweisen kann. Die Segmentierungsermittlungsroutinen 614 können Softwareroutinen umfassen, um auf der Grundlage der von den Erfassungsroutinen 616 empfangenen Informationen Wahrscheinlichkeiten, dass jeder Punkt Teil eines Objekts ist, zu ermitteln und zu aktualisieren. Die Erfassungsroutinen 616 können Softwareroutinen umfassen, um die Objektposition in den Video-Stream-Bilddaten 620 zu erfassen und die geschätzte Kameraposition sowie Informationen auszugeben, die angeben, ob jeder Punkt zum Erfassen des Objekts verwendet wurde, was von den Segmentierungsermittlungsroutinen 614 verwendet werden kann, um Wahrscheinlichkeiten, dass jeder Punkt Teil eines Objekts ist, zu ermitteln und zu aktualisieren. Das Betriebssystem 634 kann die gesamte Systemfunktionalität bereitstellen.
  • Wie in 6 gezeigt, können die vorliegenden Datenübertragungssysteme und Verfahren eine Implementierung auf einem System oder Systemen enthalten, die eine Multiprozessor-, Multitasking-, Multiprozess- und/oder Multi-Thread-Datenverarbeitung bereitstellen, sowie eine Implementierung auf Systemen, die eine Einzelprozessor-, Einzel-Thread-Datenverarbeitung bereitstellen. Die Multiprozessor-Datenverarbeitung umfasst ein Durchführen von Datenverarbeitung unter Verwendung von mehr als einem Prozessor. Die Multi-Tasking-Datenverarbeitung umfasst ein Durchführen von Datenverarbeitung unter Verwendung von mehr als einer Betriebssystemaufgabe. Bei einer Aufgabe (task) handelt es sich um ein Betriebssystemkonzept, das sich auf die Kombination eines ausgeführten Programms und der vom Betriebssystem verwendeten Buchhaltungsinformationen bezieht. Immer wenn ein Programm ausgeführt wird, erzeugt das Betriebssystem eine neue Aufgabe für das Programm. Die Aufgabe ist insofern wie eine Verpackung für das Programm, als sie das Programm mit einer Aufgabennummer kennzeichnet und andere Buchhaltungsinformationen anhängt. Viele Betriebssysteme, darunter Linux, UNIX®, OS/2® und Windows®, sind in der Lage, viele Aufgaben gleichzeitig auszuführen, und werden als Multitasking-Betriebssysteme bezeichnet. Bei Multitasking handelt es sich um die Fähigkeit eines Betriebssystems, mehr als eine ausführbare Funktion gleichzeitig durchzuführen. Jede ausführbare Funktion wird in einem eigenen Adressraum ausgeführt, was bedeutet, dass die ausführbaren Funktionen keine Möglichkeit haben, ihren Speicher gemeinsam zu nutzen. Dies hat Vorteile, da es unmöglich ist, dass ein Programm die Ausführung eines der anderen auf dem System ausgeführten Programme beschädigt. Die Programme haben jedoch keine Möglichkeit, Informationen auszutauschen, außer über das Betriebssystem (oder durch Lesen von Dateien, die auf dem Dateisystem gespeichert sind). Multiprozess-Datenverarbeitung ähnelt der Multitasking-Datenverarbeitung, da die Begriffe Aufgabe und Prozess oft austauschbar verwendet werden, obwohl einige Betriebssysteme einen Unterschied zwischen beiden machen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jedem möglichen technischen Detaillierungsgrad der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (13)

  1. Verfahren (200) zum Erzeugen von Augmented-Reality-Inhalten, das in einem Computer (600) implementiert ist, der einen Prozessor (602A, 602N), einen Speicher (608), auf den der Prozessor Zugriff hat, und Computerprogrammanweisungen (612, 614, 616) aufweist, die in dem Speicher gespeichert und von dem Prozessor ausführbar sind, wobei das Verfahren aufweist: Erfassen (208) eines 3D-Modells (300; 410) eines Objekts (104) in einer Szene in einem Video-Stream (103) im Computersystem, während sich eine Kamera durch die Szene bewegt, wobei das Erfassen für jeden Punkt für jedes Bild (402) im Video-Stream Ermitteln aufweist, ob der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann; Segmentieren (210, 212, 214) jedes der Mehrzahl von Punkten im Computersystem in entweder einen Punkt, der dem Objekt entspricht, oder einen Punkt, der dem Hintergrund entspricht, auf der Grundlage einer Wahrscheinlichkeit, dass der Punkt (302) dem Objekt entspricht, und einer Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, wobei die Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, weil die Wahrscheinlichkeit erhöht wird, wenn das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, und die Wahrscheinlichkeit, dass der Punkt (304) dem Hintergrund entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt nicht mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, weil die die Wahrscheinlichkeit verringert wird, wenn das Erfassen feststellt, dass der Punkt nicht mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann; und Erzeugen von Augmented-Reality-Inhalten im Computersystem auf der Grundlage des segmentierten 3D-Modells des Objekts.
  2. Verfahren nach Anspruch 1, wobei das Erfassen Verwenden des segmentierten 3D-Modells des Objekts aufweist, um eine Position der Kamera in Bezug auf das 3D-Modell des Objekts zu schätzen.
  3. Verfahren nach Anspruch 2, wobei das 3D-Modell des Objekts zunächst unter Verwendung einer Standardeinstellung der Wahrscheinlichkeit für jeden Punkt segmentiert wird, und für jedes Bild die Wahrscheinlichkeit für jeden Punkt aktualisiert wird, je nachdem, ob das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann oder nicht.
  4. Verfahren nach Anspruch 3, wobei die Standardeinstellung der Wahrscheinlichkeit für jeden Punkt 0,5 ist.
  5. Verfahren nach Anspruch 1, wobei das 3D-Modell des Objekts in der Szene eine 3D-Punktwolke aufweist, die eine Mehrzahl von Punkten aufweist, darunter mindestens einige Punkte, die dem Objekt entsprechen, und mindestens einige Punkte, die einem Hintergrund der Szene entsprechen.
  6. Verfahren nach Anspruch 5, wobei der Video-Stream von der sich in der Szene bewegenden Kamera aufgenommen wurde.
  7. System (600) zum Erzeugen von Augmented-Reality-Inhalten, das einen Prozessor (602A, 602N), einen Speicher (608), auf den der Prozessor Zugriff hat, und Computerprogrammanweisungen (612, 614, 616) aufweist, die in dem Speicher gespeichert sind und von dem Prozessor ausführbar sind, um: ein 3D-Modell (300; 410) eines Objekts (104) in einer Szene in einem Video-Stream (103) zu erfassen (208), während sich eine Kamera durch die Szene bewegt, wobei das Erfassen für jeden Punkt für jedes Bild (402) Ermitteln aufweist, ob der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann; jeden der Mehrzahl von Punkten in entweder einen Punkt, der dem Objekt entspricht, oder einen Punkt, der dem Hintergrund entspricht, auf der Grundlage einer Wahrscheinlichkeit, dass der Punkt dem Objekt entspricht, und einer Wahrscheinlichkeit, dass der Punkt dem Hintergrund entspricht, zu segmentieren (210, 212. 214), wobei die Wahrscheinlichkeit, dass der Punkt (302) dem Objekt entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, weil die Wahrscheinlichkeit erhöht wird, wenn das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, und die Wahrscheinlichkeit, dass der Punkt (304) dem Hintergrund entspricht, für jeden Punkt umso höher ist, je öfter das Erfassen feststellt, dass der Punkt nicht mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann, weil die die Wahrscheinlichkeit verringert wird, wenn das Erfassen feststellt, dass der Punkt nicht mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann; und Augmented-Reality-Inhalte auf der Grundlage des segmentierten 3D-Modells des Objekts zu erzeugen.
  8. System nach Anspruch 7, wobei das Erfassen Verwenden des segmentierten 3D-Modells des Objekts aufweist, um eine Position der Kamera in Bezug auf das 3D-Modell des Objekts zu schätzen.
  9. System nach Anspruch 8, wobei das 3D-Modell des Objekts zunächst unter Verwendung einer Standardeinstellung der Wahrscheinlichkeit für jeden Punkt segmentiert wird, und für jedes Bild die Wahrscheinlichkeit für jeden Punkt aktualisiert wird, je nachdem, ob das Erfassen feststellt, dass der Punkt mit einem Bereich des Bilds im Video Stream in Übereinstimmung gebracht werden kann oder nicht.
  10. System nach Anspruch 9, wobei die Standardeinstellung der Wahrscheinlichkeit für jeden Punkt 0,5.
  11. System nach Anspruch 7, wobei das 3D-Modell des Objekts in der Szene eine 3D-Punktwolke aufweist, die eine Mehrzahl von Punkten aufweist, darunter mindestens einige Punkte, die dem Objekt entsprechen, und mindestens einige Punkte, die einem Hintergrund der Szene entsprechen.
  12. System nach Anspruch 11, wobei der Video-Stream von der sich in der Szene bewegenden Kamera aufgenommen wurde.
  13. Computerprogrammprodukt zum Erzeugen von Augmented-Reality-Inhalten, wobei das Computerprogrammprodukt einen nichtflüchtigen durch einen Computer lesbaren Speicher (608) mit darin gespeicherten Programmanweisungen (612. 614, 616) aufweist, wobei die Programmanweisungen durch einen Computer (600) ausführbar sind, um den Computer zu veranlassen, ein Verfahren (200) nach einem der Ansprüche 1 bis 6 durchzuführen.
DE112020000906.8T 2019-05-21 2020-05-06 Schrittweise 3d-punktwolkensegmentierung in objekt und hintergrund aus erfassungssitzungen Active DE112020000906B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/417,675 2019-05-21
US16/417,675 US10930012B2 (en) 2019-05-21 2019-05-21 Progressive 3D point cloud segmentation into object and background from tracking sessions
PCT/IB2020/054284 WO2020234678A1 (en) 2019-05-21 2020-05-06 Progressive 3d point cloud segmentation into object and background from tracking sessions

Publications (2)

Publication Number Publication Date
DE112020000906T5 DE112020000906T5 (de) 2021-11-11
DE112020000906B4 true DE112020000906B4 (de) 2023-07-06

Family

ID=73457066

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020000906.8T Active DE112020000906B4 (de) 2019-05-21 2020-05-06 Schrittweise 3d-punktwolkensegmentierung in objekt und hintergrund aus erfassungssitzungen

Country Status (6)

Country Link
US (1) US10930012B2 (de)
JP (1) JP2022533393A (de)
CN (1) CN113811919A (de)
DE (1) DE112020000906B4 (de)
GB (1) GB2598512B (de)
WO (1) WO2020234678A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210279967A1 (en) * 2020-03-06 2021-09-09 Apple Inc. Object centric scanning
US11250626B1 (en) * 2020-08-13 2022-02-15 Beijing Institute Of Technology Virtual stage based on parallel simulation
CN113744298A (zh) * 2021-01-05 2021-12-03 北京京东乾石科技有限公司 数据处理方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041722A1 (en) 2009-02-06 2012-02-16 The Hong Kong University Of Science And Technology Generating three-dimensional models from images

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001250802A1 (en) * 2000-03-07 2001-09-17 Sarnoff Corporation Camera pose estimation
US20030012410A1 (en) * 2001-07-10 2003-01-16 Nassir Navab Tracking and pose estimation for augmented reality using real features
US7706603B2 (en) * 2005-04-19 2010-04-27 Siemens Corporation Fast object detection for augmented reality systems
US7957548B2 (en) * 2006-05-16 2011-06-07 Phonak Ag Hearing device with transfer function adjusted according to predetermined acoustic environments
US9189886B2 (en) * 2008-08-15 2015-11-17 Brown University Method and apparatus for estimating body shape
US8401225B2 (en) * 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
US9524555B2 (en) * 2011-12-12 2016-12-20 Beihang University Method and computer program product of the simultaneous pose and points-correspondences determination from a planar model
US9154773B2 (en) * 2013-03-15 2015-10-06 Seiko Epson Corporation 2D/3D localization and pose estimation of harness cables using a configurable structure representation for robot operations
CN103366158A (zh) * 2013-06-27 2013-10-23 东南大学 基于三维结构和色彩模型的单目视觉路面检测方法
US9536321B2 (en) * 2014-03-21 2017-01-03 Intel Corporation Apparatus and method for foreground object segmentation
WO2016040473A1 (en) * 2014-09-10 2016-03-17 Vangogh Imaging, Inc. Real-time dynamic three-dimensional adaptive object recognition and model reconstruction
US9710712B2 (en) * 2015-01-16 2017-07-18 Avigilon Fortress Corporation System and method for detecting, tracking, and classifiying objects
US10373366B2 (en) * 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation
KR101703515B1 (ko) * 2015-05-19 2017-02-07 국방과학연구소 영상의 표적 추적 장치 및 방법
US9818043B2 (en) * 2015-06-24 2017-11-14 Microsoft Technology Licensing, Llc Real-time, model-based object detection and pose estimation
JP6607630B2 (ja) * 2015-06-30 2019-11-20 Kddi株式会社 移動物体抽出装置、方法およびプログラム
US9836673B2 (en) * 2015-12-30 2017-12-05 International Business Machines Corporation System, method and computer program product for training a three dimensional object indentification system and identifying three dimensional objects using semantic segments
WO2017132636A1 (en) * 2016-01-29 2017-08-03 Pointivo, Inc. Systems and methods for extracting information about objects from scene information
US10482681B2 (en) * 2016-02-09 2019-11-19 Intel Corporation Recognition-based object segmentation of a 3-dimensional image
US10373380B2 (en) 2016-02-18 2019-08-06 Intel Corporation 3-dimensional scene analysis for augmented reality operations
US9868212B1 (en) * 2016-02-18 2018-01-16 X Development Llc Methods and apparatus for determining the pose of an object based on point cloud data
CN106056614A (zh) * 2016-06-03 2016-10-26 武汉大学 一种地面激光点云数据的建筑物分割与轮廓线提取方法
CN107945198B (zh) * 2016-10-13 2021-02-23 北京百度网讯科技有限公司 用于标注点云数据的方法和装置
US10109055B2 (en) * 2016-11-21 2018-10-23 Seiko Epson Corporation Multiple hypotheses segmentation-guided 3D object detection and pose estimation
CN107133966B (zh) * 2017-03-30 2020-04-14 浙江大学 一种基于采样一致性算法的三维声纳图像背景分割方法
US10467756B2 (en) * 2017-05-14 2019-11-05 International Business Machines Corporation Systems and methods for determining a camera pose of an image
US10419716B1 (en) * 2017-06-28 2019-09-17 Vulcan Technologies Llc Ad-hoc dynamic capture of an immersive virtual reality experience
CN107424166B (zh) * 2017-07-18 2020-05-19 深圳市速腾聚创科技有限公司 点云分割方法及装置
US10535160B2 (en) * 2017-07-24 2020-01-14 Visom Technology, Inc. Markerless augmented reality (AR) system
CN107560592B (zh) * 2017-08-21 2020-08-18 河南中光学集团有限公司 一种用于光电跟踪仪联动目标的精确测距方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041722A1 (en) 2009-02-06 2012-02-16 The Hong Kong University Of Science And Technology Generating three-dimensional models from images

Also Published As

Publication number Publication date
US10930012B2 (en) 2021-02-23
GB202117072D0 (en) 2022-01-12
US20200372676A1 (en) 2020-11-26
CN113811919A (zh) 2021-12-17
GB2598512B (en) 2022-10-05
JP2022533393A (ja) 2022-07-22
WO2020234678A1 (en) 2020-11-26
GB2598512A (en) 2022-03-02
DE112020000906T5 (de) 2021-11-11

Similar Documents

Publication Publication Date Title
DE112020000906B4 (de) Schrittweise 3d-punktwolkensegmentierung in objekt und hintergrund aus erfassungssitzungen
DE112020002213T5 (de) Ermittlung von Bildeffekten
DE112020005360T5 (de) Fein differenzierte optische erkennung in erweiterter realität
DE102006005044B4 (de) Verfahren und System zur Bestimmung eines Datenmodells zur Überlagerung mit einem realen Objekt in einem Verfahren zur Objektverfolgung
EP2089886B1 (de) Verfahren zur zeitlichen segmentierung eines videos in videobildfolgen und zur auswahl von keyframes für das auffinden von bildinhalten unter einbeziehung einer subshot-detektion
DE112012004809B4 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
DE102014205791A1 (de) Verfahren und Systeme zur Zeichensegmentierung in Anwendungen mit automatischer Nummernschilderkennung
DE112021002453T5 (de) Iteratives trainieren eines modells für maschinelles lernen
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE102021128523A1 (de) Hierarchische bildzerlegung zur defekterkennung
DE112018003585T5 (de) Deduplizierung eines bandlaufwerkspeichers
DE102019117559A1 (de) Verfahren und System zum Fusionieren von zweidimensionalen semantischen Informationen aus Bildern mit einer dreidimensionalen Punktwolke
DE112021006280T5 (de) Generieren von daten auf grundlage von vorab trainierten modellen unter verwendung generierender konkurrierender modelle
BE1029597B1 (de) Bildverarbeitungssysteme und -verfahren zum automatischen Erzeugen eines oder mehrerer Bildverarbeitungsaufträge auf Grundlage interessierender Regionen (ROIs) digitaler Bilder
DE112021002291T5 (de) Verringern von ressourcenkosten bei visueller erkennung
BE1029610B1 (de) Systeme und Verfahren zum Verbessern einer Performanz einer trainierbaren optischen Zeichenerkennung (OCR)
DE112018005998T5 (de) Kopieren und weiterleiten für eine gleichzeitig ablaufende kopierende garbage-collection
DE102021128522A1 (de) Identifizierung von regeln des netzwerkdatenverkehrs
DE112022001773T5 (de) Systeme und Verfahren zur Bestimmung eines adaptiven Bereichs von Interesse (ROI) für die Berechnung von Bildmetriken
DE102013114914A1 (de) Verfahren und System zur grafischen Darstellung unter Verwendung des Metropolis-Lichttransports mit Gradientenbereich
DE102016225310A1 (de) Mobiler Manipulator und Verfahren zum Steuern eines mobilen Manipulators
DE102020129164A1 (de) Verfahren und vorrichtung zur unterscheidung von verschiedenen konfigurationszuständen eines objekts auf der grundlage einer bildlichen darstellung des objekts
DE102020110243A1 (de) Computerimplementiertes Verfahren zur Datenaugmentation
BE1029310B1 (de) Systeme und verfahren zum anreichern eines von einer maschinensicht-kamera aufgenommenen bildinhalts

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final