Guia do detector de equipamentos de proteção individual (EPI)

Card de modelo de desfoque de pessoas no console

O modelo de detector de equipamento de proteção individual (EPI) ajuda a verificar a presença de equipamentos que limitam a exposição a perigos em um local de trabalho ou em um ambiente comunitário.

O modelo detecta pessoas e EPIs (luvas, máscaras e capacetes) em uma pessoa específica. O modelo detecta os EPIs e se eles cobrem as partes correspondentes do corpo humano. O modelo informa essas informações de cobertura como uma pontuação de cobertura que varia de [0, 1]. O modelo aceita um stream de vídeo como entrada. O modelo gera os resultados da detecção como um buffer de protocolo que pode ser visualizado no BigQuery. O modelo é executado a 1 QPS.

O operador de detecção de PPE tem três parâmetros de controle que podem ser definidos:

  • Protetores para a cabeça: o operador gera informações sobre o EPI relacionado à cobertura da cabeça. Defina esse valor no console Google Cloud ou defina enableHeadCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.
  • Protetores faciais: o operador mostra informações sobre o item de EPI relacionado à cobertura facial. Defina esse valor no console Google Cloud ou defina enableFaceCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.
  • Coberturas para as mãos: o operador mostra informações sobre o EPI relacionado à cobertura das mãos. Defina esse valor no console Google Cloud ou defina enableHandsCoverageDetection como verdadeiro no PersonalProtectiveEquipmentDetectionConfig.

Especificações do app de modelo do detector de EPI

Use as instruções a seguir para criar um modelo de detector de EPI no consoleGoogle Cloud .

Console

Criar um app no Google Cloud console

  1. Para criar um app detector de EPI, siga as instruções em Criar um aplicativo.

    Acesse a guia "Aplicativos"

Adicionar um modelo de detector de EPI

  1. Ao adicionar nós de modelo, selecione o detector de EPP na lista de modelos pré-treinados.

  2. Defina os tipos de EPI que você quer detectar no menu de opções.

Adicionar um conector do BigQuery

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

    Para informações sobre como usar o conector do BigQuery, consulte Conectar e armazenar dados no BigQuery. Para informações sobre os preços do BigQuery, consulte a página Preços do BigQuery.

Conferir os resultados de saída no BigQuery

Depois que o modelo enviar dados para o BigQuery, confira as anotações de saída no painel do BigQuery.

Se você não tiver especificado um caminho do BigQuery, poderá conferir o caminho criado pelo sistema na página Studio da Vertex AI Vision.

  1. No console Google Cloud , abra a página do BigQuery.

    Ir para o BigQuery

  2. Selecione Expandir ao lado do projeto de destino, do nome do conjunto de dados e do nome do aplicativo.

    Selecionar a tabela do app no BigQuery

  3. Na visualização de detalhes da tabela, clique em Visualizar. Confira os resultados na coluna anotação. Para uma descrição do formato de saída, consulte saída do modelo.

O aplicativo armazena os resultados em ordem cronológica. Os resultados mais antigos estão no início da tabela, e os mais recentes são adicionados ao final. Para conferir os resultados mais recentes, clique no número da página para acessar a última página da tabela.

Saída do modelo

A saída do modelo inclui um carimbo de data/hora, as caixas de detecção, os rótulos de objeto que correspondem às caixas e as pontuações de confiança desse objeto. A taxa do stream 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 de detecção de PPE. O objetivo do modelo é verificar se as pessoas estão usando equipamentos de proteção adequadamente. Como resultado, o modelo se concentra em detectar pessoas e o EPI que elas usam. A saída do modelo se concentra na detecção de pessoas. Para cada pessoa detectada, o modelo lista o EPI em volta da pessoa e a pontuação de cobertura de cada equipamento.

No exemplo de buffer de protocolo a seguir, observe o seguinte.

  • Hora atual: o carimbo de data/hora indica o horário em que o resultado da inferência foi feito.
  • Pessoas detectadas: o resultado principal da detecção, que inclui uma caixa identificada por pessoa, várias caixas identificadas por 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 identificada como EPI: a caixa delimitadora, o índice de confiança e a entidade de EPI.

Exemplo de objeto JSON de saída da anotação

{
  "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 de 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 ao usar o detector de PPE, considere o seguinte ao buscar dados e usar o modelo.

Recomendações de dados de origem

Recomendado:quando possível, peça para os sujeitos da detecção ficarem parados e olharem para a câmera.

Exemplos de dados de imagem que o detector de EPI consegue processar corretamente:

imagem de amostra de uma pessoa de frente para a câmera com cobertura facial
Fonte da imagem: Ani Kolleshi no Unsplash.
imagem de amostra de uma pessoa de frente para a câmera com cobertura facial
Origem da imagem: Ahsanization no Unsplash.
imagem de amostra de uma pessoa de frente para a câmera com cobertura facial
Fonte da imagem: Anastasia Chepinska no Unsplash.

Não recomendado:evite dados de imagem em que os itens de EPI principais são muito pequenos no frame.

Exemplos de dados de imagem que o detector de PPE não consegue processar corretamente:

Exemplo de imagem de EPIs muito pequenos para serem detectados
Fonte da imagem: Josue Isai Ramos Figueroa no Unsplash.

Não recomendado:evite dados de imagem que mostrem os principais itens de EPI de um ponto de vista incomum ou ângulos irregulares.

Exemplos de dados de imagem que o detector de PPE não consegue processar corretamente:

Imagem de exemplo de um EPI mostrado em um ângulo muito incomum para ser detectado
Fonte da imagem: Niclas Moser no Unsplash.

Limitações

  • Resolução: a resolução máxima recomendada para vídeos de entrada é 1920 x 1080, e a resolução mínima recomendada é 160 x 120.
  • Tamanho mínimo de objeto detectá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 precisa ser normal. Brilho ou escuridão extremos nos dados de vídeo podem prejudicar o desempenho do detector.
  • Posicionamento do EPI: o modelo de EPI se concentra em analisar se as pessoas estão usando EPIs corretamente. Como resultado, se alguém não estiver usando um EPI, o modelo vai ignorá-lo.
  • Tipo de item de EPI: o modelo se concentra em equipamentos de proteção de construção e não em EPIs médicos. Portanto, o detector pode não funcionar bem em centros médicos ou hospitais.
  • Tipos de EPI personalizados: o modelo de EPI não aceita itens de EPI definidos pelo cliente. O modelo oferece suporte à detecção de capacetes, máscaras e luvas.

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