diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..61a1ff7 --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,155 @@ + + +# Overwatch-AI-Aimbot + +![alt text](Assets/front.jpg) + +Detección de objetos con arquitectura YOLO/MOBILENET + +Se incluyen 2 modelos preentrenados en Workspace/pre-trained-models: + +1. SSD_MobileNet (320x320) +2. SSD_MobileNet (640x640) + +Descomprima estos archivos .tar.gz usando `unzip.py` + +Para más modelos preentrenados, descárguelos en https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md + +## Paquetes Requeridos +1. API de Detección de Objetos de Tensorflow: + + https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html + +2. Herramienta LabelImg: https://github.com/tzutalin/labelImg + +3. Protocol Buffers: https://github.com/protocolbuffers/protobuf/releases + +4. Modelos Preentrenados: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md + + + +## Estructura de Archivos + +``` +─ Overwatch-AI-Aimbot/ + ├─ Workspace/ + ├─ annotations/ + ├─ images/ + ├─ screenshots/ + ├─ train/ + ├─ test/ + ├─ my_models/ + ├─ pre-trained-models/ + ├─ processImg.py + ├─ unzip.py + ├─ testDetection.py + ├─ train.py + ├─ generate_tfrecord.py + +─ RealTimeObjectDetection/ + ├─ Tensorflow + ├─ models/ + ├─ research/ + ├─ object_detection/ + ├─ scripts/ + ├─ generate_tfrecord.py + ├─ labelImg/ + ├─ labelImg.py + +``` + +**Overwatch-AI-Aimbot**: + +- Clonee este repositorio +- Coloque todas las imágenes en Workspace/images/ +- Coloque todos los modelos preentrenados en Workspace/pre-trained-models + +**RealTimeObjectDetection**: + +- Cree la carpeta /RealTimeObjectDetection en el mismo directorio que la carpeta /Overwatch-AI-Aimbot +- La carpeta /Tensorflow contiene el repositorio "models", el cual se clona vía https://github.com/tensorflow/models +- La carpeta /Tensorflow contiene una carpeta "/scripts". Cree esta carpeta y pegue el archivo `generate_tfrecord.py` aquí +- /RealTimeObjectDetection contiene el repositorio "labelImg", el cual se clona vía https://github.com/tzutalin/labelImg + +## preprocessImg.py +Se utiliza para renombrar los nombres de archivos de imagen en orden ascendente +(Ej. 1.png, 2.png, etc.) + +Debe renombrar las imágenes primero, antes de hacer anotaciones usando labelImg.py + +``` +python preprocessImg.py [--filepath] +``` +--filepath: Carpeta que contiene las imágenes + +Ej: `python processImg.py Workspace/images/screenshots` + + + +## unzip.py + +Se utiliza para descomprimir archivos .tar.gz o .tar. Útil para descomprimir archivos de modelos preentrenados + +```python +python unzip.py +``` + + + +## train.py +Se utiliza para procesar datos y entrenar el modelo +- Los Tfrecords y labelmap generados estarán en Workspace/annotataions +- Los pesos del modelo se guardarán en Workspace/my_model/{{CUSTOM_MODEL_NAME}}/ + + +Automáticamente: +- Dividirá las imágenes en carpetas de train/test +- Editará el archivo pipeline.config +- Creará tfrecords a partir de las imágenes +``` +python train.py [-L --labels] [-E --epochs] [-N --name] [-T --split] [-s --trainSize] [-M --model] +``` + +>--labels: (str) Etiquetas en formato json. Debe seguir la convención {'name': ..., 'id': ...}, donde 'name' es la etiqueta asignada en la herramienta labelImg.py. +> Separe las etiquetas usando triple asterisco (Ej. "{...}* * *{...}" ) + +>--epochs: (int) Número de épocas de entrenamiento a ejecutar + +>--name: (str) Nombre del modelo personalizado + +>--split: (str; opcional) `"yes"` o `"no"` (Por defecto 'no'). Si es "yes", dividirá automáticamente las imágenes y anotaciones en la carpeta /screenshots hacia las carpetas /train y /test utilizando trainSize + +>--trainSize: (float; opcional) Tamaño del conjunto de entrenamiento (0-1, por defecto 1) + +> --model: (str; opcional) Modelo preentrenado a usar. Especifique el nombre de la carpeta que contiene el modelo preentrenado (ubicada en Workspace/pre-trained-models/) +> +> (Por defecto ssd_mobilenet_v2_fpnlite_320x320_coco17_tpu-8) + +Ej: +`python train.py -L "{'name': 'head', 'id': 1 }***{'name': 'body', 'id': 2 }" -E 50 -N "overwatch_mobnet" -T yes -S 0.7` -M "centernet_resnet50" + +Internamente, esto creará: +- label=[{'name': 'head', 'id': 1 }, {'name': 'body', 'id': 2 }] +- Ejecutará durante 50 épocas +- Creará un modelo llamado "Overwatch_mobnet" +- Dividirá los archivos en la carpeta /screenshot, con el 70% yendo a /train y el 30% restante a /test +- Entrenará utilizando el modelo preentrenado "centernet_resnet50", que se puede encontrar en Workspace/pre-trained-models/centernet_resnet50 +- Ejecutará el entrenamiento del modelo, donde los resultados podrán encontrarse en my_models/overwatch_mobnet/ + + + +## testDetection.py + +Se utiliza para probar custom_model + +``` +python testDetection.py +``` + + + +## generate_tfrecord.py + +Se utiliza para la creación del formato TFRecord a partir de archivos de imagen + +Pegue el archivo `generate_tfrecord.py` en /RealTimeObjectDetection/Tensorflow/scripts