From 7d0f66cd8ed9d60f8511060539e2375374dfe74b Mon Sep 17 00:00:00 2001 From: arthurgriloss Date: Wed, 15 Dec 2021 10:18:03 +0100 Subject: [PATCH] att gesture recognition --- .../__pycache__/being.cpython-38.pyc | Bin 0 -> 2178 bytes .../__pycache__/food.cpython-38.pyc | Bin 0 -> 1199 bytes Biological Evolution/being.py | 83 +++ Biological Evolution/food.py | 25 + Biological Evolution/main.py | 102 +++ .../__pycache__/ann.cpython-38.pyc | Bin 1041 -> 1016 bytes Computer Vision/Gesture Recognition/ann.py | 5 +- .../collect_data_handtracking.py | 6 +- .../Gesture Recognition/hand_data.csv | 599 +++++++++--------- 9 files changed, 514 insertions(+), 306 deletions(-) create mode 100644 Biological Evolution/__pycache__/being.cpython-38.pyc create mode 100644 Biological Evolution/__pycache__/food.cpython-38.pyc create mode 100644 Biological Evolution/being.py create mode 100644 Biological Evolution/food.py create mode 100644 Biological Evolution/main.py diff --git a/Biological Evolution/__pycache__/being.cpython-38.pyc b/Biological Evolution/__pycache__/being.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aeffb7edd60a6529ed26a9c3979d72cbe8d2d69 GIT binary patch literal 2178 zcmWIL<>g{vU|=Y!5=y+!!NBks#6iX^3=9ko3=9m#Dhvz^DGVu$ISf${nlXyeogsxO zg}H?xg*la}nK_C%g)x{xljS8yzh5$lM8-@olUx`W7*ZLc7*iOcm{J&1m|7U3m{XWj zSXvmOSW;M1*jgB(SX0b8W7E4NgdEPD7qRjM+ zl3Oe}sc9v*IMa(VQ{sy=t5R>VmS?7vWZYuQNCn9ku`w_(+~O$6FU~B<%+I^Unw+1L zUv!HzC9^0s87#t9T#{H)TCB-(i={XJ7=2!87BS#OWAsG}3AoU;&(hUkGa4fB2U|^_WSirE5p_Z|RA&W7Fsg|jh zxrQ-?QIY`^KUqv74B`wm3|Y)#3^j}?Op*+s_=1bFh%uxw)w0yEfYmc(F=sOs1?7d* zuz*!EWU3JSB*13S%}?(WE>Ph<-3{K^_}K6*%sh z{lIYvj%H1^TiofXB>~WAC=vjLFKS2^@i8zkXtEXwfg+4KxwPmOW5q4T%3I8Nspa4} zfDj@eX_nmlvQ!YOSOyeIj2w(yj0TK+j7*Foj3SI2OiYYCj9|=E#RUmnkOq{H1%)yQ zgF_aSNNO0e7=jsAGWuyUf}OIG5$qI*t)Mhe1hTM5jDdkc9h7H4nTLU~N)Tc`lIMuA zrU>Njm5h*ZkOc(>*ak2GvgQ^~dTNOaERAX-*(U_I4=$Yyb_ysU7#J8pY!C+f3sh!- z^DhG^M!=R9$$^5I3F0?!G=MDy6A+t=k!;q(v>90%#j7A&LD?8=^Ckuch7yJ>#sy3Z z8C)1*7u7P>FlI5AFl4c0GZkr-Ff3qQ$iT=@!j{F($WX`ymE*`}Dgv=NOBk}avYCoP zY8bM(YZ&5rY8V#qg4Bamf@Jx!nTm>P7_#`W$_ivN6-}sN$P&aVD+IQMAxjul79K*H zBDdHID$^5lQ*W`RmZj#E++t2oExE-~Qdy9CizP7BGvpRaVQFT`E#~6N;#(}K6`3Ws z*u7mNUHrrSZZT)4R^DRuj`t3*C}Ic2D>#UyL5UVDYE;AlXPXp(;s>JItcVjSUX(yO z!BGMx!12PJk(if~lNz6$T3KuaiWZO}21Y(c9!3sE4n`g@&4oe25-5^xl=K3MF;Mac z$C?i~))s(D7ba*a!2~KDK&5>aGpJ-qV_L{m%LIzY1+1WymBm)Ww2+w*6xS>ukrd_{ zrWB@yER5h3r^$j`1~9*j1=R#MK*SS}Z`q3!L4m;%l$u-u&T~beBHO6@Ef!D# zUBnMk#|%!bx7dqIi_#L4Q*SXA6@kMAOn?HX$b^A`!3`8BAg?emsxS&M!g4;yFh5N$ zP>GzEn420Oe~T+VJ~uz5GzY}yiH|QVP0WGF6p4bu9TZvMY+fV};wpd$eGmb%1j%BA z?VywoDy54-MHmMo2S0}}2MY%?2MdQt5lBvx1?g{vU|>iz6-qQ@W?*;>;vi!d1_lNP1_p*=6$S=|6owSW9EK!Whh;$?_7U-!B zq-LgPl-v?3O3X{i&&{k#jfZL1WVyvsoSKtX!~wF66GVW5dnH2=F9QR^FWnTY828MQ zjMAi-fXb4L{Ja>a%>11E^vvYM90k|1{G3vd8)DM(^HcN+DsOSb$7kkcmc+-if;GSZIORAPf#IHU= z7;bT=r8AyW-Q z7PAOKlm%Hd4HRpv(0Fw688ZU|1KblnP)~rpz$gg{KBg2VNd}N( zvzS5NNn={bRLfMtkj1iq6_ot4*lL&-GBYy3L{gY*m{OP)vOtp{iyt`c6@i?k$^0@F zl=g0bh$o-~$bO5hpfWu%H}w`vP-=1s#AhIn-eO59N-V#{QUnrZ2PtI+$J;IT;?knD z#N^alj71QSgM$DRWku2q3=Co*--CR^z^K9~#8|}%4gru^ewyr{bd{Hwn;IW~iz_}p zH$SB`2gK%yk1s4u%z?-h@q@xu5JZ4N6Kp7wMF`tKK?us5#UST$FmiBmuyC*xfkZV~ miX=h$ML-FQEk7v>= n_steps: + being.feed(closest_tree) + else: + being.go_home() + else: + being.go_home() + + +def drawGrid(surface): + for y in range(0, int(height)): + for x in range(0, int(width)): + if (x + y) % 2 == 0: + r = pygame.Rect((x * grid_size, y * grid_size), (grid_size, grid_size)) + pygame.draw.rect(surface, (89, 60, 31), r) + else: + rr = pygame.Rect((x * grid_size, y * grid_size), (grid_size, grid_size)) + pygame.draw.rect(surface, (100, 70, 36), rr) + + +# Grid size parameters +height = 800 +width = 800 +grid_size = 20 +height_grid = int(height / grid_size) +width_grid = int(width / grid_size) + +# Possible movements +up = (0, -1) +down = (0, 1) +right = (1, 0) +left = (-1, 0) + +# Q-learning entries +state_space_size = width_grid * height_grid +action_size = 8 +q_table = np.zeros((int(state_space_size), action_size)) +state_table = np.zeros(height_grid * width_grid).tolist() +k = 0 +for j in range(0, height_grid): + for i in range(0, width_grid): + state_table[k] = (grid_size * i, grid_size * j) + k += 1 + + +def main(): + pygame.init() + clock = pygame.time.Clock() + screen = pygame.display.set_mode((width, height), 0, 32) + + surface = pygame.Surface(screen.get_size()) + surface = surface.convert() + drawGrid(surface) + + being = Being(grid_size, width, height) + food = [] + + for b in range(int(min([height_grid, width_grid]) - 1)): + food.append(Food(grid_size, width_grid, height_grid)) + + while(True): + clock.tick(30) + drawGrid(surface) + + being.handle_keys() + + for tree in food: + if being.getPosition() == tree.getPosition(): + food.remove(tree) + tree.draw(surface) + + being.draw(surface) + screen.blit(surface, (0, 0)) + pygame.display.update() + + +main() \ No newline at end of file diff --git a/Computer Vision/Gesture Recognition/__pycache__/ann.cpython-38.pyc b/Computer Vision/Gesture Recognition/__pycache__/ann.cpython-38.pyc index 3ee54c3481a771bcad0c73282833fdf03074330e..cb34caf8edaf05f327ad3333bd4e3e1461869194 100644 GIT binary patch delta 226 zcmbQp@q?W=l$V!_fq{X+;?4VneH(e(85yG{Ph~9Qb@{ zz`(%Fz`)?lz`#(fGkF1%jt65fgC?V&CQA_~0|P@5$ebc>5Q~q2fkBh0h@XLh;TB^> zkq}4>ObCNS*wgZh$`gxH1VILYG%-xpWe!sj1leLJGfq|h2WMUC7h{X*e_!$@& zG?|M87#J9CF;?7StBfxwN=+#e2FZa55s(afT7FS^Vo{19$b24