افتح السمسم أو Intel RealSense و ResNet Guard Fruit


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


قررنا تنفيذ مخطط مماثل باستخدام المواد المتاحة وحلول المصادر المفتوحة. كشيء مادي ، والذي سيكون له "الانتقائية للاكتشافات" المقابلة ، تم اختيار خزنة.


كل التفاصيل تحت القطع.


الإسكان



الشكل 1. الشكل 1. عملية تجميع القضية


العلبة مصنوعة من قصاصات من ألواح MDF مغلفة 40 × 40 سم ، متصلة بواسطة براغي أثاث. في وقت لاحق ، تم طلاء جميع المفاصل بسماكة مع معجون أكريليك على الخشب ، ليس كثيرا صنفرة بالكامل ، وبعد ذلك تم تغطية الجسم بالكامل عدة مرات بطبقة سميكة من طلاء الأكريليك الأبيض. الطلاء ، انتظر حتى تجف الطبقة الحالية ، غطى بالرمل ، قم بتغطيتها بالطبقة التالية. بعد ثلاث طبقات ، حصلت على تشطيب أبيض غير لامع موحد ، مررت فوقه طبقة رقيقة من المينا البيضاء اللامعة.



الشكل 2. السكن النهائي أثناء التركيبات الكهربائية


من أسفل العلبة نقوم بربط الأرجل المطبوعة - الأجزاء الأولى مرسومة في محرر ثلاثي الأبعاد.



الشكل 3. الساقين. PLA البلاستيكية


كهربائي


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



الشكل 4 الشكل 4. التجمع آلية القفل


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


بالإضافة إلى القفل ، نحتاج أيضًا إلى مقطورة للتحكم في حالة الباب ، ومفتاح بثلاثة أوضاع للتحكم في النظام ، ومصباح LED ثنائي اللون لعرض الحالة الحالية للبرنامج.



الشكل 5. الشكل التخطيطي لمجموعة أدوات الجسم


لا تنس أن الجهد على المسامير هو 1.8V (مع لوحة توسعة بالفعل 3.3V) ، لذلك نقوم بتوصيل مصابيح LED من خلال مرحلة الترانزستور - من 1.8V لن تضيء ببساطة.


إلكترونيات


المكونات الرئيسية للنظام - تم إنشاء كاميرا وكمبيوتر لوحة واحدة لبعضها البعض (في حالتنا ، هذا ليس منعطفًا للكلام ، ولكن حقيقة معروفة):



الشكل 6. مجموعة تطوير Intel Joule 570x - كمبيوتر صغير أحادي اللوحة مع Intel Atom رباعي النواة 64 بت على اللوحة وذاكرة بسعة 4 غيغابايت وموصل USB 3.0



الشكل 7. كاميرا Intel RealSense SR300 - كاميرا قصيرة المدى ثلاثية الأبعاد كجهاز رؤية. النطاق الفعال للتعرف على العمق هو 0.2 - 1.2 م.


بعد يومين فقط من بدء المشروع ، تمكنت Intel Joule من الحصول على حالة EOL (نهاية الحياة) ، لكن هذا لم يمنعنا.


كوحدة حاسوبية ، يمكنك تقريبًا استخدام أي لوحة فردية حديثة مزودة بمنفذ USB3.0 استنادًا إلى معالج Intel. على سبيل المثال ، مجموعة تطوير Squared Grove IoT أو MinnowBoard Turbot * . ستقوم Intel NUC بالخدعة أيضًا.


التجمع


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



الشكل 8. مزلاج لسان دافعي الربيع


قم بتثبيت الكاميرا في الأمام. نلصق LED في غطاء الكاميرا ، عند النقطة أعلاه i - لسبب ما ، تمكن من التحول إلى LED أخضر واحد. نقوم بإصلاحه باستخدام مسامير.



الرقم 9. الشكل الكاميرا المثبتة


بالنسبة إلى Intel Joule ، تحتاج إلى حقيبة ، لذلك في المحرر ثلاثي الأبعاد ، يمكنك رسم حالة بالحجم المطلوب مع نوافذ للموصلات.



الشكل 10. رسم حالة لإنتل جول


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



الشكل 11. رسم الغلاف


هناك مدرستان. أولاً ، عند تطوير طقم الجسم ، لم يؤخذ موصل توصيل LED في الاعتبار ، مما أدى إلى حقيقة ما يلي:


  1. لا يوجد ثقب للكابل / الموصل في العلبة واضطررت إلى حرق الفتحة بمكواة لحام ؛
  2. تحتوي العلبة المجمعة على ذيل طويل مع مصابيح LED في النهاية.

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


نموذج المدخن

أتذكر هنا صورة تأليف لي:

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



الشكل 12. الشكل الإلكترونيات المجمعة


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


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



الشكل 13. مربع الالكترونيات المجمعة في شكل مغلق


نضع الأمعاء داخل الجسم ونغلق ونمضي في تطوير جزء البرنامج.


طباعة ثلاثية الأبعاد.


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


جميع التفاصيل الأخرى من HIPS - IMHO هي أقل نزوة من ABS ، وعمليا لا رائحة عند طباعتها. التحذير الوحيد - حتى رفع درجة حرارة الجدول إلى 95 درجة ، تشوه التفاصيل على الطاولة. وفقًا للتعليمات ، يجب أن تكون درجة حرارة الطاولة حوالي 100 درجة ، ولكن من يقرأها حتى الآن جيدًا؟


جزء البرنامج


إعداد النظام


بادئ ذي بدء ، تحتاج إلى تحديث BIOS على اللوحة لتثبيت صورة نظام التشغيل الذي نحتاجه. استخدمنا هذه وهذه التعليمات من الوثائق الرسمية على موقع إنتل.


بعد ذلك ، بتوصيل الشاشة ولوحة المفاتيح باللوحة ، نقوم بتثبيت توزيع Ubuntu * Desktop 16.04 LTS الخاص لـ Intel Joule في وضع الرسم أو النص المعتاد. إذا كان الكمبيوتر يستخدم Intel NUC أو كمبيوتر آخر ، فستذهب صورة المخزون الخاصة بالنظام أيضًا.


بعد تثبيت نظام التشغيل باستخدام الوسائل العادية ، نتصل بالإنترنت من خلال شبكة Wi-Fi المدمجة. نظرًا لوجود موصل USB واحد فقط على اللوحة ونحتاج إليه لتوصيل الكاميرا ، فإننا نتصل باللوحة عبر ssh. الآن يمكننا تحرير المنفذ من لوحة المفاتيح وتوصيل Intel RealSense.


تثبيت الحزم والتبعيات.


أولاً ، قم بتثبيت Python 3.5.4 ، الذي تمت كتابة مشروعنا عليه. قم بتنزيل وحدة OpenCV Python وإنشاءها من التعليمات البرمجية المصدر ، نظرًا لأن وحدة Python OpenCV غير الرسمية على Intel Joule لا تعمل بشكل صحيح.


تثبيت أو تحديث تبعيات إضافية:


apt install -y --fix-missing build-essential cmake gfortran git wget curl graphicsmagick libgraphicsmagick1-dev libatlas-dev libavcodec-dev libavformat-dev libboost-all-dev libgtk2.0-dev libjpeg-dev liblapack-dev libswscale-dev pkg-config python3-dev python3-numpy software-properties-common zip git clone https://github.com/davisking/dlib.git /root/dlib; cd /root/dlib; mkdir build; cd build; cmake .. -DUSE_AVX_INSTRUCTIONS=1; cmake --build . ; cd .. ; python3 setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA pip3 install face_recognition 

نضع libmraa - هذه المكتبة مفيدة لنا للتواصل مع الصندوق. تعليمات التجميع المفصلة هنا .


أو يمكنك تثبيت ثنائيات جاهزة من PPA:


 sudo add-apt-repository ppa:mraa/mraa sudo apt-get update sudo apt-get install libmraa1 libmraa-dev libmraa-java python-mraa python3-mraa node-mraa mraa-tools 

بعد تثبيت كل التبعيات ، يمكننا التحقق من أن كل شيء يعمل بشكل صحيح. للقيام بذلك ، رفع VNC - vnc4server هو كل شيء ، قم بتشغيل عينة للعمل مع الكاميرا وتأكد من أن الكاميرا تعمل.


نقطة التحقق النهائية هي الاستيراد الصحيح لوحدة face_recognition . في الواقع ، هذه هي شبكتنا العصبية ResNet ، الموجهة نحو تحديد الأشخاص في الصورة. لذلك يبدو في العرض التوضيحي للمؤلف:



 import face_recognition 

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


من أجل الراحة ، أضفنا جميع المكتبات على شكل وحدات فرعية لمشروعنا. لتنزيلها ، قم بتحديث الوحدة الفرعية git --init --recursive من دليل المشروع.


العمل


 ./launcher.py 

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


للقيام بذلك ، قف أمام الصندوق - يضيء مؤشر LED الموجود على اللوحة الأمامية ، مشيرًا إلى وجود شخص معين في مجال رؤية الكاميرا.


نضغط على المفتاح في اتجاه تذكر الوجه ويظهر الإدخال المقابل في وحدة التحكم.



الآن ، إذا أغلقت الدرج ووقفت أمامه ، فسوف يتعرف النظام على وجهه ويفتح الباب بفرح.



ستظهر إدخالات وحدة التحكم في الوصول في وحدة التحكم.



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


يمكن حل هذا باستخدام قناة العمق - لا يتم استخدامه في الإصدار الحالي ، لأنه لم يكن من الممكن تشغيله بشكل مستقر ، وكان الوقت متأخرًا جدًا لإرسال مشكلة التوافق مع Intel Joule. قام مؤلف Face_recognition بقياس دقة 99.38٪ على العلامة المعيارية للوجوه في Wild Wild


الخلاصة


بالطبع ، يمكن تحسين هذا الدليل بشكل كبير ، ويتم توسيع وظائفه عدة مرات. على سبيل المثال ، يمكنك إضافة تسجيل الدخول الناجح وغير الناجح ، بالإضافة إلى الإدارة المريحة عبر واجهة الويب.


كان المبدأ الأساسي لبناء هذا الجهاز: "لقد أعمته عما كان عليه." أردنا فقط أن نظهر أنه يمكن صنع شيء مثير للاهتمام من المواد المرتجلة.


بفضل Dmitry ( dmitryvodop ) و Sergey للعمل على جزء البرنامج من المشروع.


يتم تحميل جميع النماذج بتنسيق * .stl والشفرة المصدر للبرنامج إلى GitHub بموجب ترخيص MIT.

Source: https://habr.com/ru/post/ar410193/


All Articles