ratowanie prześwietleń

Próbuje zrekonstruować informację o kolorze dla pikseli, które zostały obcięte w jednym lub więcej kanałach RGB.

🔗obcięcie

Przycinanie ma miejsce, gdy ilość przechwyconego światła przekracza zdolność czujnika aparatu do zarejestrowania tego światła (nasycenie fotozytu) lub pojemność pliku Raw do jego przechowywania (obcinanie cyfrowe). Po przycięciu piksela nie możemy już znać jego dokładnej jasności — wiemy jedynie, że jest ona równa lub większa od maksymalnej wartości, jaką może przechowywać piksel.

W idealnym przypadku punkt nasycenia fotozytem byłby taki sam, jak wartość, przy której następuje cyfrowe obcięcie (w celu maksymalnego wykorzystania zakresu dynamicznego aparatu), ale wartości te często różnią się w zależności od aparatu. Darktable wykorzystuje „punkt bieli” kamery do określenia, czy dany kanał jest obcięty. Jeśli punkt bieli zostanie ustawiony nieprawidłowo dla danej kamery, może to doprowadzić do obcięcia prawidłowych pikseli i może niekorzystnie wpłynąć na skuteczność tego modułu.

Kiedy kamera przechwytuje światło (przy użyciu zwykłego sensowa Bayerowego), każdy piksel reprezentuje pojedynczy kolor (R, G, B), który jest następnie interpolowany przez moduł demozaikowania w celu obliczenia koloru sąsiednich pikseli. Rezultatem będą często piksele (na demozaikowanym zdjęciu), które są przycięte tylko w niektórych kanałach (R, G, B).

Jeśli te piksele zostaną częściowo obcięte, może to spowodować nierealistyczne kolory zdjęcia. Te nieprawidłowe kolory mogą następnie zostać jeszcze bardziej zniekształcone przez moduł balansu bieli, który dostosowuje proporcje kanałów R, G i B w celu uwzględnienia ogólnego koloru sceny. Na przykład, gdy przycięty jest tylko kanał G (a kanały R i B są bliskie przycięcia), moduł balansu bieli może spowodować wyregulowanie kanałów R i B powyżej punktu przycięcia kanału G, co prowadzi do różowych świateł, które w przeciwnym razie byłyby białe.

Prostą metodą rozwiązania tego problemu jest przycięcie kanałów R i B do punktu przycinania kanału G (metoda rekonstrukcji „obcinania prześwietleń”), ale może to spowodować utratę prawidłowych danych pikseli, które mogą być przydatne przy rekonstrukcji prześwietleń i może również powodować inne artefakty i zmiany odcieni.

🔗metody ratowania prześwietleń

W tym module dostępnych jest wiele metod ratowania prześwietleń. Wszystkie te metody wykorzystują nieobcięte kanały i/lub sąsiednie piksele do rekonstrukcji brakujących danych.

wmaluj przeciwny (domyślnie)
Przywraca obcięte piksele, używając średniej sąsiednich, nieobciętych pikseli, aby oszacować prawidłowy kolor. Działa to dobrze w przypadku większości obrazów, ale może się nie powieść, gdy przycięte obszary sąsiadują z obszarami o innym kolorze.
oparte na segmentacji
Bardziej wyrafinowany algorytm, który wykorzystuje sąsiednie, nieobcięte piksele do oszacowania prawidłowego koloru, traktując każdy przycięty obszar osobno (jako osobny segment). Kolor każdego przyciętego segmentu jest szacowany poprzez analizę proporcji kolorów sąsiednich pikseli. Piksele, które są zbyt ciemne lub wyglądają na krawędzie, są odrzucane przez algorytm. Jeśli wszystkie otaczające piksele zostaną odrzucone, segment ten zostanie zrekonstruowany przy użyciu metody „wmalowania przeciwnego” (powyżej). Segmenty znajdujące się blisko siebie są często częściami tego samego obiektu i dlatego można je traktować tak, jakby były pojedynczym segmentem.

Odzyskiwanie oparte na segmentacji jest w stanie odbudować duże obcięte obszary poprzez analizę sąsiednich gradientów. Radzimy jednak myśleć o tej metodzie jako o sposobie na “przystrojenie” obciętych rejonów w akceptowalne kolory, a nie jako o ich “magicznej reperacji”.

laplasjan z prowadzeniem
Używa algorytmu (pochodzącego z modułu dyfuzji lub wyostrzenia), aby replikować szczegóły z prawidłowych kanałów do przyciętych kanałów i propagować gradienty kolorów z prawidłowych otaczających regionów do przyciętych regionów. Jest to metoda wymagająca dużej mocy obliczeniowej, zaprojektowana z myślą o maksymalnej gładkości i płynnym wtapianiu zrekonstruowanych obszarów w ich sąsiedztwo i przeznaczona przede wszystkim do rekonstrukcji świateł punktowych i odbić lustrzanych. Ten tryb jest dostępny tylko dla czujników Bayera.
przycinanie świateł
Wyrównuje piksele do poziomu bieli (czyli obcina pozostałe kanały kolorów). Metoda jest najbardziej użyteczna w przypadkach, kiedy obcięte światła pojawiają się w bezbarwnych obszarach, jak na przykład chmury na niebie.
rekonstrukcja w LCh
Analizuje każdy piksel z obciętym co najmniej jednym kanałem i próbuje naprawić obcięty piksel (w przestrzeni LCh) przy użyciu wartości pozostałych pikseli (3 dla matrycy Bayera lub 8 dla X-Trans) w przetwarzanym bloku sensorów. Odzyskane światła będą wciąż monochromatyczne, ale jaśniejsze i bardziej szczegółowe, niż przy wykorzystaniu przycięcia świateł. Metoda działa dobrze z krzywą bazową o wysokim kontraście, która odwzorowuje światła z niskim nasyceniem. Podobnie, jak przycinanie świateł, to dobra opcja na obiekty z naturalnym niewielkim nasyceniem.
rekonstrukcja koloru
Korzysta z algorytmu, przenoszącego informację o kolorze z zachowanego sąsiedztwa do obciętych świateł. Metoda działa dobrze w obszarach homogenicznych kolorów, a szczególnie na odcieniach skóry z gładko zacienionymi światłami. Zauważ, że może ona generować artefakty schodkowe w światłach za wysoko kontrastowymi krawędziami, takimi jak dobrze wyeksponowane struktury przed prześwietlonym tłem.

Uwaga: Jeśli korzystasz z opcji ratowania prześwietleń, dostępnej w module krzywej filmowej rgb, dobrym pomysłem może być rezygnacja z użycia tego modułu w trybie przycinania świateł, żeby krzywa filmowa rgb miała więcej danych do pracy.


🔗kontrolki modułu

🔗kontrolki wspólne

metoda
Metoda użyta do odzyskania prześwietleń.
próg odcinania
Piksele powyżej tej wartości zostaną zakwalifikowane do odcięcia.

Kliknij ikonę obok suwaka, aby zobaczyć, które obszary obrazu są uważane za przycięte (maska przycinająca). Jeśli maska przycinająca nie pasuje do ostrzeżenia o prześwietleniu RAW, może być konieczne skorygowanie tej wartości.

🔗tryb “laplasjan z prowadzeniem”

poziom szumu
Dodaje szum Poissona (naturalny szum fotonowy, jaki można znaleźć w odczytach czujników) do przyciętych obszarów. W przypadku obrazów o wysokiej wartości ISO prawidłowe obszary obrazu będą zaszumione, ale zrekonstruowane przycięte obszary będą gładkie, co może wyglądać dziwnie. Dodanie szumu do rekonstrukcji pomaga wizualnie połączyć wynik z resztą obrazu.
iteracje
Tryb laplasjan z prowadzeniem to iteracyjny proces, który ekstrapoluje gradienty i szczegóły z sąsiedztwa. Każda nowa iteracja udoskonala poprzednią rekonstrukcję, ale dodaje więcej obliczeń, które spowodują, że moduł będzie wolniejszy. Domyślna liczba iteracji powinna zapewnić rozsądne wyniki, ale można ją zwiększyć, jeśli rozjaśnienia w kolorze magenty nie zostaną całkowicie przywrócone — zwiększaj ten parametr stopniowo, ale ostrożnie, aby zachować kompromis między szybkością a jakością.
zmieszaj z jednolitym kolorem
Malowanie płaskim kolorem to sztuczka algorytmiczna, która może pomóc odzyskać rozjaśnienia w kolorze magenty w trudnych przypadkach (duże, przesłonięte obszary) poprzez wygładzenie współczynników RGB. Można to postrzegać jako “wspomaganie rekonstrukcji”, które może zmniejszyć liczbę iteracji wymaganych do całkowitego usunięcia magenty z przyciętych świateł. Jednakże powoduje to również, że rekonstrukcja jest mniej dokładna i może prowadzić do niegładkich zrekonstruowanych krawędzi i pomalowania niepowiązanych kolorów (np. błękitne niebo lub zielone liście, przemieniające się w białe chmury). Używaj tego ustawienia ostrożnie.
średnica rekonstrukcji
Tryb laplasjana z prowadzeniem wykorzystuje wieloskalowy algorytm, który próbuje odzyskać szczegóły z każdej skali niezależnie. Średnica rekonstrukcji to największa skala używana przez algorytm. Duże skale zwiększą zużycie pamięci i czas działania, a także mogą spowodować zamalowanie niepowiązanych kolorów lub szczegółów w przyciętych obszarach. Zaleca się użycie średnicy mniej więcej dwukrotnie większej, niż największy przycięty obszar przeznaczony do rekonstrukcji. Możliwe jest również, że dana średnica nie będzie pasować do wszystkich przyciętych obszarów, w takim przypadku należy użyć kilku instancji w różnych skalach i odpowiednio zamaskować przycięte obszary.

🔗tryb “oparte na segmentacji”

próg przycięcia
Ponieważ kontroluje on liczbę pikseli uznawanych za obcięte, zmienia także rozmiar powstałych segmentów i lokalizację sąsiednich pikseli, używanych do rekonstrukcji. W celu dokładnej regulacji możesz użyć modułu ekspozycji, aby upewnić się, że na histogramie (lub obrazie widocznym na ekranie) nie zostaną przycięte żadne jasne obszary. Następnie podnieś próg przycinania, aż światła przestaną być białe, i powoli obniżaj go ponownie, aż będą wyglądać akceptowalnie.
łączenie
Promień, przy którym bliskie segmenty są łączone i uznawane za część tego samego segmentu. Zwiększ (aby połączyć więcej segmentów), gdy różne części tego samego obiektu zostały nieprawidłowo zrekonstruowane w różnych kolorach. Zmniejsz (w celu oddzielenia segmentów), gdy różne obiekty zostały nieprawidłowo zrekonstruowane do tego samego koloru. Kliknij przycisk obok suwaka, aby zobaczyć kontury powstałych segmentów.
kandydujące
Określa, czy wolisz wybierać piksele kandydujące (używane do uzyskiwania danych o kolorach) za pomocą analizy segmentacji (wysokie wartości) czy wmalowania przeciwnych (niskie wartości). Kliknij przycisk obok suwaka, aby wyświetlić segmenty uważane za dobrych kandydatów.
przebuduj
Określa sposób odbudowy obszarów, w których wszystkie kanały zostały przycięte. Tryby „mały” i „duży” są dostrojone do segmentów o średnicy odpowiednio mniejszej niż 25 i większej niż 100 pikseli. Tryby „płaskie” próbują ignorować wąskie, nieprzycięte obiekty (linie energetyczne, gałęzie), aby uniknąć gradientów. Wreszcie tryby „ogólne” próbują znaleźć najlepsze ustawienia dla każdego segmentu.

🔗tryb “laplasjana z prowadzeniem” i odzyskiwanie prześwietleń w module krzywej filmowej rgb

Należy zauważyć, że moduł ratowania prześwietleń znajduje się dość wcześnie w kolejce przetwarzania — przed wejściowym profilem koloru i pełną adaptacją chromatyczną w kalibracji koloru (jeśli używasz kolejki nowoczesnej adaptacji chromatycznej). Typową sztuczką pozwalającą rozwiązać problem przyciętych świateł jest po prostu zmniejszenie ich nasycenia do bieli, ale ponieważ biel nie jest zdefiniowana przed pełną adaptacją chromatyczną i profilowaniem kolorów wejściowych, nie można tutaj zastosować tej sztuczki. Technicznie rzecz biorąc, na tym etapie nie ma jeszcze koloru, a jedynie dowolny sygnał 3D.

Podejście laplasjana z prowadzeniem zostało zaprojektowane specjalnie jako odporne na rozbieżności w balansie bieli i unikające wszelkich koncepcji lub metod związanych z kolorem (dla uniknięcia wyraźnej desaturacji). Obsługuje jedynie gradienty (przejścia) w sygnale i ma na celu ich płynne połączenie tak, aby uzupełnić brakujące elementy. Proces ten jest jednak dość ciężki, ponieważ należy do kategorii nadzorowanego uczenia maszynowego (optymalizacja oparta na gradientach poprzez krzywiznę w wielu skalach), która jest podgałęzią sztucznej inteligencji.

Ratowanie prześwietleń modułu filmowego wykorzystuje prostszy algorytm propagacji kolorów w połączeniu z opcją desaturacji, która może sprzyjać rekonstrukcji achromatycznej. Nie tylko wie o kolorze (ponieważ następuje po pełnym profilowaniu kolorów i adaptacji chromatycznej), ale także wykorzystuje uproszczoną i szybszą wersję algorytmu stosowanego w podejściu laplasjana z prowadzeniem. Ten wariant nie będzie tak bardzo starał się przywrócić szczegółów, a zamiast tego będzie preferował płynne rozmycie.

Rekonstrukcja filmowa jest wystarczająco dobra w przypadku bardzo dużych, przyciętych plam i ma tę zaletę, że w ostateczności może ulec degradacji do bieli. Lepsze i szybsze jest także wmalowanie jednolitego koloru w przyciętych obszarach kosztem szczegółów. Jego główną wadą jest to, że nie jest tak selektywny pod względem źródła kolorów malowanych w obciętych częściach, więc może malować niepowiązane kolory.

Podsumowując, z trybu laplasjana z prowadzeniem zalecamy korzystać, jeśli potrzebujesz:

  1. wygładzić brzegi przyciętych obszarów,

  2. odzyskać plamki i obcięte rejony o średnicy poniżej ok. 256px (w RAW o pełnej rozdzielczości),

  3. usunąć aberracje chromatyczne, mogące pojawić się przy demozaikowaniu (kolejnym modułem w kolejce) na granicy pomiędzy obszarami obciętymi a niezmienionymi.

Jeśli okaże się, że musisz zwiększyć średnicę rekonstrukcji powyżej 512 pikseli, aby uzyskać pełne przywrócenie koloru z magenty, najlepszym podejściem jest zazwyczaj ograniczenie średnicy do 512 pikseli, zrobienie wszystkiego, co możesz przy tym ustawieniu, a następnie włączenie rekonstrukcji przepaleń w module krzywej filmowej rgb, aby zakończyć pracę. Zapewni to bardziej znośne czasy działania z bardzo podobnym wynikiem.

translations