
DAVID-Shapefusion ermöglicht die Ausrichtung und das Zusammenfügen von 3D-Scans, die aus unterschiedlichen Sichtrichtungen aufgenommen wurden. Es ist mehr als nur ein gewöhnliches Stitching-Tool, denn es kombiniert
eine einfach zu benutzende benutzergeführte Entfernung von Ausreißern,
eine automatische und halbautomatische Oberflächenregistrierung,
und eine rausch-reduzierende Oberflächen- und Textur-Verschmelzung, die sehr robust gegenüber Ausreißern ist.
Das Ergebnis ist ein geglättetes, texturiertes 360-Grad-Dreiecksnetz Ihres 3D-Modells.
Die folgenden Schritte werden Sie durch den Shapefusion-Dialog von DAVID führen:
Als erstes müssen Sie ein oder mehrere Scans Ihres Modells zur Scan-Liste hinzufügen, indem Sie auf “Hinzufügen…” klicken:
Alternativ können Sie Ihre Scans direkt aus dem Scan-Dialog mit dem Knopf “Weiterreichen” in diese Liste einfügen.
Nachdem Sie alle Scans in die Liste eingefügt haben, können Sie sie mit dem Knopf “Anordnen” nebeneinander anordnen:
Mit den Häckchen vor den Einträgen in der Scan-Liste können Sie die einzelnen Scans (un)sichtbar schalten.
Wenn Sie möchten, können Sie Ihre Scans mit dem
manuellen Säuberungswerkzeug von Ausreißern o.ä. bereinigen. An dieser Stelle sollten Sie aber nur Oberflächen löschen, die nicht für die folgende Registrierung hilfreich sein können!
Der nächste Schritt ist das Aneinander-Ausrichten (“Registrieren”) Ihrer Scans. Drücken Sie den Knopf “Align”, um den Dialog “Oberflächenregistrierung” von DAVID-Shapefusion aufzurufen:

Hier können Sie zwischen sechs verschiedenen Registrierungsmodi für die paarweise Oberflächenausrichtung wählen: “Freie Drehung”, “Rotation nur um die x-Achse”, “Rotation nur um die y-Achse”, “Rotation nur um die z-Achse”, “Manuelle Ausrichtung” und “Nur Feinregistrierung”. Mit dem ersten Modus “Freie Drehung” führt der Computer eine grobe Registrierung zwischen zwei Scans durch, ohne irgendwelche Beschränkungen bzgl. Rotation oder Translation. Die Software sucht dabei nach derjenigen relativen Transformation zwischen zwei Scans, die eine maximale Kontaktfläche aufweist. Dies funktioniert in den meisten, aber nicht in allen Fällen. Die nächsten drei Registrierungsmodi sind dem ersten sehr ähnlich, außer dass die relative Transformation zwischen den Scans beschränkt ist. Der Modus “Rotation nur um die y-Achse” z.B. nimmt an, dass Ihr Objekt zwischen den beiden Scans nur um eine Achse parallel zur y-Achse des Referenz-Koordinatensystems gedreht wurde und nicht entlang der Y-Achse transliert wurde (die y-Achse ist die senkrechte Achse, wenn Sie DAVID zum Scannen benutzt haben). Aber das Rotationszentrum bleibt beliebig, d.h. dass Sie keinen Drehteller benutzen müssen, sondern das Objekt zwischen den Scans einfach per Hand drehen können. Nachdem Sie den Registrierungsmodus gewählt haben, wird Sie der Registrierungsdialog durch den Ausrichtungsprozess führen.
Im Fall unserer Beethoven-Büste haben wir die Büste um die y-Achse gedreht, und wählen daher den Modus “Rotation nur um die y-Achse” aus.
Nun erwartet Schritt 1, dass Sie auf den Scan klicken, den Sie ausrichten möchten. Nachdem Sie auf den entsprechenden Scan im 3D-Fenster geklickt haben, wird dieser von einer roten Box umschlossen:
Klicken Sie nun auf einen zweiten Scan, an den Sie den ersten ausrichten möchten…

Eine grobe Registrierung läuft nun ab. Nach wenigen Sekunden sind die beiden Scans ausgerichtet:
Wiederholen Sie einfach diese Prozedur für die anderen Scans. Anschließend sollte Ihr 3D-Modell ungefähr so aussehen:


Bedenken Sie, dass die Oberflächenausrichtung sehr präzise sein muss, um im anschließenden Verschmelzungsprozess ein gutes Ergebnis zu erreichen. Eine präzise Ausrichtung erkennt man daran, dass es an vielen Stellen Oberflächendurchdringungen gibt, d.h. die Farbe der überlappenden Oberflächen im 3D-Fenster sollte flackern, wenn Sie das Objekt drehen.
Falls die Registrierung keine gute Ausrichtung gefunden hat, starten Sie sie einfach erneut. Da die Methode zufallsbasiert arbeitet, steht die Chance gut, dass es beim zweiten oder dritten Versuch besser funktioniert. Falls dies nicht hilft, können Sie den Modus “Manuelle Ausrichtung” benutzen oder Sie können die Scans manuell im 3D-Fenster ausrichten (STRG drücken und halten, während Sie einen Scan mit der linken/rechten Maustaste verschieben/drehen) und den Modus “Nur Feinregistration” benutzen. Der Modus “Manuelle Ausrichtung” erlaubt es, zusammengehörige Punktepaare anzugeben, die nach der Ausrichtung in Kontakt sein sollen:

In einigen Fällen kann es schwierig sein, zusammengehörige Punktpaare zu selektieren. In diesen Fällen hilft es, die Textur des Objektes zu Rate zu ziehen (siehe letzten Abschnitt unter
3D-Laser-Scannen für eine Anleitung, wie man die Textur aufnehmen kann). DAVID-Shapefusion lädt die Textur und zeigt sie an, sobald Sie einen Scan mit einer Textur hinzufügen. Falls die Textur keine eindeutig identifizierbaren Oberflächenpunkte enthält, können Sie auch eigene Marker auf das Objekt kleben, bevor Sie die Textur aufnehmen.
Nach einigen Registrierungsschritten kann es eine gute Idee sein, zwei oder mehr bereits ausgereichtete Scans zu kombinieren. Hierzu selektieren Sie einfach zwei oder mehrere Scans in der Scan-Liste (drücken und halten Sie die STRG-Taste wärend Sie auf die Namen der Scans klicken) und clicken Sie dann auf “Kombinieren”. Auf diese Wiese können Sie Scans gruppieren und so benutzen, als ob es nur ein einzelner Scan wäre. Im Fall unserer Beethoven-Büste können wir beispielsweise die ersten drei bereits ausgerichteten Scans kombinieren, bevor wir den letzten Scan daran ausrichten (registrieren). Auf diese Weise kann der vierte Scan simultan mit allen anderen Scans registriert werden, was ein besseres Ergebnis liefert, als eine Registieren mit dem ersten oder dritten alleine.
Um eine solche Gruppierung rückgängig zu machen, klicken Sie mit der rechten Maustaste auf den entsprechenden Eintrag in der Scan-Liste und wählen Sie “Kombinieren rückgängig machen”.
-
Nachdem Sie Ihre Scans präzise aneinander ausgerichtet haben, können sie fusioniert werden. Drücken Sie einfach den Knopf “Verschmelzen”, und nach einiger Rechenzeit können Sie das Ergebnis ansehen.

DAVID wird unsichtbar geschaltete Scans nicht in die Fusionierung einbeziehen.
Das Ergebnis hängt stark von den Parametern “Auflösung”, “Glattheit” und “Beiseitigung” ab. Daher empfehlen wir, verschiedene Einstellungen auszuprobieren. Beginnen Sie mit einer geringen Auflösung (z.B. 100), denn bei geringer Auflösung ist der Fusionsprozess wesentlich robuster gegenüber ungenauen Ausrichtungen, Rauschen und Ausreißern. Eine höhere Auflösung bedeutet auch eine längere Rechenzeit und viel mehr Dreiecke in der Ausgabe. Falls Ihr Fusionsergebnis bei höherer Auflösung löchrig/undicht wird, müssen Sie den Parameter “Glattheit” erhöhen. Auch hier sollten Sie mit einer kleinen “Glattheit” beginnen und den Wert Schritt für Schritt erhöhen, bis das Ergebnis zufriedenstellend ist.
Seit DAVID-Shapefusion Version 1.5 haben wir eine alternative “Poisson” Fusionsmethode integriert, welche einige Vorteile gegenüber der “Einfach”-Methode bietet:
das Einstellen von 'Smoothness' und 'Removal' ist unnötig,
ALLE Löcher werden geschlossen, das Fusion-Ergebnis ist wasserdicht,
eine bessere Approximation von scharfen Kanten,
und eine höhere Robustheit gegenüber Rauschen und ungenau ausgerichteten Scans.
Nachteile sind die höhere Laufzeit und die leicht stärkere Glättung/Verunschärfung von kleinen Details (bei einer vergleichbaren Anzahl von Dreiecken).
Falls sie die Fusionsmethode “Einfach” gewählt haben, können Sie zum Schluss mehrfach auf den Knopf “Schrumpfen” klicken, um unsaubere Ränder zu reduzieren.
Falls Ihre Scans Texturen besitzen, werden diese ebenfalls fusioniert. Stellen, für die keine Textur aufgenommen wurde (z.B. die von der Poisson-Methode geschlossenen Löcher), erhalten eine rosa Färbung.
-
Der Knopf “Speichern…” öffnet ein neues Dialogfenster, in dem Sie zwischen den Dateiformaten *.OBJ, *.PLY und *.STL wählen können. Sie können außerdem wählen, ob Sie das Fusionsergebnis oder Ihre ausgerichteten und gefilterten 3D-Scans speichern wollen. Allerdings steht die Speicherfunktion in der Freien Version von DAVID nicht zur Verfügung.
Für Experten:
Anstatt die grafische Benutzerschnittstelle zu verwenden, ist es auch möglich ein Skript zu schreiben um den Fusions-Prozess zu automatisieren.
Aufruf DAVID-Laserscanner.exe <filename>
wobei <filename> eine Kommandodatei (Plain-Text-Script mit eine Sequenz von Kommandos) ist. Schreibe “regid” anstatt <filename>
um die 'Registration ID' zu erhalten.
Debug-Text wird in die Datei 'out.log' geschrieben und Fehlermeldungen werden werden in die Datei 'err.log' geschrieben.
Add <filename>
Lädt einen Scan (OBJ file). Dem ersten Scan wird der Index 0 zugeordnet, dem zweiten der Index 1 …
Align <idA> <idB> <useTexture> [<x> <y> <z> [<angle>] ]
Automatisches Ausrichten (Registrierung) zweier Scans.
idA: Index von Scan A (wird zu Scan B ausgerichtet)
idB: index von Scan B
useTexture: Prozentsatz für Texturfilter (0-99)
x y z: optionale Rotationsachse
angle: optionaler bekannter Drehwinkel
FineAlign <idA> <idB> <useTexture>
Automatisches Feinausrichtung (Feinregistrierung) zweier Scans.
idA: Index von Scan A (wird zu Scan B ausgerichtet)
idB: Index von Scan B
useTexture: Prozentsatz für Texturfilter (0-99)
GlobalFineAlign <useTexture> <numLoops> <highPrecisionMode>
Globale Feinregistrierung (ab DAVID Version 2.1)
useTexture: Prozentsatz für Texturfilter (0-99)
numLoops: Anzahl Durchläufe
highPrecisionMode: 0 (aus) oder 1 (an)
FuseSimple <resolution> <smoothness> <removal>
Simple Fusion aller Scans.
FusePoisson <resolution>
Poisson Fusion aller Scans.
SaveMesh <filename> <id> <scale>
Speichert ein Dreiecksnetz (mesh) (OBJ, PLY oder STL file).
id: Welcher Scan gespeichert werden soll (0,1,2,… = Einzelscan, -1 = Ergebnis der Fusion, -2 = Alle Scans in einer Datei)
scale: Skalierungsfaktor (1.0 bedeutet keine Skalierung)
Add scan0.obj
Add scan1.obj
Add scan2.obj
Add scan3.obj
Align 1 0 0 0 1 0 90
Align 2 1 0 0 1 0 90
Align 3 0 0 0 1 0 -90
FusePoisson 300
SaveMesh result.stl -1
AdvancedSettings_SetParam <path> <value>
Eine Erweiterte Einstellung ändern.
path: Absoluter Pfad und Name des Wertes, z.B. ShapeFusion\GlobalFineRegistration\CompensateDrift
value: Der neue Wert (String, Double, Int, oder Bool: 1 für True, 0 für False)
Combine <idA> <idB>
Zwei Scans kombinieren. Scan <idB> wird zu Scan <idA> hinzugefügt.
Hinweis: Die Indizes aller Scans hinter idB werden dadurch um 1 reduziert!
DelaunayOptimize <id>
Die Delaunay-Optimierung auf Scan <id> anwenden.
Duplicate <id>
Einen Scan duplizieren. Die Kopie wird an das Ende der Liste gesetzt.
InvertNormals <id>
Invertiert die Oberflächennormalen von Scan <id>.
MakeInvisible <id>
Schaltet Scan <id> “unsichtbar”, d.h. er wird in Fusionierung und GlobalFineAlign ignoriert werden.
MakeVisible <id>
Schaltet Scan <id> wieder “sichtbar”, d.h. er wird in Fusionierung und GlobalFineAlign wieder berücksichtigt.
ReduceMesh <id> <factor>
Reduziert die Dreiecksnetz-Dichte von Scan <id> um den gegebenen <factor>. Z.B. <factor>=0.05 bewirkt eine Reduktion auf 5 Prozent.
ReflectOnMirrorPlanes <id>
Spiegelt die Teile des Scans <id>, die jenseits der (in den Erweiterten Einstellungen definierten) Spiegelebenen liegen. Die Reflektionen werden als neue Scans ans Ende der Liste gehängt.
RemoveTexture <id>
Entfernt die Textur von Scan <id>.
ResetPose <id>
Setzt die Position und Rotation von Scan <id> zurück zur ursprünglichen Lage.
Shrink [<id>]
Schrumpft die Ränder von Scan <id>. Default-Wert für <id> ist -1, wodurch das Fusionsergebnis geschrumpft wird.
Uncombine <id>
Trennt vorher kombinierte Scans wieder. Die einzelnen Scans werden an das Ende der Scanliste gehängt.
Back to top
Please be advised that nothing found here has necessarily been reviewed by people
with the expertise required to provide you with complete, accurate or reliable information.
DAVID-Laserscanner Wiki cannot guarantee the validity of the information found here. The content
of any given article may recently have been changed, vandalized or altered by someone
whose opinion does not correspond with the state of knowledge in the relevant fields.