本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

Odrzucanie pikseli przy integracji: wybór algorytmu i odczyt Rejection Map

Obróbka wstępna i stackowanie2021.01

„Odrzucanie” (rejection) przy integracji to automatyczne usuwanie — w trakcie składania wielu klatek — tych wartości odstających, których nie powinno tam być: śladów satelitów, białych plamek po promieniowaniu kosmicznym, resztkowych gorących pikseli (hot pixels), rozdętych obwódek zbyt jasnych gwiazd i tak dalej. Dobór właściwego algorytmu odrzucania pikseli (pixel rejection) i umiejętność odczytania wytwarzanej przez niego Rejection Map to klucz do czystego wyniku integracji. W tym artykule zbieram logikę wyboru algorytmu odrzucania oraz to, jak właściwie czytać te dwie tak często pomijane mapy odrzucania.

Rodzina algorytmów odrzucania

Program PixInsight oferuje przy integracji kilka algorytmów odrzucania. W oficjalnej dokumentacji wypisano, do jakiego scenariusza pasuje każdy z nich, i naprawdę warto to przeczytać (zwróć uwagę, że dokument ten opublikowano już jakiś czas temu i nie obejmuje dodanego później algorytmu GESD).

Algorytmy odrzucania wypisane w oficjalnej dokumentacji PixInsight Image Integration

Z grubsza można je podzielić na dwie grupy:

  • Rodzina Sigma: odrzucanie wartości odstających oparte na odchyleniu standardowym — na przykład Sigma Clipping, jego ulepszona wersja Winsorized Sigma Clipping oraz Percentile Clipping. Ich zasada działania i matematyka należą do tego samego systemu.
  • GESD Test: opiera się na Grubbs’s test, a jego teoria i matematyka są całkowicie inne niż w metodach sigma-based; to algorytm dodany stosunkowo późno.

GESD vs Sigma: kto wygrywa przy małej liczbie klatek?

Sam to porównałem. Pewnego razu wziąłem materiał złożony z zaledwie 12 klatek i uruchomiłem na nim równolegle GESD Test, Winsorized Sigma Clipping oraz tradycyjny Sigma Clipping.

Porównanie trzech metod: GESD, Winsorized Sigma i Sigma Clipping (materiał z 12 klatek)

12 klatek w istocie nie osiąga zalecanej liczby klatek dla GESD ani dla Winsorized Sigma, a mimo to w tym konkretnym zestawie najlepszy efekt dał właśnie GESD Test. Muszę jednak dodać jedno zastrzeżenie na koniec: jeśli materiał jest kolorowy, a klatek dodatkowo jest za mało, to i tak lepiej sprawdzi się Winsorized Sigma albo Sigma. Nie ma więc algorytmu „zawsze najlepszego” — wszystko zależy od materiału.

GESD kontra słabe ślady satelitów

GESD ma jeszcze jedną przewagę w praktyce. Kiedy dawniej integrowałem z rodziną sigma, często trafiałem na słabsze ślady satelitów, których po prostu nie dawało się odrzucić — nawet przy 17 klatkach po integracji zostawał fragment śladu. Do tego tak słabe ślady nie nadają się do usuwania metodą manual selective rejection (ręczne zamalowywanie na czarno).

Udane odrzucenie słabego śladu satelity po skorygowaniu parametrów GESD i rozszerzeniu śladu

Po przejściu na GESD Test, odpowiednim dobraniu parametrów i rozszerzeniu (rozroście) słabego śladu satelity udało mi się odrzucić ślad wyjątkowo słaby; ogólnie rzecz biorąc, stosunek sygnału do szumu (S/N) przy GESD wychodzi wyższy niż przy tradycyjnym Sigma Clipping czy Winsorized Sigma Clipping. (Trzeba jednak dodać, że w większości przypadków rodzina sigma nie sprawia takich kłopotów z nieusuwalnym śladem — to dość skrajny przypadek.)

Broń specjalna: Range Clipping

Poza statystycznym odrzucaniem wartości odstających jest jeszcze jeden sposób — „siłowy”, ale przydatny — Range Clipping.

Wymuszone usunięcie czarnych punktów powstałych przez złą kalibrację klatkami dark za pomocą Low Range clipping

Jeśli masz klatki ze źle wykonaną kalibracją klatkami dark, na których widać mnóstwo czarnych punktów (na przykład są na 10 klatkach, a na 5 ich nie ma), zwykłym algorytmom odrzucania trudno usunąć te punkty przez wyszukiwanie wartości odstających. W takiej sytuacji przy integracji możesz użyć Range Low Clipping, żeby wymusić usunięcie wszystkich czarnych punktów poniżej pewnego progu. To bezpośredni środek wymierzony w konkretną wadę, uzupełniający odrzucanie statystyczne.

Efekt usunięcia czarnych punktów przez Low Range clipping

Jak czytać Rejection Map

Po zakończeniu integracji w procesie ImageIntegration albo w skrypcie WBPP oprócz gotowego obrazu powstają jeszcze dwie mapy odrzucania: jedna dla kierunku wysokiej jasności (rejection high), druga dla kierunku niskiej jasności (rejection low). Większość osób po prostu je ignoruje — a to marnowanie bardzo przydatnej informacji diagnostycznej.

Ślady satelitów, obwódki rozdętych gwiazd i ślady obiektów bliskich Ziemi widoczne na mapie Rejection High

Na mapie rejection low zwykle nie ma na co patrzeć; najważniejsza jest rejection high: tu pojawiają się wszystkie zakłócenia, których „wolałbyś nie widzieć w gotowym obrazie” — ślady satelitów, obwódki zbyt jasnych lub rozdętych gwiazd, ślady obiektów bliskich Ziemi, a do tego gorące piksele i białe plamki po promieniowaniu kosmicznym (gorące piksele zwykle usuwam procesem Cosmetic Correction jeszcze przed integracją, więc tutaj nie ma ich wiele).

Najbardziej praktyczny sposób odczytania tej mapy jest taki: jeśli piksel, który chciałeś odrzucić, pojawia się na rejection high, znaczy to, że został skutecznie usunięty; jeśli natomiast go tu nie ma, a mimo to został w zintegrowanym wyniku (na przykład resztka śladu satelity), znaczy to, że parametry odrzucania są za słabe albo że trzeba zmienić algorytm.

Kilka częstych pytań w stylu „czy wyrzucić tę klatkę?”

Kiedy zrozumiesz powyższą zasadę, wiele rozterek początkujących znajduje odpowiedź.

Klatka z rozdętymi gwiazdami — wyrzucić ją z integracji? Jeśli nie chodzi o nieostrość, zwykle dopuszczam ją do integracji.

Ilustracja odrzuconych na Rejection High obwódek rozdętych/zbyt jasnych gwiazd oraz śladów satelitów

Wystarczy obejrzeć rejection high, żeby zobaczyć, że nadmiernie rozległe albo zbyt jasne fragmenty tych gwiazd zostały już usunięte przez odrzucanie i nie brały udziału w obliczeniach integracji; ślady sztucznych satelitów i białe plamy po promieniowaniu kosmicznym również lądują na rejection high. Taką robotę spokojnie zostaw programowi.

Jasny ślad satelity przecina cel na wylot — usunąć tę klatkę ręcznie? Odpowiedź znów brzmi: nie trzeba.

W materiale z 7 klatek na jednej ślad satelity przecina cel; automatyczne odrzucenie dzięki surowym parametrom Sigma High

Sposób jest taki: jeśli klatek masz mało, sięgnij po algorytm o większej sile odrzucania (na przykład rodzinę Sigma Clipping) i ustaw parametr Sigma High nieco surowiej (na przykład poniżej 2.5). W jednym przypadku miałem tylko 7 klatek, a na jednej z nich ślad satelity przecinał cel w poprzek; każda klatka była ważna dla stosunku sygnału do szumu, więc po ustawieniu odpowiednich parametrów (bez wartości domyślnych programu) pozwoliłem procesowi integracji wykonać odrzucanie automatycznie, a skutecznie odrzucony ślad pojawił się na rejection high. Nie marnuj ani jednego z trudem zdobytego piksela.

Wyjątek uszkodzonej kolumny: odrzucanie tego nie uratuje

Na koniec dodam jeszcze jeden wyjątek, którego odrzucanie nie uratuje — uszkodzoną kolumnę matrycy CCD (defect column).

Usunięcie uszkodzonej kolumny CCD za pomocą Defect Map, a reszta zostaje oddana odrzucaniu

Uszkodzona kolumna jest zbyt ciemna i biegnie przez cały kadr; usuwanie jej na siłę odrzucaniem kosztuje zbyt wiele dobrych pikseli, a i tak działa kiepsko. Właściwa droga to najpierw przygotować dla kamery Defect Map (na przykładzie matrycy CCD 16803 w „Latte”: jedna wyraźna uszkodzona kolumna pośrodku kadru plus trzy mniej widoczne), wczytać ją i zastosować do klatek light procesem DefectMap, a gdy wpływ uszkodzonej kolumny mocno zmaleje, resztę bez trudu usunie już odrzucanie przy integracji. Innymi słowy: odrzucanie to sprzątacz na końcu, a nie wszechmocna pierwsza linia obrony — wady, którymi powinno zająć się specjalistyczne narzędzie, i tak najpierw wymagają właściwego narzędzia.