Widzenie komputerowe (computer vision) dr inż. Marcin Wilczewski 2018/2019
Organizacja zajęć Tematyka wykładu Cele Python jako narzędzie uczenia maszynowego i widzenia komputerowego. Binaryzacja i segmentacja obrazów. Metody grupowania (klasteryzacji). Metody klasyfikacji: klasyfikatory minimalnoodległościowe, drzewa decyzyjne, klasyfikatory bayesowskie, SVM, uczenie głębokie. Ocena jakości modeli klasyfikacyjnych. Rozpoznawanie twarzy (face recognition). Wprowadzenie w obszar uczenia maszynowego i widzenia komputerowego. Zainteresowanie analityką w ogólności. Laboratorium Zadania związane z tematyką wykładu. Rekomendowany języki: Python Warunki zaliczenia: Zajęcia kończą się pisemnym zaliczeniem (test) na ostatnich zajęciach w semestrze (dla chętnych). Maksymalna liczba punktów: 10 (test) + 15 (laboratorium) = 25. Oceny: [12,5-14,0] 3; [14,5-17,0] 3+, [17,5-20,0] 4, [20,5-23,0] 4+; [23,5-25,0] 5. Literatura: N. Sebe, I. Cohen, A. Garg, T. S. Huang, Machine Learning in Computer Vision, Springer, 2005. S. Raschka, Uczenie maszynowe, Helion, 2017. http://www.scipy-lectures.org/intro/
Widzenie komputerowe versus obszary pokrewne Rys. Związki w obszarze nauki o danych i jej zastosowań.
Machine learning (1/3) http://www.rexeranalytics.com/data-science-survey.html
Machine learning (2/3)
Machine learning (3/3)
Widzenie komputerowe, czyli co? Cele. (1/) Przetwarzanie obrazów (image processing) Wizualna korekcja obrazu: operacje algebraiczne, filtracja Operacje geometryczne Celem jest patrzenie Widzenie komputerowe (computer vision) Wydobycie wiedzy zawartej w obrazie; rozpoznanie treści. Automatyczna klasyfikacja na podstawie analizy treści. Automatyczna diagnoza na podstawie analizy obrazów medycznych. Automatyczna kategoryzacja tematyczna. Rozpoznawanie twarzy. Rozpoznawanie emocji, mimiki i gestów. Identyfikacja tożsamości (rozpoznawanie osób). Zasilanie algorytmów sterowania pojazdami autonomicznymi. Rozpoznawanie tekstu (OCR). Śledzenie przedmiotów i osób. Celem jest widzenie
Widzenie komputerowe. Cele Uczenie maszynowe (machine learning) jest narzędziem widzenia komputerowego. Celem uczenia maszynowego jest generowanie symbolicznego opisu obrazowanych zjawisk, który jest semantycznie i strukturalnie podobny do opisu tworzonego przez człowieka. Przykład: grupowanie stron Wikipedii. Rys. Wynik procedury kategoryzacji wybranych stron Wikipedii. W tym przypadku został wykorzystany algorytm grupowania hierarchicznego. Wynikiem jest dendrogram reprezentujący tematyczne grupy dokumentów. Przykład stanowi ilustrację jak proces uczenia nienadzorowanego wprowadza strukturę do przetwarzanego zbioru dokumentów. Źrfódło: http://www.rexamine.com/2014/06/text-mining-in-r-automatic-categorization-of-wikipedia-articles/
Podział metod uczenia maszynowego Uczenie maszynowe Metody nadzorowane (supervised) Modelowanie predykcyjne (klasyfikacja i regresja): przewidywanie wartość określonych zmiennych badanych obiektów na podstawie znanych wartości innych zmiennych. W przypadku tego typu zadań zmienne opisujące obiekty dzielone są na zmienne niezależne (predyktory) oraz zmienne zależne (decyzyjne), których wartość jest nieznana, a celem analizy jest ich wyznaczenie. W przypadku zagadnień klasyfikacyjnych zmienna zależna jest kategoryczna (czy klient spłaci kredyt TAK/NIE; czy klient odejdzie do konkurencji TAK/NIE; jaka jest klasa ryzyka danej obserwacji A/B/C/D, etc.), podczas gdy w zagadnieniach regresyjnych jest to zmienna ilościowa (ile zarobimy ze sprzedaży danego produktu danemu klientowi?). Uczenie modelu odbywa się na zbiorze danych historycznych i opiera się na podstawowym założeniu: możemy prognozować zjawisko w przyszłości na podstawie znajomości jego zachowania w przeszłości. Jednym z koniecznych zadań wykonywanych po wdrożeniu modelu jest monitorowanie prawdziwości takiego założenia (monitoring modeli). Popularnymi metodami stosowanymi w rozwiązywaniu zadań klasyfikacji i regresji są: sieci neuronowe, drzewa decyzyjne (klasyfikacyjne i regresyjne), analiza dyskryminacyjna, klasyfikatory bayesowskie, metoda k-nn, regresja liniowa. Metody nienadzorowane (unsupervised) Cechą metod nienadzorowanych jest brak przykładów uczących. Celem metod jest odkrycie struktury lub wzorców w danych. Przykładowymi metodami są metody grupowania (klasteryzacji): k-means, metody hierarchiczne, ukryte modele Markowa, sieci neuronowe.
Wyzwania a c b Rys. Złudzenia optyczne jako przykłady ilustrujące problemy percepcji i interpretacji. (a) szachownica Adelsona, (b) złudzenie odcinków różnej długości, (c ) efekt pop out, znaki x łatwo jest policzyć po lewej stronie rysunku, ale trudno po prawej.
Przykładowe zadania widzenia komputerowego Rys. Inspekcja produktów na linii produkcyjnej. Przykładowym celem systemów widzenia komputerowego może być ocena jakości i poprawności etykiet na produkcie. Źródło: K. Dawson-Howe, A Practical Introduction to Computer Vision with OpenCV, Wiley, 2014.
Przykładowe zadania widzenia komputerowego Rys. Jednym z zastosowań widzenia komputerowego jest odkrycie struktury poprzez kategoryzację obrazów.
Przykładowe zadania widzenia komputerowego Rys. Przykład wykorzystania widzenia komputerowego do wspomagania sterowania pojazdem autonomicznym. Rolą systemu widzenia komputerowego może być m. in. zapewnienie utrzymania pojazdu na jezdni pomiędzy pasami.
Przykładowe zadania widzenia komputerowego Rys. Widzenie komputerowe do identyfikacji zapełnionej skrzynki pocztowej.. Źródło: K. Dawson-Howe, A Practical Introduction to Computer Vision with OpenCV, Wiley, 2014.
Przykładowe zadania widzenia komputerowego Rys. Wykrywanie zagrożenia: detekcja porzuconych obiektów. https://core.ac.uk/download/pdf/96701448.pdf
Przykładowe zadania widzenia komputerowego Rys. Rozpoznawanie znaków drogowych. https://www.researchgate.net/publication/29753563_traffic_and_road_sign_recognition