Перейти к содержимому

Управление парковкой с помощью Ultralytics YOLOv8 🚀.

Что такое система управления парковкой?

Управление парковкой с помощью Ultralytics YOLOv8 обеспечивает эффективную и безопасную парковку, организуя места и контролируя их наличие. YOLOv8 может улучшить управление парковкой благодаря обнаружению автомобилей в реальном времени и пониманию загруженности парковки.

Преимущества системы управления парковкой?

  • Эффективность: Управление парковкой оптимизирует использование парковочных мест и уменьшает заторы.
  • Безопасность и охрана: Управление парковкой с помощью YOLOv8 повышает безопасность как людей, так и транспортных средств за счет видеонаблюдения и мер безопасности.
  • Сокращение выбросов: Управление парковкой с помощью YOLOv8 управляет транспортным потоком, чтобы минимизировать время простоя и вредные выбросы на стоянках.

Применение в реальном мире

Система управления парковкой Система управления парковкой
Парковочные места Аналитика Использование Ultralytics YOLOv8 Управление парковкой вид сверху с использованием Ultralytics YOLOv8
Управление парковкой Aeriel View с использованием Ultralytics YOLOv8 Управление парковкой Вид сверху с помощью 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 import solutions

# 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 = solutions.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

Имя Тип По умолчанию Описание
model_path str None Путь к модели YOLOv8 .
txt_color tuple (0, 0, 0) Кортеж цветов RGB для текста.
bg_color tuple (255, 255, 255) Кортеж цветов RGB для фона.
occupied_region_color tuple (0, 255, 0) Кортеж цветов RGB для занятых областей.
available_region_color tuple (0, 0, 255) Кортеж цветов RGB для доступных регионов.
margin int 10 Отступ для отображения текста.

Аргументы model.track

Имя Тип По умолчанию Описание
source im0 None исходный каталог для изображений или видео
persist bool False Сохранение треков между кадрами
tracker str botsort.yaml Метод отслеживания 'bytetrack' или 'botsort'
conf float 0.3 Порог доверия
iou float 0.5 Порог IOU
classes list None Фильтруй результаты по классам, то есть classes=0, или classes=[0,2,3]
verbose bool True Отображение результатов отслеживания объектов


Создано 2024-04-29, Обновлено 2024-05-18
Авторы: glenn-jocher (2), RizwanMunawar (2)

Комментарии