Pose Estimation
Poz tahmini, bir bedenin veya nesnenin konumunu tanımlamak için eklemler gibi kilit noktaların yerini belirler. Üstten alta, alttan üste ve tek aşamalı yöntemler ile OKS.
Poz tahmini, bir beden veya nesne üzerindeki önceden belirlenmiş anahtar noktaları, örneğin kişinin omuz, dirsek ve dizlerini bulup bunları duruşu tanımlayan bir iskelet hâlinde birleştirme bilgisayarlı görü görevidir. Model, her anahtar noktanın görüntü koordinatlarını veya 3B konumunu bir güven puanıyla birlikte verir; böylece uygulamalar eklem açılarını ölçebilir, tekrarları sayabilir veya eylemleri tanıyabilir. Poz tahmini her kişinin nasıl durduğunu veya hareket ettiğini açıklar; nesne algılamadan gelen bir sınırlayıcı kutu ya da örnek bölütlemeden gelen bir maske bunu gösteremez.
Poz Tahmini Nasıl Çalışır#
Çok kişili 2B poz tahmin yöntemleri üç stratejiden birini izler; üçüncüsü tek aşamalı nesne algılayıcılarını andırır:
- Yukarıdan aşağıya: Bir kişi algılayıcı görüntüdeki herkesi bulur ve tek kişili bir model her kırpımın içindeki anahtar noktaları tahmin eder; HRNet (2019) ve ViTPose (2022) bu yaklaşıma örnektir. Büyük ve açıkça görülen kişilerde doğruluk yüksektir; maliyet kişi sayısıyla artar.
- Aşağıdan yukarıya: Ağ, görüntüdeki tüm anahtar noktaları bir kerede bulur ve ardından bunları kişilere göre gruplandırır. OpenPose (2017), eklemleri her uzuv boyunca yön gösteren 2B vektörler olan parça benzeşim alanlarıyla birleştirir; bu nedenle kalabalıklardaki maliyeti neredeyse sabit kalır.
- Tek aşamalı: Ağ, tek geçişte aynı ızgara konumundan bir kişi kutusu ve tüm anahtar noktalarını tahmin eder; bu nedenle ne kırpım ne de gruplama adımı gerekir. YOLO-Pose (2022), bu tasarımı YOLO'ya kazandırdı.
Anahtar nokta konumları, her anahtar nokta için tepe noktası konumu belirten bir olasılık haritası olan ısı haritalarından veya koordinatları doğrudan regresyonla tahmin ederek elde edilir. Isı haritaları yıllarca kıyaslamalarda öne çıktı ancak bellek maliyetleri yüksektir ve harita çözünürlüğüyle sınırlıdır. Artık Log-Olabilirlik Tahmini (RLE), 2021'de bir normalleştirici akış ile tahmin hatasının dağılımını öğrenerek regresyonla aradaki farkı kapattı. YOLO26 poz modelleri, RLE ile eğitilen tek aşamalı regresyon modelleridir: Eğitim sırasında ek bir dal her anahtar noktanın belirsizliğini tahmin eder ve bir RealNVP akışı hatayı puanlar; model çıkarım için birleştirildiğinde ikisi de kaldırılır, dolayısıyla çıkarım maliyeti eklemezler.
from ultralytics import YOLO
# 17 COCO vücut anahtar noktası üzerinde eğitilmiş bir YOLO26 nano poz modelini yükle
model = YOLO("yolo26n-pose.pt")
# Her kişiyi ve anahtar noktalarını tek geçişte bul
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Şekil (kişi sayısı, anahtar nokta sayısı, xy) biçimindedir; iskeletlerin çizildiği görüntüyü kaydet
print(result.keypoints.xy.shape)
result.save(filename="pose_result.jpg")Yazdırılan şekil, 17 anahtar noktasından ve 2 piksel koordinatından bulunan kişi sayısını verir; kaydedilen görüntüde her kişinin üzerine iskeleti çizilir.
2B ve 3B Poz Tahmini#
2B tahminciler piksel koordinatlarını döndürür. 3B insan pozu tahmini, VideoPose3D örneğinde olduğu gibi 2B anahtar noktaları dizisini ikinci bir ağla 3B'ye yükselterek, birkaç kalibre edilmiş kameradan görülen anahtar noktaları üçgenleyerek veya SMPL gibi parametrik bir beden ağını görüntüye oturtarak eklem konumlarını uzayda elde eder. Nesne pozu tahmini ayrı bir görevdir: Robotların nesneleri kavraması ve artırılmış gerçeklik için, genellikle nesnenin yüzeyindeki anahtar noktalardan yararlanarak katı bir nesnenin 3B dönüşünü ve ötelemesini bulur.
Poz Tahminini Değerlendirme#
Yaklaşık 250.000 kişinin 17 anahtar noktayla etiketlendiği COCO Keypoints kıyaslama veri kümesi, tahminleri birleşim üzerinde kesişim (IoU) ölçütünün anahtar nokta karşılığı olan nesne anahtar noktası benzerliği (OKS) ile puanlar. Etiketlenmiş her anahtar nokta için tahmin ile etiket arasındaki d mesafesi, exp(-d²/(2s²k²)) benzerliğine dönüştürülür; burada s² kişinin segmentlere ayrılmış alanı, k ise etiketleyicilerin o anahtar noktayı ne kadar tutarlı yerleştirdiğine göre ölçülen anahtar nokta başına bir sabittir. OKS bu terimlerin ortalamasını etiketlenmiş anahtar noktalar üzerinden alır; ortalama kesinlik (mAP) ise 0,50 ile 0,95 arasındaki OKS eşiklerinin ortalamasıdır.
import numpy as np
# COCO falloff constants: annotators place eyes far more consistently than hips
sigmas = {"eye": 0.025, "hip": 0.107}
area = 20_000 # person's segmented area in pixels (s squared)
error = 5.0 # predicted keypoint lies 5 pixels from its label
# Per-keypoint OKS term: exp(-d^2 / (2 s^2 k^2)) with k = 2 * sigma
for name, sigma in sigmas.items():
similarity = np.exp(-(error**2) / (2 * area * (2 * sigma) ** 2))
print(f"{name}: {similarity:.2f}")Aynı 5 piksellik sapma bir gözde 0,78, bir kalçada ise 0,99 puan alır. Diğer kıyaslamalar farklı ölçüler kullanır: MPII, anahtar noktaların etikete kafa boyutunun yarısı kadar yakın olan bölümünü ifade eden PCKh değerini bildirir; Human3.6M gibi 3B kıyaslamalar ise eklem başına ortalama konum hatasını milimetre cinsinden bildirir.
Gerçek Dünya Uygulamaları#
- Spor analizi: Antrenörler, laboratuvar hareket yakalama sistemlerindeki yansıtıcı işaretleyicilere gerek kalmadan sıradan videolardan eklem açılarını, adım uzunluğunu ve vuruş mekaniğini ölçer.
- Rehabilitasyon: Fizik tedavi uygulamaları evde hareket açıklığını ve egzersiz biçimini takip eder; düşme algılama sistemleri ise bedenin anahtar noktalarının zemin düzeyine inip inmediğini izler.
- Eylem tanıma: İskelet dizileri; el sallama, düşme veya kaldırma gibi eylemleri sınıflandırmak için kullanılan, giysileri ve arka planı göz ardı eden kompakt girdilerdir.
- Hayvan araştırmaları: Özel anahtar nokta kümeleri, yürüyüşü ve davranışı incelemek için Dog-Pose veri kümesindeki köpek başına 24 anahtar nokta gibi, hayvan duruşlarını takip eder.










