fix paths in raports
This commit is contained in:
parent
84e47b1c96
commit
db402d3d71
@ -13,9 +13,9 @@
|
||||
- w projekcie wykorzystane zostały drzewa decyzyjne jako metoda uczenia
|
||||
- projekt podzielony jest na 4 pliki
|
||||
- plik tworzenie_danych_AO.py jest odpowiedzialny za wydobycie z każdego zdjęcia własności i zapis ich do pliku
|
||||
![4](resources/screenShots/adamo4.png)
|
||||
![4](../screenShots/adamo4.png)
|
||||
- w pliku uczenie_adamO.py znajdują się funkcje odpowiedzialne za uczenie i testowanie modelu
|
||||
![5](resources/screenShots/adamo5.png)
|
||||
![5](../screenShots/adamo5.png)
|
||||
- plik parametry_zdjec.h5 zawiera własności wszystkich zdjęć wykorzystanych w projekcie
|
||||
- plik etykiety.h5 zawiera odpowiedni typ każdego ze zdjęć (glass,paper,plastic,metal)
|
||||
|
||||
@ -31,31 +31,31 @@ histogram = wyznaczHistogram(zdj)
|
||||
```
|
||||
- wybrane własności to:
|
||||
1. Histogram kolorów okreslający rozkład jasności pixeli w każdej komórce na zdjęciu w skali szarości
|
||||
![6](resources/screenShots/adamo6.png)
|
||||
![6](../screenShots/adamo6.png)
|
||||
zdjęcie jest przekształcane do przestrzeni barw hsv
|
||||
po czym wyliczany jest histogram podając do funkcji zdjęcie, kanały (hsv), maskę, podział zdjęcia na 512 przedziałów (8x8x8), zakres każdego kanału
|
||||
2. Momenty obrazu (Hu Moments) określające kształt obiektu na zdjęciu
|
||||
![8](resources/screenShots/adamo8.png)
|
||||
![8](../screenShots/adamo8.png)
|
||||
są średnią ważoną intensywności pikseli obrazu.
|
||||
Są liczone ze wzoru:
|
||||
![10](resources/screenShots/adamo10.png)
|
||||
![10](../screenShots/adamo10.png)
|
||||
gdzie I(x,y) to intensywność pixela w danym punkcie
|
||||
*Momenty surowe* - informują o intensywności pikseli i ich położeniu na obrazie
|
||||
*Momenty centralne* - otrzymujemy po odjęciu od momentów surowych środka ciężkości danego kształtu
|
||||
![11](resources/screenShots/adamo11.png)
|
||||
![11](../screenShots/adamo11.png)
|
||||
momenty te są niezmienne w wyliczaniu to znaczy że jeśli kształt jest ten sam to nie ważne jest jego położenie na zdjęciu
|
||||
*Momenty Hu* - to zbiór 7 liczb obliczonych na podstawie momentów centralnych.
|
||||
Pierwsze 6 momentów są niezmienne dla translacji, skali i rotacji.
|
||||
Podczas gdy znak siódmej liczby zmienia się wraz z odbiciem kształu (względem osi).
|
||||
![12](resources/screenShots/adamo12.png)
|
||||
![12](../screenShots/adamo12.png)
|
||||
|
||||
3. Tekstura Haralicka określająca nasycenie ilości pixeli w skali szarości
|
||||
![7](resources/screenShots/adamo7.png)
|
||||
![7](../screenShots/adamo7.png)
|
||||
"Haralick zasugerował zastosowanie macierzy współwystępowania poziomu szarości (GLCM).
|
||||
Ta metoda opiera się na połączonych rozkładach prawdopodobieństwa par pikseli.
|
||||
GLCM pokazuje, jak często każdy poziom szarości występuje w pikselach umieszczonych w ustalonym położeniu
|
||||
geometrycznym względem siebie, w zależności od poziomu szarości."
|
||||
![13](resources/screenShots/adamo13.png)
|
||||
![13](../screenShots/adamo13.png)
|
||||
|
||||
- własności sa zapisywane jako macierze, ustawiane w szereg jako wiersz i zapisywane do pliku z danymi .h5
|
||||
```
|
||||
@ -78,7 +78,7 @@ estymator domyślnie korzysta ze strategii opierającej się o indeks Giniego
|
||||
'indeks Giniego jest to miara która określa jak często losowo wybrany element zostanie błędnie zidentyfikowany'
|
||||
```
|
||||
indeks jest obliczany ze wzoru:
|
||||
![9](resources/screenShots/adamo9.png)
|
||||
![9](../screenShots/adamo9.png)
|
||||
[przykład](https://www.geeksforgeeks.org/decision-tree-introduction-example/)
|
||||
- estymator rozpoczyna uczenie korzystając ze zbiorów treningowych
|
||||
```
|
||||
@ -103,11 +103,11 @@ rfc = adamO.rozpocznijUczenie()
|
||||
```
|
||||
rodzaj = adamO.przewidz(smiec, rfc)
|
||||
```
|
||||
![3](resources/screenShots/adamo3.png)
|
||||
![3](../screenShots/adamo3.png)
|
||||
- Zdjęcia posegregowanych śmieci umieszczane są w odpowiednich folderach:
|
||||
![1](resources/screenShots/adamo1.png)
|
||||
![1](../screenShots/adamo1.png)
|
||||
- Na koniec wyświetlane są losowo wybrane zdjęcia śmieci z kontenerów wraz z informacją o typie ustalonym przez estymator
|
||||
![2](resources/screenShots/adamo2.png)
|
||||
![2](../screenShots/adamo2.png)
|
||||
1. górny napis to typ zwrócony przez estymator
|
||||
2. drugi napis to wartości prawpopodobieństwa z jakim estymator ocenił typ
|
||||
3. trzeci napis to nazwa zdjęcia
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
## 1. Ogólne działanie:
|
||||
|
||||
![gif](resources/screenShots/gifProjektu.gif)
|
||||
![gif](../screenShots/gifProjektu.gif)
|
||||
|
||||
---
|
||||
|
||||
## 2. Struktura katalogów:
|
||||
|
||||
![katalogi](resources/screenShots/strukturaKatalogu.png)
|
||||
![katalogi](../screenShots/strukturaKatalogu.png)
|
||||
|
||||
**Resources**:
|
||||
|
||||
@ -24,18 +24,18 @@
|
||||
|
||||
**Pliki**:
|
||||
|
||||
**[game.py](game.py)** - plik zawierający całą funkcjonalność projektu:
|
||||
**[game.py](../../src/game.py)** - plik zawierający całą funkcjonalność projektu:
|
||||
|
||||
- główna pętla programu,
|
||||
- tworzenie planszy,
|
||||
- tworzenie i usytuowanie obiektów z katalogu [modeli](modele.py),
|
||||
- tworzenie i usytuowanie obiektów z katalogu [modeli](../../src/modele.py),
|
||||
- generowanie tekstowej interpretacji zebranej wiedzy
|
||||
|
||||
**[main.py](main.py)** - klasa odpowiedzialna za uruchomienie programu
|
||||
**[main.py](../../src/main.py)** - klasa odpowiedzialna za uruchomienie programu
|
||||
|
||||
**[modele.py](modele.py)** - zawiera klasy aplikacji
|
||||
**[modele.py](../../src/modele.py)** - zawiera klasy aplikacji
|
||||
|
||||
**[requirements.txt](requirements.txt)** - posiada biblioteki niezbędne do uruchomienia programu, które instalujemy za pomocą poniższego polecenia:
|
||||
**[requirements.txt](../../requirements.txt)** - posiada biblioteki niezbędne do uruchomienia programu, które instalujemy za pomocą poniższego polecenia:
|
||||
|
||||
```
|
||||
pip install -r requirements.txt
|
||||
@ -46,23 +46,23 @@ pip install -r requirements.txt
|
||||
## 3. Opis funkcjonalności programu:
|
||||
|
||||
* śmieciarka porusza się w losowy sposób po planszy 15 x 15 (koloruje na niebiesko przebytą trasę)
|
||||
![ruch śmieciarki](resources/screenShots/randMove.png)
|
||||
![ruch śmieciarki](../screenShots/randMove.png)
|
||||
* domy generowane są losowo na mapie z pominięciem kolizji z innymi obiektami
|
||||
![generowanie_domów](resources/screenShots/wspolrzedneDomow.png)
|
||||
![generowanie_domów](../screenShots/wspolrzedneDomow.png)
|
||||
* pozycja wysypiska, przeszkody (jeziorko) i kontenerów jest statyczna
|
||||
![statyczna_pozycja](resources/screenShots/statycznaPozycja.png)
|
||||
![statyczna_pozycja](../screenShots/statycznaPozycja.png)
|
||||
* w kontenerach przechowywane będą posegregowane, odpowiednio według kategorii, zdjęcia śmieci
|
||||
|
||||
* zdjęcia śmieci będą przydzielane w sposób losowy do każdego z domów na planszy
|
||||
![losowanie_śmieci](resources/screenShots/wyborSmieci.png)
|
||||
![losowanie_śmieci](../screenShots/wyborSmieci.png)
|
||||
* śmieciarka zbiera śmieci po najechaniu na pozycję danego domu
|
||||
|
||||
* po każdym uruchomieniu programu tworzona jest struktura katalogów dla posegregowanych śmieci
|
||||
![tworzenie_struktury](resources/screenShots/tworzenieStrukturyKatalogow.png)
|
||||
![tworzenie_struktury](../screenShots/tworzenieStrukturyKatalogow.png)
|
||||
* śmieciarka sprawdza w każdym ruchu czy nie dojdzie do kolizji z innym obiektem lub nie wyjedzie poza planszę
|
||||
![sprawdzanie_kolizcji](resources/screenShots/sprawdzanieKolizji.png)
|
||||
![sprawdzanie_kolizcji](../screenShots/sprawdzanieKolizji.png)
|
||||
* po prawej stronie wypisywane są aktualne, najważniejsze informacje
|
||||
![wiedza](resources/screenShots/wiedzaPoPrawejStronie.png)
|
||||
![wiedza](../screenShots/wiedzaPoPrawejStronie.png)
|
||||
* każdy obiekt na planszy posiada atrybuty odpowiedzalne za
|
||||
przechowywanie wiedzy o danym obiekcie np.: obiekt śmieciarka przechowuje informacje o odwiedzonych domach
|
||||
![atrybuty](resources/screenShots/atrybutySmieciarki.png)
|
||||
![atrybuty](../screenShots/atrybutySmieciarki.png)
|
@ -10,7 +10,7 @@
|
||||
|
||||
## 1. Model:
|
||||
|
||||
![model](resources/screenShots/kacper1.png)
|
||||
![model](../screenShots/kacper1.png)
|
||||
|
||||
- Powyższa funkcja tworzy sekwencyjny model sieci neuronowej
|
||||
- Składa się on z warstw
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
## 2. Uczenie modelu:
|
||||
|
||||
![uczenie](resources/screenShots/kacper2.png)
|
||||
![uczenie](../screenShots/kacper2.png)
|
||||
|
||||
- Model uczy się na 1599 zdjęciach śmieci podzielonych na 4 kategorie
|
||||
- Wszystkie zdjęcia mają rozmiar 299x299 pikseli
|
||||
@ -36,7 +36,7 @@
|
||||
|
||||
## 2. Przewidywanie:
|
||||
|
||||
![przewidywanie](resources/screenShots/kacper3.png)
|
||||
![przewidywanie](../screenShots/kacper3.png)
|
||||
|
||||
- Obrazki są zamieniane na macierze
|
||||
- Prediction zawiera rozkład prawdopodobieństwa obrazka na kategorie
|
||||
@ -46,7 +46,7 @@
|
||||
|
||||
## 2. Integracja w projekcie:
|
||||
|
||||
![integracja](resources/screenShots/kacper4.png)
|
||||
![integracja](../screenShots/kacper4.png)
|
||||
|
||||
- Podczas wizyty śmieciarki w domu wykonywana jest funkcja przewidzenia kategorii na każdym ze śmieci w danym domu
|
||||
- Zależnie od wyniku przewidywania śmieć jest umieszczany na odpowiedniej liście śmieci w śmieciarce
|
||||
|
@ -37,9 +37,9 @@ class Net(nn.Module): # klasa Net dziedziczaca po klasie bazowej nn.Module
|
||||
|
||||
- conv1, conv2 – warstwy konwolucyjna, rozmiar filtra 5×5, posiadające 3 kanały wejściowe (RGB) i kanały wyjściowe dla następnych warstw
|
||||
- pool - operacja `max-poolingu` - wyciaganie najwazniejszej informacji z zadanego obszaru obrazu
|
||||
![model](resources/screenShots/maxpool.png)
|
||||
![model](../screenShots/maxpool.png)
|
||||
- fc1, fc2, fc3 - warstwy liniowe - `full connection layers` - w odróznieniu od warstw konwolucyjnych, każdy neuron dostaje input o neuronie z poprzedniej warstwy. W warstwie konwolucyjnej neurony wiedzą tylko o określonych neuronach z poprzedniego layera
|
||||
![model](resources/screenShots/fc.png)
|
||||
![model](../screenShots/fc.png)
|
||||
- metoda `forward` - metoda forward określa cały przepływ(flow) inputu przez warstwy aż do outputu. W pierwszej części tensor danej wejściowej(tensor zdjęcia) przepuszczany jest przez dwie warstwy konwolucyjne i wykonywana jest na nim wcześniej wspomniana operacja `max-poolingu`. W następnej części wypłaszczamy x, wszystkie wymiary przechowujace dane obrazu – 16 kanalow o rozmiarach 71×71 rozciągamy jako jeden długi wektor. Na koniec przepuszczamy tensor przez warstwy liniowe i zwracamy output.
|
||||
|
||||
## 3. Trening:
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
## 1. Ogólne działanie:
|
||||
|
||||
![gif](resources/screenShots/route-planning.gif)
|
||||
![gif](../screenShots/route-planning.gif)
|
||||
|
||||
- Śmieciarka zaczyna ruch z pozycji (10, 10), po czym odwiedza wszystkie domy,
|
||||
których współrzędne zostały wylosowane, następnie jedzie na wysypisko do najbliższego kontenera,
|
||||
@ -20,7 +20,7 @@ po czym wybiera następny najbliższy nieodwiedzony kontener.
|
||||
|
||||
## 2. Pętla główna strategii przeszukiwania:
|
||||
|
||||
![petla](resources/screenShots/petlaGlowna.png)
|
||||
![petla](../screenShots/petlaGlowna.png)
|
||||
|
||||
- w pętli głównej wykorzystujemy przeszukiwanie grafu (graphsearch)
|
||||
- tworzymy kolejkę priorytetową, po czym dodajemy do niej bieżący węzeł
|
||||
@ -36,7 +36,7 @@ po czym wybiera następny najbliższy nieodwiedzony kontener.
|
||||
|
||||
## 3. Funkcja następnika:
|
||||
|
||||
![succ](resources/screenShots/funkcjaNastepnika.png)
|
||||
![succ](../screenShots/funkcjaNastepnika.png)
|
||||
|
||||
gdzie sąsiedzi to:
|
||||
```
|
||||
@ -51,7 +51,7 @@ sasiedzi = [(0, 1), (0, -1), (1, 0), (-1, 0)]
|
||||
|
||||
## 4. Przyjęta heurystyka:
|
||||
|
||||
![heurystyka](resources/screenShots/heurystyka.png)
|
||||
![heurystyka](../screenShots/heurystyka.png)
|
||||
|
||||
- Heurystyka to suma odległości Manhattan
|
||||
|
||||
@ -59,7 +59,7 @@ sasiedzi = [(0, 1), (0, -1), (1, 0), (-1, 0)]
|
||||
|
||||
## 5. Koszt wjechania na pole
|
||||
|
||||
![stepcost](resources/screenShots/stepcost.png)
|
||||
![stepcost](../screenShots/stepcost.png)
|
||||
|
||||
- Koszt wjechania na pole, na którym jest dom wynosi 3
|
||||
- Koszt wjechania na pole, które jest wysypiskiem wynosi 2
|
||||
|
Loading…
Reference in New Issue
Block a user