ডেটা অগমেন্টেশন হল একটি কৌশল যা মূল ডেটাসেটের বৈচিত্র্য এবং আকার বৃদ্ধি করতে বিভিন্ন ট্রান্সফর্মেশন এবং পরিবর্তন প্রয়োগ করে। এটি বিশেষভাবে দরকারি যখন ডেটাসেট ছোট থাকে, এবং মডেলটিকে সাধারণীকরণ করতে সাহায্য করে, যার ফলে ওভারফিটিং কমে এবং মডেলের পারফরম্যান্স উন্নত হয়। চিত্র এবং ভিডিও ডেটা অগমেন্টেশন মেশিন লার্নিং এবং ডিপ লার্নিং মডেলগুলির জন্য একটি গুরুত্বপূর্ণ উপাদান।
Image Data Augmentation Techniques
Image Augmentation চিত্র ডেটা প্রশিক্ষণ করার সময় বিভিন্ন ধরণের পরিবর্তন যেমন ঘোরানো, স্কেলিং, ফ্লিপিং ইত্যাদি প্রয়োগ করে নতুন চিত্র তৈরি করা হয়।
১. Rotation (ঘোরানো)
- চিত্রটিকে একটি নির্দিষ্ট ডিগ্রি বা র্যান্ডমভাবে ঘোরানো হয়। এটি চিত্রের দিক এবং কোণগুলির বৈচিত্র্য বাড়ায়।
- উদাহরণ: একটি বস্তু বিভিন্ন কোণ থেকে দেখা যেতে পারে, যেমন 90° বা 180° ঘোরানো।
কোড উদাহরণ (Keras):
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rotation_range=40)
datagen.fit(image) # Apply augmentation to image
২. Flipping (ফ্লিপিং)
- চিত্রটিকে অনুভূতভাবে (Horizontal) বা আড়াআড়িভাবে (Vertical) উলটানো হয়। এটি সাধারণত কম্পিউটার ভিশন কাজ যেমন বস্তু সনাক্তকরণের জন্য ব্যবহৃত হয়।
- উদাহরণ: একটি ব্যক্তির ছবি হরাইজন্টালি ফ্লিপ করলে একই ব্যক্তির চিত্র তৈরি হবে কিন্তু বিরুদ্ধ দিক থেকে।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(horizontal_flip=True)
datagen.fit(image)
৩. Zoom (জুমিং)
- চিত্রে জুম ইন বা জুম আউট করে, অর্থাৎ, চিত্রের অংশবিশেষ বড় করা বা ছোট করা। এটি বিভিন্ন দৃশ্য বা অংশ দেখা যায়।
- উদাহরণ: ক্যামেরা বা মোবাইল ফোনে বিভিন্ন পর্যায়ের জুম ব্যবহার করা।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(zoom_range=0.2)
datagen.fit(image)
৪. Shift (সরাসরি স্থানান্তর)
- চিত্রের X বা Y অক্ষ বরাবর চিত্রটি কিছু পিক্সেল স্থানান্তরিত করা হয়। এটি চিত্রের অবস্থান পরিবর্তন করে।
- উদাহরণ: একটি বস্তু ছবির মাঝখান থেকে সরিয়ে রাখা।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(width_shift_range=0.2, height_shift_range=0.2)
datagen.fit(image)
৫. Shear (শিয়ারিং)
- চিত্রের আকৃতিতে কিছু পরিবর্তন আনতে শিয়ারিং ট্রান্সফরমেশন প্রয়োগ করা হয়, যার ফলে ছবির কিছু অংশের বিকৃতি হয়।
- উদাহরণ: একটি দৃষ্টি বা দৃশ্য আংশিকভাবে পরিভ্রমণ করা।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(shear_range=0.2)
datagen.fit(image)
৬. Brightness Adjustment (উজ্জ্বলতা পরিবর্তন)
- চিত্রের উজ্জ্বলতা বাড়ানো বা কমানো হয়। এটি চিত্রের আলো এবং ছায়ার মাত্রা পরিবর্তন করে।
- উদাহরণ: একটি সানসেট বা সূর্যোদয়ের ছবির উজ্জ্বলতা পরিবর্তন করা।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(brightness_range=[0.2, 2.0])
datagen.fit(image)
৭. Color Jitter (রঙের পরিবর্তন)
- চিত্রের রঙ পরিবর্তন করা হয়, যেমন রঙের কনট্রাস্ট, স্যাচুরেশন বা হিউ পরিবর্তন করা।
- উদাহরণ: একটি ছবি দিয়ে রঙের হালকা বা গা dark ় করে দেওয়া।
কোড উদাহরণ (Keras):
datagen = ImageDataGenerator(channel_shift_range=30)
datagen.fit(image)
Video Data Augmentation Techniques
Video Augmentation হল ভিডিও ডেটার জন্য অগমেন্টেশন টেকনিক যা চিত্র অগমেন্টেশন টেকনিকের সাথে বেশ কিছু নতুন পরিবর্তন সংযুক্ত করে। ভিডিও ডেটায় সময় এবং ভিন্ন ভিন্ন দৃশ্য থাকে, তাই ভিডিও অগমেন্টেশন চিত্র অগমেন্টেশনের চাইতে কিছুটা আলাদা।
১. Frame Dropping (ফ্রেম ড্রপিং)
- ভিডিও থেকে কিছু ফ্রেম বাদ দেওয়া হয়, যাতে বিভিন্ন দৃশ্যের মাঝে আরও বৈচিত্র্য থাকে। এটি ট্রেনিং ডেটাকে দ্রুত এবং কমপ্যাক্ট করে।
২. Temporal Shifting (টাইম শিফটিং)
- ভিডিওর ফ্রেমগুলো কিছু সময় পরিবর্তন করা হয়, যাতে বিভিন্ন সময়ের চিত্রগুলোকে মডেল দ্বারা সঠিকভাবে শিখানো যায়। ভিডিওগুলোকে একে অপরের থেকে শিফট করা হয়, যা সময়গত বৈচিত্র্য বৃদ্ধি করে।
৩. Video Rotation and Flipping
- ভিডিওর প্রতিটি ফ্রেম ঘোরানো বা ফ্লিপ করা হয়। এই পদ্ধতিটি ভিডিও ডেটার ক্ষেত্রে কম্পিউটার ভিশন মডেলকে সাহায্য করে।
৪. Scaling (স্কেলিং)
- ভিডিওর আকার বড় করা বা ছোট করা হয়। এটি মডেলকে আরও দৃশ্যমান পরিবর্তন শিখতে সাহায্য করে।
৫. Random Cropping
- ভিডিওর বিভিন্ন অংশ কেটে নেওয়া হয়। এটি ভিডিওর ভিন্ন ভিন্ন অংশের বৈচিত্র্য প্রদান করে এবং ভিডিও মডেলগুলিকে আরও দক্ষ করে তোলে।
৬. Color Jitter (রঙের পরিবর্তন)
- ভিডিওর প্রতিটি ফ্রেমে রঙ পরিবর্তন করা হয়, যেমন উজ্জ্বলতা, কনট্রাস্ট বা স্যাচুরেশন পরিবর্তন করা। ভিডিওর রঙের বৈচিত্র্য মডেলকে আরও ভাল শিখাতে সাহায্য করে।
৭. Speed Change (গতি পরিবর্তন)
- ভিডিওর গতি পরিবর্তন করা হয়, অর্থাৎ ভিডিওকে দ্রুত বা ধীর গতিতে চালানো হয়। এটি ভিন্ন ধরনের পরিস্থিতিতে ভিডিও সনাক্তকরণে সহায়তা করে।
কোড উদাহরণ (Keras)
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest',
brightness_range=[0.2, 2.0]
)
# Apply to a batch of images
datagen.fit(image_batch)
সারাংশ:
- Image Data Augmentation: চিত্র অগমেন্টেশন হলো বিভিন্ন ট্রান্সফর্মেশন প্রয়োগ করে ডেটার বৈচিত্র্য বাড়ানো, যেমন রোটেশন, ফ্লিপিং, জুম, শিফটিং ইত্যাদি।
- Video Data Augmentation: ভিডিও অগমেন্টেশন হল ভিডিওর ফ্রেমের উপর বিভিন্ন পরিবর্তন, যেমন ফ্রেম ড্রপিং, টাইম শিফটিং, ভিডিও রোটেশন ইত্যাদি।
- এই অগমেন্টেশন টেকনিকগুলো মডেলকে সাধারণীকরণে সহায়তা করে এবং বিভিন্ন ধরনের বাস্তব-জীবন পরিস্থিতিতে কাজ করার ক্ষমতা বাড়ায়।
Read more