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.

Podobne dokumenty