Panduan pendeteksi alat pelindung diri (APD)

kartu model blur orang di konsol

Model Detektor Alat Pelindung Diri (APD) membantu Anda memverifikasi keberadaan peralatan yang membatasi paparan terhadap bahaya di lingkungan kerja atau komunitas.

Model mendeteksi orang dan item APD (sarung tangan, masker, dan helm) pada orang tertentu. Model mendeteksi item APD, dan jika item tersebut menutupi bagian tubuh manusia yang sesuai. Model melaporkan informasi cakupan ini sebagai skor cakupan yang berkisar dari [0, 1]. Model menerima streaming video sebagai input. Model menghasilkan output hasil deteksi sebagai buffer protokol yang dapat Anda lihat di BigQuery. Model berjalan pada satu FPS.

Operator deteksi APD memiliki tiga parameter kontrol yang dapat Anda tetapkan:

  • Penutup kepala: Operator menampilkan informasi item APD terkait cakupan kepala. Tetapkan nilai ini di konsol Google Cloud , atau tetapkan enableHeadCoverageDetection ke benar di PersonalProtectiveEquipmentDetectionConfig.
  • Penutup wajah: Operator menampilkan informasi item APD terkait cakupan wajah. Tetapkan nilai ini di konsol Google Cloud , atau tetapkan enableFaceCoverageDetection ke benar di PersonalProtectiveEquipmentDetectionConfig.
  • Penutup tangan: Operator menampilkan informasi item APD terkait cakupan tangan. Tetapkan nilai ini di konsol Google Cloud , atau tetapkan enableHandsCoverageDetection ke benar di PersonalProtectiveEquipmentDetectionConfig.

Spesifikasi aplikasi model pendeteksi APD

Gunakan petunjuk berikut untuk membuat model detektor APD di konsolGoogle Cloud .

Konsol

Membuat aplikasi di Google Cloud konsol

  1. Untuk membuat aplikasi detektor APD, ikuti petunjuk di Membangun aplikasi.

    Buka tab Aplikasi

Menambahkan model pendeteksi APD

  1. Saat menambahkan node model, pilih PPE detector dari daftar model terlatih.

  2. Tetapkan jenis APD yang ingin Anda deteksi di menu opsi.

Menambahkan konektor BigQuery

  1. Untuk menggunakan output, hubungkan aplikasi ke konektor BigQuery.

    Untuk mengetahui informasi tentang cara menggunakan konektor BigQuery, lihat Menghubungkan dan menyimpan data ke BigQuery. Untuk mengetahui informasi harga BigQuery, lihat halaman harga BigQuery.

Melihat hasil output di BigQuery

Setelah model menghasilkan data ke BigQuery, lihat anotasi output di dasbor BigQuery.

Jika tidak menentukan jalur BigQuery, Anda dapat melihat jalur yang dibuat sistem di halaman Agent Platform Vision Studio.

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Pilih Perluas di samping target project, nama set data, dan nama aplikasi.

    Pilih tabel aplikasi di BigQuery

  3. Di tampilan detail tabel, klik Pratinjau. Lihat hasil di kolom anotasi. Untuk deskripsi format output, lihat output model.

Aplikasi menyimpan hasil dalam urutan kronologis. Hasil terlama berada di awal tabel, sedangkan hasil terbaru ditambahkan di akhir tabel. Untuk memeriksa hasil terbaru, klik nomor halaman untuk membuka halaman tabel terakhir.

Output model

Output model mencakup stempel waktu, kotak deteksi, label objek yang sesuai dengan kotak, dan skor keyakinan dari objek tersebut. Kecepatan streaming output adalah satu frame per detik.

Output model adalah format protocol buffer yang mencakup informasi tentang frame video dan hasil prediksi deteksi APD. Tujuan model ini adalah untuk memeriksa apakah orang-orang mengenakan alat pelindung dengan benar. Akibatnya, model berfokus pada pendeteksian orang dan APD yang dikenakan orang tersebut. Output model berfokus pada deteksi orang. Untuk setiap orang yang terdeteksi, model mencantumkan APD di sekitar orang tersebut dan skor cakupan setiap peralatan.

Dalam contoh buffer protokol berikut, perhatikan hal-hal berikut.

  • Waktu saat ini - Stempel waktu mencatat waktu hasil inferensi dibuat.
  • Orang yang terdeteksi - Hasil deteksi utama yang mencakup satu kotak yang mengidentifikasi orang, beberapa kotak yang mengidentifikasi APD, dan skor cakupan untuk setiap bagian tubuh.
  • Kotak orang yang diidentifikasi - Kotak pembatas, skor keyakinan, dan entitas orang.
  • Kotak APD yang diidentifikasi - Kotak pembatas, skor keyakinan, dan entitas APD.

Contoh objek JSON output anotasi

{
  "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"
          }
      }
    }
  ]
}

Definisi buffering protokol

// 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;
}

Praktik terbaik dan batasan

Untuk mendapatkan hasil terbaik saat Anda menggunakan detektor APD, pertimbangkan hal berikut saat Anda mengambil data dan menggunakan model.

Rekomendasi data sumber

Direkomendasikan: Jika memungkinkan, subjek deteksi harus berdiri diam dan menghadap kamera.

Contoh data gambar yang dapat diproses dengan benar oleh detektor APD:

contoh gambar seseorang yang menghadap kamera dengan penutup wajah
Sumber gambar: Ani Kolleshi di Unsplash.
contoh gambar seseorang yang menghadap kamera dengan penutup wajah
Sumber gambar: Ahsanization di Unsplash.
contoh gambar seseorang yang menghadap kamera dengan penutup wajah
Sumber gambar: Anastasiia Chepinska di Unsplash.

Tidak direkomendasikan: Hindari data gambar yang menampilkan item APD utama terlalu kecil dalam frame.

Contoh data gambar yang tidak dapat diproses dengan benar oleh detektor APD:

contoh gambar item APD yang terlalu kecil untuk dideteksi
Sumber gambar: Josue Isai Ramos Figueroa di Unsplash.

Tidak direkomendasikan: Hindari data gambar yang menampilkan item APD utama dari sudut pandang yang tidak umum atau sudut yang tidak beraturan.

Contoh data gambar yang tidak dapat diproses dengan benar oleh detektor APD:

contoh gambar item APD yang ditampilkan pada sudut yang terlalu tidak umum untuk dideteksi
Sumber gambar: Niclas Moser di Unsplash.

Batasan

  • Resolusi: Resolusi video input maksimum yang direkomendasikan adalah 1920 x 1080, dan resolusi minimum yang direkomendasikan adalah 160 x 120.
  • Ukuran objek minimum yang dapat dideteksi: Model mengabaikan objek apa pun dalam adegan yang menempati kurang dari 5% ukuran frame.
  • Pencahayaan: Pencahayaan video harus normal. Kecerahan atau kegelapan ekstrem dalam data video dapat menyebabkan performa detektor yang lebih rendah.
  • Penempatan item APD: Model APD berfokus pada analisis apakah orang menggunakan item APD dengan benar. Akibatnya, jika seseorang tidak mengenakan item APD, model akan mengabaikan item tersebut.
  • Jenis item APD: Model ini berfokus pada peralatan pelindung konstruksi dan bukan item APD medis. Oleh karena itu, detektor mungkin tidak berfungsi dengan baik di pusat kesehatan atau rumah sakit.
  • Jenis PPE kustom: Model PPE tidak mendukung item PPE yang ditentukan pelanggan. Model ini mendukung deteksi helm, masker, dan sarung tangan.

Daftar ini tidak dimaksudkan untuk menjadi daftar lengkap, dan batasan serta fungsi ini dapat berubah seiring modifikasi produk di masa mendatang.