Poz Tahmini 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ı aşağıdaki gibidir:
- Resim başına bir metin dosyası: Veri kümesindeki her resim, resim dosyasıyla aynı ada ve ".txt" uzantısına sahip karşılık gelen bir metin dosyasına sahiptir.
- Nesne başına bir satır: Metin dosyasındaki her satır, resimdeki bir nesne örneğine karşılık gelir.
- 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 merkez koordinatları: Nesnenin merkezinin x ve y koordinatları, 0 ile 1 arasında olacak şekilde normalleştirilmiştir.
- Nesne genişliği ve yüksekliği: Nesnenin 0 ile 1 arasında olacak şekilde normalleştirilmiş genişliği ve yüksekliği.
- Nesne anahtar nokta 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çimlendirme
<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>
Dim = 3 ile Biçimlendirme
<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ının indeksidir,<x> <y> <width> <height>
koordinatlarıdır sınırlayıcı kutuve <px1> <py1> <px2> <py2> ... <pxn> <pyn>
anahtar noktalarının piksel koordinatlarıdır. Koordinatlar boşluklarla ayrılır.
Veri Kümesi YAML formatı
Ultralytics çerçevesi, poz tahmini modellerini eğitmek için veri seti ve model yapılandırmasını tanımlamak için bir YAML dosya biçimi kullanır. İşte bir poz veri setini tanımlamak için kullanılan YAML biçimine 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
# 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örüntülerini içeren dizinlerin yollarını belirtir.
names
, sınıf adlarının bir sözlüğüdü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 simetrik ise, insanın veya yüzün sol-sağ tarafı gibi flip_idx'e ihtiyaç vardır. Örneğin, yüz işaretinin beş temel 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]'tür (sadece sol-sağ indeksi değiştirin, yani 0-1 ve 3-4 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 Kümeleri
Bu bölüm, Ultralytics YOLO formatıyla uyumlu olan ve poz tahmini modellerini eğitmek için kullanılabilecek veri kümelerini özetlemektedir:
COCO-Pose
- Açıklama: COCO-Pose, büyük ölçekli bir nesne algılama, segmentasyon 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 çok anahtar nokta içerir.
- Etiket Formatı: İnsan pozları için kilit noktalarla, yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
- Sınıf Sayısı: 1 (İnsan).
- Kilit Noktalar: Burun, gözler, kulaklar, omuzlar, dirsekler, bilekler, kalçalar, dizler ve ayak bilekleri dahil 17 kilit nokta.
- Kullanım: İnsan pozu tahmin modellerini eğitmek için uygundur.
- Ek Notlar: Veri seti, 200 binden fazla etiketli görüntü içeren zengin ve çeşitlidir.
- COCO-Pose hakkında daha fazla bilgi edinin
COCO8-Pose
- Açıklama: Ultralytics COCO8-Pose, 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; 4'ü eğitim ve 4'ü doğrulama içindir.
- Etiket Formatı: İnsan pozları için kilit noktalarla, yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
- Sınıf Sayısı: 1 (İnsan).
- Kilit Noktalar: Burun, gözler, kulaklar, omuzlar, dirsekler, bilekler, kalçalar, dizler ve ayak bilekleri dahil 17 kilit nokta.
- Kullanım: Nesne algılama modellerini test etmek ve hatalarını 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 Duruşu
- Açıklama: Ultralytics Kaplan Duruşu veri kümesi, bir YouTube Videosundan elde edilen 263 görüntüden oluşur ve 210 görüntü eğitim için ve 53 görüntü doğrulama için ayrılmıştır.
- Etiket Formatı: Hayvan pozu için 12 kilit noktası ve görünür boyutun olmadığı, yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
- Sınıf Sayısı: 1 (Kaplan).
- Kilit Noktalar: 12 kilit nokta.
- Kullanım: Hayvan pozu veya insan temelli olmayan diğer pozlar için harika.
- Tiger-Pose hakkında daha fazla bilgi edinin
El Anahtar Noktaları
- Açıklama: El anahtar noktaları pozu veri kümesi yaklaşık 26 bin görüntüden oluşur ve 18776 görüntü eğitim ve 7992 görüntü doğrulama için ayrılmıştır.
- Etiket Formatı: İnsan eli için 21 kilit noktası ve görünür boyutun olduğu, yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır.
- Sınıf Sayısı: 1 (El).
- Kilit Noktalar: 21 kilit nokta.
- Kullanım: İnsan el poz tahmini ve jest tanıma için harika.
- El Anahtar Noktaları hakkında daha fazla bilgi edinin
Köpek-Pozu
- Açıklama: Köpek Pozu veri kümesi yaklaşık 6.000 görüntü içerir ve köpek pozu tahmini modellerinin eğitimi ve doğrulanması için çeşitli ve kapsamlı bir kaynak sağlar.
- Etiket Formatı: Köpek anatomisine özgü birden çok kilit nokta için açıklamalarla Ultralytics YOLO formatını izler.
- Sınıf Sayısı: 1 (Köpek).
- Kilit Noktalar: Uzuvlar, eklemler ve baş pozisyonları gibi köpek pozlarına göre uyarlanmış 24 kilit 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 modelleri eğitmek için idealdir.
- Dog-Pose hakkında daha fazla bilgi edinin
Kendi veri kümenizi ekleme
Eğer kendi veri kümeniz varsa ve bunu Ultralytics YOLO formatı ile poz tahmini modellerini eğitmek için kullanmak istiyorsanız, yukarıda "Ultralytics YOLO formatı" altında belirtilen formata uygun olduğundan emin olun. Etiketlemelerinizi gerekli formata 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, etiketleri popüler COCO veri kümesi formatından 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. Şunu: use_keypoints
parametresi, dönüştürülen etiketlere (poz tahmini için) anahtar noktaların 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üyü karşılık gelen bir metin dosyasıyla etiketlemeyi 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)
2B pozlar için, anahtar noktalar piksel koordinatlarını içerir. 3B için, her anahtar noktanın bir de görünürlük işareti vardır. Daha fazla ayrıntı için Ultralytics YOLO formatına bakın.
Ultralytics YOLO ile COCO-Pose veri kümesini nasıl kullanırım?
COCO-Pose veri kümesini Ultralytics YOLO ile kullanmak için:
- Veri kümesini indirin ve etiket dosyalarınızı YOLO biçiminde hazırlayın.
- Eğitim ve doğrulama görüntülerine, anahtar nokta şekline ve sınıf adlarına giden yolları belirten bir YAML yapılandırma dosyası oluşturun.
-
Eğitim için yapılandırma dosyasını kullanın:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
Daha fazla bilgi için COCO-Pose ve train bölümlerini ziyaret edin.
Ultralytics YOLO'da poz tahmini için kendi veri kümemi nasıl ekleyebilirim?
Veri kümenizi eklemek için:
- Açıklamalarınızı Ultralytics YOLO formatına dönüştürün.
- 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.
-
Modelinizi eğitmek için yapılandırma dosyasını kullanın:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Tüm adımlar için, Kendi veri kümenizi ekleme bölümünü kontrol edin.
Ultralytics YOLO'da veri seti 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örüntülerinin 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 ö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
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip
Veri Kümesi YAML formatında YAML yapılandırma dosyaları oluşturma hakkında daha fazla bilgi edinin.
Poz tahmini için COCO veri kümesi etiketlerini Ultralytics YOLO formatına nasıl dönüştürebilirim?
Ultralytics, COCO veri kümesi 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 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ın.