Mengirimkan permintaan pelabelan video

AI Platform Data Labeling Service mendukung empat jenis tugas pelabelan video:

  • Tugas klasifikasi, yakni ketika pemberi label menetapkan satu atau beberapa label ke setiap video. Anda menentukan jumlah pemberi label untuk setiap video. Sebaiknya angkanya maksimal lima. Data Labeling Service memberikan suara mayoritas untuk menentukan label yang tepat. Anda juga dapat menentukan apakah akan menerapkan deteksi bidikan pada video atau tidak.
  • Tugas deteksi objek, saat pemberi label memilih label, lalu menggambar satu atau beberapa kotak pembatas untuk diterapkan ke bagian gambar yang diekstrak dari video Anda. Mereka dapat memilih label lain dan mengulangi prosesnya hingga tidak ada objek yang lebih menarik untuk diidentifikasi dalam gambar yang diekstrak. Anda dapat menentukan kecepatan frame ekstraksi untuk menentukan jumlah gambar yang akan diekstrak dari video Anda.
  • Tugas pelacakan objek, yang memungkinkan pemberi label memilih label, lalu menggambar satu atau beberapa kotak pembatas guna menunjukkan bagian video untuk objek tertentu, dan terus melacak setiap objek di sepanjang video.
  • Tugas peristiwa, tempat pemberi label memilih label, lalu memilih waktu mulai dan waktu berakhir untuk menerapkan label ke segmen atau titik dalam video.

Klasifikasi video

UI Web

  1. Buka Data Labeling Service UI.

  2. Pilih Datasets dari navigasi sebelah kiri.

    Halaman Datasets menampilkan status set data yang dibuat sebelumnya untuk project saat ini.

  3. Klik nama {i>dataset<i} yang ingin Anda kirimkan untuk diberi label.

    Set data dengan status Impor selesai tersedia untuk dikirim. Kolom Jenis data menunjukkan apakah set data mencakup gambar, video, atau teks.

  4. Di halaman Detail set data, klik tombol Buat tugas pelabelan di kolom judul.

  5. Di halaman New labeling task, masukkan nama dan deskripsi untuk set data yang dianotasi.

    Set data yang dianotasi adalah versi set data ini setelah pemberi label manusia melabelinya.

  6. Dari drop-down Objective, pilih jenis tugas pelabelan yang ingin Anda lakukan pada set data ini.

    Menu drop-down hanya menyertakan tujuan yang tersedia untuk jenis data dalam set data ini. Jika Anda tidak melihat tujuan yang diinginkan, mungkin berarti Anda telah memilih set data dengan jenis data yang berbeda di dalamnya. Tutup halaman New labeling task dan pilih set data yang berbeda.

  7. Dari drop-down Kumpulan label, pilih kumpulan label yang Anda inginkan untuk diterapkan oleh pemberi label ke item data dalam kumpulan ini.

    Menu drop-down mencakup semua set label yang terkait dengan project ini. Anda harus memilih satu set.

  8. Dari drop-down Petunjuk, pilih petunjuk yang ingin Anda berikan kepada pemberi label yang bekerja dengan set data ini.

    Menu drop-down menyertakan semua instructions yang terkait dengan project ini. Anda harus menyertakan petunjuk dalam permintaan pelabelan.

  9. Dari drop-down labeler per item data, tentukan jumlah pemberi label yang ingin Anda tinjau setiap item dalam set data.

    Jumlah defaultnya adalah satu, tetapi Anda dapat meminta tiga atau lima pemberi label untuk memberi label pada setiap item.

  10. Centang kotak untuk mengonfirmasi bahwa Anda memahami biaya pelabelan yang akan dikenakan.

  11. Klik Create.

Command line

Setel variabel lingkungan berikut:
  1. PROJECT_ID ke project ID Google Cloud Anda.
  2. DATASET_ID ke ID set data Anda, dari respons saat membuat set data. ID muncul di akhir nama set data lengkap:

    projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID
  3. INSTRUCTION_RESOURCE_NAME ke nama resource petunjuk Anda.
  4. ANNOTATION_SPEC_SET_RESOURCE_NAME ke nama resource kumpulan label Anda.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://datalabeling.googleapis.com/v1beta1/projects/${PROJECT_ID}/datasets/${DATASET_ID}/video:label \
  -d '{
  "basicConfig": {
    "instruction": "${INSTRUCTION_RESOURCE_NAME}",
    "annotatedDatasetDisplayName": "curl_testing_annotated_dataset",
    "labelGroup": "test_label_group",
    "replica_count": 1
  },
  "feature": "CLASSIFICATION",
  "videoClassificationConfig": {
    "annotationSpecSetConfigs": ["annotationSpecSet": "${ANNOTATION_SPEC_SET_RESOURCE_NAME}"],
  },
}'

Anda akan melihat output yang mirip dengan berikut ini. Anda dapat menggunakan ID operasi untuk mendapatkan status tugas. Mendapatkan status operasi adalah contohnya.

{
  "name": "projects/data-labeling-codelab/operations/5c73dd6b_0000_2b34_a920_883d24fa2064",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.data-labeling.v1beta1.LabelVideoClassificationOperationMetadata",
    "dataset": "projects/data-labeling-codelab/datasets/5c73db3d_0000_23e0_a25b_94eb2c119c4c"
  }
}

Java

Sebelum dapat menjalankan contoh kode ini, Anda harus menginstal Library Klien Java.
import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.datalabeling.v1beta1.AnnotatedDataset;
import com.google.cloud.datalabeling.v1beta1.DataLabelingServiceClient;
import com.google.cloud.datalabeling.v1beta1.DataLabelingServiceSettings;
import com.google.cloud.datalabeling.v1beta1.HumanAnnotationConfig;
import com.google.cloud.datalabeling.v1beta1.LabelOperationMetadata;
import com.google.cloud.datalabeling.v1beta1.LabelVideoRequest;
import com.google.cloud.datalabeling.v1beta1.LabelVideoRequest.Feature;
import com.google.cloud.datalabeling.v1beta1.VideoClassificationConfig;
import com.google.cloud.datalabeling.v1beta1.VideoClassificationConfig.AnnotationSpecSetConfig;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class LabelVideo {

  // Start a Video Labeling Task
  static void labelVideo(
      String formattedInstructionName,
      String formattedAnnotationSpecSetName,
      String formattedDatasetName)
      throws IOException {
    // String formattedInstructionName = DataLabelingServiceClient.formatInstructionName(
    //      "YOUR_PROJECT_ID", "YOUR_INSTRUCTION_UUID");
    // String formattedAnnotationSpecSetName =
    //     DataLabelingServiceClient.formatAnnotationSpecSetName(
    //         "YOUR_PROJECT_ID", "YOUR_ANNOTATION_SPEC_SET_UUID");
    // String formattedDatasetName = DataLabelingServiceClient.formatDatasetName(
    //      "YOUR_PROJECT_ID", "YOUR_DATASET_UUID");

    DataLabelingServiceSettings settings =
        DataLabelingServiceSettings.newBuilder()
            .build();
    try (DataLabelingServiceClient dataLabelingServiceClient =
        DataLabelingServiceClient.create(settings)) {
      HumanAnnotationConfig humanAnnotationConfig =
          HumanAnnotationConfig.newBuilder()
              .setAnnotatedDatasetDisplayName("annotated_displayname")
              .setAnnotatedDatasetDescription("annotated_description")
              .setInstruction(formattedInstructionName)
              .build();

      AnnotationSpecSetConfig annotationSpecSetConfig =
          AnnotationSpecSetConfig.newBuilder()
              .setAnnotationSpecSet(formattedAnnotationSpecSetName)
              .setAllowMultiLabel(true)
              .build();

      VideoClassificationConfig videoClassificationConfig =
          VideoClassificationConfig.newBuilder()
              .setApplyShotDetection(true)
              .addAnnotationSpecSetConfigs(annotationSpecSetConfig)
              .build();

      LabelVideoRequest labelVideoRequest =
          LabelVideoRequest.newBuilder()
              .setParent(formattedDatasetName)
              .setBasicConfig(humanAnnotationConfig)
              .setVideoClassificationConfig(videoClassificationConfig)
              .setFeature(Feature.CLASSIFICATION)
              .build();

      OperationFuture<AnnotatedDataset, LabelOperationMetadata> operation =
          dataLabelingServiceClient.labelVideoAsync(labelVideoRequest);

      // You'll want to save this for later to retrieve your completed operation.
      System.out.format("Operation Name: %s\n", operation.getName());

      // Cancel the operation to avoid charges when testing.
      dataLabelingServiceClient.getOperationsClient().cancelOperation(operation.getName());
    } catch (IOException | InterruptedException | ExecutionException e) {
      e.printStackTrace();
    }
  }
}

Deteksi objek video

UI Web

  1. Buka Data Labeling Service UI.

  2. Pilih Datasets dari navigasi sebelah kiri.

    Halaman Datasets menampilkan status set data yang dibuat sebelumnya untuk project saat ini.

  3. Klik nama {i>dataset<i} yang ingin Anda kirimkan untuk diberi label.

    Set data dengan status Impor selesai tersedia untuk dikirim. Kolom Jenis data menunjukkan apakah set data mencakup gambar, video, atau teks.

  4. Di halaman Detail set data, klik tombol Buat tugas pelabelan di kolom judul.

  5. Di halaman New labeling task, masukkan nama dan deskripsi untuk set data yang dianotasi.

    Set data yang dianotasi adalah versi set data ini setelah pemberi label manusia melabelinya.

  6. Dari drop-down Objective, pilih jenis tugas pelabelan yang ingin Anda lakukan pada set data ini.

    Menu drop-down hanya menyertakan tujuan yang tersedia untuk jenis data dalam set data ini. Jika Anda tidak melihat tujuan yang diinginkan, mungkin berarti Anda telah memilih set data dengan jenis data yang berbeda di dalamnya. Tutup halaman New labeling task dan pilih set data yang berbeda.

  7. Dari drop-down Kumpulan label, pilih kumpulan label yang Anda inginkan untuk diterapkan oleh pemberi label ke item data dalam kumpulan ini.

    Menu drop-down mencakup semua set label yang terkait dengan project ini. Anda harus memilih satu set.

  8. Dari drop-down Petunjuk, pilih petunjuk yang ingin Anda berikan kepada pemberi label yang bekerja dengan set data ini.

    Menu drop-down menyertakan semua instructions yang terkait dengan project ini. Anda harus menyertakan petunjuk dalam permintaan pelabelan.

  9. Dari drop-down labeler per item data, tentukan jumlah pemberi label yang ingin Anda tinjau setiap item dalam set data.

    Jumlah defaultnya adalah satu, tetapi Anda dapat meminta tiga atau lima pemberi label untuk memberi label pada setiap item.

  10. Centang kotak untuk mengonfirmasi bahwa Anda memahami biaya pelabelan yang akan dikenakan.

  11. Klik Create.

Command line

Setel variabel lingkungan berikut:
  1. PROJECT_ID ke project ID Google Cloud Anda.
  2. DATASET_ID ke ID set data Anda, dari respons saat membuat set data. ID muncul di akhir nama set data lengkap:

    projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID
  3. INSTRUCTION_RESOURCE_NAME ke nama resource petunjuk Anda.
  4. ANNOTATION_SPEC_SET_RESOURCE_NAME ke nama resource kumpulan label Anda.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://datalabeling.googleapis.com/v1beta1/projects/${PROJECT_ID}/datasets/${DATASET_ID}/video:label \
  -d '{
  "basicConfig": {
    "instruction": "${INSTRUCTION_RESOURCE_NAME}",
    "annotatedDatasetDisplayName": "curl_testing_annotated_dataset",
    "labelGroup": "test_label_group",
    "replica_count": 1
  },
  "feature": "OBJECT_DETECTION",
  "objectDetectionConfig": {
    "annotationSpecSet": "${ANNOTATION_SPEC_SET_RESOURCE_NAME}",
    "instructionMessage": "Detect an object",
    "extractionFrameRate": 4
  },
}'

Anda akan melihat output yang mirip dengan berikut ini. Anda dapat menggunakan ID operasi untuk mendapatkan status tugas. Mendapatkan status operasi adalah contohnya.

{
  "name": "projects/data-labeling-codelab/operations/5c73dd6b_0000_2b34_a920_883d24fa2064",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.data-labeling.v1beta1.LabelVideoObjectDetectionOperationMetadata",
    "dataset": "projects/data-labeling-codelab/datasets/5c73db3d_0000_23e0_a25b_94eb2c119c4c"
  }
}

Pelacakan objek video

UI Web

  1. Buka Data Labeling Service UI.

  2. Pilih Datasets dari navigasi sebelah kiri.

    Halaman Datasets menampilkan status set data yang dibuat sebelumnya untuk project saat ini.

  3. Klik nama {i>dataset<i} yang ingin Anda kirimkan untuk diberi label.

    Set data dengan status Impor selesai tersedia untuk dikirim. Kolom Jenis data menunjukkan apakah set data mencakup gambar, video, atau teks.

  4. Di halaman Detail set data, klik tombol Buat tugas pelabelan di kolom judul.

  5. Di halaman New labeling task, masukkan nama dan deskripsi untuk set data yang dianotasi.

    Set data yang dianotasi adalah versi set data ini setelah pemberi label manusia melabelinya.

  6. Dari drop-down Objective, pilih jenis tugas pelabelan yang ingin Anda lakukan pada set data ini.

    Menu drop-down hanya menyertakan tujuan yang tersedia untuk jenis data dalam set data ini. Jika Anda tidak melihat tujuan yang diinginkan, mungkin berarti Anda telah memilih set data dengan jenis data yang berbeda di dalamnya. Tutup halaman New labeling task dan pilih set data yang berbeda.

  7. Dari drop-down Kumpulan label, pilih kumpulan label yang Anda inginkan untuk diterapkan oleh pemberi label ke item data dalam kumpulan ini.

    Menu drop-down mencakup semua set label yang terkait dengan project ini. Anda harus memilih satu set.

  8. Dari drop-down Petunjuk, pilih petunjuk yang ingin Anda berikan kepada pemberi label yang bekerja dengan set data ini.

    Menu drop-down menyertakan semua instructions yang terkait dengan project ini. Anda harus menyertakan petunjuk dalam permintaan pelabelan.

  9. Dari drop-down labeler per item data, tentukan jumlah pemberi label yang ingin Anda tinjau setiap item dalam set data.

    Jumlah defaultnya adalah satu, tetapi Anda dapat meminta tiga atau lima pemberi label untuk memberi label pada setiap item.

  10. Centang kotak untuk mengonfirmasi bahwa Anda memahami biaya pelabelan yang akan dikenakan.

  11. Klik Create.

Command line

Setel variabel lingkungan berikut:
  1. PROJECT_ID ke project ID Google Cloud Anda.
  2. DATASET_ID ke ID set data Anda, dari respons saat membuat set data. ID muncul di akhir nama set data lengkap:

    projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID
  3. INSTRUCTION_RESOURCE_NAME ke nama resource petunjuk Anda.
  4. ANNOTATION_SPEC_SET_RESOURCE_NAME ke nama resource kumpulan label Anda.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://datalabeling.googleapis.com/v1beta1/projects/${PROJECT_ID}/datasets/${DATASET_ID}/video:label \
  -d '{
  "basicConfig": {
    "instruction": "${INSTRUCTION_RESOURCE_NAME}",
    "annotatedDatasetDisplayName": "curl_testing_annotated_dataset",
    "labelGroup": "test_label_group",
    "replica_count": 1
  },
  "feature": "OBJECT_TRACKING",
  "objectTrackingConfig": {
    "annotationSpecSet": "${ANNOTATION_SPEC_SET_RESOURCE_NAME}"
  },
}'

Anda akan melihat output yang mirip dengan berikut ini. Anda dapat menggunakan ID operasi untuk mendapatkan status tugas. Mendapatkan status operasi adalah contohnya.

{
  "name": "projects/data-labeling-codelab/operations/5c73dd6b_0000_2b34_a920_883d24fa2064",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.data-labeling.v1beta1.LabelVideoObjectTrackingOperationMetadata",
    "dataset": "projects/data-labeling-codelab/datasets/5c73db3d_0000_23e0_a25b_94eb2c119c4c"
  }
}

Python

Sebelum dapat menjalankan contoh kode ini, Anda harus menginstal Library Klien Python.
def label_video(
    dataset_resource_name, instruction_resource_name, annotation_spec_set_resource_name
):
    """Labels a video dataset."""
    from google.cloud import datalabeling_v1beta1 as datalabeling

    client = datalabeling.DataLabelingServiceClient()

    basic_config = datalabeling.HumanAnnotationConfig(
        instruction=instruction_resource_name,
        annotated_dataset_display_name="YOUR_ANNOTATED_DATASET_DISPLAY_NAME",
        label_group="YOUR_LABEL_GROUP",
        replica_count=1,
    )

    feature = datalabeling.LabelVideoRequest.Feature.OBJECT_TRACKING

    config = datalabeling.ObjectTrackingConfig(
        annotation_spec_set=annotation_spec_set_resource_name
    )

    response = client.label_video(
        request={
            "parent": dataset_resource_name,
            "basic_config": basic_config,
            "feature": feature,
            "object_tracking_config": config,
        }
    )

    print(f"Label_video operation name: {response.operation.name}")
    return response

Peristiwa video

UI Web

  1. Buka Data Labeling Service UI.

  2. Pilih Datasets dari navigasi sebelah kiri.

    Halaman Datasets menampilkan status set data yang dibuat sebelumnya untuk project saat ini.

  3. Klik nama {i>dataset<i} yang ingin Anda kirimkan untuk diberi label.

    Set data dengan status Impor selesai tersedia untuk dikirim. Kolom Jenis data menunjukkan apakah set data mencakup gambar, video, atau teks.

  4. Di halaman Detail set data, klik tombol Buat tugas pelabelan di kolom judul.

  5. Di halaman New labeling task, masukkan nama dan deskripsi untuk set data yang dianotasi.

    Set data yang dianotasi adalah versi set data ini setelah pemberi label manusia melabelinya.

  6. Dari drop-down Objective, pilih jenis tugas pelabelan yang ingin Anda lakukan pada set data ini.

    Menu drop-down hanya menyertakan tujuan yang tersedia untuk jenis data dalam set data ini. Jika Anda tidak melihat tujuan yang diinginkan, mungkin berarti Anda telah memilih set data dengan jenis data yang berbeda di dalamnya. Tutup halaman New labeling task dan pilih set data yang berbeda.

  7. Dari drop-down Kumpulan label, pilih kumpulan label yang Anda inginkan untuk diterapkan oleh pemberi label ke item data dalam kumpulan ini.

    Menu drop-down mencakup semua set label yang terkait dengan project ini. Anda harus memilih satu set.

  8. Dari drop-down Petunjuk, pilih petunjuk yang ingin Anda berikan kepada pemberi label yang bekerja dengan set data ini.

    Menu drop-down menyertakan semua instructions yang terkait dengan project ini. Anda harus menyertakan petunjuk dalam permintaan pelabelan.

  9. Dari drop-down labeler per item data, tentukan jumlah pemberi label yang ingin Anda tinjau setiap item dalam set data.

    Jumlah defaultnya adalah satu, tetapi Anda dapat meminta tiga atau lima pemberi label untuk memberi label pada setiap item.

  10. Centang kotak untuk mengonfirmasi bahwa Anda memahami biaya pelabelan yang akan dikenakan.

  11. Klik Create.

Command line

Setel variabel lingkungan berikut:
  1. PROJECT_ID ke project ID Google Cloud Anda.
  2. DATASET_ID ke ID set data Anda, dari respons saat membuat set data. ID muncul di akhir nama set data lengkap:

    projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID
  3. INSTRUCTION_RESOURCE_NAME ke nama resource petunjuk Anda.
  4. ANNOTATION_SPEC_SET_RESOURCE_NAME ke nama resource kumpulan label Anda.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://datalabeling.googleapis.com/v1beta1/projects/${PROJECT_ID}/datasets/${DATASET_ID}/video:label \
  -d '{
  "basicConfig": {
    "instruction": "${INSTRUCTION_RESOURCE_NAME}",
    "annotatedDatasetDisplayName": "curl_testing_annotated_dataset",
    "labelGroup": "test_label_group",
    "replica_count": 1
  },
  "feature": "EVENT",
  "eventConfig": {
    "annotationSpecSets": ["${ANNOTATION_SPEC_SET_RESOURCE_NAME}]"
  },
}'

Anda akan melihat output yang mirip dengan berikut ini. Anda dapat menggunakan ID operasi untuk mendapatkan status tugas. Mendapatkan status operasi adalah contohnya.

{
  "name": "projects/data-labeling-codelab/operations/5c73dd6b_0000_2b34_a920_883d24fa2064",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.data-labeling.v1beta1.LabelVideoEventOperationMetadata",
    "dataset": "projects/data-labeling-codelab/datasets/5c73db3d_0000_23e0_a25b_94eb2c119c4c"
  }
}