ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с использованиСм Ultralytics YOLO11

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎΠ·Ρ‹ с Ultralytics YOLO11 ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ благодаря Ρ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡŽ основных ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ² Ρ‚Π΅Π»Π° ΠΈ суставов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚Π° тСхнология обСспСчиваСт ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, отслСТиваСт Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ измСряСт ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ эффСктивности, оптимизируя Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠ°ΠΊ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ для Ρ‚Ρ€Π΅Π½Π΅Ρ€ΠΎΠ².



Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с использованиСм Ultralytics YOLO11 | ΠžΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΡ, подтягивания, Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ для ΠΌΡ‹ΡˆΡ† ΠΆΠΈΠ²ΠΎΡ‚Π°

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ?

  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠŸΠΎΠ΄Π±ΠΎΡ€ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для достиТСния Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².
  • ДостиТСниС Ρ†Π΅Π»Π΅ΠΉ: ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ фитнСс-Ρ†Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ³ΠΎ прогрСсса.
  • ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ: Π˜Π½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Π½Ρ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° основС ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅: Π Π°Π½Π½Π΅Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ², ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ.
  • ΠžΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: РСшСния, основанныС Π½Π° Π΄Π°Π½Π½Ρ‹Ρ…, для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ распорядка ΠΈ постановки рСалистичных Ρ†Π΅Π»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ
ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΠΉ ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ подтягиваний
ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΠΉ ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ подтягиваний

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ

# 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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ultralytics YOLO11  Поза

АргумСнты AIGym

Имя Π’ΠΈΠΏ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
kpts list None Бписок ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ индСкса, для подсчСта ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΊΠ°Ρ€Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ
line_width int 2 Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° нарисованных Π»ΠΈΠ½ΠΈΠΉ.
show bool False Π€Π»Π°Π³ для отобраТСния изобраТСния.
up_angle float 145.0 ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» для ΠΏΠΎΠ·Ρ‹ "Π²Π²Π΅Ρ€Ρ…".
down_angle float 90.0 ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» для ΠΏΠΎΠ·Ρ‹ "Π²Π½ΠΈΠ·".
model str None ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ultralytics YOLO Pose Model File

АргумСнты model.predict

АргумСнт Π’ΠΈΠΏ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
source str 'ultralytics/assets' Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ источник Π΄Π°Π½Π½Ρ‹Ρ… для Π²Ρ‹Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Ρƒ, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, URL-адрСс ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ устройства для прямой трансляции. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΈ источников, Ρ‡Ρ‚ΠΎ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
conf float 0.25 УстанавливаСт ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€ΠΎΠ³ увСрСнности для ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΉ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ с Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΈΠΆΠ΅ этого ΠΏΠΎΡ€ΠΎΠ³Π°, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Настройка этого значСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний.
iou float 0.7 ΠŸΠΎΡ€ΠΎΠ³ Intersection Over Union (IoU) для нСмаксимального подавлСния (NMS). Π‘ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠ΅ значСния приводят ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ количСства ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π·Π° счСт устранСния ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ячССк, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ количСства Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ².
imgsz int or tuple 640 ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния для Π²Ρ‹Π²ΠΎΠ΄Π°. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом 640 для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (высота, ΡˆΠΈΡ€ΠΈΠ½Π°). ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
half bool False Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (FP16), Ρ‡Ρ‚ΠΎ позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… графичСских процСссорах с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ влияниСм Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ.
device str None Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ устройство для Π²Ρ‹Π²ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, cpu, cuda:0 ΠΈΠ»ΠΈ 0). ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ CPU, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ GPU ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами для выполнСния ΠΌΠΎΠ΄Π΅Π»ΠΈ.
max_det int 300 МаксимальноС количСство ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, допустимоС для ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π΅ количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ модСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Π²ΠΎΠ΄, прСдотвращая Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ количСство Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² Π² ΠΏΠ»ΠΎΡ‚Π½Ρ‹Ρ… сцСнах.
vid_stride int 1 ΠŸΡ€ΠΎΠΏΡƒΡΠΊ ΠΊΠ°Π΄Ρ€ΠΎΠ² для Π²ΠΈΠ΄Π΅ΠΎΠ²Ρ…ΠΎΠ΄ΠΎΠ². ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°Π΄Ρ€Ρ‹ Π² Π²ΠΈΠ΄Π΅ΠΎ для ускорСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π° счСт сниТСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ 1 обрабатываСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€, ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… значСниях ΠΊΠ°Π΄Ρ€Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.
stream_buffer bool False ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈ входящиС ΠΊΠ°Π΄Ρ€Ρ‹ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Если FalseΡ‚ΠΎ старыС ΠΊΠ°Π΄Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ (ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). Если `True', Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Π΄Ρ€Ρ‹ ставятся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² Π±ΡƒΡ„Π΅Ρ€, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π΄Ρ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½, Π½ΠΎ это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅, Ссли FPS Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΠΈΠΆΠ΅ FPS ΠΏΠΎΡ‚ΠΎΠΊΠ°.
visualize bool False АктивируСт Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ особСнностСй ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎ врСмя Π²Ρ‹Π²ΠΎΠ΄Π°, позволяя ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ "Π²ΠΈΠ΄ΠΈΡ‚" модСль. ПолСзно для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
augment bool False ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ тСстирования (TTA) для прСдсказаний, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ обнаруТСния Π·Π° счСт сниТСния скорости Π²Ρ‹Π²ΠΎΠ΄Π°.
agnostic_nms bool False Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ‰ΡƒΡŽ ΠΎΡ‚ класса Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Non-Maximum Suppression (NMS), которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ячСйки Ρ€Π°Π·Π½Ρ‹Ρ… классов. ПолСзно Π² сцСнариях обнаруТСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов, Π³Π΄Π΅ часто происходит ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ классов.
classes list[int] None Π€ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ прСдсказания ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² классов. Π‘ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ обнаруТСния, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ классам. ПолСзно для фокусировки Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Π² многоклассовых Π·Π°Π΄Π°Ρ‡Π°Ρ… обнаруТСния.
retina_masks bool False Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ маски сСгмСнтации высокого Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ маски (masks.data) Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ исходного изобраТСния, Ссли ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Если ΠΎΠ½ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅.
embed list[int] None ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ слои, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈΠ»ΠΈ вкраплСния. ПолСзно для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ кластСризация ΠΈΠ»ΠΈ поиск сходства.
project str None Имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ прСдсказаний, Ссли save Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.
name str None Имя ΠΏΡ€ΠΎΠ³ΠΎΠ½Π° прСдсказания. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ прСдсказаний, Ссли save Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.

АргумСнты model.track

АргумСнт Π’ΠΈΠΏ По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
source str None Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ URL-адрСса.
persist bool False ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ постоянноС отслСТиваниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Π΄Ρ€Π°ΠΌΠΈ, сохраняя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π²ΠΎ всСх Π²ΠΈΠ΄Π΅ΠΎΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΡ….
tracker str botsort.yaml Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ отслСТивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, bytetrack.yaml ΠΈΠ»ΠΈ botsort.yaml.
conf float 0.3 УстанавливаСт ΠΏΠΎΡ€ΠΎΠ³ довСрия для ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΉ; Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠ΅ значСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ большС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹Π΅ срабатывания.
iou float 0.5 УстанавливаСт ΠΏΠΎΡ€ΠΎΠ³ пСрСсСчСния Π½Π°Π΄ объСдинСниСм (IoU) для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΉ.
classes list None Π€ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ индСксу класса. НапримСр, classes=[0, 2, 3] отслСТиваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ классы.
verbose bool True УправляСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² отслСТивания, обСспСчивая Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ отслСТиваСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ЧАБВО Π—ΠΠ”ΠΠ’ΠΠ•ΠœΠ«Π• Π’ΠžΠŸΠ ΠžΠ‘Π«

Как ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ultralytics YOLO11 ?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ultralytics YOLO11 , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎΠ·Ρ‹ для отслСТивания ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° основных ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ² Ρ‚Π΅Π»Π° ΠΈ суставов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ эффСктивности. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с использования прСдоставлСнного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° для ΠΎΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΠΉ, подтягиваний ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΡ‹ΡˆΡ† ΠΆΠΈΠ²ΠΎΡ‚Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС:

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()

Для дальнСйшСй настройки ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ AIGym Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’ Ρ‡Π΅ΠΌ прСимущСства использования Ultralytics YOLO11 для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ?

ИспользованиС сайта Ultralytics YOLO11 для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π΄Π°Π΅Ρ‚ нСсколько ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… прСимущСств:

  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠŸΠΎΠ΄Π±ΠΈΡ€Π°Ρ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π²Ρ‹ смоТСтС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².
  • ДостиТСниС Ρ†Π΅Π»Π΅ΠΉ: Π›Π΅Π³ΠΊΠΎ отслСТивайтС ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ фитнСс-Ρ†Π΅Π»ΠΈ для достиТСния Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ³ΠΎ прогрСсса.
  • ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ: ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Π½Ρ‹ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, основанныС Π½Π° Π²Π°ΡˆΠΈΡ… ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ эффСктивности.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅: Π Π°Π½Π½Π΅Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ закономСрностСй, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ.
  • ΠžΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, основанныС Π½Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ распорядок дня ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ рСалистичныС Ρ†Π΅Π»ΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊ Π½Π° YouTube, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти прСимущСства Π² дСйствии.

Насколько Ρ‚ΠΎΡ‡Π½ΠΎ Ultralytics YOLO11 ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ отслСТиваСт учСния?

Ultralytics YOLO11 Благодаря соврСмСнным возмоТностям ΠΎΡ†Π΅Π½ΠΊΠΈ полоТСния Ρ‚Π΅Π»Π°, ΠΎΠ½ с высокой Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ отслСТиваСт упраТнСния. Она ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ основныС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ ΠΈ суставы Ρ‚Π΅Π»Π°, обСспСчивая ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΈ показатСлях эффСктивности. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ вСса ΠΈ надСТная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ. Для получСния Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ "Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния" Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ подсчСт ΠΎΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΠΉ ΠΈ подтягиваний.

ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ultralytics YOLO11 для создания ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ?

Π”Π°, Ultralytics YOLO11 ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π‘Π°ΠΉΡ‚ AIGym Класс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ·, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ "ΠΎΡ‚ΠΆΠΈΠΌΠ°Π½ΠΈΠ΅", "подтягиваниС" ΠΈ "Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΡ‹ΡˆΡ† ΠΆΠΈΠ²ΠΎΡ‚Π°". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΡƒΠ³Π»Ρ‹ для опрСдСлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настройки:

from ultralytics import solutions

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ настройкС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ АргумСнты AIGym Ρ€Π°Π·Π΄Π΅Π». Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ позволяСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ упраТнСния ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй.

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ultralytics YOLO11 ?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ записи Π²ΠΈΠ΄Π΅ΠΎ, которая сохраняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π΄Ρ€Ρ‹. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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()

Π­Ρ‚Π° настройка записываСт наблюдаСмоС Π²ΠΈΠ΄Π΅ΠΎ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ». Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с сохранСниСм Π²Ρ‹Π²ΠΎΠ΄Π°.

πŸ“… Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 11 мСсяцСв Π½Π°Π·Π°Π΄ ✏️ ОбновлСно 10 Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ