İç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.



Oluşturuldu 2023-11-12, Güncellendi 2024-04-18
Yazarlar: glenn-jocher (6)

Yorumlar