рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8 ЁЯЪА

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреНрдпрд╛ рд╣реИ?

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде Ultralytics YOLOv8 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ рдФрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдХреЗ рдХреБрд╢рд▓ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред YOLOv8 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡рд╛рд╣рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╛рд░реНрдХрд┐рдВрдЧ рдЕрдзрд┐рднреЛрдЧ рдореЗрдВ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ред

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд╛рдн?

  • рджрдХреНрд╖рддрд╛: рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рдкреНрд░рдмрдВрдзрди рдкрд╛рд░реНрдХрд┐рдВрдЧ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рднреАрдбрд╝ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
  • рдмрдЪрд╛рд╡ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛: рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ YOLOv8 рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдЧреЛрдВ рдФрд░ рд╡рд╛рд╣рдиреЛрдВ рджреЛрдиреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  • рдХрдо рдЙрддреНрд╕рд░реНрдЬрди: рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ YOLOv8 рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕рдордп рдФрд░ рдЙрддреНрд╕рд░реНрдЬрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА
рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Ultralytics YOLOv8 рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рд╢реАрд░реНрд╖ view рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8
рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдПрд░рд┐рдпрд▓ рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8 рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рд╢реАрд░реНрд╖ View рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Ultralytics YOLOv8

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЛрдб рд╡рд░реНрдХрдлрд╝реНрд▓реЛ

рдЕрдВрдХреЛрдВ рдХрд╛ рдЪрдпрди

рдмрд┐рдВрджреБ рдЪрдпрди рдЕрдм рдЖрд╕рд╛рди рд╣реИ

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдкрд╛рд░реНрдХрд┐рдВрдЧ рдмрд┐рдВрджреБ рдЪреБрдирдирд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд╣реИред Ultralytics рдПрдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдХреИрдорд░рд╛ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдПрдХ рдлреНрд░реЗрдо рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд▓ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрднреБрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрдХрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░

1920 * 1080 рд╕рдорд░реНрдерд┐рдд рдХреА рдЕрдзрд┐рдХрддрдо рдЫрд╡рд┐ рдЖрдХрд╛рд░

from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
  • рдкрд╛рд░реНрдХрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдмрд╣реБрднреБрдЬреЛрдВ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ save JSON рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдкрдХреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

Ultralytics YOLOv8 рдЕрдВрдХ рдЪрдпрди рдбреЗрдореЛ

Python рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдХреЛрдб

рдкрд╛рд░реНрдХрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ YOLOv8 рдЙрджрд╛рд╣рд░рдг

import cv2
from ultralytics.solutions.parking_management import ParkingManagement

# Path to json file, that created with above point selection app
polygon_json_path = "bounding_boxes.json"

# Video capture
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("parking management.avi", 
                                cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))

# Initialize parking management object
management = ParkingManagement(model_path="yolov8n.pt")

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    json_data = management.parking_regions_extraction(polygon_json_path)
    results = management.model.track(im0, persist=True, show=False)

    if results[0].boxes.id is not None:
        boxes = results[0].boxes.xyxy.cpu().tolist()
        clss = results[0].boxes.cls.cpu().tolist()
        management.process_data(json_data, im0, boxes, clss)

    management.display_frames(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ ParkingManagement()

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдЪреВрдХ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
occupied_region_color RGB Color (0, 255, 0) рдкрд╛рд░реНрдХрд┐рдВрдЧ рд╕реНрдерд╛рди рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд░рдВрдЧ
available_region_color RGB Color (0, 0, 255) рдкрд╛рд░реНрдХрд┐рдВрдЧ рдХреА рдЬрдЧрд╣ рдЙрдкрд▓рдмреНрдз рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд░рдВрдЧ
margin int 10 рдПрдХрд╛рдзрд┐рдХ рд╡рд░реНрдЧреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмреАрдЪ рдЕрдВрддрд░
txt_color RGB Color (255, 255, 255) рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рдЙрдВрдЯреНрд╕ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ рд░рдВрдЧ
bg_color RGB Color (255, 255, 255) рдкрд╛рда рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдХреЗ рдкреАрдЫреЗ рдЖрдпрдд

рддрд░реНрдХ 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 рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ


2024-04-29 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-01
рд▓реЗрдЦрдХ: рд░рд┐рдЬрд╝рд╡рд╛рдирдореБрдирд╡реНрд╡рд░ (2)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ