
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:
enableHeadCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
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 enableFaceCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
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 enableHandsCoverageDetection
como verdadeiro noPersonalProtectiveEquipmentDetectionConfig
.
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
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
Para criar uma app de deteção de EPI, siga as instruções em Crie uma aplicação.
Adicione um modelo de detetor de EPI
Quando adiciona nós de modelos, selecione o PPE detector na lista de modelos pré-formados.
Defina os tipos de EPI que quer detetar no menu de opções.
Adicione um conetor do BigQuery
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.Na Google Cloud consola, abra a página do BigQuery.
Selecione
Expandir junto ao projeto de destino, ao nome do conjunto de dados e ao nome da aplicação.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:
![]() |
![]() |
![]() |
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:
![]() |
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:
![]() |
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.