
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:
enableHeadCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
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 enableFaceCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
Protetores faciais: o operador mostra informações sobre o item de EPI relacionado à cobertura facial. Defina esse valor
no console Google Cloud ou defina enableHandsCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
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
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
Para criar um app detector de EPI, siga as instruções em Criar um aplicativo.
Adicionar um modelo de detector de EPI
Ao adicionar nós de modelo, selecione o detector de EPP na lista de modelos pré-treinados.
Defina os tipos de EPI que você quer detectar no menu de opções.
Adicionar um conector do BigQuery
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.No console Google Cloud , abra a página do BigQuery.
Selecione
Expandir ao lado do projeto de destino, do nome do conjunto de dados e do nome do aplicativo.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:
![]() |
![]() |
![]() |
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:
![]() |
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:
![]() |
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.