0% encontró este documento útil (0 votos)
10 vistas7 páginas

Segundo Parcial

El proyecto consiste en un programa de visión artificial que permite a personas con dificultades de comunicación expresarse mediante gestos y movimientos corporales. Utiliza la biblioteca MediaPipe para detectar poses y gestos, enviando notificaciones a través de la aplicación Pushover según las necesidades detectadas, como comer, ir al baño o dormir. El sistema se implementa utilizando Python y OpenCV, mostrando en tiempo real la detección de gestos a través de la cámara web.

Cargado por

rochavictor312
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas7 páginas

Segundo Parcial

El proyecto consiste en un programa de visión artificial que permite a personas con dificultades de comunicación expresarse mediante gestos y movimientos corporales. Utiliza la biblioteca MediaPipe para detectar poses y gestos, enviando notificaciones a través de la aplicación Pushover según las necesidades detectadas, como comer, ir al baño o dormir. El sistema se implementa utilizando Python y OpenCV, mostrando en tiempo real la detección de gestos a través de la cámara web.

Cargado por

rochavictor312
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción

En este proyecto lo que buscamos hacer es un programa con visión artificial para aquellas
personas de las cuales no se pueden comunicar como normalmente lo harían y lo puedan
hacer con gestos o moviendo algunas de las extremidades del cuerpo y con ello nos
podamos comunicar a través del programa y poder decir lo que queremos.

Desarrollo
import cv2

import mediapipe as mp

import requests

# Claves de Pushover

api_token = "abm675t7eay78a4243xdz5ecpmv8e4" # Reemplaza con tu API Token de Pushover

user_key = "unuqfmxm5dmd9unffornainpeuimsg" # Reemplaza con tu User Key de Pushover

# Inicialización de MediaPipe para detección de poses

mp_pose = [Link]

pose = mp_pose.Pose()

mp_drawing = [Link].drawing_utils

# Variables para evitar notificaciones repetitivas

ultima_accion = None

# Funciones de notificación según el gesto detectado

def notificar_necesidad(necesidad):

print(f"Notificación: La persona necesita {necesidad}.")

# Enviar notificación a Pushover

[Link]("[Link] data={

"token": api_token,

"user": user_key,

"message": f"La persona necesita {necesidad}."

})

# Función para mostrar texto en pantalla


def mostrar_texto(frame, texto):

font = cv2.FONT_HERSHEY_SIMPLEX

[Link](frame, texto, (50, 50), font, 1, (0, 255, 0), 2, cv2.LINE_AA)

# Función principal para el reconocimiento de gestos

def detectar_gestos():

global ultima_accion

cap = [Link](0) # Usar la cámara web

while [Link]():

ret, frame = [Link]()

if not ret:

break

# Convertir la imagen a RGB para MediaPipe

rgb_frame = [Link](frame, cv2.COLOR_BGR2RGB)

resultado = [Link](rgb_frame)

if resultado.pose_landmarks:

mp_drawing.draw_landmarks(frame, resultado.pose_landmarks, mp_pose.POSE_CONNECTIONS)

# Obtener la posición de puntos específicos para detectar gestos

lm = resultado.pose_landmarks.landmark

hombro_izq = lm[mp_pose.PoseLandmark.LEFT_SHOULDER]

mano_izq = lm[mp_pose.PoseLandmark.LEFT_WRIST]

hombro_der = lm[mp_pose.PoseLandmark.RIGHT_SHOULDER]

mano_der = lm[mp_pose.PoseLandmark.RIGHT_WRIST]

cabeza = lm[mp_pose.[Link]]

# Detectar gesto de "levantar la mano izquierda" para notificación de comer

if mano_izq.y < hombro_izq.y and ultima_accion != "comer":

notificar_necesidad("comer")

ultima_accion = "comer"
mostrar_texto(frame, "La persona necesita comer.")

# Detectar gesto de "levantar ambas manos por encima de la cabeza" para ir al baño

elif mano_izq.y < cabeza.y and mano_der.y < cabeza.y and ultima_accion != "ir al baño":

notificar_necesidad("ir al baño")

ultima_accion = "ir al baño"

mostrar_texto(frame, "La persona necesita ir al baño.")

# Detectar gesto de "cruzar los brazos" para dormir

elif abs(mano_izq.x - mano_der.x) < 0.1 and ultima_accion != "dormir":

notificar_necesidad("dormir")

ultima_accion = "dormir"

mostrar_texto(frame, "La persona necesita dormir.")

# Mostrar el video con la detección de pose

[Link]('Detección de Gestos', frame)

# Salir del bucle con la tecla 'q'

if [Link](10) & 0xFF == ord('q'):

break

[Link]()

[Link]()

# Ejecutar la función principal

detectar_gestos()
*Mano derecha para notificar la comida
*Mano izquierda para ir al baño

+Brazos cruzador para notificar necesidad de dormir


Esto lo hicimos en Visual Studio en este trabajo primero hicimos que identificara diferentes imágenes con una luz
clara y con la que se puede apreciar bien la imagen o el objeto que nosotros queríamos que leyera la computadora
y después con un código hicimos que leyera los gestos o los movimientos que hiciéramos ya que teníamos que
hacer que leyera los movimientos del cuerpo y los gestos que hacíamos y ya por ultimo hicimos que a través de
acciones o movimientos del cuerpo dijera lo que quisiera hacer la persona que este leyendo el programa
dependiendo de las necesidades que desee es dependiendo de la acción que va a hacer para pedir lo que quiere a
través de movimientos de manos y brazos y con ello nos mandaba mensaje sobre lo que queríamos a través de la
aplicación Pushover y con ello podíamos saber lo que quería hacer y saber lo que quería.

También podría gustarte