İçeriğe geç

Poz Tahmini Veri Kümelerine Genel Bakış

Desteklenen Veri Kümesi Formatları

Ultralytics YOLO Biçim

YOLO poz modellerini eğitmek için kullanılan veri seti etiket formatı aşağıdaki gibidir:

  1. Görüntü başına bir metin dosyası: Veri kümesindeki her görüntünün, görüntü dosyasıyla aynı ada ve ".txt" uzantısına sahip karşılık gelen bir metin dosyası vardır.
  2. Nesne başına bir satır: Metin dosyasındaki her satır görüntüdeki bir nesne örneğine karşılık gelir.
  3. Satır başına nesne bilgisi: Her satır, nesne örneği hakkında aşağıdaki bilgileri içerir:
    • Nesne sınıfı indeksi: Nesnenin sınıfını temsil eden bir tamsayı (örneğin, kişi için 0, araba için 1, vb.).
    • Nesne merkezi koordinatları: Nesnenin merkezinin x ve y koordinatları, 0 ile 1 arasında olacak şekilde normalleştirilir.
    • Nesne genişliği ve yüksekliği: Nesnenin genişliği ve yüksekliği, 0 ile 1 arasında olacak şekilde normalleştirilir.
    • Nesne anahtar noktası koordinatları: Nesnenin 0 ile 1 arasında olacak şekilde normalleştirilmiş anahtar noktaları.

İşte poz tahmini görevi için etiket formatının bir örneği:

Dim = 2 ile biçimlendirin

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Dim = 3 ile biçimlendirin

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>

Bu formatta, <class-index> nesne için sınıfın indeksidir,<x> <y> <width> <height> sınırlayıcı kutunun koordinatları ve <px1> <py1> <px2> <py2> ... <pxn> <pyn> anahtar noktalarının piksel koordinatlarıdır. Koordinatlar boşluklarla ayrılmıştır.

Veri kümesi YAML biçimi

Ultralytics çerçevesi, Tespit Modellerinin eğitimi için veri kümesini ve model yapılandırmasını tanımlamak üzere bir YAML dosya biçimi kullanır. Burada bir algılama veri kümesini tanımlamak için kullanılan YAML formatının bir örneği yer almaktadır:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-pose  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Keypoints
kpt_shape: [17, 3]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes dictionary
names:
  0: person

Bu train ve val alanları sırasıyla eğitim ve doğrulama görüntülerini içeren dizinlerin yollarını belirtir.

names sınıf adlarından oluşan bir sözlüktür. İsimlerin sırası, YOLO veri kümesi dosyalarındaki nesne sınıfı indekslerinin sırası ile eşleşmelidir.

(İsteğe bağlı) noktalar simetrikse, insan veya yüzün sol-sağ tarafı gibi flip_idx'e ihtiyaç duyar. Örneğin, yüz işaretinin beş anahtar noktasını varsayarsak: [sol göz, sağ göz, burun, sol ağız, sağ ağız] ve orijinal indeks [0, 1, 2, 3, 4] ise flip_idx [1, 0, 2, 4, 3] olur (sadece sol-sağ indeksini, yani 0-1 ve 3-4'ü değiştirin ve bu örnekte burun gibi diğerlerini değiştirmeyin).

Kullanım

Örnek

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

Desteklenen Veri Setleri

Bu bölümde Ultralytics YOLO formatıyla uyumlu olan ve poz tahmin modellerini eğitmek için kullanılabilecek veri kümeleri özetlenmektedir:

COCO-Poz

  • Açıklama: COCO-Pose, büyük ölçekli bir nesne algılama, segmentasyon ve poz tahmini veri kümesidir. Popüler COCO veri setinin bir alt kümesidir ve insan pozu tahminine odaklanır. COCO-Pose, her insan örneği için birden fazla anahtar nokta içerir.
  • Etiket Formatı: İnsan pozları için anahtar noktalarla birlikte yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
  • Sınıf Sayısı: 1 (İnsan).
  • Anahtar Noktalar: Burun, gözler, kulaklar, omuzlar, dirsekler, bilekler, kalçalar, dizler ve ayak bilekleri dahil 17 kilit nokta.
  • Kullanım şekli: İnsan poz tahmin modellerini eğitmek için uygundur.
  • Ek Notlar: Veri kümesi zengin ve çeşitlidir, 200 binden fazla etiketli görüntü içerir.
  • COCO-Pose hakkında daha fazla bilgi edinin

COCO8-Poz

  • Açıklama: Ultralytics COCO8-Pose, 4'ü eğitim ve 4'ü doğrulama için olmak üzere COCO train 2017 setinin ilk 8 görüntüsünden oluşan küçük ama çok yönlü bir poz algılama veri kümesidir.
  • Etiket Formatı: İnsan pozları için anahtar noktalarla birlikte yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
  • Sınıf Sayısı: 1 (İnsan).
  • Anahtar Noktalar: Burun, gözler, kulaklar, omuzlar, dirsekler, bilekler, kalçalar, dizler ve ayak bilekleri dahil 17 kilit nokta.
  • Kullanım şekli: Nesne algılama modellerini test etmek ve hata ayıklamak veya yeni algılama yaklaşımlarını denemek için uygundur.
  • Ek Notlar: COCO8-Pose, akıl sağlığı kontrolleri ve CI kontrolleri için idealdir.
  • COCO8-Pose hakkında daha fazla bilgi edinin

Kaplan Pozu

  • Açıklama: Ultralytics Bu hayvan pozu veri kümesi, bir YouTube videosundan elde edilen 263 görüntüden oluşmaktadır; 210 görüntü eğitim için, 53 görüntü ise doğrulama için ayrılmıştır.
  • Etiket Formatı: Yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır, hayvan pozu için 12 anahtar noktası vardır ve görünür boyut yoktur.
  • Sınıf Sayısı: 1 (Kaplan).
  • Anahtar Noktalar: 12 kilit nokta.
  • Kullanım şekli: Hayvan pozu veya insan temelli olmayan diğer pozlar için idealdir.
  • Tiger-Pose hakkında devamını oku

Kendi veri setinizi ekleme

Kendi veri setiniz varsa ve bunu Ultralytics YOLO formatındaki poz tahmin modellerini eğitmek için kullanmak istiyorsanız, yukarıda "Ultralytics YOLO formatı" altında belirtilen formata uygun olduğundan emin olun. Ek açıklamalarınızı gerekli biçime dönüştürün ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirtin.

Dönüştürme Aracı

Ultralytics popüler COCO veri seti formatındaki etiketleri YOLO formatına dönüştürmek için kullanışlı bir dönüştürme aracı sağlar:

Örnek

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Bu dönüştürme aracı COCO veri setini veya COCO formatındaki herhangi bir veri setini Ultralytics YOLO formatına dönüştürmek için kullanılabilir. Bu araç use_keypoints parametresi, dönüştürülen etiketlere anahtar noktaların (poz tahmini için) dahil edilip edilmeyeceğini belirtir.

SSS

Poz tahmini için Ultralytics YOLO formatı nedir?

Poz tahmini veri kümeleri için Ultralytics YOLO formatı, her görüntünün karşılık gelen bir metin dosyası ile etiketlenmesini içerir. Metin dosyasının her satırı bir nesne örneği hakkında bilgi depolar:

  • Nesne sınıfı dizini
  • Nesne merkezi koordinatları (normalleştirilmiş x ve y)
  • Nesne genişliği ve yüksekliği (normalleştirilmiş)
  • Nesne anahtar noktası koordinatları (normalleştirilmiş pxn ve pyn)

2D pozlar için anahtar noktalar piksel koordinatlarını içerir. 3D için, her bir anahtar nokta ayrıca bir görünürlük bayrağına sahiptir. Daha fazla ayrıntı için bkz. Ultralytics YOLO formatı.

COCO-Pose veri setini Ultralytics YOLO ile nasıl kullanabilirim?

COCO-Pose veri setini Ultralytics YOLO ile kullanmak için: 1. Veri setini indirin ve etiket dosyalarınızı YOLO formatında hazırlayın. 2. Eğitim ve doğrulama görüntülerine giden yolları, anahtar nokta şeklini ve sınıf adlarını belirten bir YAML yapılandırma dosyası oluşturun. 3. Eğitim için yapılandırma dosyasını kullanın:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")  # load pretrained model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
```

For more information, visit [COCO-Pose](coco.md) and [train](../../modes/train.md) sections.

Ultralytics YOLO adresinde poz tahmini için kendi veri kümemi nasıl ekleyebilirim?

Veri setinizi eklemek için: 1. Ek açıklamalarınızı Ultralytics YOLO formatına dönüştürün. 2. Veri kümesi yollarını, sınıf sayısını ve sınıf adlarını belirten bir YAML yapılandırma dosyası oluşturun. 3. Modelinizi eğitmek için yapılandırma dosyasını kullanın:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
```

For complete steps, check the [Adding your own dataset](#adding-your-own-dataset) section.

Ultralytics YOLO adresindeki veri kümesi YAML dosyasının amacı nedir?

Ultralytics YOLO adresindeki veri kümesi YAML dosyası, eğitim için veri kümesini ve model yapılandırmasını tanımlar. Eğitim, doğrulama ve test görüntülerine giden yolları, anahtar nokta şekillerini, sınıf adlarını ve diğer yapılandırma seçeneklerini belirtir. Bu yapılandırılmış format, veri kümesi yönetimini ve model eğitimini kolaylaştırmaya yardımcı olur. İşte örnek bir YAML biçimi:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
  0: person

Veri Kümesi YAML biçiminde YAML yapılandırma dosyaları oluşturma hakkında daha fazla bilgi edinin.

COCO veri seti etiketlerini poz tahmini için Ultralytics YOLO formatına nasıl dönüştürebilirim?

Ultralytics COCO veri seti etiketlerini, anahtar nokta bilgileri de dahil olmak üzere YOLO formatına dönüştürmek için bir dönüştürme aracı sağlar:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Bu araç, COCO veri setlerinin YOLO projelerine sorunsuz bir şekilde entegre edilmesine yardımcı olur. Ayrıntılar için Dönüştürme Aracı bölümüne bakın.



Oluşturma 2023-11-12, Güncelleme 2024-07-04
Yazarlar: glenn-jocher (9)

Yorumlar