Parkeerbeheer met Ultralytics YOLOv8 ๐
Wat is parkeerbeheersysteem?
Parkeerbeheer met Ultralytics YOLOv8 zorgt voor efficiรซnt en veilig parkeren door het organiseren van parkeerplaatsen en het bewaken van de beschikbaarheid. YOLOv8 kan het beheer van parkeerplaatsen verbeteren door real-time voertuigdetectie en inzicht in de parkeerbezetting.
Voordelen van parkeerbeheersystemen?
- Efficiรซntie: Parkeerplaatsbeheer optimaliseert het gebruik van parkeerplaatsen en vermindert opstoppingen.
- Veiligheid en beveiliging: Parkeerbeheer met YOLOv8 verbetert de veiligheid van zowel mensen als voertuigen door bewaking en beveiligingsmaatregelen.
- Minder uitstoot: Parkeerbeheer met YOLOv8 beheert de verkeersstroom om stilstand en uitstoot op parkeerplaatsen te minimaliseren.
Toepassingen in de echte wereld
Parkeerbeheersysteem | Parkeerbeheersysteem |
---|---|
Parkeerbeheer Aeriel View met behulp van Ultralytics YOLOv8 | Parkeerbeheer Bovenaanzicht met behulp van Ultralytics YOLOv8 |
Parkeerbeheersysteem Code Workflow
Selectie van punten
Puntselectie is nu eenvoudig
Het kiezen van parkeerpunten is een kritieke en complexe taak in parkeerbeheersystemen. Ultralytics stroomlijnt dit proces door een tool te bieden waarmee je parkeerterreinen kunt definiรซren, die later kunnen worden gebruikt voor aanvullende verwerking.
- Leg een frame vast van de video- of camerastream waar je de parkeerplaats wilt beheren.
- Gebruik de bijgeleverde code om een grafische interface te starten, waar je een afbeelding kunt selecteren en met een muisklik kunt beginnen met het omlijnen van parkeergebieden om polygonen te maken.
Grootte afbeelding
Max. ondersteund afbeeldingsformaat van 1920 * 1080
from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
- Nadat je de parkeergebieden hebt gedefinieerd met polygonen, klik je op
save
om een JSON-bestand met de gegevens in je werkmap op te slaan.
Python Code voor parkeerbeheer
Parkeerbeheer met YOLOv8 Voorbeeld
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()
Optionele argumenten ParkingManagement()
Naam | Type | Standaard | Beschrijving |
---|---|---|---|
occupied_region_color |
RGB Color |
(0, 255, 0) |
Kleur bezette parkeerplaats regio |
available_region_color |
RGB Color |
(0, 0, 255) |
Parkeerplaats beschikbaar regio kleur |
margin |
int |
10 |
Gat tussen tekstweergave voor meerdere klassen tellen |
txt_color |
RGB Color |
(255, 255, 255) |
Voorgrondkleur voor objectteltekst |
bg_color |
RGB Color |
(255, 255, 255) |
Rechthoek achter tekst achtergrondkleur |
Argumenten model.track
Naam | Type | Standaard | Beschrijving |
---|---|---|---|
source |
im0 |
None |
bronmap voor afbeeldingen of video's |
persist |
bool |
False |
Blijvende sporen tussen frames |
tracker |
str |
botsort.yaml |
Volgmethode 'bytetrack' of 'botsort' |
conf |
float |
0.3 |
Vertrouwensdrempel |
iou |
float |
0.5 |
Drempel IOU |
classes |
list |
None |
filter resultaten op klasse, d.w.z. classes=0, of classes=[0,2,3] |
verbose |
bool |
True |
De resultaten van het volgen van objecten weergeven |