Detección de EPI ausentes: entrena Ultralytics YOLO con Construction-PPE
Descubre cómo Construction-PPE etiqueta cascos, chalecos y guantes que faltan, y luego entrena Ultralytics YOLO para detectar EPI ausentes con las cámaras de tu propia obra.
Paula Derrenger13 min de lectura
Para detectar EPI ausentes de forma fiable, etiqueta solo lo que la cámara puede ver. En el nuevo conjunto de datos Construction-PPE de Ultralytics, una cabeza oculta detrás de una viga de acero no significa que falte un casco. Solo se etiqueta con una caja no_helmet una cabeza que se ve realmente y no lleva casco; las cabezas ocultas o fuera del encuadre no reciben ninguna etiqueta de equipo ausente.
Publicamos el conjunto de datos el 3 de noviembre de 2026 en Ultralytics 8.4.200: 1000 imágenes, 12 clases y 14 863 cajas delimitadoras revisadas de personas, carretillas elevadoras, equipos de protección y equipos ausentes visibles; las imágenes y anotaciones se distribuyen con la licencia CC BY 4.0. Entre sus clases se incluyen una clase específica no_vest y una clase forklift, y el equipo de Ultralytics revisó las anotaciones. Esta guía explica qué contiene el conjunto de datos, cómo funcionan sus reglas de etiquetado de EPI ausentes y cómo entrenar, validar y desplegar un modelo Ultralytics YOLO26 con él.
Construction-PPE es un conjunto de datos revisado de detección de EPI con 12 clases#
Construction-PPE es un conjunto de datos original de detección de objetos para obras y entornos industriales, creado y publicado como código abierto en noviembre de 2026 por el equipo de Ultralytics. Sus imágenes abarcan obras, talleres, almacenes, zonas de carga y trabajos de mantenimiento, con diversos puntos de vista, condiciones de iluminación, distribuciones de trabajadores y actividad de carretillas elevadoras. Está diseñado para enseñar a un detector tanto el aspecto de los equipos de protección como el de su ausencia visible.
Estos son los datos importantes que debes conocer antes de entrenar, según la documentación del conjunto de datos Construction-PPE:
- Tamaño: 1000 imágenes y 14 863 cajas delimitadoras en 12 clases
- División: división fija de 800/200 para entrenamiento y validación, sin conjunto de prueba independiente
- Formato: cajas delimitadoras en formato Ultralytics YOLO, listas para entrenar sin conversión
- Imágenes: imágenes recopiladas por personas y generadas, con composiciones apaisadas, verticales y cuadradas, y distintas resoluciones
- Anotación: anotación humana experta combinada con anotación automática mediante IA, completada en noviembre de 2026 por el equipo de Ultralytics
- Licencia: imágenes y anotaciones bajo Creative Commons Reconocimiento 4.0 Internacional, que permite el uso comercial con atribución
Las imágenes generadas no son fotografías de sucesos reales; por eso, la prueba final de cualquier modelo entrenado aquí debe hacerse con grabaciones de tus propias cámaras.
Puedes explorar todas las imágenes y anotaciones en Ultralytics Platform, clonar el conjunto de datos en tu espacio de trabajo o entrenar directamente con él.

Cada clase de equipo tiene una clase correspondiente de equipo ausente#
Las 12 clases se dividen en tres grupos: cinco clases de equipos, cinco clases de equipos ausentes y dos clases para las personas y los vehículos que se desplazan por una obra. Los ID que aparecen a continuación coinciden con las anotaciones y construction-ppe.yaml:
| ID | Clase | Qué se encuadra |
|---|---|---|
| 0 | helmet | Casco de protección o casco de obra |
| 1 | gloves | Guantes de trabajo |
| 2 | vest | Chaleco, chaqueta o camisa de alta visibilidad |
| 3 | boots | Botas o calzado de trabajo de protección |
| 4 | goggles | Gafas de protección |
| 5 | Person | Persona |
| 6 | no_helmet | Cabeza visible sin casco |
| 7 | no_goggle | Zona ocular visible sin gafas de protección |
| 8 | no_gloves | Mano visible sin guante |
| 9 | no_boots | Pie o calzado visible sin calzado de protección para el trabajo |
| 10 | forklift | Carretilla elevadora |
| 11 | no_vest | Torso visible sin ropa de alta visibilidad |
Cada clase de equipo tiene una clase «ausente» correspondiente. Esta asociación proporciona al modelo ejemplos directos de cómo es la ausencia, para que pueda marcar una cabeza descubierta o un torso sin chaleco como detecciones propias, en lugar de dejar que tu código deduzca la ausencia a partir de una caja que falta.

Las etiquetas de EPI ausentes señalan partes visibles del cuerpo, no suposiciones#
Las clases de equipo ausente necesitan una definición precisa. Si los anotadores encuadraran todas las cabezas en las que no pudieran ver un casco, incluidas las ocultas tras vigas o cortadas por el borde del encuadre, el modelo aprendería que la oclusión en sí misma implica una infracción.
Construction-PPE aplica una regla coherente a las cinco clases de equipo ausente: una caja de equipo ausente marca la región visible del cuerpo donde debería estar el equipo, y una parte del cuerpo oculta o fuera del encuadre no demuestra por sí sola que falte el equipo. En la práctica:
- Se coloca una caja
no_helmeten una cabeza visible que no lleva casco. - Se coloca una caja
no_glovesen una mano descubierta visible, no en una mano escondida detrás de una caja de herramientas. - Se coloca una caja
no_vesten un torso visible sin ropa de alta visibilidad. - Se coloca una caja
no_bootsen un pie o calzado visible que no sea calzado de protección para el trabajo. - Se coloca una caja
no_goggleen una zona ocular visible sin gafas de protección. - Las clases de equipos encuadran el propio elemento visible, así que un chaleco recibe una caja y la persona que lo lleva recibe otra.

A la izquierda, la cabeza del trabajador queda detrás de la plancha de contrachapado que transporta, así que las etiquetas no indican nada sobre si lleva casco. A la derecha, tanto la cabeza descubierta visible como el torso visible sin ropa de alta visibilidad reciben cajas de equipo ausente.
Esto también es importante para el etiquetado de datos fuera de este conjunto de datos. Si amplías Construction-PPE con imágenes de tus propias cámaras, etiquétalas siguiendo la misma regla; de lo contrario, el modelo recibirá dos respuestas contradictorias a la misma pregunta. La lección de nuestra Academia sobre buenas prácticas de anotación muestra cómo plasmar este tipo de regla en una guía de etiquetado y por qué una revisión con intervención humana detecta los casos que se le escapan a la automatización.
Carretilla elevadora y no_vest incorporan las zonas de vehículos al mismo modelo#
Muchas normas de obra tienen que ver con personas y vehículos que comparten espacio, no solo con la falta de equipos. La clase forklift incluye vehículos y trabajadores en el mismo detector, de modo que un único modelo YOLO26 puede detectar de una vez una carretilla elevadora, a las personas que hay cerca y los torsos visibles sin ropa de alta visibilidad.
Con una clase específica no_vest, un modelo entrenado con Construction-PPE puede devolver cajas forklift, Person y no_vest para una zona de carga en una sola pasada.

Relacionar esas cajas para generar un evento es lógica de la aplicación: asociar cada caja no_vest con la persona adecuada, decidir qué significa estar «cerca» de la carretilla elevadora y establecer cuánto tiempo debe mantenerse una condición. Si necesitas medir la proximidad, la guía de cálculo de distancias calcula la distancia en píxeles entre los centros de las cajas seleccionadas; para obtener distancias reales, hace falta calibrar la cámara.
Entrena YOLO26 con Construction-PPE en unas pocas líneas#
Empieza con el paquete Ultralytics para Python. YOLO descarga y extrae el archivo del conjunto de datos la primera vez que se utiliza.
from ultralytics import YOLO
# Empieza con un modelo YOLO26 nano preentrenado con COCO
model = YOLO("yolo26n.pt")
# Entrena con el archivo de Construction-PPE
model.train(
data="https://github.com/ultralytics/assets/releases/download/v0.0.0/construction-ppe.zip",
epochs=100,
imgsz=640,
)El comando equivalente de CLI es una sola línea:
yolo detect train model=yolo26n.pt data=https://github.com/ultralytics/assets/releases/download/v0.0.0/construction-ppe.zip epochs=100 imgsz=640El modelo YOLO26n es una opción razonable para la primera ejecución y comprobar la canalización. Los guantes, las gafas y las botas son objetos pequeños a las distancias habituales de las cámaras de obra, así que compara con un tamaño mayor, como YOLO26s o YOLO26m, antes de decidirte; la documentación de entrenamiento explica el tamaño de imagen, el tamaño del lote y todos los demás argumentos. Ultralytics también publica un cuaderno de Colab para Construction-PPE por si prefieres usar una GPU gratuita en el navegador.
¿Prefieres no escribir código? Entrena el modelo en Ultralytics Platform#
En Ultralytics Platform, abre el conjunto de datos Construction-PPE e inicia el entrenamiento en la nube con un modelo YOLO26; elige las épocas, el tamaño de imagen y la GPU desde el navegador. Platform registra las curvas de pérdida, la precisión, la exhaustividad y mAP en cada época, y te permite comparar ejecuciones en paralelo. Para añadir imágenes de tus propias cámaras, clona el conjunto de datos desde Explorar (consulta la guía Explorar de Ultralytics Platform), súbelas y etiquétalas en el editor de anotaciones, donde Smart Annotation puede proponer cajas para que las revises.
Evalúa el modelo por clase, no con una sola media#
Un único valor de mAP oculta la información que necesita un equipo de seguridad. Un modelo puede obtener una buena puntuación general porque detecta personas, cascos y chalecos de forma fiable, pero pasar por alto la mayoría de los casos no_gloves o no_goggle. Valídalo con métricas por clase:
from ultralytics import YOLO
model = YOLO("runs/detect/train/weights/best.pt")
metrics = model.val() # uses the dataset's 200-image validation split
print(f"mAP50: {metrics.box.map50:.3f} mAP50-95: {metrics.box.map:.3f}")
for c in metrics.box.ap_class_index:
print(f"{model.names[c]:>10} mAP50-95: {metrics.box.maps[c]:.3f}")Lee primero las filas de equipos ausentes y abre la matriz de confusión que guarda la validación. Si se confunden helmet y no_helmet, o rara vez se detecta una clase ausente, revisa las imágenes en las que ha fallado y comprueba cuántas instancias de esa clase contiene la división de entrenamiento antes de cambiar cualquier otra cosa. La guía de métricas de rendimiento de YOLO explica cómo interpretar cada gráfico.
Las 200 imágenes de validación proceden de la misma colección que el conjunto de entrenamiento. Antes de desplegar el modelo, recopila un conjunto independiente de las cámaras que vayas a utilizar y valídalo también con ese conjunto; úsalo para medir el rendimiento en tu obra.
Convierte las detecciones de EPI ausentes en eventos que se puedan revisar#
Como los equipos ausentes tienen su propia clase, la primera versión de una regla de revisión puede ser sencilla: marca cualquier fotograma que contenga una caja de EPI ausente por encima de un umbral de confianza.
from ultralytics import YOLO
MISSING = {"no_helmet", "no_goggle", "no_gloves", "no_boots", "no_vest"}
model = YOLO("runs/detect/train/weights/best.pt")
for r in model.predict("site_camera_frame.jpg", conf=0.4):
for cls, conf in zip(r.boxes.cls.int().tolist(), r.boxes.conf.tolist()):
if r.names[cls] in MISSING:
print(f"Review: {r.names[cls]} ({conf:.2f})")Para vídeo, sustituye predict por track. El seguimiento de objetos asigna ID a las detecciones a lo largo de los fotogramas. A continuación, tu aplicación asocia cada caja de EPI ausente a la trayectoria de una persona; por ejemplo, comprobando qué caja Person la contiene, y aplica reglas de persistencia y de eventos para que los revisores vean un solo evento en lugar de una ráfaga de fotogramas:
Desde Ultralytics 8.4.202, las predicciones guardadas de secuencias RTSP y cámaras web utilizan la frecuencia de fotogramas propia de cada secuencia, por lo que los clips grabados se reproducen a la velocidad correcta. Cuando el modelo esté listo, expórtalo a ONNX, TensorRT, OpenVINO u otro formato para tu dispositivo periférico, o despliégalo desde Platform en un punto de conexión dedicado.
Un detector informa de lo que ve la cámara. No puede determinar si un casco está certificado o si un chaleco está dañado, así que envía sus eventos a una persona que pueda hacerlo.
Quién debería usar Construction-PPE#
Usa Construction-PPE como punto de partida para detectar sus cinco tipos de EPI y su ausencia en obras, talleres, almacenes o zonas de carga. Es una buena opción si necesitas:
- Detectar equipos ausentes, no solo equipos presentes. Cinco clases específicas de equipos ausentes, etiquetadas con una regla coherente basada en partes visibles del cuerpo, proporcionan al modelo ejemplos directos de equipos que faltan.
- Detectar vehículos y peatones con un solo modelo. Las clases
forklift,Personyno_vestcubren en conjunto el caso de las zonas de carga. - Licencia clara del conjunto de datos y etiquetas listas para entrenar. Las imágenes y anotaciones se distribuyen con la licencia CC BY 4.0, que permite el uso comercial con atribución, y las etiquetas en formato YOLO sirven para entrenar con YOLO26 sin conversión. Los modelos YOLO que entrenes con este conjunto tienen una licencia independiente; consulta la pregunta sobre licencias más abajo.
Si tu proyecto solo necesita cascos de obra y chalecos a gran escala, Ultralytics Platform también ofrece Safety Helmet and Reflective Jacket, con 10 138 imágenes y 2 clases. Para detectar solo cascos, Safety Helmet Detection contiene 5000 imágenes etiquetadas como head, helmet y person. Para conocer el flujo de trabajo completo en una obra, desde definir la primera regla hasta supervisar un despliegue, consulta nuestra guía sobre detección de EPI y seguridad laboral con Ultralytics.
Preguntas frecuentes
Entrena con clases específicas de equipos ausentes, como
no_helmetyno_vest; etiquétalas solo cuando la parte del cuerpo sea visible y comprueba sus métricas por clase con imágenes de tus propias cámaras antes de confiar en las alertas. Construction-PPE incluye cinco de estas clases, con una regla de visibilidad coherente.Depende de las clases que necesites. Construction-PPE de Ultralytics incluye 12 clases, entre ellas cinco clases de equipos ausentes,
forkliftyPerson, en 1000 imágenes revisadas bajo la licencia CC BY 4.0. Si solo necesitas cascos y chalecos, Safety Helmet and Reflective Jacket, en Ultralytics Platform, ofrece más imágenes; Safety Helmet Detection solo incluye cascos. En cualquier caso, para desplegar el modelo en una obra, añade imágenes de tus propias cámaras.La versión publicada en noviembre de 2026 contiene 1000 imágenes, 14 863 cajas delimitadoras y 12 clases, con una división de 800/200 para entrenamiento y validación. Las clases son helmet, gloves, vest, boots, goggles, Person, no_helmet, no_goggle, no_gloves, no_boots, forklift y no_vest.
Instala o actualiza el paquete
ultralytics, cargayolo26n.pty llama amodel.train()con la URL del archivo de Construction-PPE comodata, por ejemplo conepochs=100yimgsz=640. También puedes entrenar sin código mediante el entrenamiento en la nube de Ultralytics Platform.Las clases específicas de equipos ausentes proporcionan al modelo ejemplos directos de cómo es la ausencia, para que pueda detectar una cabeza descubierta visible como un objeto propio. Una regla sencilla como «ninguna caja de casco dentro de la caja de la persona» puede confundir una cabeza oculta con una cabeza descubierta, a menos que también compruebe la visibilidad. Construction-PPE etiqueta los equipos ausentes solo cuando la parte del cuerpo es visible, lo que permite utilizar el primer enfoque.
Sí. Las imágenes y anotaciones se distribuyen bajo la licencia Creative Commons Reconocimiento 4.0 Internacional, que permite compartirlas y adaptarlas, incluso para uso comercial, siempre que se atribuya la autoría. Atribuye el trabajo al equipo de Ultralytics, incluye enlaces al conjunto de datos y a la licencia, e indica cualquier cambio. Esto solo se aplica al conjunto de datos: los modelos Ultralytics YOLO que entrenes con él tienen una licencia independiente (consulta la pregunta siguiente).
De forma predeterminada, todos los modelos entrenados con Ultralytics YOLO están sujetos a AGPL-3.0, incluidos los modelos entrenados con Construction-PPE. Para usar el código o los modelos Ultralytics YOLO, debes publicar todo tu proyecto como código abierto bajo AGPL-3.0 u obtener una licencia Enterprise de Ultralytics. Esto también se aplica al uso interno y a la investigación y el desarrollo. Si quieres mantener tu proyecto privado, necesitas una licencia Enterprise.
Escrito por
Comentarios
Haz una pregunta, comparte tus resultados o ayuda a otra persona.










