مونوکروم میں زندگی: امیج کلرائزیشن کے لیے ڈیپ لرننگ

پرانی تصاویر کے سیپیا ٹونز اور گرے اسکیل گریڈینٹس ایک منفرد دلکشی رکھتے ہیں، جو وقت میں منجمد لمحات کو قید کرتے ہیں۔ پھر بھی، ان میں اکثر اصل منظر کی متحرک فورییت کی کمی ہوتی ہے۔ تصور کریں کہ ان قیمتی یادوں میں زندگی کے رنگوں کو واپس پھونکا جائے، ایک دھندلی سیاہ و سفید تصویر کو ایک کھڑکی میں تبدیل کیا جائے جو موضوع کی دنیا کو مکمل رنگ میں ظاہر کرے۔ یہ تبدیلی کا عمل، جسے امیج کلرائزیشن کہا جاتا ہے، طویل عرصے سے فنکاروں اور مورخین کو مسحور کرتا رہا ہے۔ آج، مصنوعی ذہانت، خاص طور پر ڈیپ لرننگ میں پیشرفت کی بدولت، خودکار کلرائزیشن ایسے نتائج حاصل کر رہی ہے جو کبھی سائنس فکشن کا حصہ تھے۔

ایک گرے اسکیل تصویر میں رنگ لانا ایک دلچسپ چیلنج پیش کرتا ہے۔ معلومات کی ایک قابل ذکر مقدار - اصل رنگین ڈیٹا - جب کسی تصویر کو مونوکروم میں پیش کیا جاتا ہے تو فطری طور پر ضائع ہو جاتی ہے۔ ایک الگورتھم صرف روشنی کی قدروں سے پھول، لباس، یا آسمان کا حقیقی رنگ کیسے جان سکتا ہے؟ جواب گرے اسکیل تصویر میں ہی موجود لطیف اشاروں میں پوشیدہ ہے: بناوٹ، شکلیں، سیاق و سباق، اور روشنی اور سائے کا باہمی تعامل۔ اگرچہ عین اصل رنگ کی نشاندہی کرنا ناممکن ہو سکتا ہے (کیا وہ گلاب واقعی قرمزی تھا، یا شاید گلابی کا سایہ؟)، مقصد ایک قابل یقین اور جمالیاتی طور پر قائل کرنے والی رنگ کاری تخلیق کرنے کی طرف منتقل ہو جاتا ہے۔ مقصد ایک ایسی تصویر تیار کرنا ہے جسے ایک انسانی مبصر قابل اعتبار سمجھے، یہاں تک کہ ممکنہ طور پر اصل رنگین تصویر سے ناقابل امتیاز ہو۔

ڈیپ لرننگ ماڈلز وسیع ڈیٹا سیٹس کے اندر پیچیدہ نمونوں اور شماریاتی تعلقات کو ننگا کرنے میں مہارت رکھتے ہیں۔ ان ماڈلز کو لاکھوں تصاویر پر تربیت دے کر، گرے اسکیل ورژن کا ان کے اصل رنگین ہم منصبوں سے موازنہ کر کے، الگورتھم مخصوص بناوٹ اور ڈھانچے کو ممکنہ رنگوں کے ساتھ جوڑنا سیکھتے ہیں۔ وہ سیکھتے ہیں کہ گھاس عام طور پر سبز ہوتی ہے، آسمان اکثر نیلا ہوتا ہے، اور کچھ بناوٹ لکڑی کے دانوں یا کپڑے سے مطابقت رکھتی ہیں۔ یہ ایک تعلیم یافتہ اندازے کے مترادف ہے، لیکن ایک جو ایک بہت بڑے بصری انسائیکلوپیڈیا سے مطلع ہوتا ہے۔ الگورتھم انسانی معنوں میں حقیقی رنگ کو ‘نہیں جانتا’، لیکن یہ سیکھے ہوئے ارتباط کی بنیاد پر انتہائی ممکنہ پیشین گوئیاں کر سکتا ہے۔

رنگ کی زبان: CIELab اور نیورل نیٹ ورکس

کمپیوٹیشنل طور پر کلرائزیشن سے نمٹنے کے لیے، ہمیں رنگ کی نمائندگی کرنے کے لیے ایک مناسب طریقے کی ضرورت ہے۔ اگرچہ RGB (سرخ، سبز، نیلا) ڈسپلے کے لیے عام ہے، یہ روشنی (چمک) اور رنگینی (رنگ) کی معلومات کو ملاتا ہے۔ اس کام کے لیے ایک زیادہ فائدہ مند نظام CIELab کلر اسپیس ہے۔ یہ ماڈل خوبصورتی سے رنگ کو تین الگ الگ اجزاء میں تقسیم کرتا ہے:

  • L (Lightness): یہ چینل گرے اسکیل معلومات کی نمائندگی کرتا ہے، جو خالص سیاہ سے خالص سفید تک ہوتی ہے۔ یہ بنیادی طور پر وہ ان پٹ ڈیٹا ہے جو ہمارے پاس پہلے سے ہی سیاہ و سفید تصویر میں موجود ہے۔
  • a: یہ چینل سبز (منفی قدریں) سے سرخ (مثبت قدریں) تک کے سپیکٹرم کو انکوڈ کرتا ہے۔
  • b: یہ چینل نیلے (منفی قدریں) سے پیلے (مثبت قدریں) تک کے سپیکٹرم کو انکوڈ کرتا ہے۔

CIELab کی خوبصورتی اس علیحدگی میں ہے۔ ہمارا ڈیپ لرننگ ماڈل صرف ان پٹ لائٹنیس (‘L’) چینل کی بنیاد پر دو کرومینینس چینلز (‘a’ اور ‘b’) کی پیش گوئی پر توجہ مرکوز کر سکتا ہے۔ بنیادی کام یہ بن جاتا ہے: گرے اسکیل معلومات (L) دی گئی ہے، ہر پکسل کے لیے سب سے زیادہ ممکنہ متعلقہ ‘a’ اور ‘b’ قدریں کیا ہیں؟

ابتدائی کوششوں میں اکثر Convolutional Neural Networks (CNNs) کا استعمال کیا جاتا تھا - ایک قسم کا ڈیپ لرننگ آرکیٹیکچر جو خاص طور پر گرڈ جیسے ڈیٹا جیسے امیجز پر کارروائی کرنے میں ماہر ہے۔ ان نیٹ ورکس کو بڑے امیج ڈیٹا سیٹس (جیسے ImageNet) پر تربیت دی گئی تھی تاکہ ہر پکسل کے لیے براہ راست ‘a’ اور ‘b’ قدروں کی پیش گوئی کی جا سکے، اسے ریگریشن مسئلہ (مسلسل قدروں کی پیش گوئی) کے طور پر سمجھا جائے۔ تاہم، ایک عام خرابی سامنے آئی: نتیجے میں آنے والی رنگ کاری اکثر غیر سیر شدہ یا مدھم دکھائی دیتی تھی۔ کیوں؟ سیب جیسی چیز پر غور کریں۔ یہ قابل یقین طور پر سرخ، سبز، یا یہاں تک کہ پیلا بھی ہو سکتا ہے۔ اگر نیٹ ورک ریگریشن کے دوران ان امکانات کا اوسط نکالنے کی کوشش کرتا ہے، تو یہ ایک متحرک، مخصوص رنگ کے بجائے ایک مدھم، بھورے سمجھوتے پر طے پا سکتا ہے۔ متعدد قابل یقین رنگوں میں یہ اوسط اثر نتائج کو دھندلا دیتا ہے۔

ایک پیراڈائم شفٹ: درجہ بندی کے طور پر کلرائزیشن

غیر سیر شدگی کے مسئلے پر قابو پانے اور زیادہ متحرک، حقیقت پسندانہ رنگ پیدا کرنے کے لیے، ایک زیادہ نفیس نقطہ نظر مسئلے کو دوبارہ ترتیب دیتا ہے۔ رنگ کی پیش گوئی کو ریگریشن کے طور پر سمجھنے کے بجائے، اسے درجہ بندی کے کام کے طور پر دیکھا جاتا ہے۔

یہاں تصوراتی تبدیلی ہے:

  1. مقدار شدہ رنگ کی جگہ (Quantized Color Space): ممکنہ ‘a’ اور ‘b’ قدروں کے مسلسل سپیکٹرم کو نمائندہ رنگ ‘بنز’ یا کلاسوں کے پہلے سے طے شدہ سیٹ میں تقسیم کیا جاتا ہے۔ اسے ‘a’-‘b’ جہاز کے اندر ایک وسیع پیلیٹ کو ایک قابل انتظام، پھر بھی جامع، الگ الگ رنگ کے اختیارات کے سیٹ تک کم کرنے کے طور پر سوچیں۔
  2. احتمالات کی پیش گوئی (Predicting Probabilities): ان پٹ گرے اسکیل تصویر میں ہر پکسل کے لیے، CNN ایک واحد ‘a’ اور ‘b’ قدر کی پیش گوئی نہیں کرتا ہے۔ اس کے بجائے، یہ مقدار شدہ رنگ بنز میں احتمال کی تقسیم کو آؤٹ پٹ کرتا ہے۔ یہ بنیادی طور پر کہتا ہے، ‘اس پکسل کے لیے، 70% امکان ہے کہ یہ ‘متحرک سرخ بن #5’ سے تعلق رکھتا ہے، 20% امکان ہے کہ یہ ‘ہلکا سرخ بن #2’ ہے، 5% امکان ہے کہ یہ ‘بھورا بن #12’ ہے،’ وغیرہ۔
  3. ابہام سے نمٹنا (Addressing Ambiguity): یہ امکانی نقطہ نظر فطری طور پر رنگ کے ابہام کو سنبھالتا ہے۔ اگر کوئی چیز متعدد رنگوں کی ہو سکتی ہے (جیسے سیب)، تو نیٹ ورک کئی مختلف رنگ بنز کو اہم احتمالات تفویض کر سکتا ہے، جو اس غیر یقینی صورتحال کی عکاسی کرتا ہے بغیر کسی پھیکے اوسط کا سہارا لیے۔
  4. متحرک رنگ میں ڈی کوڈنگ (Decoding to Vibrant Color): آخری مرحلہ اس احتمال کی تقسیم کو ہر پکسل کے لیے ایک واحد، مخصوص رنگ میں واپس ترجمہ کرنا ہے۔ ایک سادہ نقطہ نظر یہ ہو سکتا ہے کہ صرف سب سے زیادہ احتمال والے رنگ بن (موڈ) کا انتخاب کیا جائے۔ تاہم، متحرکیت کی حوصلہ افزائی کرنے اور غیر سیر شدگی کے مسئلے سے بچنے کے لیے، تقسیم کے اینیلڈ مین (annealed mean) کا حساب لگانے جیسی تکنیکیں استعمال کی جاتی ہیں۔ یہ طریقہ کم ممکنہ لیکن زیادہ رنگین (اعلی سیر شدگی) پیشین گوئیوں کو زیادہ وزن دیتا ہے، مؤثر طریقے سے متحرکیت کے حق میں ‘ٹائی توڑتا’ ہے جبکہ اب بھی مجموعی پیش گوئی شدہ تقسیم کا احترام کرتا ہے۔

یہ درجہ بندی کا فریم ورک، نقصان کے فنکشن (تربیت کے دوران ماڈل کی کارکردگی کا اندازہ لگانے کے لیے استعمال ہونے والا میٹرک) کے محتاط ڈیزائن کے ساتھ مل کر خاص طور پر کلرائزیشن کے لیے، ماڈل کو گرے اسکیل خصوصیات اور ممکنہ رنگوں کی تقسیم کے درمیان پیچیدہ تعلق سیکھنے کی اجازت دیتا ہے۔ نتیجہ ایسی تصاویر ہیں جو نہ صرف قابل یقین حد تک رنگین ہیں بلکہ ان میں ایک بھرپوری اور بصری کشش بھی ہے جو اکثر پہلے کے ریگریشن پر مبنی طریقوں میں کم ہوتی ہے۔

پردے کے پیچھے جھانکنا: ایک عملی ڈیپ لرننگ ورک فلو

اگرچہ اس طرح کے ایک نفیس CNN کو شروع سے تربیت دینا ایک بہت بڑا کام ہے جس کے لیے بے پناہ کمپیوٹیشنل وسائل اور وسیع ڈیٹا سیٹس کی ضرورت ہوتی ہے، پہلے سے تربیت یافتہ ماڈلز کا فائدہ اٹھانا اس ٹیکنالوجی کو قابل رسائی بناتا ہے۔ آئیے Python اور عام لائبریریوں کا استعمال کرتے ہوئے، امیج کلرائزیشن کے لیے پہلے سے تربیت یافتہ ڈیپ لرننگ ماڈل (خاص طور پر Caffe فریم ورک کا استعمال کرتے ہوئے بنایا گیا، جیسا کہ اصل مثال میں ہے) استعمال کرنے میں شامل تصوراتی مراحل سے گزرتے ہیں۔

1. ٹول کٹ کو جمع کرنا:

بنیاد عام طور پر Python پر مشتمل ہوتی ہے، جو ڈیٹا سائنس اور AI میں مقبول ایک ورسٹائل پروگرامنگ زبان ہے۔ کلیدی لائبریریاں اہم کردار ادا کرتی ہیں:

  • NumPy: موثر عددی کارروائیوں کے لیے ضروری ہے، خاص طور پر کثیر جہتی صفوں کو سنبھالنا جو تصاویر کی نمائندگی کرتی ہیں۔
  • OpenCV (cv2): کمپیوٹر وژن کے کاموں کے لیے ایک پاور ہاؤس لائبریری۔ یہ تصاویر کو پڑھنے، لکھنے، ہیرا پھیری کرنے اور ڈسپلے کرنے کے لیے فنکشن فراہم کرتا ہے، اور اہم بات یہ ہے کہ اس میں ایک Deep Neural Network (DNN) ماڈیول شامل ہے جو Caffe، TensorFlow، اور PyTorch جیسے مختلف فریم ورک میں تربیت یافتہ ماڈلز کو لوڈ کرنے اور چلانے کے قابل ہے۔
  • Argparse: صارف دوست کمانڈ لائن انٹرفیس بنانے کے لیے ایک معیاری Python لائبریری، جو صارفین کو آسانی سے ان پٹ پیرامیٹرز جیسے امیج فائل پاتھ کی وضاحت کرنے کی اجازت دیتی ہے۔
  • OS: بنیادی آپریٹنگ سسٹم کے تعاملات کے لیے استعمال کیا جاتا ہے، جیسے فائل پاتھ کو اس طرح بنانا جو مختلف سسٹمز (Windows, macOS, Linux) پر کام کرے۔

2. پہلے سے تربیت یافتہ ذہانت کا حصول:

نیورل نیٹ ورک کو اینٹ بہ اینٹ بنانے کے بجائے، ہم ان فائلوں کا استعمال کرتے ہیں جو پہلے سے کلرائزیشن کے لیے تربیت یافتہ نیٹ ورک کی نمائندگی کرتی ہیں۔ ان میں عام طور پر شامل ہیں:

  • ماڈل آرکیٹیکچر فائل (.prototxt برائے Caffe): یہ فائل نیورل نیٹ ورک کی ساخت کی وضاحت کرتی ہے - پرتیں، ان کی اقسام، کنکشنز، اور پیرامیٹرز۔ یہ ماڈل کا بلیو پرنٹ ہے۔
  • تربیت یافتہ ویٹس فائل (.caffemodel برائے Caffe): اس فائل میں نیٹ ورک کے وسیع تربیتی عمل کے دوران سیکھے گئے عددی ویٹس ہوتے ہیں۔ یہ ویٹس اس ‘علم’ کو سمیٹتے ہیں جو ماڈل نے گرے اسکیل خصوصیات کو رنگ کے احتمالات سے نقشہ بنانے کے بارے میں حاصل کیا ہے۔ یہ کشید کی گئی ذہانت ہے۔
  • کلر کوانٹائزیشن ڈیٹا (.npy فائل): یہ NumPy فائل عام طور پر پہلے بیان کردہ درجہ بندی کے نقطہ نظر میں استعمال ہونے والے مقدار شدہ رنگ بنز کے مرکز کے نقاط کو ذخیرہ کرتی ہے۔ یہ پیش گوئی شدہ رنگ کے احتمالات کے لیے حوالہ پیلیٹ کے طور پر کام کرتا ہے۔

یہ فائلیں طاقتور ہارڈویئر پر ممکنہ طور پر ہفتوں یا مہینوں کی تربیت کے اختتام کی نمائندگی کرتی ہیں۔

3. کلرائزیشن انجن کو لوڈ کرنا:

ضروری فائلوں کے ساتھ، OpenCV کا DNN ماڈیول پہلے سے تربیت یافتہ نیٹ ورک کو میموری میں لوڈ کرنے کا طریقہ کار فراہم کرتا ہے۔ cv2.dnn.readNetFromCaffe فنکشن (یا دیگر فریم ورک کے لیے مساوی) آرکیٹیکچر اور ویٹس فائلوں کو ان پٹ کے طور پر لیتا ہے اور نیٹ ورک کو انسٹینشیئٹ کرتا ہے، اسے انفرنس (نئے ڈیٹا پر پیشین گوئیاں کرنے کا عمل) کے لیے تیار کرتا ہے۔ .npy فائل سے کلر کوانٹائزیشن پوائنٹس بھی لوڈ کیے جاتے ہیں، عام طور پر NumPy کا استعمال کرتے ہوئے۔

4. نیٹ ورک اجزاء کی فائن ٹیوننگ (اگر ضروری ہو):

کبھی کبھی، پہلے سے تربیت یافتہ نیٹ ورک کے اندر مخصوص پرتوں کو انفرنس سے پہلے معمولی ایڈجسٹمنٹ کی ضرورت ہوتی ہے۔ زیر بحث درجہ بندی پر مبنی کلرائزیشن ماڈل کے تناظر میں:

  • آؤٹ پٹ لیئر ایڈجسٹمنٹ: ‘a’ اور ‘b’ چینل کی پیشین گوئیوں کو آؤٹ پٹ کرنے کے لیے ذمہ دار حتمی پرت (مثلاً، حوالہ ماڈل میں class8_ab نامی) کو .npy فائل سے رنگ بن مراکز کے ساتھ واضح طور پر لوڈ کرنے کی ضرورت پڑ سکتی ہے۔ یہ یقینی بناتا ہے کہ نیٹ ورک کے آؤٹ پٹ احتمالات پہلے سے طے شدہ رنگ پیلیٹ سے صحیح طور پر نقشہ بناتے ہیں۔ پوائنٹس کو اکثر پرت کے ‘بلابز’ (Caffe کی ڈیٹا کنٹینرز کی اصطلاح) کو تفویض کرنے سے پہلے مناسب ڈیٹا کی قسم (مثلاً، float32) میں ری شیپ اور کاسٹ کیا جاتا ہے۔
  • کلر ری بیلنسنگ: ایک اور پرت (مثلاً، conv8_313_rh) کو آؤٹ پٹ میں مختلف رنگوں کے درمیان توازن کو متاثر کرنے کے لیے ایڈجسٹ کیا جا سکتا ہے، ممکنہ طور پر سیچوریشن کو بڑھانا یا تربیت کے دوران سیکھے گئے تعصبات کو درست کرنا۔ اس میں اکثر پرت کے بلابز کو مخصوص سیکھی ہوئی قدروں پر سیٹ کرنا شامل ہوتا ہے (جیسے اصل کوڈ میں ذکر کردہ 2.606 قدر، جو ممکنہ طور پر تجرباتی طور پر یا تربیت کے دوران حاصل کی گئی ہے)۔

یہ اقدامات درجہ بندی کے نقطہ نظر کا استعمال کرتے ہوئے کلرائزیشن کے کام کی مخصوص باریکیوں کے لیے عام پہلے سے تربیت یافتہ ماڈل کو تیار کرتے ہیں۔

5. ان پٹ امیج کی تیاری:

ان پٹ گرے اسکیل امیج کو نیورل نیٹ ورک میں فیڈ کرنے سے پہلے کئی پری پروسیسنگ مراحل سے گزرنے کی ضرورت ہے:

  • لوڈنگ: تصویر کو مخصوص فائل پاتھ سے cv2.imread کا استعمال کرتے ہوئے پڑھا جاتا ہے۔ یہاں تک کہ اگر یہ گرے اسکیل ہے، OpenCV اسے بطور ڈیفالٹ 3-چینل BGR امیج کے طور پر لوڈ کر سکتا ہے، چینلز میں گرے ویلیو کو ڈپلیکیٹ کرتے ہوئے۔
  • نارملائزیشن: پکسل ویلیوز، جو عام طور پر 0 سے 255 تک ہوتی ہیں، کو 255.0 سے تقسیم کر کے ایک چھوٹی رینج، اکثر 0.0 سے 1.0 تک، اسکیل کیا جاتا ہے۔ یہ نارملائزیشن نیٹ ورک کے سیکھنے اور انفرنس کے عمل کو مستحکم کرنے میں مدد کرتی ہے۔
  • کلر اسپیس کنورژن: تصویر کو ڈیفالٹ BGR کلر اسپیس سے CIELab کلر اسپیس میں cv2.cvtColor کا استعمال کرتے ہوئے تبدیل کیا جاتا ہے۔ یہ لائٹنیس (L) چینل کو الگ کرنے کے لیے اہم ہے۔
  • ری سائزنگ: زیادہ تر پہلے سے تربیت یافتہ CNNs ایک مقررہ سائز (مثلاً، 224x224 پکسلز، ImageNet جیسے ڈیٹا سیٹس سے متاثر ایک عام معیار) کی ان پٹ امیجز کی توقع کرتے ہیں۔ LAB امیج کو cv2.resize کا استعمال کرتے ہوئے اسی کے مطابق ری سائز کیا جاتا ہے۔ یہ معیاری کاری نیٹ ورک کے آرکیٹیکچر کے ساتھ مطابقت کو یقینی بناتی ہے۔
  • L چینل آئسولیشن اور سینٹرنگ: لائٹنیس (L) چینل کو ری سائز شدہ LAB امیج سے نکالا جاتا ہے۔ اکثر، اس کی قدریں (عام طور پر LAB میں 0-100) پھر اوسط قدر (مثلاً، 50) کو گھٹا کر صفر کے ارد گرد مرکز میں لائی جاتی ہیں۔ یہ سینٹرنگ ایک اور عام عمل ہے جو نیٹ ورک کی کارکردگی کو بہتر بنا سکتا ہے۔

یہ احتیاط سے پری پروسیس شدہ L چینل اب نیٹ ورک کو پیش کرنے کے لیے تیار ہے۔

6. انفرنس مرحلہ: رنگ کی پیش گوئی:

یہ وہ جگہ ہے جہاں جادو ہوتا ہے:

  • بلاب تخلیق: پروسیس شدہ L چینل (اب ایک 2D ارے) کو ‘بلاب’ میں تبدیل کیا جاتا ہے، جو DNN ماڈیول (cv2.dnn.blobFromImage) کی طرف سے متوقع 4-جہتی ارے فارمیٹ ہے۔ اس فارمیٹ میں عام طور پر بیچ سائز، چینلز، اونچائی، اور چوڑائی کے لیے جہتیں شامل ہوتی ہیں۔
  • فارورڈ پاس: بلاب کو net.setInput کا استعمال کرتے ہوئے لوڈ شدہ نیٹ ورک کے ان پٹ کے طور پر سیٹ کیا جاتا ہے۔ پھر، net.forward() طریقہ کار کو کال کیا جاتا ہے۔ یہ کمپیوٹیشن کو متحرک کرتا ہے: ان پٹ ڈیٹا نیٹ ورک کی پرتوں سے بہتا ہے، سیکھے ہوئے ویٹس کے ذریعے طے شدہ تبدیلیوں سے گزرتا ہے، بالآخر پیش گوئی شدہ آؤٹ پٹ تیار کرتا ہے۔ ہمارے کلرائزیشن ماڈل کے لیے، آؤٹ پٹ پیش گوئی شدہ ‘a’ اور ‘b’ چینلز (یا بلکہ، رنگ بنز پر احتمال کی تقسیم) کی نمائندگی کرتا ہے۔
  • آؤٹ پٹ ری شیپنگ: نیٹ ورک سے خام آؤٹ پٹ کو ‘a’ اور ‘b’ چینلز کے مطابق 2D مقامی فارمیٹ میں واپس ری شیپ اور ٹرانسپوز کرنے کی ضرورت ہے۔

نیٹ ورک نے اب ان پٹ گرے اسکیل امیج کی بنیاد پر رنگ کی معلومات کے لیے اپنا بہترین اندازہ تیار کیا ہے۔

7. رنگین تصویر کی تعمیر نو:

آخری مرحلے میں پیش گوئی شدہ رنگ کی معلومات کو اصل تصویری ڈیٹا کے ساتھ ملانا شامل ہے:

  • پیش گوئی شدہ چینلز کی ری سائزنگ: پیش گوئی شدہ ‘a’ اور ‘b’ چینلز (جو فی الحال 224x224 سائز کے ہیں، نیٹ ورک ان پٹ سے مماثل ہیں) کو cv2.resize کا استعمال کرتے ہوئے ان پٹ امیج کے اصل طول و عرض پر واپس ری سائز کرنے کی ضرورت ہے۔ یہ یقینی بناتا ہے کہ رنگ کی معلومات اصل تصویری ساخت کے ساتھ صحیح طریقے سے منسلک ہوں۔
  • اصل لائٹنیس نکالنا: اہم بات یہ ہے کہ لائٹنیس (L) چینل کو اصل، مکمل سائز والی LAB امیج سے نکالا جاتا ہے (جو پری پروسیسنگ کے دوران ری سائزنگ سے پہلے بنائی گئی تھی)۔ اصل L چینل کا استعمال تصویر کی اصل تفصیل اور روشنی کی ساخت کو محفوظ رکھتا ہے، جو اگر ری سائز شدہ L چینل استعمال کیا جاتا تو خراب ہو جاتی۔
  • کنکیٹنیشن (Concatenation): اصل L چینل کو رنگ چینل محور کے ساتھ ری سائز شدہ، پیش گوئی شدہ ‘a’ اور ‘b’ چینلز کے ساتھ ملایا (کنکیٹینیٹ) جاتا ہے۔ یہ ایک مکمل LAB امیج کو دوبارہ جمع کرتا ہے، اب پیش گوئی شدہ رنگ کے ساتھ۔
  • ڈسپلے ایبل فارمیٹ میں واپس کنورژن: نتیجے میں آنے والی LAB امیج کو cv2.cvtColor کا استعمال کرتے ہوئے BGR کلر اسپیس میں واپس تبدیل کیا جاتا ہے، کیونکہ یہ زیادہ تر امیج ڈسپلے فنکشنز (جیسے cv2.imshow) کی طرف سے متوقع معیاری فارمیٹ ہے۔
  • کلپنگ اور اسکیلنگ: BGR امیج میں پکسل ویلیوز، جو فی الحال نارملائزڈ رینج (ممکنہ طور پر 0.0 سے 1.0) میں ہیں، کو کلپ کیا جاتا ہے تاکہ یہ یقینی بنایا جا سکے کہ وہ اس درست رینج میں رہیں (پیش گوئی کے عمل کی وجہ سے قدریں کبھی کبھی حد سے تھوڑا تجاوز کر سکتی ہیں)۔ پھر، انہیں ڈسپلے یا معیاری امیج فائل کے طور پر محفوظ کرنے کے لیے درکار معیاری 0-255 انٹیجر رینج تک واپس اسکیل کیا جاتا ہے۔

8. ویژولائزیشن:

آخر میں، cv2.imshow جیسے فنکشنز کا استعمال اصل گرے اسکیل امیج کو اس کے نئے رنگین ہم منصب کے ساتھ ڈسپلے کرنے کے لیے کیا جا سکتا ہے، جس سے فوری بصری موازنہ ممکن ہوتا ہے۔

عمل کو انجام دینا:

عام طور پر، ان مراحل کو نافذ کرنے والا اسکرپٹ کمانڈ لائن سے چلایا جائے گا۔ argparse سیٹ اپ کا استعمال کرتے ہوئے، صارف ان پٹ گرے اسکیل امیج کا پاتھ بطور دلیل فراہم کرے گا (مثلاً، python colorize_image.py --image my_photo.jpg)۔ اسکرپٹ پھر لوڈنگ، پری پروسیسنگ، انفرنس، اور تعمیر نو کے مراحل کو انجام دیتا ہے، بالآخر رنگین نتیجہ ڈسپلے یا محفوظ کرتا ہے۔

یہ ورک فلو، پہلے سے تربیت یافتہ ماڈلز اور طاقتور لائبریریوں کا فائدہ اٹھاتے ہوئے، ڈیپ لرننگ کلرائزیشن کے پیچیدہ نظریے کو ایک عملی ٹول میں تبدیل کرتا ہے جو مونوکروم امیجز میں متحرک، قابل یقین رنگ شامل کرنے کی صلاحیت رکھتا ہے، مؤثر طریقے سے ماضی اور حال کے درمیان فرق کو ختم کرتا ہے۔