WYBRANE ZAGADNIENIA WIDZENIA MASZYNOWEGO
Transkrypt
WYBRANE ZAGADNIENIA WIDZENIA MASZYNOWEGO
Optomechatronika - Laboratorium Ćwiczenie 4 WYBRANE ZAGADNIENIA WIDZENIA MASZYNOWEGO 4.1 Cel ćwiczenia Celem ćwiczenia jest zapoznanie się ze sposobami akwizycji oraz analizy obrazu przydatnymi w kontroli procesów wytwarzania. Przedstawione zostaną podstawowe algorytmy służące do rozpoznawania obiektów w widzeniu maszynowym. 4.2 Wiadomości ogólne Widzenie maszynowe znajduje zastosowanie w przemyśle do kontroli jakości produkcji, współpracy z urządzeniami pozycjonującymi oraz w systemach pomiarowych. Główne obszary zastosowań przetwarzania i rozpoznawania obrazu to: • podbój kosmosu, • zastosowania wojskowe, • zastosowania CAx (inżynieria odwrotna, szybkie prototypowanie), • kontrola przemysłowa, • medycyna, • archiwizacja i dokumentacja obiektów, zabytków, itp., • efekty specjalne do filmów. Przeniesienie większości pracy na część obliczeniową oraz możliwość automatyzacji całego procesu pozwala na obniżenie kosztów produkcji i zwiększenie jej efektywności. Przyczynia się do tego dynamiczny rozwój technik informatycznych oraz wysoki wzrost mocy obliczeniowej komputerów. 4.2.1 Metody analizy obrazu Najważniejszymi blokami funkcjonalnymi systemów widzenia maszynowego są: - Akwizycja obrazu, - Przetwarzanie obrazu. Należy zagwarantować możliwie najlepsze warunki do przeprowadzenia pomiarów. To właśnie od nich będzie zależeć dokładność i skuteczność algorytmów. Rys. 4.1. System przetwarzania i rozpoznawania obrazu. Obiekty mierzone znajdują się w scenie. Dobór oświetlenia oraz rodzaju tła zależy od charakterystyk badanych obiektów. Typowe układy oświetlające wraz z rejestratorem przedstawione są na rysunku 4.2. a) d) b) c) e) f) Rys. 4.2. Sposoby oświetlenia sceny światłem; a) przechodzącym, b) odbitym, c) rozproszonym bezcieniowym, d) rozproszonym bocznym, e) w osi kamery, f) przechodzącym z kolimacją wiązki. Wyróżniamy dwa podstawowe przypadki: • • światła przechodzącego („Dia”) światła rozproszonego („Epi”) które dobiera się odpowiednio do charakterystyk optycznych obiektów: • • • • obiekty rozpraszające, obiekty transparentne, obiekty odbijające, obiekty mieszane. Należy dobrać źródło światła o odpowiedniej jasności i charakterystyce spektralnej (monochromatyczne/polichromatyczne), punktowe bądź rozciągłe, „skierowane” lub rozproszone. W przypadku pomiarów dokładnych często używa się wiązki koherentnego promieniowania laserowego. Ważny jest również czas akwizycji. W przypadku obiektów dynamicznych prędkość ich ruchu nie powinna mieć wpływu na dokładność odwzorowania. Obraz przedmiotu na detektorze tworzony jest przez układ optyczny. Detektorem najczęściej stosowanym jest obecnie matryca CCD lub CMOS, istnieją ponadto układy z linijkami świetlnymi czy pojedynczą komórką światłoczułą (np. w układach skanujących). Matryce CCD i CMOS najprościej podzielić na barwne (RGB) i szaro-odcieniowe. Ich charakterystyka spektralna także powinna zostać uwzględniona. Jeszcze przed etapem akwizycji możemy optymalizować parametry obrazu przez dostrojenie układu optycznego (ostrości, przysłony). W dalszej części będziemy analizować cyfrowe przetwarzanie obrazu 2D rzutowanego na płaszczyznę detekcji z przedmiotu 3D (trójwymiarowego). Cechy obrazu Obraz składa się z macierzy dyskretnych, ograniczonych wartości uporządkowanych w sposób obrazujący dyskretny rozkład intensywności na płaszczyźnie detekcji matrycy. Jego podstawowe cechy to: - rozdzielczość i wymiar obrazu (lub jego powiększenie i liczba pikseli w pionie/poziomie), - liczba dyskretnych poziomów (kodów bitowych) intensywności każdego z pikseli, - przestrzeń barw, - stosunek sygnału do szumu. Rys. 4.3. Wpływ rozdzielczości na dokładność odwzorowania. Rys. 4.4. Wpływ kwantyzacji poziomów jasności. Po zapisie danych do pamięci komputera przetwarzanie obrazu można podzielić na trzy etapy. Przetwarzanie niskiego rzędu Wynika często z potrzeby korekcji układu rejestracji. Za pomocą operacji geometrycznych takich jak przesunięcie, skalowanie, obrót, odbijanie symetryczne, możemy wprowadzić proste poprawki w obrazie. Podczas skalowania i obrotu ważna jest minimalizacja błędów wynikających z wyznaczenia wartości międzypikselowej. Stosuje się standardowe algorytmy interpolacji wartości sąsiednich pikseli – bilinearnej i bikubicznej oraz bardziej złożone metody. Innym przykładem operacji geometrycznych jest liniowe bądź parametryczne odkształcenie. Rys. 4.5. Przykład operacji geometrycznej. Ogólny opis przekształcenia geometrycznego: ⎛ A12 ⎤ ⎞ ⎡A I (P ') = I ([x' y ']) = I (P ⋅ A) = I ⎜⎜ [x y ] ⋅ ⎢ 11 ⎥ ⎟⎟ , ⎣ A21 A22 ⎦ ⎠ ⎝ gdzie: I(P) – intensywność w punkcje P, P – punkt początkowy, P’ – punkt końcowy, [x, y] – współrzędne w bitmapie, A – macierz transformacji geometrycznej Operacje arytmetyczne pozwalają na zwiększenie kontrastu i dopasowanie jasności w celu zwiększenia różnic między obiektem a tłem, co ma duże znaczenie dla dalszego przetwarzania. Analogicznie ogólny opis przekształcenia wygląda następująco: I ' ( P[ x, y ]) = f [I ( P[ x, y ])]; f (…) – dana funkcja. Operacje można wykonywać na kilku obrazach np. ich dodawanie, odejmowanie, mnożenie bądź dzielenie. Przykładowa operacja nieliniowa na obrazie (ograniczenie jasności): a) b) Rys. 4.6. Ograniczenie jasności a) od góry b) od dołu. Ilość wystąpień Podstawowym sposobem zwiększenia zakresu intensywności pikseli jest normalizacja histogramu. Histogram jest wykresem rozkładu liczby pikseli o danej intensywności w funkcji intensywności. Wartość piksela Rys. 4.7. Przykładowy histogram. Normalizację opisuje zależność: g n ,m = g max f n ,m − f min f max − f min gdzie: f max - maksymalna intensywność piksela w obrazie f min - minimalna intensywność piksela w obrazie f n,m - intensywność piksela wejściowego g n,m - intensywność piksela wyjściowego g max – najwyższa wartość jasności, (g min = 0) Nieliniowe funkcje służą zmianie gammy, np. do zwiększenia rozdzielczości małych, bądź dużych poziomów intensywności. Filtracja jest operacją, w której intensywność w danym pikselu wyliczana jest na podstawie jego intensywności oraz intensywności pikseli z otoczenia. Za pomocą filtrów możemy poprawić jakość obrazu, np. usunąć szumy detektora lub niejednorodne oświetlenie w obrazie. Możemy również wydobyć z obrazów interesujące nas cechy, np. podkreślić krawędzie lub granice między obiektami. Przy filtracji rozważamy każdy piksel (i, j) i jego otoczenie o wymiarze (M,N) oraz tzw. maskę splotu h(n,m) (Rys. 4.8). a) b) Rys. 4.8. Macierze a) otoczenia piksela i b) maski filtra M=1, N=1. Wartość intensywności w pikselu bieżącym oblicza się jako operację liniową rozkładu intensywności w otoczeniu tego piksela zgodnie z: F(i,j) = O [f(i,j,M,N)] Wyróżniamy następujące rodzaje filtrów: Dolnoprzepustowy – usuwa z obrazu elementy o wysokiej częstości pozostawiając te o niskiej (stąd nazwa). Z obrazu usuwane są zatem gwałtowne zmiany jasności sąsiednich pikseli czego wynikiem jest rozmycie krawędzi obrazu. Filtry te są używane do eliminacji szumów w obrazie. Do najczęściej stosowanych filtrów dolnoprzepustowych należą filtr uśredniający i filtr Gaussa. Górnoprzepustowy (różniczkowy) –wydobywa z obrazu elementy o dużej częstości, czyli nagłe zmiany w intensywności pikseli. Tego typu filtry stosujemy wtedy, gdy chcemy wyodrębnić z obrazu szczegóły. Dodatkowo, w sytuacji kiedy częstości przestrzenne obiektu który analizujemy i tła nie nachodzą na siebie (tzn. zmiany jasności od tła są bardzo wolnozmienne, a w obrazie mamy dużo szczegółów) możliwe jest usunięcie zmian jasności w tle. Kluczową operacją arytmetyczną niskiego rzędu jest w binaryzacja. Polega ona na przyporządkowaniu różnych wartości logicznych każdemu z pikseli. Prostym rozwiązaniem jest progowanie, tzn. wybranie wartości granicznej intensywności powyżej której piksele zostaną przydzielone do obiektu bądź tła. Doboru progu można dokonać ręcznie bądź automatycznie na podstawie analizy statystycznej histogramu. Przypisanie wartości logicznej (0 czy 1) dla obiektu jest arbitralne. a) b) c) Rys. 4.9. Filtr dolnoprzepustowy uśredniający: a - macierz filtru, b - obraz przed filtracją, c – obraz po filtracji. a) b) c) Rys. 4.10. Filtr górnoprzepustowy gaussowski: a - macierz filtru, b - obraz przed filtracją, c – obraz po filtracji. Przetwarzanie pośredniego rzędu Operacje stosowane na tym etapie przetwarzania służą oddzieleniu obiektów od tła w taki sposób, by zachowały jak najwięcej cech własnych. Wyróżniamy algorytmy filtracji binarnej, erozji, dylatacji oraz połączenia dwóch ostatnich w operacje zamknięcia i otwarcia. Służą do tego specjalne operacje morfologiczne wykonywane w dziedzinie binarnej. Następnie dochodzi się do segmentacji, czyli wyznaczania przynależności każdego z pikseli do poszczególnego obiektu bądź tła. Podstawą działania morfologicznego jest maska filtru o zdefiniowanym rozmiarze (z zasady kwadratowym większym od 3 pikseli), którą „przykłada” się do kolejnych pikseli obrazu po binaryzacji przeprowadzając działania logiczne na wartości binarnej piksela w zależności od jego wartości i sąsiadów w otoczeniu pod maską. Działanie to wykonuje się zawsze na kopii tymczasowej obrazu i przepisuje do obrazu źródłowego. Operację tę można wykonywać wielokrotnie, naprzemiennie z różnymi maskami. Schemat maski: h – wartość logiczna, dowolna funkcja boolowska na zbiorze h opisuje zmianę wartości piksela h0,0 Eliminacja szumu binarnego „soli i pieprzu”. „Pieprz i sól” to nazwa pojedynczych pikseli otoczonych przez piksele przeciwnej wartości logicznej. Pieprz Sól Dylatacja Rozrastanie się krawędzi obiektów i wypełnianie przestrzeni tła. Erozja Zapadanie się krawędzi obiektów. Operacja zamknięcia polega na wykonaniu dylatacji tak by wypełnić otwory lub połączyć bliskie sobie części tego samego elementu. Następnie stosuje się operację erozji, by zachować oryginalne rozmiary obiektu. Operacja otwarcia jest odwrotną operacją i służy do wycinania cienkich elementów i rozcinania przewężeń. Obiekt wejściowy Zamknięcie Otwarcie Przetwarzanie wysokiego rzędu W celu przejścia do przetwarzania wysokiego rzędu obiekty poddawane są segmentacji. Różne algorytmy służą do przypisania zbiorom pikseli tej samej wartości (etykiety) oznaczającej przynależność do jednego obiektu. W większości komputerowych systemów wizyjnych segmentacja jest ostatnim etapem przetwarzania obrazów (obiektów w obrazie). Kolejne operacje są związane z procesem analizy obrazu lub/i z identyfikacją treści obserwowanych obrazów. W wyniku segmentacji otrzymuje się obszary lub kontury odpowiadające występującym w obrazie obiektom. Następnie zakłada się, że w analizowanych obrazach znajdują się jedynie obiekty określonych rodzajów i próbuje się klasyfikować/rozpoznawać wydzielone segmenty. Rozpoznanie polega na przypisaniu każdego segmentu do określonej klasy, tzn. uznaje się, że dany segment wyobraża obiekt należący do tej klasy. W celu umożliwienia sklasyfikowania każdego elementu zwykle dopuszcza się też klasę "obiekty niezdefiniowane", gdyż pewne segmenty w wyniku np. nieprawidłowego wydzielenia lub należenia do tła mogą nie reprezentować żadnego obiektu. Zazwyczaj do identyfikacji obrazów stosuje się metody wykorzystujące pojęcie przestrzeni cech. Przestrzenią cech nazywana jest pewna n-wymiarowa przestrzeń, w którą odwzorowane są rozważane obiekty opisywane przez pewien zbiór n-cech X = {x1,...,xn}. Cechami mogą być najróżniejsze własności, ale wartość ich dla każdego obiektu musi być pojedynczą liczbą (rzeczywistą lub całkowitą). Jeżeli 'obiektem' będzie np. próbka krwi to cechami mogą być: liczba leukocytów, erytrocytów, poziom hemoglobiny, itd. W przypadku dwuwymiarowych obiektów geometrycznych obserwowanych przez system wizyjny, cechami mogą być: powierzchnia, obwód, liczba otworów, lub iloraz tych wielkości itd. W teorii nie prowadzi się rozważań nad naturą obiektów i cech, ale zakłada się, że cechy są tak wybrane, by obiekt mógł zostać sklasyfikowany na podstawie jego wartości cech. Dla danego obiektu q można określić zbiór jego wartości cech zwany wektorem cech. Wektor cech jest rezultatem odwzorowania obiektu w n-wymiarową przestrzeń cech (każdy wymiar tej przestrzeni jest zatem związany z jedną cechą). Niech w rozważanym problemie występuje m klas obiektów K1,...Km. Ponieważ identyfikacja obiektu jest realizowana na podstawie jego wektora cech, więc w przestrzeni cech powinno istnieć m tzw. obszarów decyzyjnych O1,...,Om przypisanych poszczególnym klasom i tak dobranych, żeby na podstawie przynależności wektora x(q) do obszaru Oi można było wnioskować o przynależności obiektu p do klasy Ki. Dla lepszego zilustrowania problemu zostanie przedstawiony następujący przykład: Rozważane są dwie cechy: x1-"wysokość obiektu", x2-"szerokość obiektu", oraz dwie klasy obiektów: K1-obiekty stojące, K2-obiekty leżące (Rys.11). Obiekt uznany jest za "stojący", gdy jego wysokość jest większa od szerokości wysokość szerokość Rys. 4.11. Dwuwymiarowa przestrzeń cech wraz z liniową funkcją rozdzielającą obiekty klasy O1 i O2. Rozróżnia się następujące rodzaje cech obiektów: - barwę, - cechy statystyczne otoczeń (tekstury), - cechy topologiczne - analiza wklęsłości, spójności figur, - cechy geometryczne, - współczynniki kształtu, - momenty geometryczne. Współczynniki kształtu: • pole powierzchni, • obwód, • zwartość, • centryczność, • smukłość, • prostokątność, • średnice Fereta, • kierunek, • inne. 4.3 Opis stanowiska Schemat sceny przedstawiony jest na rysunku 4.8. Rys. 4.8. Schemat stanowiska: L1, L2 – lampki halogenowe S – stół kamera. P – przedmioty K– Opis stanowiska: Kamera K zamocowana na statywie, znajdująca się nad sceną posiada w polu widzenia elementy rozłożone na stole S. Zapewniona jest możliwość przybliżania i oddalania kamery od obiektu oraz modyfikacja parametrów obiektywu. Dane są dwa źródła światła L1 i L2. Stół wykonany jest z materiału częściowo przepuszczalnego dla światła, co pozwala na zastosowanie podświetlenia Dia bądź Epi w zależności od położeń 1b/1a. Możliwa jest dowolna konfiguracja źródeł światła oraz korekcji obrazu kamery. Stanowisko wyposażone jest w komputer PC na którym zainstalowany jest program ImageLab. Przed przystąpieniem do ćwiczenia należy zapoznać się z samouczkiem do programu ImageLab!!! 4.4 Przebieg ćwiczenia Po otrzymaniu od prowadzącego zestawu elementów oraz określonego zadania, należy: 1) zaproponować sposób wykorzystania sceny: tła, rodzaju oświetlenia, 2) ustalić dla kamery optymalne parametry: jasność, kontrast, 3) wykonać operacje filtracji, normalizacji histogramu, odnotować wpływ kolejności wykonywanych operacji, 4) doprowadzić do poprawnej binaryzacji bitmapy, 5) wprowadzić funkcję filtru zadaną przez prowadzącego oraz przetestować jej działanie, 6) wykonać segmentację obrazu, 7) dokonać klasyfikacji obiektów wykorzystując cechy dostępne w programie ImageLab. 4.5 Opis przebiegu pracy w ImageLab 2a 1 4 5 2b 3 6 8 7 Funkcje dostępne na pasku narzędzi ponumerowano zgodnie z kolejnością operacji. Zachowanie tej kolejności jest ważne ponieważ pewne operacje są nieodwracalne. 1. Odczyt pliku – mapy bitowej. 2a, 2b. Normalizacja histogramu oraz ustawienie jasności, kontrastu i gamma dla każdej ze składowych RGB. Zmiana za pomocą suwaków. Niedostępne dla barwnych bitmap. 3. Przejście w skalę szarości. 4. Filtracja. Należy wybrać rozmiar filtru (np. 5x5), typ (np. dolnoprzepustowy), i określoną wagami maskę filtru. Należy zatwierdzić działanie na bitmapie przez ‘Update Image’. 5. Binaryzacja. Dobór progów za pomocą suwaków. Zamiana tła z obiektami prawym przyciskiem myszy. 6. Operacje morfologiczne. Należy samemu stworzyć maski dodając je kolejno. 7. Segmentacja. 8. Budowanie przestrzeni cech na podstawie zdefiniowanych przez użytkownika kryteriów. 4.6 Sprawozdanie Opisać dobrany sposób oświetlenia i nastaw kamery. Wytłumaczyć jaki wpływ na ostrość, kontrast i jasność ma przysłona. Ocenić poprawność wybranego sposobu ekspozycji przedmiotu. Opisać w prosty sposób działanie algorytmów użytych przed i po binaryzacji. Jaka jest ich funkcja? Wyjaśnić w jaki sposób dopiera się optymalne parametry filtrów. Sprawozdanie powinno zawierać wnioski wynikające z przebiegu ćwiczenia, oraz otrzymanych rezultatów.