рдСрдмреНрдЬреЗрдХреНрдЯ рдзреБрдВрдзрд▓рд╛ рдХрд░рдирд╛ Ultralytics YOLOv8 ЁЯЪА
рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд▓рд░рд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ?
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдзреБрдВрдзрд▓рд╛ рд╣реЛрдирд╛ Ultralytics YOLOv8 рдПрдХ рдЫрд╡рд┐ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддрд╛ рд▓рдЧрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдзреБрдВрдзрд▓рд╛ рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ YOLOv8 рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рджреГрд╢реНрдп рдХреЗ рднреАрддрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдореЙрдбрд▓ рдХреНрд╖рдорддрд╛рдПрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд▓рд░рд┐рдВрдЧ рдХреЗ рдлрд╛рдпрджреЗ?
- рдЧреЛрдкрдиреАрдпрддрд╛ рд╕реБрд░рдХреНрд╖рд╛: рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд▓рд░рд┐рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рди рдпреЛрдЧреНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЫреБрдкрд╛рдХрд░ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдХрд░рдг рд╣реИред
- рдЪрдпрдирд╛рддреНрдордХ рдлреЛрдХрд╕: YOLOv8 рдЪрдпрдирд╛рддреНрдордХ рдзреБрдВрдзрд▓рд╛рдкрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджреГрд╢реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг: YOLOv8рдХреА рджрдХреНрд╖рддрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╡рд╕реНрддреБ рдХреЛ рдзреБрдВрдзрд▓рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдСрди-рдж-рдлреНрд▓рд╛рдИ рдЧреЛрдкрдиреАрдпрддрд╛ рд╕рдВрд╡рд░реНрджреНрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдСрдмреНрдЬреЗрдХреНрдЯ рдзреБрдВрдзрд▓рд╛ рдХрд░рдирд╛ YOLOv8 рдЙрджрд╛рд╣рд░рдг
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
import cv2
model = YOLO("yolov8n.pt")
names = 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))
# Blur ratio
blur_ratio = 50
# Video writer
video_writer = cv2.VideoWriter("object_blurring_output.avi",
cv2.VideoWriter_fourcc(*'mp4v'),
fps, (w, h))
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.predict(im0, show=False)
boxes = results[0].boxes.xyxy.cpu().tolist()
clss = results[0].boxes.cls.cpu().tolist()
annotator = Annotator(im0, line_width=2, example=names)
if boxes is not None:
for box, cls in zip(boxes, clss):
annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])
obj = im0[int(box[1]):int(box[3]), int(box[0]):int(box[2])]
blur_obj = cv2.blur(obj, (blur_ratio, blur_ratio))
im0[int(box[1]):int(box[3]), int(box[0]):int(box[2])] = blur_obj
cv2.imshow("ultralytics", im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
video_writer.release()
cv2.destroyAllWindows()
рддрд░реНрдХ model.predict
рдирд╛рдо | рдкреНрд░рдХрд╛рд░ | рдЪреВрдХ | рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо |
---|---|---|---|
source |
str |
'ultralytics/assets' |
рдЫрд╡рд┐рдпреЛрдВ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ |
conf |
float |
0.25 |
рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕ рдереНрд░реЗрд╢реЛрд▓реНрдб |
iou |
float |
0.7 |
рдПрдирдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдШ (рдЖрдИрдУрдпреВ) рд╕реАрдорд╛ рдкрд░ рдЪреМрд░рд╛рд╣рд╛ |
imgsz |
int or tuple |
640 |
рд╕реНрдХреЗрд▓рд░ рдпрд╛ (рдПрдЪ, рдбрдмреНрд▓реНрдпреВ) рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░, рдпрд╛рдиреА (640, 480) |
half |
bool |
False |
рдЖрдзреА рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ (FP16) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ |
device |
None or str |
None |
рдЪрд╛рд▓реВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕, рдпрд╛рдиреА рдХреНрдпреВрдбрд╛ рдбрд┐рд╡рд╛рдЗрд╕ = 0/1/2/3 рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ = рд╕реАрдкреАрдпреВ |
max_det |
int |
300 |
рдкреНрд░рддрд┐ рдЫрд╡рд┐ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ |
vid_stride |
bool |
False |
рд╡реАрдбрд┐рдпреЛ рдлреНрд░реЗрдо-рджрд░ рд╕реНрдЯреНрд░рд╛рдЗрдб |
stream_buffer |
bool |
False |
рд╕рднреА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдлрд╝реНрд░реЗрдо (рд╕рд╣реА) рдХреЛ рдмрдлрд╝рд░ рдХрд░реЗрдВ рдпрд╛ рдирд╡реАрдирддрдо рдлрд╝реНрд░реЗрдо (рдЧрд▓рдд) рд▓реМрдЯрд╛рдПрдВ |
visualize |
bool |
False |
рдореЙрдбрд▓ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ |
augment |
bool |
False |
рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╕реНрд░реЛрддреЛрдВ рдкрд░ рдЫрд╡рд┐ рд╡реГрджреНрдзрд┐ рд▓рд╛рдЧреВ рдХрд░реЗрдВ |
agnostic_nms |
bool |
False |
рд╡рд░реНрдЧ-рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рдПрдирдПрдордПрд╕ |
classes |
list[int] |
None |
рдХрдХреНрд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд░рд┐рдгрд╛рдо, рдпрд╛рдиреА рдХрдХреНрд╖рд╛рдПрдВ = 0, рдпрд╛ рдХрдХреНрд╖рд╛рдПрдВ = [0,2,3] |
retina_masks |
bool |
False |
рдЙрдЪреНрдЪ-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдорд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ |
embed |
list[int] |
None |
рджреА рдЧрдИ рдкрд░рддреЛрдВ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рд╡реИрдХреНрдЯрд░/рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдВ |
2024-01-09 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-01-15
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (2), рдЖрдпреБрд╖рдПрдХреНрд╕реЗрд▓ (1), рд░рд┐рдЬрд╡рд╛рдирдореБрдирд╡реНрд╡рд░ (1)