جدول المحتويات:
فيديو: RoboPhoto - مولد فسيفساء للجمهور: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
RoboPhoto هو منشئ الفسيفساء الضوئية في الوقت الفعلي
ينشئ RoboPhoto صورة مجمعة لمستخدميها - أثناء الانتظار.
باستخدام التقنيات الرقمية الحديثة مثل معالجة الصور والتعرف على الوجوه والذكاء الاصطناعي ، فإن RoboPhoto قادر على إنشاء فسيفساء ضوئية لجميع الزوار الذين يمشون في الماضي ويضغطون على زرها - في الوقت الفعلي.
في كل مرة يتم فيها الضغط على الزر ، يتم التقاط صورة للشخص الموجود في متناول اليد. يتم مسح كل صورة ضوئيًا وتفسيرها على الفور بواسطة RoboPhoto. سيقوم برنامج RoboPhoto بعد ذلك بتغيير كل الصور الفردية - بحيث تصبح جزءًا من صورة أكبر ، ثم يطبع هذه الصورة المعدلة على ملصق مُسمى بمجموعة من الإحداثيات التي تشير إلى موقع كل صورة داخل تلك الصورة الأكبر. ثم يُطلب من كل زائر وضع ملصق الصورة الخاص به على لوحة قماشية أكبر تحتوي فقط على شبكة مقابلة.
أثناء تشغيل RoboPhoto ، سيتم إنشاء صورة جديدة. الفسيفساء الضوئية المكونة من هذه الصور الفردية التي ستحاكي "صورة الهدف" المحددة مسبقًا.
يعمل RoboPhoto أيضًا في وضع المستخدم الفردي. عند تكوينه بهذه الطريقة ، يقوم RoboPhoto بإنشاء فسيفساء كاملة لمستخدم واحد.
اللوازم
- جهاز كمبيوتر يعمل بنظام Windows 10 مثبت عليه حزم Visual Studio و IoT
- تم تثبيت Raspberry Pi 3B + مع Microsoft Windows 10 IoT
- طابعة ملصقات ملونة (Brother VC-500W)
- زر انضغاطي أحمر كبير مثبت على قاعدة لإدخال المستخدم
- شاشة HDMI لتعليقات المستخدمين
- كاميرا Microsoft Xbox Kinect v2 - سُرقت من ابني - لالتقاط الصور
- شبكة (Wifi ، LAN)
- الشبكة المستهدفة. ورقة بها شبكة مطبوعة عليها - مليئة بالإحداثيات. تُستخدم شبكة الورق هذه كقماش حيث يمكن للزوار لصق صورهم على الإحداثيات المحددة. وهكذا في النهاية سيشكلون معًا النتيجة النهائية: فسيفساء ضوئية جديدة جميلة.
تم استخدام كاميرا icrosoft Kinect 2.0 لأنها يمكن أن تلتقط صورًا عميقة. تُستخدم هذه الميزة لإنشاء شاشة خضراء افتراضية على كل مصور على حدة. وبهذه الطريقة ، يمكن لـ RoboPhoto إعادة رسم الخلفية على كل صورة على حدة لتتناسب مع لون القطعة المستهدفة داخل الفسيفساء.
الخطوة 1: كيف يعمل
RoboPhoto عبارة عن تثبيت يحتوي على قاعدة مع زر أحمر كبير عليها ، وجهاز كمبيوتر متصل بطابعة ملصقات ، وجهاز إنترنت الأشياء صغير يتعامل مع واجهة المستخدم (الشاشة والزر). في حالتي: RaspBerry 3B +.
- يعمل RoboPhoto في موقع يمكن الوصول إليه بشكل عام وهو يعمل (بعد تشغيله) ذاتيًا. عند الجري ، يشجع RoboPhoto الزائرين المارين على الضغط على الزر الأحمر الكبير.
- عندما يتم الضغط على هذا الزر الأحمر الكبير ، ستلتقط RoboPhoto صورة للزائر الذي ضغط للتو على الزر بكاميرا Kinect.
-
ثم سيستخدم RoboPhoto ذكاءه الصناعي المتقدم. ومهارات معالجة الصور لتغيير كل صورة لتتناسب مع قطعة داخل الفسيفساء. لتحقيق ذلك ، يعيد RoboPhoto طلاء خلفية كل صورة لمطابقة لون القطعة المستهدفة داخل صورة محملة مسبقًا. بعد التحرير ، يطبع RoboPhoto الصورة المحررة على ملصق مع مجموعة من الإحداثيات التي تحدد موقع هذا الملصق داخل الفسيفساء.
- ثم يُطلب من المستخدم وضع الملصق على ورقة الفسيفساء المستهدفة.
- وبالتالي - بعد زيارة العديد من الناس - ستظهر قطعة فنية جديدة. لإنشاء فسيفساء ، ستحتاج إلى الكثير من القطع الفردية ، لقد حصلت على نتائج جيدة من 600 قطعة
يمكن أن يعمل RoboPhoto أيضًا في وضع المستخدم الفردي.
في هذا التكوين ، ينشئ RoboPhoto فسيفساء كاملة من الصور التي تم تحريرها من Oouf لمستخدم واحد. بعد الضغط على الزر ، ستلتقط RoboPhoto حوالي 600 صورة مختلفة للمستخدم ، ثم تقوم بتحريرها وترتيبها جميعًا لتشكيل فسيفساء واحدة جديدة ، تم إنشاؤها بعد صورة مستهدفة محددة مسبقًا.
الخطوة 2: تجميع الأجهزة
كما هو موضح في الصورة أعلاه ، فإن جهاز كمبيوتر Win 10 متصل بكاميرا Kinect. يجب توصيل Kinect عن طريق USB 3.0. في الوقت الذي صنعت فيه RoboPhoto - لم يكن هناك Raspberry Pi مع USB 3.0 متاحًا. *
يستخدم الكمبيوتر أيضًا للتعامل مع الطباعة على طابعة الملصقات المرفقة. في حالتي ، فإن Brother VC-500W. طابعة ملصقات ملونة منزلية رخيصة إلى حد ما. ومع ذلك ، فهي بطيئة للغاية. من الأفضل استخدام محترف إذا استطعت.
الزر الأحمر الكبير متصل بـ Raspberry Pi 3B +. يتم توصيل 4 أسلاك فقط بجهاز GPIO. هذا هو اللحام الوحيد المطلوب في هذا Instructable. يوفر Pi أيضًا تغذية رجعية لزائرنا عن طريق شاشة TFT مقاس 7 بوصات عبر HDMI.
لترتيبها ، قمت ببناء قاعدة خشبية تحمل كل هذه المكونات.
بجانب القاعدة ، مقابل الحائط ، يتم وضع ورقة تحتوي على الشبكة المستهدفة والإحداثيات (A1 / A2). نظرًا لأن طابعة الملصقات التي استخدمتها يبلغ الحد الأقصى لعرض التسمية = 2 ، 5 سم ، فإن جميع المربعات في هذه الشبكة تقيس 2 ، 5 سم × 2 ، 5 سم.
* اليوم ، يقدم Raspberry Pi4 USB3.0. يمكن تشغيل Alse W10 على الجهاز. لذلك يجب أن يكون من الممكن نظريًا إنشاء RoboPhoto v2.0 بدون استخدام جهاز كمبيوتر. ربما سيوفر لي Covid '19 وقتًا كافيًا بمفردي لنشر مثل هذا Instructable قريبًا.
الخطوة الثالثة: كتابة الكود
الشفرة
تم إنشاء RoboPhoto باستخدام VisualStudio كحل مع مشروعين:
- يستضيف تطبيق Windows Forms على جهاز الكمبيوتر خادم TCP ويتعامل مع إدخال Kinect
- يستضيف Raspberry Pi 3B + عميل TCP داخل تطبيق برئاسة UWP (تم تعيينه كتطبيق لبدء التشغيل) للتعامل مع أحداث الضغط على الأزرار وتزويد المستخدم بتعليقات من خلال شاشة TFT مقاس 7 بوصات.
في الرسم البياني أعلاه ، حاولت أن أعطيك فكرة عما يفعله برنامجي الناعم. تم توفير Visual Studio الذي كتبته لإنشاء هذا الحل RoboPhoto (يعمل بنسبة 100 ٪ تمامًا) مع Instructable. ومع ذلك ، يجب أن أحذر الجميع من تنزيل هذا الملف: الكود الذي كتبته بعيد كل البعد عن الجمال وغالبًا ما يكون مرتبطًا بجهاز الكمبيوتر الشخصي. لذلك أشجع الجميع على إيجاد حل أفضل وأفضل وأكثر ثباتًا.
1drv.ms/u/s!Aq7eBym1bHDKkKCigYzt8az9WEYOOg…
شبكة الاتصال
في رمز المثال ، يتم نشر كود Pi من خلال Visual Studio إلى عنوان IP في شبكتي. ربما يجب عليك تغيير هذا ليناسب ما يناسبك. للقيام بذلك - انقر بزر الماوس الأيمن فوق مشروع عميل ARM بعد فتح الحل في Visual Studio ، ثم اختر الخصائص وقم بإدخال قيمة الجهاز البعيد إلى عنوان IP الخاص بـ Pi الخاص بك. تحتاج أيضًا إلى السماح بمرور حركة المرور من عميل إلى خادم على المنفذ 8123 داخل جدار حماية Windows على الخادم (الكمبيوتر الشخصي). إذا قمت بتشغيل الحل من Visual Studio ، فيجب أن يطلب منك القيام بذلك من أجل U.
أثناء الترميز ، واجهت الكثير من المشاكل في جعل W32 & UWP يتواصلان بشكل صحيح. لقد نجحت في العمل باستخدام فئتين منفصلتين في العميل والخادم: resp MyEchoClient.cs (في عميل ARM) و ConnectionClient.cs (تعليق اتصالات العميل في الخادم).
ملفات الفسيفساء - فئة مخصصة
ينشئ RoboPhoto فسيفساء لتقليد الصورة المستهدفة. يتم تخزين هذه الصورة المستهدفة وجميع الصور الفردية التي تشكل معًا صورة الفسيفساء ، بالإضافة إلى بعض الخصائص الأخرى لكل صورة RoboPhoto في ملفات في نظام ملفات. يستخدم الكود المصاحب الخاص بي مجموعة من الملفات والمجلدات في الدليل c: / tmp / MosaicBuilder. داخل هذا المجلد ، ستقرأ التعليمات البرمجية جميع المجلدات الفرعية باسم مجلد يبدأ بـ [prj_] كمجلدات مشروع فسيفساء. ضمن كل مجلدات [prj_] هذه ، سيحاول فتح ملف مشروع باسم [_projectdata.txt] يحتوي على جميع المعلومات المطلوبة لكل مشروع.
يتكون ملف المشروع من:
- المسار الكامل واسم الملف للصورة المستهدفة لهذا المشروع
- المسار الكامل حيث يتم تخزين الصور الفردية (قطع) لهذا المشروع
- عدد الأعمدة التي ستحتويها الفسيفساء
- عدد الصفوف التي ستحتويها الفسيفساء
يتم توفير أمثلة على المشاريع في الملف المضغوط: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
في كود خادم C # ، تتم جميع عمليات معالجة الفسيفساء عبر فئة مخصصة: BBMosaicProject.cs
Microsoft Kinect v2.0 - Greenscreen
لالتقاط صور فقط ، ستفعل أي كاميرا. لكنني استخدمت Microsoft Kinect v2.0 لدمج الصور الملونة والصور العميقة. بهذه الطريقة ، يمكن إنشاء تأثير الشاشة الخضراء. سيتم استبدال الخلفية في جميع الصور الملونة الواردة من Kinect بسطح أخضر موحد (BBBackgroundRemovalTool.cs).
تمت إضافة مرجع إلى Microsoft. Kinect إلى مشروع الخادم.
EMGU
نظرًا لأننا نحتاج إلى التأكد من وجود شخص ما في الصورة التي تم التقاطها عند الضغط على الزر ، تمت إضافة إمكانات التعرف على الوجه إلى RoboPhoto.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
فقط عندما يكون الشخص داخل الصورة ، سيتم استبدال الشاشة الخضراء في هذه الصورة بسطح ملون موحد ، مع رموز ألوان مساوية للون متوسط للقطعة المستهدفة في الفسيفساء التي ستصبح هذه الصورة.
الخطوة 4: شكرا لك
شكرا لك على قراءة Instructable الخاص بي. كان هذا هو الأول. اتمنى ان تكون قد استمتعت به.
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0