-
Die
vorliegende Erfindung betrifft ein Verfahren und ein System zur
Bestimmung eines Datenmodells einer virtuellen Information, das
bestimmt ist, in einem Verfahren zur Objektverfolgung mit einem
Abbild eines realen Objekts überlagert
zu werden. Weiterhin betrifft die vorliegende Erfindung ein Verfahren zur
Objektverfolgung, insbesondere in einem Augmented Reality System,
unter Verwendung eines derart bestimmten Datenmodells. Des weiteren
betrifft die Erfindung ein Computerprogrammprodukt, das Softwarecodeabschnitte
umfasst zur Durchführung
des erfindungsgemäßen Verfahrens.
-
Augmented
Reality Systeme erlauben die Überlagerung
von Computer-generierten, virtuellen Informationen mit Seheindrücken der
realen Umgebung. Hierzu werden die Seheindrücke der realen Welt beispielsweise
mittels einer auf dem Kopf des Anwenders getragenen halbdurchlässigen Datenbrille
mit virtuellen Informationen vermischt. Die Einblendung der virtuellen
Informationen bzw. Objekte kann dabei kontextabhängig, d.h. angepasst und abgeleitet
von der jeweiligen betrachteten Umgebung ausgeführt werden. Als virtuelle Information
kann grundsätzlich
jede Art von Daten wie Texte, Abbildungen etc. verwendet werden.
Die reale Umgebung wird beispielsweise mit einer auf dem Kopf des
Anwenders getragenen Kamera erfasst.
-
Bei
einer Kopfbewegung des Anwenders eines Augmented Reality Systems
müssen
sämtliche virtuellen
Objekte dem sich ändernden
Sichtfeld nachgeführt
werden. Die reale Umgebung kann eine komplexe Vorrichtung und das
erfasste Objekt kann ein markantes Element der Vorrichtung sein.
Während
eines folgenden sogenannten Trackingvorgangs, der den eigentlichen
Arbeitsvorgang der Objektverfolgung repräsentiert, während ein Anwender des Systems
kontextabhängige
Information an einer gewünschten
Position in Bezug zur realen Umgebung in einer verwendeten Anzeigeeinrichtung
eingeblendet erhält,
dient das während
einer Initialisierung erfasste reale Objekt als Referenz, um die
Position zu berechnen, an der die virtuelle Information in einem
von der Kamera aufgenommenen Bild angezeigt oder eingeblendet werden
soll. Da der Anwender seine Position und seine Orientierung ändern kann,
muss das reale Objekt kontinuierlich nachverfolgt werden (Tracking),
um die virtuelle Information auch bei einer geänderten Position und/oder einer geänderten
Orientierung des Anwenders an der korrekten Position in der Anzeigeeinrichtung
anzuzeigen. Damit wird erreicht, dass die Information unabhängig von
der Position und/oder der Orientierung des Anwenders in Bezug zur
Realität
in der Anzeigeeinrichtung kontextrichtig angezeigt wird. Ein Augmented
Reality System ist hierbei ein Beispiel für die Anwendung von solchen
sogenannten markerlosen Trackingsystemen.
-
Eines
der zentralen Probleme auf dem Gebiet der Augmented Reality (Erweiterte
Realität)
ist die Bestimmung der Kopfposition und der Kopforientierung des
Anwenders (Pose) mittels einer starr mit dem Kopf verbundenen Videokamera.
Dieses Problem ist verwandt mit und kann umgewandelt werden in das
Problem der Objektverfolgung, bei dem es, wie oben beschrieben,
um die Bestimmung der Pose eines Objekts bezüglich der Videokamera geht,
wobei nur der Videostrom bzw. Bilderfluss der Videokamera als Informationsquelle
verwendet wird.
-
Zur
Lösung
dieses Problems hat sich ein Verfahren in der Praxis als äußerst vielversprechend erwiesen,
wobei dieses Verfahren als sogenannte konturbasierte Objektverfolgung
bekannt ist. Bei diesem Verfahren wird ein sogenanntes Konturmodell des
zu verfolgenden realen Objekts mit seiner Abbildung in einem Videobild
verglichen und solange angepasst, bis eine optimale Übereinstimmung
gefunden wurde (Optimierung). Bisher gibt es jedoch kaum Untersuchungen
darüber,
wie solche Konturmodelle effizient gewonnen werden können. Bei
den bisher bekannten Verfahren zur konturbasierten Objektverfolgung
werden solche Konturmodelle manuell anhand der jeweiligen realen
Objekte erstellt. Eine solche manuelle Erstellung eines Datenmodells
einer virtuellen Information, das bestimmt ist, mit einem Abbild
eines realen Objekts überlagert
zu werden, ist jedoch vergleichsweise aufwendig und zeitintensiv.
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren
und ein System zur Bestimmung eines Datenmodells der eingangs genannten Art anzugeben,
die jeweils eine schnelle und effiziente Generierung eines Konturmodells
als Datenmodell ermöglichen,
das bestimmt ist, mit einem Abbild eines realen Objekts überlagert
zu werden. Weiterhin ist es Aufgabe der vorliegenden Erfindung,
ein Verfahren zur Objektverfolgung unter Verwendung eines Datenmodells
anzugeben, das mit einem Abbild eines realen Objekts auf einer Bildebene überlagert wird.
-
Diese
Aufgabe wird gelöst
durch ein Verfahren gemäß den Merkmalen
des Patentanspruchs 1 sowie durch ein System gemäß den Merkmalen des Patentanspruchs
23. Weiterhin betrifft die Erfindung ein Verfahren zur Objektverfolgung
unter Verwendung eines derart bestimmten Datenmodells gemäß den Merkmalen
des Patentanspruchs 21. Die Erfindung betrifft weiterhin ein Computerprogrammprodukt
gemäß den Merkmalen
des Patentanspruchs 24.
-
Erfindungsgemäß wird das
Datenmodell, das bestimmt ist, mit einem Abbild eines realen Objekts überlagert
werden, mit folgenden Schritten bestimmt: Es wird ein dreidimensionales
CAD-Modell zur Nachbildung des realen Objektes bereitgestellt, nachfolgend
werden unterschiedliche synthetische zweidimensionale Ansichten
des CAD-Modells generiert. Jede generierte Ansicht wird einer Kantenextraktion
zur Bestimmung wenigstens einer extrahierten Kante in der jeweiligen
Ansicht unterzogen, wobei die aus den jeweiligen Ansichten extrahierten
Kanten zu einem dreidimensionalen Konturmodell umgewandelt werden,
das dem zu bestimmenden Datenmodell entspricht.
-
Weiterhin
werden nach der Kantenextraktion jeweilige zweidimensionale Kantenpunkte,
beispielsweise in Form von Kantenpixel, einer extrahierten Kante
bestimmt. Bei der Umwandlung der extrahierten Kanten wird mit Hilfe
des CAD-Modells eine dreidimensionale Position der jeweiligen Kantenpunkte bestimmt,
wobei eine Menge an dreidimensionalen Punkten erhalten wird, aus
welchen das dreidimensionale Konturmodell bestimmt wird. Insbesondere wird
dabei jeder Kantenpunkt als ein zweidimensionaler Punkt in der Bildebene
aufgefasst und seine dreidimensionale Position im Koordinatensystem
des CAD-Modells
ermittelt. Die Menge an dreidimensionalen Punkten wird in zusammengehörende Kontursegmente
aufgeteilt, wobei hierzu ein Algorithmus verwendet wird, anhand
dessen ein euklidischer minimaler Spannbaum der dreidimensionalen
Punkte ermittelt wird.
-
Die
Erfindung bietet dabei den Vorteil, dass sich dreidimensionale Konturmodelle
insbesondere zur Verwendung für
markerlose Objektverfolgung, basierend auf dreidimensionalen CAD-Modellen, vollautomatisch
extrahieren lassen. Somit kann ein semi- oder vollautomatisches
Verfahren für
die Erstellung von Konturmodellen bereitgestellt werden, was diese
Technik vor allem für
den industriellen Einsatz interessant macht.
-
Die
zentrale Idee der vorliegenden Erfindung besteht dabei darin, anhand
eines dreidimensionalen CAD-Modells zur Nachbildung des betreffenden
realen Objekts zu bestimmen, welche Kanten des zu verfolgenden Objekts
für das
spätere
optische konturbasierte Tracking relevant sind, um sie anschließend in
ein dreidimensionales Konturmodell umzuwandeln. Bei der Konzeptionierung
der vorliegenden Erfindung wurden dabei diejenigen Kanten als relevant
erkannt, die in einer möglichst
großen
Anzahl von unterschiedlichen Ansichten mittels eines Kantenfilters
aus der jeweiligen Ansicht extrahiert werden können. Für die Ermittlung der relevanten
visuellen Kanten des zu verfolgenden realen Objekts werden unterschiedliche
Ansichten des zu verfolgenden Objekts synthetisch simuliert. Dafür wird das
dreidimensionale CAD-Modell verwendet. Hierbei ist die synthetische
Herstellung unterschiedlicher Ansichten als ein wesentliches Element
der Erfindung anzusehen, da die Notwendigkeit, Videoaufnahmen des
realen Objekts zu erstellen und zu verwenden, durch diese Maßnahme wegfällt. Außerdem besteht
die volle Kontrolle über
die virtuelle Kamera, mit der die unterschiedlichen Ansichten generiert
werden.
-
Gemäß der vorliegenden
Erfindung liegt das technische Konzept somit insbesondere auf dem technischen
Gebiet der Augmented Reality Systeme, wobei insbesondere der industrielle
Einsatz eines solchen Systems, wie oben beschrieben, ermöglicht wird,
da ein semi- oder vollautomatisches Verfahren für die Erstellung von Konturmodellen
zur Überlagerung
mit einem Abbild eines realen Objekts bereitgestellt werden kann.
Außerdem
wird gegenüber
einer manuellen Generierung eines solchen Datenmodells eine höhere Genauigkeit
auf Grundlage des CAD-Modells erzielt, was im Ergebnis zu einem
verbesserten und genaueren Trackingverfahren bei Einsatz des Augmented
Reality Systems führen
wird. Die zentrale Idee der Erfindung besteht darin, anhand des
CAD-Modells zu bestimmen,
welche Kanten des zu verfolgenden Objekts für das spätere optische konturbasierte
Tracking relevant sind, um sie anschließend in ein dreidimensionales
Konturmodel umzuwandeln. Dieser Kerngedanke wurde aufgrund der Kenntnis
der optisch-technischen Zusammenhänge bei der Durchführung eines
optischen konturbasierten Trackings erbracht, wobei unter Zugrundelegung
der entsprechenden technischen Kenntnisse bewertet wurde, welche
optisch-technische Bedeutung die einzelnen Merkmale haben und wie
diese zur Lösung
des oben genannten technischen Problems beitragen können. Insgesamt
ist es mittels der Erfindung ermöglicht,
die konturbasierte optische Objektverfolgung für den industriellen Einsatz
und somit für
die alltägliche
Praxis interessant zu machen.
-
Gemäß dem Konzept
der vorliegenden Erfindung wird dabei nicht direkt das CAD-Modell
für das optische
konturbasierte Tracking verwendet, sondern es wird über den
Zwischenschritt der Generierung von unterschiedlichen synthetischen
zweidimensionalen Ansichten des CAD-Modells bestimmt, welche Kanten
des zu verfolgenden realen Objekts für das spätere optische konturbasierte
Tracking relevant sind. Die aus den jeweiligen Ansichten extrahierten Kanten
werden dabei zu einem dreidimensionalen Konturmodell umgewandelt,
welches als Datenmodell für
das optische konturbasierte Tracking verwendet werden kann.
-
Gemäß einer
Ausführungsform
werden die ermittelten dreidimensionalen Positionen der Kantenpunkte
in einer Datenstruktur abgespeichert, die Abfragen hinsichtlich
der räumlichen
Nachbarschaft von dreidimensionalen Punkten erlaubt, wobei die Datenstruktur
insbesondere als k-d-Baum ausgeführt
ist.
-
Gemäß einer
Weiterbildung wird in dem Fall, in dem nach der Ermittlung der dreidimensionalen Position
eines Kantenpunktes festgestellt wird, dass an dieser dreidimensionalen
Position bereits ein dreidimensionaler Punkt vorhanden ist, für diesen
dreidimensionalen Punkt ein Zähler
inkrementiert. In dieser Weise wird fortgefahren, bis beispielsweise
die gewünschte
Anzahl synthetischer Ansichten generiert und verarbeitet wurde.
Als Ergebnis wird eine dreidimensionale Punktwolke erhalten, wobei
jedem dreidimensionalen Punkt ein Wert zugeordnet ist, der angibt,
wie oft der dreidimensionale Punkt als zu einer visuellen Kante
gehörend
eingestuft wurde. Dieser Wert kann auch als Wahrscheinlichkeit interpretiert
werden, mit der der jeweilige dreidimensionale Punkt zu einer relevanten
visuellen Kante gehört.
-
Vorzugsweise
werden Kantenpunkte, die semantisch zu einer gleichen dreidimensionalen
Position im Raum gehören,
als ein dreidimensionaler Punkt abgespeichert, wobei jeder Kantenpunkt,
der auf diese dreidimensionale Position abgebildet wird, zum Inkrementieren
eines entsprechenden Zählers führt, womit
der Wert der zugeordneten Wahrscheinlichkeit somit erhöht wird.
-
Um
insbesondere die semantische Zugehörigkeit zur gleichen dreidimensionalen
Position zu erkennen, wird für
jeden Kantenpunkt nach der Ermittlung seiner dreidimensionalen Position
eine Abfrage gestartet, ob es in unmittelbarer Nähe bereits wenigstens einen
abgespeicherten dreidimensionalen Punkt gibt. Die unmittelbare Nähe kann
dabei mittels eines Schwellenwertes definiert werden. Wenn es in
unmittelbarer Nähe
wenigstens einen abgespeicherten dreidimensionalen Punkt gibt, wird
kein neuer dreidimensionaler Punkt abgespeichert, sondern der Zähler des
bereits abgespeicherten dreidimensionalen Punkts wird inkrementiert.
-
Liegt
eine so bestimmte Wahrscheinlichkeitsverteilung bezüglich der
visuellen Relevanz vor, kann unter Heranziehung eines Schwellenwertes
ein dreidimensionaler Punkt verworfen werfen, dessen zugeordneter
Wahrscheinlichkeitswert unter dem Schwellenwert liegt, wobei übriggebliebene
dreidimensionale Punkte visuell relevante Konturen des realen Objekts
repräsentieren.
Insbesondere wird die Menge an dreidimensionalen Punkten auf Bereiche reduziert,
die mit hoher Wahrscheinlichkeit für ein späteres Trackingverfahren im
Augmented Reality System relevante Konturen des realen Objekts repräsentieren.
Hierbei werden dreidimensionale Punkte, deren zugeordnete Wahrscheinlichkeit,
insbesondere deren zugeordneter Zähler, einen bestimmten Schwellenwert
unterschreitet, verworfen.
-
In
einer Weiterbildung der Erfindung wird anschließend die Menge an dreidimensionalen
Punkten in zusammengehörende
Kontursegmente aufgeteilt. Insbesondere wird wenigstens ein Teil
der dreidimensionalen Punkte in den Kontursegmenten durch eine geeignete
Konturrepräsentation
ersetzt, die unter Verwendung eines Optimierungsverfahrens beispielsweise
mit Linien, B-Splines,
Bezier-Splines oder NURBS approximiert wird. Beispielsweise kann ein
Kontursegment mit einer Sequenz von Liniensegmenten angenähert werden,
bis eine vorgegebene Genauigkeit erreicht ist. Zusätzlich oder
alternativ wird bei geschwungenen Kontursegmenten beispielsweise
ein Optimierungsverfahren mit B-Splines verwendet.
-
Nach
Bestimmung des dreidimensionalen Konturmodells gemäß dem erfindungsgemäßen Verfahren
kann ein Verfahren zur optischen Objektverfolgung unter Verwendung
eines solchen Konturmodells durchgeführt werden. Hierbei wird das
Konturmodell als Datenmodell einer virtuellen Information mit einem
Abbild eines realen Objekts auf einer Bildebene überlagert. Hierzu wird mit
einer Kamera ein zweidimensionales Bild aufgenommen, welches wenigstens
das reale Objekt beinhaltet. Weiterhin wird ein Optimierungsverfahren
durchgeführt,
welches das Datenmodell auf die Bildebene projiziert, um eine Projektion
des Datenmodells mit dem Abbild des realen Objekts auf der Bildebene
zu überlagern.
-
Während des
Trackingvorgangs wird insbesondere ein Vergleich der Projektion
des Datenmodells mit dem Abbild des realen Objekts durchgeführt, wobei
Parameter der Kamerapose aus dem Vergleichsergebnis bestimmt werden.
Die so gewonnene Information dient als Referenz, um die Position
zu berechnen, an der die virtuelle Information in einem von der
Kamera aufgenommenen Bild angezeigt oder eingeblendet werden soll.
Dabei wird das reale Objekt kontinuierlich nachverfolgt, wenn der
Anwender bzw. die Kamera die Position und/oder Orientierung ändert. Mit
der Bestimmung der Kameraparameter zur Ermittlung der Position und
Orientierung der Kamera relativ zum realen Objekt werden die umschreibenden
Parameterwerte des datentechnischen Modells festgelegt, so dass
das innere Computermodell mit der physikalischen Welt übereinstimmt.
-
Die
vorliegende Erfindung betrifft außerdem ein entsprechendes System
zur Bestimmung eines Datenmodells, das gemäß den Prinzipien der vorliegenden
Erfindung eingerichtet ist. Ein solches System umfasst insbesondere
eine Einrichtung zum Bereitstellen des dreidimensionalen CAD-Modells
und eine Einrichtung zur Generierung von unterschiedlichen synthetischen
zweidimensionalen Ansichten des CAD-Modells. Diese Einrichtung ist
ebenfalls dazu ausgebildet, jede generierte Ansicht einer Kantenextraktion
zur Bestimmung wenigstens einer extrahierten Kante in der jeweiligen
Ansicht zu unterziehen. Weiterhin ist eine Einrichtung zur Umwandlung der
aus den jeweiligen Ansichten extrahierten Kanten zu einem dreidimensionalen
Konturmodell vorgesehen. Derartige Einrichtungen können insbesondere in
Form eines Computersystems realisiert sein, das derart eingerichtet
ist, dass die erfindungsgemäßen Verfahrensschritte
in der angegebenen Weise ausgeführt
werden können.
-
Das
erfindungsgemäße Verfahren
ist beispielsweise auf einem Computerprogrammprodukt, insbesondere
einem geeigneten Speichermedium, implementiert, das in den internen
Speicher eines digitalen Computers geladen werden kann. Ein solches Computerprogrammprodukt
umfasst Softwarecodeabschnitte, mit denen die einzelnen Verfahrensschritte
gemäß der vorliegenden
Erfindung, wie oben beschrieben, ausgeführt werden, wenn das Produkt
auf dem Computer läuft.
-
Die
vorliegende Erfindung ist auf vielfältigen Anwendungsgebieten anwendbar,
welche ein Trackingsystem bzw. Trackingverfahren verwenden. Diesbezügliche Anwendungen
sind insbesondere die Augmented Reality Technologie in den Bereichen Service
und Wartung, Anwendungen in der Produktion sowie allgemeine Anwendungen
im mobilen Umfeld. Insbesondere ist die Erfindung auch auf dem Gebiet
der industriellen Fertigung verwendbar, bei dem Industriemaschinen
wie Industrieroboter in Bezug auf die aufgenommene reale Umgebung
automatisch gesteuert bzw. geregelt werden.
-
Weitere
vorteilhafte Aus- und Weiterbildungen der Erfindung sind in den
Unteransprüchenangegeben.
-
Die
Erfindung wird im Folgenden anhand der in der Zeichnung dargestellten
Figuren, die vorteilhafte Ausführungsformen
der Erfindung betreffen, näher
erläutert.
-
1 zeigt
eine Ansicht von visuellen Kanten, die zu einem aufgenommenen Objekt
gehören und
die mittels eines Kantenfilters extrahiert wurden,
-
2 zeigt
ein dreidimensionales CAD-Modell zur Nachbildung eines realen Objekts
in Form eines Motorraums eines Fahrzeugs,
-
3 zeigt
ein Flussdiagramm zu einer Ausführungsform
eines erfindungsgemäßen Verfahrens,
-
4 zeigt
eine schematische Visualisierung betreffend die Generierung von
unterschiedlichen synthetischen zweidimensionalen Ansichten des
CAD-Modells,
-
5 zeigt
beispielhafte, aus einer synthetischen Ansicht extrahierte zweidimensionale
Kanten,
-
6 zeigt
eine schematische Visualisierung eines Verfahrensschritts, wonach
für jeden zweidimensionalen
Kantenpixel eine zugehörige dreidimensionale
Position ermittelt wird,
-
7 zeigt
ein Beispiel einer möglichen
Aufteilung einer einfachen dreidimensionalen Punktwolke in einzelne
Kontursegmente,
-
8 zeigt
ein Beispiel einer möglichen
Approximierung eines dreidimensionalen Kontursegments mit Linien,
-
9 zeigt
ein Beispiel einer möglichen
Approximierung eines dreidimensionalen Kontursegments mit B-Splines,
-
10 bis 13 veranschaulichen
das Identifizieren von Kontursegmenten, die nahe beieinander liegenden
Kanten zugeordnet werden, mittels eines bzw mehrerer euklidischer
minimaler Spannbäume.
-
Gemäß der vorliegenden
Erfindung wird anhand eines dreidimensionalen CAD-Modells bestimmt,
welche Kanten eines zu verfolgenden realen Objekts in einem späteren optischen
konturbasierten Trackingverfahren relevant sind, um sie anschließend in
ein dreidimensionales Konturmodell umzuwandeln. Als relevant sind
dabei diejenigen Kanten anzusehen, die in einer möglichst
großen
Anzahl von Ansichten mittels eines Kantenfilters, wie beispielsweise
Sobel oder Canny, aus dem Bild extrahiert werden können. Hierbei
zeigt die 1 eine Ansicht von visuellen
Kanten, die zu einem von einer Kamera aufgenommenen realen Objekt
gehören
und die mittels eines solchen Kantenfilters extrahiert wurden. Insbesondere
wurden die Kanten mittels eines Canny-Kantenfilters extrahiert.
Die extrahierten Kanten sind dabei als weiße Linien dargestellt, welche
einen Übergang
zwischen hell-dunkel bzw. dunkel-hell beim realen Objekt kennzeichnen.
In der in 1 dargestellten Ansicht 20 sind
beispielhafte visuelle Kanten mit Bezugszeichen 21 bis 23 gekennzeichnet.
-
Für die Ermittlung
von relevanten visuellen Kanten zur Erstellung eines dreidimensionalen
Konturmodells werden erfindungsgemäß unterschiedliche Ansichten
des zu verfolgenden realen Objekts synthetisch simuliert. Dafür wird ein
dreidimensionales CAD-Modell verwendet, wie beispielsweise in 2 anhand
einer konkreten Ausführungsform
dargestellt. Hierbei zeigt 2 ein beispielhaftes
dreidimensionales CAD-Modell 10 zur Nachbildung eines Motorraums
eines Fahrzeugs. Mit der synthetischen Herstellung unterschiedlicher
Ansichten gemäß der Erfindung
entfällt
die Notwendigkeit, Videoaufnahmen des realen Objekts zu verwenden,
um ein dreidimensionales Konturmodell für das spätere optische Trackingverfahren
manuell zu erstellen. Für
die Generierung der synthetischen Ansichten muss das CAD-Modell
das reale Objekt so genau wie möglich nachbilden.
Die Verwendung von texturierten CAD-Modellen ist vorteilhaft, um daraus
eine hinreichende Menge von Konturen zu gewinnen, jedoch ist dies
bei komplexen Geometrien nicht zwingend erforder lich. Eine vergleichsweise
komplexe Geometrie ist beispielsweise mit dem CAD-Modell gemäß 2 vorgegeben.
-
In 3 ist
ein Flussdiagramm zu einer Ausführungsform
eines erfindungsgemäßen Verfahrens dargestellt.
Dieses wird dabei im Kontext mit den nachfolgenden 4 bis 9 näher erläutert.
-
4 zeigt
zunächst
eine schematische Visualisierung betreffend die Generierung von
unterschiedlichen synthetischen zweidimensionalen Ansichten des
CAD-Modells. Im Schritt 101 gemäß 3 wird zunächst eine
Kamerapose einer virtuellen Kamera, beispielsweise der Kamera 41 gemäß 4,
gewählt.
In der Pose 1 erzeugt die virtuelle Kamera 41 eine
2D-Ansicht 31 des CAD-Modells 10. In
der Pose 2 erzeugt die virtuelle Kamera 42 eine 2D-Ansicht 32 des
CAD-Modells 10. Entsprechend wird in den Posen 3 und 4 von
den virtuellen Kameras 43 und 44 eine jeweilige
2D-Ansicht 33 bzw. 34 des CAD-Modells 10 erstellt. Die Positionierung
der jeweiligen virtuellen Kamera kann entweder gleichmäßig in einem
vom Benutzer definierten Bereich oder entsprechend einer a priori-Wahrscheinlichkeitsverteilung
erfolgen. Die Berücksichtigung
einer solchen Wahrscheinlichkeitsverteilung wird im weiteren Verlauf
noch näher
erläutert.
-
Jede
so synthetisch generierte Ansicht 31 bis 34 wird
einer Kantenextraktion unerzogen. Hierzu kann beispielsweise der
bekannte Sobel- oder Canny-Kantenfilter
verwendet werden. Es ist empfehlenswert, denselben Kantenextraktor
zu benutzen, der unter Umständen
später
beim Tracking zum Einsatz kommen wird. Die 5 zeigt
die aus der synthetischen Ansicht des CAD-Modells der 2 mittels
eines Canny-Kantendetektors extrahierten Kanten. Man erkennt, dass
die extrahierten Kanten weiß auf
schwarzem Hintergrund erscheinen.
-
Für die Ermittlung
der visuell relevanten Kanten eines Objekts wird das gegebenenfalls
texturierte CAD-Modell mehrfach aus verschiedenen Ansichten "gerendert", wobei beispielsweise
eine Anzahl von mehr als 1.000 Ansichten generiert wird. Der Fachbegriff "Rendern" bezeichnet hierbei
den Prozeß zur
Erzeugung eines Abbilds eines virtuellen dreidimensionalen Datenmodells.
Die An zahl der verschiedenen Ansichten wird hierbei in dem Schritt 106 mittels
einer Abfrage festgelegt. D.h., die Schritte 101 bis 105 werden
für jede
neu zu generierende Ansicht jeweils nacheinander durchlaufen.
-
Die
im Schritt 102 entstandenen 2D-Ansichten sollten dem realen
Objekt so ähnlich
wie möglich sein.
Da die Lichtverhältnisse
und insbesondere die Lichtrichtung in der Szene einen wichtigen
Einfluß auf
die visuellen Kanten haben, ist es besonders vorteilhaft, unterschiedliche
Lichtsituationen zu simulieren. Mithin ist es vorteilhaft, photorealistisches "Rendering" einzusetzen.
-
Im
Schritt 103 werden die zweidimensionalen Kanten (2D-Kanten)
aus den fotorealistisch "gerenderten" Ansichten des CAD-Modells
mittels eines Verfahrens zur Kantenextraktion (z.B. ein Standardverfahren
nach Sobel oder Canny) extrahiert und in Form von Binärbildern
für die
Weiterverarbeitung zur Verfügung
gestellt. Dabei erscheinen die extrahierten Kanten weiß im Bild,
während
alle anderen Pixel schwarz sind. Dies ist beispielhaft in 5 anhand der
Ansicht 30 gezeigt, in der beispielhafte visuelle extrahierte
Kanten mit 38 und 39 bezeichnet sind. Hierbei
weist beispielsweise die Kante 38 eine Vielzahl von weiß erscheinenden
Kantenpixel 37 auf.
-
Nach
der erfolgten Kantenextraktion wird jeder Kantenpixel, der weiß im Bild
erscheint, als ein zweidimensionaler Punkt (2D-Punkt) aufgefasst
und seine dreidimensionale Position (3D-Position) im Koordinatensystem
des CAD-Modells
(in 6 mit 11 bezeichnet) ermittelt. Für die Ermittlung
der relevanten Objektkonturen muss für jeden 2D-Kantenpixel seine
3D-Position berechnet werden. Dazu zeigt 6 eine schematische
Visualisierung eines Verfahrensschritts, wonach für jeden
2D-Kantenpixel seine zugehörige
SD-Position ermittelt wird. Eine virtuelle Kamera ist hierbei mit 40 bezeichnet,
die aus dem CAD-Modell 10 eine zweidimensionale Ansicht 30,
wie in 5 dargestellt, generiert.
-
In
diesem Ausführungsbeispiel
wird desweiteren ein Farbcodierungsmodell 50 eingesetzt.
Dazu "rendert" man für jede fotorealistische
Ansicht des CAD-Modells 10 (beispielsweise
für die
Ansichten 31 bis 34 gemäß 4) eine
Falschfarbenansicht, wobei jedem "Face" des
CAD-Modells eine eindeutige Farbe zugeordnet wird. Die "Faces" sind beispielsweise
Dreiecke eines polygonalen Modells, das die Oberfläche eines
Objekts durch dreidimensionale Punkte im Raum und Verbindungen zwischen
diesen Punkten beschreibt. Für
jeden Kantenpixel schlägt man
an derselben 2D-Position im Falschfarbenbild den Farbwert nach und
benutzt ihn als Index für
den effizienten Zugriff auf das entsprechende "Face" (Dreieck)
des CAD-Modells. Dieses Dreieck spannt im 3D-Raum eine Ebene auf. Die gesuchte 3D-Position 70 eines
2D-Kantenpixels ist der Schnittpunkt der Ebene mit dem Strahl (beispielsweise
dem Strahl 61 oder 62), der das Kamerazentrum
der Kamera 40 mit dem betreffenden 2D-Kantenpixel verbindet.
Mit Farbcodierung der "Faces" des CAD-Modells
muss nicht die Kolision mit anderen "Faces" des CAD-Modells getestet werden, sondern
nur der Durchstoßpunkt
an der Stelle, an welcher die Farbe des abgebildeten CAD-Modells mit dem "Face"-Farbcode des CAD-Modells übereinstimmt.
-
Die
so ermittelten 3D-Positionen der Kantenpixel werden in einer Datenstruktur
abgespeichert, die effiziente Abfragen hinsichtlich der räumlichen Nachbarschaft
von 3D-Punkten erlaubt, beispielsweise mittels eines k-d-Baums.
Die anhand von 6 beschriebene Rückprojektion
der 2D-Kanten in den dreidimensionalen Raum wird gemäß 3 im Schritt 104 durchgeführt.
-
Eine
zweidimensionale Kante kann in mehreren Ansichten (beispielsweise
den Ansichten 31 bis 34 gemäß 4) sichtbar
sein, denn gerade dann ist sie eine relevante visuelle Kante. Dies
bedeutet, dass mehreren 2D-Kantenpixel, die aus unterschiedlichen Ansichten
stammen, dieselbe 3D-Position zugewiesen werden kann. Kantenpixel,
die semantisch zu derselben 3D-Position im Raum gehören, werden
als ein 3D-Punkt abgespeichert, wobei jeder Kantenpixel, der auf
diese 3D-Position abgebildet wird, zum Inkrementieren eines entsprechenden
Zählers
führt (Schritt 105 gemäß 3).
Mit anderen Worten, wird nach der Ermittlung der 3D-Position eines
Kantenpixels festgestellt, dass an dieser 3D-Position bereits ein
3D-Punkt vorhanden ist, inkrementiert man für diesen 3D-Punkt einen Zähler.
-
Aufgrund
numerischer Ungenauigkeiten werden die 3D-Positionen vermutlich
nicht exakt gleich sein, sondern geringfügig voneinander abweichen. Um
die semantische Zugehörigkeit
zum gleichen 3D-Punkt zu erkennen, muss für jeden 2D-Kantenpixel nach
der Ermittlung seiner 3D-Position eine Abfrage gestartet werden,
ob es in unmittelbarer Nähe bereits
abgespeicherte 3D-Punkte gibt. Ist dies der Fall, so wird kein neuer
3D-Punkt abgespeichert, sondern der Zähler des bereits bestehenden 3D-Punktes
inkrementiert. "Unmittelbare
Nähe" wird dabei mittels
eines Schwellenwerts definiert. Eine Datenstruktur, die eine effiziente
Umsetzung solcher Abfragen erlaubt, ist der bereits erwähnte k-d-Baum.
-
In
dieser Weise fährt
man nun mit den Schritten 101 bis 104 fort, bis
die gewünschte
Anzahl synthetischer Ansichten generiert und verarbeitet wurde. Das
Ergebnis dieser Prozedur ist eine 3D-Punktewolke, wobei jedem 3D-Punkt
ein Wert zugeordnet ist, der angibt, wie oft der 3D-Punkt als zu
einer visuellen Kante gehörend
eingestuft wurde. Dieser Wert kann auch als Wahrscheinlichkeit interpretiert
werden, mit der der jeweilige 3D-Punkt zu einer relevanten visuellen
Kante gehört.
Somit entsteht auf der Oberfläche des
CAD-Modells eine Wahrscheinlichkeitsverteilung bezüglich der
visuellen Relevanz. Mit einem Schwellenwert können dann alle 3D-Punkte verworfen
werden, deren Wahrscheinlichkeit, zu einer relevanten visuellen
Kante zu gehören,
zu niedrig ist. Die übrig gebliebenen
3D-Punkte repräsentieren
somit die visuell relevanten Konturen des zu verfolgenden realen
Objekts.
-
Insbesondere
wird, nachdem alle synthetischen Ansichten erstellt und für alle 2D-Kantenpixel entsprechende
3D-Positionen ermittelt wurden, die so entstandene 3D-Punktewolke
auf Bereiche reduziert, die mit hoher Wahrscheinlichkeit die für das Tracking
relevanten Konturen repräsentieren.
Diese Aufgabe kann mittels eines einfachen Schwellenwertverfahrens
gelöst
werden, so dass alle 3D-Punkte, deren Zähler (Wahrscheinlichkeiten)
einen gewissen Schwellenwert unterschreitet, verworfen werden (Schritt 107 der 3).
-
Nachdem
eine 3D-Punktewolke erzeugt wurde, die die relevanten 3D-Konturen
durch Punkte repräsentiert,
wird diese Punktewolke in einzelne Kontursegmente aufgeteilt. In 7 ist
ein Beispiel einer möglichen
Aufteilung einer einfachen 3D-Punktewolke mit den 3D-Punkten 70 in
einzelne Kontursegmente 71 bis 75 gezeigt. Solche
Kontursegmente können anschließend unter
Verwendung eines Optimierungsverfahrens (z.B. Levenberg-Marquardt)
mit Linien, B-Splines oder NURBS approximiert werden, um so eine
kompakte Dar stellung der Konturen zu ermöglichen. Mit anderen Worten,
ist die 3D-Punktewolke in einzelne Kontursegmente aufgeteilt, werden diese
durch eine geeignete Konturrepräsentation
ersetzt. Anhand von 8 und 9 sind zwei
mögliche
Konturrepräsentationen
beschrieben, wobei 8 ein Beispiel einer möglichen
Approximierung eines 3D-Kontursegments mit Linien und 9 ein Beispiel
einer möglichen
Approximierung eines 3D-Kontursegments mit B-Splines zeigt. In diesem Zusammenhang
sind auch andere Repräsentationen vorstellbar,
wie beispielsweise Bezier-Splines oder NURBS etc.
-
Wie
anhand von 8 dargestellt, kann ein Kontursegment
aus mehreren 3D-Punkten 70 mit
einer Sequenz von Liniensegmenten 81 bis 85 angenähert werden,
bis die gewünschte
Genauigkeit erreicht ist. Ein so bestimmtes Kontursegment kann einen
Teil des Konturmodells repräsentieren.
Wie anhand von 9 ersichtlich, erlauben B-Splines
eine kompakte Annäherung
einer großen
Datenmenge. Deswegen sind sie sehr gut geeignet, ein Kontursegment
zu beschreiben. Konkret ermöglichen
B-Splines, wie anhand von 9 mit Bezugszeichen 91 verdeutlicht, besonders
bei geschwungenen Kontursegmenten eine präzise Annäherung der Punktewolke bei
einer kompakten Repräsentation
durch eine Menge von Kontrollpunkten 92. Das Identifizieren
von Kontursegmenten und Approximieren von Kontursegmenten durch
Linien, B-Splines, etc. wird gemäß 3 in den
Schritten 108 und 109 durchgeführt. Ein so bestimmtes Kontursegment,
wie etwa der B-Spline 91, kann einen Teil des Konturmodells
repräsentieren.
-
Im
folgenden wird eine vorteilhafte Ausführungsform für das Identifizieren
von Kontursegmenten beschrieben, die gemäß 3 in dem
Schritt 108 implemetiert werden kann.
-
Wie
beschrieben, entsteht durch das Filtern der Punktewolke eine gefilterte
Punktewolke (FPW), die nur noch die 3D-Kantenpunkte enthält, die über dem
gewählten
relativen Schwellenwert liegen (relativer Schwellenwert; ist abhängig von
der maximalen Trefferquote). Diese FPW besteht aus verschiedenen Bereichen
(Teilpunktewolken):
- – Bereiche, in denen die Punkte
eine große
Verteilung aufweisen, die keine Zuordnung zu einer Kante erlauben;
- – Bereiche,
in denen die Punkte mehreren Kanten zuzuordnen sind, die sehr nah
beieinander liegen;
- – Bereiche,
in denen die Punkte einer Kante gut zuzuordnen sind (Idealsituation).
-
Weitere
Eigenschaften dieser Ausgangssituation sind:
- – Die Punkte,
die eine Kante bilden können,
liegen nicht sortiert in einer Linie nacheinander, sondern liegen
verteilt um die ideale Kante, weisen also gegenüber der idealen Kante ein Rauschen
auf.
- – Das
Rauschen der Kanten kann unterschiedlich stark sein, d.h. der orthogonale
Abstand der Punkte zu ihrer idealen Kante kann variieren. Würde zur
Erstellung der Kante eine Mittelung der Punkte durchgeführt werden,
müsste
ein Radius gewählt
werden, der groß genug
ist, um alle für die
Kante relevanten Punkte zu enthalten und der gleichzeitig so klein
wie möglich
ist, damit keine Punkte von einer nahe liegenden zweiten Kante mit
einbezogen werden. Diese Radius müsste sich anpassen.
-
Hierbei
stellt sich die Aufgabe, dass Punkte der gesamten bestehenden Punktewolke
zu ermitteln sind, die jeweils zu einer Kante beitragen und in einem
nächsten
Schritt zu einer Kante approximiert werden können.
-
Aus
dieser Ausgangssituation ergeben sich insbesondere zwei Probleme,
die oben bereits erwähnt
wurden:
- – Nahe
beieinander liegende Kanten, so dass die Punkte der Punktewolke
an entsprechenden Bereichen sehr nahe beieinander liegen und den
unterschiedlichen Kanten zugeordnet werden müssen. Dies veranschaulicht 10,
die eine gefilterte Punktewolke 200 von beispielhaften
nahe beieinander liegenden Kanten darstellt.
- – Varianz
der Stärke
des Rauschens, d.h. der orthogonale Abstand von Punkten zu ihrer
idealen Kante kann variieren.
-
Als
Lösungsansatz
wird bevorzugt ein Algorithmus verwendet, der den sogenannten euklidischen
minimalen Spannbaum (EMST) verwendet.
-
Um
den EMST der Punktewolke zu bestimmen, wird zunächst ein Graph G aufgebaut,
der alle Punkte miteinander verbindet, die jeweils eine Distanz
zueinander haben, die kleiner oder gleich dem maximal akzeptierten
Rauschen r_max einer Kante ist. Der EMST des Graphen G ist ein Baum
(besitzt also keine Zyklen), der alle Punkte des Graphen so miteinander
verbindet, dass die Summe ihrer Kantenlänge minimal ist.
-
Ein
bevorzugt verwendeter Algorithmus zur Bestimmung des EMST ist der
Algorithmus von Kruskal. Der Kruskalsche Algorithmus besitzt die
Eigenschaft, bei einem nicht vollständig verbundenen Graphen G
einen minimalen Spannwald zu generieren. Diese Eigenschaft ist wichtig,
da der Graph, der aus der FPW mit r_max generiert wird, mit großer Wahrscheinlichkeit
nicht vollständig
verbunden ist. Eine Alternative zum Kruskalschen Algorithmus ist
der Algorithmus nach Prim, der bei einem nicht vollständig verbundenen
Graphen G einen Spannbaum einer der verbundenen Graphen generiert.
-
Der
Kruskalsche Algorithmus geht insbesondere mit folgenden Schritten
vor:
- – Generierung
eines Waldes F (Menge von Bäumen),
in dem jeder Punkt zunächst
einen separaten Baum bildet;
- – Generierung
der Menge S. die alle Kanten des Graphen G enthält;
- – Solange
S nicht leer ist:
• Entferne
die Kante von S, die das geringste Gewicht besitzt (also beispielsweise
die kürzeste Kante);
• Wenn diese
Kante zwei Bäume
miteinander verbindet, füge
die beiden Bäume
und die Kante zu einem Baum zusammen;
• Ansonsten verwerfe die Kante.
-
Der
so zusammengefügte
Baum ist der gesuchte EMST, wie beispielsweise der EMST 201 gemäß 11,
der mehrere der zuvor bestimmten Punkte der gefilterten Punktewolke
von nahe beieinander liegenden Kanten entsprechend verbindet. Der EMST 201 repräsentiert
hier einen EMST von zwei nahe beieinander liegenden Kanten 211 und 212,
die in diesem Beispiel mit Kanten 213 und 214 verbunden
sind. Durch den EMST ist die Zusammengehörigkeit der Punkte festgelegt.
-
An
wenigstens einer Stelle werden sich nah beieinander liegende Kanten,
bzw. EMSTs verbinden, wie mit Stelle bzw. Verbindung 220 in 12 beispielhaft
gezeigt, welche die Kanten 211 und 212 verbindet.
Diese Verbindungen gilt es zu ermitteln und zu löschen. Sie stellen eine falsche
Verbindung dar. Damit erhält
man mehrere separate EMSTs für eine
jeweilige Kante, die entsprechend getrennt sind. Dies ist anhand
von 13 dargestellt mit den separaten EMSTs 202 und 203 für die Kanten 211 bzw. 212.
-
Anschließend können die
separaten EMSTs gemittelt werden, beispielsweise durch eine Schwerpunkts-Bestimmung
innerhalb von jeweiligen Teilbäumen.
Die so gefundenen Punkte, wie beispielsweise die Schwerpunkte 205 nach 13,
können zu
Kontursegmenten approximiert werden, wie oben beschrieben (Schritt 109 nach 3).
-
Wie
oben bezüglich 4 bereits
erwähnt, kann
die Positionierung der virtuellen Kamera entweder gleichmäßig oder
entsprechend einer a priori Wahrscheinlichkeitsverteilung erfolgen.
Eine solche Wahrscheinlichkeitsverteilung kann beispielsweise berücksichtigen,
welche Ansichten des dargestellten Motorraums aus Sicht eines Mechanikers,
der Arbeiten in dem Motorraum durchführt, am wahrscheinlichsten
sind. Auf diese Weise kann eine Wahrscheinlichkeitsverteilung im
Bezug auf die Realität
generiert werden. Eine solche Wahrscheinlichkeitsverteilung nimmt
beispielsweise Einfluss auf die Kantengewichtung, so dass etwa visuelle
Kanten aus wahrscheinlicheren Positionen höher gewichtet werden als visuelle
Kanten, die in einer Ansicht sichtbar sind, die in Bezug auf die
Realität
eine geringere Auftrittswahrscheinlichkeit aufweist.
-
Die
Vorteile der vorliegenden Erfindung liegen vor allem darin, dass
eine vollautomatische Erstellung von Konturmodellen ermöglicht wird,
was den Weg für
den industriellen Einsatz von konturbasierten Objektverfolgungsverfahren
ebnet. Die Erfindung schließt
dabei die Lücke
zwischen umfangreichen Datenbanken von CAD-Modellen, die oftmals
in der Großindustrie
vorhanden sind, und den konturbasierten Algorithmen zur markerlosen
Objektverfolgung.