Ultralytics YOLO27:

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

AI-powered security alarm system with object detection

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

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


Watch: Security Alarm System with Ultralytics YOLO26 + Solutions Object Detection

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

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

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

انتقل إلى App Password Generator، وحدد اسم تطبيق مثل "security project"، واحصل على كلمة مرور مكونة من 16 رقماً. انسخ كلمة المرور هذه والصقها في حقل password في الكود أدناه.

نظام إنذار أمني باستخدام Ultralytics YOLO
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

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

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

Security alert email notification example

وسيطات SecurityAlarm#

إليك جدولًا بوسيطات SecurityAlarm:

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

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

الوسيطةالنوعالافتراضيالوصف
trackerstr'botsort.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 Platform إدارة فعالة للمشاريع ومعالجة مجموعات البيانات، مما قد يحسّن احتياجات التخزين. تعرّف على المزيد حول الخطة الاحترافية للاستفادة من ميزات محسّنة، بما في ذلك مساحة تخزين موسّعة.

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

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

التعليقات