Antrenman İzleme kullanarak Ultralytics YOLOv8
ile poz tahmini yoluyla antrenmanların izlenmesi Ultralytics YOLOv8 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 YOLOv8 | Şınav, Barfiks, Ab Egzersizleri Kullanılarak İzlenen Egzersizler
Egzersiz Takibinin Avantajları Nelerdir?
- Optimize Edilmiş Performans: Daha iyi sonuçlar için izleme verilerine dayalı olarak antrenmanları 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 |
Antrenman İzleme Örneği
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n-pose.pt")
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_object = solutions.AIGym(
line_thickness=2,
view_img=True,
pose_type="pushup",
kpts_to_check=[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
results = model.track(im0, verbose=False) # Tracking recommended
# results = model.predict(im0) # Prediction also supported
im0 = gym_object.start_counting(im0, results)
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n-pose.pt")
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_object = solutions.AIGym(
line_thickness=2,
view_img=True,
pose_type="pushup",
kpts_to_check=[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
results = model.track(im0, verbose=False) # Tracking recommended
# results = model.predict(im0) # Prediction also supported
im0 = gym_object.start_counting(im0, results)
video_writer.write(im0)
cv2.destroyAllWindows()
video_writer.release()
Destek
"pushup", "pullup" ve "abworkout" desteklenir
KeyPoints Haritası
Argümanlar AIGym
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
kpts_to_check |
list |
None |
Belirli bir antrenmanı saymak için üç anahtar nokta dizini listesi, ardından anahtar nokta Haritası |
line_thickness |
int |
2 |
Çizilen çizgilerin kalınlığı. |
view_img |
bool |
False |
Görüntüyü görüntülemek için bayrak. |
pose_up_angle |
float |
145.0 |
'Yukarı' duruşu için açı eşiği. |
pose_down_angle |
float |
90.0 |
'Aşağı' pozu için açı eşiği. |
pose_type |
str |
pullup |
Algılanacak poz türü ('pullup ', pushup , abworkout , squat ). |
Argümanlar model.predict
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
'ultralytics/assets' |
resimler veya videolar için kaynak dizin |
conf |
float |
0.25 |
algılama için nesne güven eşiği |
iou |
float |
0.7 |
NMS için birleşim üzerinde kesişim (IoU) eşiği |
imgsz |
int or tuple |
640 |
skaler veya (h, w) listesi olarak görüntü boyutu, yani (640, 480) |
half |
bool |
False |
yarım hassasiyet (FP16) kullanın |
device |
None or str |
None |
üzerinde çalışacak cihaz, yani cuda device=0/1/2/3 veya device=cpu |
max_det |
int |
300 |
görüntü başına maksimum algılama sayısı |
vid_stride |
bool |
False |
video kare hızı adımı |
stream_buffer |
bool |
False |
tüm akış karelerini arabelleğe alır (True) veya en son kareyi döndürür (False) |
visualize |
bool |
False |
model özelliklerini görselleştirin |
augment |
bool |
False |
tahmin kaynaklarına görüntü büyütme uygulayın |
agnostic_nms |
bool |
False |
sınıf-agnostik NMS |
classes |
list[int] |
None |
sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3] |
retina_masks |
bool |
False |
yüksek çözünürlüklü segmentasyon maskeleri kullanın |
embed |
list[int] |
None |
Verilen katmanlardan özellik vektörleri/gömme döndürür |
Argümanlar model.track
İsim | Tip | Varsayılan | Açıklama |
---|---|---|---|
source |
im0 |
None |
resimler veya videolar için kaynak dizin |
persist |
bool |
False |
kareler arasında kalıcı izler |
tracker |
str |
botsort.yaml |
İzleme yöntemi 'bytetrack' veya 'botsort' |
conf |
float |
0.3 |
Güven Eşiği |
iou |
float |
0.5 |
IOU Eşiği |
classes |
list |
None |
sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3] |
verbose |
bool |
True |
Nesne izleme sonuçlarını görüntüleme |
SSS
Antrenmanlarımı Ultralytics YOLOv8 adresini kullanarak nasıl izleyebilirim?
Antrenmanlarınızı Ultralytics YOLOv8 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 YOLO, solutions
model = YOLO("yolov8n-pose.pt")
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_object = solutions.AIGym(
line_thickness=2,
view_img=True,
pose_type="pushup",
kpts_to_check=[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
results = model.track(im0, verbose=False)
im0 = gym_object.start_counting(im0, results)
cv2.destroyAllWindows()
Daha fazla özelleştirme ve ayar için belgelerdeki AIGym bölümüne başvurabilirsiniz.
Antrenman takibi için Ultralytics YOLOv8 adresini kullanmanın faydaları nelerdir?
Antrenman takibi için Ultralytics YOLOv8 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 YOLOv8 tatbikatları tespit etme ve izleme konusunda ne kadar doğrudur?
Ultralytics YOLOv8 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 YOLOv8 adresini kullanabilir miyim?
Evet, Ultralytics YOLOv8 ö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_object = solutions.AIGym(
line_thickness=2,
view_img=True,
pose_type="squat",
kpts_to_check=[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 YOLOv8 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 YOLO, solutions
model = YOLO("yolov8n-pose.pt")
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_object = solutions.AIGym(
line_thickness=2,
view_img=True,
pose_type="pushup",
kpts_to_check=[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
results = model.track(im0, verbose=False)
im0 = gym_object.start_counting(im0, results)
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.
Oluşturuldu 2023-12-02, Güncellendi 2024-07-05
Yazarlar: glenn-jocher (12), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (4)