Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Projekt wizyjnego systemu identyfikacji ładunku i przestrzeni roboczej wybranego środka transportowego Kraków, 2012
1. Cel ćwiczenia Cel ćwiczenia stanowi implementacja stereowizji dla potrzeb wirtualizacji przestrzeni roboczej systemu identyfikacji ładunku wraz z przestrzenią roboczą wybranego środka transportu technologicznego na przykładzie fizycznego modelu laboratoryjnej suwnicy pomostowej (rys. 1.1). Rys. 1.1. Fizyczny model laboratoryjnej suwnicy pomostowej o udźwigu 150 kg 2. Sformułowanie problemu Przy pomocy cyfrowych technik przetwarzania obrazu oraz metod statystycznej obróbki danych należy wykonać analizę wymiarowo-kształtową przeszkód znajdujących się w przestrzeni roboczej urządzenia, widocznych na (rys. 1.2). Rys. 1.2. Komplet ujęć stereowizyjnych wraz z wygenerowanym obrazem anaglyph Strona 2
3. Problem odpowiedniości w układzie kanonicznym Głównym problem rekonstrukcji obrazu 3D na podstawie obrazów stereowizyjnych jest rozwiązanie problemu odpowiedniości (ang. correspondence problem). Dla kanonicznego układu kamer problem ten ulega uproszczeniu, gdyż współrzędne y obrazów dowolnego punktu przestrzeni są sobie równe, tj. y L = y R. Zatem zadanie poszukiwania punktu q L odpowiadającego punktowi q R można ograniczyć jedynie do linii położonej wzdłuż jednego wiersza o znanej współrzędnej. Rozwiązaniem problemu odpowiedniości jest wyznaczenie tzw. obrazu dysparycji stanowiącego różnicę współrzędnych związanych z wzajemnym przesunięciem obrazów każdego punktu przestrzeni (x, y, z) w obu kamerach. Przy obliczaniu dysparycji zakłada się, że jeden z obrazów (na rys. 1.3 obraz prawy) jest obrazem odniesienia. Rys. 1.3. Schemat obliczania dysparycji w kanonicznym układzie kamer Tak więc jeżeli danemu punktowi q R z obrazu odniesienia o współrzędnych (x R, y R ) odpowiada punkt q L z drugiego obrazu o współrzędnych (x L, y L ) gdzie y R = y L, to przesunięcie (dysparycja) pomiędzy prawym, a lewym punktem jest równe zależności (1.0):, (1.0) Strona 3
3.1. Estymacja przedziału dysparycji Estymacji wartości dysparycji (przesunięcia) zdjęć stereowizyjnych można dokonać przy pomocy oprogramowania do analizy obrazu. Poniżej zaprezentowano przykład oparty na aplikacji NI VisionBuilder AI 2009. W tym celu należy uruchomić maszynę wirtualną z zainstalowanym oprogramowaniem NI Vision Builder AI. Na pulpicie należy odszukać skrót do aplikacji VMware player i listy dostępnych systemów operacyjnych wybrać system oznaczony nazwą NI Vision Builder 2009. Rys. 1.4. Okno menadżera wirtualny systemów operacyjnych Wirtualny system operacyjny ma założone dwa konta o różnym stopniu poświadczeń, konto Operatora oraz Studenta. Należy zalogować się na konto Operatora przy pomocy hasła: LAB204. Po zalogowaniu na pulpicie uruchomionej maszyny wirtualnej należy odszukać ikonę z opisem National Instrument Vision Builder AI 2009 i przy jej pomocy uruchomić program. Następnie z wywołanego okna dialogowego należy wybrać opcję Configure Inspection, (pozostałe wartości należy pozostawić w trybie domyślnym) opcja ta pozwoli na takie skonfigurowanie aplikacji, aby umożliwić oszacowanie wartości dysparycji dla przykładowej pary zdjęć stereowizyjnych. Strona 4
Rys. 1.5. NI Vision Builder for Automated Inspection Wybór opcji Configure Inspection wywoła główne, graficzne okno aplikacji pozwalające zbudować program przeznaczone dla celów analizy obrazu według wybranej specyfikacji. Rys. 1.6. NI Vision Builder okno do konfiguracji inspekcji Okno aplikacji przeznaczonej dla celów budowy aplikacji dla celów analizy obrazu można podzielić na pięć niezależnych sekcji: 1 obszar przestrzeni roboczej, 2 okno przedstawiające strukturę zbudowanego programu w języku programowania Strona 5
obiektowego, 3 struktura procesu inspekcji, 4 paleta pogrupowanych tematycznie kroków inspekcji, 5 menu programu. W celu rozpoczęcia procesu inspekcji z okna 4, zatytułowanego: Acquire Images, należy wybrać narzędzie umożliwiające wczytanie obrazu. Rys. 1.7. Importowanie obraz dla celów przeprowadzenia analizy Do programu należy wczytać plik o nazwie anaglyph.png dostępny na stronie home.agh.edu.pl/hyla w zakładce DYDAKTYKA. UWAGA: Aplkacja VMware player umożliwia wymianę plików pomiędzy system operacyjnym komputera, a maszyną wirtualną na zasadzie metody przeciągnij i upuść. Przemieszczanie się pomiędzy maszyną wirtualną, a rodzimym systemem operacyjnym jest możliwe przy zastosowaniu kombinacji klawiszy CTRL+ALT. Powrót do środowiska maszyny wirtualnej jest możliwy przy zastosowaniu kombinacji klawiszy CTRL+G. Po załadowaniu pliku w obszar przestrzeni roboczej z okna kroków inspekcji, Rys. 1.8. Okno zgrupowanych narzędzi typu Locate Features Strona 6
należy wybrać narzędzie dedykowane dla celów związanych z koniecznością odnajdywania krawędzi na obrazie: Find Edges. UWAGA: Narzędzie umożliwia odnajdywanie krawędzi przy pomocy linii rysowanej na ekranie. Ze względu na uzyskanie możliwie najlepszych efektów i konieczności odczytania maksymalnego przedziału dysparycji, linię należy narysować w miejscu wskazanym na rysunku, natomiast opcje narzędzia ustawić tak jak pokazano na poniższym przykładzie. Rys. 1.9. Przykład konfiguracji narzędzia z zestawu Locate Features Find Edges Po wyodrębnieniu krawędzi z obrazu anaglyph, konieczne jest zmierzenie odległości pomiędzy tymi samymi krawędziami obrazu lewego oraz prawego zdjęcia stereowizyjnego. W tym celu można zastosować narzędzie Measure Features Geometry. Rys. 1.10. Pomiar odległości pomiędzy odnalezionymi krawędziami Strona 7
Ze względu na fakt iż w opisywanym przykładzie narzędzie do odnajdywania krawędzi, odnalazło 3 krawędzie, w oknie konfiguracji narzędzia Measure Features Geometry, należy dodatkowo zdefiniować krawędzie pomiędzy którymi ma być wytyczona odległość. Rys. 1.11. Okno konfiguracji dodatkowej narzędzia typu Geometry Prawidłowo zbudowana aplikacja dla celów pomiaru wartości dysparycji przy pomocy oprogramowania NI Vision Builder for Automated Inspection 2009, w języku programowania obiektowego powinna wyglądać tak jak pokazano na rys. 1.12. Wartość dysparycji wyrażona w pikselach zostaje uwidoczniona w zaznaczonym, wyszarzanym polu. Rys. 1.12. Okno konfiguracji dodatkowej narzędzia typu Geometry Strona 8
3.2. Wygenerowanie mapy dysparycji Przy użyciu m-pliku funkcyjnego o nazwie dysparity.m (plik dostępny na stronie home.agh.edu.pl/hyla w zakładce DYDAKTYKA), należy wygenerować mapę dysparycji dla wybranej miary podobieństwa. W celu wykonania obliczeń na rys. 1.13 przedstawiono interfejs oprogramowania Matlab. W oknie (1) lub (2) należy ustawić ścieżkę dostępu do folderu zawierającego m-plik funkcyjny disparity.m oraz zdjęcia stanowiące docelowy przedmiot analizy (lewe i prawe zdjęcie sterowizyjne), w oknie (3) wyświetlają się dane wynikowe z obliczeń, okno (4) służy do wydawania poleceń, znacznik (5) informuje o bieżącym statusie obliczeń. Rys. 1.13. Interfejs oprogramowania Matlab Legenda: 1. Wylistowana zawartość folderu wybranego w ścieżce dostępu (Current Folder), 2. Ścieżka dostępu (Current Folder), 3. Przestrzeń robocza (Workspace), 4. Wiersz poleceń (Command Windows), 5. Status obliczeń (Busy). Strona 9
3.3. Wiersz poleceń Po wskazaniu ścieżki dostępu zawierającej pliki disparity.m można przystąpić do obliczeń. Skrypt uruchamia się poleceniem, którego składnia została przedstawiona na rys. 1.14. UWAGA: Rys. 1.14. Składnia polecenia wywołująca funkcję obliczania dysparycji z pliku disparity.m Poniżej przedstawiono przydatne komendy w obsłudze programu Matlab: clear czyści przestrzeń roboczą (wykonać po każdej sekwencji obliczeń), clc czyści ekran wiersza poleceń bez usuwania zawartości przestrzeni roboczej, save {nazwa.mat} zapisuje wartość przestrzeni roboczej do pliku z rozszerzeniem *.mat, load {nazwa.mat} wczytuje wartość przestrzeni roboczej z pliku o rozszerzeniu *.mat, CTRL + BREAK wymuszenie przerwania obliczeń, Polecenie do wywołania mapy dysparycji (każdy wiersz wpisywać pojedynczo, a następnie zatwierdzać enterem) [nr,nc] = size(dispmap); figure('units','pixels','position', [0 0 nc nr]); imagesc(dispmap); axis off; set(gca,'position',[0 0 1 1]); Strona 10
4. Przeliczanie dysparycji wyrażonej w pikselach na jednostki układu SI Przy pomocy arkusza kalkulacyjnego Excel należy wygenerować wykres przebiegu funkcji: odległość do obiektu w funkcji dysparycji (wg zależności 1.1), przy czym odległość od układu kamer do obiektu należy umieścić na osi rzędnych. Dodatkowo należy wykonać wykres niepewności odwzorowania systemu stereowizyjnego w zależności od wyznaczonej odległości (niepewność odwzorowania umieścić na osi rzędnych), według zależności (1.2). Sporządzone wykresy wyskalować w centymetrach. gdzie: r odległość do obiektu (ang. range), B baza stereowizyjna, d RL dysparycja, f ogniskowa, Ø średnica pojedynczego ziarna matrycy światłoczułej. w którym: Δ niepewność odwzorowania., (1.1) Δ Φ, (1.2) Obliczenia przeprowadzić dla następujących danych: B 50 mm, d RL przedział dysparycji od 0 do (patrz pkt. 3.1), f 5,5 mm, Ø 0,017 mm. Strona 11
5. Sprawozdanie Sprawozdanie musi zawierać: A. Stronę tytułową (w tym: logo uczelni, nazwę przedmiotu, datę wykonania, imię/ imiona oraz nazwisko/ nazwiska osoby lub osób biorących udział w wykonaniu sprawozdania), B. Wygenerowane wykresy odległości do obiektu w funkcji dysparycji oraz niepewności odwzorowania układu stereowizyjnego w zastosowanej architekturze układu stereowizyjnego, C. Zwymiarowaną wraz z odchyłkami (tylko w pionie!) przeszkodę znajdującą się w przestrzeni roboczej fizycznego modelu laboratoryjnej suwnicy (rys. 1.15) pomostowej widoczną na zdjęciach stereowizyjnych, wizualizacja przeszkody przeznaczonej do zwymiarowania z której można skorzystać, znajduje się w pliku workspace.jpg. D. Wnioski. Gotowe sprawozdanie z ćwiczenia w wersji elektronicznej należy umieścić w osobistym repozytorium plików dostępnym po założeniu osobistego konta na stronie: http://home.agh.edu.pl/~hyla/index.php?option=com_comprofiler&task=registers??? Rys. 1.15. Model przeszkód znajdujących się w przestrzeni roboczej urządzenia Strona 12
ANEKS Poszczególne miary podobieństwa zastosowane w procesie wyznaczania dysparycji: LSAD - Locally scaled Sum of Absolute Differences (1.1), LSSD - Locally scaled Sum of Squared Differences (1.2), NCC - Normalized Cross-Correlation (1.3), SAD - Sum of Absolute Differences (1.4), SSD - Sum of Squared Differences (1.5), ZNCC - Zero mean Normalized Cross-Correlation (1.6), ZSAD - Zero mean Sum of Absolute Differences (1.7), ZSSD - Zero mean Sum of Squared Differences (1.8). V U R ( x, y) ( µ +, ν + ) 2 ( ) LSAD( µ, ν ) = R( x, y) S µ + x, ν + y, (1.1) S x y LSSD( µ, ν ) = V U R µ, ν R S µ + x, ν + y, ( ) ( ) S ( µ, ν ) (1.2) V U (, ) ( µ +, ν + ) R x y S x y NCC( µ, ν) =, V U 2 V U 2 (, ) ( µ +, ν + ) R x y S x y y= V x= U V U 2 (1.3) ( ) ( ) (1.4) SAD( µ, ν ) = R x, y S µ + x, ν + y, V U ( ( ) ( )) 2 SSD( µ, ν ) = R x, y S µ + x, ν + y, (1.5) V U ( R( x, y) R ) S( µ + x, ν + y) S ( µ, ν ) ( ) ZNCC( µ, ν) =, V U V U 2 2 ( R( x, y) R ) S( µ + x, ν + y) S ( µ, ν ) y= V x= U ( ) (1.6) V U ( ) ( ( ) ( )) ZSAD( µ, ν ) = R( x, y) R S µ + x, ν + y S µ, ν, (1.7) Strona 13
V U (( ) ( ( ) ( ))) 2 (1.8) ( ) ( ) ZSSD µ, ν = R x, y R S µ + x, ν + y S µ, ν, gdzie: R 1 V U = N y = V x = U (, ) R x y V U 1 S = S + x + y N ( µ, ν ) ( 2 1) ( 2 1) N = V + U + - ilość pikseli w regionie Strona 14