рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди Ultralytics YOLOv8 ЁЯЪА
рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреНрдпрд╛ рд╣реИ?
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди Ultralytics YOLOv8 рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдпрд╛ рд╡рд╛рд╣рдиреЛрдВ рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдЦреБрджрд░рд╛, рдмреИрдВрдХреЛрдВ, рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдЬреИрд╕реА рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рдВрддреБрд╖реНрдЯрд┐ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рд╕рддрд░реНрдХрддрд╛: рдХреЗ рд╕рд╛рде рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ Ultralytics YOLOv8 | рд╡рд┐рдорд╛рдирддрд│ рдЖрдгрд┐ рдореЗрдЯреНрд░реЛ рд╕реНрдЯреЗрд╢рди
рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд╛рдн?
- рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдореЗрдВ рдХрдореА: рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрддрд╛рд░реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреА рд╣реИ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред рдЗрд╕рд╕реЗ рд╕рдВрддреБрд╖реНрдЯрд┐ рдХреЗ рд╕реНрддрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдХрдо рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдпрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддреЗ рд╣реИрдВред
- рдмрдврд╝реА рд╣реБрдИ рджрдХреНрд╖рддрд╛: рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдХрддрд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рддреИрдирд╛рддреА рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдХреЗ, рд╡реНрдпрд╡рд╕рд╛рдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рд╛рдЧрдд рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЧреНрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХрд╕ | рдлреБрдЯрдХрд░ |
---|---|
рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдХреЗ рдЯрд┐рдХрдЯ рдХрд╛рдЙрдВрдЯрд░ рдкрд░ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Ultralytics YOLOv8 | рднреАрдбрд╝ рдореЗрдВ рдХрддрд╛рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА Ultralytics YOLOv8 |
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди YOLOv8 рдЙрджрд╛рд╣рд░рдг
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.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("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
queue = solutions.QueueManager(
names=model.names,
reg_pts=queue_region,
line_thickness=3,
fontsize=1.0,
region_color=(255, 144, 31),
)
while cap.isOpened():
success, im0 = cap.read()
if success:
tracks = model.track(im0, show=False, persist=True, verbose=False)
out = queue.process_queue(im0, tracks)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.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("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
queue = solutions.QueueManager(
names=model.names,
reg_pts=queue_region,
line_thickness=3,
fontsize=1.0,
region_color=(255, 144, 31),
)
while cap.isOpened():
success, im0 = cap.read()
if success:
tracks = model.track(im0, show=False, persist=True, verbose=False, classes=0) # Only person class
out = queue.process_queue(im0, tracks)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
рддрд░реНрдХ QueueManager
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдЪреВрдХ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|---|---|
names |
dict |
model.names |
рдХреНрд▓рд╛рд╕ рдЖрдИрдбреА рдХреЛ рдХреНрд▓рд╛рд╕ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ред |
reg_pts |
list of tuples |
[(20, 400), (1260, 400)] |
рдЧрд┐рдирддреА рдХреНрд╖реЗрддреНрд░ рдмрд╣реБрднреБрдЬ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЖрдпрдд рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯред |
line_thickness |
int |
2 |
рдПрдиреЛрдЯреЗрд╢рди рд▓рд╛рдЗрдиреЛрдВ рдХреА рдореЛрдЯрд╛рдИред |
track_thickness |
int |
2 |
рдЯреНрд░реИрдХ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдореЛрдЯрд╛рдИред |
view_img |
bool |
False |
рдЫрд╡рд┐ рдлрд╝реНрд░реЗрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред |
region_color |
tuple |
(255, 0, 255) |
рдЧрд┐рдирддреА рдХреНрд╖реЗрддреНрд░ рд▓рд╛рдЗрдиреЛрдВ (рдмреАрдЬреАрдЖрд░) рдХрд╛ рд░рдВрдЧред |
view_queue_counts |
bool |
True |
рдХрддрд╛рд░ рдХреА рдЧрдгрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреА рд╣реИ рдпрд╛ рдирд╣реАрдВ. |
draw_tracks |
bool |
False |
рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред |
count_txt_color |
tuple |
(255, 255, 255) |
рдЧрдгрдирд╛ рдкрд╛рда рдХрд╛ рд░рдВрдЧ (BGR). |
track_color |
tuple |
None |
рдкрдЯрд░рд┐рдпреЛрдВ рдХрд╛ рд░рдВрдЧред рдЕрдЧрд░ None , рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░реИрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред |
region_thickness |
int |
5 |
рдЧрд┐рдирддреА рдХреНрд╖реЗрддреНрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдореЛрдЯрд╛рдИред |
fontsize |
float |
0.7 |
рдкрд╛рда рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░. |
рддрд░реНрдХ model.track
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдЪреВрдХ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|---|---|
source |
im0 |
None |
рдЫрд╡рд┐рдпреЛрдВ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ |
persist |
bool |
False |
рдлрд╝реНрд░реЗрдо рдХреЗ рдмреАрдЪ рд▓рдЧрд╛рддрд╛рд░ рдЯреНрд░реИрдХ |
tracker |
str |
botsort.yaml |
рдЯреНрд░реИрдХрд┐рдВрдЧ рд╡рд┐рдзрд┐ 'рдмрд╛рдЗрдЯрдЯреНрд░реИрдХ' рдпрд╛ 'рдмреЙрдЯрд╕реЙрд░реНрдЯ' |
conf |
float |
0.3 |
рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕ рдереНрд░реЗрд╢реЛрд▓реНрдб |
iou |
float |
0.5 |
IOU рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб |
classes |
list |
None |
рдХрдХреНрд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░рд┐рдгрд╛рдо, рдпрд╛рдиреА рдХрдХреНрд╖рд╛рдПрдВ = 0, рдпрд╛ рдХрдХреНрд╖рд╛рдПрдВ = [0,2,3] |
verbose |
bool |
True |
рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ |
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди
рдореИрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ Ultralytics YOLOv8 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП?
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Ultralytics YOLOv8 рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рд▓реЛрдб рдХрд░реЗрдВ YOLOv8 рдХреЗ рд╕рд╛рде рдореЙрдбрд▓
YOLO("yolov8n.pt")
. - рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдбрд┐рдпреЛ рдлрд╝реАрдб рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ
cv2.VideoCapture
. - рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рдХреНрд╖реЗрддреНрд░ (рдЖрд░рдУрдЖрдИ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
- рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдХрддрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлреНрд░реЗрдоред
рдпрд╣рд╛рдБ рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рд╣реИ:
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video.mp4")
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
queue = solutions.QueueManager(
names=model.names,
reg_pts=queue_region,
line_thickness=3,
fontsize=1.0,
region_color=(255, 144, 31),
)
while cap.isOpened():
success, im0 = cap.read()
if success:
tracks = model.track(im0, show=False, persist=True, verbose=False)
out = queue.process_queue(im0, tracks)
cv2.imshow("Queue Management", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
рд▓рд╛рдн Ultralytics HUB рдЖрдкрдХреЗ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рд╕рдорд╛рдзрд╛рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдордВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдореБрдЦ рд▓рд╛рдн рдХреНрдпрд╛ рд╣реИрдВ Ultralytics YOLOv8 рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП?
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Ultralytics YOLOv8 рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдкреНрд▓рдореЗрдЯрд┐рдВрдЧ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп: рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрддрд╛рд░реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрддреБрд╖реНрдЯрд┐ рдмрдврд╝рд╛рддрд╛ рд╣реИред
- рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рдирд╛: рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рддреИрдирд╛рддреА рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд▓рд╛рдЧрдд рдХрдо рд╣реЛрддреА рд╣реИред
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдЕрд▓рд░реНрдЯ: рд▓рдВрдмреА рдХрддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддреНрд╡рд░рд┐рдд рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред
- рдЕрдиреБрдорд╛рдкрдХрддрд╛: рдЦреБрджрд░рд╛, рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реЗрд╡рд╛ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдХреНрдпреВ рдкреНрд░рдмрдВрдзрди рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░реЗрдВред
рдореБрдЭреЗ рдХреНрдпреЛрдВ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП Ultralytics YOLOv8 рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдкрд░ рдЬреИрд╕реЗ TensorFlow рдпрд╛ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Detectron2?
Ultralytics YOLOv8 рдкрд░ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ TensorFlow рдФрд░ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Detectron2:
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди: YOLOv8 рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддреЗрдЬреА рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА: Ultralytics рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗ рд▓реЗрдХрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрдХ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ Ultralytics рд╣рдмред
- рдкреВрд░реНрд╡рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓: рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рддрдХ рдкрд╣реБрдВрдЪ, рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛ред
- рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдорд░реНрдерди: рд╡реНрдпрд╛рдкрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рд╕рдХреНрд░рд┐рдп рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдорд░реНрдерди рд╕рдорд╕реНрдпрд╛-рд╕рдорд╛рдзрд╛рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдиреЗрдВ Ultralytics YOLO.
рд╕рдХрдирд╛ Ultralytics YOLOv8 рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдХрддрд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ, рдЬреИрд╕реЗ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдФрд░ рдЦреБрджрд░рд╛ рдореЗрдВ?
рд╣рд╛рдБ Ultralytics YOLOv8 рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдХрддрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЗ рдФрд░ рдЦреБрджрд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде QueueManager рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ, YOLOv8 рд╡рд┐рднрд┐рдиреНрди рдХрддрд╛рд░ рд▓реЗрдЖрдЙрдЯ рдФрд░ рдШрдирддреНрд╡ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:
queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)]
queue_airport = solutions.QueueManager(
names=model.names,
reg_pts=queue_region_airport,
line_thickness=3,
fontsize=1.0,
region_color=(0, 255, 0),
)
рд╡рд┐рд╡рд┐рдз рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред
рдХреЗ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреНрдпрд╛ рд╣реИрдВ Ultralytics YOLOv8 рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдореЗрдВ?
Ultralytics YOLOv8 рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдлреБрдЯрдХрд░: рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рдВрддреБрд╖реНрдЯрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХрдЖрдЙрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред
- рд╣рд╡рд╛рдИ рдЕрдбреНрдбреЛрдВ: рдПрдХ рдЖрд╕рд╛рди рдпрд╛рддреНрд░реА рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдЯрд┐рдХрдЯ рдХрд╛рдЙрдВрдЯрд░ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЪреМрдХрд┐рдпреЛрдВ рдкрд░ рдХрддрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред
- рд╕реНрд╡рд╛рд╕реНрдереНрдп рджреЗрдЦрднрд╛рд▓: рдХреНрд▓реАрдирд┐рдХ рдФрд░ рдЕрд╕реНрдкрддрд╛рд▓реЛрдВ рдореЗрдВ рд░реЛрдЧреА рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред
- рдмреИрдВрдХреЛрдВ: рдмреИрдВрдХреЛрдВ рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрддрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдкрд░ рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2024-04-02, рдЕрджреНрдпрддрдирд┐рдд 2024-07-14
рд▓реЗрдЦрдХ: рд░рд┐рдЬрд╡рд╛рди рдореБрдирд╡реНрд╡рд░ (1), рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (5), рдЗрд╡реЛрд░рдЭреВ331 (1), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1)