O modelo 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 ambiente comunitário.
O modelo detecta pessoas e os itens de EPI (luvas, máscaras e capacetes) em uma pessoa específica. O modelo detecta os itens de EPI e se eles cobrem as partes do corpo humano correspondentes. O modelo informa essas informações de cobertura como uma pontuação de cobertura que varia de [0, 1]. O modelo aceita um fluxo de vídeo como entrada. O modelo gera resultados de detecção como um buffer de protocolo que pode ser visualizado no BigQuery. O modelo é executado a um FPS.
O operador de detecção de EPI tem três parâmetros de controle que podem ser definidos:
- Coberturas de cabeça: o
operador gera informações sobre itens de EPI relacionados à cobertura da cabeça. Defina esse valor
no Google Cloud console ou defina
enableHeadCoverageDetectioncomo verdadeiro emPersonalProtectiveEquipmentDetectionConfig. - Coberturas faciais: o operador gera informações sobre itens de EPI relacionados à cobertura facial. Defina esse valor
no Google Cloud console ou defina
enableFaceCoverageDetectioncomo verdadeiro emPersonalProtectiveEquipmentDetectionConfig. - Coberturas de mão: o operador gera informações sobre itens de EPI relacionados à cobertura das mãos. Defina esse valor
no Google Cloud console ou defina
enableHandsCoverageDetectioncomo verdadeiro emPersonalProtectiveEquipmentDetectionConfig.
Especificações do app do modelo de detector de EPI
Use as instruções a seguir para criar um modelo de detector de EPI no Google Cloud console.
Console
Criar um app no Google Cloud console
Para criar um app de 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 EPI na lista de modelos pré-treinados.
Defina os tipos de EPI que você quer detectar no menu "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 preços do BigQuery, consulte a página de preços do BigQuery.
Ver os resultados de saída no BigQuery
Depois que o modelo gera dados para o BigQuery, consulte as anotações de saída no painel do BigQuery.
Se você não especificou um caminho do BigQuery, é possível conferir o caminho criado pelo sistema na página Studio do esquema do Agent Platform Vision.
No Google Cloud console do, 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 annotation. 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, enquanto os mais recentes são adicionados ao final da tabela. 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 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 de vídeo e o resultado da previsão de detecção de EPI. O objetivo do modelo é verificar se as pessoas estão usando equipamentos de proteção adequadamente. Como resultado, o modelo se concentra na detecção de pessoas e do EPI que a pessoa usa. A saída do modelo se concentra na detecção de pessoas. Para cada pessoa detectada, o modelo lista o EPI ao redor 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 momento em que o resultado da inferência é 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 identificada por pessoa: a caixa delimitadora, a pontuação de confiança e a entidade da pessoa.
- Caixa identificada por EPI: a caixa delimitadora, a pontuação de confiança e a entidade de EPI.
Exemplo de objeto JSON de saída de 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 EPI, considere o seguinte ao criar dados de origem e usar o modelo.
Recomendações de dados de origem
Recomendado: quando possível, faça com que os sujeitos de detecção fiquem parados e de frente para a câmera.
Exemplo de dados de imagem que o detector de EPI pode processar corretamente:
|
|
|
Não recomendado: evite dados de imagem em que os principais itens de EPI sejam muito pequenos no frame.
Exemplo de dados de imagem que o detector de EPI 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.
Exemplo de dados de imagem que o detector de EPI não consegue processar corretamente:
|
Limitações
- Resolução: a resolução máxima recomendada do vídeo de entrada é de 1920 x 1080, e a resolução mínima recomendada é de 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 causar um desempenho menor do detector.
- Posicionamento do item de EPI: o modelo de EPI se concentra em analisar se as pessoas estão usando itens de EPI corretamente. Como resultado, se alguém não estiver usando um item de EPI, o modelo vai ignorar o item.
- Tipo de item de EPI: o modelo se concentra em equipamentos de proteção de construção e não em itens de EPI 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 oferece suporte a 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.