مشروع نظام إنذار أمني باستخدام Ultralytics YOLO26#
يغطي مشروع نظام الإنذار الأمني الذي يستخدم Ultralytics YOLO26 إمكانات رؤية الحاسوب المتقدمة لتعزيز التدابير الأمنية. يوفر YOLO26، الذي ططورته Ultralytics، اكتشاف الكائنات في الوقت الفعلي، مما يتيح للنظام تحديد التهديدات الأمنية المحتملة والاستجابة لها فوراً. يقدم هذا المشروع عدة مزايا:
- الاكتشاف في الوقت الفعلي: تتيح كفاءة YOLO26 لنظام الإنذار الأمني اكتشاف الحوادث الأمنية والاستجابة لها في الوقت الفعلي، مما يقلل من وقت الاستجابة.
- الدقة: يشتهر YOLO26 بدقته في اكتشاف الكائنات، مما يقلل من الإنذارات الكاذبة ويعزز موثوقية نظام الإنذار الأمني.
- قدرات التكامل: يمكن دمج المشروع بسلاسة مع البنية التحتية الأمنية الحالية، مما يوفر طبقة مطورة من المراقبة الذكية.
إرسال تنبيهات أمنية باستخدام YOLO26#
يقوم حل SecurityAlarm بتتبع الكائنات في مقطع الفيديو الخاص بك ويرسل تنبيهًا بريديًا إلكترونيًا واحدًا مع صورة توضيحية مرفقة بمجرد أن يصل عدد الاكتشافات إلى عتبة records. قم بمصادقة حساب Gmail باستخدام كلمة مرور التطبيق، ثم قم بتشغيل الحل عبر المصدر الخاص بك.
ملاحظة
إنشاء كلمة مرور التطبيق ضروري
- انتقل إلى منشئ كلمات مرور التطبيقات، وحدد اسمًا للتطبيق مثل "security project"، واحصل على كلمة مرور مكونة من 16 رقمًا. انسخ كلمة المرور هذه والصقها في حقل
passwordالمخصص في الكود أدناه.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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 = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
from_email = "abc@gmail.com" # the sender email address
password = "---- ---- ---- ----" # 16-digits password generated via: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # the receiver email address
# Initialize security alarm object
securityalarm = solutions.SecurityAlarm(
show=True, # display the output
model="yolo26n.pt", # e.g., yolo26s.pt, yolo26m.pt
records=1, # total detections count to send an email
)
securityalarm.authenticate(from_email, password, to_email) # authenticate the email server
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = securityalarm(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsعند تشغيل الكود، ستتلقى إشعارًا واحدًا عبر البريد الإلكتروني في حال اكتشاف أي كائن. يتم إرسال الإشعار فورًا، وليس بشكل متكرر. يمكنك تخصيص الكود ليتناسب مع متطلبات مشروعك.
نموذج بريد إلكتروني مستلم#
وسائط SecurityAlarm#
إليك جدول يحتوي على وسائط SecurityAlarm:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | المسار إلى ملف نموذج Ultralytics YOLO. |
records | int | 5 | إجمالي عدد الاكتشافات لإطلاق رسالة بريد إلكتروني مع نظام الإنذار الأمني. |
line_width | int | 2 | سمك الخط للمربعات والنقاط الرئيسية والعدادات التي ترسمها الحلول. |
verbose | bool | True | يمكّن سجل الحلول لكل إطار لشكل الإدخال، وعدد الفئات، وسرعة المعالجة. استدعاء التتبع بحد ذاته صامت دائماً. |
يدعم حل SecurityAlarm مجموعة متنوعة من معاملات track:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'botsort.yaml' | يحدد خوارزمية التتبع المراد استخدامها. الخيارات المضمنة: botsort.yaml، وbytetrack.yaml، وocsort.yaml، وdeepocsort.yaml، وfasttrack.yaml، وtracktrack.yaml. |
conf | float | 0.25 | يضبط عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن إيجابيات كاذبة. |
iou | float | 0.7 | يحدد عتبة Intersection over Union (IoU) لتصفية عمليات الكشف المتداخلة. |
classes | list | None | يقوم بتصفية النتائج حسب الفهرس الفئة. على سبيل المثال، يقوم classes=[0, 2, 3] بتتبع الفئات المحددة فقط. |
device | str | None | يحدد الجهاز للاستدلال (مثل cpu أو cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين وحدة المعالجة المركزية (CPU)، أو وحدة معالجة رسومية (GPU) محددة، أو أجهزة الحوسبة الأخرى لتنفيذ النموذج. |
علاوة على ذلك، تتوفر إعدادات التصور التالية:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو الفيديوهات المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف. |
show_labels | bool | True | يعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
كيف يعمل#
يستخدم نظام الإنذار الأمني تتبع الكائنات لمراقبة تدفقات الفيديو واكتشاف التهديدات الأمنية المحتملة. عندما يكتشف النظام كائنات تتجاوز العتبة المحددة (المحددة بواسطة معامل records)، فانه يرسل تلقائيًا إشعارًا بالبريد الإلكتروني مع مرفق صوري يوضح الكائنات المكتشفة.
يستفيد النظام من فئة SecurityAlarm التي توفر طرقًا لـ:
- معالجة الإطارات واستخراج اكتشافات الكائنات
- تعليق الإطارات بصناديق إحاطة (BBox) حول الكائنات المكتشفة
- إرسال إشعارات عبر البريد الإلكتروني عند تجاوز عتبات الاكتشاف
هذا التنفيذ مثالي للأمن المنزلي، ومراقبة التجزئة، وتطبيقات المراقبة الأخرى حيث يكون الإشعار الفوري بالكائنات المكتشفة أمرًا بالغ الأهمية.
الأسئلة الشائعة#
يعزز Ultralytics YOLO26 أنظمة الإنذار الأمني من خلال تقديم اكتشاف كائنات عالي الدقة في الوقت الفعلي. تقلل خوارزمياته المتقدمة بشكل كبير من الإنذارات الكاذبة، مما يضمن أن النظام يستجيب فقط للتهديدات الحقيقية. يمكن دمج هذه الموثوقية المتزايدة بسلاسة مع البنية التحتية الأمنية الحالية، مما يرتقي بجودة المراقبة الشاملة.
نعم، يمكن دمج Ultralytics YOLO26 بسلاسة مع البنية التحتية الأمنية الحالية لديك. يدعم النظام أوضاعًا مختلفة ويوفر مرونة للتخصيص، مما يتيح لك تحسين إعداداتك الحالية بإمكانات متقدمة لاكتشاف الكائنات. للحصول على إرشادات تفصيلية حول دمج YOLO26 في مشاريعك، تفضل بزيارة قسم التكامل.
يتطلب تشغيل Ultralytics YOLO26 على إعداد قياسي عادةً حوالي 5 جيجابايت من مساحة القرص الخالية. يتضمن ذلك مساحة لتخزين نموذج YOLO26 وأي تبعيات إضافية. بالنسبة للحلول السحابية، توفر منصة Ultralytics إدارة فعالة للمشاريع والتعامل مع مجموعات البيانات، مما يمكن أن يحسن احتياجات التخزين. تعرف على المزيد حول البطة الاحترافية (Pro Plan) للحصول على ميزات محسنة بما في ذلك التخزين الموسع.
يوفر Ultralytics YOLO26 ميزة تنافسية على نماذج مثل Faster R-CNN أو SSD بفضل إمكانات الاكتشاف في الوقت الفعلي والدقة الأعلى. تسمح بنيته الفريدة بمعالجة الصور بشكل أسرع بكثير دون المساس بـ الدقة (precision)، مما يجعله مثاليًا للتطبيقات الحساسة للوقت مثل أنظمة الإنذار الأمني. للحصول على مقارنة شاملة لنماذج اكتشاف الكائنات، يمكنك استكشاف دليلنا.
لتقليل الإنذارات الكاذبة، تأكد من تدريب نموذج Ultralytics YOLO26 بشكل كافٍ باستخدام مجموعة بيانات متنوعة وموسومة جيدًا. يمكن أن يؤدي ضبط المعلمات الفائقة (hyperparameters) وتحديث النموذج بانتظام ببيانات جديدة إلى تحسين دقة الاكتشاف بشكل كبير. يمكن العثور على تقنيات ضبط المعلمات الفائقة المفصلة في دليل ضبط المعلمات الفائقة الخاص بنا.