Menyiapkan data pelatihan video untuk klasifikasi

Halaman ini menjelaskan cara menyiapkan data pelatihan video untuk digunakan dalam set data Vertex AI guna melatih model klasifikasi video.

Bagian berikut memberikan informasi tentang persyaratan data, file skema, dan format file impor data (JSONL & CSV) yang ditentukan oleh skema.

Atau, Anda dapat mengimpor video yang belum dianotasi dan menganotasikannya di lain waktu menggunakan Konsol Google Cloud (lihat Pelabelan menggunakan Konsol Google Cloud).

Persyaratan data

Persyaratan berikut berlaku untuk set data yang digunakan untuk melatih model AutoML atau model yang dilatih khusus.

  • Vertex AI mendukung format video berikut untuk melatih model Anda atau meminta prediksi (menganotasi video).

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • Untuk melihat konten video di konsol web atau untuk menganotasi video, video harus dalam format yang didukung secara native oleh browser Anda. Karena tidak semua browser dapat menangani konten .MOV atau .AVI secara native, rekomendasinya adalah menggunakan format video .MPEG4 atau .MP4.

  • Ukuran file maksimum adalah 50 GB (durasi hingga 3 jam). Setiap file video dengan stempel waktu rusak atau kosong dalam container tidak didukung.

  • Jumlah maksimum label di setiap set data dibatasi hingga 1.000.

  • Anda dapat menetapkan label "ML_USE" untuk video yang berada dalam file impor. Pada waktu pelatihan, Anda dapat memilih untuk menggunakan label tersebut guna membagi video dan anotasi yang sesuai ke dalam set "pelatihan" atau "pengujian". Untuk klasifikasi video, perhatikan hal-hal berikut:

    • Setidaknya diperlukan dua class berbeda untuk pelatihan model. Misalnya, "berita" dan "MTV", atau "game" dan "lainnya".
    • Pertimbangkan untuk menyertakan class "Tidak__satu_pun_di_antaranya" dan segmen video yang tidak cocok dengan semua class yang Anda tentukan.

Praktik terbaik untuk data video yang digunakan untuk melatih model AutoML

Praktik berikut berlaku untuk set data yang digunakan untuk melatih model AutoML.

  • Data pelatihan harus semirip mungkin dengan data yang menjadi dasar prediksi. Misalnya, jika dalam kasus penggunaan Anda terdapat video buram dengan resolusi rendah (seperti video dari kamera keamanan), data pelatihan Anda harus terdiri dari video buram dengan resolusi rendah. Secara umum, Anda juga harus mempertimbangkan untuk menyediakan beberapa sudut, resolusi, dan latar belakang untuk video pelatihan Anda.

  • Model Vertex AI umumnya tidak dapat memprediksi label yang tidak dapat ditetapkan oleh manusia. Jika manusia tidak dapat dilatih untuk menetapkan label dengan melihat video selama 1-2 detik, model tersebut kemungkinan tidak dapat dilatih untuk melakukan hal yang sama.

  • Model akan berfungsi optimal jika terdapat video maksimal 100 kali lebih banyak untuk label yang paling umum daripada label yang paling tidak umum. Sebaiknya hapus label berfrekuensi rendah. Untuk klasifikasi video, jumlah video pelatihan yang direkomendasikan per label adalah sekitar 1.000. Jumlah minimum per label adalah 10, atau 50 untuk model lanjutan. Secara umum, diperlukan lebih banyak contoh per label untuk melatih model dengan beberapa label per video, dan skor yang dihasilkan akan lebih sulit ditafsirkan.

File skema

  • Gunakan file skema yang dapat diakses secara publik berikut saat membuat file jsonl untuk mengimpor anotasi. File skema ini menentukan format file input data. Struktur file mengikuti pengujian OpenAPI Schema.

    File skema klasifikasi video:

    gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml

    File skema lengkap

    
    
    title: VideoClassification
    description: >
      Import and export format for importing/exporting videos together with
      classification annotations with time segment. Can be used in
      Dataset.import_schema_uri field.
    type: object
    required:
    - videoGcsUri
    properties:
      videoGcsUri:
        type: string
        description: >
          A Cloud Storage URI pointing to a video. Up to 50 GB in size and
          up to 3 hours in duration. Supported file mime types: `video/mp4`,
          `video/avi`, `video/quicktime`.
      timeSegmentAnnotations:
        type: array
        description: >
          Multiple classification annotations. Each on a time segment of the video.
        items:
          type: object
          description: Annotation with a time segment on media (e.g., video).
          properties:
            displayName:
              type: string
              description: >
                It will be imported as/exported from AnnotationSpec's display name.
            startTime:
              type: string
              description: >
                The start of the time segment. Expressed as a number of seconds as
                measured from the start of the video, with "s" appended at the end.
                Fractions are allowed, up to a microsecond precision.
              default: 0s
            endTime:
              type: string
              description: >
                The end of the time segment. Expressed as a number of seconds as
                measured from the start of the video, with "s" appended at the end.
                Fractions are allowed, up to a microsecond precision, and "Infinity"
                is allowed, which corresponds to the end of the video.
              default: Infinity
            annotationResourceLabels:
              description: Resource labels on the Annotation.
              type: object
              additionalProperties:
                type: string
      dataItemResourceLabels:
        description: Resource labels on the DataItem.
        type: object
        additionalProperties:
          type: string
    

File input

Format data pelatihan Anda untuk klasifikasi video adalah sebagai berikut.

Untuk mengimpor data, buat file JSONL atau CSV.

JSONL

JSON di setiap baris:
Lihat file Skema klasifikasi (global) untuk mengetahui detailnya.



{
	"videoGcsUri": "gs://bucket/filename.ext",
	"timeSegmentAnnotations": [{
		"displayName": "LABEL",
		"startTime": "start_time_of_segment",
		"endTime": "end_time_of_segment"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

Contoh JSONL - Klasifikasi video:



{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

CSV

Format baris dalam CSV:

[ML_USE,]VIDEO_URI,LABEL,START,END

Daftar kolom

  1. ML_USE (Opsional). Untuk tujuan pemisahan data saat melatih model. Gunakan TRAINING atau TEST.
  2. VIDEO_URI. Kolom ini berisi Cloud Storage URI untuk video. Cloud Storage URI peka huruf besar/kecil.
  3. LABEL. Label harus diawali dengan huruf dan hanya berisi huruf, angka, serta garis bawah. Anda dapat menentukan beberapa label untuk video dengan menambahkan beberapa baris dalam file CSV yang masing-masing mengidentifikasi segmen video yang sama, dengan label yang berbeda untuk setiap baris.
  4. START,END. Kedua kolom ini, START dan END, masing-masing mengidentifikasi waktu mulai dan berakhir segmen video yang akan dianalisis, dalam detik. Waktu mulai harus kurang dari waktu berakhir. Kedua nilai harus positif dan berada dalam rentang waktu video. Misalnya, 0.09845,1.36005. Untuk menggunakan seluruh konten video, tentukan waktu mulai 0 dan waktu berakhir video berdurasi penuh, atau "inf". Misalnya, 0,inf.

Contoh CSV - Klasifikasi menggunakan label tunggal

Label tunggal pada segmen video yang sama:

TRAINING,gs://YOUR_VIDEO_PATH/vehicle.mp4,mustang,0,5.4
...

Contoh CSV - beberapa label:

Beberapa label pada segmen video yang sama:

gs://YOUR_VIDEO_PATH/vehicle.mp4,fiesta,0,8.285
gs://YOUR_VIDEO_PATH/vehicle.mp4,ranger,0,8.285
gs://YOUR_VIDEO_PATH/vehicle.mp4,explorer,0,8.285
...

Contoh CSV - tanpa label:

Anda juga dapat memberikan video dalam file data tanpa menentukan label apa pun. Kemudian, Anda harus menggunakan konsol Google Cloud untuk menerapkan label ke data sebelum melatih model. Untuk melakukannya, Anda hanya perlu menyediakan Cloud Storage URI untuk video diikuti dengan tiga koma, seperti yang ditunjukkan pada contoh berikut.

gs://YOUR_VIDEO_PATH/vehicle.mp4,,,
...