Ultralytics YOLO27:
Get Started

مشروع نظام إنذار أمني باستخدام Ultralytics YOLO26#

AI-powered security alarm system with object detection

يدمج مشروع نظام الإنذار الأمني الذي يستخدم Ultralytics YOLO26 إمكانات متقدمة في الرؤية الحاسوبية لتعزيز التدابير الأمنية. يوفر YOLO26، الذي طورته Ultralytics، اكتشاف الكائنات في الوقت الفعلي، مما يتيح للنظام تحديد التهديدات الأمنية المحتملة والاستجابة لها بسرعة. يقدم هذا المشروع عدة مزايا:

  • الاكتشاف في الوقت الفعلي: تتيح كفاءة YOLO26 لنظام الإنذار الأمني اكتشاف الحوادث الأمنية والاستجابة لها في الوقت الفعلي، مما يقلل زمن الاستجابة.
  • الدقة: يشتهر YOLO26 بدقته في اكتشاف الكائنات، مما يقلل الإنذارات الإيجابية الكاذبة ويعزز موثوقية نظام الإنذار الأمني.
  • إمكانات التكامل: يمكن دمج المشروع بسلاسة مع البنية التحتية الأمنية الحالية، لتوفير طبقة مطورة من المراقبة الذكية.


شاهد: نظام إنذار أمني باستخدام Ultralytics YOLO26 + حلول اكتشاف الكائنات

إرسال التنبيهات الأمنية باستخدام YOLO26#

يتتبع الحل SecurityAlarm الكائنات في بث الفيديو ويرسل تنبيهًا واحدًا عبر البريد الإلكتروني مرفقًا بصورة مشروحة، فور بلوغ عدد الاكتشافات عتبة records. صادق على حساب Gmail باستخدام كلمة مرور تطبيق، ثم شغّل الحل على المصدر لديك.

مطلوبة كلمة مرور تطبيق

انتقل إلى مولّد كلمات مرور التطبيقات، وحدد اسمًا للتطبيق مثل "مشروع أمني"، واحصل على كلمة مرور مكوّنة من 16 حرفًا. انسخ كلمة المرور والصقها في الحقل password في الكود أدناه.

نظام الإنذار الأمني باستخدام Ultralytics YOLO
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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 = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

from_email = "abc@gmail.com"  # ⁨عنوان البريد الإلكتروني للمرسل⁩
password = "---- ---- ---- ----"  # ⁨كلمة مرور تطبيق مكوّنة من 16 حرفًا، تم إنشاؤها عبر: https://myaccount.google.com/apppasswords⁩
to_email = "xyz@gmail.com"  # ⁨عنوان البريد الإلكتروني للمستلم⁩

# ⁨تهيئة كائن الإنذار الأمني⁩
securityalarm = solutions.SecurityAlarm(
    show=True,  # ⁨# اعرض الناتج⁩
    model="yolo26n.pt",  # ⁨مثلًا، yolo26s.pt أو yolo26m.pt⁩
    records=1,  # ⁨العدد الإجمالي للاكتشافات المطلوب إرساله عبر البريد الإلكتروني⁩
)

securityalarm.authenticate(from_email, password, to_email)  # ⁨مصادقة خادم البريد الإلكتروني⁩

# ⁨معالجة الفيديو⁩
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)  # الوصول إلى المخرجات⁩

    video_writer.write(results.plot_im)  # ⁨كتابة الإطار المعالَج.⁩

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # ⁨إغلاق جميع النوافذ المفتوحة⁩

عند تشغيل الشيفرة، ستتلقى إشعارًا واحدًا عبر البريد الإلكتروني إذا اكتُشف أي كائن. يُرسل الإشعار فورًا، وليس بشكل متكرر. يمكنك تخصيص الشيفرة لتلبية متطلبات مشروعك.

مثال على رسالة بريد إلكتروني مستلمة#

Security alert email notification example

وسيطات SecurityAlarm#

إليك جدولًا بمعاملات SecurityAlarm:

المعاملالنوعالافتراضيالوصف
modelstrNoneمسار ملف نموذج Ultralytics YOLO.
recordsint5إجمالي عدد الاكتشافات اللازم لإطلاق رسالة بريد إلكتروني مع نظام إنذار أمني.
line_widthint2سماكة الخط للصناديق والنقاط المفتاحية والعدادات التي يرسمها الحل.
verboseboolTrueيفعّل سجل الحل لكل إطار، ويشمل شكل المدخل وعدد الفئات وسرعة المعالجة. يظل استدعاء التتبع نفسه صامتًا دائمًا.

يدعم الحل SecurityAlarm مجموعة متنوعة من المعلمات track:

المعاملالنوعالافتراضيالوصف
trackerstr'tracktrack.yaml'يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المضمنة: botsort.yaml، bytetrack.yaml، ocsort.yaml، deepocsort.yaml، fasttrack.yaml، tracktrack.yaml.
conffloat0.25يضبط عتبة الثقة للكشوفات؛ إذ تسمح القيم الأقل بتتبع مزيد من الكائنات، لكنها قد تتضمن إيجابيات كاذبة.
ioufloat0.7يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الكشوفات المتداخلة.
classeslistNoneيصفّي النتائج حسب فهرس الفئة. على سبيل المثال، لا يتتبع classes=[0, 2, 3] إلا الفئات المحددة.
devicestrNoneيحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محددة أو أجهزة حوسبة أخرى لتنفيذ النموذج.
imgszint or tuple640حجم صورة الاستدلال المستهدف: عدد صحيح لصورة مربعة، أو زوج (height, width). تُعدّل الأبعاد وفقًا لخطوة النموذج.
max_detint300الحد الأقصى لعدد الكشوفات التي يُحتفظ بها لكل إطار قبل التتبع، ما يحد من عدد الكائنات التي يعالجها الحل في المشاهد الكثيفة.
quantizeint or strNoneدقة الاستدلال: 16 (FP16) أو 32/غير محدد (FP32) لنماذج PyTorch وTorchScript؛ أما التنسيقات الأخرى فتحسب بالدقة التي يحددها الملف الاصطناعي وبيئة التشغيل. يحل هذا الوسيط محل العلامة half التي أُهمل استخدامها.

علاوة على ذلك، تتوفر إعدادات التصور التالية:

المعاملالنوعالافتراضيالوصف
showboolFalseإذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. يفيد ذلك في الحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار.
show_confboolTrueيعرض درجة الثقة لكل اكتشاف بجوار التسمية، ما يوضح مدى يقين النموذج بشأن كل اكتشاف.
show_labelsboolTrueيعرض تسميات كل اكتشاف في المخرجات المرئية، ما يتيح فهم الكائنات المكتشفة فورًا.

آلية العمل#

يستخدم نظام الإنذار الأمني تتبع الكائنات لمراقبة بث الفيديو واكتشاف التهديدات الأمنية المحتملة. عندما يصل عدد الكائنات المكتشفة في إطار إلى الحد المحدد (المعيّن بواسطة المعلمة records)، يرسل النظام تلقائيًا إشعارًا عبر البريد الإلكتروني مرفقًا به صورة تُظهر الكائنات المكتشفة.

يستفيد النظام من الفئة SecurityAlarm، التي توفر طرائق من أجل:

  1. معالجة الإطارات واستخراج اكتشافات الكائنات منها
  2. إضافة مربعات إحاطة إلى الإطارات حول الكائنات المكتشفة
  3. إرسال إشعارات عبر البريد الإلكتروني عند بلوغ حدود الكشف

هذا التطبيق مثالي لأمن المنازل ومراقبة متاجر البيع بالتجزئة وغيرها من تطبيقات المراقبة التي يكون فيها الإشعار الفوري بالكائنات المكتشفة أمرًا بالغ الأهمية.

الأسئلة الشائعة#

  • يعزز Ultralytics YOLO26 أنظمة الإنذار الأمني من خلال توفير كشف دقيق للغاية للكائنات في الوقت الفعلي. وتحدّ خوارزمياته المتقدمة بدرجة كبيرة من الإيجابيات الكاذبة، ما يضمن استجابة النظام للتهديدات الحقيقية فقط. ويمكن دمج هذه الموثوقية المحسّنة بسلاسة مع البنية التحتية الأمنية القائمة، مما يرفع جودة المراقبة الإجمالية.

  • نعم، يمكن دمج Ultralytics YOLO26 بسلاسة مع بنيتك التحتية الأمنية الحالية. يدعم النظام أوضاعًا مختلفة ويوفر مرونة في التخصيص، ما يتيح لك تعزيز إعدادك الحالي بقدرات متقدمة لكشف الكائنات. للاطلاع على تعليمات مفصلة حول دمج YOLO26 في مشاريعك، تفضّل بزيارة قسم التكامل.

  • يتطلب تشغيل Ultralytics YOLO26 على إعداد قياسي عادةً نحو 5GB من مساحة القرص الحرة. ويشمل ذلك مساحة تخزين نموذج YOLO26 وأي تبعيات إضافية. أما الحلول المستندة إلى السحابة، فتوفّر منصة Ultralytics إدارة فعّالة للمشاريع والتعامل مع مجموعات البيانات، ما قد يحسّن احتياجات التخزين. تعرّف على المزيد حول الخطة Pro للاستفادة من ميزات محسّنة تشمل مساحة تخزين إضافية.

  • يتفوق Ultralytics YOLO26 على نماذج مثل Faster R-CNN أو SSD بفضل قدراته على الكشف في الوقت الفعلي ودقته الأعلى. وتتيح له بنيته الفريدة معالجة الصور بسرعة أكبر بكثير من دون التأثير في الدقة، ما يجعله مثاليًا للتطبيقات الحساسة للوقت مثل أنظمة الإنذار الأمني. وللاطلاع على مقارنة شاملة لنماذج كشف الكائنات، يمكنك استكشاف الدليل.

  • لتقليل الإيجابيات الكاذبة، احرص على تدريب نموذج Ultralytics YOLO26 تدريبًا كافيًا باستخدام مجموعة بيانات متنوعة ومشروحة جيدًا. ويمكن لضبط المعلمات الفائقة وتحسينها، وتحديث النموذج بانتظام باستخدام بيانات جديدة، أن يحسّنا دقة الكشف بدرجة كبيرة. يمكنك العثور على تقنيات مفصلة لـضبط المعلمات الفائقة في دليل ضبط المعلمات الفائقة.

التعليقات