led:media_correction
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
led:media_correction [2023/02/17 20:01] – bh067 | led:media_correction [2023/02/17 20:41] (aktuell) – [Wie geht man dabei vor?] sb279 | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
- | ====== | + | ====== |
Das hat mit der menschlichen Wahrnehmung, | Das hat mit der menschlichen Wahrnehmung, | ||
- | Allgemein wird zwischen Scene-refered-Farbräumen und Display-Referred-Farbräumen unterschieden. | + | Allgemein wird zwischen Scene-refered-Farbräumen und Display-referred-Farbräumen unterschieden. |
Scene-referred Farbräume sind linear und stellen eine 1:1 Relation zum Licht der Szene dar. Display-referred Farbräume sind auf Monitore angepasst. Zu diesen gehören die Standards ITU-R BT.709 (Rec 709) oder auch sRGB. | Scene-referred Farbräume sind linear und stellen eine 1:1 Relation zum Licht der Szene dar. Display-referred Farbräume sind auf Monitore angepasst. Zu diesen gehören die Standards ITU-R BT.709 (Rec 709) oder auch sRGB. | ||
Zeile 30: | Zeile 30: | ||
Ziel ist es, dass eine 3D-Asset genauso wirkt wie dasselbe Element in der Realität. Man könnte überlegen besondere OETF in den Kameras oder andere Colorscience/ | Ziel ist es, dass eine 3D-Asset genauso wirkt wie dasselbe Element in der Realität. Man könnte überlegen besondere OETF in den Kameras oder andere Colorscience/ | ||
- | Das ist nicht sinnvoll, da viel zu aufwändig und VP ist eine zu große Nische im Bereich der Kameraeinsatzmöglichkeiten, außerdem | + | Das ist nicht sinnvoll, da viel zu aufwändig und VP eine zu große Nische im Bereich der Kameraeinsatzmöglichkeiten |
Es könnte auch ein Ansatz sein, die Ausgabe in der Gameengine entsprechend anzupassen, um den doppelten Kurven zu entkommen. Doch könnte eine solche Umrechnung gegebenenfalls schwierig zu implementieren sein, oder die Performance beeinflussen. Es ist aber eine gute Möglichkeit. | Es könnte auch ein Ansatz sein, die Ausgabe in der Gameengine entsprechend anzupassen, um den doppelten Kurven zu entkommen. Doch könnte eine solche Umrechnung gegebenenfalls schwierig zu implementieren sein, oder die Performance beeinflussen. Es ist aber eine gute Möglichkeit. | ||
Zeile 36: | Zeile 36: | ||
Des weiteren, könnte die LED Wand entsprechend kalibriert werden: | Des weiteren, könnte die LED Wand entsprechend kalibriert werden: | ||
- | Zum Einen hinsichtlich einer korrekten Farbraumdarstellung (Dynamikumfang, | + | Zum Einen hinsichtlich einer korrekten Farbraumdarstellung (Dynamikumfang, |
Zum Anderen kann die LED-Wand mit einer Korrekturmatrix korrigiert werden, dass sie perfekt zur OETF, dem Gammut und der Farbempfindlichkeit der Kamera passt. Dieser Ansatz wurde verfolgt. | Zum Anderen kann die LED-Wand mit einer Korrekturmatrix korrigiert werden, dass sie perfekt zur OETF, dem Gammut und der Farbempfindlichkeit der Kamera passt. Dieser Ansatz wurde verfolgt. | ||
- | |||
- | |||
====== Wie geht man dabei vor? ====== | ====== Wie geht man dabei vor? ====== | ||
//Am Beispiel der Kalibrierung in Unreal Engine// | //Am Beispiel der Kalibrierung in Unreal Engine// | ||
+ | |||
+ | Detailierter nachzulesen in der Unreal-Dokumentation: | ||
+ | https:// | ||
Zunächst wird über die Gameengine ein Color-Checker Test-Setting geladen. In diesem Setup wird ein synthetischer Color-Checker integriert. Dort sind durch den verwendeten Farbraum die Farbwerte genau definiert und somit bekannt. Unreal nutzt standardmäßig " | Zunächst wird über die Gameengine ein Color-Checker Test-Setting geladen. In diesem Setup wird ein synthetischer Color-Checker integriert. Dort sind durch den verwendeten Farbraum die Farbwerte genau definiert und somit bekannt. Unreal nutzt standardmäßig " | ||
Zeile 57: | Zeile 58: | ||
Die RGB-Werte der abgelichteten Testpatches Rot, Grün und Blau werden in die Matrix geschrieben | Die RGB-Werte der abgelichteten Testpatches Rot, Grün und Blau werden in die Matrix geschrieben | ||
- | {{: | + | {{ : |
Die inverse dieser Matrix wird mit dem höchsten Weißwert (W), auf 1.0 normalisiert Multipliziert. Das ist der Skalierungsfaktor. | Die inverse dieser Matrix wird mit dem höchsten Weißwert (W), auf 1.0 normalisiert Multipliziert. Das ist der Skalierungsfaktor. | ||
** | ** | ||
- | I = F-1 -> S = I × W/ | + | I = F^-1 -> S = I × W/ |
Dieser wird benutzt um um die Faktoren der Matrix zu skalieren. Danach muss diese Matrix invertiert werden: | Dieser wird benutzt um um die Faktoren der Matrix zu skalieren. Danach muss diese Matrix invertiert werden: | ||
- | {{: | + | {{ : |
- | **Kalibrations-Matrix = F-1** | + | |
+ | **Kalibrations-Matrix = F^-1** | ||
Mit dieser Matrix kann die Ausspielung auf der LED-Wand belegt werden. | Mit dieser Matrix kann die Ausspielung auf der LED-Wand belegt werden. | ||
Zeile 86: | Zeile 89: | ||
Der Hauptfokus liegt somit auf dem Korrigieren des Bildes für die Kamera. Wie bereits erwähnt, wird dies über ein Testbild berechnet. Daher würde ein Script geschrieben (generate_primaries), | Der Hauptfokus liegt somit auf dem Korrigieren des Bildes für die Kamera. Wie bereits erwähnt, wird dies über ein Testbild berechnet. Daher würde ein Script geschrieben (generate_primaries), | ||
- | {{: | + | {{ : |
- | {{: | + | |
Das Testpattern und das Testbild wird dann Fullscreen auf einem Laptop angezeigt, welcher per HDMI mit dem Controller für die LED-Wand verbunden ist. Nun fotografiert man beide Bilder mit der gewünschten Kamera ab und speist diese In Matlab ein. Dort wird zuerst mit den Daten aus dem Testpattern gearbeitet. Das Bild wird auf das reine Testpattern gecroppt und die Farbwerte werden aus den einzelnen Patches extrahiert. Dafür müssen die Werte zuerst in den linearen Raum konvertiert werden und mit dem median wird dann der mittlere Farbwert bestimmt. | Das Testpattern und das Testbild wird dann Fullscreen auf einem Laptop angezeigt, welcher per HDMI mit dem Controller für die LED-Wand verbunden ist. Nun fotografiert man beide Bilder mit der gewünschten Kamera ab und speist diese In Matlab ein. Dort wird zuerst mit den Daten aus dem Testpattern gearbeitet. Das Bild wird auf das reine Testpattern gecroppt und die Farbwerte werden aus den einzelnen Patches extrahiert. Dafür müssen die Werte zuerst in den linearen Raum konvertiert werden und mit dem median wird dann der mittlere Farbwert bestimmt. | ||
Zeile 95: | Zeile 97: | ||
Nun können die Bilder miteinander verglichen werden, um zu überprüfen, | Nun können die Bilder miteinander verglichen werden, um zu überprüfen, | ||
+ | {{ : | ||
+ | |||
+ | Im letzten Teil des Skripts werden noch die Ergebnisse verglichen. Zu erst kommt das abfotographierte Bild ohne vorher angewendetet Korrektur, dann mit und dann das Original mit einem einfachen Gaussblur um die Bilder vergleichbarer zu machen. Obwohl das Ergenis nicht perfekt ist, ist ersichtlich, | ||
====== Wie geht man konkret vor? ====== | ====== Wie geht man konkret vor? ====== | ||
Zeile 103: | Zeile 108: | ||
* Rechner mit Software (NovaLCT) + Controller für die LED-Wand | * Rechner mit Software (NovaLCT) + Controller für die LED-Wand | ||
* Kamera (+Stativ) | * Kamera (+Stativ) | ||
- | * Matlab Skripts (camera_correction) + Testbilder | + | * Matlab Skripts (camera_correction.m) + Testbilder |
- | - Laptop an LED-Wand anschließen und Testpattern aus Github auf der LED-Wand ausgeben | + | - Laptop an LED-Wand anschließen und verifizieren, |
+ | - Testpattern aus Github auf der LED-Wand ausgeben | ||
- Kamera so weit entfernt platzieren, dass die einzelnen Pixel nicht mehr sichtbar sind | - Kamera so weit entfernt platzieren, dass die einzelnen Pixel nicht mehr sichtbar sind | ||
- Weißabgleich auf die Wand anpassen (im Normalfall 6500k), mit manuellem Fokus leicht unscharf stellen (um Aliasing und andere Artefakte zu vermeiden), auf das mittlere Grau belichten und ein Foto machen. Diesen Vorgang mit dem anderen Testbild wiederholen | - Weißabgleich auf die Wand anpassen (im Normalfall 6500k), mit manuellem Fokus leicht unscharf stellen (um Aliasing und andere Artefakte zu vermeiden), auf das mittlere Grau belichten und ein Foto machen. Diesen Vorgang mit dem anderen Testbild wiederholen | ||
- | - Bilder auf dem Laptop im Ordner " | + | - Bilder auf dem Laptop im Ordner " |
- Das Programm ausführen und mit der Maus eine rechteckige Auswahl um das Testpattern ziehen und mit Rechtsklick „crop image“ | - Das Programm ausführen und mit der Maus eine rechteckige Auswahl um das Testpattern ziehen und mit Rechtsklick „crop image“ | ||
- In den Vergleichsfenstern die Ergebnisse anschauen und Resultate bewerten | - In den Vergleichsfenstern die Ergebnisse anschauen und Resultate bewerten | ||
- Das korregierte Bild für die Wand liegt nun im Ordner " | - Das korregierte Bild für die Wand liegt nun im Ordner " | ||
- | + | - Unter " | |
- | + | ||
led/media_correction.1676660509.txt.gz · Zuletzt geändert: 2023/02/17 20:01 von bh067