Ultralytics YOLO11 Kullanarak Antrenman İzleme
Ultralytics YOLO11 ile poz tahmini yoluyla egzersizleri izlemek, temel vücut işaretlerini ve eklemleri gerçek zamanlı olarak doğru bir şekilde izleyerek egzersiz değerlendirmesini geliştirir. Bu teknoloji, egzersiz formu hakkında anında geri bildirim sağlar, egzersiz rutinlerini izler ve performans metriklerini ölçerek kullanıcılar ve eğitmenler için eğitim oturumlarını optimize eder.
İzle: Ultralytics YOLO ile Egzersizleri İzleme: Squat, Bacak Uzatma, Şınav ve Daha Fazlası
Egzersiz İzlemenin Avantajları
- Optimize Edilmiş Performans: Daha iyi sonuçlar için izleme verilerine dayalı egzersizleri uyarlama.
- Hedefe Ulaşma: Ö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 Bilinci: Sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
- Bilinçli 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 | Barfiks Sayma |
Ultralytics YOLO Kullanarak Egzersiz İ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]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init AIGym
gym = solutions.AIGym(
show=True, # display the frame
kpts=[6, 8, 10], # keypoints 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 processing is complete.")
break
results = gym(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
AnahtarNoktalar Haritası
AIGym
Argümanlar
İşte şunları içeren bir tablo: AIGym
argümanlar:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO Model Dosyasına Giden Yol. |
up_angle |
float |
145.0 |
'Yukarı' pozu için açı eşiği. |
down_angle |
float |
90.0 |
'Aşağı' pozu için açı eşiği. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Egzersizleri izlemek için kullanılan anahtar noktaların listesi. Bu anahtar noktalar, şınav, barfiks, squat, karın egzersizleri gibi egzersizler için omuzlar, dirsekler ve bilekler gibi vücut eklemlerine veya parçalarına karşılık gelir. |
AIGym
çözümü ayrıca bir dizi nesne izleme parametresini destekler:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Kullanılacak izleme algoritmasını belirtir, örneğin: bytetrack.yaml veya botsort.yaml . |
conf |
float |
0.3 |
Algılamalar için güven eşiğini ayarlar; daha düşük değerler daha fazla nesnenin izlenmesine olanak tanır ancak yanlış pozitifleri içerebilir. |
iou |
float |
0.5 |
Çakışan algılamaları filtrelemek için Intersection over Union (IoU) eşiğini ayarlar. |
classes |
list |
None |
Sonuçları sınıf indeksine 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 eder ve izlenen nesnelerin görsel bir çıktısını sağlar. |
device |
str |
None |
Çıkarım için cihazı belirtir (örn. cpu , cuda:0 veya 0 ). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer işlem cihazları arasında seçim yapmasına olanak tanır. |
Ek olarak, aşağıdaki görselleştirme ayarları uygulanabilir:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğer True , ek 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 için kullanışlıdır. |
line_width |
None or int |
None |
Sınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None , çizgi genişliği, görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar. |
show_conf |
bool |
True |
Etiketin yanında her algılama için güvenilirlik puanını görüntüler. Modelin her algılama için kesinliği hakkında fikir verir. |
show_labels |
bool |
True |
Görsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar. |
SSS
Ultralytics YOLO11 kullanarak antrenmanlarımı nasıl takip ederim?
Ultralytics YOLO11 kullanarak egzersizlerinizi izlemek için, gerçek zamanlı olarak temel vücut işaretlerini ve eklemleri takip etmek ve analiz etmek üzere poz tahmini özelliklerini kullanabilirsiniz. Bu, egzersiz formunuz hakkında anında geri bildirim almanızı, tekrarları saymanızı ve performans metriklerini ölçmenizi sağlar. Şınav, barfiks veya karın egzersizleri için sağlanan örnek kodu kullanarak başlayabilirsiniz:
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, dokümantasyondaki AIGym bölümüne başvurabilirsiniz.
Egzersiz takibi için Ultralytics YOLO11'i kullanmanın faydaları nelerdir?
Egzersiz takibi için Ultralytics YOLO11 kullanmak çeşitli önemli faydalar sağlar:
- Optimize Edilmiş Performans: İzleme verilerine dayalı egzersizleri 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 bireysel verilerinize dayalı özelleştirilmiş egzersiz planları edinin.
- Sağlık Bilinci: Potansiyel sağlık sorunlarına veya aşırı antrenmana işaret eden kalıpların erken tespiti.
- Bilinçli 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, egzersizleri tespit etme ve izlemede ne kadar doğru?
Ultralytics YOLO11, son teknoloji poz tahmini yetenekleri sayesinde egzersizleri tespit etme ve izlemede oldukça hassastır. Temel vücut işaretlerini ve eklemleri doğru bir şekilde izleyebilir, egzersiz formu ve performans metrikleri 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ünya örnekleri için, şınav ve barfiks sayımını gösteren belgelerdeki gerçek dünya uygulamaları bölümüne bakın.
Ultralytics YOLO11'i özel egzersiz rutinleri için kullanabilir miyim?
Evet, Ultralytics YOLO11 özel egzersiz rutinleri için uyarlanabilir. Şunu: AIGym
sınıfı, gibi farklı poz türlerini destekler pushup
, pullup
ve abworkout
Belirli egzersizleri tespit etmek için anahtar noktaları ve açıları belirleyebilirsiniz. İşte bir örnek kurulum:
from ultralytics import solutions
gym = solutions.AIGym(
line_width=2,
show=True,
kpts=[6, 8, 10], # For pushups - can be customized for other exercises
)
Argümanları ayarlama hakkında daha fazla bilgi için, Argümanlar AIGym
bölüm. Bu esneklik, çeşitli egzersizleri izlemenize ve rutinleri şuna göre özelleştirmenize olanak tanır: fitness hedefleri.
Ultralytics YOLO11 kullanarak egzersiz izleme çıktısını nasıl kaydedebilirim?
Egzersiz izleme çıktısını kaydetmek için, işlenmiş kareleri kaydeden bir video yazıcısı eklemek üzere kodu değiştirebilirsiniz. İşte bir örnek:
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 ve daha sonra egzersiz performansınızı gözden geçirmenize veya ek geri bildirim için eğitmenlerle paylaşmanıza olanak tanır.