Niniejsze repozytorium zawiera projekt magisterski realizowany w ramach pracy pt. Zastosowanie sztucznych sieci neuronowych w systemach pojazdów autonomicznych autorstwa Patryka Piróg, realizowanej w ramach grupy badawczej ZSDiiZ (Uniwersytet Śląski w Katowicach).
Projekt skupia się wokół zastosowania technik uczenia głębokiego w treningu modeli realizujących zadanie segmentacji semantycznej. Głównym celem projektu jest przygotowanie skryptów w języku Python, które posłużą do treningu, ewaluacji oraz inferencji modeli konwolucyjnych w celu porównania ich wydajności.
Projekt w głównej mierze opiera się na bibliotece segmentation_models.pytorch, która dostarcza sprawne implementacje różnych funkcji strat, metryk, ale również enkoderów oraz pełnych architektur modeli. Do eliminacji boilerplateu wkorzystano bibliotekę pytorch-lightning, a augmentacje realizowane są z wykorzystaniem biblioteki Albumentations, która stanowi standard w branży. Zastosowanie niniejszych biliotek pozywtywnie wpłynęło na wydajność uczenia sieci w stosunku do ręcznych implementacji oraz standardowych rozwiązań biblioteki torchvision.
- A2D2 - zbiór danych grupy VAG, składający się z wielu scen uchwyconych w niemieckich miastach. W skład zbioru wchodzą obrazy
.pngz wielu kamer w rozdzielczości 1920x1208, dane z magistrali CAN oraz LIDARu. - Cityscapes - bardzo popularny zbiór danych w rozważaniu problemu segmentacji, uchwycony na terenie wielu niemieckich miast. Zbiór ten charakteryzuje się bardzo dużą różnorodnością oraz nieco zredukowaną ilością klas (nie obsługuje między innymi oznaczeń poziomych na drodze).
- Zainstalować zależności
pip install -r requirements.txt. - Pobrać ręcznie pełny zbiór danych A2D2, bądź Cityscapes (obrazy oraz maski).
- Rozpakować zbiory danych z użyciem oprogramowania archiwizującego jak np. 7-zip.
- Przenieść rozpakowany folder z każdego archiwum do odpowiednich katalogów wewnątrz
./data/. - Skorzystać z notatnika
usage_notebook.ipynbw celu uruchomienia treningu oraz inferencji.
-
Czy lista
requirements.txtjest kompletna?Lista może nie być kompletna. Zalecane jest ręczne doinstalowanie brakujących zależności.
-
Jak w zasadzie powinna wyglądać struktura plików w katalogu
./data/?W katalogu
./data/znajdują się foldery./data/a2d2oraz./data/cityscapes. Są to katalogi przygotowane dla aktualnie obsługiwanych zbiorów danych:- A2D2 - wewnątrz
./data/a2d2powinien znaleźć się folder o nazwiecamera_lidar_semantic. - Cityscapes - wewnątrz
./data/cityscapespowinny minimalnie znaleźć się foldery o nazwiegtFineorazleftImg8bit. Można również wczytać inne zbiory Cityscapes przeznaczone do segmentacji.
- A2D2 - wewnątrz
-
Dlaczego należy rozpakować zbiór z pomocą np. 7zip?
Eksplorator Plików systemu Windows nie jest zoptymalizowany pod kątem archiwów
.tar. Rozpakowywanie zbioru mogłoby zająć bardzo dużo czasu niezależnie od sprzętu.
@misc{Piróg:2025,
Author = {Patryk Piróg},
Title = {Segmentacja semantyczna w systemach nowoczesnych pojazdów},
Year = {2025},
Publisher = {GitHub},
Journal = {GitHub repository},
Howpublished = {\url{https://github.com/prax19/masters-project}}
}