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 चलाने वाले कंप्यूटर की आवश्यकता होगी। यदि आप Windows का उपयोग कर रहे हैं, तो आप अभी भी Linux के लिए Windows सबसिस्टम (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 निर्देशिका को संदर्भित करना चाहिए।


परिणाम इस प्रकार है:

काले और सफेद फोटो

रंगीन फोटो

मूल फोटो