İçeriğe geç

Antrenman İzleme kullanarak Ultralytics YOLO11

ile poz tahmini yoluyla antrenmanların izlenmesi Ultralytics YOLO11 vücudun önemli noktalarını ve eklemleri gerçek zamanlı olarak doğru bir şekilde takip ederek egzersiz değerlendirmesini geliştirir. Bu teknoloji egzersiz formu hakkında anında geri bildirim sağlar, egzersiz rutinlerini izler ve performans ölçümlerini yaparak hem kullanıcılar hem de eğitmenler için egzersiz seanslarını optimize eder.



İzle: Ultralytics YOLO11 | Şınav, Barfiks, Ab Egzersizleri Kullanılarak İzlenen Egzersizler

Egzersiz Takibinin Avantajları Nelerdir?

  • Optimize Edilmiş Performans: Daha iyi sonuçlar için antrenmanları izleme verilerine göre uyarlama.
  • Hedef Başarısı: Ölçülebilir ilerleme için fitness hedeflerini takip edin ve ayarlayın.
  • Kişiselleştirme: Etkinlik için bireysel verilere dayalı özelleştirilmiş egzersiz planları.
  • Sağlık Farkındalığı: Sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
  • Bilgilendirilmiş Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar.

Gerçek Dünya Uygulamaları

Egzersiz İzleme Egzersiz İzleme
Şınav Sayma PullUps Sayma
Şınav Sayma PullUps Sayma

Antrenman İzleme Örneği

# Run a workout example
yolo solutions workout show=True

# Pass a source video
yolo solutions workout source="path/to/video/file.mp4"

# Use keypoints for pushups
yolo solutions workout kpts=[6, 8, 10]
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Video writer
video_writer = cv2.VideoWriter("workouts.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init AIGym
gym = solutions.AIGym(
    show=True,  # Display the frame
    kpts=[6, 8, 10],  # keypoints index of person for monitoring specific exercise, by default it's for pushup
    model="yolo11n-pose.pt",  # Path to the YOLO11 pose estimation model file
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = gym.monitor(im0)
    video_writer.write(im0)

cv2.destroyAllWindows()
video_writer.release()

KeyPoints Haritası

keyPoints Sıra Ultralytics YOLO11  Poz

Argümanlar AIGym

İsim Tip Varsayılan Açıklama
kpts list None Belirli bir antrenmanı saymak için üç anahtar nokta dizini listesi, ardından anahtar nokta Haritası
line_width int 2 Çizilen çizgilerin kalınlığı.
show bool False Görüntüyü görüntülemek için bayrak.
up_angle float 145.0 'Yukarı' duruşu için açı eşiği.
down_angle float 90.0 'Aşağı' pozu için açı eşiği.
model str None Ultralytics YOLO Poz Modeli Dosyasının Yolu

Argümanlar model.predict

Tartışma Tip Varsayılan Açıklama
source str 'ultralytics/assets' Çıkarım için veri kaynağını belirtir. Bir görüntü yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar.
conf float 0.25 Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle tespit edilen nesneler dikkate alınmayacaktır. Bu değerin ayarlanması yanlış pozitiflerin azaltılmasına yardımcı olabilir.
iou float 0.7 Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiği. Daha düşük değerler, üst üste binen kutuları ortadan kaldırarak daha az tespitle sonuçlanır, bu da kopyaları azaltmak için kullanışlıdır.
imgsz int or tuple 640 Çıkarım için görüntü boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya bir (yükseklik, genişlik) tuple için. Doğru boyutlandırma algılamayı iyileştirebilir doğruluk ve işlem hızı.
half bool False Desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir.
device str None Çıkarım için cihazı belirtir (örn, cpu, cuda:0 veya 0). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
batch int 1 Çıkarım için yığın boyutunu belirtir (yalnızca kaynak bir dizin, video dosyası veya .txt dosya). Daha büyük bir yığın boyutu daha yüksek verim sağlayarak çıkarım için gereken toplam süreyi kısaltabilir.
max_det int 300 Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlayarak yoğun sahnelerde aşırı çıktıları önler.
vid_stride int 1 Video girişleri için kare atlama. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına izin verir. 1 değeri her kareyi işler, daha yüksek değerler kareleri atlar.
stream_buffer bool False Video akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer Falseise, yeni kareleri yerleştirmek için eski kareler bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer `True' ise, yeni kareleri bir tamponda sıraya koyarak hiçbir karenin atlanmamasını sağlar, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur.
visualize bool False Çıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirerek modelin "ne gördüğüne" dair içgörü sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır.
augment bool False Tahminler için test zamanı artırımını (TTA) etkinleştirerek çıkarım hızı pahasına tespit sağlamlığını potansiyel olarak iyileştirir.
agnostic_nms bool False Farklı sınıfların örtüşen kutularını birleştiren, sınıftan bağımsız Maksimum Olmayan Bastırma (NMS) özelliğini etkinleştirir. Sınıf çakışmasının yaygın olduğu çok sınıflı algılama senaryolarında kullanışlıdır.
classes list[int] None Tahminleri bir dizi sınıf kimliğine göre filtreler. Yalnızca belirtilen sınıflara ait tespitler döndürülür. Çok sınıflı algılama görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır.
retina_masks bool False Yüksek çözünürlüklü segmentasyon maskeleri döndürür. Döndürülen maskeler (masks.data) etkinleştirilmişse orijinal görüntü boyutuyla eşleşecektir. Devre dışı bırakılırsa, çıkarım sırasında kullanılan görüntü boyutuna sahip olurlar.
embed list[int] None Özellik vektörlerinin veya katıştırmaların çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır.
project str None Aşağıdaki durumlarda tahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir.
name str None Tahmin çalışmasının adı. Proje klasörü içinde tahmin çıktılarının saklanacağı bir alt dizin oluşturmak için kullanılır. save etkinleştirilir.

Argümanlar model.track

Tartışma Tip Varsayılan Açıklama
source str None Resimler veya videolar için kaynak dizini belirtir. Dosya yollarını ve URL'leri destekler.
persist bool False Video dizileri boyunca kimlikleri koruyarak nesnelerin kareler arasında kalıcı olarak izlenmesini sağlar.
tracker str botsort.yaml Kullanılacak izleme algoritmasını belirtir, örn, bytetrack.yaml veya botsort.yaml.
conf float 0.3 Algılamalar için güven eşiğini ayarlar; düşük değerler daha fazla nesnenin izlenmesine izin verir ancak yanlış pozitifler içerebilir.
iou float 0.5 Çakışan algılamaları filtrelemek için Birlik üzerinde Kesişim (IoU) eşiğini ayarlar.
classes list None Sonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları izler.
verbose bool True İzleme sonuçlarının görüntülenmesini kontrol ederek izlenen nesnelerin görsel bir çıktısını sağlar.

SSS

Antrenmanlarımı Ultralytics YOLO11 adresini kullanarak nasıl izleyebilirim?

Antrenmanlarınızı Ultralytics YOLO11 adresini kullanarak izlemek için, vücudun önemli noktalarını ve eklemlerini gerçek zamanlı olarak izlemek ve analiz etmek üzere poz tahmini özelliklerinden yararlanabilirsiniz. Bu, egzersiz formunuz hakkında anında geri bildirim almanıza, tekrarları saymanıza ve performans metriklerini ölçmenize olanak tanır. Gösterildiği gibi şınav, barfiks veya ab egzersizleri için sağlanan örnek kodu kullanarak başlayabilirsiniz:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = gym.monitor(im0)

cv2.destroyAllWindows()

Daha fazla özelleştirme ve ayar için belgelerdeki AIGym bölümüne başvurabilirsiniz.

Antrenman takibi için Ultralytics YOLO11 adresini kullanmanın faydaları nelerdir?

Antrenman takibi için Ultralytics YOLO11 adresini kullanmak birkaç önemli fayda sağlar:

  • Optimize Edilmiş Performans: Antrenmanları izleme verilerine göre uyarlayarak daha iyi sonuçlar elde edebilirsiniz.
  • Hedefe Ulaşma: Ölçülebilir ilerleme için fitness hedeflerini kolayca takip edin ve ayarlayın.
  • Kişiselleştirme: Optimum etkinlik için kişisel verilerinize dayalı özelleştirilmiş egzersiz planları alın.
  • Sağlık Farkındalığı: Potansiyel sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
  • Bilgilendirilmiş Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar alın.

Bu faydaları uygulamalı olarak görmek için bir YouTube video gösterimini izleyebilirsiniz.

Ultralytics YOLO11 tatbikatları tespit etme ve izleme konusunda ne kadar doğrudur?

Ultralytics YOLO11 son teknoloji ürünü poz tahmin yetenekleri sayesinde egzersizleri tespit etme ve izleme konusunda son derece hassastır. Temel vücut işaretlerini ve eklemleri doğru bir şekilde izleyerek egzersiz formu ve performans ölçümleri hakkında gerçek zamanlı geri bildirim sağlayabilir. Modelin önceden eğitilmiş ağırlıkları ve sağlam mimarisi, yüksek hassasiyet ve güvenilirlik sağlar. Gerçek dünyadan örnekler için dokümantasyondaki şınav ve barfiks sayımını gösteren gerçek dünya uygulamaları bölümüne göz atın.

Özel egzersiz rutinleri için Ultralytics YOLO11 adresini kullanabilir miyim?

Evet, Ultralytics YOLO11 özel egzersiz rutinleri için uyarlanabilir. Bu AIGym sınıfı "pushup", "pullup" ve "abworkout" gibi farklı poz türlerini destekler. Belirli egzersizleri tespit etmek için anahtar noktaları ve açıları belirleyebilirsiniz. İşte örnek bir kurulum:

from ultralytics import solutions

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],
)

Argümanları ayarlama hakkında daha fazla bilgi için bkz. Argümanlar AIGym bölümü. Bu esneklik, çeşitli egzersizleri izlemenize ve rutinleri ihtiyaçlarınıza göre özelleştirmenize olanak tanır.

Egzersiz izleme çıktısını Ultralytics YOLO11 adresini kullanarak nasıl kaydedebilirim?

Egzersiz izleme çıktısını kaydetmek için kodu, işlenen kareleri kaydeden bir video yazıcı içerecek şekilde değiştirebilirsiniz. İşte bir örnek:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

video_writer = cv2.VideoWriter("workouts.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

gym = solutions.AIGym(
    line_width=2,
    show=True,
    kpts=[6, 8, 10],
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = gym.monitor(im0)
    video_writer.write(im0)

cv2.destroyAllWindows()
video_writer.release()

Bu kurulum, izlenen videoyu bir çıktı dosyasına yazar. Daha fazla ayrıntı için Çıktıyı Kaydet ile İzleme Egzersizleri bölümüne bakın.

📅1 yıl önce oluşturuldu ✏️ 21 gün önce güncellendi

Yorumlar