From 3d2a88d1eab97a58357d530a2d974c689d562fbb Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 27 May 2024 05:28:48 +0200 Subject: [PATCH] fixes --- source/NN/__pycache__/model.cpython-311.pyc | Bin 2581 -> 2592 bytes .../neural_network.cpython-311.pyc | Bin 5300 -> 5329 bytes source/NN/neural_network.py | 40 +++++++++--------- source/__pycache__/astar.cpython-311.pyc | Bin 6982 -> 6995 bytes source/__pycache__/bfs.cpython-311.pyc | Bin 8996 -> 9009 bytes .../crop_protection_product.cpython-311.pyc | Bin 633 -> 646 bytes source/__pycache__/ground.cpython-311.pyc | Bin 1273 -> 1286 bytes source/__pycache__/plant.cpython-311.pyc | Bin 1406 -> 1960 bytes source/__pycache__/tile.cpython-311.pyc | Bin 2499 -> 2715 bytes .../area/__pycache__/__init__.cpython-311.pyc | Bin 160 -> 173 bytes .../__pycache__/constants.cpython-311.pyc | Bin 555 -> 568 bytes source/area/__pycache__/field.cpython-311.pyc | Bin 3609 -> 3622 bytes .../area/__pycache__/tractor.cpython-311.pyc | Bin 9378 -> 9391 bytes source/main.py | 1 + source/plant.py | 16 +++---- source/tile.py | 4 ++ 16 files changed, 33 insertions(+), 28 deletions(-) diff --git a/source/NN/__pycache__/model.cpython-311.pyc b/source/NN/__pycache__/model.cpython-311.pyc index 6e6c9343ad15f9fc5ac4ea89d47a986b54bafef6..d6663490bafe20efc0ac42990e4a6027398649a5 100644 GIT binary patch delta 212 zcmbO#vOt7yIWI340}%ZA6r85TvXO5Kv!ZpfRZM7cYEf~FZ(>nuc8p7Ya%paAUP*CG zNRXpJg=t8s3#6lDZTV-gFPmT-OqiGRT&S)>N^1^|nEI=lb? delta 201 zcmZ1=GF60cIWI340}wb}3Qh}U-N?6vSwt_zDkh{TF}ozcD84AQAU{4YwS4kpW>3b= zlXY3jS-)~Ih=^@o&cejZC^~r+dkEu$$^Y5E+VZekd|<#u$Z)Z0d|<#$Og7})W+}-C WRD($@U|PcY5hVTvi)4`+(Cq;GFg9ZV diff --git a/source/NN/__pycache__/neural_network.cpython-311.pyc b/source/NN/__pycache__/neural_network.cpython-311.pyc index e36880cad3d8a0052b45b33f6af69ab067d88f30..2dc9baee6444049ff46f95ba6880701a27089f08 100644 GIT binary patch delta 1026 zcmZuwUr19?7(eIkZhE(S*WGlsEv;6hO=*y1X(0G|iH6>S0?{MYxFykB` zB4dU;I{}2`l4Xq0OVAxj@7ohE-5rm4AYL+F$in=hu&P+tXvF&|gX?a4!C@Qs6?a3j zL-D@iml-$$bVp+TJsjaboCC5)7VqL%rR=(kVpXym@St1JS^iV3RY~JTSkJ| zu(wHBsY|6pOtTM`xE8?LnUbz42Ai0YCBu@KoLYU${ILYu65)~lj6yOamn5Q0jI^nV zsg#n=W=8sYTQ2r>_pW}h&0CmlyxL`VVcbZsI9hNE%{hJ^OcYBfOr?Mp&|hl+izth! zi}TV?e0?Zu1y51N*?*SI>~7^N%T8bD5A0=UQO;VtB=OWNg4)=~jL;g1#8axQBtw(g z>qLN^pe#NmO~#XILduS*>7dQmbkqaGQc7kRu0nDMV{4tHM z(fOLW_Ae~A#rif`-_v7DwYm7mhV`a=PrueWptla>{ezl+PzPj(bap7u4$<$z3A{u- z&N}*@+fQ#gT}-xw)^UE@Ej){JteJG<-qOqvlwgS%mfntY#Ju{Tl{jEBSaniK8zl+I zSs_{a%-LPr1AbF8?EsLf=y_~^64u0OU98>`Lz`mg#gryC=widFb6*1%P6I7yBjzI` zXK9Z(XB`G}fPNM?ae%&XJ&YQqkw~b}IK$G@*;P21@IW&7u}oZ=md29O)uckqei^o2 zB{Mdo7+gdpDJcmi=`#I}!t*(=CS`??D81n>6I;Mf%+3-sUouQzyZ!bFFwOrb^M-2f zd)*azR2*NBC%=1q3sgV%Zw1b52F_@KupS8Kx#)c5yyt%9qfw2k(z&WUSGC5kS=afE UeyusGH%IB6vK3rUXUfBW0R{>GBLDyZ delta 940 zcmZuv|4UO*6u)(sH_@3F?oZQWXSTx1T zA0ixANT|S{l(65{AF?M8lttmML6qcgLe#l4e<(WK^SS4o&pG!V?zvj{L)fupw_6d& z;=<_kjIHRXGx!a~3lmTo@UUijwZ)SFhv-vnE-sW3^S!Lw)!% zmgpF6$;c2fCutH_GDjAK5e%?NtEswei}XPO6TMlNj%79NSvs1nfR=_ zP?|Td7!AZ)`o%jj?x0RvFYckEwjZG*KAln2RAeqUGj-Av+fATG(8F~)Dcoi~av0?i zEjnb@p_oU|k71DXLQdFJ@z5cA8}6dd?4gc+2;Bh9UI8eePeOwxgmfWP=-cD?UCz71 zdEcIU)4Xw4^R?-|HjRtwT(rzZ>4Ci!KcqoN3-=i3O!TwG2Sy%KjhAWM;qvC$8^E1x zY+;TFuvNIsoH|SQ9Yg+G;EsT1+X3KOQChREcWPpjE;f}WPF=#)uN5{EFYu(Bz7`9n zaWKbegL4O;rH9U!Psn))RE)y|H>;djNvp|KbuGD3ugR^t+^V67jv{3gVKvqz>!PqM6odnr IzVdYb2AYfDWdHyG diff --git a/source/NN/neural_network.py b/source/NN/neural_network.py index 8336d9c..be60774 100644 --- a/source/NN/neural_network.py +++ b/source/NN/neural_network.py @@ -4,10 +4,10 @@ from torch.utils.data import DataLoader from torchvision import datasets, transforms, utils from torchvision.transforms import Compose, Lambda, ToTensor import matplotlib.pyplot as plt -from model import * +from NN.model import * from PIL import Image -device = torch.device('cuda') +device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') #data transform to tensors: data_transformer = transforms.Compose([ @@ -56,12 +56,12 @@ def accuracy(model, dataset): return correct.float() / len(dataset) -model = Conv_Neural_Network_Model() -model.to(device) +# model = Conv_Neural_Network_Model() +# model.to(device) #loading the already saved model: -model.load_state_dict(torch.load('CNN_model.pth')) -model.eval() +# model.load_state_dict(torch.load('CNN_model.pth')) +# model.eval() # #training the model: # train(model, train_set) @@ -72,13 +72,13 @@ model.eval() def load_model(): model = Conv_Neural_Network_Model() - model.load_state_dict(torch.load('CNN_model.pth')) + model.load_state_dict(torch.load('CNN_model.pth', map_location=torch.device('cpu'))) model.eval() return model def load_image(image_path): - testImage = Image.open(image_path) + testImage = Image.open(image_path).convert('RGB') testImage = data_transformer(testImage) testImage = testImage.unsqueeze(0) return testImage @@ -98,17 +98,17 @@ def guess_image(model, image_tensor): # print(f"The predicted image is: {prediction}") #TEST - loading the image and getting results: -testImage_path = 'resources/images/plant_photos/1c76aa4d-11f4-47d1-8bdd-2cb78deeeccf.jpg' -testImage = Image.open(testImage_path) -testImage = data_transformer(testImage) -testImage = testImage.unsqueeze(0) -testImage = testImage.to(device) +# testImage_path = 'resources/images/plant_photos/1c76aa4d-11f4-47d1-8bdd-2cb78deeeccf.jpg' +# testImage = Image.open(testImage_path) +# testImage = data_transformer(testImage) +# testImage = testImage.unsqueeze(0) +# testImage = testImage.to(device) -model.load_state_dict(torch.load('CNN_model.pth')) -model.to(device) -model.eval() +# model.load_state_dict(torch.load('CNN_model.pth')) +# model.to(device) +# model.eval() -testOutput = model(testImage) -_, predicted = torch.max(testOutput, 1) -predicted_class = train_set.classes[predicted.item()] -print(f'The predicted class is: {predicted_class}') \ No newline at end of file +# testOutput = model(testImage) +# _, predicted = torch.max(testOutput, 1) +# predicted_class = train_set.classes[predicted.item()] +# print(f'The predicted class is: {predicted_class}') \ No newline at end of file diff --git a/source/__pycache__/astar.cpython-311.pyc b/source/__pycache__/astar.cpython-311.pyc index 92d68bd5d08d032bfb89a4cc2e4bab29fc29c7bf..c791e8153c716f93665f3bf20b245beb8a73f91c 100644 GIT binary patch delta 59 zcmX?RcG--3IWI340}$NZ6}*uQ*(xTqIJKxa#y7DjH9N*7Ke;qFHLs*NCM3ww NJH$U|b2rm&2>?Or6hr_3 delta 46 zcmca?cFc@>IWI340}%M#2-wJ-!z7}eViglol$c$TUld=IT96-~ms-Ag2Gec{07}6R AdH?_b diff --git a/source/__pycache__/bfs.cpython-311.pyc b/source/__pycache__/bfs.cpython-311.pyc index b236869bee7f063fa6e2fce0df8c67f5fab36c24..94f1cb7ec80d1a6a90912e828817b6752f79a204 100644 GIT binary patch delta 59 zcmZ4Dw$Y7yIWI340}$NZ6}*wVk5SPq*(xTqIJKxa#y7DjH9N*7Ke;qFHLs*NCM3ww NJH$U|^IFDoMF2jg6eR!v delta 46 zcmdn!w#1ElIWI340}%M#2-wKo$0(wiViglol$c$TUld=IT96-~ms-Ag7h}0107t$L ATL1t6 diff --git a/source/__pycache__/crop_protection_product.cpython-311.pyc b/source/__pycache__/crop_protection_product.cpython-311.pyc index 997f2be451e8366cc7301087c2c79ad35d278798..855581b357cb1942ee5c397b11edfca3a8988d6c 100644 GIT binary patch delta 58 zcmey#(#FcYoR^o20SNBy3SP*~sOXh!6%$&VT2vh4n^=^Z9pjRpT$-DjS5h1k66EL| M;vckGo-v9M01bf>cK`qY delta 45 zcmZo;{mH_;oR^o20SNqV1T5rc6tPXQiU}!7%r40I=T=J7kb5rw5ieo~89KA#QgEsdw-eIawW&)W61t2yv5P#kVB&IXeFs3kO zgXN0^QkZHO;-ShI7*d#lJVqEdg&`QEmIbbs6-6x@7Pah9weO?#b7E;u zW?D{ud1}!u?qnnmYj{R#V#zJmaxle~oLZEcn4`&5#0KdOUB)sRAkg4j_EME3<&(60gPuUX2?P3J^(6WJ%sjyt)^7 zb#F+3v;cLYNU~qzRlmTi4mVb-#^?Y5 delta 225 zcmZ3%|Bs7rIWI340}%M#2uKTHp2(NPC^fNAnm3q1ljRm`Ku%&_Niy5y1{RTto6m`8 zr&z^=6eVVt4BO~Jt2HplR{JgZ`4KGs J1&1uyP5|UcG{*n{ diff --git a/source/__pycache__/tile.cpython-311.pyc b/source/__pycache__/tile.cpython-311.pyc index 4be75d310101e8a3ba8149db22e73c785a7aaaa1..1777104e083e4ec45bc5c3fcc51180d8f36bcf60 100644 GIT binary patch delta 588 zcmX>sJX@4^IWI340}zD&4Nf~Skyp|w2FRJtkiw9{n8OeSp&6qX!F;ADCNRw$#R8^T zbJ?QU89{28ayW81qd0+V<|wX-36hN56RZ9xnkQSugche37037{7Nus#xa237=BDPA z6vu=FIeLfq2Tkr`G+>n6yqmF@kx_ZGK651#qsHWwtecqB7$?WF1x#MX%s2Td8~@}p zY@CzVvdJ^DO+L$}&d5G_9#R+4jOkT$($H)azqYrXhFoPzu-!10+ zw6vG3KsB1&MG8Qwh#5%SV#zN^&AY{1kW+GtIWs?RvH`n@$SszV%-qylti?I0sRg%K zlXLQmQzyHyd+3-0brh!ni3WxnqLNdhI=Jrg3HM~pkh;jHa)nQ&gZVB8cMp3fXAfrw z(6#KUGIu$6dblPScJlV{cJP8EIXk&~xI4gb@-_BoX=9*aD;bJ-fm9JUhyXbdOz=$h z;fUAbU={hmfJs0!fIY)g#1GPxe4ru8iuUN2bdKn&tlV<{DMt> z@_jbW$pY;1jBJw)*d@$U7=jrznfz`s=clDN9FgKF=v(Vhj=oOL7BQzc_4i^HWN5QtgT? qfm}u)E^Yu4AD9^#8E-J~Hh|$|6)q=J14f`ln8Zhr*cU7kU`qh{fNUQC diff --git a/source/area/__pycache__/__init__.cpython-311.pyc b/source/area/__pycache__/__init__.cpython-311.pyc index a3d75daac316d61182b3156595527aa29380d88b..b4b15ec80bc2f607dc07cfc0cd179184432cef36 100644 GIT binary patch delta 56 zcmZ3$xR#N7IWI340}$NZ6+DsKRM8>XDkiizwWv78H?b%+JH{nHximL5ucSC8B*@V_ K#6M_ahz|hY?Gjr6 delta 43 xcmZ3>xPXy+IWI340}%M#2$;xiDq@^s6%$gFm|c=z6kn8DkRP9yT0Sw+2LJ#z4Uqr< diff --git a/source/area/__pycache__/constants.cpython-311.pyc b/source/area/__pycache__/constants.cpython-311.pyc index ae86f18f06d106835086c73b8b20ed83d7fc50b1..99fb7fdbba50b3fa490fe8638dbb621f62a014a0 100644 GIT binary patch delta 58 zcmZ3@vV(nuc8p7Ya%paAUP*CGNRXp< Mh=0)L%ZzS301+J%Hvj+t delta 45 zcmZ1`GgF3ZIWI340}vc8-N?0-QN$p{Dkh{TF}ozcD84AQAU{4YwS4mfMmHV+FTD=G diff --git a/source/area/__pycache__/tractor.cpython-311.pyc b/source/area/__pycache__/tractor.cpython-311.pyc index 910133501984f4f018e5639eec6afb1b34611be6..eea7c328fc2f48d005ba29fed627348d06d592c8 100644 GIT binary patch delta 59 zcmZ4Fx!#j|IWI340}$NZ6}*vKg-y{u*(xTqIJKxa#y7DjH9N*7Ke;qFHLs*NCM3ww NJH$U|vol+~8~`qC6H5R9 delta 46 zcmZ4QxyX}yIWI340}%M#2-wK2!X{#rViglol$c$TUld=IT96-~ms-9#fGu7Q06Z2B AfdBvi diff --git a/source/main.py b/source/main.py index 5b4b62a..7d5461f 100644 --- a/source/main.py +++ b/source/main.py @@ -13,6 +13,7 @@ from plant import Plant from bfs import graphsearch, Istate, succ from astar import a_star from NN.neural_network import load_model, load_image, guess_image +from PIL import Image WIN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('Intelligent tractor') diff --git a/source/plant.py b/source/plant.py index 770ffcc..d0c1228 100644 --- a/source/plant.py +++ b/source/plant.py @@ -21,17 +21,17 @@ class Plant: def update_name(self, predicted_class): if predicted_class == "Apple": - self.name = "Apple" - self.plant_type = "fruit" + self.name = "apple" + self.plant_type = 'fruit' elif predicted_class == "Radish": - self.name = "Radish" - self.plant_type = "vegetable" + self.name = "radish" + self.plant_type = 'vegetable' elif predicted_class == "Cauliflower": - self.name = "Cauliflower" - self.plant_type = "vegetable" + self.name = "cauliflower" + self.plant_type = 'vegetable' elif predicted_class == "Wheat": - self.name = "Wheat" - self.plant_type = "cereal" \ No newline at end of file + self.name = "wheat" + self.plant_type = 'cereal' \ No newline at end of file diff --git a/source/tile.py b/source/tile.py index e0d8d4a..40ccc34 100644 --- a/source/tile.py +++ b/source/tile.py @@ -1,4 +1,5 @@ import random +import time import os import numpy as np import matplotlib.pyplot as plt @@ -54,6 +55,9 @@ class Tile: def display_photo(self): image_path = self.photo img = Image.open(image_path) + plt.ion() plt.imshow(img) plt.axis('off') plt.show() + time.sleep(5) + plt.close()