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:
- 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.
- 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 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>
'nin 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ı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
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
El Anahtar Noktaları
- Açıklama: El anahtar noktaları poz veri kümesi, eğitim için 18776 ve doğrulama için 7992 görüntü ayrılmış yaklaşık 26 bin görüntüden oluşmaktadır.
- Etiket Formatı: Yukarıda açıklanan Ultralytics YOLO formatıyla aynıdır, ancak insan eli ve görünür boyut için 21 anahtar noktası vardır.
- Sınıf Sayısı: 1 (El).
- Anahtar Noktalar: 21 kilit nokta.
- Kullanım alanı: İnsan eli poz tahmini için idealdir.
- Hand Keypoints hakkında daha fazla bilgi edinin
Köpek Pozu
- Açıklama Köpek Pozu veri kümesi, köpek pozu tahmin modellerinin eğitimi ve doğrulanması için çeşitli ve kapsamlı bir kaynak sağlayan yaklaşık 6.000 görüntü içerir.
- Etiket Formatı: Ultralytics YOLO formatını takip eder ve köpek anatomisine özgü birden fazla kilit nokta için ek açıklamalar içerir.
- 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 Şekli: Araştırmadan gerçek dünya uygulamalarına kadar çeşitli senaryolarda köpek pozlarını tahmin etmek için eğitim modelleri için idealdir.
- Dog-Pose hakkında daha fazla bilgi edinin
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
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?
COCO-Pose veri setini Ultralytics YOLO ile kullanmak için:
- Veri setini indirin ve etiket dosyalarınızı YOLO formatında hazırlayın.
- Eğitim ve doğrulama görüntülerinin yollarını, anahtar nokta şeklini ve sınıf adlarını 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 adresinde poz tahmini için kendi veri kümemi nasıl ekleyebilirim?
Veri setinizi eklemek için:
- Ek 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)
Tam adımlar için Kendi veri kümenizi ekleme bölümüne bakın.
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:
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.