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 |
---|---|
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.
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 |