Hub documentation

Dataset Video

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Dataset Video

Panduan ini akan menunjukkan cara mengonfigurasi repositori dataset Anda dengan file video.

Dataset dengan struktur dan format file yang didukung secara otomatis memiliki Dataset Viewer di halamannya di Hub.

Informasi tambahan tentang video Anda - seperti caption atau bounding box untuk object detection - dimuat secara otomatis selama Anda menyertakan informasi ini dalam file metadata (metadata.csv/metadata.jsonl/metadata.parquet).

Sebagai alternatif, video dapat berada dalam file Parquet atau dalam arsip TAR yang mengikuti format WebDataset.

Hanya video

Jika dataset Anda hanya terdiri dari satu kolom berisi video, Anda cukup menyimpan file video Anda di root:

my_dataset_repository/
β”œβ”€β”€ 1.mp4
β”œβ”€β”€ 2.mp4
β”œβ”€β”€ 3.mp4
└── 4.mp4

atau dalam subdirektori:

my_dataset_repository/
└── videos
    β”œβ”€β”€ 1.mp4
    β”œβ”€β”€ 2.mp4
    β”œβ”€β”€ 3.mp4
    └── 4.mp4

Beberapa format didukung secara bersamaan, termasuk MP4, MOV, dan AVI.

my_dataset_repository/
└── videos
    β”œβ”€β”€ 1.mp4
    β”œβ”€β”€ 2.mov
    └── 3.avi

Jika Anda memiliki beberapa split, Anda dapat menempatkan video Anda ke dalam direktori yang diberi nama sesuai:

my_dataset_repository/
β”œβ”€β”€ train
β”‚Β Β  β”œβ”€β”€ 1.mp4
β”‚Β Β  └── 2.mp4
└── test
    β”œβ”€β”€ 3.mp4
    └── 4.mp4

Lihat Nama file dan split untuk informasi lebih lanjut dan cara lain untuk mengorganisasi data berdasarkan split.

Kolom tambahan

Jika ada informasi tambahan yang ingin Anda sertakan tentang dataset Anda, seperti teks keterangan atau kotak pembatas, tambahkan sebagai file metadata.csv di repositori Anda. Hal ini memungkinkan Anda dengan cepat membuat dataset untuk berbagai tugas computer vision seperti generasi video atau deteksi objek.

my_dataset_repository/
└── train
    β”œβ”€β”€ 1.mp4
    β”œβ”€β”€ 2.mp4
    β”œβ”€β”€ 3.mp4
    β”œβ”€β”€ 4.mp4
    └── metadata.csv

File metadata.csv Anda harus memiliki kolom file_name yang menghubungkan file video dengan metadata mereka:

file_name,text
1.mp4,an animation of a green pokemon with red eyes
2.mp4,a short video of a green and yellow toy with a red nose
3.mp4,a red and white ball shows an angry look on its face
4.mp4,a cartoon ball is smiling

Anda juga dapat menggunakan file JSONL metadata.jsonl:

{"file_name": "1.mp4","text": "an animation of a green pokemon with red eyes"}
{"file_name": "2.mp4","text": "a short video of a green and yellow toy with a red nose"}
{"file_name": "3.mp4","text": "a red and white ball shows an angry look on its face"}
{"file_name": "4.mp4","text": "a cartoon ball is smiling"}

Dan untuk dataset yang lebih besar atau jika Anda tertarik dengan fitur pengambilan data yang lebih lanjut, Anda dapat menggunakan file Parquet metadata.parquet.

Path relatif

File metadata harus berada di direktori yang sama dengan video yang terkait, atau di direktori induk mana pun, seperti pada contoh ini:

my_dataset_repository/
└── train
    β”œβ”€β”€ videos
    β”‚Β Β  β”œβ”€β”€ 1.mp4
    β”‚Β Β  β”œβ”€β”€ 2.mp4
    β”‚Β Β  β”œβ”€β”€ 3.mp4
    β”‚Β Β  └── 4.mp4
    └── metadata.csv

Dalam kasus ini, kolom file_name harus berupa jalur relatif lengkap ke video, bukan hanya nama file:

file_name,text
videos/1.mp4,an animation of a green pokemon with red eyes
videos/2.mp4,a short video of a green and yellow toy with a red nose
videos/3.mp4,a red and white ball shows an angry look on its face
videos/4.mp4,a cartoon ball is smiling

File metadata tidak dapat ditempatkan di subdirektori dari direktori yang berisi video.

Secara lebih umum, kolom apa pun yang bernama file_name atau *_file_name harus berisi jalur relatif lengkap ke video.

Klasifikasi video

Untuk dataset klasifikasi video, Anda juga dapat menggunakan setup sederhana: gunakan direktori untuk memberi nama kelas video. Simpan file video Anda dalam struktur direktori seperti:

my_dataset_repository/
β”œβ”€β”€ green
β”‚Β Β  β”œβ”€β”€ 1.mp4
β”‚Β Β  └── 2.mp4
└── red
    β”œβ”€β”€ 3.mp4
    └── 4.mp4

Dataset yang dibuat dengan struktur ini berisi dua kolom: video dan label (dengan nilai green dan red).

Anda juga dapat menyediakan beberapa split. Untuk melakukannya, direktori dataset Anda harus memiliki struktur berikut (lihat Nama file dan split untuk informasi lebih lanjut):

my_dataset_repository/
β”œβ”€β”€ test
β”‚Β Β  β”œβ”€β”€ green
β”‚Β Β  β”‚Β Β  └── 2.mp4
β”‚Β Β  └── red
β”‚Β Β      └── 4.mp4
└── train
    β”œβ”€β”€ green
    β”‚Β Β  └── 1.mp4
    └── red
        └── 3.mp4

Anda dapat menonaktifkan penambahan otomatis kolom label dalam konfigurasi YAML. Jika nama direktori Anda tidak memiliki arti khusus, atur drop_labels: true di header README:

configs:
  - config_name: default  # Name of the dataset subset, if applicable.
    drop_labels: true

Dataset berskala besar

Format WebDataset

Format WebDataset sangat cocok untuk dataset video berskala besar. Format ini terdiri dari arsip TAR yang berisi video beserta metadatanya dan dioptimalkan untuk streaming. Format ini berguna jika Anda memiliki sejumlah besar video dan ingin mendapatkan streaming data loaders untuk pelatihan berskala besar.

my_dataset_repository/
β”œβ”€β”€ train-0000.tar
β”œβ”€β”€ train-0001.tar
β”œβ”€β”€ ...
└── train-1023.tar

Untuk membuat arsip WebDataset TAR, buat direktori yang berisi video dan file metadata yang akan diarsipkan, lalu buat arsip TAR menggunakan misalnya perintah tar. Ukuran umum per arsip biasanya sekitar 1GB. Pastikan setiap pasangan video dan metadata berbagi prefiks file yang sama, misalnya:

train-0000/
β”œβ”€β”€ 000.mp4
β”œβ”€β”€ 000.json
β”œβ”€β”€ 001.mp4
β”œβ”€β”€ 001.json
β”œβ”€β”€ ...
β”œβ”€β”€ 999.mp4
└── 999.json

Perhatikan bahwa untuk kenyamanan pengguna dan untuk memungkinkan Dataset Viewer, setiap dataset yang dihosting di Hub secara otomatis dikonversi ke format Parquet hingga 5GB. Karena video dapat berukuran cukup besar, URL ke video disimpan dalam data Parquet yang dikonversi tanpa byte video itu sendiri. Baca lebih lanjut tentang hal ini di dokumentasi Parquet format.

Update on GitHub