Meet YOLO26: next-gen vision AI.

Link to this sectionPoz Tahmini Veri Kümelerine Genel Bakış#

Link to this sectionDesteklenen Veri Kümesi Formatları#

Link to this sectionUltralytics YOLO formatı#

YOLO poz modellerini eğitmek için kullanılan veri kümesi etiket formatı şu şekildedir:

  1. Görsel başına bir metin dosyası: Veri kümesindeki her görselin, görsel dosyasıyla aynı ada sahip ve ".txt" uzantılı karşılık gelen bir metin dosyası bulunur.
  2. Nesne başına bir satır: Metin dosyasındaki her satır, görseldeki bir nesne örneğine karşılık gelir.
  3. Satır başına nesne bilgisi: Her satır, nesne örneği hakkında şu bilgileri içerir:
    • Nesne sınıfı indeksi: Nesnenin sınıfını temsil eden bir tam sayı (örneğin, kişi için 0, araba için 1 vb.).
    • Nesne merkez koordinatları: 0 ile 1 arasında normalize edilmiş, nesnenin merkezinin x ve y koordinatları.
    • Nesne genişliği ve yüksekliği: 0 ile 1 arasında normalize edilmiş, nesnenin genişliği ve yüksekliği.
    • Nesne anahtar nokta koordinatları: 0 ile 1 arasında normalize edilmiş, nesnenin anahtar noktaları.

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

2D anahtar noktalı format

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

Anahtar nokta görünürlüğü içeren format (nokta başına görünürlüğü içerir)

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

Bu formatta, <class-index> nesnenin sınıf indeksidir, <x> <y> <width> <height> sınırlayıcı kutunun normalize edilmiş koordinatlarıdır ve <px1> <py1> <px2> <py2> ... <pxn> <pyn> normalize edilmiş anahtar nokta koordinatlarıdır. Görünürlük kanalı isteğe bağlıdır ancak tıkanıklıkları etiketleyen veri kümeleri için faydalıdır.

Link to this sectionVeri kümesi YAML formatı#

Ultralytics çerçevesi, poz tahmini modellerini eğitmek için veri kümesini ve model yapılandırmasını tanımlamak amacıyla bir YAML dosya formatı kullanır. İşte bir poz veri kümesini tanımlamak için kullanılan YAML formatı örneği:

ultralytics/cfg/datasets/coco8-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

train ve val alanları, sırasıyla eğitim ve doğrulama görsellerini içeren dizinlerin yollarını belirtir.

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

(İsteğe bağlı) Noktalar simetrikse, insanın sol-sağ tarafı veya yüz gibi flip_idx gerekir. Örneğin, beş yüz işaret noktası 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ğ indekslerini değiştirin, yani 0-1 ve 3-4, burun gibi diğerlerini değiştirmeyin).

Link to this sectionKullanım#

Örnek
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)

Link to this sectionDesteklenen Veri Kümeleri#

Bu bölüm, Ultralytics YOLO formatıyla uyumlu olan ve poz tahmini modellerini eğitmek için kullanılabilen veri kümelerini özetler:

Link to this sectionCOCO-Pose#

  • Açıklama: COCO-Pose; büyük ölçekli bir nesne algılama, bölütleme ve poz tahmini veri kümesidir. Popüler COCO veri kümesinin 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ı: Yukarıda açıklandığı gibi, insan pozları için anahtar noktalarla birlikte 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 olmak üzere 17 anahtar nokta.
  • Kullanım: İnsan pozu tahmini modellerini eğitmek için uygundur.
  • Ek Notlar: Veri kümesi zengin ve çeşitlidir, 200 binden fazla etiketli görsel içerir.
  • COCO-Pose hakkında daha fazla bilgi edinin

Link to this sectionCOCO8-Pose#

  • Açıklama: Ultralytics COCO8-Pose, COCO train 2017 kümesinin ilk 8 görselinden (4'ü eğitim, 4'ü doğrulama için) oluşan küçük ama çok yönlü bir poz algılama veri kümesidir.
  • Etiket Formatı: Yukarıda açıklandığı gibi, insan pozları için anahtar noktalarla birlikte 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 olmak üzere 17 anahtar nokta.
  • Kullanım: 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, doğrulama kontrolleri ve CI kontrolleri için idealdir.
  • COCO8-Pose hakkında daha fazla bilgi edinin

Link to this sectionDog-Pose#

  • Açıklama: Dog Pose veri kümesi, köpek anahtar nokta tahmini için kapsamlı ve çeşitli bir kaynak sağlayan 6.773 eğitim ve 1.703 test görseli içerir.
  • Etiket Formatı: Köpek anatomisine özgü çoklu anahtar noktalar için açıklamalarla birlikte Ultralytics YOLO formatını izler.
  • Sınıf Sayısı: 1 (Köpek).
  • Anahtar Noktalar: Uzuvlar, eklemler ve baş pozisyonları gibi köpek pozlarına göre uyarlanmış 24 anahtar nokta içerir.
  • Kullanım: Araştırmadan gerçek dünya uygulamalarına kadar çeşitli senaryolarda köpek pozlarını tahmin etmek için modeller eğitmek için idealdir.
  • Dog-Pose hakkında daha fazla bilgi edinin

Link to this sectionEl Anahtar Noktaları#

  • Açıklama: El anahtar noktaları poz veri kümesi, 18.776'sı eğitim ve 7.992'si doğrulama için ayrılmış yaklaşık 26 bin görselden oluşur.
  • Etiket Formatı: Yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır, ancak insan eli için 21 anahtar nokta ve bir görünürlük boyutu içerir.
  • Sınıf Sayısı: 1 (El).
  • Anahtar Noktalar: 21 anahtar nokta.
  • Kullanım: İnsan eli pozu tahmini ve jest tanıma için harikadır.
  • El Anahtar Noktaları hakkında daha fazla bilgi edinin

Link to this sectionTiger-Pose#

  • Açıklama: Ultralytics Tiger Pose veri kümesi, bir YouTube videosundan alınan 263 görüntüden oluşur; bunların 210'u eğitim, 53'ü ise doğrulama için ayrılmıştır.
  • Etiket Formatı: Yukarıda açıklandığı gibi, hayvan pozu için 12 anahtar noktası olan ve görünürlük boyutu olmayan Ultralytics YOLO formatıyla aynıdır.
  • Sınıf Sayısı: 1 (Kaplan).
  • Anahtar Noktalar: 12 anahtar nokta.
  • Kullanım: Hayvan pozu veya insan bazlı olmayan diğer pozlar için harikadır.
  • Tiger-Pose hakkında daha fazla bilgi edinin

Link to this sectionKendi veri kümeni ekleme#

Kendi veri kümen varsa ve onu Ultralytics YOLO formatıyla poz tahmini modellerini eğitmek için kullanmak istiyorsan, "Ultralytics YOLO formatı" altında belirtilen formatı izlediğinden emin ol. Açıklamalarını gerekli formata dönüştür ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirt.

Link to this sectionDönüştürme Aracı#

Ultralytics, popüler COCO veri kümesi 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 kümesini veya COCO formatındaki herhangi bir veri kümesini Ultralytics YOLO formatına dönüştürmek için kullanılabilir. use_keypoints parametresi, dönüştürülen etiketlere anahtar noktaların (poz tahmini için) dahil edilip edilmeyeceğini belirtir.

Link to this sectionSSS#

Link to this sectionPoz tahmini için Ultralytics YOLO formatı nedir?#

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

  • Nesne sınıfı indeksi
  • Nesne merkez koordinatları (normalize edilmiş x ve y)
  • Nesne genişliği ve yüksekliği (normalize edilmiş)
  • Nesne anahtar nokta koordinatları (normalize edilmiş pxn ve pyn)

2D pozlar için anahtar noktalar, normalize edilmiş x ve y koordinatlarını içerir. Görünürlük boyutu ile her anahtar noktanın bir görünürlük bayrağı da vardır. Daha fazla ayrıntı için Ultralytics YOLO formatına bak.

Link to this sectionCOCO-Pose veri kümesini Ultralytics YOLO ile nasıl kullanırım?#

COCO-Pose veri kümesini Ultralytics YOLO ile kullanmak için:

  1. Veri kümesini indir ve etiket dosyalarını YOLO formatında hazırla.

  2. Eğitim ve doğrulama görsellerinin yollarını, anahtar nokta şeklini ve sınıf adlarını belirten bir YAML yapılandırma dosyası oluştur.

  3. Eğitim için yapılandırma dosyasını kullan:

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

    Daha fazla bilgi için COCO-Pose ve eğitim bölümlerini ziyaret et.

Link to this sectionUltralytics YOLO'da poz tahmini için kendi veri kümemi nasıl ekleyebilirim?#

Veri kümeni eklemek için:

  1. Açıklamalarını Ultralytics YOLO formatına dönüştür.

  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ştur.

  3. Modelini eğitmek için yapılandırma dosyasını kullan:

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

    Eksiksiz adımlar için Kendi veri kümeni ekleme bölümüne göz at.

Link to this sectionUltralytics YOLO'daki veri kümesi YAML dosyasının amacı nedir?#

Ultralytics YOLO'daki veri kümesi YAML dosyası, eğitim için veri kümesi ve model yapılandırmasını tanımlar. Eğitim, doğrulama ve test görsellerinin yollarını, 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 bir YAML formatı örneği:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

YAML yapılandırma dosyaları oluşturma hakkında daha fazla bilgiyi Veri kümesi YAML formatı bölümünde oku.

Link to this sectionCOCO veri kümesi etiketlerini poz tahmini için Ultralytics YOLO formatına nasıl dönüştürebilirim?#

Ultralytics, anahtar nokta bilgileri dahil olmak üzere COCO veri kümesi etiketlerini 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 kümelerini YOLO projelerine sorunsuz bir şekilde entegre etmeye yardımcı olur. Ayrıntılar için Dönüştürme Aracı bölümüne ve veri ön işleme kılavuzuna başvur.

Yorumlar