Skrypt napisany w języku Python wykorzystuje sieci neuronowe konwolucyjne (CNN) do rozpoznawania znaków drogowych na zdjęciach.
-
Importowanie wymaganych bibliotek: Importowanie niezbędnych bibliotek takich jak NumPy, Pandas, Matplotlib, OpenCV, TensorFlow, PIL i inne, niezbędnych do przetwarzania obrazów i zadań związanych z uczeniem głębokim.
-
Funkcje programu: Definicje funkcji wykorzystywanych do określonych zadań w programie.
-
Parametry programu: Parametry wykorzystywane do konfiguracji wykonania programu.
WAŻNE: Należy wskazać ścieżkę bezwględną do katalogu projektu utworzonego w sekcji Użycie -
Parametry modelu: Parametry wykorzystywane do uczenia modelu.
-
Trening modelu: Główna część programu służąca do wyuczenia modelu na danych treningowych. WAŻNE: Jeśli w danej lokalizacji (w podpolderze 'trening' katalogu projektu) istnieje model o danej nazwie, to wykona się kod odpowiedzialny za ocenę jakości modelu na próbce testowej (katalog 'Test')
-
Testowanie na nowych danych: Ładowanie zestawu testowego, prognozowanie klas za pomocą wytrenowanego modelu i obliczanie dokładności modelu na danych testowych.
-
Zapis i wczytywanie modelu: Zapisanie wytrenowanego modelu do pliku oraz jego wczytanie w celu późniejszego użycia.
-
Prognozowanie na obrazie użytkownika: Funkcja, która przyjmuje obraz przesłany przez użytkownika, przetwarza go i przewiduje klasę znaku drogowego za pomocą wytrenowanego modelu.
Aby użyć skryptu w środowisku Windows należy wykonać poniższe kroki w terminalu cmd lub Powershell:
- Należy utworzyć katalog projektu i skopiować do niego pliki projektu
mkdir Projekt
cd Projekt
skopiować pliki projektu : git clone https://github.com/Penteusz/python-traffic-signs-classification.git (wymaga zainstalowania aplikacji git) lub pobrać spakowane pliki (.zip) z repozytorium i je rozpakować w katalogu "Projekt" - zostanie utworzony folder o nazwie "python-traffic-signs-classification" zawierający pliki projektowe - Należy wejść do folderu "python-traffic-signs-classification" i utworzyć w nim środowisko wirtualne
python -m venv .\env\traffic-signs
* Jeśli domyśłnie używana jest inna wersja pythona, należy zainstalować wersję 3.8.x i utworzyć środowisko podając ścieżkę do pliku wykonywalego python w wersji 3.8.x np: C:\Users\...\Python\Python38\python.exe -m venv .\env\traffic-signs - Należy aktywować środowisko wirtualne
.\env\traffic-signs\Scripts\activate - Zainstalować wymagane biblioteki:
pip install -r requirements.txt --no-cache-dir - Utworzyć kernel, który zostanie użyty do wykonania programu:
python -m ipykernel install --user --name=traffic-signs - Uruchomić jupyter notebook:
jupyter notebook - Po uruchomieniu jupyter notebook w przeglądarce internetowej należy wybrać plik "traffic_signs_recognition.ipynb"
- W zakładce "Kernel" w panelu górnym wybrać Change kernel a następnie wskazać traffic-signs
- W pliku projektu "traffic_signs_recognition.ipynb" w sekcji Parametry programu należy zmodyfikować ścieżkę projektu (bezwzględną) project_path, aby wskazywała na katalog "Projekt\python-traffic-signs-classification".
- W celu modyfikacji parametrów dotyczących modelu można dostosowywać parametry modelu tj. epochs, batch size w sekcji Parametry programu
Program można wykonywać sekwencyjnie - komórka po komórce - albo w całości wybierając na górnym pasku Cell->Run All
- Python 3.8
- Biblioteki: numpy, Pillow, Keras, tensorflow, matplotlib, jupyter, ipykernel (dokładna specyfikacja w pliku requirements.txt)