El proyecto consiste en la predicción de los gestos que se puede realizar con las manos
En este programa de ejemplo se reconoce los gestos de la mano con machine learning usando la detección la detección de los puntos clave(key_points).
Entrenamiento del modelo, pruebalo en collab->
El repositorio contiene lo siguiente:
- Programa de ejemplo
- Modelo de reconocimientos de gestos de las manos(TFLite)
- Aprendizaje de datos para el reconocimiento de gestos y notebooks para el aprendizaje
- mediapipe
- OpenCV 3.4.2 or Later
- Tensorflow 2.3.0 or Later
- scikit-learn 0.23.2 or Later (Solo si va a mostrar la matriz de confusión)
- matplotlib 3.3.2 or Later
Para corre la aplicación de prueba utilice dentro de la carpeta del proyecto
python app.py
Se pueden configurar las siguientes opciones para ejecutar la demo.
- --device
Especificar el dispotivo de la cámara (Default:0) - --width
Anho de la ventana(Default:960) - --height
Alto de la ventana (Default:540) - --use_static_image_mode
Whether to use static_image_mode option for MediaPipe inference (Default:Unspecified) - --min_detection_confidence
Detection confidence threshold (Default:0.5) - --min_tracking_confidence
Tracking confidence threshold (Default:0.5)
│ app.py │ detectorDeGestosv5.ipynb │ ├─model │ ├─keypoint_classifier │ │ datasetDeGestos_v4.1.csv │ │ datasetDeGestos_v4.1.hdf5 │ │ keypoint_classifier.py │ │ keypoint_classifier.tflite │ └─ keypoint_classifier_label.csv │ └─utils └─cvfpscalc.py
Es el programa de prueba
Este es script para el modelo de entrenamiento para el reconocimiento de gestos.
This directory stores files related to hand sign recognition.
The following files are stored.
- Training data(keypoint.csv)
- Trained model(keypoint_classifier.tflite)
- Label data(keypoint_classifier_label.csv)
- Inference module(keypoint_classifier.py)
Modulo para calcular los fps.
Agregar y cambiar data de entrenamiento para el reconocimiento de gestos de manos.
Presionamos para para guardar los puntos clave(Se muestra como 「MODE:Logging Key Point」)
Si se presiona 0 hasta el 9, los puntos clave se agregaran al archivo csv "model/keypoint_classifier/keypoint.csv"
1st columna: Numero presionado (usado como clase ID), 2nd y siguientes columnas: Coordenadas de puntos clave.
Los puntos clave coordinados
Las coordenadas del punto clave son las que han sido sometidas al siguiente preprocesamiento hasta 5.
Como estado inicial, hay tres 5 tipos de datos de aprendizaje los cuales inclue:mano abierto(Clase ID:0), mano cerrada(Clase ID:1), apuntando (Class ID: 2),Me gusta (Class Id:3) y U pose (Class ID:4).
Abrir "detectorDeGestosv5.ipynb" en Jupyter Notebook y ejecutar todas las fuciones
Para cambiar el numero de clases de entramiento cambie el valor de la variable "NUM_CLASSES = 4"
y modifique el label "model/keypoint_classifier/keypoint_classifier_label.csv" al que corresponde.
La imagen del modelo "detectorDeGestosv5.ipynb" es la siguiente:
Este proyecto está bajo Apache v2 license.