Skip to content

prax19/masters-project

Repository files navigation

Segmentacja semantyczna w systemach nowoczesnych pojazdów

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.

Testowane zbiory danych

  • A2D2 - zbiór danych grupy VAG, składający się z wielu scen uchwyconych w niemieckich miastach. W skład zbioru wchodzą obrazy .png z 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).

Instrukcja uruchomienia

  1. Zainstalować zależności pip install -r requirements.txt.
  2. Pobrać ręcznie pełny zbiór danych A2D2, bądź Cityscapes (obrazy oraz maski).
  3. Rozpakować zbiory danych z użyciem oprogramowania archiwizującego jak np. 7-zip.
  4. Przenieść rozpakowany folder z każdego archiwum do odpowiednich katalogów wewnątrz ./data/.
  5. Skorzystać z notatnika usage_notebook.ipynb w celu uruchomienia treningu oraz inferencji.

FAQ przy instalacji

  • Czy lista requirements.txt jest 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/a2d2 oraz ./data/cityscapes. Są to katalogi przygotowane dla aktualnie obsługiwanych zbiorów danych:

    • A2D2 - wewnątrz ./data/a2d2 powinien znaleźć się folder o nazwie camera_lidar_semantic.
    • Cityscapes - wewnątrz ./data/cityscapes powinny minimalnie znaleźć się foldery o nazwie gtFine oraz leftImg8bit. Można również wczytać inne zbiory Cityscapes przeznaczone do segmentacji.
  • 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.

Cytowanie

@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}}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published