Guia do detetor de equipamento de proteção individual (EPI)

cartão do modelo de esbatimento de pessoas na consola

O modelo Detector de equipamento de proteção individual (EPI) ajuda a verificar a presença de equipamento que limita a exposição a perigos num local de trabalho ou num ambiente comunitário.

O modelo deteta pessoas e os artigos de EPI (luvas, máscaras e capacetes) numa pessoa específica. O modelo deteta os artigos de EPI e se os artigos cobrem as partes do corpo humano correspondentes. O modelo comunica estas informações de cobertura como uma classificação de cobertura que varia entre [0 e 1]. O modelo aceita uma stream de vídeo como entrada. O modelo produz resultados de deteção como um protocol buffer que pode ver no BigQuery. O modelo é executado a 1 FPS.

O operador de deteção de EPI tem três parâmetros de controlo que pode definir:

  • Coberturas para a cabeça: o operador produz informações sobre artigos de EPI relacionados com a cobertura da cabeça. Defina este valor na Google Cloud consola ou defina enableHeadCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.
  • Coberturas faciais: o operador produz informações de artigos de EPI relacionados com a cobertura facial. Defina este valor na Google Cloud consola ou defina enableFaceCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.
  • Coberturas para as mãos: o operador produz informações sobre artigos de EPI relacionados com a cobertura das mãos. Defina este valor na Google Cloud consola ou defina enableHandsCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.

Especificações da app do modelo de detetor de EPI

Use as instruções seguintes para criar um modelo de detetor de EPP na Google Cloud consola.

Consola

Crie uma app na Google Cloud consola

  1. Para criar uma app de deteção de EPI, siga as instruções em Crie uma aplicação.

    Aceda ao separador Aplicações

Adicione um modelo de detetor de EPI

  1. Quando adiciona nós de modelos, selecione o PPE detector na lista de modelos pré-formados.

  2. Defina os tipos de EPI que quer detetar no menu de opções.

Adicione um conetor do BigQuery

  1. Para usar a saída, associe a app a um conector do BigQuery.

    Para obter informações sobre a utilização do conetor do BigQuery, consulte o artigo Estabeleça ligação e armazene dados no BigQuery. Para ver informações sobre os preços do BigQuery, consulte a página Preços do BigQuery.

Veja os resultados da saída no BigQuery

Depois de o modelo gerar dados para o BigQuery, veja as anotações de saída no painel de controlo do BigQuery.

Se não especificou um caminho do BigQuery, pode ver o caminho criado pelo sistema na página do Studio do Vertex AI Vision.

  1. Na Google Cloud consola, abra a página do BigQuery.

    Aceda ao BigQuery

  2. Selecione Expandir junto ao projeto de destino, ao nome do conjunto de dados e ao nome da aplicação.

    Selecione a tabela de apps no BigQuery

  3. Na vista de detalhes da tabela, clique em Pré-visualizar. Veja os resultados na coluna anotação. Para uma descrição do formato de saída, consulte a saída do modelo.

A aplicação armazena os resultados por ordem cronológica. Os resultados mais antigos são o início da tabela, enquanto os resultados mais recentes são adicionados ao final da tabela. Para verificar os resultados mais recentes, clique no número da página para aceder à última página da tabela.

Saída do modelo

O resultado do modelo inclui uma data/hora, as caixas de deteção, as etiquetas de objetos que correspondem às caixas e as pontuações de confiança desse objeto. A taxa do fluxo de saída é de um frame por segundo.

A saída do modelo é um formato de buffer de protocolo que inclui informações sobre o frame do vídeo e o resultado da previsão da deteção de EPI. O objetivo do modelo é verificar se as pessoas estão a usar corretamente equipamento de proteção. Como resultado, o modelo foca-se na deteção de pessoas e no EPI que a pessoa usa. A saída do modelo foca-se na deteção de pessoas. Para cada pessoa detetada, o modelo indica o EPI em torno da pessoa e a pontuação de cobertura de cada peça de equipamento.

No exemplo de buffer do protocolo que se segue, tenha em atenção o seguinte.

  • Hora atual: a data/hora indica a hora em que o resultado da inferência é gerado.
  • Pessoas detetadas: o resultado principal da deteção que inclui uma caixa com identificação de pessoa, várias caixas com identificação de EPI e uma pontuação de cobertura para cada parte do corpo.
  • Caixa de pessoa identificada: a caixa delimitadora, a pontuação de confiança e a entidade de pessoa.
  • Caixa de EPI identificado: a caixa delimitadora, a pontuação de confiança e a entidade de EPI.

Objeto JSON de saída de anotação de exemplo

{
  "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"
          }
      }
    }
  ]
}

Definição do buffer 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áticas recomendadas e limitações

Para ter os melhores resultados quando usar o detetor de EPI, considere o seguinte quando obtiver dados e usar o modelo.

Recomendações de dados de origem

Recomendado: quando possível, os objetos de deteção devem ficar imóveis e de frente para a câmara.

Dados de imagens de exemplo que o detetor de EPIs consegue processar corretamente:

Imagem de exemplo de uma pessoa de frente para a câmara com um tecido para cobrir a cara
Origem da imagem: Ani Kolleshi no Unsplash.
Imagem de exemplo de uma pessoa de frente para a câmara com um tecido para cobrir a cara
Origem da imagem: Ahsanization no Unsplash.
Imagem de exemplo de uma pessoa de frente para a câmara com um tecido para cobrir a cara
Origem da imagem: Anastasiia Chepinska no Unsplash.

Não recomendado: evite dados de imagens em que os principais artigos de EPI sejam demasiado pequenos na moldura.

Dados de imagens de amostra que o detetor de EPI não consegue processar corretamente:

Imagem de exemplo de artigos de EPI demasiado pequenos para serem detetados
Origem da imagem: Josue Isai Ramos Figueroa no Unsplash.

Não recomendado: evite dados de imagens que mostrem os principais artigos de EPI a partir de um ponto de vista invulgar ou ângulos irregulares.

Dados de imagens de amostra que o detetor de EPI não consegue processar corretamente:

Imagem de amostra de um artigo de EPI apresentado num ângulo demasiado invulgar para ser detetado
Origem da imagem: Niclas Moser no Unsplash.

Limitações

  • Resolução: a resolução máxima recomendada do vídeo de entrada é 1920 x 1080 e a resolução mínima recomendada é 160 x 120.
  • Tamanho mínimo do objeto detetável: o modelo ignora qualquer objeto na cena que ocupe menos de 5% do tamanho do frame.
  • Iluminação: a iluminação do vídeo deve ser normal. O brilho ou a escuridão extremos nos dados de vídeo podem causar um desempenho inferior do detetor.
  • Posicionamento de artigos de EPI: o modelo de EPI centra-se na análise da utilização adequada de artigos de EPI por parte das pessoas. Como tal, se alguém não estiver a usar um item de EPI, o modelo ignora o item.
  • Tipo de artigo de EPI: o modelo foca-se em equipamento de proteção para construção e não em artigos de EPI médico. Por conseguinte, o detetor pode não funcionar bem em centros médicos ou hospitais.
  • Tipos de EPI personalizados: o modelo de EPI não suporta itens de EPI definidos pelo cliente. O modelo suporta a deteção de capacetes, máscaras e luvas.

Esta lista não é exaustiva e estas limitações e funcionalidades estão sujeitas a modificações futuras do produto.