ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ultralytics YOLO11
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΠΎΠ·Ρ Ρ 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))
# 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
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ 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 ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. |
batch |
int |
1 |
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° (ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ .txt ΡΠ°ΠΉΠ»). ΠΠΎΠ»ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ, ΡΠΎΠΊΡΠ°ΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°. |
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()
ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ». ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π°.