মূল ধারণা।
কম্পিউটারের কাছে একটি ছবি হলো pixel-এর একটি গ্রিড, আর প্রতিটি pixel তিনটি সংখ্যা: কতটা লাল, সবুজ আর নীল,
প্রতিটি 0 থেকে 255 পর্যন্ত। ফাইলে এর বাইরে আর কিছুই নেই। এই পাতার প্রতিটি কৌশল ওই সংখ্যাগুলোর ওপর সাধারণ
পাটিগণিত — আর একটি CNN ছবি নিয়ে যা কিছু করে, সেটিও তাই।
CNN কোথায় আসে।
একটি রঙিন ছবি CNN-এ ঢোকে সংখ্যার তিনটি গ্রিড হিসেবে, প্রতিটি channel-এর জন্য একটি। আগে ছোট করে নেওয়া
স্বাভাবিক: বড় ছবিগুলোকে ঢোকানোর আগে 224×224-এর মতো মাপে নিয়ে আসা হয়। training-এর সময় brightness
আর contrast এলোমেলোভাবে বদলানো হয়, যাতে নেটওয়ার্ক শেখে যে বিড়ালের একটু অন্ধকার ছবিও বিড়ালই।
যা চেষ্টা করে দেখার মতো:
1. Pixels are numbers: বাঁ দিকের ছবির যেকোনো জায়গায় ক্লিক করে সেখানে জুম করুন। বিড়ালের সবুজ চোখ
প্রতিটি pixel-এ একই তিনটি সংখ্যা; চোখের কিনারায় এসে সংখ্যাগুলো এক ধাপে বদলে যায়।
2. Gray scale: একটি খাঁটি নীল pixel (0, 0, 255) আর একটি খাঁটি সবুজ pixel (0, 255, 0) সাধারণ গড়ে
দুটোই 85 দেয়। weight দিয়ে নীল দেয় 29 আর সবুজ 150 — আর নীল আমাদের চোখে সত্যিই বেশি গাঢ় দেখায়।
দুটোর মধ্যে বদলে House-এর আকাশটা দেখুন।
3. Channel split, House, Blue: আকাশ উজ্জ্বল (216) আর লাল ছাদ প্রায় কালো (44)।
Red-এ গেলে ছাদ (160) আকাশের (111) চেয়ে উজ্জ্বল হয়ে যায়।
4. Downsize, Rings, 2×: Skip pixels বাঁ আর ডান কিনারায় নতুন বৃত্ত আঁকে, যা
ছবিতে নেই। Average each block সেগুলোকে মিলিয়ে নরম ধূসর করে দেয়।
5. Brightness & contrast: সূত্রটি হলো (old − 128) × contrast + 128 + brightness
— একটি slope আর একটি intercept, আবার সেই y = mx + b। brightness বাড়ালে 255 ছাড়ানো প্রতিটি pixel
কেটে 255 করা হয়, তাই উজ্জ্বল অংশগুলো সব একই সাদা হয়ে যায় আর তাদের খুঁটিনাটি হারিয়ে যায়।