Il modello Rilevamento di dispositivi di protezione individuale (DPI) ti aiuta a verificare la presenza di attrezzature che limitano l'esposizione ai rischi in un ambiente di lavoro o comunitario.
Il modello rileva le persone e gli articoli DPI (guanti, mascherine e caschi) su una persona specifica. Il modello rileva gli articoli DPI e se questi coprono le parti del corpo umano corrispondenti. Il modello segnala queste informazioni sulla copertura come un punteggio di copertura compreso tra [0, 1]. Il modello accetta un flusso video come input. Il modello restituisce i risultati del rilevamento come un buffer di protocollo che puoi visualizzare in BigQuery. Il modello viene eseguito a 1 FPS.
L'operatore di rilevamento dei DPI ha tre parametri di controllo che puoi impostare:
- Copricapo: L'
operatore restituisce informazioni sugli articoli DPI relativi alla copertura della testa. Imposta questo valore
nella Google Cloud console o imposta
enableHeadCoverageDetectionsu true inPersonalProtectiveEquipmentDetectionConfig. - Copertura del viso: l'operatore restituisce informazioni sugli articoli DPI relativi alla copertura del viso. Imposta questo valore
nella Google Cloud console o imposta
enableFaceCoverageDetectionsu true inPersonalProtectiveEquipmentDetectionConfig. - Copertura delle mani: l'operatore restituisce informazioni sugli articoli DPI relativi alla copertura delle mani. Imposta questo valore
nella Google Cloud console o imposta
enableHandsCoverageDetectionsu true inPersonalProtectiveEquipmentDetectionConfig.
Specifiche dell'app del modello di rilevamento dei DPI
Segui queste istruzioni per creare un modello di rilevamento dei DPI nella Google Cloud console.
Console
Crea un'app nella Google Cloud console
Per creare un'app di rilevamento dei DPI, segui le istruzioni riportate in Creare un'applicazione.
Aggiungi un modello di rilevamento dei DPI
Quando aggiungi nodi del modello, seleziona Rilevamento di DPI dall'elenco dei modelli preaddestrati.
Imposta i tipi di DPI che vuoi rilevare nel menu opzioni.
Aggiungi un connettore BigQuery
Per utilizzare l'output, collega l'app a un connettore BigQuery.
Per informazioni sull'utilizzo del connettore BigQuery, consulta Connettere e archiviare i dati in BigQuery. Per informazioni sui prezzi di BigQuery, consulta la pagina Prezzi di BigQuery.
Visualizza i risultati dell'output in BigQuery
Dopo che il modello ha generato i dati in BigQuery, visualizza le annotazioni di output nella dashboard di BigQuery.
Se non hai specificato un percorso BigQuery, puoi visualizzare il percorso creato dal sistema nella pagina Studio dello schema di visione della piattaforma dell'agente.
Nella Google Cloud console, apri la pagina BigQuery.
Seleziona Espandi accanto al progetto di destinazione, al nome del set di dati e al nome dell'applicazione.
Nella visualizzazione dei dettagli della tabella, fai clic su Anteprima. Visualizza i risultati nella colonna annotazione. Per una descrizione del formato di output, consulta Output del modello.
L'applicazione archivia i risultati in ordine cronologico. I risultati più vecchi si trovano all'inizio della tabella, mentre i risultati più recenti vengono aggiunti alla fine della tabella. Per controllare i risultati più recenti, fai clic sul numero di pagina per andare all'ultima pagina della tabella.
Output del modello
L'output del modello include un timestamp, i riquadri di rilevamento, le etichette degli oggetti che corrispondono ai riquadri e i punteggi di affidabilità dell'oggetto. La frequenza del flusso di output è di un frame al secondo.
L'output del modello è in formato buffer di protocollo e include informazioni sul frame video e sul risultato della previsione di rilevamento dei DPI. L'obiettivo del modello è verificare se le persone indossano correttamente i dispositivi di protezione. Di conseguenza, il modello si concentra sul rilevamento delle persone e dei DPI che indossano. L'output del modello si concentra sul rilevamento persone. Per ogni persona rilevata, il modello elenca i DPI indossati e il punteggio di copertura di ogni dispositivo.
Nell'esempio di buffer di protocollo che segue, tieni presente quanto segue.
- Ora corrente: il timestamp indica l'ora in cui viene generato il risultato dell'inferenza.
- Persone rilevate: il risultato di rilevamento principale che include un riquadro identificato dalla persona, più riquadri identificati dai DPI e un punteggio di copertura per ogni parte del corpo.
- Riquadro identificato dalla persona: il riquadro di delimitazione, il punteggio di affidabilità e l'entità della persona.
- Riquadro identificato dai DPI: il riquadro di delimitazione, il punteggio di affidabilità e l'entità dei DPI.
Oggetto JSON di output di annotazione di esempio
{
"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"
}
}
}
]
}Definizione del buffer di protocollo
// 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;
}
Best practice e limitazioni
Per ottenere risultati ottimali quando utilizzi il rilevamento dei DPI, tieni presente quanto segue quando recuperi i dati e utilizzi il modello.
Suggerimenti per i dati di origine
Consigliato: se possibile, fai in modo che i soggetti da rilevare rimangano fermi e rivolti verso la videocamera.
Dati immagine di esempio che il rilevamento dei DPI è in grado di elaborare correttamente:
|
|
|
Non consigliato: evita i dati immagine in cui gli articoli DPI chiave sono troppo piccoli nel frame.
Dati immagine di esempio che il rilevamento dei DPI non è in grado di elaborare correttamente:
|
Non consigliato: evita i dati immagine che mostrano gli articoli DPI chiave da un punto di vista non comune o con angoli irregolari.
Dati immagine di esempio che il rilevamento dei DPI non è in grado di elaborare correttamente:
|
Limitazioni
- Risoluzione: la risoluzione video di input massima consigliata è 1920 x 1080, e la risoluzione minima consigliata è 160 x 120.
- Dimensione minima dell'oggetto rilevabile: il modello ignora qualsiasi oggetto nella scena che occupa meno del 5% della dimensione del frame.
- Illuminazione: l'illuminazione del video deve essere normale. Una luminosità o un'oscurità estreme nei dati video possono causare un calo del rendimento del rilevamento.
- Posizionamento degli articoli DPI: il modello DPI si concentra sull'analisi per verificare se le persone utilizzano correttamente gli articoli DPI. Di conseguenza, se una persona non indossa un articolo DPI, il modello lo ignora.
- Tipo di articolo DPI: il modello si concentra sui dispositivi di protezione per l'edilizia e non sugli articoli DPI medici. Pertanto, il rilevamento potrebbe non funzionare correttamente nei centri medici o negli ospedali.
- Tipi di DPI personalizzati: il modello DPI non supporta gli articoli DPI definiti dal cliente. Il modello supporta il rilevamento di caschi, mascherine e guanti.
Questo elenco non è esaustivo e queste limitazioni e funzionalità sono soggette a modifiche future del prodotto.