विषयसूची:

RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर: 4 कदम
RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर: 4 कदम

वीडियो: RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर: 4 कदम

वीडियो: RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर: 4 कदम
वीडियो: Rati Pagdi (राती पागड़ी) | Piru Bhai Solanki | Bharti Silk | New Adivasi Song | #adivasigaana 2024, जुलाई
Anonim
Image
Image
RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर
RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर
RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर
RoboPhoto - जनता के लिए एक मोज़ेक जेनरेटर

रोबोफोटो एक रीयल-टाइम फोटोमोसाइक जनरेटर है

जब आप प्रतीक्षा करते हैं - रोबोफोटो अपने उपयोगकर्ताओं का एक फोटोमोज़ेक बनाता है।

इमेज-प्रोसेसिंग, फेस-रिकग्निशन और आर्टिफिशियल इंटेलिजेंस जैसी आधुनिक डिजिटल तकनीकों का उपयोग करके, रोबोफोटो वास्तविक समय में - अतीत में घूमने वाले और उसके बटन को दबाने वाले सभी आगंतुकों का एक फोटोमोज़ेक बनाने में सक्षम है।

हर बार बटन दबाने पर हाथ में लिए व्यक्ति का फोटो लिया जाता है। रोबोफोटो द्वारा तुरंत प्रत्येक फोटो को स्कैन और व्याख्यायित किया जाता है। रोबोफोटो सॉफ्टवेयर तब सभी व्यक्तिगत छवि को बदल देगा - ताकि यह एक बड़ी छवि का हिस्सा बन जाए, और फिर इस परिवर्तित तस्वीर को निर्देशांक के एक सेट के साथ लेबल किए गए स्टिकर पर प्रिंट करें जो उस बड़ी छवि के भीतर प्रत्येक तस्वीर के स्थान को इंगित करता है। फिर प्रत्येक आगंतुक को अपने स्वयं के फोटो-स्टिकर को एक बड़े कैनवास पर रखने के लिए कहा जाता है जिसमें केवल संबंधित ग्रिड होता है।

रोबोफोटो के संचालन के दौरान, एक नई छवि बनाई जाएगी। इन व्यक्तिगत तस्वीरों से बना एक फोटोमोज़ेक जो एक पूर्वनिर्धारित 'लक्ष्य-छवि' की नकल करेगा।

रोबोफोटो सिंगल-यूजर मोड में भी काम करता है। जब इस तरह से कॉन्फ़िगर किया जाता है, तो RoboPhoto एकल उपयोगकर्ता का पूर्ण मोज़ेक बनाता है।

आपूर्ति

  • विजुअल स्टूडियो और आईओटी पैकेज के साथ एक विंडोज 10 पीसी स्थापित
  • Microsoft Windows 10 IoT के साथ एक रास्पबेरी पाई 3B+ स्थापित
  • एक रंग लेबल प्रिंटर (भाई VC-500W)
  • उपयोगकर्ता इनपुट के लिए एक कुरसी पर एक बड़ा लाल पुशबटन लगाया गया है
  • उपयोगकर्ता-प्रतिक्रिया के लिए एक एचडीएमआई स्क्रीन
  • एक Microsoft Xbox Kinect v2 कैमरा - मेरे बेटे से चोरी हो गया- तस्वीरें लेने के लिए
  • एक नेटवर्क (वाईफाई, लैन)
  • एक लक्ष्य ग्रिड। कागज की एक शीट जिस पर एक ग्रिड छपा होता है - निर्देशांक से भरा होता है। इस पेपर ग्रिड का उपयोग कैनवास के रूप में किया जाता है जहां आगंतुक निर्दिष्ट निर्देशांक पर अपनी तस्वीर चिपका सकते हैं। और इसलिए अंततः वे एक साथ अंतिम परिणाम बनाएंगे: एक सुंदर नया फोटोमोज़ेक।

एक icrosoft Kinect 2.0 कैमरा का उपयोग किया गया था क्योंकि यह गहराई-छवियां ले सकता है। इस सुविधा का उपयोग प्रत्येक व्यक्तिगत फोटोग्राफ पर वर्चुअल ग्रीनस्क्रीन बनाने के लिए किया जाता है। इस तरह RoboPhoto प्रत्येक व्यक्तिगत तस्वीर पर पृष्ठभूमि को फिर से पेंट कर सकता है ताकि मोज़ेक-टू-बी के भीतर लक्ष्य टुकड़े के रंग से मिलान किया जा सके।

चरण 1: यह कैसे संचालित होता है

यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है
यह कैसे काम करता है

रोबोफोटो एक इंस्टालेशन है जिसमें एक बड़ा लाल बटन के साथ एक कुरसी, लेबल प्रिंटर से जुड़ा एक कंप्यूटर और यूजर इंटरफेस (स्क्रीन और बटन) को संभालने वाला एक छोटा IoT डिवाइस है। मेरे मामले में: एक रास्पबेरी 3B+।

  1. RoboPhoto एक सार्वजनिक सुलभ स्थान के भीतर संचालित होता है और (इसे चालू करने के बाद) स्वयं संचालित होता है। दौड़ते समय, गुजरने वाले आगंतुकों को रोबोफोटो द्वारा बड़े लाल बटन को दबाने के लिए प्रोत्साहित किया जाता है।
  2. जब भी उस बड़े लाल बटन को दबाया जाता है, RoboPhoto उस आगंतुक की तस्वीर लेगा, जिसने अभी-अभी Kinect कैमरे से बटन दबाया है।
  3. तब रोबोफोटो अपने उन्नत एआई का उपयोग करेगा। और छवि प्रसंस्करण कौशल प्रत्येक तस्वीर को बदलने के लिए मोज़ेक-टू-बी के भीतर एक टुकड़े से मेल खाने के लिए। इसे प्राप्त करने के लिए, RoboPhoto प्रत्येक फ़ोटो की पृष्ठभूमि को एक प्री-लोडेड छवि के भीतर लक्ष्य टुकड़े के रंग से मिलान करने के लिए फिर से रंग देता है। संपादन के बाद, RoboPhoto एक स्टिकर पर संपादित तस्वीर को निर्देशांक के एक सेट के साथ प्रिंट करता है जो मोज़ेक के भीतर इस एक स्टिकर के स्थान को इंगित करता है।

  4. फिर उपयोगकर्ता को मोज़ेक लक्ष्य-पत्रक पर स्टिकर लगाने के लिए कहा जाता है।
  5. और इस तरह - कई लोगों के आने के बाद - कला का एक नया टुकड़ा सामने आएगा। मोज़ेक बनाने के लिए आपको बहुत सारे अलग-अलग टुकड़ों की आवश्यकता होगी। मुझे 600 टुकड़े चलाने के अच्छे परिणाम मिले

रोबोफोटो सिंगल-यूजर-मोड में भी काम कर सकता है।

इस कॉन्फ़िगरेशन में RoboPhoto एक एकल उपयोगकर्ता से संपादित तस्वीरों का एक पूर्ण मोज़ेक बनाता है। बटन पर क्लिक करने के बाद, रोबोफोटो उपयोगकर्ता के लगभग> 600 अलग-अलग तस्वीरों को शूट करेगा, और फिर उन सभी को संपादित करके एक नया मोज़ेक बनाने के लिए व्यवस्थित करेगा, जिसे पूर्व-चयनित लक्ष्य-छवि के बाद बनाया गया है।

चरण 2: हार्डवेयर को असेंबल करना

हार्डवेयर को असेंबल करना
हार्डवेयर को असेंबल करना
हार्डवेयर को असेंबल करना
हार्डवेयर को असेंबल करना

जैसा कि ऊपर चित्र में दिखाया गया है, विन 10 पीसी किनेक्ट कैमरे से जुड़ा है। Kinect को USB 3.0 द्वारा कनेक्ट किया जाना चाहिए। जिस समय मैंने रोबोफोटो बनाया - उस समय यूएसबी 3.0 के साथ कोई रास्पबेरी पाई उपलब्ध नहीं थी।*

पीसी का उपयोग संलग्न लेबलप्रिंटर पर प्रिंटिंग को संभालने के लिए भी किया जाता है। मेरे मामले में एक भाई VC-500W। एक काफी सस्ता घरेलू रंग लेबलप्रिंटर। हालाँकि, यह बहुत धीमा है। यदि आप कर सकते हैं तो किसी पेशेवर का बेहतर उपयोग करें।

बिग रेड बटन रास्पबेरी पाई 3बी+ से जुड़ा है। केवल 4 तार GPIO से जुड़े होते हैं। इस इंस्ट्रक्शनल में किया जाने वाला यह एकमात्र सोल्डरिंग है। पीआई हमारे आगंतुक को एचडीएमआई पर 7 ''टीएफटी स्क्रीन के माध्यम से फीडबैक भी प्रदान करता है।

इसे साफ करने के लिए, मैंने एक लकड़ी का पेडस्टल बनाया जो इन सभी घटकों को रखता है।

कुरसी के बगल में, दीवार के सामने, लक्ष्य-ग्रिड और निर्देशांक युक्त कागज की एक शीट रखी गई है (A1/A2)। क्योंकि जिस लेबल प्रिंटर का मैंने अधिकतम उपयोग किया है, वह लेबलविड्थ = २, ५ सेमी, इस ग्रिड के सभी वर्ग २, ५ सेमी x २, ५ सेमी मापता है।

*आज, रास्पबेरी पाई4 यूएसबी3.0 की पेशकश करता है। इसके अलावा W10 को डिवाइस पर चलाया जा सकता है। तो सैद्धांतिक रूप से एक पीसी के उपयोग के बिना RoboPhoto v2.0 बनाना संभव होना चाहिए। शायद कोविड '19 मुझे इस तरह के एक निर्देश को जल्द ही प्रकाशित करने के लिए अपने दम पर पर्याप्त समय प्रदान करेगा।

चरण 3: कोड लिखना

कोड लिखना
कोड लिखना
कोड लिखना
कोड लिखना

कोड

रोबोफोटो को विजुअलस्टूडियो के साथ दो परियोजनाओं के समाधान के रूप में बनाया गया था:

  1. पीसी पर एक विंडोज़ फॉर्म एप्लिकेशन एक टीसीपी सर्वर की मेजबानी कर रहा है और किनेक्ट इनपुट को संभाल रहा है
  2. एक रास्पबेरी पाई 3बी+ बटन प्रेस इवेंट को संभालने के लिए यूडब्ल्यूपी के नेतृत्व वाले एप्लिकेशन (स्टार्टअप-ऐप के रूप में सेट) के भीतर एक टीसीपी क्लाइंट की मेजबानी करता है और उपयोगकर्ता को इसकी 7 '' टीएफटी स्क्रीन के माध्यम से फीडबैक प्रदान करता है।

ऊपर दिए गए आरेख में, मैंने आपको यह बताने की कोशिश की है कि मेरा सॉफ्ट क्या कर रहा है। इसे बनाने के लिए मैंने जो विजुअल स्टूडियो लिखा है (बिल्कुल 100% काम कर रहा है) रोबोफोटो समाधान इस निर्देश के साथ प्रदान किया गया है। हालाँकि मुझे इस फ़ाइल को डाउनलोड करने वाले सभी लोगों को चेतावनी देनी चाहिए: मैंने जो कोड लिखा है वह बहुत दूर है और अक्सर मेरे देव-पीसी से जुड़ा होता है। इसलिए मैं सभी को एक बेहतर, बेहतर और स्थिर समाधान बनाने के लिए प्रोत्साहित करता हूं।

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

नेटवर्क

उदाहरण कोड में, पीआई का कोड विजुअल स्टूडियो के माध्यम से मेरे नेटवर्क में आईपीएड्रेस पर तैनात किया गया है। आपको शायद इसे अपने हिसाब से बदलना चाहिए। ऐसा करने के लिए - विजुअल स्टूडियो में समाधान खोलने के बाद एआरएम क्लाइंट प्रोजेक्ट पर राइट-क्लिक करें, फिर गुण चुनें और रिमोट मशीन को अपने स्वयं के पीआई के आईपीएड्रेस में बदल दें। इसके अलावा आपको सर्वर (पीसी) पर विंडोज फ़ायरवॉल के भीतर पोर्ट 8123 पर क्लाइंट से सर्वर पर जाने वाले ट्रैफ़िक की अनुमति देने की आवश्यकता है। यदि आप विजुअल स्टूडियो से समाधान चलाते हैं, तो उसे आपको इसे यू के लिए करने के लिए कहना चाहिए।

कोडिंग करते समय मुझे W32 और UWP को ठीक से संवाद करने में बहुत परेशानी हुई। मैंने इसे क्लाइंट और सर्वर में दो अलग-अलग वर्गों का उपयोग करके काम किया है: resp MyEchoClient.cs (ARM क्लाइंट में) और ConnectionClient.cs (सर्वर में क्लाइंट कनेक्शन को संभालना)।

मोज़ेक फ़ाइलें - कस्टम वर्ग

RoboPhoto लक्ष्य-छवि की नकल करने के लिए मोज़ेक बनाता है। यह लक्ष्य-छवि, और सभी व्यक्तिगत तस्वीरें जो एक साथ मोज़ेक-टू-बी बनाती हैं, साथ ही साथ प्रत्येक रोबोफोटो के कुछ अन्य गुण फाइल सिस्टम में फाइलों में संग्रहीत होते हैं। मेरे साथ कोड निर्देशिका c:\tmp\MosaicBuilder में फ़ाइलों और फ़ोल्डरों के एक सेट का उपयोग करता है। इस फ़ोल्डर के भीतर, कोड सभी सबफ़ोल्डर्स को एक फ़ोल्डरनाम के साथ पढ़ेगा जो [prj_] से मोज़ेक प्रोजेक्ट फ़ोल्डर के रूप में शुरू होता है। इन सभी [prj_] फ़ोल्डरों में यह [_projectdata.txt] नाम की एक प्रोजेक्ट फ़ाइल खोलने का प्रयास करेगा जिसमें प्रत्येक प्रोजेक्ट के लिए आवश्यक सभी जानकारी होगी।

इस तरह की एक प्रोजेक्टफाइल में निम्न शामिल हैं:

  1. इस परियोजना के लक्ष्य-छवि का पूरा पथ और फ़ाइल नाम
  2. पूरा पथ जहां इस परियोजना की व्यक्तिगत तस्वीरें (टुकड़े) संग्रहीत हैं
  3. मोज़ेक में जितने कॉलम होंगे
  4. मोज़ेक में शामिल पंक्तियों की संख्या

ज़िप फ़ाइल में उदाहरण प्रोजेक्ट दिए गए हैं: \slnBBMosaic2\wfMosaicServerKinect\bin\x86\Debug\prj_xxx

C# सर्वर कोड में, सभी मोज़ेक हैंडलिंग एक कस्टम वर्ग के माध्यम से की जाती है: BBMosaicProject.cs

माइक्रोसॉफ्ट किनेक्ट v2.0 - ग्रीनस्क्रीन

सिर्फ तस्वीरें लेने के लिए कोई भी कैमरा करेगा। लेकिन मैंने रंगीन छवियों और गहराई छवियों को संयोजित करने के लिए Microsoft Kinect v2.0 का उपयोग किया है। इस तरह, एक ग्रीनस्क्रीन प्रभाव बनाया जा सकता है। Kinect से प्राप्त सभी रंगीन छवियों की पृष्ठभूमि को एक समान हरी सतह (BBBackgroundRemovalTool.cs) से बदल दिया जाएगा।

सर्वरप्रोजेक्ट में Microsoft. Kinect का एक संदर्भ जोड़ा गया था।

ईएमजीयू

क्योंकि हमें यह सुनिश्चित करने की आवश्यकता है कि बटन दबाए जाने पर ली गई तस्वीर पर कोई व्यक्ति है, रोबोफोटो में चेहरे की पहचान क्षमताओं को जोड़ा गया था।

www.nuget.org/packages/Emgu. CV/3.4.3.3016

केवल जब कोई व्यक्ति चित्र के भीतर होता है, तो इस चित्र में हरे रंग की स्क्रीन को एक समान रंगीन सतह से बदल दिया जाएगा, मोज़ेक-टू-बी में लक्ष्य-टुकड़े के औसत रंग के बराबर रंग-कोड के साथ यह चित्र बन जाएगा।

चरण 4: धन्यवाद

धन्यवाद
धन्यवाद

मेरे इंस्ट्रक्शनल को पढ़ने के लिए धन्यवाद। यह मेरा पहला था। मुझे उम्मीद है आपने इसका आनंद लिया।

सिफारिश की: