Hub documentation

Görsel Veri Seti

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Görsel Veri Seti

Bu kılavuz, veri seti depoyu görüntü dosyalarıyla nasıl yapılandıracağınızı gösterecektir. Bu Görüntü veri setleri örnekleri koleksiyonunda ilgili depoların örneklerini bulabilirsiniz.

Desteklenen bir yapıya ve dosya biçimlerine sahip bir veri setinin Hub'daki sayfasında otomatik olarak bir Dataset Viewer bulunur.

Görsellerinizle ilgili ek bilgiler - nesne tespiti için başlıklar veya sınırlayıcı kutular gibi - bu bilgileri bir meta veri dosyasına (metadata.csv/metadata.jsonl/metadata.parquet) dahil etmeniz koşuluyla otomatik olarak yüklenir.

Alternatif olarak, görüntüler WebDataset biçimini izleyen Parquet dosyalarında veya TAR arşivlerinde olabilir.

Yalnızca görüntüler

Veri setiniz yalnızca görüntülerden oluşan tek bir sütundan oluşuyorsa, görüntü dosyalarınızı kök dizinde saklayabilirsiniz:

my_dataset_repository/
├── 1.jpg
├── 2.jpg
├── 3.jpg
└── 4.jpg

veya bir alt dizinde:

my_dataset_repository/
└── images
    ├── 1.jpg
    ├── 2.jpg
    ├── 3.jpg
    └── 4.jpg

PNG, JPEG, TIFF ve WebP dahil olmak üzere aynı anda birden fazla biçim desteklenir.

my_dataset_repository/
└── images
    ├── 1.jpg
    ├── 2.png
    ├── 3.tiff
    └── 4.webp

Birden fazla bölümünüz varsa, görüntülerinizi buna uygun adlandırılmış dizinlere koyabilirsiniz:

my_dataset_repository/
├── train
│   ├── 1.jpg
│   └── 2.jpg
└── test
    ├── 3.jpg
    └── 4.jpg

Daha fazla bilgi ve bölümlere göre verileri düzenlemenin diğer yolları için Dosya adları ve bölümler bölümüne bakın.

Ek sütunlar

Veri setiniz hakkında dahil etmek istediğiniz ek bilgiler varsa, örneğin metin açıklamaları veya sınırlayıcı kutular, bunları depolamanıza metadata.csv dosyası olarak ekleyin. Bu sayede metin açıklama veya nesne algılama gibi farklı bilgisayarlı görme görevleri için veri setlerini hızla oluşturabilirsiniz.

my_dataset_repository/
└── train
    ├── 1.jpg
    ├── 2.jpg
    ├── 3.jpg
    ├── 4.jpg
    └── metadata.csv

metadata.csv dosyanız, görüntü dosyalarını metadata ile ilişkilendiren bir file_name sütunu içermelidir:

file_name,text
1.jpg,a drawing of a green pokemon with red eyes
2.jpg,a green and yellow toy with a red nose
3.jpg,a red and white ball with an angry look on its face
4.jpg,a cartoon ball with a smile on its face

Ayrıca JSONL dosyası olan metadata.jsonl dosyasını da kullanabilirsiniz:

{"file_name": "1.jpg","text": "a drawing of a green pokemon with red eyes"}
{"file_name": "2.jpg","text": "a green and yellow toy with a red nose"}
{"file_name": "3.jpg","text": "a red and white ball with an angry look on its face"}
{"file_name": "4.jpg","text": "a cartoon ball with a smile on its face"}

Ve daha büyük veri kümeleri için veya gelişmiş veri alma özellikleriyle ilgileniyorsanız, Parquet dosyası olan metadata.parquet dosyasını kullanabilirsiniz.

Göreceli yollar

Metadata dosyası, bağlantılı olduğu görsellerle aynı dizinde veya herhangi bir üst dizinde bulunmalıdır, bu örnekteki gibi:

my_dataset_repository/
└── train
    ├── images
    │   ├── 1.jpg
    │   ├── 2.jpg
    │   ├── 3.jpg
    │   └── 4.jpg
    └── metadata.csv

Bu durumda, file_name sütunu yalnızca dosya adı değil, görsellere giden tam göreli bir yol olmalıdır:

file_name,text
images/1.jpg,a drawing of a green pokemon with red eyes
images/2.jpg,a green and yellow toy with a red nose
images/3.jpg,a red and white ball with an angry look on its face
images/4.jpg,a cartoon ball with a smile on it's face

Metadata dosyaları, görsellerin bulunduğu dizinin alt dizinlerine yerleştirilemez.

Daha genel olarak, file_name veya *_file_name adlı herhangi bir sütun, görsellere giden tam göreli yolu içermelidir.

Görüntü sınıflandırma

Görüntü sınıflandırma veri kümeleri için basit bir yapılandırma da kullanabilirsiniz: görüntü sınıflarını adlandırmak için dizinleri kullanın. Görüntü dosyalarınızı aşağıdaki gibi bir dizin yapısında saklayın:

my_dataset_repository/
├── green
│   ├── 1.jpg
│   └── 2.jpg
└── red
    ├── 3.jpg
    └── 4.jpg

Bu yapıyla oluşturulan veri seti iki sütun içerir: image ve label (değerler green ve red).

Birden fazla split de sağlayabilirsiniz. Bunu yapmak için veri seti dizininizin aşağıdaki yapıya sahip olması gerekir (daha fazla bilgi için Dosya adları ve splitler bölümüne bakın):

my_dataset_repository/
├── test
│   ├── green
│   │   └── 2.jpg
│   └── red
│       └── 4.jpg
└── train
    ├── green
    │   └── 1.jpg
    └── red
        └── 3.jpg

label sütununun bu otomatik eklenmesini YAML yapılandırmasında devre dışı bırakabilirsiniz. Dizin adlarınızın özel bir anlamı yoksa, README başlığına drop_labels: true ayarlayın:

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

Büyük ölçekli veri setleri

WebDataset biçimi

WebDataset biçimi, büyük ölçekli görüntü veri kümeleri için uygundur (örneğin timm/imagenet-12k-wds). Görüntüleri ve bunların meta verilerini içeren TAR arşivlerinden oluşur ve akış için optimize edilmiştir. Çok sayıda görüntüye sahipseniz ve büyük ölçekli eğitim için akış veri yükleyicileri almak istiyorsanız faydalıdır.

my_dataset_repository/
├── train-0000.tar
├── train-0001.tar
├── ...
└── train-1023.tar

WebDataset TAR arşivi oluşturmak için, arşivlenecek görüntü ve meta veri dosyalarını içeren bir dizin oluşturun ve arşivi örneğin tar komutuyla oluşturun. Arşiv başına tipik boyut genellikle 1 GB civarındadır. Her görüntü ve meta veri çiftinin aynı dosya önekinin paylaşıldığından emin olun, örneğin:

train-0000/
├── 000.jpg
├── 000.json
├── 001.jpg
├── 001.json
├── ...
├── 999.jpg
└── 999.json

Kullanıcı kolaylığı ve Dataset Viewer'ın etkinleştirilebilmesi için Hub'da barındırılan her veri setinin 5GB'a kadar Parquet biçimine otomatik olarak dönüştürüldüğünü unutmayın. Buna dair daha fazla bilgi için Parquet format belgelerine göz atın.

Parquet biçimi

Görselleri ve meta verileri ayrı dosyalar olarak yüklemek yerine, her şeyi bir Parquet dosyasının içine gömebilirsiniz. Bu, çok sayıda görseliniz varsa, birden fazla görsel sütunu gömmek istiyorsanız veya görsellerle ilgili ek bilgileri aynı dosyada saklamak istiyorsanız faydalıdır. Parquet, JSON/CSV tarafından desteklenmeyen ham baytlar gibi verileri saklamak için de faydalıdır.

my_dataset_repository/
└── train.parquet

Görsel veri içeren Parquet dosyaları pandas veya datasets kütüphanesi kullanılarak oluşturulabilir. pandas ile görsel veri içeren Parquet dosyaları oluşturmak için pandas-image-methods ve df.to_parquet() kullanabilirsiniz. datasets içinde sütun türünü Image() olarak ayarlayıp ds.to_parquet(...) yöntemini veya ds.push_to_hub(...) kullanabilirsiniz. datasets ile görsel veri kümelerini yükleme konusunda bir kılavuza buradan ulaşabilirsiniz.

Alternatif olarak, diğer araçlar kullanılarak oluşturulan Parquet dosyasının görüntü türünü manuel olarak ayarlayabilirsiniz. Öncelikle, görüntü sütunlarınızın struct türünde olduğundan, görüntü verileri için "bytes" adlı bir ikili alan ve görüntü dosya adı veya yolu için "path" adlı bir dize alanı içerdiğinden emin olun. Ardından, sütunların özellik türlerini README başlığındaki YAML dosyasında doğrudan belirtmeniz gerekir, örneğin:

dataset_info:
  features:
  - name: image
    dtype: image
  - name: caption
    dtype: string

Parquet'in küçük görseller için (<1MB/görsel) ve küçük satır grupları için (100 satır/satır grubu, datasets'in görseller için kullandığı yapı) önerildiğini unutmayın. Daha büyük görseller için WebDataset biçimini kullanmak veya orijinal görsel dosyalarını paylaşmak (isteğe bağlı olarak meta veri dosyalarıyla birlikte ve depolama ile dosya sayısı için depo önerileri ve sınırlarına uygun olarak) önerilir.

Update on GitHub