Computer >> कंप्यूटर >  >> प्रणाली >> Linux

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

तंत्रिका नेटवर्क बहुत कुछ कर सकते हैं। वे छवियों की व्याख्या कर सकते हैं, हमारी आवाज़ों को समझ सकते हैं और बातचीत का अनुवाद कर सकते हैं। लेकिन क्या आप जानते हैं कि वे पेंट भी कर सकते हैं?

हाल ही में एक शोध पत्र ("कलात्मक शैली का एक तंत्रिका एल्गोरिथम" शीर्षक) ने कुछ आकर्षक दृश्य उदाहरणों के साथ ऑनलाइन चर्चा की झड़ी लगा दी है। अनिवार्य रूप से, कागज एक गहरी तंत्रिका नेटवर्क को छवि संरचना से कलात्मक शैली को अलग करने के लिए प्रशिक्षित करने के लिए एक तकनीक पर चर्चा करता है, और एक छवि की शैली को दूसरे की संरचना के साथ जोड़ता है। इन सबका नतीजा यह है कि आप तस्वीरों को "तंत्रिका पेंटिंग" में बदलने के लिए एक विशाल तंत्रिका नेटवर्क को प्रशिक्षित कर सकते हैं, जो ऐसा लगता है जैसे उन्हें प्रसिद्ध कलाकारों - "डिजिटल नकली" द्वारा चित्रित किया गया था।

यहाँ लेख से कुछ उदाहरण दिए गए हैं। पहली छवि मूल है। बाद की छवियां जनरेट किए गए परिणाम हैं,  जिस पेंटिंग से शैली का नमूना लिया गया था, उसे लघु रूप में दिखाया गया है।

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

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

आज, मैं आपको यह बताने जा रहा हूं कि यह कैसे करना है, और आपको अपने कुछ परिणाम दिखाऊंगा। आप इसे हमारे डीपड्रीम ट्यूटोरियल के ढीले सीक्वल के रूप में सोच सकते हैं। यह थोड़ा जटिल है, लेकिन कोई भी व्यक्ति जिसके पास Linux मशीन है, उसका अनुसरण कर सकता है -- कोई कोडिंग अनुभव की आवश्यकता नहीं है।

सॉफ़्टवेयर सेट अप करना

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

सबसे पहले, सुनिश्चित करें कि आपके पास उबंटू . की एक अद्यतन प्रति है (14.04 जो मैंने इस्तेमाल किया है)। आपके पास कम से कम कुछ अतिरिक्त गीगा हार्ड ड्राइव स्थान होना चाहिए। अधिक जानकारी के लिए, विंडोज के साथ-साथ ड्यूल-बूटिंग उबंटू पर हमारा ट्यूटोरियल देखें। आपको रूट विशेषाधिकारों की भी आवश्यकता होगी, इसलिए सुनिश्चित करें कि आप आगे बढ़ने से पहले ऐसा करते हैं।

मूल उपकरण

बल्ले का अधिकार, यह एक ओपन-सोर्स प्रोजेक्ट है, इसलिए हम Git चाहते हैं स्थापित। संस्करण नियंत्रण सॉफ्टवेयर के लिए Git स्वर्ण मानक है। लगभग हर ओपन सोर्स प्रोजेक्ट के बारे में जानने लायक जीथब पर होस्ट किया जाता है।

Git को डाउनलोड और इंस्टॉल करने के लिए, बस एक टर्मिनल खोलें और टाइप करें "

sudo apt-get install git

" और इंस्टॉलर की मांगों से सहमत हैं।

अगला:हम कुछ बुनियादी टूल सेट अप करने जा रहे हैं सॉफ़्टवेयर को काम करने के लिए आवश्यक है।

सबसे पहले, लुआ स्थापित करें। यह वह भाषा है जिसमें टूल लिखा गया है। यह बहुत आसान है। बस टाइप करें "

sudo apt-get install lua5.2

" और स्थापना प्रक्रिया का पालन करें।

दूसरा, हम Luarocks प्राप्त करने जा रहे हैं। यह वह उपकरण है जो अन्य उपकरणों को स्थापित करना आसान बनाता है (क्या आपको Linux पसंद नहीं है?) इसके लिए, टाइप करें "

sudo apt-get install luarocks

" और स्थापना चरणों का पालन करें।

तीसरा, हम लुजित को स्थापित करने जा रहे हैं। यह लुआ के लिए समय-समय पर संकलन है जो हमारे जीवन को थोड़ा आसान बना देगा। बस टाइप करें "

sudo apt-get install luajit

।"

अब तक बहुत अच्छा।

फ्रेमवर्क

इसके बाद, हम मशाल, एक वैज्ञानिक कंप्यूटिंग और मशीन लर्निंग फ्रेमवर्क स्थापित करने जा रहे हैं जो एप्लिकेशन की रीढ़ है। दुर्भाग्य से, इसे apt-get (मानक Ubuntu पैकेज मैनेजर) का उपयोग करके इंस्टॉल नहीं किया जा सकता है।

सौभाग्य से, उनके पास एक-पंक्ति इंस्टॉलर है जो कुछ कमांड-लाइन जादू का उपयोग करता है। अपने टर्मिनल पर लौटें और "

. दर्ज करें
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash

".

जब आपका काम हो जाए, तो "

. टाइप करें
luajit -ltorch

". यह मशाल इंटरफ़ेस लाएगा और सत्यापित करेगा कि सब कुछ सही ढंग से स्थापित किया गया था।

उसमें से बाहर निकलें।

अब हम loadcaffe . स्थापित करने जा रहे हैं -- एक तंत्रिका-नेटवर्क विशिष्ट पैकेज। "

. लिखकर इसकी एकमात्र निर्भरता स्थापित करें
sudo apt-get install libprotobuf-dev protobuf-compiler

". फिर आप "

. का उपयोग करके पैकेज को स्वयं स्थापित कर सकते हैं
sudo luarocks install loadcaffe"

डबल चेकिंग डिपेंडेंसीज

अंत में, हम यह सुनिश्चित करने के लिए कि सब कुछ सुचारू रूप से चल रहा है, हम कुछ सामानों को पहले से ही अपडेट करने जा रहे हैं।

टाइप करें "

sudo luarocks install image

" यह सुनिश्चित करने के लिए कि आपका इमेज पैकेज अप टू डेट है। इसके बाद, "

. दर्ज करें
luarocks install nn

" जो आपके 'एनएन' पैकेज के लिए भी ऐसा ही करेगा।

डीप स्टाइल इंस्टॉल करना

ठीक है! इस बिंदु पर, हम वास्तव में स्वयं सॉफ़्टवेयर स्थापित करने के लिए तैयार हैं। स्वच्छता के लिए, अपने होम डायरेक्टरी ('mkdir DeepStyle') में एक नया फोल्डर बनाएं। फिर, "

. का उपयोग करके इसे दर्ज करें
cd Deepstyle

". अब टाइप करें"

sudo git clone https://github.com/jcjohnson/neural-style.git".

अगला, हमें मॉडल डाउनलोड करना होगा। एक कप कॉफी या कुछ और बनाएं, इसमें थोड़ा समय लगेगा। टर्मिनल पर वापस जाएं, और "

. टाइप करें
sudo sh models/download_models.sh

"। यह एक लंबी, विस्तृत डाउनलोड प्रक्रिया शुरू करेगा। यदि यह अनुमति त्रुटियों के कारण विफल हो जाता है, तो chmod का उपयोग करके संबंधित फ़ोल्डरों पर स्वयं को पढ़ने-लिखने की अनुमति देने का प्रयास करें।

डीप स्टाइल का उपयोग करना

ठीक है, हमारा जाना अच्छा है। सॉफ़्टवेयर का उपयोग करना बहुत आसान है।

सुनिश्चित करें कि आप DeepStyle/neural-style निर्देशिका . में हैं टर्मिनल में। अब, आपको काम करने के लिए कुछ छवियों की आवश्यकता होगी। उन्हें इंटरनेट से डाउनलोड करें (या कुछ भी), फिर उन्हें DeepStyle/neural-style फ़ोल्डर में कॉपी करें फ़ाइल ब्राउज़र का उपयोग करना।

अब आप अलग-अलग छवियों को संसाधित करने के लिए कमांड लाइन का उपयोग कर सकते हैं। प्रारूप बहुत सीधा है:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(जाहिर है, आपको अपनी फाइलों के नाम के साथ ALL CAPS के हिस्सों को बदलना होगा)।

इससे तंत्रिका नेटवर्क शुरू हो जाएगा। यह लगभग एक घंटे तक चलेगा, इसके समाप्त होने तक हर कुछ मिनटों में नई आंशिक रूप से परिवर्तित छवियों को बाहर थूक देगा।

-gpu -1

ध्वज इसे आपके GPU तक पहुँचने का प्रयास करने से रोकता है।

कई घंटों की कोशिश के बाद (और ऑपरेटिंग सिस्टम को कई बार ब्रिक करना) मैं अपने GPU (एक NVIDIA GTX 970) के साथ अच्छा खेलने के लिए Ubuntu और CUDA प्राप्त करने में असमर्थ था। यदि आपके पास इसके साथ अधिक भाग्य है, तो आप CUDA और cudann.torch इंस्टॉल करना चाहेंगे (अधिक जानकारी के लिए जीथब रेपो देखें)। अगर नहीं, तो कोई बात नहीं -- यह अब भी आपके CPU का उपयोग करके काम करेगा; यह बस थोड़ा धीमा होगा।

अगर आपको यह सब काम करने में कोई समस्या है, तो बस मुझसे टिप्पणियों में पूछें, और मैं आपकी मदद करने की पूरी कोशिश करूंगा।

परिणाम

यहां कुछ छवियां हैं जो मैंने पिछले कुछ दिनों में बनाई हैं। परिणाम मिश्रित हैं, लेकिन उनमें से कई बहुत प्रभावशाली हैं।

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

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

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

यह मेरे पसंदीदा कलाकारों में से एक, चार्ल्स डेमुथ के सौजन्य से आया है (देखें:एक नए चर्च की धूप, और सोने में चित्र 5)। दिलचस्प बात यह है कि डेमुथ टीम किले 2 की कला के लिए प्राथमिक दृश्य प्रेरणाओं में से एक है, जैसा कि आप शैली की छवि से देख सकते हैं।

मैंने इसे जर्सी सिटी की एक छवि खिलाई जो मुझे विकिमीडिया पर मिली। परिणाम हैं... बहुत अच्छा। इसने डेमुथ की शैली की कोणीयता पर ध्यान नहीं दिया, लेकिन इसने निश्चित रूप से नरम, बनावट वाले रूप और रंग पैलेट को उठाया।

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

यह एक सिंथेटिक O'Keeffe उत्पन्न करने का एक प्रयास है, जिसमें मुझे मिले कुछ फूलों की काफी सांसारिक तस्वीर का उपयोग किया गया है। परिणाम, स्पष्ट रूप से, शानदार हैं। सौंदर्य की दृष्टि से, यह मेरे पसंदीदा परिणामों में से एक है। O'Keeffe के रंग और आकार की समृद्धि स्पष्ट रूप से सामने आती है। फूलों की पंखुड़ियों के स्तरित किनारे पृष्ठभूमि में पत्तियों के किनारे बन जाते हैं। फूल स्वयं रंगों में घुल जाते हैं, लगभग अमूर्त हो जाते हैं।

यह एक अच्छी पेंटिंग होगी अगर कोई इंसान ऐसा करे। मैं इसके एक उच्च रिज़ॉल्यूशन संस्करण को प्रस्तुत करने और इसे तैयार करने के लिए कुछ दिन बिताने का बहुत लुत्फ उठा रहा हूं।

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

यहाँ मेरी दोस्त शैनन हैलोवीन पोशाक में पिकासो प्रिंट के माध्यम से है। दिलचस्प बात यह है कि डिवाइस ने उसके चेहरे के निचले हिस्से को सफेद रंग में रंगना चुना (पिकासो के टुकड़े के रंग लेआउट के समान)। मुझे यकीन नहीं है कि यह एक संयोग था या नहीं, लेकिन परिणाम चौंकाने वाले हैं। ऐसा भी लगता है कि उसने शैनन के बायीं ओर के बालों की सही पहचान की है, और स्टाइल इमेज में बालों से रंग और लाइनवर्क का उपयोग करके इसे फिर से खींचा है। उसकी टोपी के लिए ठीक वैसा ही।

यह उन टुकड़ों में से एक है जहां तकनीक की सीमाएं स्पष्ट होने लगती हैं। यदि पिकासो वास्तव में शैनन को चित्रित कर रहे होते, तो वह उसके चेहरे की संरचना को फेंक देते और अपने इच्छित प्रभाव को प्राप्त करने के लिए सुविधाओं को तिरछा कर देते। यह प्रणाली उन प्रकार की उच्च स्तरीय अवधारणाओं को नहीं समझती है, और शैली के केवल सतही पहलुओं, जैसे गहरे, कोणीय रेखाओं और रंग पैलेट की नकल करने में सक्षम है।

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

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

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

डीप स्टाइल और उबंटू के साथ अपनी खुद की न्यूरल पेंटिंग बनाएं

पूर्ण समाधान के लिए यहां क्लिक करें।

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

प्रौद्योगिकी

इसके कुछ परिणाम अत्यंत सम्मोहक हैं, हालाँकि तकनीक की स्पष्ट सीमाएँ हैं। कुछ छवियों में घटिया रचना है, और पिकासो जैसे अधिक अमूर्त कलाकारों के साथ सिस्टम को कठिनाई होती है - जो अपनी विषय वस्तु को विकृत करना पसंद करते हैं, इसकी विशेषताओं को बिखेरते हैं। एल्गोरिदम अपनी कोणीय रेखाओं और रंगों को टकराता है, लेकिन अभी भी छवि के पिक्सेल मूल्यों का गुलाम है। इसमें यह समझ नहीं है कि आपको स्रोत सामग्री से बहुत दूर जाने की आवश्यकता होगी।

इस सब के बारे में मुझे जो उत्साहित करता है वह यह है कि मुझे नहीं लगता कि ये सीमाएं मौलिक हैं।

यहां इस्तेमाल किया जा रहा दृष्टिकोण -- एक छवि पर एक नेटवर्क को प्रशिक्षित करना और दूसरे के निर्माण के लिए इसका उपयोग करना -- मूल रूप से एक हैक की तरह है। यह नेटवर्क को काम करने के लिए बहुत कम डेटा देता है। इस एप्लिकेशन का एक अधिक उन्नत संस्करण एक ऐसे नेटवर्क का उपयोग करेगा जिसमें कई चित्रों की जानकारी हो, और शायद वास्तविक छवियां भी हों, ताकि इसे उस छवि के बारे में पर्याप्त संदर्भ दिया जा सके जिसे वह "पेंट" करने का प्रयास कर रहा है।

शैली की गहरी समझ व्यापक संदर्भ में ही मौजूद हो सकती है। आप इसे एक छवि से प्राप्त नहीं कर सकते। एक आर्किटेक्चर को डिजाइन करना जो सिस्टम को व्यापक डेटा तक पहुंच प्रदान करता है, उसे छवि की अधिक "मानव जैसी" समझ प्राप्त करने की अनुमति मिल सकती है, और कलाकार वास्तविक दुनिया के विभिन्न तत्वों का प्रतिनिधित्व कैसे करते हैं। ऐसा नेटवर्क ऐसी छवियां बनाने में सक्षम हो सकता है जो अधिक सारगर्भित हों और जिनकी संरचना बेहतर हो। इस तरह के एल्गोरिदम एक अच्छा खिलौना (इस तरह) नहीं रहेंगे और वास्तविक, मूल कला का उत्पादन करने का एक तरीका बन जाएंगे।

जो कुछ मायनों में बहुत ही अजीबोगरीब सोच है।

अपनी खुद की इमेज बनाना

यदि आपको निराशाजनक परिणाम मिलता है, तो आप अधिक ठोस परिणाम प्राप्त करने के लिए विकल्पों के साथ थोड़ा खेल सकते हैं। पूरी सूची जीथब पर है। महत्वपूर्ण हैं

  • -content_weight -value सामग्री पुनर्निर्माण अवधि को कितना भारित करना है। डिफ़ॉल्ट 5e0 है।
  • -style_weight -value: स्टाइल इमेज को कितना वजन देना है। डिफ़ॉल्ट 1e2 है।
  • -style_scale - मान: सिस्टम को कितने बड़े छवि पैच का विश्लेषण करना चाहिए (बड़ा अधिक सार बन जाता है)। डिफ़ॉल्ट 1.0 है।

एक बार जब आप सब कुछ अपनी संतुष्टि के लिए काम कर लेते हैं, तो कृपया टिप्पणियों में अपनी सबसे दिलचस्प छवियां पोस्ट करें। मुझे वास्तव में यह देखने में दिलचस्पी है कि आप लोग क्या लेकर आते हैं।

<छोटा>छवि क्रेडिट:शटरस्टॉक के माध्यम से मानव मस्तिष्क चित्रकार


  1. एपिक्रोम के साथ अपना खुद का ऑल-इन-वन संदेश केंद्र कैसे बनाएं

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

  1. मंगलवार टिप्स:Plex सर्वर के साथ अपना खुद का Spotify बनाएं

    जब से Apple ने खरीदा और लाला को मार डाला, मैंने अंतर को बंद करने के लिए Spotify और अन्य स्ट्रीमिंग सेवाओं का उपयोग किया है। लेकिन मेरे पास बहुत सारा संगीत है जो कहीं भी स्ट्रीमिंग के लिए उपलब्ध नहीं है (जब तक कि आप खराब एन्कोडेड YouTube संस्करणों की गणना नहीं करते हैं) जिसे मैं अपने सभी उपकरणों पर स

  1. उत्पाद निर्माता के साथ अपना स्वयं का डिस्ट्रो बनाएं

    एक बार फिर हम कीवी के बारे में बात करने जा रहे हैं। कीवी एक इमेजिंग सिस्टम है, जो अधिक से अधिक ओपनएसयूएसई बिल्ड सर्विस का एक हिस्सा है, एक जटिल, सर्वव्यापी इमेजिंग/वर्चुअलाइजेशन समाधान है जो आपको किसी भी प्रकार की ऑपरेटिंग सिस्टम इमेज बनाने की अनुमति देता है, जो आपके आधार पर प्रारूपों की एक विशाल श्