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

جرس الباب مع التعرف على الوجه: 7 خطوات (بالصور)
جرس الباب مع التعرف على الوجه: 7 خطوات (بالصور)

فيديو: جرس الباب مع التعرف على الوجه: 7 خطوات (بالصور)

فيديو: جرس الباب مع التعرف على الوجه: 7 خطوات (بالصور)
فيديو: تجربتي مع جرس الباب الذكي | Aqara G4 2024, يوليو
Anonim
جرس الباب مع التعرف على الوجه
جرس الباب مع التعرف على الوجه

التحفيز

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

معلومات عامة

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

مستوى الخبرة

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

الخطوة 1: المواد

المواد
المواد

قائمة المنتجات مع الحد الأدنى من المتطلبات:

المنتج وصلة تعليق
Raspberry Pi 3b RPi يُظهر Link RPi 4 نظرًا لأنه يتمتع بأداء أفضل وسعر متساوٍ تقريبًا مثل RPi 3b.
مايكرو اس دي أمازون ستؤدي بطاقة micro SD بسعة 16 جيجابايت أو أكبر هذه المهمة. لكن بطاقات 16 جيجا بايت على أمازون أصبحت الآن إلى حد كبير نفس سعر بطاقات 32 جيجا بايت.
كاميرا Raspberry Pi أمازون تعد الكاميرا v1 أرخص ، لكن الإصدار 2 أفضل وسيتم دعمها لفترة أطول.
15 دبوس FPC الكابلات المرنة أمازون الطول يعتمد في الواقع على ظروف تنفيذ هذا المشروع. إذا كنت ترغب فقط في إنشاء نموذج أولي ، فسيقوم الكبل المرن الأصلي بالمهمة.
مزود الطاقة 5 فولت usb الصغير Adafruit هذا الشخص لم يخذل أبدا! جودة ممتازة. (ليس في الصورة)
أزرار آركيد مع إضاءة LED مدمجة أمازون اختر الحجم الذي تريده ، لكن تصميم CAD يعتمد على أزرار 60 مم
المقاومات أمازون أنت فقط بحاجة إلى اثنين من المقاومات 1 كيلو و 100 أوم. 1 / 4W's العادية جيدة.
المكثفات 0.1 فائق التوهج أمازون ثلاثة مكثفات مطلوبة. (ليس في الصورة)
أسلاك توصيل / كابل الشريط أمازون الأمازون إذا كنت تريد توفير بعض الدولارات لنفسك ، فيمكنك أيضًا استخدام كبل شريطي قديم لمحرك الأقراص المرنة (انظر الصورة).
أنبوب الانكماش / الشريط الكهربائي أمازون الأمازون

الأدوات المطلوبة:

أداة أساس؟ تعليق
لحام حديد نعم
المقياس المتعدد نعم
متجرد الأسلاك نعم أو يمكنك استخدام سكين / مقص.
قاطع ليزري لا
طابعة 3D لا
المشابك لا مفيد للحفاظ على الصندوق معًا في مرحلة الاختبار.

ملاحظات:

لزيادة إمكانية الوصول إلى المشروع ، قررت تطويره باستخدام Raspberry Pi 3b. بينما يزيد من إمكانية الوصول ، فإنه يقلل من إمكانيات التطبيق لأن RPi ليس بهذه السرعة. إذا كنت تبحث عن كمبيوتر لوحي واحد يكون أسرع ، فقد ترغب في إلقاء نظرة على NVIDIA Jetson Nano

الخطوة 2: الأسلاك

الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك

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

ملاحظات:

  • أحب حقًا استخدام موصلات الكابلات الشريطية ، لأنها أكثر ثباتًا من استخدام أسلاك توصيل مفردة.
  • كما هو مقترح ، لقد استخدمت كبل شريطي مسحوب من جهاز كمبيوتر قديم. هذا أمر صعب بعض الشيء نظرًا لأنه سيتعين عليك تأكيد تكوين الكبل يدويًا. في هذا المشروع على سبيل المثال ، اكتشفت أن بعض الثقوب كانت متصلة ببعضها البعض (ربما استخدمت كأساس للتطبيق الأصلي). لذلك ، كان عليّ الحصول على كابل مختلف لاحقًا كما ترون في الصور.

الخطوة 3: بناء الغلاف

بناء الغلاف
بناء الغلاف
بناء الغلاف
بناء الغلاف
بناء الغلاف
بناء الغلاف
بناء الغلاف
بناء الغلاف

غلاف الكاميرا

يمكن تنزيل العديد من أغلفة الصور مجانًا من الإنترنت. لذلك ، اخترت عدم إعادة اختراع العجلة واختيار غلاف أساسي ولكنه لطيف من الإنترنت: thingiverse.com - علبة / حاوية كاميرا Raspberry pi. (صرخ إلى المصمم VGer.)

غلاف إشارة المرور

بالنسبة لغلاف إشارة المرور ، فقد صممت صندوقًا صغيرًا في Autodesk Fusion 360 (يمكن تنزيله مجانًا ، انظر الملاحظات) يناسب جميع الأجهزة. في المرفق ، يمكنك العثور على الملف الذي أرسلته إلى شركة القطع بالليزر المحلية الخاصة بي. بموجب هذا ، يعتمد التصميم على سماكة صفيحة 6 مم. ومع ذلك ، إذا كنت تريد تعديل الأشياء ، فيمكنك الوصول إلى جميع أنواع تنسيقات الملفات باستخدام هذا الارتباط. كما هو موضح في الصور ، يمكنك أيضًا استخدام صندوق من الورق المقوى إذا لم يكن لديك وصول إلى قاطع الليزر. لقد استخدمت صندوق الكرتون الموجود على الصورة للنماذج الأولية وهو يعمل مثل السحر.

التجميع مستقيم جدًا للأمام:

  1. قم بتركيب مفاتيح Arcade.
  2. تأكد من الاحتفاظ بأسلاك جرس الباب خالية.
  3. قم بتوصيل كابل الشريط بـ RPi.
  4. برغي RPi على اللوحة السفلية.
  5. قم بتوصيل أسلاك جرس الباب بموصل سلكي وقم بتثبيته على اللوحة السفلية أيضًا.
  6. قم بتوصيل Picamera بـ RPi.
  7. قم بعمل ثقب في أحد الألواح الجانبية لسلك تحويل جرس الباب وسلك الطاقة RPi.

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

ملاحظات:

Autodesk Fusion 360 متاح مجانًا للهواة! إذا كنت ترغب في الحصول على نسختك ، فقم بزيارة هذا الرابط: autodesk.com - Fusion 360 For Hobbyists. هناك بعض المصطلحات ، لذا تأكد من قراءتها وتطبيقها. كان أول مشروع لي مع Fusion 360 وليس لدي الكثير من الخبرة في استخدام برنامج CAD ، لكن يجب أن أقول إنني أحب البرنامج حقًا وجميع الأدوات الإضافية التي تأتي مع Fusion 360

الخطوة 4: تكوين الكاميرا

تكوين الكاميرا
تكوين الكاميرا
تكوين الكاميرا
تكوين الكاميرا
تكوين الكاميرا
تكوين الكاميرا

من المفترض أن يكون لديك Raspbian مثبتًا وأنه يعمل في وضع واجهة المستخدم الرسومية. إذا لم يكن لديك Raspbian مثبتًا حتى الآن ، فيمكنك اتباع هذه المقالة: raspberrypi.org - تثبيت صور نظام التشغيل. إذا قمت بتشغيل Raspbian ، يجب أن ترى سطح مكتب كما هو موضح في الصور.

لنقم بتهيئة الكاميرا على RPi ومعرفة ما إذا كانت تعمل! الطريقة الموصوفة هنا مباشرة من raspberrypi.org - التوثيق. أولاً ، دعنا نحدِّث إلى أحدث الحزم (بما في ذلك البرامج الثابتة للكاميرا) عن طريق تنفيذ الأوامر التالية في نافذة طرفية (انظر الصور):

sudo apt التحديث

sudo apt الترقية الكاملة

بعد ذلك ، يجب تمكين الكاميرا باستخدام الأمر التالي:

sudo raspi-config

في القائمة ، انتقل إلى 5. خيارات التواصل -> كاميرا P1. اختر لتمكين الكاميرا وأعد تشغيل RPi بتنفيذ:

اعادة التشغيل

يجب الآن تكوين الكاميرا بشكل صحيح. يمكن اختباره من خلال فتح نافذة طرفية وتنفيذ:

raspistill -v -o /home/pi/test.jpg

يتم حفظ الصورة في: / home / pi.

الخطوة 5: إعداد Docker

إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء
إنشاء عامل ميناء

لتجنب أخطاء التبعية والتثبيت ، قررت إنشاء صورة Docker مخصصة لهذا المشروع (انظر wikipedia.org - Docker). إذا لم تستخدم Docker أو تسمع به من قبل ، فلا تقلق ، سأشرح خطوة بخطوة كيفية استخدامه في هذا المشروع. في الواقع ، إنه سهل للغاية! في حالة رغبتك في تشغيل هذا المشروع على تثبيت محلي (بدلاً من حاوية Docker) ، سأقدم لك بعض النصائح. لكن يوصى بشدة باستخدام صورة Docker. بعد كل شيء ، أقوم ببنائه لتسهيل تشغيل هذا المشروع!

ما هو Docker؟

ملاحظة: يوفر هذا الجزء بعض المعلومات الأساسية حول Docker ، والتي يمكن تخطيها إذا كنت تريد فقط تشغيل الكود.

هذا المشروع هو المرة الأولى التي أستخدم فيها Docker وهو رائع بكل بساطة! ربما سمعت عن Virtualenv أو Anaconda for Python؟ حسنًا ، Docker مشابه جدًا بمعنى أنه يمكنك بسهولة إدارة إصدارات الحزم وتشغيل إصدارات Python المختلفة على نظام مضيف واحد باستخدام بيئة مختلفة (أو حاوية كما يطلق عليها في Docker). ولكن ، بالمقارنة مع Virtualenv و Anaconda ، فإن Docker أكثر قوة نظرًا لأنه لا يقتصر على احتواء حزم Python فقط. في الواقع ، في حاوية Docker ، يمكنك أيضًا تثبيت حزم نظام التشغيل المطلوب وإدارتها. على سبيل المثال ، ضع في اعتبارك موقع ويب تريد ترحيله يعمل بإطار عمل ويب Python (مثل Django) بقاعدة بيانات (مثل MySQL). بدون حاوية Docker ، سيتعين عليك تثبيت جميع الحزم على الخادم الجديد ، وهي عملية معرضة جدًا للأخطاء والأخطاء. من ناحية أخرى ، عندما يتم إنشاء موقع الويب الخاص بك في Docker ، يكون الترحيل سهلاً بشكل أساسي مثل نقل ملف / ملفات الصورة إلى الخادم الجديد وتشغيله / عليها. كما يمكنك أن تتخيل ، يعد Docker مفيدًا جدًا للمشاريع على Instructables أيضًا ؛)! إذا كنت تريد معرفة المزيد عن Docker ، فراجع موقعه على الويب: docker.org - Docker: Enterprise Container Platform. الآن ، دعنا نبدأ العمل مع Docker!

تثبيت Docker

قم بتثبيت Docker عن طريق تنفيذ:

curl -sSL https://get.docker.com | ش

بعد ذلك ، تتم إضافة المستخدم إلى مجموعة المستخدمين 'docker' ، والتي توفر حقوق تشغيل Docker. يتم ذلك عن طريق:

sudo usermod -aG docker $ USER

الآن ، يجب أن تكون قادرًا على تشغيل Docker. يمكن التحقق من صحة ذلك عن طريق تشغيل صورة hello-world:

عامل ميناء تشغيل مرحبا العالم

أخيرًا ، دعنا نسحب صورة Docker التي تحتوي على جميع التبعيات اللازمة لتشغيل نصوص Python على جرس الباب. قد تستغرق هذه العملية بعض الوقت نظرًا لأن الصورة كبيرة جدًا (حوالي 1.5 جيجابايت). ينفذ:

عامل ميناء سحب erientes / جرس الباب

ملاحظة: يمكن العثور على Dockerfile في مستودع جرس الباب على Github. الآن ، كل شيء جاهز لتشغيل نصوص جرس الباب ، والتي ستتم مناقشتها في الخطوة التالية.

التثبيت المحلي

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

لتتمكن من تشغيل الكود ، يجب أن يكون إصدار python> = 3.5 (لقد استخدمت python 3.5.3) ويجب تثبيت الحزم التالية:

  • تمييز الوجوه
  • بيكاميرا
  • حبيبي
  • وسادة
  • بيثون برقية بوت
  • RPi. GPIO

هذا الرابط مفيد للغاية: Github - قم بتثبيت dlib و face_recognition على Raspberry Pi. ومع ذلك ، هناك بعض المحاذير هنا: 1) تحتاج الوسادة إلى Python 3.5 على الأقل ، والتي لن يتم تثبيتها باتباع هذه الطريقة. 2) أيضًا ، لن يتم تثبيت جميع الحزم المطلوبة في مشروع جرس الباب باتباع هذه الطريقة. ومع ذلك ، يجب أن تكون قادرًا على تثبيته ببساطة باستخدام pip3.

الخطوة 6: تشغيل نصوص جرس الباب

تشغيل مخطوطات الجرس
تشغيل مخطوطات الجرس
تشغيل مخطوطات الجرس
تشغيل مخطوطات الجرس
تشغيل مخطوطات الجرس
تشغيل مخطوطات الجرس

احصل على البرامج النصية

يمكن تنزيل البرامج النصية يدويًا من: github.com - Erientes / doorbell. أو إذا كان لديك Git مثبتًا ، فنفّذ:

استنساخ بوابة

إنشاء الأسماء المستعارة

الآن ، لجعل حياتنا أسهل قليلاً ، فلنقم بإنشاء بعض الأسماء المستعارة لتشغيل البرامج النصية. ينفذ:

اللوح ~ /

أضف الأسطر التالية واحفظ الملف:

alias doorbell_run = 'Docker run --privileged -v / home / pi / doorbell: / doorbell -w / doorbell -it erientes / doorbell python $ 1'

alias doorbell_login = 'Docker run --privileged -v / home / pi / doorbell: / doorbell -w / doorbell -it erientes / doorbell bash'

اختبار البرامج النصية

لاختبار ما إذا كان كل شيء مثبتًا بشكل صحيح ، افتح محطة طرفية جديدة ونفذ:

أمثلة على doorbell_run / 0_test_installation.py

يجب أن تكون النتيجة ببساطة رسالة في نافذة الجهاز تقول "انتهى تثبيت جرس الباب بنجاح!". لاختبار ما إذا كان يمكن الوصول إلى الكاميرا بواسطة حاوية Docker ، قم بتشغيل:

أمثلة على doorbell_run / 1_test_camera.py

من خلال تشغيل 1_test_camera.py ، سيتم التقاط صورة وحفظها باسم "test.jpg" ، والتي يمكن العثور عليها في / home / pi / doorbell. أخيرًا ، يمكن اختبار برامج تشغيل LED بتنفيذ:

أمثلة على doorbell_run / 2_test_voicehat_drivers.py

عند تشغيل هذا البرنامج النصي ، يجب أن يستجيب مؤشر LED الموجود في مفتاح التحويل عند الضغط على الزر.

تشغيل نصوص الجرس

لتشغيل نصوص جرس الباب ، يجب أولاً الحصول على بيانات اعتماد Telegram bot. قم بتثبيت Telegram على هاتفك وانتقل إلى telegram.me - Botfather. ابدأ محادثة وأدخل:

/ newbot

أدخل اسمًا واسم مستخدم للبوت. بعد ذلك ، سيتم تزويدك برمز الوصول. انسخ هذه القيمة إلى ملف "credentials_telegram_template.py" في / home / pi / doorbell واحفظها في ملف جديد باسم "credentials_telegram.py". أخيرًا ، ابدأ محادثة مع الروبوت الذي أنشأته للتو من خلال النقر على الرابط الذي يوفره لك Botfather.

أخيرًا ، لنقم بتشغيل جرس الباب مع التعرف على الوجوه:

doorbell_run main.py

ملاحظات:

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

الخطوة 7: استخدام الجرس

Image
Image
استخدام الجرس
استخدام الجرس
استخدام الجرس
استخدام الجرس

لنقم بتشغيل نص جرس الباب بتنفيذ:

doorbell_run main.py بعد تحميل الحزم ، تصبح البرامج النصية خاملة. هناك شيئان أساسيان يمكن أن يحدثا:

  1. شخص ما يقرع جرس الباب.
  2. تمت إضافة شخص ما إلى القائمة البيضاء.

شخص ما يقرع جرس الباب

في هذه الحالة ، سيبدأ البرنامج النصي في التقاط الصور حتى يقوم بالتقاط صورة يتم فيها اكتشاف وجه. بعد الاكتشاف ، يتم استدعاء بعض الطرق من حزمة بايثون "face_recognition" لحساب 128 ترميزًا للوجه. بعد ذلك ، تتم مقارنة الترميز الذي تم الحصول عليه مع الترميزات في whitelist.csv و blacklist.csv. النتائج المحتملة تؤدي إلى الاستجابة التالية:

في القائمة البيضاء؟ في القائمة السوداء؟ إجابة
نعم لا يضيء الضوء الأخضر.
نعم نعم يضيء الضوء الأصفر. ترسل كاميرا جرس الباب الصور إلى برنامج Telegram bot بأيقونة برتقالية. يمكن أن تحدث هذه الحالة إذا تمت إضافة شخص ما إلى كلتا القائمتين. على سبيل المثال ، عندما تم الترحيب بشخص ما في البداية ، ولكن تم إدراجه في القائمة السوداء لاحقًا.
لا لا يضيء الضوء الأصفر. ترسل كاميرا جرس الباب الصور إلى برنامج Telegram bot بأيقونة برتقالية.
لا نعم يضيء الضوء الأحمر. ترسل كاميرا جرس الباب الصور إلى برنامج Telegram bot بأيقونة حمراء.

تمت إضافة شخص ما إلى القائمة البيضاء

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

كيف تضيف شخص ما إلى القائمة السوداء؟

من الواضح أن الأشخاص ذوي النوايا السيئة لن يمروا ليعطونا صورة لوجههم. لذا بدلاً من ذلك ، يمكنك إضافة صور لأشخاص سيئي السمعة نشرتهم الشرطة (على سبيل المثال) إلى المجلد img / blacklist. كل ساعة ، يتم فحص هذا المجلد بحثًا عن صور جديدة. إذا كانت هناك صورة جديدة ، فسيتم حساب ترميز الوجه وإضافته إلى blacklist.csv. ثم يتم إعادة تسمية الصورة ونقلها إلى المجلد / img / blacklist / encoded.

ملاحظات:

  • يوفر تشغيل البرامج النصية عن طريق تسجيل الدخول إلى RPi مزيدًا من التحكم والمعلومات ، ولكن يمكن الحصول على التحكم الأساسي والمعلومات من خلال استخدام عرض إشارة المرور فقط.
  • يتم تنفيذ التعرف على الوجوه باستخدام حزمة python "face_recognition". تعتمد هذه الحزمة على Dlib الذي يحتوي على خوارزمية متطورة للتعرف على الوجوه ، والتي تؤدي دقة تصل إلى 99.38٪ على معيار الوجوه المصنفة في البرية (المصدر: dlib.net - التعرف على الوجه بجودة عالية مع التعلم العميق المتري).
مسابقة التكنولوجيا المساعدة
مسابقة التكنولوجيا المساعدة
مسابقة التكنولوجيا المساعدة
مسابقة التكنولوجيا المساعدة

الجائزة الأولى في مسابقة التكنولوجيا المساعدة

موصى به: