Czy to poprawna metoda korekcji szumów o ustalonym wzorze?

12

Obecnie jestem zaangażowany w projekt dotyczący programowania czujnika obrazowania. Nasz czujnik emituje hałas, dlatego chcemy to poprawić. Ktoś inny z projektu wpadł na pomysł zrobienia „czarnego” obrazu, tj. Założenia pokrywki obiektywu i zrobienia zdjęcia, które ma być całe czarne. (Oczywiście nie jest to spowodowane szumem). W tym momencie podczas kolejnych zdjęć pobiera wartości pikseli z czarnego obrazu i odejmuje je od regularnie przechwytywanego obrazu.

Obraz wygląda lepiej i większość szumów została usunięta, jednak nie jestem przekonany, że jest to najlepsze podejście do usuwania szumów z powodu:

Zakres ustalonego obrazu wynosi [-172 194] (366 wartości), w porównaniu ze standardowym zakresem [0 255]. Po przerysowaniu zmienia się z powrotem na [0 255] i wygląda lepiej, jednak uważam, że jest to nieprawidłowe.

Powinienem wspomnieć, że nowe zdjęcie zostało zrobione w słabym świetle.

Czy ta metoda jest odpowiednia do usuwania hałasu? Dlaczego lub dlaczego nie?

NominSim
źródło
Ta konkretna metoda („czarny” obraz) jest formą kalibracji czujnika, która nie jest czystym DSP (jest również związana np. Z fizyką - musisz modelować wady fizyczne). Na przykład to szczególne podejście próbuje zrekompensować defekty gorących pikseli.
MSalters
zgadzam się z @PaulR
Simon Bergot
można sprawdzić rozwiązanie w tym linku: ardueye.com/pmwiki.php?n=Main.StonymanLens
Selma
jeśli mamy do czynienia z obrazami satelitarnymi, metody obliczania będą takie same? Mam na myśli, jak obliczyć czarno-biały obraz, aby uzyskać czyste wartości przesunięcia i wzmocnienia? Czy w Matlabie jest opis kodu do obliczeń FPN? Dziękuję za wszelkie wskazówki !!!

Odpowiedzi:

12

Czarny obraz jest sumą ustalonego wzoru i ciemnego szumu (który najprawdopodobniej ma rozkład normalny, ponieważ zwykle powstaje na skutek bieżących fluktuacji). Chcesz odjąć stały wzór, ale nie ciemny szum - odjęcie losowego szumu od sygnału po prostu zwiększa ogólny szum, a tym samym obniża jakość sygnału.

Aby uzyskać dobre oszacowanie dla ustalonego wzoru, należy uchwycić znaczną liczbę ramek (powiedzmy 25, chociaż 100 oczywiście pozostawi tylko połowę szumu) i uśrednić je. Ponieważ ciemny szum jest (powinien być) nieskorelowany w czasie, uśrednia się, dzięki czemu masz ustalony niskoszumowy wzór, który możesz odjąć od swoich przyszłych obrazów i który nie zwiększy szumu na obrazie.

Pamiętaj, że ustalony wzór zwykle zależy od czasu ekspozycji (na przykład kamera CCD może gromadzić elektrony podczas operacji zmiany), dlatego będziesz musiał przeprowadzić kalibrację dla każdego czasu ekspozycji. Jeśli często zmieniasz czasy ekspozycji i jeśli jest to wykonalne, możesz skonfigurować eksperyment tak, aby rejestrował serię ciemnych ramek po każdym eksperymencie, co oznacza, że ​​otrzymujesz kalibrację dla każdego eksperymentu.

Jeśli odejmiesz ciemną ramkę o niskim poziomie szumów (tj. Uśrednioną), otrzymasz pewne wartości ujemne (ponieważ ciemny szum występujący podczas akwizycji obrazu może mieć wartości ujemne), ale zasięg obrazu nie powinien znacznie wzrosnąć. Jeśli tak, oznacza to, że albo nie uśredniłeś wystarczającej ilości ciemnych ramek, albo że ustalony wzór zmienił się, ponieważ używasz innego czasu ekspozycji.

Jonas
źródło
1
Całkowicie popieram @Jonas. Jeśli teraz chcesz obniżyć ciemny szum poza usunięciem stałego wzoru, jedynym rozwiązaniem jest ochłodzenie czujnika.
Jean-Yves
1
Zakłada się, że ustalony szum wzoru jest tylko „przesunięciem”. Wiele czujników z FPN ma również wariacje wzmocnienia w każdym pikselu, więc po wystawieniu na scenę „czystej bieli” nadal będzie FPN, nawet po usunięciu przesunięć zmierzonych w ciemności ...
Martin Thompson
@MartinThompson: To dobra uwaga, choć w praktyce zagwarantowanie „czystej białej” sceny może być bardzo trudne. Dlatego nigdy nie używam żadnego zysku, jeśli mogę mu pomóc :).
Jonas
@MartinThompson Martin, jaka jest najlepsza praktyka do korygowania parametrów wzmocnienia. Nie mogę wymyślić łatwego sposobu na uczynienie wszystkiego białym przy danym czasie ekspozycji.
Ktuncer
1
@Ktuncer: Nie sądzę, że musisz zrobić z niego czystą biel - im jaśniejsze możesz to zrobić, tym lepiej możesz to poprawić. Dopóki jest to jednolita jasność w całej scenie, można użyć średniej wartości pikseli jako „celu” do korekty
Martin Thompson
7

takie podejście jest prawidłowe i jest stosowane w niektórych wysokiej klasy aparatach: czujnik najpierw robi zdjęcie z zamkniętą migawką, a następnie odejmuje je do „prawdziwego” zdjęcia. Ma to dwie zalety:

  • koryguje ustalony szum wzoru
  • sprawia, że ​​obraz jest liniowy

Ta metoda może dawać różne wyniki dla różnych czasów ekspozycji.

Szum fotoniczny pozostaje nietknięty.

Simon Bergot
źródło
4

Myślę, że to zależy od używanego czujnika.

Możesz zrobić serię (np. 10000) zdjęć przy założonej osłonie obiektywu i porównać średnią / odchylenie standardowe dla każdego piksela. Jeśli to możliwe, możesz zrobić to samo dla jednolitego „jasnego” obrazu (bez prześwietlenia, tylko jednolita jasność).

Jeśli istnieją znaczące różnice między „ciemnymi środkami”, dobrym pomysłem jest odjęcie ciemnej średniej dla każdego piksela. Jeśli istnieją znaczące różnice między (jasna średnia - ciemna średnia) dla każdego piksela, dzielenie przez ten „średni biały obraz” może być również poprawą.

Ale naprawdę musisz zrobić te statystyki, aby dowiedzieć się, co ma sens.

Niki Estner
źródło
3

Zwykle wartości ujemne należy obciąć do zera po odjęciu ciemnej ramki.

Dziwi mnie, że odejmowanie ciemnych ramek daje wartości -172. To znaczy, że:

  • Twój poziom hałasu jest wysoki - co najmniej 172
  • Twój hałas różni się znacznie w zależności od ramy. W takim przypadku odejmowanie ciemnej ramki nie jest bardzo skuteczne.

Czy możesz publikować zdjęcia normalnej ramki, ciemnej ramki, a następnie odejmowanej wersji?

japreiss
źródło
Aparat może próbować skorygować warunki słabego oświetlenia, zwiększając czas przechwytywania. W rezultacie gorące piksele gromadzą więcej szumu. Ponadto odczyt czujnika może być nieliniowy, w którym to przypadku nie można go wcale odjąć.
MSalters
negative values should be truncated to zero when you subtract the dark frame. Nie powinieneś tego robić, ponieważ uniemożliwi to wykonanie dobrej roboty w odszyfrowywaniu ciemnych obszarów obrazu. Lepiej jest zachować naturalny hałas, zanim naprawdę spróbujesz go usunąć.
Simon Bergot,
To był mój problem z metodą: jeśli nie obetniesz wartości do zera, pozostanie Ci większy zakres, niż obraz powinien wytworzyć, więc po zmianie skali pozornie połyskujesz dane, w porównaniu do obcinania wartości, które również wydają się uniemożliwić poprawną korektę