Prace dyplomowe - propozycje
MENU

Tematyka prac dyplomowych związana jest najczęściej z programowaniem robotów mobilnych, manipulatorów czy innych urządzeń wykonawczych oraz z przetwarzaniem obrazów, zwłaszcza pod kątem wykorzystania informacji wizyjnej do podjęcia jakiegoś działania. Nie znaczy to jednak, że tematy niezwiązane z wyżej wymienionymi zagadnieniami się zupełnie nie zdarzają - są one jednak w mniejszości. Jeżeli Państwo macie jakiś własny pomysł, który chcielibyście zrealizować albo już nad czymś pracujecie i chcielibyście niejako przy okazji "zrobić dyplom", to proszę się ze mną skontaktować. Jestem otwarty na wszelkie inne propozycje, które choć trochę ocierają się o moją wiedzę i zainteresowania. Wszelkie Państwa pomysły zostaną z należytą uwagą rozważone. Proponuję także zapoznać się z pracami zrealizowanymi bądź będącymi w trakcie realizacji.

Materiały do większości proponowanych przeze mnie tematów są u mnie dostępne w postaci sprawozdań, artykułów, książek, a także fragmentów gotowego kodu. Nie oznacza to, oczywiście, że zupełnie nie będzie potrzeby poszukiwania dodatkowych informacji, a wręcz przeciwnie - jednym z wymagań stawianych przyszłemu absolwentowi jest umiejętność odszukania i krytycznego przejrzenia dostępnych materiałów związanych z tematem pracy. Nie jest to zresztą kłopotliwe w dobie Internetu - 99% niezbędnej wiedzy znajdziecie Państwo bez trudu w sieci.

Pragnę zwrócić uwagę, że w trakcie pisania pracy można nieco zmienić jej temat, gdy okaże się, że nasze przewidywania czy oczekiwania co do rozwoju sytuacji się zmienią. Poza tym tematy projektów są często formułowane dosyć ogólnie, aby dać Państwu możliwość wyboru konkretnych problemów do rozwiązania podczas pracy.

Jako język programowania zdecydowanie preferuję C/C++, ale nie jest to warunkiem koniecznym we wszystkich projektach. Jeśli chodzi o przetwarzenie obrazów to sugeruję wykorzystanie jednej z najlepszych (i do tego darmowych) bibliotek do przetwarzania i analizy obrazów jaką jest OpenCV. UWAGA: zazwyczaj nie są wymagane wysokie umiejętności programowania w C++ czy też znajomość tajników przetwarzania obrazów. Wystarczą jedynie podstawy, gdyż większość kodu jest realizowana przez bibliotekę przetwarzania obrazów i nie pociąga to za sobą konieczności tworzenia skomplikowanych aplikacji, a sam kod jest stosunkowo prosty i zbliżony bardziej do standardowego C z elementami obiektowości.

W razie jakichkolwiek pytań zapraszam do pokoju GE-519B lub SK-201 w godzinach konsultacji, a także w innych porach lub o kontakt emailowy.

UWAGA! Większość tematów można realizować w wersji max lub min. Wersja max przeznaczona jest dla osób, którym zależy na bardzo dobrej ocenie z pracy, co wiąże się ze stosunkowo szerokim potraktowaniem tematu. Wersja min kierowana jest do osób, które nie mają zbyt dużo wolnego czasu (np. pracują) lub nie zależy im szczególnie na bardzo dobrej ocenie pracy (bo i tak średnia ze studiów jest niska) i po prostu chcą wypełnić wymagania, ale w minimalnym stopniu.

 

Liczba miejsc jest zdecydowanie OGRANICZONA. Nie jestem w stanie rzetelnie prowadzić więcej niż ok. 10 prac jednocześnie.

 

Propozycje tematów prac magisterskich* (inżynierskie niżej)
*większość prac magisterskich może być realizowana w okrojonej formie jako prace inżynierskie

  1. Automatyczna identyfikacja osób na podstawie analizy obrazów - praca polega na wykorzystaniu i rozszerzeniu gotowego algorytmu wykrywającego twarze ludzkie. Algorytm ten dosyć dobrze radzi sobie z wykryciem twarzy w obrazie, natomiast zupełnie ich nie odróżnia (bo nie był do tego napisany). Zadanie polega na wykorzystaniu ww algorytmu do lokalizacji twarzy oraz jej charakterystycznych cech (położenie oczu, nosa ust itp.), a następnie zaproponowaniu metody (zespołu cech, kalsyfikatora) pozwalającej na odróżnienie osób od siebie (najpierw, oczywiście, należy kalsyfikator "nauczyć"), a może także rozróżnianie płci czy szacunkowe określenie wieku? Dla uproszczenia można założyć, że mamy do czynienia jedynie ze zdrowymi i niezdeformowanymi twarzami osób rasy kaukaskiej (białej). Podobna praca została już zrealizowana przy użyciu pewnego gotowego algorytmu - ta praca polegałaby na stworzeniu własnej metody biometrycznej.
  2. Detekcja i lokalizacja przestrzenna obiektów przez jednokamerowy system wizyjny - praca polega na wykorzytaniu gotowego algorytmu klasyfikacji obiektów do rozpoznania typowych przedmiotów w otoczeniu człowieka, np. kubków, butelek, sztućców, talerzy itp. oraz próby ich lokalizacji w przestrzeni trójwymiarowej względem kamery. Innymi słowy, na podstawie zdjęcia zrobionego w kuchni, program określi, że widać np. kubek i że znajduje się on mniej więcej metr od kamery. Praca ma raczej charakter badawczy, gdyż algorytm istnieje - trzeba go "tylko" przetestować.
  3. Projekt i zastosowanie systemu optycznych czujników odometrycznych do sterowania robotem mobilnym - praca niby zrealizowana, ale w zasadzie zostało wykonane tylko urządzenie (raczej prototyp, ale i tak nie było to łatwą sprawą), brak jest jakichkolwiek badań, a więc nadal jest b.duże pole do popisu. Należy porównać rzeczywiste wyniki pomiarów przesunięcia i obrotu obiektu (pytanie: jak je zmierzyć?) z tymi otrzymanymi przez zespół czujników. Niestety czujniki (tanie myszki optyczne) zachowują się niezgodnie z oczekiwaniami (przekłamują przy ruchu w jedną stronę) - należałoby je wymienić na inne (albo skompensować błędy, o ile są to błędy systematyczne) i dopiero przeprowadzić badania. Aby zastosować to do rzeczywistego robota konieczne jest użycie miniaturowych soczewek (które należy dobrać do zestawu i precyzyjnie zamontować, niemniej ten etap nie jest konieczny).
  4. Rozpoznawanie dłoni i gestów w czasie rzeczywistym  - praca polega na zastosowaniu gotowego algorytmu identyfikacji kolorów i segmentacji obrazu do rozpoznania charakterystycznej barwy ludzkiej skóry i identyfikacji dłoni umieszczonej przed kamerą. Kolejnym celem jest rozpoznania podstawowych gestów czy układów dłoni, najlepiej w czasie rzeczywistym. Praca jest niby w trakcie realizacji, ale dyplomant zaginął, więc temat staje się wolny. Warto zerknąć na zrealizowany projekt indywidualny, który miał być rozwijany w ramach pracy magisterskiej.
  5. Sterowanie grupą robotów mobilnych w systemie z wizyjnym sprzężeniem zwrotnym - praca polega na zastosowaniu prostego algorytmu przetwarzania obrazów do lokalizacji niewielkich robotów mobilnych, a także do ich możliwie precyzyjnego sterowania. Algorytm jest gotowy w wersji prototypowej. W ogólności chodzi o to, by obserwować znaczniki umieszczone na robotach za pomocą kamery podsufitowej i na tej podstawie wyznaczać pozycję robotów.
  6. Śledzenie nieznanych obiektów w sekwencjach obrazów - w trakcie realizacji, ale jest jeszcze dużo innych metod do zbadania i opisania - praca polega na dokonaniu przeglądu metod śledzenia obiektów i wykorzystaniu jednej z nich do śledzenia obiektów w sekwencjach obrazów
  7. Zastosowanie systemu wizyjnego do wykrywania pozostawionego bagażu - praca polega na zaproponowaniu algorytmu wykrywającego pozostawiony bagaż - potencjalne źródło zagrożenia. Metoda wykrywania takiego bagażu sprowadza się do wykrycia obszaru w obrazie, który trwale zmienił swój wygląd. Wystarczy zatem odejmować kolejne klatki z filmu od klatki wzorcowej (dla pustej sali), by stwierdzić, że fragmenty obrazu, które różnią się od wzorca zawierają nowe elementy. Jeśli teraz taki nowy element powtarza się przez ustalony czas, należy się jemu dokładnie przyjrzeć (wysłać kogoś z obsługi) - to może być zgubiona czy podrzucona walizka, ale też może to być śpiący pasażer.
    Wykorzystanie systemu wizyjnego do automatycznej analizy ruchu ulicznego - praca polega na wykorzystaniu jednego lub kilku algorytmów do rozpoznawania pojazdów w ruchu ulicznym, modyfikacji wybranego algorytmu oraz analizie skuteczności. Celem jest np. zliczanie pojazdów. Jak wykryć pojazdy? Można wykryć tablice rejestracyjne, można użyć metody różnicowej (opisanej wyżej), możne użyć gotowych klasyfikatorów, przepływu optycznego itp.
  8. Zastosowanie analizy obrazów do filtracji graficznej zawartości stron WWW - praca polega na wykorzystaniu gotowego algorytmu do wyszukania pewnych charakterystycznych obrazów na stronach WWW (np. erotyki) i ich wykasowania. Można do tego dodać detekcję ludzkiej skóry. Tylko jak rozróżnić kulturystę od roznegliżowanej modelki?
  9. Zastosowanie metod porównywania obrazów cyfrowych do klasyfikacji i wyszukiwania obrazów w bazie danych - praca polega na wykorzystaniu algorytmów do porównywania obrazów (opartych na bezpośrednim porównywaniu pikseli, porównywaniu histogramów itp) do wyszukiwania podobnych obrazów do danego z całej bazy danych. Przykładowym zadaniem może być znalezienie wśród wszystkich obrazów tych, które przedstawiają nadmorską plażę albo do znalezienia podobnych scen w filmie.
  10. Zastosowanie stereowizji do przestrzennej lokalizacji obiektów - praca polega na zastosowaniu kamery stereowizyjnej  do wykrywania obiektów w polu widzenia kamer. Kamera stereowizyjna zwraca obraz, którego piksele oznaczają odległość do obserwowanych przedmiotów - jeśli zatem na obrazie przed pojawią się jasne piksele, będzie to oznaczać występowanie jakiegoś przedmiotu w niewielkiej odległości od kamer. Problemem do rozwiązania jest opracowanie metody porównywania otrzymanych obrazów stereowizyjnych różnych obiektów z ich wzorcami.
  11. Opracowanie odpornego algorytmu rozpoznawania tablic rejestracyjnych - na ten temat powstało już kilka prac, ale żaden z ich autorów nie opracował naprawdę odpornego algorytmu rozpoznawania tablic rejestracyjnych. Opierając się na doświadczeniach oprzednich dyplomantów należy opracować ulepszoną, skuteczniejszą wersję algorytmu. Jest kilka wariantów: rozpoznawanie w ruchu ulicznym (fotoradary), stacjonarne (na bramkach wjazdowych, stacjach benzynowych), w ruchu śledzącym (obraz z kamery wozu policyjnego jadącego za obserwowanym pojazdem). Istotne jest jedno: algorytm ma działać skutecznie i szybko. I to jest główna trudność.
  12. Wykorzystanie stereowizji do planowania ruchu manipulatora - praca plega na zastosowaniu kamery stereowizyjnej (zwracającej mapę odległości obserwowanej sceny) do lokalizacji obiektów w przestrzeni roboczej manipulatora, ich uchwyceniu i przemieszczeniu. Przykładem takiej aplikacji może być zagadnienie odkręcania butelki i nalewania wody do szklanki czy też chwytania dowolnego obiektu (który da się uchwycić) pojawiającego się w polu widzenia. Sprawa nie wydaje się trudna, jeśli założyć, że geometria podłoża jest znana, a to można założyć: na (płaskim) stole, nad którym wisi kamera pojawia się jakiś mały obiekt. Dokąd przemieścić szczękę manipulatora i jak ją obrócić, by chwycić ten obiekt?
  13. Zastosowanie analizy obrazów do oceny stopnia zmęczenia kierowcy - praca polega na zastosowaniu gotowej biblioteki przetwarzania obrazów do lokalizacji twarzy kierowcy i oceny stopnia jego zmęczenia na podstawie stosunku czasu, w którym oczy są otwarte i zamknięte (a jak ma okulary przeciwsłoneczne to co?). Algorytm wykrywania głowy jest gotowy, pozostaje wykrycie oczu (np. tą samą metodą, tylko trzeba dorobić model oka) i sprawdzenie jak długo jest zamknięte i otwarte.
  14. Analiza punktu spojrzenia - praca polega na analizie obrazów oka zrobionych za pomocą specjalnych okularów. Celem analizy jest dokładne wyznaczenie pozycji źrenicy, co z kolei może być przeliczone na współrzędne punktu skupienia wzroku na ekranie.
  15. System wykrywania plagiatów - praca polega na wykorzystaniu i modyfikacji gotowych algorytmów porównywania tekstów i opracowaniu aplikacji wspomagającej wykrywanie plagiatów. Wydaje się, że temat będzie wolny, gdyż dyplomant zaginął.
  16. System dialogowy - w trakcie realizacji, ale spokojnie można to zrobić jeszcze raz, tylko inaczej   - praca polega na dokonaniu przeglądu istniejących systemów dialogowych (sztucznego rozmówcy) oraz opracowaniu własnej propozycji takiego systemu. Praca jest dosyć czasochłonna - możliwość podejścia dwuosobowego.
  17. Wykrywanie i usuwanie reklam z programów telewizyjnych - praca polega na zaproponowaniu algorytmu usuwającego reklamy przerywające filmy. Bloki reklamowe charakteryzują się nieco wyższą głośnością oraz specyficznym obrazem początkowym i końcowym, które to należy wykryć. Ewentualnością jest wskazanie algorytmowi jakich obrazów ma poszukiwać, z tym że proces uczenia należałoby przeprowadzać dla każdego kanału i po każdorazowej zmianie strony graficznej reklam, co jest dosyć uciążliwe.
  18. Wizyjny system lokalizacji przestrzennej z wykorzystaniem znaczników - praca polega na zastosowaniu gotowego algorytmu do rozpoznawania znaczników geometrycznych w celu ich lokalizacji w przestrzeni. Należy zbadać z jaką precyzją lokalizowane są znaczniki. Badania należy powtórzyć dla szeregu zaproponowanych znaczników różniących się kształtem i/lub kolorem. Celem pracy jest znalezienie znacznika pozwalającego na pomiar jego położenia i orientacji w przestrzeni z maksymalną dokładnością i/lub w maksymalnym zakresie. Znaczniki takie stosuje się np. w piłce nożnej robotów, gdzie kamera patrząca z góry na roboty identyfikuje je i ocenia ich położenie. Praca ma być rozszerzeniem tego zagadnienia.
  19. System automatycznej selekcji zdjęć - celem pracy jest zaproponowanie algorytmu wybierającego najlepsze ujęcie z serii. Współczesne cyfrowe aparaty fotograficzne umożliwiają wykonywanie mnóstwa zdjęć, często robi się ich kilka w danym momencie, aby potem wybrać to najlepsze, najostrzejsze, itp. Część z tych operacji można zautomatyzować (wykrywanie scen, ostrości zdjęcia, zamkniętych oczu, automatyczna redukcja czerwonych oczu itp.)

 

Propozycje tematów prac inżynierskich* (magisterskie wyżej)
*część prac inżynierskich może być realizowana w rozszerzonej formie jako prace magisterskie

Większość praktycznych prac inżynierskich opiera się na gotowym kodzie i polega na jego uruchomieniu, przetestowaniu i opisaniu uzyskanych rezultatów.

  1. Przetwarzanie obrazów na urządzeniach mobilnych - praca przeglądowa oraz przykład implementacji (dobre źródło: http://studierstube.icg.tu-graz.ac.at/thesis/Wagner_PhDthesis_final.pdf).
  2. Projekt optymalnej trajektorii ruchu dla roboodkurzacza - praca praktyczna (w domu lub w laboratorium) - jak powinien poruszać się prosty robot dwukołowy w pomieszczeniu o nieznanej geometrii, nie mający mapy tego pomieszczenia i nie znający swego położenia, by równomiernie pokrył całą powierzchnię tego pomieszczenia? Test kilku różnych algorytmów.
  3. Budowa klasyfikatora i weryfikacja jego działania  - praca praktyczna (w domu) - praca polega na zrobieniu 1000 (może 5000?) zdjęć danego obiektu (np. kubka) w różnych warunkach oświetleniowych, uruchomieniu gotowego oprogramowania budującego na podstawie tych zdjęć klasyfikator, a następnie sprawdzaniu jak taki klasyfikator rozpoznaje nowe zdjęcia tego samego lub podobnych obiektów.
  4. Implementacja i analiza wydajności szybkiego algorytmu segmentacji obrazów - praca praktyczna (w domu) - dla programisty C. Algorytm jest gotowy, kod jest dostępny, ale trzeba go nieco przerobić, uruchomić i przetestować.
  5. Rozpoznawanie prostych wzorów geometrycznych w zmiennych warunkach oświetleniowych - praca praktyczna (w domu). Problem wydaje się prosty, ale prosty nie jest. Czarna plansza, zawierająca 4 białe kwadraty (albo odwrotnie) jest dla człowieka wyraźna praktycznie w każdych warunkach. Celem pracy jest zaprojektowanie takiego sposobu filtrowania i progowania obrazu, by możliwie w każdych warunkach owa plansza była znaleziona w obrazie przez komputer. Część kodu już istnieje.
  6. Optymalizacja korelacyjnej metody przeszukiwania obrazów - praca praktyczna (w domu). Metoda przeszukiwania obrazów w celu znalezienia wzorca jest czasochłonna, gdyż polega na sprawdzaniu obrazu piksel po pikselu. Tymczasem można zastosować znane metody optymalizacyjne, które znacznie przyspieszą cały proces. Praca wymaga umiejętności programowania w C.
  7. Symulacja zespołu robotów w Microsoft Robotics Studio - praca praktyczna (w domu).
  8. Kalibracja robota mobilnego o napędzie różnicowym - praca praktyczna (w laboratorium). Doświadczalne dobranie kilku parametrów dla robota mobilnego, którego celem jest spowodowanie by jadąc prosto robot faktycznie jechał prosto, a skręcając o 90 stopni, skręcał faktycznie o 90 stopni. Praca raczej dla 2 osób posiadających laptopa - konieczność realizacji czy może tylko weryfikacji w Aulii PW (w laboratorium jest za mało miejsca).
  9. Kalibracja kamery o zmiennej ogniskowej - praca praktyczna (w laboratorium). Praca podobna do nr 11, ale tym razem mamy do czynienia z kamerą z zoomem. A więc należy przeprowadzić procedurę kalibracji dla kilku nastaw zoomu i sprawdzić wyniki.
  10. Analiza wpływu kształtów i rozmiarów znaczników geometrycznych na dokładność ich lokalizacji w przestrzeni - praca praktyczna (raczej w laboratorium) - badanie wydajności biblioteki ARToolkit zbliżone do tego: http://www.hitl.washington.edu/artoolkit/documentation/benchmark.htm
  11. Wykorzystanie biblioteki ARToolkit do... - praca praktyczna (może być w domu) - do... jednego z takich projektów: http://www.hitl.washington.edu/artoolkit/projects/ albo do jeszcze czegoś innego. Dla programisty C.
  12. Optymalizacja wzoru dla aktywnej stereowizji - praca polega na zastosowaniu kamery stereowizyjnej do budowy mapy głębi otoczenia (jest do tego gotowe oprogramowanie). metoda stereowizyjne nie sprawdza się w przypadku bardzo jednolitych obiektów (np. ścian, jednolitego podłoża itp), ale można jej "pomóc" rzucając na obiekt jakiś wzór świetlny, który wprowadzi pewne cechy łatwe do rozpoznania przez algorytm stereowizyjny. Praca powinna odpowiedzieć na pytanie: jaki wzór jest najlepszy i jak bardzo zwiększa precyzję odczytu głębi?

 

Copyright © 2012 Witold Czajewski