paint-brush
কিভাবে একটি কালো এবং সাদা ছবির রঙিন করা যায়দ্বারা@alexk0
615 পড়া
615 পড়া

কিভাবে একটি কালো এবং সাদা ছবির রঙিন করা যায়

দ্বারা Aleksandr Korepanov4m2024/06/07
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

DeOldify হল একটি টুল যা আপনাকে কয়েকটি ক্লিকের মাধ্যমে পুরানো ফটোগুলিকে রঙিন করতে দেয়৷ এটি বিনামূল্যে এবং ওপেন সোর্স, এবং আপনাকে যা করতে হবে তা হল সামান্য পাইথন কোড লিখতে।
featured image - কিভাবে একটি কালো এবং সাদা ছবির রঙিন করা যায়
Aleksandr Korepanov HackerNoon profile picture
0-item

আমাদের সকলের কাছে আমাদের বাবা-মা, দাদা-দাদি এবং আরও অনেক কিছুর কাছ থেকে পাওয়া পুরানো ফটোগুলির ভান্ডার রয়েছে। প্রায়শই, এই ফটোগুলি কালো এবং সাদা হয় এবং কখনও কখনও আমরা সেগুলিকে রঙিন করে তুলতে চাই৷ অনলাইনে অসংখ্য ওয়েবসাইট রয়েছে যেখানে আপনি আপনার ব্রাউজারে মাত্র কয়েকটি ক্লিকের মাধ্যমে এটি অর্জন করতে পারেন। যাইহোক, এই সাইটগুলির সাথে সমস্যাটি তাদের পরিমাণ এবং মানের উপর অনেক সীমাবদ্ধতার মধ্যে রয়েছে।


উপরন্তু, এই পরিষেবাগুলির জন্য প্রায়ই নিবন্ধন এবং সদস্যতা প্রয়োজন, যা বেশ হতাশাজনক হতে পারে।


এই পোস্টে, আমি শেয়ার করতে চাই কিভাবে আপনি সীমাবদ্ধতা, রেজিস্ট্রেশন বা সাবস্ক্রিপশনের ঝামেলা ছাড়াই চমৎকার টুল, DeOldify ব্যবহার করে যেকোনো সংখ্যক ফটোকে রঙিন করতে পারেন।


DeOldify-এর একটি আশ্চর্যজনক ভূমিকা রয়েছে, এবং আপনি এটি ব্যবহার করতে পারেন, কিন্তু অ-প্রস্তুত ব্যক্তিদের জন্য এটি কিছুটা কঠিন বলে মনে হতে পারে। এখানে, আমি DeOldify ব্যবহার করার একটি সহজ উপায় প্রদর্শন করতে চাই।

পরিবেশ প্রস্তুত করা হচ্ছে

শুরু করার জন্য, আপনার Linux বা macOS চালিত একটি কম্পিউটারের প্রয়োজন হবে৷ আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আপনি এখনও লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম (WSL) ব্যবহার করে এগিয়ে যেতে পারেন।


উবুন্টুর জন্য প্রয়োজনীয় প্যাকেজগুলির একটি তালিকা রয়েছে:

 sudo apt update sudo apt install python3-pip wget git ffmpeg libsm6 libxext6


আপনার যদি অন্য লিনাক্স ডিস্ট্রিবিউশন থাকে তবে আপনি তালিকাটি একটি রেফারেন্স হিসাবে ব্যবহার করতে পারেন।


macOS এর জন্য (দুর্ভাগ্যবশত, এটি একটি আনুমানিক তালিকা কারণ আমার কাছে পরীক্ষার জন্য একটি পরিষ্কার macOS নেই):

 brew install python wget git ffmpeg libsm libxext


পরবর্তী ধাপে সবকিছু করার জন্য স্যান্ডবক্স নামে একটি পৃথক ফোল্ডার তৈরি করা হচ্ছে। আপনি অন্য কোনো নাম বেছে নিতে পারেন বা এমনকি কিছু তৈরি না করা বেছে নিতে পারেন এবং এই ধাপটি সম্পূর্ণ এড়িয়ে যান।

 # Optional mkdir Sandbox cd Sandbox


তারপর DeOldify ক্লোন করুন:

 git clone https://github.com/jantic/DeOldify.git


DeOldify-এর কোনো রিলিজ বা ট্যাগ নেই, যার মানে আমরা মাস্টার শাখার সাথে কাজ করি। আমি বিশ্বাস করি যে সবকিছু যে কোনো সময়ে সর্বশেষ মাস্টারের সাথে কাজ করা উচিত। কিন্তু শুধুমাত্র ক্ষেত্রে, এখানে একটি পুনর্বিবেচনা নম্বর যা দিয়ে আমি সবকিছু পরীক্ষা করেছি:


be725ca6c5f411c47550df951546537d7202c9bc । আপনি যদি চান, আপনি এটি পরীক্ষা করে দেখতে পারেন:

 # Optional cd DeOldify git checkout be725ca6c5f411c47550df951546537d7202c9bc cd ..


এর পরে, সমস্ত পাইথন নির্ভরতা ইনস্টল করুন:

 pip3 install --user -r DeOldify/requirements.txt pip3 install --user -r DeOldify/requirements-colab.txt pip3 install --user -r DeOldify/requirements-dev.txt


এরপরে, মডেলগুলির জন্য একটি ডিরেক্টরি তৈরি করুন এবং মডেলটি ডাউনলোড করুন:

 mkdir -p DeOldify/models wget https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth -O DeOldify/models/ColorizeArtistic_gen.pth


এটাই! পরিবেশ প্রস্তুত; সবচেয়ে কঠিন অংশ আমাদের পিছনে আছে. এখন, পাইথন কোডের একটি বিট লিখুন.

সবকিছু রঙিন করুন

আমাদের জন্য সবচেয়ে আকর্ষণীয় এবং দরকারী ফাংশন হল ModelImageVisualizer.plot_transformed_image()


আমাদের যা করতে হবে তা চারপাশে কোড লিখতে হবে।


এখানে আমার বাস্তবায়ন:

 #!/usr/bin/python3 from deoldify import device from deoldify.device_id import DeviceId # choices: CPU, GPU0...GPU7 device.set(device=DeviceId.GPU0) from deoldify.visualize import * import warnings import sys import os warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?") # Play with this constant! render_factor = 35 input_dir = sys.argv[1] output_dir = sys.argv[2] if not os.path.isdir(input_dir): print("input directory is not a directory or not exist") sys.exit(1) if os.path.exists(output_dir): print("out directory is already exist") sys.exit(1) os.makedirs(output_dir) root_dir = Path(os.environ['PYTHONPATH']) colorizer = get_image_colorizer(root_folder=root_dir, artistic=True) for filename in os.listdir(input_dir): f = os.path.join(input_dir, filename) if os.path.isfile(f) and (f.endswith(".png") or f.endswith(".jpg") or f.endswith(".jpeg")): image_path = colorizer.plot_transformed_image( path=f, results_dir=Path(output_dir), render_factor=render_factor, compare=True, watermarked=False ) print("{} ready".format(image_path))


আপনি যেভাবে চান তা কপি, পেস্ট এবং পরিবর্তন করতে দ্বিধা বোধ করুন।


স্ক্রিপ্টটি প্রথম স্ক্রিপ্ট আর্গুমেন্ট হিসাবে পাস করা ডিরেক্টরি থেকে সমস্ত .png , .jpg , এবং .jpeg ইমেজ পড়ে এবং সেগুলিকে রঙিন করে, ফলাফলগুলিকে দ্বিতীয় স্ক্রিপ্ট আর্গুমেন্ট হিসাবে পাস করা ডিরেক্টরিতে সংরক্ষণ করে৷ মনে রাখবেন যে আউটপুট ডিরেক্টরি অবশ্যই বিদ্যমান থাকবে না; স্ক্রিপ্ট নিজেই এটি তৈরি করে। আমি Sandbox/runner.py ফাইলে স্ক্রিপ্টটি সংরক্ষণ করেছি, তবে আপনি যদি পছন্দ করেন তবে আপনি একটি ভিন্ন অবস্থান এবং নাম ব্যবহার করতে পারেন।


চল এটা চেষ্টা করি! আমি Sandbox/photos/in এ একটি সাদা-কালো ছবি রেখেছি, এবং আউটপুট ডিরেক্টরিটি হল Sandbox/photos/out :

 # from Sandbox directory PYTHONPATH=./DeOldify/ python3 runner.py photos/in/ photos/out/


পরিবেশ পরিবর্তনশীল PYTHONPATH অবশ্যই DeOldify ডিরেক্টরি উল্লেখ করতে হবে।


এখানে ফলাফল:

কালো এবং সাদা ছবি

রঙিন ছবি

আসল ছবি