İçeriğe geç

COCO-Poz Veri Kümesi

COCO-Pose veri kümesi, COCO (Common Objects in Context) veri kümesinin poz tahmini görevleri için tasarlanmış özel bir sürümüdür. Poz tahmini görevleri için YOLO gibi modellerin eğitilmesini sağlamak üzere COCO Keypoints 2017 görüntülerinden ve etiketlerinden yararlanır.

Poz örnek görüntüsü

COCO-Poz Önceden Eğitilmiş Modeller

Model boyut
(piksel)
mAPpose
50-95
mAPpose
50
Hız
CPU ONNX
(ms)
Hız
A100 TensorRT
(ms)
params
(M)
FLOP'lar
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Temel Özellikler

  • COCO-Pose, poz tahmini görevleri için anahtar noktalarla etiketlenmiş 200 bin görüntü içeren COCO Keypoints 2017 veri kümesi üzerine kurulmuştur.
  • Veri seti, insan figürleri için 17 anahtar noktayı destekleyerek ayrıntılı poz tahminini kolaylaştırır.
  • COCO gibi, poz tahmini görevleri için Nesne Anahtar Noktası Benzerliği (OKS) dahil olmak üzere standartlaştırılmış değerlendirme metrikleri sağlar ve model performansını karşılaştırmak için uygun hale getirir.

Veri Kümesi Yapısı

COCO-Pose veri kümesi üç alt kümeye ayrılmıştır:

  1. Train2017: Bu alt küme, COCO veri kümesindeki 118 bin görüntünün bir kısmını içerir ve poz tahmin modellerini eğitmek için açıklama eklenmiştir.
  2. Val2017: Bu alt küme, model eğitimi sırasında doğrulama amacıyla kullanılan görüntülerden oluşan bir seçkiye sahiptir.
  3. Test2017: Bu alt küme, eğitilen modelleri test etmek ve kıyaslamak için kullanılan görüntülerden oluşur. Bu alt küme için temel gerçek açıklamaları kamuya açık değildir ve sonuçlar performans değerlendirmesi için COCO değerlendirme sunucusuna gönderilir.

Uygulamalar

COCO-Pose veri kümesi özellikle OpenPose gibi anahtar nokta tespiti ve poz tahmini görevlerinde derin öğrenme modellerini eğitmek ve değerlendirmek için kullanılır. Veri setinin çok sayıda açıklamalı görüntüsü ve standartlaştırılmış değerlendirme metrikleri, onu poz tahminine odaklanan bilgisayarla görme araştırmacıları ve uygulayıcıları için önemli bir kaynak haline getirmektedir.

Veri Kümesi YAML

Veri kümesi yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler hakkında bilgi içerir. COCO-Pose veri kümesi söz konusu olduğunda coco-pose.yaml dosyası şu adreste tutulur https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/pose/coco/
# Example usage: yolo train data=coco-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco-pose  ← downloads here (20.1 GB)

# 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/coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# 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: |
  from ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
  urls = [url + 'coco2017labels-pose.zip']  # labels
  download(urls, dir=dir.parent)
  # Download data
  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
          'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
          'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
  download(urls, dir=dir / 'images', threads=3)

Kullanım

Bir YOLOv8n-pose modelini COCO-Pose veri kümesi üzerinde 640 görüntü boyutuyla 100 epoch için eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Kullanılabilir bağımsız değişkenlerin kapsamlı bir listesi için Model Eğitimi sayfasına bakın.

Tren Örneği

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="coco-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

Örnek Görüntüler ve Açıklamalar

COCO-Pose veri kümesi, insan figürlerinin anahtar noktalarla açıklandığı çeşitli görüntüler içerir. Aşağıda veri kümesinden bazı görüntü örnekleri ve bunlara karşılık gelen ek açıklamalar yer almaktadır:

Veri kümesi örnek görüntüsü

  • Mozaiklenmiş Görüntü: Bu görüntü, mozaiklenmiş veri kümesi görüntülerinden oluşan bir eğitim grubunu göstermektedir. Mozaikleme, eğitim sırasında kullanılan ve her bir eğitim grubundaki nesne ve sahne çeşitliliğini artırmak için birden fazla görüntüyü tek bir görüntüde birleştiren bir tekniktir. Bu, modelin farklı nesne boyutlarına, en boy oranlarına ve bağlamlara genelleme yeteneğini geliştirmeye yardımcı olur.

Bu örnek, COCO-Pose veri setindeki görüntülerin çeşitliliğini ve karmaşıklığını ve eğitim sürecinde mozaikleme kullanmanın faydalarını göstermektedir.

Atıflar ve Teşekkür

Araştırma veya geliştirme çalışmalarınızda COCO-Pose veri setini kullanıyorsanız, lütfen aşağıdaki makaleye atıfta bulunun:

@misc{lin2015microsoft,
      title={Microsoft COCO: Common Objects in Context},
      author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Bilgisayarla görme topluluğu için bu değerli kaynağı yaratan ve sürdüren COCO Konsorsiyumu'na teşekkür ederiz. COCO-Pose veri seti ve yaratıcıları hakkında daha fazla bilgi için COCO veri seti web sitesini ziyaret edin.

SSS

COCO-Pose veri seti nedir ve poz tahmini için Ultralytics YOLO ile nasıl kullanılır?

COCO-Pose veri seti, poz tahmini görevleri için tasarlanmış COCO (Common Objects in Context) veri setinin özel bir versiyonudur. COCO Keypoints 2017 görüntüleri ve açıklamaları üzerine inşa edilmiştir ve ayrıntılı poz tahmini için Ultralytics YOLO gibi modellerin eğitilmesine olanak sağlar. Örneğin, önceden eğitilmiş bir modeli yükleyerek ve bir YAML yapılandırmasıyla eğiterek bir YOLOv8n-pose modelini eğitmek için COCO-Pose veri kümesini kullanabilirsiniz. Eğitim örnekleri için Eğitim belgelerine bakın.

COCO-Pose veri kümesi üzerinde bir YOLOv8 modelini nasıl eğitebilirim?

COCO-Pose veri kümesi üzerinde bir YOLOv8 modelinin eğitilmesi Python veya CLI komutları kullanılarak gerçekleştirilebilir. Örneğin, 640 görüntü boyutuyla 100 epoch için bir YOLOv8n-pose modelini eğitmek için aşağıdaki adımları takip edebilirsiniz:

Tren Örneği

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="coco-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco-pose.yaml model=yolov8n.pt epochs=100 imgsz=640

Eğitim süreci ve mevcut argümanlar hakkında daha fazla bilgi için eğitim sayfasını kontrol edin.

Model performansını değerlendirmek için COCO-Pose veri seti tarafından sağlanan farklı metrikler nelerdir?

COCO-Pose veri kümesi, orijinal COCO veri kümesine benzer şekilde poz tahmin görevleri için çeşitli standartlaştırılmış değerlendirme ölçütleri sağlar. Temel ölçütler arasında, tahmin edilen anahtar noktaların doğruluğunu temel gerçek ek açıklamalarına göre değerlendiren Nesne Anahtar Nokta Benzerliği (OKS) yer alır. Bu metrikler, farklı modeller arasında kapsamlı performans karşılaştırmaları yapılmasına olanak tanır. Örneğin, YOLOv8n-pose, YOLOv8s-pose ve diğerleri gibi COCO-Pose ön eğitimli modellerin belgelerde listelenen mAPpose50-95ve mAPpose50gibi belirli performans ölçümleri vardır.

COCO-Pose veri kümesi için veri kümesi nasıl yapılandırılmış ve bölünmüştür?

COCO-Pose veri kümesi üç alt kümeye ayrılmıştır:

  1. Train2017: Poz tahmin modellerini eğitmek için açıklama eklenmiş 118K COCO görüntüsünün bir kısmını içerir.
  2. Val2017: Model eğitimi sırasında doğrulama amacıyla seçilen görüntüler.
  3. Test2017: Eğitilmiş modelleri test etmek ve kıyaslamak için kullanılan görüntüler. Bu alt küme için temel gerçek açıklamaları kamuya açık değildir; sonuçlar performans değerlendirmesi için COCO değerlendirme sunucusuna gönderilir.

Bu alt kümeler eğitim, doğrulama ve test aşamalarının etkili bir şekilde düzenlenmesine yardımcı olur. Yapılandırma ayrıntıları için coco-pose.yaml dosyasında mevcut GitHub.

COCO-Pose veri setinin temel özellikleri ve uygulamaları nelerdir?

COCO-Pose veri kümesi, COCO Keypoints 2017 ek açıklamalarını insan figürleri için 17 anahtar nokta içerecek şekilde genişleterek ayrıntılı poz tahminine olanak sağlar. Standartlaştırılmış değerlendirme metrikleri (örn. OKS) farklı modeller arasında karşılaştırma yapılmasını kolaylaştırır. COCO-Pose veri kümesinin uygulamaları, insan figürlerinin ayrıntılı poz tahmininin gerekli olduğu spor analitiği, sağlık hizmetleri ve insan-bilgisayar etkileşimi gibi çeşitli alanları kapsamaktadır. Pratik kullanım için, dokümantasyonda sağlananlar gibi önceden eğitilmiş modellerden yararlanmak (örneğin, YOLOv8n-pose) süreci önemli ölçüde kolaylaştırabilir (Temel Özellikler).

COCO-Pose veri setini araştırma veya geliştirme çalışmalarınızda kullanırsanız, lütfen aşağıdaki BibTeX girişiyle makaleye atıfta bulunun.



Oluşturma 2023-11-12, Güncelleme 2024-07-17
Yazarlar: hnliu_2@stu.xidian.edu.cn (1), glenn-jocher (7), RizwanMunawar (1), Laughing-q (1)

Yorumlar