Poz Tahminleme Veri Kümelerine Genel Bakış
Desteklenen Veri Kümesi Formatları
Ultralytics YOLO formatı
YOLO poz modellerini eğitmek için kullanılan veri kümesi etiket formatı şu şekildedir:
- Görüntü başına bir metin dosyası: Veri kümesindeki her görüntünün, görüntü dosyasıyla aynı isme ve ".txt" uzantısına sahip karşılık gelen bir metin dosyası vardır.
- Nesne başına bir satır: Metin dosyasındaki her satır, görüntüdeki bir nesne örneğine karşılık gelir.
- 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 tamsayı (örneğin, kişi için 0, araba için 1 vb.).
- Nesne merkez koordinatları: Nesnenin merkezinin, 0 ile 1 arasında olacak şekilde normalize edilmiş x ve y koordinatları.
- Nesne genişliği ve yüksekliği: Nesnenin, 0 ile 1 arasında olacak şekilde normalize edilmiş genişliği ve yüksekliği.
- Nesne anahtar nokta koordinatları: Nesnenin, 0 ile 1 arasında olacak şekilde normalize edilmiş anahtar noktaları.
İşte bir poz tahminleme görevi için etiket formatına dair bir örnek:
2D anahtar noktalı format
<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>
3D anahtar noktalı 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> nesne sınıfının indeksidir, <x> <y> <width> <height> sınırlayıcı kutunun normalize edilmiş koordinatlarıdır ve <px1> <py1> <px2> <py2> ... <pxn> <pyn> ise normalize edilmiş anahtar nokta koordinatlarıdır. Görünürlük kanalı isteğe bağlıdır ancak örtüşmeyi etiketleyen veri kümeleri için yararlıdır.
Veri kümesi YAML biçimi
Ultralytics çerçevesi, poz tahminleme 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ına dair bir örnek:
# 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.ziptrain 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 isimlerinin bir sözlüğüdür. İsimlerin 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 durumlarda flip_idx gerekir. Örneğin, beş yüz işareti 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 değiştirin, yani 0-1 ve 3-4, burun gibi diğerlerini bu örnekte değiştirmeyin).
Kullanım
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)Desteklenen Veri Kümeleri
Bu bölüm, Ultralytics YOLO formatı ile uyumlu olan ve poz tahminleme modellerini eğitmek için kullanılabilecek veri kümelerini ana hatlarıyla belirtir:
COCO-Pose
- Açıklama: COCO-Pose, büyük ölçekli bir nesne algılama, segmentasyon ve poz tahminleme veri kümesidir. Popüler COCO veri kümesinin bir alt kümesidir ve insan pozu tahminlemeye odaklanır. COCO-Pose, her bir insan örneği için birden fazla anahtar nokta içerir.
- Etiket Formatı: Yukarıda açıklandığı gibi Ultralytics YOLO formatı ile aynıdır, insan pozları için anahtar noktalar içerir.
- 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 tahminleme 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
COCO8-Pose
- Açıklama: Ultralytics COCO8-Pose, COCO train 2017 kümesinin ilk 8 görselinden oluşan (4'ü eğitim, 4'ü doğrulama için) küçük ama çok yönlü bir poz algılama veri kümesidir.
- Etiket Formatı: Yukarıda açıklandığı gibi Ultralytics YOLO formatı ile aynıdır, insan pozları için anahtar noktalar içerir.
- 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, hata ayıklamak veya yeni algılama yaklaşımlarıyla denemeler yapmak için uygundur.
- Ek Notlar: COCO8-Pose, hızlı kontroller ve CI kontrolleri için idealdir.
- COCO8-Pose hakkında daha fazla bilgi edinin
Dog-Pose
- Açıklama: Dog-Pose veri kümesi 6.773 eğitim ve 1.703 test görseli içerir, köpek anahtar nokta tahminlemesi için çeşitli ve geniş bir kaynak sağlar.
- Etiket Formatı: Ultralytics YOLO formatını takip eder, köpek anatomisine özgü çok sayıda anahtar nokta için açıklamalar içerir.
- Sınıf Sayısı: 1 (Köpek).
- Anahtar Noktalar: Uzuvlar, eklemler ve kafa pozisyonları gibi köpeklere özgü 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 adına idealdir.
- Dog-Pose hakkında daha fazla bilgi edinin
Hand Keypoints
- Açıklama: Hand Keypoints poz veri kümesi, yaklaşık 26 bin görsel içerir; bunlardan 18.776'sı eğitim, 7.992'si doğrulama için ayrılmıştır.
- Etiket Formatı: Yukarıda açıklanan Ultralytics YOLO formatı ile 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 tahminleme ve jest tanıma için harikadır.
- Hand Keypoints hakkında daha fazla bilgi edinin
Tiger-Pose
- Açıklama: Ultralytics Tiger-Pose veri kümesi, bir YouTube videosundan alınan 263 görseli içerir; bunların 210'u eğitim, 53'ü doğrulama için ayrılmıştır.
- Etiket Formatı: Yukarıda açıklandığı gibi Ultralytics YOLO formatı ile aynıdır, hayvan pozu için 12 anahtar nokta içerir ve görünürlük boyutu yoktur.
- Sınıf Sayısı: 1 (Kaplan).
- Anahtar Noktalar: 12 anahtar nokta.
- Kullanım: Hayvan pozu veya insan tabanlı olmayan diğer tüm pozlar için harikadır.
- Tiger-Pose hakkında daha fazla bilgi edinin
Kendi veri kümeni ekleme
Kendi veri kümen varsa ve onu Ultralytics YOLO formatıyla poz tahminleme modellerini eğitmek için kullanmak istiyorsan, "Ultralytics YOLO formatı" altında belirtilen formata uyduğundan emin ol. Ek 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 isimlerini belirt.
Dö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:
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 tahminleme için) dahil edilip edilmeyeceğini belirtir.
SSS
Poz tahminleme için Ultralytics YOLO formatı nedir?
Poz tahminleme veri kümeleri için Ultralytics YOLO formatı, her görselin 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ı 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 piksel koordinatlarını içerir. 3D için, her anahtar noktanın ayrıca bir görünürlük bayrağı vardır. Daha fazla ayrıntı için Ultralytics YOLO formatı kısmına bak.
COCO-Pose veri kümesini Ultralytics YOLO ile nasıl kullanırım?
COCO-Pose veri kümesini Ultralytics YOLO ile kullanmak için:
-
Veri kümesini indir ve etiket dosyalarını YOLO formatında hazırla.
-
Eğitim ve doğrulama görsellerine giden yolları, anahtar nokta şeklini ve sınıf isimlerini belirten bir YAML yapılandırma dosyası oluştur.
-
Yapılandırma dosyasını eğitim için 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.
Ultralytics YOLO'da poz tahminleme için kendi veri kümemi nasıl ekleyebilirim?
Veri kümeni eklemek için:
-
Ek açıklamalarını Ultralytics YOLO formatına dönüştür.
-
Veri kümesi yollarını, sınıf sayısını ve sınıf isimlerini belirten bir YAML yapılandırma dosyası oluştur.
-
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.
Ultralytics YOLO'da veri kümesi YAML dosyasının amacı nedir?
Ultralytics YOLO'daki 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örsellerine giden yolları, anahtar nokta şekillerini, sınıf isimlerini 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 örnek YAML formatı:
# 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.zipYAML yapılandırma dosyaları oluşturma hakkında daha fazla bilgiyi Veri kümesi YAML formatı bölümünde oku.
Poz tahminleme için COCO veri kümesi etiketlerini 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 bak.