Highlight-Korrekturverfahren bei 3D Scans

Lösungsansatz

Die grundsätzliche Idee besteht darin ein virtuelles Lichtmodell zu erzeugen, damit Reflexe zu identifizieren und auszubessern. Das Lichtmodell liefert ein virtuelles Highlight welches den während des Scannens vorhandenen echten Reflex nachbildet. Die Informationen dieses virtuellen Reflexes werden genutzt um den echten auszubessern.
Für das Lichtmodell werden 3 Komponenten benötigt:

Die Geomertie ist gegeben durch das 3D Modell. Der 3D Scanner erzeugt eine Datei im PLY Format, welche die Oberflächengeometrie sowie die Farbwerte des Objekts beinahltet.

Jedes gescannte Objekt kann unterschiedliche Materialeigenschaften aufweisen, daher müssen diese für jedes Objekt angepasst werden. Die benötigten Eigenschaften eines Materials sind Farbwerte für die diffuse Beleuchtung sowie die Reflexionseigenschaft. Durch den Scanner aufgenommene Farbwerte resultieren aus den Materialeigenschaften und der Beleuchtung, sie sind also möglicherweise durch Lichtreflexe gestört. Dies muss bei der Bestimmung der diffusen Farbe berücksichtig werden. Reflexionseigenschaften werden durch den Scanner nicht gemessen und müssen geschätzt werden.

Zum Zeitpunkt des Scans vorhandene Lichtquellen sind im zu einem späteren Zeitpunkt nicht mehr bekannt, es ist also notwendig diese zu rekonstruieren. Farbe und Intensität des Lichts wird manuell festgelegt, diese Parameter lassen sich möglicherweise auch im Nachhinein feststellen sofern das Scannen selbst durchgeführt wurde. Die virtuellen Lichtquellen sollen so angeordnet sein, dass sie möglichst passend die Reflexe auf dem Objekt abdecken. Wenn die Positionen der Reflexe auf dem Objekt markiert werden, können mit Hilfe der Oberflächennormalen entsprechende Lichtpositionen berechnet werden.

Virtuelle Highlights

Der spekulare Anteil des virtuellen Lichtmodells berechnet ob und wie stark ein Pixel Teil eines Highlights (des virtuellen Lichts) ist. Das virtuelle Licht wird so plaziert, dass dessen Highlight den unerwünschten Reflex auf dem Objekt vollständig überdeckt. Damit erhält man ein Filter für die Auswahl von Vertices die bei der Farbkorrektur betrachtet weden müssen. Zudem ist der Spekularwert ein ein Hinweis dafür wie hell/stark der tatsächliche Reflex ist.

Bestimmen der Lichtposition

Die zum Zeitpunkt des Scannens vorhandenen Lichtquellen und vor allem deren Positionen sind normalerweise nicht bekannt. Daher muss für das virtuelle Licht die Position so bestimmt werden, dass dessen Highlight möglichst genau auf den zu entfernenden Reflex fällt. Das lässt sich mit einer Art Inversem Problem des Lichtmodells berechnen. Beim klassischen Beleuchungsmodell sind Lichtposition, Normale und Betrachterposition bekannt, berechnet wird die Position des Highlights. In unserem Fall sind Betrachterposition, Normale und die Position des Highlights bekannt, berechnet wird die Lichtposition. Bei dem hier verwendeten einfachen lokalen Lichtmodell (Blinn-Phong) besteht diese Rechung aus einer geometrischen Reflexion an der Oberfläche des Objekts.


V: Betrachterposition, N: Oberflächennormale, L: Lichtposition
Die Lichtposition kann mittels einer geometrischen Reflexion berechnet werden.

Farb-Clustering

Mittels des virtuellen Highlights lässt sich das Gebiet für die Korrektur sehr gut einschränken, jedoch sind virtuelles und echtes Highlight selten deckungsgleich. Ein Grund dafür ist, dass das Lichtmodell die Wirklichkeit nicht vollständig abbildet und viele Parameter vom Nutzer geschätzt werden müssen. Der Scanner nimmt das Objekt von versiedenen Perspektiven auf und kombiniert die einzelenen Aufnahmen zu einem Gesamtbild. Ein Lichtreflex tritt von einer Perspektive aus gesehen auf von einer anderen aber möglicherweise nicht, im Ergebnis des Scanners ist dieser Bereich also möglicherweise korrekt (ohne Reflex) dargestellt. Mit dem Farbclustering lässt sich zwischen Bereichen die korrigiert bzw. nicht korrigiert werden sollen unterscheiden. Alle auftretenden Farbwerde werden in eine bestimmte Anzahl von Clustern eingeteilt, die Pixel eines Clusters haben dann ein ähnlichen Farbwert. So kann man bestimmte Cluster von der Korrektur ausnehmen.


Zu sehen das gleiche Objekt einmal in originalfarben (links) und in falschfarben welche acht Cluster darstellen (rechts). Anhand der Cluster kann man das Highlight (rot, grün, blau) von anderen Bereichen (z.B. gelb) trennen.

Farbkorrektur

Sind die zu korrigierenden Pixel mittels des virtuellen Highlights und Clusterings bestimmt, muss noch ein neuer Farbwert berechnet werden. Das kann z.B. einfach durch das setzten einer Farbe geschehen, die zuvor vom Nutzer festgelegt wurde und der Farbe der Bemalung möglichst ähnlich ist. Besser ist es jedoch den vom Lichtmodell berechneten Farbwert ohne ein Highlight (den diffusen Anteil) zu verwenden. Zusätzlich kann noch der berechnete Wert mit der vorhandenen Farbe gemischt werden um kleine Farbschwankungen beizubehalten und eine Struktur zu imitieren.

Vergößerte Reflexion (links) und deren Korrektur (rechts).