Identificación de Sistemas de Seguridad en Hospitales Usando YOLOv5

Metodologia

En esta guía, seguiremos los pasos del sitio oficial de YOLOv5 con algunas modificaciones personalizadas para entrenar el modelo y realizar pruebas de detección tanto en imágenes como en video. Además, mostraremos cómo configurar un entorno local con conda y ejecutar YOLOv5 utilizando GPU NVIDIA.

1. Entrenamiento de la Red

El primer paso es descargar los datos de entrenamiento comprimidos y extraerlos. Utilizamos el siguiente comando:

!unzip -q ../data.zip -d ../

Luego, creamos un archivo custom.yaml con la siguiente información y lo guardamos en la ruta yolov5/data:

path: ../data  # dataset root dir
train: ../data/images/train/  # train images (relative to 'path') 128 images
val: ../data/images/val/  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
nc: 1  # number of classes
names: ['gun']  # class names

Finalmente, ejecutamos la línea de comando para iniciar el entrenamiento del modelo:

$ !python train.py --img 640 --batch 4 --epochs 100 --data custom.yaml --weights yolov5s.pt --cache

2. Prueba en Imágenes

Para probar el modelo entrenado en una imagen, utilizamos el siguiente comando:

$ !python detect.py --weights /content/yolov5/runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source "../guntest.jpg"

Y mostramos la imagen con las detecciones:

$ display.Image(filename='../guntest.jpg', width=600)

3. Prueba en Entorno Local con Video

Para ejecutar YOLOv5 en video en un entorno local, primero configuramos un entorno utilizando conda e instalamos los requisitos adecuados. Sigue estos pasos:

3.1 Descargar e Instalar Miniconda

Primero, descarga e instala Miniconda. Luego, crea y activa un nuevo entorno de conda con los siguientes comandos:

$ conda create -n YoloV5Test
$ conda activate YoloV5Test

3.2 Instalar los Requerimientos

Instalamos Python 3.7, Jupyter y las dependencias necesarias:

$ conda install python=3.10
$ pip install jupyter
$ conda install ipykernel
$ python -m ipykernel install --user --name YoloV5Test --display-name "YoloV5Test"

A continuación, clonamos el repositorio de YOLOv5 e instalamos las dependencias:

$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -qr requirements.txt

3.3 Ejecutar la Inferencia en Video

Abre Jupyter Notebook con el siguiente comando:

$ jupyter notebook

Luego, abre el archivo yolov5video.ipynb y ejecuta la inferencia en video desde la cámara web o cualquier otro archivo de video que desees probar.

4. Uso de PyTorch con GPU NVIDIA

4.1 Comprobar Compatibilidad con GPU

Para aprovechar la aceleración de la GPU en PyTorch, primero debemos verificar que tu GPU sea compatible con CUDA y que las versiones de las bibliotecas necesarias sean compatibles.

4.2 Instalar PyTorch con CUDA

Instalamos la versión adecuada de PyTorch con soporte CUDA utilizando el siguiente comando:

$ pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

4.3 Verificar la Instalación

Verificamos si PyTorch puede detectar la GPU con los siguientes comandos:

$ import torch
$ import torchvision
$ print(torch.cuda.is_available())
$ print(torch.__version__)
$ print(torchvision.__version__)

5. Ejecución de Inferencia Usando la GPU

Para ejecutar la detección de objetos utilizando la GPU, ejecutamos el siguiente comando de inferencia, utilizando el archivo de pesos entrenados best.pt y la cámara web como fuente (código source 0):

$ python detect.py --weights best.pt --source 0

Conclusión

En esta guía, hemos cubierto el entrenamiento de YOLOv5 con modificaciones personalizadas, las pruebas en imágenes y video, la configuración de un entorno local utilizando conda, y cómo aprovechar la GPU de NVIDIA para mejorar la velocidad de inferencia. Este proceso puede ayudarte a implementar detección automática en diferentes escenarios y aprovechar el poder de YOLOv5 para identificar sistemas de seguridad en hospitales, como alarmas y rutas de escape.