Salta para o conteúdo

Gestão de estacionamento utilizando Ultralytics YOLOv8 🚀

O que é um sistema de gestão de estacionamento?

Gestão de estacionamento com Ultralytics YOLOv8 assegura um estacionamento eficiente e seguro, organizando os espaços e monitorizando a disponibilidade. O YOLOv8 pode melhorar a gestão dos parques de estacionamento através da deteção de veículos em tempo real e de informações sobre a ocupação do estacionamento.

Vantagens do sistema de gestão de estacionamento?

  • Eficiência: A gestão dos parques de estacionamento optimiza a utilização dos lugares de estacionamento e reduz o congestionamento.
  • Segurança e proteção: A gestão de estacionamento com a utilização do YOLOv8 melhora a segurança de pessoas e veículos através de medidas de vigilância e segurança.
  • Reduz as emissões: A gestão do estacionamento através do site YOLOv8 gere o fluxo de tráfego para minimizar o tempo de inatividade e as emissões nos parques de estacionamento.

Aplicações no mundo real

Sistema de gestão de estacionamento Sistema de gestão de estacionamento
Parques de estacionamento Analítica Utilização Ultralytics YOLOv8 Gestão de estacionamento vista de cima utilizando Ultralytics YOLOv8
Gestão do estacionamento Aeriel View utilizando Ultralytics YOLOv8 Gestão de estacionamento Vista superior utilizando Ultralytics YOLOv8

Fluxo de trabalho do código do sistema de gestão de estacionamento

Seleção de pontos

A seleção de pontos é agora fácil

A escolha de pontos de estacionamento é uma tarefa crítica e complexa nos sistemas de gestão de estacionamento. Ultralytics simplifica este processo ao fornecer uma ferramenta que permite definir áreas de estacionamento, que podem ser utilizadas mais tarde para processamento adicional.

  • Captura um fotograma do vídeo ou do fluxo da câmara onde pretendes gerir o parque de estacionamento.
  • Utiliza o código fornecido para lançar uma interface gráfica, onde podes selecionar uma imagem e começar a delinear regiões de estacionamento com um clique do rato para criar polígonos.

Tamanho da imagem

Suporta um tamanho máximo de imagem de 1920 * 1080

from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
  • Depois de definir as áreas de estacionamento com polígonos, clica em save para armazenar um ficheiro JSON com os dados no teu diretório de trabalho.

Ultralytics YOLOv8 Demonstração da seleção de pontos

Python Código de gestão de estacionamento

Gestão de estacionamento utilizando YOLOv8 Exemplo

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()

Argumentos opcionais ParkingManagement()

Nome Tipo Predefinição Descrição
occupied_region_color RGB Color (0, 255, 0) Cor da região do espaço de estacionamento ocupado
available_region_color RGB Color (0, 0, 255) Lugar de estacionamento disponível região cor
margin int 10 Diferença entre a exibição de texto para a contagem de várias classes
txt_color RGB Color (255, 255, 255) Cor de primeiro plano para o texto de contagem de objectos
bg_color RGB Color (255, 255, 255) Retângulo por detrás da cor de fundo do texto

Argumentos model.track

Nome Tipo Predefinição Descrição
source im0 None diretório de origem para imagens ou vídeos
persist bool False persistência de faixas entre fotogramas
tracker str botsort.yaml Método de rastreio 'bytetrack' ou 'botsort'
conf float 0.3 Limiar de confiança
iou float 0.5 Limiar IOU
classes list None filtra os resultados por classe, ou seja, classes=0, ou classes=[0,2,3]
verbose bool True Apresenta os resultados do rastreio de objectos


Criado em 2024-04-29, Atualizado em 2024-05-01
Autores: RizwanMunawar (2)

Comentários