# 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 koleksiyonu](https://huggingface.co/collections/datasets-examples/image-dataset-6568e7cf28639db76eb92d65)nda ilgili depoların örneklerini bulabilirsiniz.

Desteklenen bir yapıya ve [dosya biçimlerine](./datasets-adding#file-formats) 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](https://github.com/webdataset/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](./datasets-adding#file-formats) 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](./datasets-file-names-and-splits) 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](https://huggingface.co/tasks/image-to-text) veya [nesne algılama](https://huggingface.co/tasks/object-detection) 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:

```csv
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](https://jsonlines.org/) dosyası olan `metadata.jsonl` dosyasını da kullanabilirsiniz:

```jsonl
{"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](https://parquet.apache.org/) 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:

```csv
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](./datasets-file-names-and-splits) 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](./datasets-manual-configuration) devre dışı bırakabilirsiniz. Dizin adlarınızın özel bir anlamı yoksa, README başlığına `drop_labels: true` ayarlayın:

```yaml
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](./datasets-webdataset) biçimi, büyük ölçekli görüntü veri kümeleri için uygundur (örneğin [timm/imagenet-12k-wds](https://huggingface.co/datasets/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 TAR arşivini ö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](./data-studio)'ı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. Bunun hakkında daha fazla bilgi için [Parquet format](./data-studio#access-the-parquet-files) belgelerine göz atın.

### Parquet biçimi

Görselleri ve meta verileri ayrı dosyalar olarak yüklemek yerine, her şeyi bir [Parquet](https://parquet.apache.org/) 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 kullanışlı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](https://github.com/lhoestq/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](/docs/datasets/image_load) 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:

```yaml
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](https://huggingface.co/docs/hub/en/storage-limits) uygun olarak) önerilir.

