Ultralytics YOLO27:

Ultralytics YOLO26 ile Antrenman İzleme#

Open Workouts Monitoring In Colab

Ultralytics YOLO26 ile poz tahmini kullanarak antrenmanları izlemek, temel vücut işaret noktalarını ve eklemleri gerçek zamanlı olarak doğru şekilde takip ederek egzersiz değerlendirmesini geliştirir. Bu teknoloji, egzersiz formu hakkında anında geri bildirim sağlar, antrenman rutinlerini takip eder ve performans ölçümlerini değerlendirerek hem kullanıcılar hem de eğitmenler için antrenman seanslarını optimize eder.



Watch: How to Monitor Workout Exercises with Ultralytics YOLO | Squats, Leg Extension, Pushups and More

Antrenman İzlemenin Avantajları#

  • Optimize Edilmiş Performans: Daha iyi sonuçlar için antrenmanları izleme verilerine göre uyarlama.
  • Hedeflere Ulaşma: Ölçülebilir ilerleme için fitness hedeflerini takip etme ve ayarlama.
  • Kişiselleştirme: Etkililiği artırmak için bireysel verilere dayalı özelleştirilmiş antrenman planları.
  • Sağlık Farkındalığı: Sağlık sorunlarına veya aşırı antrenmana işaret eden örüntülerin erken tespiti.
  • Bilinçli Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar.

Gerçek Dünya Uygulamaları#

Antrenman İzlemeAntrenman İzleme
Poz tahminiyle YOLO şınav sayımıPoz tahminiyle YOLO barfiks sayımı
Şınav SayımıBarfiks Sayımı

YOLO26 ile Antrenmanları İzleme#

AIGym çözümü poz tahmini gerçekleştirir ve bir uzuv up_angle ile down_angle eşikleri arasında hareket ederken üç temel noktanın oluşturduğu açıyı ölçerek tekrarları sayar. İzlemek istediğin egzersiz için temel noktaları kpts ile seç, ardından Python API veya CLI ile çözümü videon üzerinde çalıştır.

Ultralytics YOLO ile Antrenman İzleme
# Run a workout example
yolo solutions workout show=True

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

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

Temel Noktalar Haritası#

YOLO poz tahmini temel noktaları sıralama şeması

AIGym Bağımsız Değişkenleri#

AIGym bağımsız değişkenlerini içeren tablo aşağıda verilmiştir:

Bağımsız değişkenTürVarsayılanAçıklama
modelstrNoneBir Ultralytics YOLO model dosyasının yolu.
up_anglefloat145.0'Yukarı' pozu için açı eşiği.
down_angleint90'Aşağı' pozu için açı eşiği.
kptslist[int]'[6, 8, 10]'Antrenmanları izlemek için kullanılan üç kilit nokta dizini listesi. Bu kilit noktalar; şınav, barfiks, squat ve karın egzersizleri gibi hareketlerde omuz, dirsek ve bilek gibi vücut eklemlerine veya bölümlerine karşılık gelir.
line_widthint2Çözümün çizdiği kutular, kilit noktaları ve sayılar için çizgi kalınlığı.
verboseboolTrueÇözümün kare başına giriş şeklini, sınıf sayılarını ve işlem hızını kaydetmesini etkinleştirir. Takip çağrısı her zaman sessizdir.

AIGym çözümü ayrıca çeşitli nesne izleme parametrelerini destekler:

Bağımsız değişkenTürVarsayılanAçıklama
trackerstr'botsort.yaml'Kullanılacak takip algoritmasını belirtir. Yerleşik seçenekler: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Algılamalar için güven eşiğini belirler; daha düşük değerler daha fazla nesnenin takip edilmesine olanak tanır ancak yanlış pozitifler içerebilir.
ioufloat0.7Örtüşen algılamaları filtrelemek için Birleşim Üzerindeki Kesişim (IoU) eşiğini belirler.
classeslistNoneSonuçları sınıf dizinine göre filtreler. Örneğin, classes=[0, 2, 3] yalnızca belirtilen sınıfları takip eder.
devicestrNoneÇıkarım için cihazı belirtir (ör. cpu, cuda:0 veya 0). Kullanıcıların model çalıştırma işlemi için CPU, belirli bir GPU veya diğer hesaplama cihazları arasında seçim yapmasına olanak tanır.
imgszint or tuple640Hedef çıkarım görüntü boyutu: kare için bir tamsayı veya bir (height, width) çifti. Şekiller model adımına göre ayarlanır.
max_detint300İzlemeden önce kare başına tutulan maksimum algılama sayısı; yoğun sahnelerde bir çözümün işlediği nesneleri sınırlar.
quantizeint or strNoneÇıkarım hassasiyeti: PyTorch ve TorchScript modelleri için 16 (FP16) veya 32/ayarlanmamış (FP32); diğer formatlar, yapılarının ve çalışma zamanının seçtiği hassasiyette hesaplama yapar. Kullanımdan kaldırılan half bayrağının yerini alır.

Ayrıca aşağıdaki görselleştirme ayarları uygulanabilir:

Bağımsız değişkenTürVarsayılanAçıklama
showboolFalseTrue olduğunda açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim almak için kullanışlıdır.
show_confboolTrueHer algılamanın güven skorunu etiketin yanında görüntüler. Modelin her algılamaya ilişkin kesinliği hakkında fikir verir.
show_labelsboolTrueGörsel çıktıda her algılama için etiketleri görüntüler. Algılanan nesnelerin hemen anlaşılmasını sağlar.

SSS#

  • Ultralytics YOLO26 ile antrenmanlarını izlemek için poz tahmini yeteneklerinden yararlanarak temel vücut işaret noktalarını ve eklemleri gerçek zamanlı olarak takip edip analiz edebilirsin. Bu sayede egzersiz formun hakkında anında geri bildirim alabilir, tekrarları sayabilir ve performans ölçümlerini değerlendirebilirsin. Başlangıç olarak aşağıda gösterildiği gibi şınav, barfiks veya karın egzersizleri için sağlanan örnek kodu kullanabilirsin:

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.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 processing is complete.")
            break
        results = gym(im0)
    
    cv2.destroyAllWindows()

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

  • Antrenman izleme için Ultralytics YOLO26 kullanmak çeşitli önemli faydalar sağlar:

    • Optimize Edilmiş Performans: Antrenmanları izleme verilerine göre uyarlayarak daha iyi sonuçlar elde edebilirsin.
    • Hedeflere Ulaşma: Ölçülebilir ilerleme için fitness hedeflerini kolayca takip edip ayarlayabilirsin.
    • Kişiselleştirme: En iyi etkililik için kendi bireysel verilerine dayalı özelleştirilmiş antrenman planları edinebilirsin.
    • Sağlık Farkındalığı: Olası sağlık sorunlarına veya aşırı antrenmana işaret eden örüntüleri erken tespit edebilirsin.
    • Bilinçli Kararlar: Rutinleri ayarlamak ve gerçekçi hedefler belirlemek için veriye dayalı kararlar alabilirsin.

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

  • Ultralytics YOLO26, gelişmiş poz tahmini yetenekleri sayesinde egzersizleri tespit etme ve takip etme konusunda son derece doğrudur. Temel vücut işaret noktalarını ve eklemleri doğru şekilde takip ederek egzersiz formu ve performans ölçümleri hakkında gerçek zamanlı geri bildirim sağlayabilir. Modelin önceden eğitilmiş ağırlıkları ve güçlü mimarisi yüksek kesinlik ve güvenilirlik sağlar. Gerçek dünyadan örnekler için belgelerde şınav ve barfiks sayımını gösteren gerçek dünya uygulamaları bölümüne göz atabilirsin.

  • Evet, Ultralytics YOLO26 özel antrenman rutinlerine uyarlanabilir. AIGym sınıfı, up_angle, down_angle ve kpts bağımsız değişkenlerini kullanarak egzersiz tekrarlarını tespit eder. Belirli egzersizleri tespit etmek için temel noktaları ve açıları belirtebilirsin. Örnek bir kurulum aşağıda verilmiştir:

    from ultralytics import solutions
    
    gym = solutions.AIGym(
        line_width=2,
        show=True,
        kpts=[6, 8, 10],  # For pushups - can be customized for other exercises
    )

    Bağımsız değişkenleri ayarlama hakkında daha fazla bilgi için Arguments AIGym bölümüne başvurabilirsin. Bu esneklik, çeşitli egzersizleri izlemeni ve rutinleri fitness hedeflerine göre özelleştirmeni sağlar.

  • Antrenman izleme çıktısını kaydetmek için işlenmiş kareleri kaydeden bir video yazıcı ekleyerek kodu değiştirebilirsin. Bir örnek aşağıda verilmiştir:

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.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 processing is complete.")
            break
        results = gym(im0)
        video_writer.write(results.plot_im)
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

    Bu kurulum, izlenen videoyu bir çıktı dosyasına yazar; böylece antrenman performansını daha sonra inceleyebilir veya ek geri bildirim almaları için eğitmenlerle paylaşabilirsin.

Yorumlar