Repozytorium PJATK

Uczenie przez transfer za pomocą biblioteki TensorFlow Object Detection API na potrzeby detekcji uszkodzeń drogowych

Repozytorium Centrum Otwartej Nauki

Pokaż uproszczony rekord

dc.contributor.author Wiatr, Michał
dc.date.accessioned 2021-08-24T07:40:45Z
dc.date.available 2021-08-24T07:40:45Z
dc.date.issued 2021-08-24
dc.identifier.issn 2021/M/AM/1
dc.identifier.uri https://repin.pjwstk.edu.pl/xmlui/handle/186319/935
dc.description.abstract Niniejsza praca dyplomowa magisterska poświęcona jest budowie wydajnego modelu detekcji obiektów z wykorzystaniem bogatej biblioteki TensorFlow Object Detection. Zbiór danych zbudowany jest z kilku tysięcy zdjęć uszkodzeń drogowych. Dodatkowo, ze względu na złożoność tematyki, zamieszczono w pracy zagadnienia związane z uczeniem maszynowym i głębokimi sieciami neuronowymi. Skupiono się także na przybliżeniu specyfiki pracy w środowisku TensorFlow. Praca została podzielona na rozdziały studialne oraz na rozdziały projektowe. Pierwsza część skupia się na przybliżeniu ostatnich osiągnieć z zakresu wizji komputerowej, czyli jednej z najbardziej dynamicznie rozwijających się w ostatnich latach gałęziach nauki. Następnie przedstawiona jest teoria ściśle powiązana z przeprowadzanymi badaniami. Przedmiotem kolejnych fragmentów pracy dyplomowej – projektowych – jest przygotowanie środowiska obliczeniowego, przygotowanie zbioru danych oraz opracowanie procesu trenowania przez transfer oraz ewaluacji modeli detekcji obiektowej. W rozdziałach od 1. do 3. przedstawiany jest obecny stan wiedzy naukowej z zakresu wizji komputerowej. Prezentuje się krótką historię przetwarzania obrazów – burzliwe początki oraz opis niesamowicie dynamicznego rozwoju tej domeny. Uczenie maszynowe oraz sieci neuronowe stanowią bardzo rozbudowaną tematykę, a do właściwego jej zrozumienia niezbędne jest posiadanie wymaganego kontekstu badawczego oraz pojęć z zakresu computer vision. Następnie wyodrębnia się istniejące rodzaje problemów w zadaniach wizji komputerowej i eksponuje się obecne zastosowania. Kolejną, istotną część stanowią matematyczne podstawy stojące za sieciami neuronowymi. Podwaliny obliczeniowe są punktem wyjścia do dyskusji o budowie dzisiejszych modeli, stosowanych rodzajach warstw i wreszcie - wykorzystywanych funkcjach aktywacji. Ostatnie rodzaje teoretyczne stanowią już właściwy wstęp do głównego zagadnienia pracy. Wpierw z dużą większą dokładnością, niż miało to wcześniej miejsce, opisuje się na czym tak właściwie polega detekcja obiektów. Opisywane są wyzwania, przed jakimi stają modele, których zadaniem jest odnajdywanie oraz oznaczanie obiektów na zdjęciach. Następnie wymieniane są główne miary, które służą do oceny wydajności takich modeli. Wspomina się między innymi o Intersection over Union (IoU), sposobach wyliczania czułości oraz precyzji (recall i precision) i najważniejszej z miar z punktu widzenia niniejszej pracy, czyli mAP – mean Average Precision. To ostatnie stanowi uniwersalny wskaźnik dokładności algorytmów detekcji, wykorzystywany jak standard do porównywania poszczególnych architektur w środowisku naukowym. Architektury te ( a właściwie meta-architektury), stanowią także główny temat kolejnych akapitów. Wymieniane są najważniejsze cechy każdej z najbardziej popularnych implementacji oraz podkreśla się unikalne charakterystyki każdej z nich. Najwięcej miejsca poświęca się tzw. modelom one-hot – najszybszym i najbardziej wydajnym obliczeniowo. Struktury tworzone w oparciu o Single Shot Detector oraz EfficientNet, który wyszedł spod ręki Google, stanowią bowiem punkt wyjścia dla prowadzonych w pracy badań. W następnej części umieszczono wyczerpujący opis architektury TensorFlow, zbudowanej na jego podstawie TensorFlow Object Detection API oraz najważniejszych ich elementów, które sprawiają, że frameworki te zyskują na popularności wśród społeczności skupionej wokół projektów opartych o głębokie sieci neuronowe. Miejsce poświęcone jest także pulpitowi TensorBoard, wyświetlającemu postępy treningu oraz ewaluacji sieci, którego możliwości okazały się nieocenione przy opracowywaniu tematu. Dalej przedstawiane są sposoby uczenia przez transfer z wykorzystaniem przedtrenowanych na zbiorze COCO modeli. Użycie algorytmów ze wstępnie ustalonymi wagami pozwala zaoszczędzić zasoby i osiągnąć zadowalającą skuteczność detekcji w dużo mniejszym czasie. Korzysta się wtedy ze zjawiska związanym z mrożeniem wag w wybranych warstwach. Posiadając model już uczony na jednym problemie detekcji, można użyć go do kompletnie innego zagadnienia z tej samej dziedziny przy wykorzystaniu jego umiejętności wykrywania cech niższego poziomu. Dalej zaprezentowana jest aplikacja Anaconda, która jest wygodną dystrybucją jeżyka Python. Jej główną funkcją jest możliwość tworzenia wielu niezależnych środowisk, które można traktować trochę jak oddzielne, odseparowane kontenery. Nic nie stoi na przeszkodzie, by zainstalować na nich wykluczające się biblioteki. Pozwoliło to przetestować i dobrać stabilne wersje TensorFlow oraz ODA. Ostatni rozdział skupia się już na projekcie. Pierwsza jego część przeprowadza czytelnika najpierw przez zbiór danych. Opisywane są elementy z których został stworzony – stanowi on bowiem syntezę kilku zbiorów, skupionych wokół pojedynczego tematu uszkodzeń w nawierzchni jezdnej. Wskazuje przy tym na jego kompleksowość oraz, odwołując się do dostępnej literatury, prezentuje także potencjalne problemy z jakimi trzeba będzie się zmierzyć. Po wstępnej analizie, pokazywane są też pewne niekonsekwencje zauważalne w zbiorze, na przykład w kwestii adnotacji. Po przybliżeniu wykorzystanych w badaniu danych, przedstawiony jest opis przygotowania środowiska obliczeniowego. Wyczerpująco omówione są kwestie wykorzystanych w pracy bibliotek języka Python. Następnie miejsce poświęcone jest instalacji oraz konfiguracji frameworka TensorFlow oraz interfejsu Object Detection API. Pracę traktować można jak kompendium, w którym zebrano wszystkie doświadczenia oraz praktyczną wiedzę związaną z budowaniem środowiska do uczenia przez transfer. Wyszczególnione są bowiem konkretne korki jakie trzeba podjąć, starając się stworzyć stabilny i działający system do obliczeń związanych z modelami do detekcji obiektów. Skrypty do konwersji Po wstępnym spreparowaniu środowiska wprowadzony jest opis konfiguracji dostępnych z poziomu interfejsu TensorFlow Object Detection. Prezentowane są wszystkie dostępne opcje ustawień szkolenia oraz powiązanych plików. W części tej wydzielić można dwa najważniejsze etapy. Pierwszy skupia się na pokazaniu podstawowych zmian jakie trzeba wprowadzić, żeby można było rozpocząć jakąkolwiek dyskusję o treningu oraz ewaluacji modeli dostępnych w ramach TensorFlow Model Zoo. Zaprezentowane są wszystkie korki, które umożliwią jednorazowe uruchomienie szkolenia. Taki początkowy „bieg” traktować należy jako bazę porównawczą do wprowadzania kolejnych, bardziej zaawansowanych zmian w konfiguracji treningu. Następny etap praca to krótkie podsumowanie schematu badawczego. Pomimo zbudowania bardzo dużej ilości modeli, każdy musiał przejść przez podobne etapy w tej samej, standardowej kolejności. Przybliża się więc cały proces logiczny takiego testowania, wraz z uproszczonym flowchart’em obrazujący następujące po sobie kroki. Uwidaczniane są także skrypty, które pozwalały na przyspieszenie całego przetwarzania. Po pokazaniu jak wyglądała pętla procesowa, potrzebna do prowadzenia badań, w kolejnych akapitach opisuje się już właściwe rezultaty projektu. Rozpoczyna się od wskazania różnic w dwóch, odmiennych podejściach do problemu. Dla każdego z zagadnień prezentowane są też kroki, jakie zdecydowano się podjąć po otrzymaniu początkowych wyników badania. Pojawia się więc wyczerpujący opis podejść oraz sposobów poprawy osiąganych przez modele rezultatów. Skupiano się przy tym na śledzeniu postępów za pośrednictwem miary mean Average Precision, powszechnie stosowanej w środowisku. Omówione są również wyniki ewaluacji oraz pokazanych kilka interesujących przypadków. Dyskusję na temat rezultatów zamyka podsumowanie, w którym omawiane są wszystkie osiągnięte rezultat. Przede wszystkim uwaga skupiona jest na zbiorze danych i wynikających z niego konsekwencjach. Ponadto omawia się kolejne potencjalne usprawnienia, jakie można byłoby zastosować przy badaniach w przyszłości. pl_PL
dc.language.iso other pl_PL
dc.relation.ispartofseries ;Nr 5992
dc.subject Detekcja obiektów pl_PL
dc.subject TensorFlow pl_PL
dc.subject SSD pl_PL
dc.subject EfficientNet pl_PL
dc.subject zniszczenia drogowe pl_PL
dc.subject wizja komputerowa pl_PL
dc.subject przetwarzanie obrazów pl_PL
dc.title Uczenie przez transfer za pomocą biblioteki TensorFlow Object Detection API na potrzeby detekcji uszkodzeń drogowych pl_PL
dc.type Thesis pl_PL


Pliki tej pozycji

Plik Rozmiar Format Przeglądanie

Nie ma plików powiązanych z tą pozycją.

Pozycja umieszczona jest w następujących kolekcjach

Pokaż uproszczony rekord

Szukaj


Szukanie zaawansowane

Przeglądaj

Moje konto