JAK FILTROWAĆ DANE POMIAROWE DLA POTRZEB ANALIZY OBRAZÓW (DANYCH)? ŁUKASZ RAUCH Techniczny Uniwersytet Otwarty 2007.02.03
Agenda Wprowadzenie – dlaczego potrzeba filtrowania danych Szczegółowy przegląd dostępnych metod i algorytmów filtrowania Podsumowanie problematyki procesu filtrowania Opis zaproponowanej metodologii filtrowania Projekt stworzonego oprogramowania Otrzymane rezultaty Perspektywy dalszych badań oraz rozwoju dostępnych metod Techniczny Uniwersytet Otwarty 2007.02.03
Problematyka procesu analizy danych pomiarowych1 Czytelność danych pomiarowych Brak możliwości różniczkowania danych –utrudniona interpolacja punktów Występowanie zafałszowanych pomiarów Konieczność „ręcznego” wyznaczania punktów charakterystycznych pomiarów Błędna interpretacja Zastosowanie: metalurgia, medycyna, ekonomia, kamery przemysłowe, itp. Techniczny Uniwersytet Otwarty 2007.02.03
Problematyka procesu analizy danych pomiarowych2 Techniczny Uniwersytet Otwarty 2007.02.03
Sformułowanie problemu Buades, A., et al., „A Review of Image Denoising Algorithms with a New One”, 2005 Sformułowanie problemu m(i) = v(i) + n(i) m – wartość obserwowana, mierzona (measurements) v – wartość właściwa sygnału (value) n – szum nałożony na sygnał (noise) Cel główny: Detekcja właściwej wartości v. Problem: Gdzie kończy się szum, a gdzie zaczyna sygnał? Techniczny Uniwersytet Otwarty 2007.02.03
Rodzaje i parametry szumu Szum może być dzielony ze względu na kilka cech np.: źródło – szum akustyczny, elektromagnetyczny, echo, itp., częstotliwość – najpowszechniej stosowany podział np.: szum biały lub kolorowy, funkcję gęstości prawdopodobieństwa (PDF) np.: szum Gaussa, jednostajny czy też sól i pieprz Parametry: rozkład prawdopodobieństwa, SNR (Signal Noise Ratio) – stosunek odchylenia standardowego obrazu i szumu (dla wartości 3 obraz widoczny jest bez zakłóceń, wartość powyżej 20 powoduje brak czytelności obrazu) Techniczny Uniwersytet Otwarty 2007.02.03
Metody filtrowania obrazów Buades, A., et al., „A Review of Image Denoising Algorithms with a New One”, 2005 Metody filtrowania obrazów Metody Standardowe: Konwolucja Aproksymacja Sieci neuronowe Analiza falkowa Filtry Kalmana Metody Dedykowane : Automaty komórkowe Non-linear Diffusion Non-local Means Anisotropic Filtering Łatwa implementacja Zdywersyfikowana jakość wyników Szeroka aplikowalność Trudna implementacja i konfiguracja Wysoka jakość wyników w określonych warunkach Techniczny Uniwersytet Otwarty 2007.02.03
Tadeusiewicz, R. , Korohoda, P Tadeusiewicz, R., Korohoda, P., „Komputerowa analiza i przetwarzanie obrazów”, 1997 Metody konwolucji Konwolucja – splot funkcji, w przypadku dyskretny suma będąca wynikiem mnożenia dwóch macierzy: obrazu oraz filtra (tzw. kernel) Konwolucja przeprowadzona w sposób dyskretny filtr 3x3 obserwowany problem – piksele brzegowe Techniczny Uniwersytet Otwarty 2007.02.03
Metody konwolucji Filtry dolnoprzepustowe Filtry górnoprzepustowe Tadeusiewicz, R., Korohoda, P., „Komputerowa analiza i przetwarzanie obrazów”, 1997 Metody konwolucji Filtry dolnoprzepustowe Filtry górnoprzepustowe Umożliwiają wyciągnięcie z obrazu informacji o elementach o niskiej częstotliwości, usuwając jednocześnie pozostałe elementy Pozwalają analizować obraz pod kątem elementów wysokoczęstotliwościo-wych jak np.: krawędzie Techniczny Uniwersytet Otwarty 2007.02.03
Metody konwolucji - Gauss Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki filtracji dolno- przepustowe górno- przepustowe Tadeusiewicz, R., Korohoda, P., „Komputerowa analiza i przetwarzanie obrazów”, 1997 Wyniki filtracji dolno- przepustowe górno- przepustowe Techniczny Uniwersytet Otwarty 2007.02.03
Rozmiar filtra a wyniki1 Tadeusiewicz, R., Korohoda, P., „Komputerowa analiza i przetwarzanie obrazów”, 1997 Rozmiar filtra a wyniki1 Filtr 3x3 Filtr 5x5 Techniczny Uniwersytet Otwarty 2007.02.03
Rozmiar filtra a wyniki2 Techniczny Uniwersytet Otwarty 2007.02.03
Metody konwolucji - podsumowanie Łatwość implementacji skupiona jedynie na prostych operacjach mnożenia i dodawania elementów dwóch macierzy Możliwość automatycznego stosowania (bez konieczności interakcji ze strony użytkownika) Przenośność na dane o różnych wymiarach (głównie 1D) poprzez zmianę wymiaru filtra Złożoność obliczeniowa – zależy zarówno od wielkości obrazka (ilości pikseli) jak i od wielkości filtra Wada główna – zbyt uogólnione wyniki z powodu braku „zaszytej” w algorytmie inteligencji Techniczny Uniwersytet Otwarty 2007.02.03
Falki - wprowadzenie Falki a transformata Fouriera Istota analizy falkowej dekompozycja funkcja falkowa bazowa (matka) funkcja skalująca Rodzaje transformacji falkowych: ciągła transformata (CWT), dyskretna transformata (DWT), szybka transformata (FWT) dekompozycja pakietowa (WPD) stacjonarna transformata (SWT) Techniczny Uniwersytet Otwarty 2007.02.03
Analiza falkowa Techniczny Uniwersytet Otwarty 2007.02.03
Przykładowe falki Techniczny Uniwersytet Otwarty 2007.02.03
Matlab Toolboxes (Narzędzia)1 Techniczny Uniwersytet Otwarty 2007.02.03
Matlab Toolboxes (Narzędzia)2 Techniczny Uniwersytet Otwarty 2007.02.03
Falki – przykład wyników Techniczny Uniwersytet Otwarty 2007.02.03
Falki – podsumowanie Średnio trudna implementacja, duża dostępność pakietów komercyjnych Brak możliwości automatycznego stosowania ze względu na konieczność ustawienia poziomów dekompozycji oraz progów filtracji Bezpośrednia przenośność pomiędzy danymi o różnych wymiarach praktycznie niemożliwa Wysoka precyzja działania – zależna przede wszystkim od użytkownika Wada główna – konieczność interakcji i rekonfiguracji nawet dla niewiele różniących się danych Liczne modyfikacje – Ridgelet, Curvelet, Brushlet Techniczny Uniwersytet Otwarty 2007.02.03
Sieci neuronowe - wprowadzenie Wykorzystywane rodzaje sieci neuronowych: MLP – Multilayer Perceptron GRNN – Generalized Regression Neural Network RBF – Radial Basis Function DNN – Dynamic Neural Networks Zastosowania filtrowanie sygnałów, obrazów i danych wielowymiarowych – usuwanie szumów pomiarowych filtrowanie adaptacyjne, identyfikacja opóźnienia czasowego w sygnale Techniczny Uniwersytet Otwarty 2007.02.03
SN – MLP Techniczny Uniwersytet Otwarty 2007.02.03
SN – filtrowanie 1D Techniczny Uniwersytet Otwarty 2007.02.03
SN – porównanie z AF Techniczny Uniwersytet Otwarty 2007.02.03
Inne zastosowania filtracyjne SN Nieprzewidywalne zmiany w sygnale wyjściowym procesu Techniczny Uniwersytet Otwarty 2007.02.03
Sieci neuronowe - podsumowanie Indywidualnej implementacji raczej się nie stosuje, bardzo duża ilość pakietów komercyjnych i niekomercyjnych Sieci wymagają nauczenia i pod względem zmiany danych wejściowych są bardzo czułe Bezpośrednia przenośność pomiędzy danymi o różnych wymiarach praktycznie niemożliwa Wysoka skłonność do generalizacji (uogólniania wyników) Wada główna – konieczność interakcji i rekonfiguracji nawet dla niewiele różniących się danych Techniczny Uniwersytet Otwarty 2007.02.03
Metody dedykowane Zmodyfikowane filtrowanie Gaussa, w którym gładkość sygnału mierzona jest całką Dirichleta Model filtrowania anizotropowego (Perona & Malik) Model całkowitej wariacji Rudin-Oscher-Fatemi Filty sąsiedzkie Yaroslavskiego np.: filtr SUSAN Filtry lokalne Wienera DUDE (discrete universal denoiser) NL-means (nonlocal-means) Techniczny Uniwersytet Otwarty 2007.02.03
Metody dedykowane – wyniki1 Techniczny Uniwersytet Otwarty 2007.02.03
Metody dedykowane – wyniki2 Techniczny Uniwersytet Otwarty 2007.02.03
Problem i teza Istnieje możliwość wyznaczenia jednej metody umożliwiającej filtrowanie danych niezależnie od charakteru tych danych i występującego szumu przy założeniu, że: Filtrowanie danych powinno odbywać się bez konieczności zbędnej rekonfiguracji metody, Proces filtrowania powinien zakończyć się bez interakcji ze strony użytkownika, Jakość stworzonej metody powinna zwracać wyniki porównywalne lub lepsze od innych powszechnie stosowanych metod. Jak przetwarzać duże zbiory danych złożone z kilku tysięcy lub nawet milionów rekordów danych? Czy da się zaimplementować metodę, która zrobi to automatycznie? Techniczny Uniwersytet Otwarty 2007.02.03
Dostępne metody, algorytmy Statystyczne Metody Przetwarzania Sygnału Metody Standardowe: Konwolucja Aproksymacja Sieci neuronowe Analiza falkowa Filtry Kalmana Metody Dedykowane: Non-linear Diffusion Non-local Means Anisotropic Filtering M. cząstek - siatkowe: Automaty komórkowe Gaz siatkowy (LGA) M. Cząstek - bezsiatkowe: Dynamika molekularna Cząstka w komórce SPH – hydrodynamika Płyn w komórce Hp-clouds Sequential Monte Carlo Aplikacja Metod Cząstek do Przetwarzania Sygnałów Techniczny Uniwersytet Otwarty 2007.02.03
Cele badań Zaprojektowanie oraz implementacja metody filtrowania danych pomiarowych niezależnie od ich charakteru, Uniwersalizacja metody ze względu na wymiar danych, Optymalizacja utworzonej metody pod kątem ilości parametrów wejściowych, Wyznaczenie współczynnika jakości, Opracowanie sposobu wstępnej analizy danych wielowymiarowych, Implementacja metody za pomocą nowoczesnych narzędzi informatycznych VS.NET C#, Weryfikacja otrzymanych wyników pod kątem różnych aplikacji. Techniczny Uniwersytet Otwarty 2007.02.03
Założenia tworzonego oprogramowania Preprocessing Filtrowanie Weryfikacja 1D import danych, przygotowanie struktur, detekcja uskoków, 2D import danych z obrazów, detekcja granic, przygotowanie listy najbliższych sąsiadów, nD redukcja wymiarów MDS, PCA v klasteryzacja v NNS v selekcja cech 1D – automatyczna PREDYKCJA danych makroekonomicznych, zwiększenie efektywności algorytmów ARIMA i PMRS, 2D – przetwarzanie MIKROSTRUKTUR materiałowych w celu automatyzacji analizy rozmiaru ziarna oraz wykorzystania wzorców materiałowych do Natural Element Method, nD – zwiększenie dokładności modelu PIECA ZAWIESINOWEGO zbudowanego w oparciu o sieci neuronowe Stworzenie JEDNEGO obiektu obsługującego różne dane, Wykorzystanie JEDNEJ metody do odszumiania danych Wizualizacja wyników Nawigacja podczas obliczeń Zapis otrzymanych rezultatów do plików Techniczny Uniwersytet Otwarty 2007.02.03
Projekt – notacja UML1 User External Interface – klasy interfejsu MDI Denoise Engine – zbiór klas do przetwarzania danych Useful Managers – pomocne narzędzia do obsługi danych Verification Apps – zewnętrzne klasy do weryfikacji wyników Techniczny Uniwersytet Otwarty 2007.02.03
Projekt – notacja UML2 Techniczny Uniwersytet Otwarty 2007.02.03
Projekt – notacja UML3 Techniczny Uniwersytet Otwarty 2007.02.03
Projekt – notacja UML4 Techniczny Uniwersytet Otwarty 2007.02.03
Opis algorytmu cząstek dynamicznych1 Cząstka – wektor danych rzeczywistych znajdujący się w N-wymiarowej przestrzeni euklidesowej charakteryzowany przez N różnych cech Techniczny Uniwersytet Otwarty 2007.02.03
Opis algorytmu cząstek dynamicznych2 Normalizacja danych – wyrównanie wpływu wszystkich cech wektora na ostateczny wynik, Współczynnik tłumienia (fc) – redukuje siły poruszające cząstki ze względu na zbieżność całego algorytmu, Warunek stopu cząstki – warunek progowy, cząstka zatrzymuje się jeżeli jej przesunięcie jest mniejsze niż odgórnie określona wartość progowa, Warunek stopu algorytmu = warunek stopu wszystkich cząstek lub EE mniejsze niż próg. Techniczny Uniwersytet Otwarty 2007.02.03
Opis algorytmu cząstek dynamicznych3 Złożoność obliczeniowa algorytmu: Algorytm działa w sposób iteracyjny, Ilość wszystkich iteracji zależy od amplitudy szumu oraz liczby sąsiadów – zbieżność: kilka do kilkadziesiąt iteracji = C W każdej iteracji wykonane zostają obliczenia dla wszystkich punktów ze zbioru, które aktualnie pozostają w stanie ruchu ≈ n Obliczenia w każdej z iteracji obejmują podstawowe operacje na dN wektorach Złożoność pamięciowa: ≈ n *( d * 6 + 3 + nn) * sizeof(double) + op Techniczny Uniwersytet Otwarty 2007.02.03
Opis algorytmu cząstek dynamicznych4 Skalowalność rozwiązania dla danych wielowymiarowych poprzez zastosowanie algorytmów najbliższych sąsiadów Niewielki wpływ skalowalności na złożoność obliczeniową Pre-processing danych wielowymiarowych – wysoka złożoność obliczeniowa Techniczny Uniwersytet Otwarty 2007.02.03
Opis algorytmu cząstek dynamicznych5 Miara jakości dla danych generowanych Miara jakości dla danych empirycznych Techniczny Uniwersytet Otwarty 2007.02.03
Oprogramowanie Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane 1D symulacje2 Seminarium AGH 2005.05.18
Wyniki – dane 1D1 Zbiór danych generowanych – obarczone szumem Gaussa o amplitudzie 5, 10 i 20% Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane 1D2 Zbiór danych empirycznych – krzywe umocnienia Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane 1D3 Zbiór danych empirycznych - termomagnetyka , kursy walutowe Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane porównawcze 1D4 Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane porównawcze 1D5 Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 1D1 ARIMA Autoregressive Integrated Moving Average – trójparametrowy zbiór modeli do analizy i predykcji serii czasowych PMRS Pattern Modelling and Recognition System – modelowanie serii czasowych w oparciu o rozpoznawanie wzorców Praca mgr – Kasprzyk, Miłoś Promotor: prof. W. Dzwinel Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 1D2 Techniczny Uniwersytet Otwarty 2007.02.03 Arima1 Arima6 Arima12 Arima18 Arima24 Oryginalne 18,66 18,76 17,24 34,81 221,64 DP 1,80 6,37 8,21 17,54 25,72 Gauss 6,23 15,00 13,16 26,78 78,75 Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – 2D, poprzednie Techniczny Uniwersytet Otwarty 2007.02.03
Canny Detector Filtrowanie wstępne - konwolucja Krawędzie, Kierunki krawędzi Śledzenie krawędzi Ściskanie krawędzi Numerowanie i czyszczenie Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane 2D1 (generowane) Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – dane 2D2 (generowane) Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 2D1 – tworzenie krawędzi Porównane z oprogramowaniem Metilo Wyniki – walidacja 2D1 – tworzenie krawędzi Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 2D2 – filtrowanie Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 2D3 Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – walidacja 2D4 Techniczny Uniwersytet Otwarty 2007.02.03
Wyniki – 2D, kolorowanie Techniczny Uniwersytet Otwarty 2007.02.03
Dane wielowymiarowe - nD Import danych, generowanie struktur Wejście 27 parametrów (różne częstotliwości pomiarów) Wyjście 18 parametrów, Algorytm redukcji wymiarów (zewnętrzny) Algorytm najbliższych sąsiadów Algorytm filtrowania danych --------------------------------------------- Walidacja danych Techniczny Uniwersytet Otwarty 2007.02.03
Dane wielowymiarowe – wyniki Techniczny Uniwersytet Otwarty 2007.02.03
Podsumowanie Działanie – metoda działa poprawnie i jest zbieżna do oczekiwanych wyników Uniwersalność – algorytm jest niezależny od charakteru szumu oraz jego amplitudy, dając szerokie spektrum zastosowań Wyniki – rezultaty filtrowania są podobnej jakości lub lepsze do wyników otrzymanych za pomocą innych powszechnie używanych algorytmów Efektywność – uniwersalność algorytmu okupiona jest niższą efektywnością działania, które jest jednak kwestią drugorzędną Techniczny Uniwersytet Otwarty 2007.02.03
Perspektywy dalszych badań Walidacja wyników otrzymanych dla danych wielowymiarowych, weryfikacja stabilności stworzonego modelu pieca zawiesinowego, Implementacja modułu filtrowania danych on-line, aplikacja do oprogramowania typu xTrade, Dopracowanie metod przetwarzania mikrostruktur w oparciu o istniejące wyniki, analiza materiałów dwufazowych, wykrywanie „bliźniaków”, itp. Optymalizacja szybkości działania algorytmu Techniczny Uniwersytet Otwarty 2007.02.03