İç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> are coordinates of bounding boxve <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("yolo11n-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 pose train data=coco8-pose.yaml model=yolo11n-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

  • Description: COCO-Pose is a large-scale object detection, segmentation, and pose estimation dataset. It is a subset of the popular COCO dataset and focuses on human pose estimation. COCO-Pose includes multiple keypoints for each human instance.
  • 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

Hand Keypoints

  • Description: Hand keypoints pose dataset comprises nearly 26K images, with 18776 images allocated for training and 7992 for validation.
  • Label Format: Same as Ultralytics YOLO format as described above, but with 21 keypoints for human hand and visible dimension.
  • Number of Classes: 1 (Hand).
  • Keypoints: 21 keypoints.
  • Usage: Great for human hand pose estimation.
  • Read more about Hand Keypoints

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?

To use the COCO-Pose dataset with Ultralytics YOLO:

  1. Download the dataset and prepare your label files in the YOLO format.
  2. Create a YAML configuration file specifying paths to training and validation images, keypoint shape, and class names.
  3. Use the configuration file for training:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
    

    For more information, visit COCO-Pose and train sections.

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

To add your dataset:

  1. Convert your annotations to the Ultralytics YOLO format.
  2. Create a YAML configuration file specifying the dataset paths, number of classes, and class names.
  3. Use the configuration file to train your model:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
    

    For complete steps, check the 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.

📅 Created 11 months ago ✏️ Updated 1 month ago

Yorumlar