рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8 ЁЯЪА
рд╕реНрдкреАрдб рдЕрдиреБрдорд╛рди рдХреНрдпрд╛ рд╣реИ?
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдЧрддрд┐ рдХреА рджрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Ultralytics YOLOv8 рдЕрдм рдЖрдк рджреВрд░реА рдФрд░ рд╕рдордп рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреА рд╕рдЯреАрдХрддрд╛ рд╕реАрдзреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рджрдХреНрд╖рддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдмреБрджреНрдзрд┐рдорд╛рди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЙрдиреНрдирддрд┐ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рд╕рддрд░реНрдХрддрд╛: рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдореЗрдВ рдЧрд╣рд░реА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ: Ultralytics YOLOv8 рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд╛рдн?
- рдХреБрд╢рд▓ рдпрд╛рддрд╛рдпрд╛рдд рдирд┐рдпрдВрддреНрд░рдг: рд╕рдЯреАрдХ рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдкреНрд░рдмрдВрдзрди, рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдФрд░ рд░реЛрдбрд╡реЗрдЬ рдкрд░ рднреАрдбрд╝ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддрд╛ рд╣реИред
- рд╕рдЯреАрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдиреЗрд╡рд┐рдЧреЗрд╢рди: рд╕реНрд╡-рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХрд╛рд░реЛрдВ рдЬреИрд╕реА рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЧрддрд┐ рдЕрдиреБрдорд╛рди рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕рдЯреАрдХ рд╡рд╛рд╣рди рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдмрдврд╝реА рд╣реБрдИ рдирд┐рдЧрд░рд╛рдиреА рд╕реБрд░рдХреНрд╖рд╛: рдирд┐рдЧрд░рд╛рдиреА рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдореЗрдВ рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЦрддрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рдкрд░рд┐рд╡рд╣рди | рдкрд░рд┐рд╡рд╣рди |
---|---|
рд╕рдбрд╝рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐ рдЕрдиреБрдорд╛рди Ultralytics YOLOv8 | рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкреБрд▓ рдкрд░ рдЧрддрд┐ рдЕрдиреБрдорд╛рди Ultralytics YOLOv8 |
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ YOLOv8 рдЙрджрд╛рд╣рд░рдг
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_pts = [(0, 360), (1280, 360)]
# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рд╣реИ
рдЧрддрд┐ рдПрдХ рдЕрдиреБрдорд╛рди рд╣реЛрдЧрд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЕрдиреБрдорд╛рди рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ GPU рдЧрддрд┐ред
рддрд░реНрдХ SpeedEstimator
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдЪреВрдХ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|---|---|
names |
dict |
None |
рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рд╢рдмреНрджрдХреЛрд╢ред |
reg_pts |
list |
[(20, 400), (1260, 400)] |
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕реВрдЪреАред |
view_img |
bool |
False |
рдЫрд╡рд┐ рдХреЛ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ. |
line_thickness |
int |
2 |
рдбреНрд░рд╛рдЗрдВрдЧ рдмреЙрдХреНрд╕ рдФрд░ рдЯреНрд░реИрдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЛрдВ рдХреА рдореЛрдЯрд╛рдИред |
region_thickness |
int |
5 |
рдХреНрд╖реЗрддреНрд░ рд░реЗрдЦрд╛рдУрдВ рдХреА рдореЛрдЯрд╛рдИред |
spdl_dist_thresh |
int |
10 |
рдЧрддрд┐ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рджреВрд░реА рджрд╣рд▓реАрдЬред |
рддрд░реНрдХ 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 рдХреЛ рдЧрдврд╝рдирд╛ред рдлрд┐рд░, рд╕рдордп рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдЖрдВрджреЛрд▓рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлреНрд░реЗрдо рдореЗрдВ рдЯреНрд░реИрдХ рдХрд░реЗрдВред рдЕрдВрдд рдореЗрдВ, рдЗрд╕рдХреА рдЧрддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдо рдФрд░ рдлреНрд░реЗрдо рджрд░ рдХреЗ рдмреАрдЪ рд╡рд╕реНрддреБ рджреНрд╡рд╛рд░рд╛ рддрдп рдХреА рдЧрдИ рджреВрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг:
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
reg_pts=[(0, 360), (1280, 360)],
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рджреЗрдЦреЗрдВред
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ Ultralytics YOLOv8 (рдЧ) рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рд╕рд░рдХрд╛рд░ рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдЧрддрд┐ рдХреЗ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП 1000 рдХрд░реЛрдбрд╝ рд░реБрдкрдП рдХреА рдорд╛рдВрдЧ рдХрд░рддреА рд╣реИ?
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Ultralytics YOLOv8 рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдмрдврд╝реА рд╣реБрдИ рд╕реБрд░рдХреНрд╖рд╛: рдУрд╡рд░-рд╕реНрдкреАрдбрд┐рдВрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд╕рдбрд╝рдХ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╣рди рдХреА рдЧрддрд┐ рдХрд╛ рд╕рдЯреАрдХ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВред
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдирд┐рдЧрд░рд╛рдиреА: рд╕реЗ рд▓рд╛рдн YOLOv8рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╡рд╛рд╣ рдФрд░ рднреАрдбрд╝ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд╖рдорддрд╛ред
- рдЕрдиреБрдорд╛рдкрдХрддрд╛: рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓реЗ рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рдорд╛рдзрд╛рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдХрд┐рдирд╛рд░реЗ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рд╕рд░реНрд╡рд░ рддрдХ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗрдЯрдЕрдк рдкрд░ рдореЙрдбрд▓ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВред
рдЕрдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд╛рдн рджреЗрдЦреЗрдВред
рд╕рдХрдирд╛ YOLOv8 рдЬреИрд╕реЗ рдЕрдиреНрдп AI рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдП TensorFlow рдирд╣реАрдВ рддреЛ PyTorch?
рд╣рд╛рдБ YOLOv8 рдЬреИрд╕реЗ рдЕрдиреНрдп рдПрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ TensorFlow рдФрд░ PyTorch. Ultralytics рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ YOLOv8 рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ ONNX, TensorRTрдФрд░ CoreML, рдЕрдиреНрдп рдПрдордПрд▓ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдЪрд┐рдХрдиреА рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ред
рдПрдХ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП YOLOv8 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ ONNX рдкреНрд░рд╛рд░реВрдк:
рдирд┐рд░реНрдпрд╛рдд рдкрд░ рд╣рдорд╛рд░реЗ рдЧрд╛рдЗрдб рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред
рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рддрдирд╛ рд╕рдЯреАрдХ рд╣реИ Ultralytics YOLOv8?
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЧрддрд┐ рдЕрдиреБрдорд╛рди рдХреА рд╕рдЯреАрдХрддрд╛ Ultralytics YOLOv8 рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреА рдЧреБрдгрд╡рддреНрддрд╛, рд╡реАрдбрд┐рдпреЛ рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдлреНрд░реЗрдо рджрд░ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕рд╣рд┐рдд рдХрдИ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдЧрддрд┐ рдЕрдиреБрдорд╛рдирдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрдиреБрдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдлреНрд░реЗрдо рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЧрддрд┐ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд░реЛрдбрд╝рд╛ рдореЗрдВ рднрд┐рдиреНрдирддрд╛ рдХреЗ рдХрд╛рд░рдг 100% рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдиреЛрдЯ: рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рд░реНрдЬрд┐рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдЬрдм рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЬрдореАрдиреА рд╕рдЪреНрдЪрд╛рдИ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░реЗрдВред
рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рд╕реБрдзрд╛рд░ рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрд╛рдВрдЪреЗрдВ рддрд░реНрдХ SpeedEstimator
рдХрд░реНрддрди.
рдХреНрдпреЛрдВ рдЪреБрдиреЗрдВ Ultralytics YOLOv8 рдЬреИрд╕реЗ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдореЙрдбрд▓ рдкрд░ TensorFlow рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдПрдкреАрдЖрдИ?
Ultralytics YOLOv8 рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдореЙрдбрд▓ рдкрд░ рдХрдИ рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ TensorFlow рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдПрдкреАрдЖрдИ:
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди: YOLOv8 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЙрдЪреНрдЪ рдЧрддрд┐ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛, YOLOv8 рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рддреИрдирд╛рддреА рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
- рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛: рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди, рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдФрд░ рдкреЛрдЬ рдЕрдиреБрдорд╛рди рд╕рд╣рд┐рдд рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
- рд╕рдореБрджрд╛рдп рдФрд░ рд╕рдорд░реНрдерди: YOLOv8 рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕рдореБрджрд╛рдп рдФрд░ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд▓реЗрдЦрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╡реЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП YOLOv8, рд╣рдорд╛рд░реЗ рд╡рд┐рд╕реНрддреГрдд рдореЙрдбрд▓ рдкреГрд╖реНрда рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВред
рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2024-01-05, рдЕрджреНрдпрддрдирд┐рдд 2024-07-05
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (7), рдЗрд╡реЛрд░рдЭреВ331 (1), рд░рд┐рдЬрд╡рд╛рди рдореБрдирд╡реНрд╡рд░ (2), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1), рдЖрдпреБрд╖рдПрдХреНрд╕рд▓ (1)