-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReconocimiento.py
120 lines (96 loc) · 4.97 KB
/
Reconocimiento.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import time
import serial
from predecir import *
import os
#Función para tomar foto y guardarla
def foto():
print("foto")
os.system('fswebcam -r 840x420 -S 30 --jpeg 95 --save /home/pi/Recon/image.jpg')
# mostrar cuando el modelo y peso ya estan cargados y todo esta listo para funcionar
print("Modelo cargado")
print("Pesos cargado")
print("Reconocimiento listo...")
print(" Todo listo...")
#un pequeño tiempo de descanso por la carga del modelo y peso para que se refresque del proceso
time.sleep(3)
arduino = serial.Serial('/dev/ttyACM0',9600, timeout=3.0) #se abre la comunicación serial con arduino
time.sleep(2) # otro descanso para que se estabilice
#bucle que va leer lo que arduino envíe
while True:
txt=''
txt += str(arduino.read(4)) #se lee lo que arduino envia y lo captura en la variable txt
#hasta que lo recibido sea igual a b'foto' comienza el proceso de tomar la foto y analizarla
if txt == "b'foto'":
foto() #se captura la foto y la guarda
# se le pasa la imagen anteriormente capturada para que sea reconocido lo hay delante
# y se guarda la respuesta en la variable 'respuesta'
respuesta = predict('/home/pi/Recon/image.jpg')
print(respuesta)
arduino = serial.Serial('/dev/ttyACM0',9600, timeout=3.0) #se abre la comunicación serial
time.sleep(2)
# la respuesta va ser el número que más porcentaje
# que haya tenido despues que la IA haya analizado la foto
# ------Nota: los números seran del 0 al 11 porque en el dataset se le pusieron 12 etiquetas
# ------ 12 carpetas con fotos
if respuesta == 0:
#-- 0 = bolsa
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 1:
#-- 1 = botella
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 2:
#-- 2 = galleta piknic
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 3:
#-- 3 = casacara de guineo
arduino.write(str.encode('O')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Organico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 4:
#-- 4 = hoja
arduino.write(str.encode('O')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Organico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 5:
#-- 5 = METAL
arduino.write(str.encode('M')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => metal')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 6:
#-- 6 = Casacara de naranja
arduino.write(str.encode('O')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Organico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 7:
#-- 7 = PAPEL
arduino.write(str.encode('p')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es => Papel')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 8:
#-- 8 = plato
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es un => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 9:
#-- 9 = tenedor desechable
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es un => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 10:
#-- 10 = VACIO
arduino.write(str.encode('V')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto está =>Vacio')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
elif respuesta == 11:
#-- 11 = vaso
arduino.write(str.encode('P')) #se le manda una varible al arduino para que posicioné el clasificador
print('Esto es un => Plastico')
respuesta='' #la variable respuesta de pone en estado inicial vaciando lo que contiene
#--Nota: luego de haber reconocido y envíado la variable pasará a esperar que lo leído sea igual a b'foto' para comenzar
# el proceso desde tomar foto. --- Por eso el bucle (while True)