Dopasowywanie bloków i filtrowanie 3D
Dopasowywanie bloków i filtrowanie 3D (BM3D) to algorytm dopasowywania bloków 3D używany głównie do redukcji szumów w obrazach . Jest to jedno z rozwinięć metodologii środków nielokalnych. W BM3D istnieją dwie kaskady: etap z twardym progiem i filtr Wienera, obie obejmujące następujące części: grupowanie, wspólne filtrowanie i agregację. Algorytm ten opiera się na rozszerzonej reprezentacji w miejscu transformacji.
metoda
Grupowanie
Fragmenty obrazu są grupowane razem na podstawie podobieństwa, ale w przeciwieństwie do standardowego grupowania k-średnich i takich metod analizy skupień , fragmenty obrazu niekoniecznie są rozłączne . Ten algorytm dopasowywania bloków jest mniej wymagający obliczeniowo i jest przydatny później na etapie agregacji. Fragmenty mają jednak ten sam rozmiar. Fragment jest grupowany, jeśli jego odmienność od fragmentu referencyjnego spada poniżej określonego progu. Ta technika grupowania nazywana jest dopasowaniem bloków i jest zwykle używana do grupowania podobnych grup w różnych klatkach cyfrowego wideo , z drugiej strony BM3D może grupować makrobloki w jednej klatce. Wszystkie fragmenty obrazu w grupie są następnie układane w stos, tworząc cylindryczne kształty 3D.
Filtrowanie zespołowe
Filtrowanie odbywa się na każdej grupie fragmentów. Stosuje [ potrzebne wyjaśnienie . następuje zmniejszenie domeny transformacji, takie jak filtrowanie Wienera , a następnie transformacja liniowa jest odwracana w celu odtworzenia wszystkich (przefiltrowanych)
Zbiór
Obraz zostaje przekształcony z powrotem w dwuwymiarową formę. Wszystkie nakładające się fragmenty obrazu są uśredniane wagowo, aby zapewnić, że są filtrowane pod kątem szumów, ale zachowują odrębny sygnał.
Rozszerzenia
Kolorowe obrazy
Obrazy RGB można przetwarzać podobnie jak obrazy w skali szarości. Do obrazu RGB należy zastosować transformację luminancja-chrominancja. Grupowanie jest następnie zakończone na kanale luminancji, który zawiera większość przydatnych informacji i wyższy SNR. To podejście działa, ponieważ szum w kanałach chrominancji jest silnie skorelowany z szumem kanału luminancji i oszczędza około jednej trzeciej czasu obliczeń, ponieważ grupowanie zajmuje około połowy wymaganego czasu obliczeń.
Rozmycie
Algorytm BM3D został rozszerzony (IDD-BM3D) w celu wykonania oddzielonego usuwania rozmycia i odszumiania przy użyciu równowagi równowagi Nasha dwóch funkcji celu.
Konwolucyjna sieć neuronowa
Zaproponowano podejście, które integruje konwolucyjną sieć neuronową i wykazuje lepsze wyniki (choć przy wolniejszym czasie działania). Kod MATLAB został udostępniony do celów badawczych.
Implementacje
- Implementacja referencyjna w MATLAB i Pythonie wydana na zastrzeżonej licencji open source : BM3D
- Dobrze udokumentowana implementacja oparta na języku C wydana na licencji GPLv3 : bm3d
- CUDA i C++ wydana na licencji GPLv3 : bm3d-gpu