AI/environment.md

37 lines
2.5 KiB
Markdown
Raw Normal View History

2020-04-05 18:31:11 +02:00
# Raport działania środowiska
-----
### Założenia projektu
Projekt ma przedstawiać działanie niektórych aspektów sztucznej inteligencji na podstawie inteligentnego magazynu. Naszym agentem jest wózek widłowy poruszający się po kracie.
### Podprojekty
* Rozpoznawanie cech paczki na podstawie zdjęcia (uczenie sieci neuronowych). W dowolnym momencie działania programu będzie można dodać zdjęcie paczki, która zostanie przeanalizowana pod kątem jego cech. Następnie zostanie przekazane do rozłożenia na magazynie za pomocą kolejnego podprojektu, lub ręcznie, w zależności od wyboru użytkownika. Wykorzystane zostaną do tego biblioteki YOLOv3 oraz OpenCV.
* Wykorzystanie uczenia drzew decyzyjnych do decydowania na które regały rozmieścić paczkę, na podstawie jej cech. Zbiór uczący byłby wyznaczany za pomocą algorytmu na początku działania każdego programu, ponieważ musiałby się on dostosować do konktretnych warunków podanych przez użytkownika. Następnie po wciśnięciu konkretnego przycisku, drzewo decyzyjne decydowałoby w którą konkretną lokalizację umieścić przesyłkę. Wykorzystana zostanie biblioteka sklearn.
### Wykonanie
Do wykonania projektu w głównej mierze wykorzystany został język Python 3, wraz z bibliotekami:
* easygui - biblioteka użyta głównie przy starcie programu w celu pobrania od użytkownika wielkości kraty oraz ilości konkretnych regałów, ale również później do wyświetlania krótkich komunikatów.
* pygame - biblioteka użyta to wizualnej reprezentacji kraty wraz z agentem.
* YOLOv3 - Biblioteka użyta do rozpoznawania cech paczki.
* OpenCV - Biblioteka użyta do rozpoznawania cech paczki.
* sklearn - Biblioteka do obsługi drzew decyzyjnych.
2020-04-05 19:11:46 +02:00
### Klasy programu
Klasy projektu:
* Generate (z pliku generate.py) - Klasa służąca do generowania mapy.
* MainWindow (z pliku program.py) - Klasa służąca do wyświetlenia okna. Klasa ta zawiera również główną pętlę programu.
* Box (z pliku box.py) - klasa reprezentująca paczkę.
Klasy przedstawiające obiekty na kracie:
* BoxOnTheFloor (z pliku boxOnTheFloor.py) - Klasa przedstawiająca paczkę leżącą na kracie.
* Floor (z pliku floor.py) - Klasa przedstawiająca podłogę na kracie.
* Shelf (z pliku shelf.py) - Klasa przedstawiająca regał na kracie.
* UnboxOnTheFloor (z pliku unboxOnTheFloor.py) - Klasa przedstawiająca miejscę do odkładania paczek na kracie.
* Wall (z pliku wall.py) - Klasa przedstawiająca ścianę na kracie.
* Wheel (z pliku wheel.py) - Klasa przedstawiająca wózek widłowy na kracie.