def run(self): ojo_der = d.deteccionOjoDerecho(self.imagen) if ojo_der == None: """Si el sistema no encuentra ninguna cara debera generar una notificacion de sonido para avisar que hay algun problema""" self.alarma.deteccionNula() else: print "ojo derecho" self.resultado = rn.estimularRN(self.red,ojo_der.flatten()) return self.resultado
def run(self): cara = d.deteccionFacial(self.imagen) if cara == None: """Si el sistema no encuentra ninguna cara debera generar una notificacion de sonido para avisar que hay algun problema""" self.alarma.deteccionNula() else: print "cara" self.resultado = rn.estimularRN(self.red,cara.flatten()) return self.resultado
def run(self): ojo_der = d.deteccionOjoDerecho(self.imagen) if ojo_der == None: """Si el sistema no encuentra ninguna cara debera generar una notificacion de sonido para avisar que hay algun problema""" self.alarma.deteccionNula() else: print "ojo derecho" self.resultado = rn.estimularRN(self.red, ojo_der.flatten()) return self.resultado
def run(self): cara = d.deteccionFacial(self.imagen) if cara == None: """Si el sistema no encuentra ninguna cara debera generar una notificacion de sonido para avisar que hay algun problema""" self.alarma.deteccionNula() else: print "cara" self.resultado = rn.estimularRN(self.red, cara.flatten()) return self.resultado
def run(): """Es la clase principal en el cual se sigue la secuencia del procesamiento""" a = Alarma() """Al inicializar genera un sonido inidicado queel dispositivo esa funcionando sin contratiempos""" a.inicio() #Crear Red Neuronal red1 = rn.crearRN() red2 = rn.crearRN() red3 = rn.crearRN() #Se verifica si el archivo xml que contiene la red neuronal entrenada existe path = os.path.dirname(__file__) if os.path.isfile('rna_somnolencia.xml'): red_somnolencia = NetworkReader.readFrom('rna_somnolencia.xml') else: print "No existe la red neuronal solicitada" if os.path.isfile('rna_atento.xml'): red_atento = NetworkReader.readFrom('rna_atento.xml') else: print "No existe la red neuronal solicitada" if os.path.isfile('rna_operador.xml'): red_operador = NetworkReader.readFrom('rna_operador.xml') else: print "No existe la red neuronal solicitada" #Se la camara con la que se va a trabajar #try: # camara = v.capturarVideo() #except: # print "no camara",sys.exc_info()[0],sys.exc_info()[1] # a.noCamara() camara = cv2.VideoCapture(0) #camara.set(15,8.0) camara.set(cv2.cv.CV_CAP_PROP_BRIGHTNESS, 160) camara.set(cv2.cv.CV_CAP_PROP_EXPOSURE, 20.0) time.sleep(3) while True: Somnolencia = 0.00001 Atencion = 0.00001 Operador = 0.00001 #print "leyendo camara" is_sucessfully_read, img = camara.read() # is_sucessfuly_read retorna falso cuando no puede apturar de la camara if (is_sucessfully_read): cv2.imshow("Camera Feed", img) else: print "No se pudo detectar entrada de video desde %s. Saliendo..." % capture break if cv2.waitKey(1) & 0xFF == ord('q'): break #print "procesando imagen" frame = img # #Procesar imagenes del video improcesada = pi.procesarImagen(frame) cara = d.deteccionFacial(improcesada) try: if not cara: print "No hay operador frente el Monitor" a.ajeno() except ValueError: #print "procesando somno" Somnolencia = rn.estimularRN(red_somnolencia, cara.flatten()) #print "procesando atencion" Atencion = rn.estimularRN(red_atento, cara.flatten()) #print "procesando operador" Operador = rn.estimularRN(red_operador, cara.flatten()) print "Somnolencia: %s Atencion: %s Operador:%s" % (float( Somnolencia[0]), float(Atencion[0]), float(Operador[0])) if float(Operador[0]) < 5: print "Estado de la alarma: Persona no reconocida" a.ajeno() if float(Atencion[0]) < 5: print "Estado de la alarma: Distraido" a.distraido() if float(Somnolencia[0]) < 9.82: print "Estado de la alarma: Somnoliento" a.somnoliento() # try: # Somnolencia = rn.estimularRN(red_somnolencia,cara.flatten()) # Atencion = rn.estimularRN(red_atento,cara.flatten()) # Operador = rn.estimularRN(red_operador,cara.flatten()) # except: # print "Nadie frente el Monitor" # Colocar junto a la linea de arriba para ver codigo de error ,sys.exc_info()[0],sys.exc_info()[1] #time.sleep(2) cv2.destroyAllWindows() camara.release()
def main(): """Es la clase principal en el cual se sigue la secuencia del procesamiento""" a = Alarma() """Al inicializar genera un sonido inidicado queel dispositivo esa funcionando sin contratiempos""" a.inicio() #Crear Red Neuronal red1 = rn.crearRN() red2 = rn.crearRN() #Se verifica si el archivo xml que contiene la red neuronal entrenada existe path = os.path.dirname(__file__) if os.path.isfile(path + '/rna_somnolencia.xml'): red_somnolencia = NetworkReader.readFrom('rna_somnolencia.xml') else: e.entrenarSomnolencia(red1) red_somnolencia = NetworkReader.readFrom('rna_somnolencia.xml') if os.path.isfile(path + '/rna_atento.xml'): red_atento = NetworkReader.readFrom('rna_atento.xml') else: e.entrenarAtento(red2) red_atento = NetworkReader.readFrom('rna_atento.xml') #Se la camara con la que se va a trabajar try: camara = v.capturarVideo() except: a.noCamara() while True: Somnolencia = 0.00001 Atencion = 0.00001 #Obtener Video val, frame = v.obtenerVideo(camara) #Procesar imagenes del video improcesada = pi.procesarImagen(frame) """Se detecta la cara del video, luego se activa las redes neuronales para detectar los estados de somnolencia y atencion en el conductor""" cara = d.deteccionFacial(improcesada) if cara == None: """Si el sistema no encuentra ninguna cara debera generar una notificacion de sonido para avisar que hay algun problema""" #time.sleep(15) #a.deteccionNula() else: Somnolencia = rn.estimularRN(red_somnolencia,cara.flatten()) Atencion = rn.estimularRN(red_atento,cara.flatten()) """Se ingresan los valores obtenidos al bloque difusor el cual generara las alarmas en los casos que convengan.""" estado = a.motorDifuso(Somnolencia,Atencion) print "Estado de la alarma", estado a.alertar(estado)