stworzony raport
123
adamORaport.md
Normal file
@ -0,0 +1,123 @@
|
||||
# Sztuczna Inteligencja
|
||||
|
||||
**Temat projektu:** Inteligenta Śmieciarka
|
||||
|
||||
**Zespół:** Kacper Borkowski, Adam Borowski, Adam Osiowy
|
||||
|
||||
**Podprojekt:** Adam Osiowy - *segregator śmieci*
|
||||
|
||||
---
|
||||
|
||||
## Opis podprojektu:
|
||||
|
||||
- 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)
|
||||
- w pliku uczenie_adamO.py znajdują się funkcje odpowiedzialne za uczenie i testowanie modelu
|
||||
![5](resources/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)
|
||||
|
||||
---
|
||||
|
||||
## Ogólne działanie:
|
||||
|
||||
- na początku zbierane są informacje o każdym zdjęciu
|
||||
```
|
||||
momenty = wyznaczHuMomenty(zdj)
|
||||
haralick = wyznaczHaralick(zdj)
|
||||
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)
|
||||
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)
|
||||
są średnią ważoną intensywności pikseli obrazu.
|
||||
Są liczone ze wzoru:
|
||||
![10](resources/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)
|
||||
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)
|
||||
|
||||
3. Tekstura Haralicka określająca nasycenie ilości pixeli w skali szarości
|
||||
![7](resources/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)
|
||||
|
||||
- własności sa zapisywane jako macierze, ustawiane w szereg jako wiersz i zapisywane do pliku z danymi .h5
|
||||
```
|
||||
wiersz = np.hstack([momenty, histogram, haralick])
|
||||
```
|
||||
- dane dzielone są losowo na 2 pary, jedna testowa druga treningowa
|
||||
```
|
||||
(uczenieDane, testowanieDane, uczenieEtykiety, testowanieEtykiety) =
|
||||
train_test_split(np.array(dane), np.array(etykiety), test_size=rozmiar_zbioru_testowego)
|
||||
```
|
||||
gdzie rozmiar zbioru testowego określony wcześniej na 20%
|
||||
- tworzony jest estymator
|
||||
```
|
||||
rfc = RandomForestClassifier(max_depth=15, n_jobs=4, random_state=1)
|
||||
```
|
||||
gdzie n_jobs to ilość wątków, random_state pilnuje aby zbiór był zawsze dzielony tak samo,
|
||||
a max_depth to maksymalna głebokość każdego drzewa
|
||||
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'
|
||||
```
|
||||
to znaczy ze element z najmniejszym indeksem Giniego powinien zostać wybrany
|
||||
|
||||
indeks jest obliczany ze wzoru:
|
||||
|
||||
![9](resources/screenShots/adamo9.png)
|
||||
|
||||
[przykład](https://www.geeksforgeeks.org/decision-tree-introduction-example/)
|
||||
- estymator rozpoczyna uczenie korzystając ze zbiorów treningowych
|
||||
```
|
||||
rfc.fit(uczenieDane, uczenieEtykiety)
|
||||
```
|
||||
- następnie wyliczana jest skuteczność na zbiorach testowych
|
||||
```
|
||||
rfc.score(testowanieDane, testowanieEtykiety)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integracja z projektem zespołowym:
|
||||
|
||||
- Przy starcie programu estymator rozpoczyna nauke
|
||||
```
|
||||
rfc = adamO.rozpocznijUczenie()
|
||||
```
|
||||
- Śmieciarka porusza się po domach zbierając z nich śmieci
|
||||
- Po zebraniu wszystkich śmieci kieruje się na wysypisko
|
||||
- Każde zdjęcie śmieci jest segregowane z wykorzystaniem funkcji przewidującej typ
|
||||
```
|
||||
rodzaj = adamO.przewidz(smiec, rfc)
|
||||
```
|
||||
![3](resources/screenShots/adamo3.png)
|
||||
- Zdjęcia posegregowanych śmieci umieszczane są w odpowiednich folderach:
|
||||
|
||||
![1](resources/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)
|
||||
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
|
||||
|
||||
---
|
||||
|
||||
## Efekt działania programu w postaci drzewa decyzyjnego:
|
||||
![10](graph.png)
|
@ -1,2 +1,4 @@
|
||||
pygame==1.9.6
|
||||
numpy==1.18
|
||||
numpy==1.18
|
||||
Keras==2.3.1
|
||||
tensorflow==2.2.0
|
BIN
resources/screenShots/adamo1.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
resources/screenShots/adamo10.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
resources/screenShots/adamo11.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/screenShots/adamo12.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
resources/screenShots/adamo13.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
resources/screenShots/adamo2.png
Normal file
After Width: | Height: | Size: 134 KiB |
BIN
resources/screenShots/adamo3.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
resources/screenShots/adamo4.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
resources/screenShots/adamo5.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
resources/screenShots/adamo6.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
resources/screenShots/adamo7.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/screenShots/adamo8.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/screenShots/adamo9.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
resources/smieci w kontenerach/glass/glass113.jpg
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
resources/smieci w kontenerach/glass/glass126.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 17 KiB |
BIN
resources/smieci w kontenerach/glass/glass143.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/glass/glass17.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
resources/smieci w kontenerach/glass/glass212.jpg
Normal file
After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.1 KiB |
BIN
resources/smieci w kontenerach/glass/glass276.jpg
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
resources/smieci w kontenerach/glass/glass291.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/glass/glass303.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/glass/glass332.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/glass/glass392.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
resources/smieci w kontenerach/glass/glass402.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
resources/smieci w kontenerach/glass/glass467.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/glass/glass478.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/glass/metal91.jpg
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
resources/smieci w kontenerach/metal/metal121.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/metal/metal126.jpg
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 9.9 KiB |
BIN
resources/smieci w kontenerach/metal/metal212.jpg
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
resources/smieci w kontenerach/metal/metal225.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/metal/metal26.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 23 KiB |
BIN
resources/smieci w kontenerach/metal/metal348.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 24 KiB |
BIN
resources/smieci w kontenerach/metal/metal406.jpg
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
resources/smieci w kontenerach/metal/metal63.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 20 KiB |
BIN
resources/smieci w kontenerach/paper/metal330.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 48 KiB |
BIN
resources/smieci w kontenerach/paper/paper131.jpg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/smieci w kontenerach/paper/paper133.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/smieci w kontenerach/paper/paper157.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/paper/paper193.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 21 KiB |
BIN
resources/smieci w kontenerach/paper/paper214.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 16 KiB |
BIN
resources/smieci w kontenerach/paper/paper239.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
BIN
resources/smieci w kontenerach/paper/paper281.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 8.8 KiB |
BIN
resources/smieci w kontenerach/paper/paper342.jpg
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
resources/smieci w kontenerach/paper/paper375.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/smieci w kontenerach/paper/paper384.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/paper/paper432.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
resources/smieci w kontenerach/paper/paper459.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
resources/smieci w kontenerach/paper/paper470.jpg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
resources/smieci w kontenerach/paper/paper482.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 26 KiB |
BIN
resources/smieci w kontenerach/paper/paper570.jpg
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/paper/paper63.jpg
Normal file
After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 17 KiB |
BIN
resources/smieci w kontenerach/plastic/plastic133.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/smieci w kontenerach/plastic/plastic147.jpg
Normal file
After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/plastic/plastic21.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 8.1 KiB |
BIN
resources/smieci w kontenerach/plastic/plastic222.jpg
Normal file
After Width: | Height: | Size: 10 KiB |