নিউরাল নেটওয়ার্ক অনেক কিছু করতে পারে। তারা ছবি ব্যাখ্যা করতে পারে, আমাদের ভয়েস বুঝতে পারে এবং কথোপকথন অনুবাদ করতে পারে। কিন্তু আপনি কি জানেন যে তারাও আঁকতে পারে?
একটি সাম্প্রতিক গবেষণা পত্র ("A Neural Algorithm of Artistic Style" শিরোনাম) কিছু আকর্ষণীয় দৃশ্য উদাহরণ সহ অনলাইন আলোচনার ঝড় তুলেছে৷ মূলত, কাগজটি চিত্র কাঠামো থেকে শৈল্পিক শৈলীকে আলাদা করার জন্য একটি গভীর নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দেওয়ার একটি কৌশল নিয়ে আলোচনা করে এবং একটি চিত্রের শৈলীকে অন্যটির কাঠামোর সাথে একত্রিত করে। এই সবের ফলাফল হল যে আপনি ফটোগ্রাফগুলিকে "নিউরাল পেইন্টিং"-এ পরিণত করার জন্য একটি বিশাল নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দিতে পারেন যেগুলি বিখ্যাত শিল্পীদের আঁকার মতো দেখায় -- "ডিজিটাল নকল", তাই বলতে গেলে৷
এখানে নিবন্ধ থেকে কিছু উদাহরণ আছে. প্রথম ছবিটি আসল। পরবর্তী চিত্রগুলি হল উৎপন্ন ফলাফল, যে চিত্রকর্ম থেকে শৈলীটি ক্ষুদ্র আকারে দেখানো হয়েছে।
দুর্ভাগ্যবশত মূল গবেষকরা তাদের কোড প্রকাশ করেননি। যাইহোক, কিছু নির্ভীক প্রোগ্রামার গত কয়েকদিন ধরে তাদের ফলাফলের প্রতিলিপি করেছে এবং তাদের কোড ইন্টারনেটে ওপেন সোর্স পাওয়া যাচ্ছে। এটি চালানোর জন্য আপনার যা দরকার তা হল একটি লিনাক্স মেশিন এবং একটু ধৈর্য।
আজ, আমি আপনাকে এটি কীভাবে করতে হবে তা নিয়ে যেতে যাচ্ছি, এবং আপনাকে আমার নিজের কিছু ফলাফল দেখাব। আপনি এটিকে আমাদের DeepDream টিউটোরিয়ালের একটি আলগা সিক্যুয়েল হিসাবে ভাবতে পারেন। এটি কিছুটা জটিল, তবে যে কেউ লিনাক্স মেশিন সহ অনুসরণ করতে পারেন -- কোন কোডিং অভিজ্ঞতার প্রয়োজন নেই।
সফটওয়্যার সেট আপ করা
প্রথমত, আপনি যদি খুব তাড়াহুড়ো না করেন বা আপনার কাছে লিনাক্স মেশিন না থাকে, আপনি এখনও DeepForger টুইটার বট ব্যবহার করে DeepStyle-এর সাথে খেলতে পারেন (এটিকে একটি চিত্র এবং একটি স্টাইল পাঠান, এবং এটি শেষ পর্যন্ত আপনার ফলাফলের সাথে উত্তর দেবে চাই)। আপনি যদি আরও ছবি দ্রুত প্রক্রিয়া করতে চান (এবং ফলাফলের উপর আরও নিয়ন্ত্রণ সহ), টিউটোরিয়ালটি পড়ুন৷
প্রথমে, নিশ্চিত করুন যে আপনার কাছে Ubuntu-এর একটি আপ টু ডেট কপি আছে (14.04 যা আমি ব্যবহার করেছি)। আপনার হার্ড ড্রাইভের অন্তত কয়েকটি অতিরিক্ত জায়গা থাকা উচিত। আরও তথ্যের জন্য, উইন্ডোজের পাশাপাশি ডুয়াল-বুটিং উবুন্টুর উপর আমাদের টিউটোরিয়াল দেখুন। আপনার রুট বিশেষাধিকারেরও প্রয়োজন হবে, তাই এগিয়ে যাওয়ার আগে নিশ্চিত হয়ে নিন।
বেসিক টুলস
ব্যাটের ডানদিকে, এটি একটি ওপেন-সোর্স প্রকল্প, তাই আমরা Git পেতে চাই ইনস্টল করা সংস্করণ নিয়ন্ত্রণ সফ্টওয়্যারের জন্য গিট হল সোনার মান। প্রায় প্রতিটি ওপেন সোর্স প্রোজেক্ট যা জানার যোগ্য তা গিথুবে হোস্ট করা হয়।
গিট ডাউনলোড এবং ইনস্টল করতে, শুধু একটি টার্মিনাল খুলুন এবং টাইপ করুন "
sudo apt-get install git
" এবং ইনস্টলারের দাবিতে সম্মত হন৷
৷পরবর্তী:আমরা কিছু মৌলিক টুল সেট আপ করতে যাচ্ছি সফ্টওয়্যারটি কাজ করার জন্য প্রয়োজন৷
প্রথমে, Lua ইনস্টল করুন। এই টুলটি যে ভাষায় লেখা হয়েছে। এটি বেশ সহজ। শুধু "
টাইপ করুনsudo apt-get install lua5.2
" এবং ইনস্টলেশন প্রক্রিয়া অনুসরণ করুন৷
৷দ্বিতীয়ত, আমরা লুয়ারকস পেতে যাচ্ছি। এটি এমন একটি টুল যা অন্যান্য টুল ইনস্টল করা সহজ করে তোলে (আপনি কি লিনাক্স পছন্দ করেন না?)। এটির জন্য, "
টাইপ করুনsudo apt-get install luarocks
" এবং ইনস্টলেশনের ধাপগুলি অনুসরণ করুন৷
৷তৃতীয়ত, আমরা Luajit ইন্সটল করতে যাচ্ছি। এটি Lua-এর জন্য একটি মাত্র সময়ের কম্পাইলার যা আমাদের জীবনকে একটু সহজ করে তুলবে। শুধু "
টাইপ করুনsudo apt-get install luajit
"
এখন পর্যন্ত অনেক ভালো।
ফ্রেমওয়ার্ক
পরবর্তীতে, আমরা টর্চ ইনস্টল করতে যাচ্ছি, একটি বৈজ্ঞানিক কম্পিউটিং এবং মেশিন লার্নিং ফ্রেমওয়ার্ক যা অ্যাপ্লিকেশনটির মেরুদণ্ড তৈরি করে। দুর্ভাগ্যবশত, এটি apt-get (স্ট্যান্ডার্ড উবুন্টু প্যাকেজ ম্যানেজার) ব্যবহার করে ইনস্টল করা যাবে না।
ভাগ্যক্রমে, তাদের কাছে একটি এক-লাইন ইনস্টলার রয়েছে যা কিছু কমান্ড-লাইন জাদু ব্যবহার করে। আপনার টার্মিনালে ফিরে যান এবং "
লিখুন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
যা আপনার '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
(অবশ্যই, আপনাকে আপনার ফাইলের নামের সাথে সমস্ত CAPS-এ খণ্ডগুলি প্রতিস্থাপন করতে হবে)।
এটি নিউরাল নেটওয়ার্ক চালু করবে। এটি প্রায় এক ঘন্টা চলবে, এটি শেষ না হওয়া পর্যন্ত প্রতি কয়েক মিনিটে নতুন আংশিক-একত্রিত চিত্রগুলি থুতু দেবে।
-gpu -1
পতাকা এটিকে আপনার GPU অ্যাক্সেস করার চেষ্টা করা থেকে আটকায়৷
কয়েক ঘন্টা চেষ্টা করার পরে (এবং অপারেটিং সিস্টেমটি বেশ কয়েকবার ইট করার পরে) আমি আমার GPU (একটি NVIDIA GTX 970) এর সাথে ভাল খেলতে উবুন্টু এবং CUDA পেতে পারিনি। আপনার যদি এটির সাথে আরও ভাগ্য থাকে তবে আপনি CUDA এবং cudann.torch ইনস্টল করতে চাইবেন (আরো তথ্যের জন্য github রেপো দেখুন)। যদি না হয়, তাহলে ঠিক আছে -- এটি এখনও আপনার CPU ব্যবহার করে কাজ করবে; এটা একটু ধীর হবে।
এই সমস্ত কাজ করতে আপনার যদি কোন সমস্যা হয় তবে আমাকে মন্তব্যে জিজ্ঞাসা করুন এবং আমি আপনাকে সাহায্য করার জন্য যথাসাধ্য চেষ্টা করব৷
ফলাফল
এখানে কিছু ছবি আছে যা আমি গত কয়েক দিনে তৈরি করেছি। ফলাফল মিশ্র, কিন্তু তাদের অনেকগুলি বেশ চিত্তাকর্ষক৷
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
এটি ইয়েলোস্টোনের হাইকিং ট্রিপে আমার বন্ধু জ্যাকের। শৈলী একটি বিমূর্ত পেইন্টিং থেকে আসে, থেরেসা প্যাডেন দ্বারা নির্মিত. আমি দেখতে কৌতূহলী ছিলাম যে সিস্টেমটি একেবারে কোনও কাঠামো ছাড়াই একটি চিত্র ব্যবহার করে কীভাবে কাজ করবে। ফলাফলগুলি বেশ ঝরঝরে, এবং আপনি অবশ্যই শৈলী চিত্রের সাথে মিল দেখতে পাবেন৷
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
এটি আমার প্রিয় শিল্পীদের একজন, চার্লস ডেমুথের সৌজন্যে এসেছে (দেখুন:একটি নতুন চার্চের ধূপ, এবং চিত্র 5 সোনায়)। মজার ব্যাপার হল, ডেমুথ হল টিম ফোর্টেস 2-এর শিল্পের জন্য প্রাথমিক চাক্ষুষ অনুপ্রেরণাগুলির মধ্যে একটি, আপনি শৈলীর চিত্র থেকে দেখতে পাচ্ছেন৷
আমি এটিকে জার্সি সিটির একটি ছবি দিয়েছি যা আমি উইকিমিডিয়াতে পেয়েছি। ফলাফল ... বেশ ভাল. এটি ডেমুথের শৈলীর কৌণিকতাকে তুলে ধরেনি, তবে এটি অবশ্যই নরম, টেক্সচারযুক্ত চেহারা এবং রঙের প্যালেট তুলেছে।
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
এটি আমার পাওয়া কিছু ফুলের মোটামুটি জাগতিক ছবি ব্যবহার করে একটি সিন্থেটিক ও'কিফ তৈরি করার একটি প্রচেষ্টা। ফলাফল, স্পষ্টতই, দর্শনীয়. নান্দনিকভাবে, এটি আমার প্রিয় ফলাফলগুলির মধ্যে একটি। O'Keeffe এর রঙ এবং আকারের সমৃদ্ধি স্পষ্টভাবে আসে। ফুলের পাপড়ির স্তরযুক্ত প্রান্তগুলি পটভূমিতে পাতার প্রান্তে পরিণত হয়। ফুলগুলি নিজেই রঙে দ্রবীভূত হয়, প্রায় বিমূর্ত হয়ে যায়।
এটি একটি ভাল পেইন্টিং হবে যদি একজন মানুষ এটি করেন। আমি এটির একটি উচ্চতর রেজোলিউশন সংস্করণ রেন্ডার করতে এবং এটিকে ফ্রেম করতে কয়েক দিন ব্যয় করতে প্রলুব্ধ হয়েছি।
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
এখানে আমার বন্ধু শ্যানন তার হ্যালোইন পোশাকে, পিকাসো প্রিন্টের মাধ্যমে। মজার বিষয় হল, ডিভাইসটি তার মুখের নীচের অংশটিকে সাদা রঙ করতে বেছে নিয়েছে (পিকাসোর টুকরোটির রঙের লেআউটের মতো)। আমি নিশ্চিত নই যে এটি একটি কাকতালীয় ছিল বা না, তবে ফলাফলগুলি আকর্ষণীয়। এটাও মনে হয় শ্যাননের বাম দিকের চুল সঠিকভাবে শনাক্ত করেছে এবং স্টাইল ইমেজে চুল থেকে রং এবং লাইনওয়ার্ক ব্যবহার করে এটিকে পুনরায় আঁকেছে। তার টুপির জন্যও তাই।
এটি এমন একটি অংশ যেখানে কৌশলটির সীমাবদ্ধতাগুলি স্পষ্ট হতে শুরু করে। পিকাসো যদি সত্যিই শ্যাননের ছবি আঁকতেন, তবে তিনি তার মুখের গঠনটি ফেলে দিতেন এবং তার চেয়েছিলেন এমন প্রভাব অর্জনের জন্য বৈশিষ্ট্যগুলিকে তির্যক করে ফেলতেন। এই সিস্টেমটি এই ধরণের উচ্চ স্তরের ধারণাগুলি বোঝে না এবং স্টাইলের শুধুমাত্র উপরিভাগের দিকগুলি অনুকরণ করতে সক্ষম, যেমন অন্ধকার, কৌণিক রেখা এবং রঙ প্যালেট৷
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
মোটামুটি সোজা:আইফেল টাওয়ারের একটি ছবি, এবং ভ্যান গগের অন্যান্য তারকাময় রাত. মূল ছবিতে মেঘের অনুপস্থিতি সত্ত্বেও এটি ভ্যান গগ-ই স্টাইলে ক্লাউড রেন্ডার করার একটি ভাল কাজ করে। এটি দিন থেকে রাত পর্যন্ত দৃশ্যটি অনুবাদ করার একটি ভাল কাজ করে৷
আমি নিশ্চিত ছিলাম না কেন এটি ফিফেল টাওয়ারের অগ্রভাগকে আগুনের স্তম্ভ হিসাবে রেন্ডার করার সিদ্ধান্ত নিয়েছে। এটি দুর্দান্ত দেখায়, তবে ইনপুট ডেটা থেকে এটি সত্যই ন্যায়সঙ্গত নয়। তারপর আমি বুঝতে পেরেছিলাম যে শৈলী চিত্রটিতে তেরোটি দীর্ঘ, উল্লম্ব হলুদ স্ট্রিপ রয়েছে, জলের প্রতিফলনের আকারে। এটি একটি চমত্কার বৃহদায়তন ক্লাস্টার, যা খুব কম প্রশিক্ষণ ডেটা দেওয়া হয়েছে৷ বেচারা সম্ভবত শিখেছে যে কোনো উচ্চ-কনট্রাস্ট উল্লম্ব প্রান্ত অবশ্যই সেই প্রতিফলনের মধ্যে একটি হতে হবে। আপনি মেঘের মধ্যে অস্পষ্টভাবে আরও বহিরাগত উল্লম্ব ফিতে দেখতে পারেন।
সম্পূর্ণ রেজোলিউশনের জন্য এখানে ক্লিক করুন৷
একই ভ্যান গগ পেইন্টিং, কিন্তু এই সময় আমি এটি আঁকা কিছু প্রকৃত তারকা দিয়েছি. এই ক্ষেত্রে, ঈগল নেবুলার স্তম্ভ অংশ। আমি ফলাফলগুলি পছন্দ করি -- যদিও, আপনি আবার হলুদ ফিতে এর আবেশ দেখতে পাচ্ছেন। স্তম্ভের প্রতিটি উল্লম্ব অংশ একটি উজ্জ্বল, টলমল হলুদ রেখায় পরিণত হয়। এটি সবুজের দ্বারা স্পষ্টভাবে বিরক্ত, যা প্রশিক্ষণের ডেটাতে আসেনি এবং নীল এবং কালোর পক্ষে এটি পরিত্রাণ পেতে সর্বোত্তম চেষ্টা করে৷
প্রযুক্তি
এর থেকে কিছু ফলাফল অত্যন্ত আকর্ষক, যদিও কৌশলটির স্পষ্ট সীমাবদ্ধতা রয়েছে। কিছু চিত্রের কম্পোজিশন খারাপ, এবং সিস্টেমে পিকাসোর মতো আরও বিমূর্ত শিল্পীদের সাথে সমস্যা হয় -- যারা বিখ্যাতভাবে তার বিষয়বস্তুকে বিকৃত করতে পছন্দ করতেন, এর বৈশিষ্ট্যগুলি ছড়িয়ে দিয়েছিলেন। অ্যালগরিদম তার কৌণিক রেখা এবং সংঘর্ষের রঙগুলিকে তুলে নেয়, কিন্তু এখনও চিত্রের পিক্সেল মানগুলির দাস। এটিতে এমন বোঝাপড়া নেই যা আপনাকে উত্স উপাদান থেকে খুব বেশি দূরে সরে যেতে হবে৷
এই সব সম্পর্কে আমাকে যা উত্তেজিত করে তা হল আমি মনে করি না যে এই সীমাবদ্ধতাগুলি মৌলিক৷
এখানে যে পদ্ধতিটি ব্যবহার করা হচ্ছে -- একটি ছবিতে একটি নেটওয়ার্ককে প্রশিক্ষিত করুন এবং এটিকে অন্যটি তৈরি করতে ব্যবহার করুন -- মূলত একটি হ্যাক। এটি নেটওয়ার্কের সাথে কাজ করার জন্য খুব কম ডেটা দেয়। এই অ্যাপ্লিকেশানটির একটি আরও উন্নত সংস্করণ এমন একটি নেটওয়ার্ক ব্যবহার করবে যেখানে অনেক পেইন্টিং এবং এমনকি বাস্তব চিত্রের তথ্য রয়েছে, এটি যে ছবিটি "আঁকানোর" চেষ্টা করছে তার সম্পর্কে প্রচুর প্রসঙ্গ দিতে।
শৈলীর একটি গভীর উপলব্ধি শুধুমাত্র একটি বৃহত্তর প্রসঙ্গে বিদ্যমান থাকতে পারে। আপনি একটি একক ইমেজ থেকে এটি আহরণ করতে পারবেন না. একটি স্থাপত্য ডিজাইন করা যা সিস্টেমটিকে বিস্তৃত ডেটাতে অ্যাক্সেস দেয় তা এটিকে চিত্র সম্পর্কে আরও "মানুষ-সদৃশ" বোঝার এবং শিল্পীরা কীভাবে বাস্তব জগতের বিভিন্ন উপাদানকে উপস্থাপন করে তা বোঝার অনুমতি দেয়। এই জাতীয় নেটওয়ার্ক আরও বিমূর্ত এবং আরও ভাল রচনাযুক্ত চিত্র তৈরি করতে সক্ষম হতে পারে। এই ধরনের অ্যালগরিদমগুলি একটি দুর্দান্ত খেলনা (এরকম) হয়ে যাবে না এবং প্রকৃত, আসল শিল্প তৈরির একটি উপায় হয়ে উঠবে৷
যা একটি খুব অদ্ভুত চিন্তা, কিছু উপায়ে.
নিজের ছবি তৈরি করা
আপনি যদি একটি হতাশাজনক ফলাফল পান, আপনি আরও বিশ্বাসযোগ্য ফলাফল পেতে চেষ্টা করার জন্য বিকল্পগুলির সাথে একটু খেলতে পারেন। সম্পূর্ণ তালিকা Github এ আছে. গুরুত্বপূর্ণ হল
- -content_weight -value বিষয়বস্তু পুনর্গঠন শব্দ ওজন কত. ডিফল্ট 5e0।
- -style_weight -value: স্টাইল ইমেজকে কতটা ওজন দিতে হবে। ডিফল্ট হল 1e2।
- -শৈলী_স্কেল - মান: কত বড় ইমেজ প্যাচ সিস্টেম বিশ্লেষণ করা উচিত (বড় হয় আরো বিমূর্ত)। ডিফল্ট হল 1.0।
একবার আপনি সবকিছু আপনার সন্তুষ্টির জন্য কাজ করে নিলে, অনুগ্রহ করে মন্তব্যে আপনার সবচেয়ে আকর্ষণীয় ছবি পোস্ট করুন। আপনি কি নিয়ে এসেছেন তা দেখতে আমি সত্যিই আগ্রহী৷
ইমেজ ক্রেডিট:Shutterstock এর মাধ্যমে মানব মস্তিষ্ক চিত্রকর