جدول المحتويات:

كشف الزومبي عن بومة الأمان الذكية (التعلم العميق): 10 خطوات (بالصور)
كشف الزومبي عن بومة الأمان الذكية (التعلم العميق): 10 خطوات (بالصور)

فيديو: كشف الزومبي عن بومة الأمان الذكية (التعلم العميق): 10 خطوات (بالصور)

فيديو: كشف الزومبي عن بومة الأمان الذكية (التعلم العميق): 10 خطوات (بالصور)
فيديو: عندما يبرد القلب 💔 2024, شهر نوفمبر
Anonim

مرحبًا بالجميع ، ومرحبًا بكم في T3chFlicks! في هذا البرنامج التعليمي لعيد الهالوين ، سنعرض لك كيف نضع تطورًا مخيفًا للغاية على منزل تقليدي عادي: الكاميرا الأمنية.

كيف؟! لقد صنعنا بومة للرؤية الليلية تستخدم معالجة الصور لتتبع الأشخاص. أوه ، ويصيح ، تمامًا مثل الشيء الحقيقي!

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

إذا كنت ترغب في ترقب الاقتراب من الزومبي في عيد الهالوين ، أو تحقق فقط من حديقتك بقية العام ، فهذه هي المناسبة لك. لا يجب أن يكون الأمن مملًا ليكون فعالًا!

اللوازم

لهذا البناء ، سوف تحتاج:

  • رازبيري باي 4 (4 جيجا رام) أمازون
  • كاميرا الرؤية الليلية أمازون
  • مايكرو سيرفو أمازون
  • البومة وهمية الأمازون
  • غراء أمازون
  • طلاء أمازون
  • مسامير أمازون
  • مكبر صوت USB أمازون
  • مزود طاقة محمول كبير (5 فولت +) أمازون
  • طابعة ثلاثية الأبعاد أمازون

الخطوة 1: الخطوة 1: قطع الرأس

الخطوة 1: قطع الرأس
الخطوة 1: قطع الرأس
الخطوة 1: قطع الرأس
الخطوة 1: قطع الرأس
الخطوة 1: قطع الرأس
الخطوة 1: قطع الرأس

أ. اسحب رأس البومة (في بعض الأحيان عليك أن تكون وحشيًا) عن طريق سحب رأسها بقوة حيث تتصل بالزنبرك.

ب. يتصل رأس البومة بالجسم بواسطة أسطوانة توضع فوق نبع كبير. قم بإزالة هذه الأسطوانة عن طريق إخراج المسمار.

ج. الأسطوانة التي قمت بإزالتها للتو مصنوعة من جزأين ، كوب بلاستيكي ومحمل بداخلها. قم بإزالة المحمل من الأسطوانة باستخدام مفك البراغي (أو أداة مماثلة).

د. باستخدام المسمار الذي يربط الأسطوانة بالزنبرك ، قم بتوصيل المؤازرة بالأسطوانة.

ه. قم بإزالة الزنبرك عن طريق فك البراغي الثلاثة التي تثبته بالجسم.

F. اصنع ثقبًا في الجزء العلوي من جسم البومة بحيث يكون كبيرًا بما يكفي ليلائم بعض الأسلاك وكابل الكاميرا. استخدمنا مزيجًا غير أنيق من المثقاب ومفك البراغي للقيام بذلك.

الخطوة 2: الخطوة 2: إضافة Smart

الخطوة 2: أضف Smart
الخطوة 2: أضف Smart
الخطوة 2: أضف Smart
الخطوة 2: أضف Smart
الخطوة 2: أضف Smart
الخطوة 2: أضف Smart

أ. طباعة ثلاثية الأبعاد لحالة الكاميرا ورسمها لتتناسب مع البومة - استخدمنا بعض دهانات الأكريليك الرخيصة. الرسم ليس خطوة حيوية ، لكنه يحسن المظهر العام بشكل كبير!

ب. مع رأس البومة رأسًا على عقب ، اربط الجزء العلوي من علبة الكاميرا بداخل رأسها ، حيث يبرز المنقار.

ج. ضع الكاميرا في العلبة وقم بتوصيل كابل الكاميرا.

د. قم بلصق المؤازرة على اللوحة العلوية للربيع.

ه. قم بتوصيل الأسلاك الطويلة بدبابيس المؤازرة (5V ، Gnd ، الإشارة)

F. قم بتغذية كابل الكاميرا والأسلاك الخاصة بالمؤازرة من خلال الزنبرك ومن خلال الفتحة التي قمت بإنشائها في الجزء العلوي من الجسم بحيث تكون داخل جسم البومة الأجوف.

الخطوة 3: الخطوة 3: املأها

الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها
الخطوة 3: املأها

أ. قم بإزالة السدادة من أسفل البومة وزيادة حجم هذه الفتحة عن طريق قطع البلاستيك. استمر في زيادة الحجم حتى يتناسب Raspberry Pi ومكبر الصوت مع جسم البومة.

ب. بمجرد أن يصبح الثقب كبيرًا بما يكفي لتناسب جميع المكونات بداخله ، اسحب كابل الكاميرا الذي أدخلته عبر الجزء العلوي من البومة من القاعدة وقم بتوصيله بـ Raspberry Pi.

ج. وبالمثل ، اسحب أسلاك المؤازرة من خلالها وقم بتوصيلها بـ Raspberry Pi:

  • + 5v على المؤازرة => + 5V على Pi
  • مضاعفات Gnd => gnd Pi
  • أجهزة الإشارة => pin 12 Pi

د. قم بتوصيل مكبر صوت USB في Pi.

ه. أدخل بطاقة SD في Pi.

F. Power Pi باستخدام مصدر طاقة محمول.

ز. أدخل Pi ومصدر الطاقة ومكبر الصوت في البومة من خلال الفتحة الموجودة في القاعدة.

الخطوة 4: الخطوة 4: قم بإعداد ملف Pi

الخطوة 4: قم بإعداد ملف Pi
الخطوة 4: قم بإعداد ملف Pi

يمكن العثور على جميع الكود على

أ. قم بتنزيل Raspian وتحميله على بطاقة SD الخاصة بك باستخدام Balena Etcher.

ب. للوصول إلى بي الخاص بك عن بعد

  • قم بإضافة ملف يسمى ssh إلى بطاقة sd التمهيد الخاصة بك
  • أضف ملفًا يسمى wpa_supplicant.conf وأدخل بيانات اعتماد wifi الخاصة بك

    ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1

    شبكة = {ssid = "MySSID" psk = "MyPassword"}

ج. أدخل بطاقة SD في pi وحاول الوصول عبر ssh.

الخطوة 5: الخطوة 5: تحريك الرأس

الخطوة 5: تحريك الرأس
الخطوة 5: تحريك الرأس

برنامج تعليمي للكود لتحريك الرأس (التحكم في المؤازرة باستخدام raspberry pi)

للتحكم في المؤازرة التي تعمل على Pi ، سنقوم بإنشاء برنامج نصي يتحكم في دبابيس GPIO التي تتصل بها المؤازرة.

أ. قم بتوصيل المؤازرة بـ Pi:

  • + 5v على المؤازرة => + 5V على Pi
  • مضاعفات Gnd => gnd على Pi
  • أجهزة الإشارة => pin 12 on Pi

ب. يجب عليك أولاً إعداد دبابيس gpio لاستخدام PWM على دبوس إشارة المؤازرة.

ج. بعد ذلك ، يكون الأمر بسيطًا مثل اختيار دورة العمل (الموضحة هنا) لدبوس الإشارة لتحريك المؤازرة من 90 درجة مع دورة عمل من 7.5 إلى 0 درجة عندما تكون دورة العمل 2.5 وإلى 180 درجة مع دورة عمل تبلغ 12.5

استيراد RPi. GPIO كـ GPIO

وقت الاستيراد GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12، GPIO. OUT) p = GPIO. PWM (12، 50) p.start (7.5) حاول: بينما True: p. ChangeDutyCycle (7.5) # 90 درجة وقت.نوم (1) p. ChangeDutyCycle (2.5) # 0 درجة وقت.نوم (1) p. ChangeDutyCycle (12.5) # 180 درجة وقت. GPIO.cleanup ()

الخطوة 6: الخطوة 6: جعلها صرخة

الخطوة 6: جعلها صرخة
الخطوة 6: جعلها صرخة
الخطوة 6: جعلها صرخة
الخطوة 6: جعلها صرخة

برنامج تعليمي للكود لجعل البومة صيحة (تشغيل الصوت باستخدام raspberry pi)

أ. قم بتوصيل مكبر صوت USB.

ب. تنزيل صوت - اخترنا صيحة مخيفة.

ج. قم بتشغيل الصوت عن طريق تشغيل هذا الأمر: omxplayer -o alsa: hw: 1، 0 owl_sound.mp3

[د. إذا لم يفلح ذلك ، فتحقق من الإخراج الذي يستخدمه Pi الخاص بك ومستوى الصوت باستخدام الأمر alsamixer - سيتم الترحيب بك من خلال شاشة الخالط حيث يمكنك تغيير مستوى الصوت وتحديد جهاز الوسائط الخاص بك. لزيادة حجم الصوت ، قم بتنفيذ الأمر مثل omxplayer -o alsa: hw: 1، 0 owl_sound.mp3 --vol 500 لتشغيل هذا الصوت باستخدام Python ، ألق نظرة على نص الاختبار الخاص بنا.]

عملية الاستيراد الفرعية

command = "omxplayer -o alsa: hw: 1، 0 owl_sound.mp3 --vol 500" player = subprocess. Popen (command.split ('')، stdin = subprocess. PIPE، stdout = subprocess. PIPE، stderr = subprocess..يضخ)

الخطوة 7: الخطوة 7: دفق الفيديو من Pi

الخطوة 7: دفق الفيديو من Pi
الخطوة 7: دفق الفيديو من Pi
الخطوة 7: دفق الفيديو من Pi
الخطوة 7: دفق الفيديو من Pi

برنامج تعليمي للكود لإنشاء دفق كاميرا raspberry pi

أ. قم بتشغيل python app.py وعرضه على شبكتك المحلية على https://raspberrypi.local: 5000

ب. تم أخذ هذا الرمز وتعديله قليلاً من Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… وهو يشرح بشكل جيد كيف يتم ذلك ودروسه التعليمية رائعة - يمكنك التحقق منه! المفهوم الأساسي هو أننا نستخدم الخيوط والمولدات لتحسين سرعة التدفق.

الخطوة 8: الخطوة 8: الكشف عن الجسد

الخطوة الثامنة: كشف الجسد
الخطوة الثامنة: كشف الجسد

كود لاكتشاف الجسم (ImageNetSSD على دفق فيديو باستخدام raspberry pi)

أ. نظرًا لأننا نستخدم Raspberry Pi 4 ، فقد اعتقدنا أنه من الأفضل تجربة بعض نماذج التعلم العميق عليه بدلاً من طريقة HaarCascade الأساسية التي اقتصرنا عليها حتى الآن.

ب. لقد ألقينا نظرة على بعض النماذج المدربة مسبقًا ، مثل YOLOv3 الذي يبدو رائعًا للغاية. YOLOv3 أوزان صغيرة ، والتي كانت ستكون مثالية لـ Pi ، لكن لم نتمكن من تشغيلها:(ج. بدلاً من ذلك ، اخترنا نموذج MobileSSD الذي يمكننا تشغيله باستخدام وحدة OpenCVs DNN (الشبكة العصبية العميقة) ، كما تعلمنا من هذا الكود: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 ومن بطل دروس معالجة الصور ، Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv /

د. ومع ذلك ، نظرًا لأننا نحاول دفق هذا المحتوى وتشغيل النماذج على كل إطار ، فإن هذا ينتج عنه مقطع فيديو بطيء ومجزأ. تعلمنا مرة أخرى من Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ واستخدمنا وحدة المعالجة المتعددة بيثون لوضع صورنا في قوائم الانتظار حيث يمكن معالجتها دون إعاقة بث الكاميرا بشدة.

ه. جرب تشغيل الكود بنفسك:)

الخطوة 9: الخطوة 9: إرسال إخطارات الزومبي

الخطوة 9: إرسال إخطارات الزومبي
الخطوة 9: إرسال إخطارات الزومبي
الخطوة 9: إرسال إخطارات الزومبي
الخطوة 9: إرسال إخطارات الزومبي

كود إرسال إشعار (python to phone)

أ. قررنا استخدام خدمة الإخطار

ب. يمكنك الحصول على حساب مجاني وتنزيل التطبيق والحصول بسرعة على إعداد إشعارات الهاتف المحمول. لقد أنشأنا الإشعارات باستخدام برنامج نصي بيثون مثل هذا.

طلبات الاستيراد

الحمولة = {"app_key": "APP_KEY"، "app_secret": "APP_SECRET"، "target_type": "app"، "content": "اكتشفت Owl كائنًا زومبيًا." } r = request.post ("https://api.pushed.co/1/push"، data = payload)

الأمر بسيط للغاية ويمكنك تخصيص اسم الإشعار الخاص بك!

الخطوة 10: يا له من صاح

يا له من صيحة!
يا له من صيحة!

نأمل أن تكون قد استمتعت بمشروع Smart Security Owl الخاص بنا! لقد كان هذا عملًا ممتعًا للغاية وأشعر بأمان أكبر لأنني أعلم أن منزلي يخضع لحراسة بومة موثوق بها.

إذا كنت تعتقد أن هذا سيكون إضافة رائعة لعيد الهالوين إلى منزلك الذكي ، فالرجاء التصويت لنا في مسابقة Instructables Halloween وكالعادة ، يرجى تذكر الإعجاب والتعليق والاشتراك!

إشترك بالقائمة البريدية الخاصة بنا!

موصى به: