إدارة مواقف السيارات باستخدام Ultralytics YOLOv8 🚀 🚀
ما هو نظام إدارة مواقف السيارات؟
إدارة مواقف السيارات باستخدام Ultralytics YOLOv8 يضمن وقوف السيارات بكفاءة وأمان من خلال تنظيم أماكن وقوف السيارات ومراقبة مدى توفرها. YOLOv8 يمكن تحسين إدارة مواقف السيارات من خلال الكشف عن المركبات في الوقت الحقيقي، وإلقاء نظرة ثاقبة على إشغال مواقف السيارات.
مزايا نظام إدارة مواقف السيارات؟
- الكفاءة: تعمل إدارة مواقف السيارات على تحسين استخدام أماكن وقوف السيارات وتقليل الازدحام.
- السلامة والأمن: تعمل إدارة مواقف السيارات باستخدام YOLOv8 على تحسين سلامة الأشخاص والمركبات على حد سواء من خلال تدابير المراقبة والأمن.
- تقليل الانبعاثات: تدير إدارة مواقف السيارات باستخدام YOLOv8 تدفق حركة المرور لتقليل وقت الخمول والانبعاثات في مواقف السيارات.
تطبيقات العالم الحقيقي
نظام إدارة مواقف السيارات | نظام إدارة مواقف السيارات |
---|---|
إدارة مواقف السيارات إيريل فيو باستخدام Ultralytics YOLOv8 | إدارة مواقف السيارات عرض علوي باستخدام Ultralytics YOLOv8 |
سير عمل رمز نظام إدارة مواقف السيارات
اختيار النقاط
اختيار النقاط أصبح الآن سهلاً
يُعدّ اختيار نقاط وقوف السيارات مهمة بالغة الأهمية والتعقيد في أنظمة إدارة مواقف السيارات. Ultralytics يبسط هذه العملية من خلال توفير أداة تتيح لك تحديد مناطق مواقف السيارات، والتي يمكن استخدامها لاحقًا لمعالجة إضافية.
- التقط إطاراً من الفيديو أو دفق الكاميرا حيث تريد إدارة موقف السيارات.
- استخدم التعليمات البرمجية المتوفرة لتشغيل واجهة رسومية، حيث يمكنك تحديد صورة والبدء في تحديد مناطق وقوف السيارات بالنقر بالماوس لإنشاء مضلعات.
حجم الصورة
يدعم أقصى حجم للصورة 1920 * 1080 كحد أقصى
from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
- بعد تحديد مناطق وقوف السيارات بالمضلعات، انقر فوق
save
لتخزين ملف JSON مع البيانات في دليل العمل الخاص بك.
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 |
طريقة التتبع "bytetrack" أو "botsort" |
conf |
float |
0.3 |
عتبة الثقة |
iou |
float |
0.5 |
عتبة IOU |
classes |
list |
None |
تصفية النتائج حسب الفئة ، أي الفئات = 0 ، أو الفئات = [0،2،3] |
verbose |
bool |
True |
عرض نتائج تعقب الكائن |