
El modelo Detector de equipo de protección individual (EPI) te ayuda a verificar la presencia de equipos que limitan la exposición a peligros en un entorno de trabajo o comunitario.
El modelo detecta a las personas y los elementos de EPI (guantes, mascarillas y cascos) de una persona concreta. El modelo detecta los elementos de EPI y si estos cubren las partes del cuerpo correspondientes. El modelo informa de esta información de cobertura como una puntuación que va de 0 a 1. El modelo acepta una emisión de vídeo como entrada. El modelo genera los resultados de detección como un búfer de protocolo que puedes ver en BigQuery. El modelo se ejecuta a un FPS.
El operador de detección de EPIs tiene tres parámetros de control que puedes definir:
enableHeadCoverageDetection
enPersonalProtectiveEquipmentDetectionConfig
.
Coberturas para la cabeza: el operador genera información sobre los elementos del EPP relacionados con la cobertura de la cabeza. Defina este valor en la consola Google Cloud o asigne el valor true a enableFaceCoverageDetection
enPersonalProtectiveEquipmentDetectionConfig
.
Cubiertas faciales: el operador genera información sobre los elementos del EPI relacionados con la cobertura facial. Defina este valor en la consola Google Cloud o asigne el valor true a enableHandsCoverageDetection
como true enPersonalProtectiveEquipmentDetectionConfig
.
Guantes: el operador muestra información sobre los elementos del EPP relacionados con la cobertura de las manos. Defina este valor en la consola Google Cloud o defina
Especificaciones de la aplicación del modelo de detector de EPIs
Sigue estas instrucciones para crear un modelo de detector de EPIs en la consola deGoogle Cloud .
Consola
Crear una aplicación en la Google Cloud consola
Para crear una aplicación de detección de EPIs, sigue las instrucciones que se indican en Crear una aplicación.
Añadir un modelo de detector de EPP
Cuando añadas nodos de modelo, selecciona Detector de PPE en la lista de modelos preentrenados.
En el menú de opciones, define los tipos de EPI que quieras detectar.
Añadir un conector de BigQuery
Para usar la salida, conecta la aplicación a un conector de BigQuery.
Para obtener información sobre cómo usar el conector BigQuery, consulta el artículo Conectar y almacenar datos con BigQuery. Para obtener información sobre los precios de BigQuery, consulta la página Precios de BigQuery.
Ver los resultados en BigQuery
Una vez que el modelo haya enviado los datos a BigQuery, consulta las anotaciones de salida en el panel de control de BigQuery.
Si no has especificado una ruta de BigQuery, puedes ver la ruta creada por el sistema en la página
Studio de Vertex AI Vision.En la Google Cloud consola, abre la página de BigQuery.
Selecciona
Expand (Ampliar) junto al proyecto de destino, el nombre del conjunto de datos y el nombre de la aplicación.En la vista de detalles de la tabla, haga clic en Vista previa. Consulte los resultados en la columna Anotación. Para ver una descripción del formato de salida, consulta Salida del modelo.
La aplicación almacena los resultados en orden cronológico. Los resultados más antiguos se encuentran al principio de la tabla, mientras que los más recientes se añaden al final. Para consultar los resultados más recientes, haz clic en el número de página para ir a la última página de la tabla.
Salida del modelo
La salida del modelo incluye una marca de tiempo, los cuadros de detección, las etiquetas de los objetos que corresponden a los cuadros y las puntuaciones de confianza de ese objeto. La velocidad del flujo de salida es de un fotograma por segundo.
El resultado del modelo es un formato de búfer de protocolo que incluye información sobre el fotograma del vídeo y el resultado de la predicción de detección de EPIs. El objetivo del modelo es comprobar si las personas llevan el equipo de protección correctamente. Por lo tanto, el modelo se centra en detectar personas y el EPI que llevan. La salida del modelo se centra en la detección de personas. Por cada persona detectada, el modelo muestra el EPI que lleva y la puntuación de cobertura de cada pieza del equipo.
En el ejemplo de protocolo de búfer que se muestra a continuación, ten en cuenta lo siguiente.
- Hora actual: la marca de tiempo indica la hora en la que se obtiene el resultado de la inferencia.
- Personas detectadas: el resultado principal de la detección, que incluye un cuadro de persona identificada, varios cuadros de EPI identificados y una puntuación de cobertura de cada parte del cuerpo.
- Cuadro de la persona identificada: el cuadro delimitador, la puntuación de confianza y la entidad de persona.
- Cuadro delimitador de EPP: el cuadro delimitador, la puntuación de confianza y la entidad de EPP.
Objeto JSON de salida de anotación de muestra
{ "currentTime": "2022-11-10T21:02:13.499255040Z", "detectedPersons": [ { "personId": "0", "detectedPersonIdentifiedBox": { "boxId": "0", "normalizedBoundingBox": { "xmin": 0.486749, "ymin": 0.35927793, "width": 0.048630536, "height": 0.21746585 }, "confidenceScore": 0.31775203, "personEntity":{ "personEntityId":"0" } }, "detected_ppe_identified_boxes": { "normalized_bounding_box": { "xmin": 0.07268746, "ymin": 0.80575824, "width": 0.22973709, "height": 0.18754286 }, "confidence_score": 0.45171335, "ppe_entity": { "ppe_label_string": "Glove", "ppe_supercategory_label_string": "Hand Coverage" } }, "detected_ppe_identified_boxes":{ "normalized_bounding_box":{ "xmin": 0.35457548, "ymin": 0.016402662, "width": 0.31828704, "height": 0.18849815 }, "confidence_score": 0.44129524, "ppe_entity":{ "ppe_label_string": "Helmet", "ppe_supercategory_label_string": "Head Coverage" } } } ] }
Definición de búfer de protocolo
// Output format for Personal Protective Equipment Detection Operator
message PersonalProtectiveEquipmentDetectionOutput {
// Current timestamp
protobuf.Timestamp current_time = 1;
// The entity info for annotations from person detection prediction result
message PersonEntity {
// Entity id
int64 person_entity_id = 1;
}
// The entity info for annotations from PPE detection prediction result
message PPEEntity {
// Label id
int64 ppe_label_id = 1;
// Human readable string of the label (Examples: helmet, glove, mask)
string ppe_label_string = 2;
// Human readable string of the super category label (Examples: head_cover,
// hands_cover, face_cover)
string ppe_supercategory_label_string = 3;
// Entity id
int64 ppe_entity_id = 4;
}
// Bounding Box in the normalized coordinates
message NormalizedBoundingBox {
// Min in x coordinate
float xmin = 1;
// Min in y coordinate
float ymin = 2;
// Width of the bounding box
float width = 3;
// Height of the bounding box
float height = 4;
}
// PersonIdentified box contains the location and the entity info of the
// person
message PersonIdentifiedBox {
// An unique id for this box
int64 box_id = 1;
// Bounding Box in the normalized coordinates
NormalizedBoundingBox normalized_bounding_box = 2;
// Confidence score associated with this box
float confidence_score = 3;
// Person entity info
PersonEntity person_entity = 4;
}
// PPEIdentified box contains the location and the entity info of the PPE
message PPEIdentifiedBox {
// An unique id for this box
int64 box_id = 1;
// Bounding Box in the normalized coordinates
NormalizedBoundingBox normalized_bounding_box = 2;
// Confidence score associated with this box
float confidence_score = 3;
// PPE entity info
PPEEntity ppe_entity = 4;
}
// Detected Person contains the detected person and their associated
// PPE and their protecting information
message DetectedPerson {
// The id of detected person
int64 person_id = 1;
// The info of detected person identified box
PersonIdentifiedBox detected_person_identified_box = 2;
// The info of detected person associated ppe identified boxes
repeated PPEIdentifiedBox detected_ppe_identified_boxes = 3;
// Coverage score for each body part
// Coverage score for face
optional float face_coverage_score = 4;
// Coverage score for eyes
optional float eyes_coverage_score = 5;
// Coverage score for head
optional float head_coverage_score = 6;
// Coverage score for hands
optional float hands_coverage_score = 7;
// Coverage score for body
optional float body_coverage_score = 8;
// Coverage score for feet
optional float feet_coverage_score = 9;
}
// A list of DetectedPersons
repeated DetectedPerson detected_persons = 2;
}
Prácticas recomendadas y limitaciones
Para obtener los mejores resultados al usar el detector de EPIs, tenga en cuenta lo siguiente al obtener datos y usar el modelo.
Recomendaciones de datos de origen
Recomendación: Si es posible, pide a las personas que se queden quietas y miren a la cámara.
Datos de imagen de muestra que el detector de EPIs puede procesar correctamente:
![]() |
![]() |
![]() |
No recomendado: evita que los elementos clave del EPP sean demasiado pequeños en el encuadre.
Datos de imagen de muestra que el detector de EPIs no puede procesar correctamente:
![]() |
No se recomienda: evite los datos de imagen que muestren los elementos clave del EPI desde un punto de vista poco habitual o con ángulos irregulares.
Datos de imagen de muestra que el detector de EPIs no puede procesar correctamente:
![]() |
Limitaciones
- Resolución: la resolución máxima de vídeo de entrada recomendada es 1920x1080 y la mínima recomendada es 160x120.
- Tamaño mínimo detectable de los objetos: el modelo ignora cualquier objeto de la escena que ocupe menos del 5% del tamaño del fotograma.
- Iluminación: la iluminación del vídeo debe ser normal. Un brillo o una oscuridad extremos en los datos de vídeo pueden reducir el rendimiento del detector.
- Colocación de EPIs: el modelo de EPIs se centra en analizar si los usuarios utilizan correctamente los EPIs. Por lo tanto, si una persona no lleva un EPI, el modelo lo ignora.
- Tipo de EPI: el modelo se centra en los equipos de protección para la construcción y no en los EPIs médicos. Por lo tanto, es posible que el detector no funcione correctamente en centros médicos u hospitales.
- Tipos de EPIs personalizados: el modelo de EPIs no admite elementos de EPIs definidos por el cliente. El modelo admite la detección de cascos, mascarillas y guantes.
Esta lista no es exhaustiva y estas limitaciones y funciones están sujetas a futuras modificaciones del producto.