Project: Image Classification with CNN

рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╣рдо step-by-step рдПрдХ рдкреВрд░рд╛ Image Classification Project рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ Convolutional Neural Network (CNN) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ real-world dataset рдХреЛ train рдФрд░ evaluate рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

ЁЯУ╕ Project: Image Classification with CNN

Computer Vision рдХреЗ field рдореЗрдВ рд╕рдмрд╕реЗ popular рдФрд░ fundamental task рд╣реИ Image Classificationред рдЗрд╕ project рдореЗрдВ рд╣рдо Convolutional Neural Networks (CNN) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдПрдХ model рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ images рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ categories рдореЗрдВ classify рдХрд░ рд╕рдХреЗред рдпрд╣ project beginner рд╕реЗ рд▓реЗрдХрд░ advanced learners рддрдХ рд╕рднреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ deep learning рдХреЗ core concepts practically clear рд╣реЛрддреЗ рд╣реИрдВред

ЁЯФН Step 1: Problem Understanding

Image Classification рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ input image рджреА рдЬрд╛рдПрдЧреА рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдХрд┐рд╕ category рдХреА рд╣реИред Example: Dog vs Cat, Digits Recognition (MNIST), CIFAR-10 classes рдЖрджрд┐ред

ЁЯЧВ Step 2: Dataset Selection

рд╣рдо рдпрд╣рд╛рдБ CIFAR-10 dataset рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ 60,000 images (32x32 pixels) рд╣реИрдВ рдФрд░ 10 categories: Airplane, Automobile, Bird, Cat, Deer, Dog, Frog, Horse, Ship, Truckред

from tensorflow.keras.datasets import cifar10

(x_train, y_train), (x_test, y_test) = cifar10.load_data()
print("Training Data:", x_train.shape)
print("Test Data:", x_test.shape)
    

тЪЩя╕П Step 3: Data Preprocessing

Neural Network рдХреЛ train рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ data preprocessing рдХрд░рдиреА рдЬрд░реВрд░реА рд╣реИ:

  • Normalization (pixel values рдХреЛ 0-255 рд╕реЗ 0-1 рдореЗрдВ scale рдХрд░рдирд╛)
  • One-hot Encoding (labels рдХреЛ categorical format рдореЗрдВ convert рдХрд░рдирд╛)
  • Data Augmentation (images рдХреЛ rotate, flip, zoom рдХрд░рдХреЗ dataset рдмрдбрд╝рд╛ рдХрд░рдирд╛)
from tensorflow.keras.utils import to_categorical

x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0

y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
    

ЁЯза Step 4: CNN Model Architecture

CNN model рдореЗрдВ convolutional layers, pooling layers рдФрд░ fully connected layers рд╣реЛрддреА рд╣реИрдВред рдиреАрдЪреЗ рдПрдХ sample CNN architecture рд╣реИ:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

model = Sequential([
    Conv2D(32, (3,3), activation="relu", input_shape=(32,32,3)),
    MaxPooling2D((2,2)),
    Conv2D(64, (3,3), activation="relu"),
    MaxPooling2D((2,2)),
    Flatten(),
    Dense(128, activation="relu"),
    Dropout(0.5),
    Dense(10, activation="softmax")
])

model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
model.summary()
    

ЁЯУИ Step 5: Model Training

Model рдХреЛ train рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо Adam Optimizer рдФрд░ Categorical Crossentropy Loss use рдХрд░реЗрдВрдЧреЗред

history = model.fit(
    x_train, y_train,
    epochs=20,
    batch_size=64,
    validation_data=(x_test, y_test)
)
    

ЁЯУК Step 6: Evaluation

Model рдХреЛ test dataset рдкрд░ evaluate рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рд╣рдореЗрдВ accuracy рдФрд░ loss рдорд┐рд▓ рд╕рдХреЗред

test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print("Test Accuracy:", test_acc)
    

ЁЯУЙ Step 7: Visualization

Training рдФрд░ validation accuracy/loss graph plot рдХрд░рдХреЗ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ model overfit рддреЛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ред

import matplotlib.pyplot as plt

plt.plot(history.history["accuracy"], label="train_accuracy")
plt.plot(history.history["val_accuracy"], label="val_accuracy")
plt.xlabel("Epochs")
plt.ylabel("Accuracy")
plt.legend()
plt.show()
    

ЁЯЪА Step 8: Predictions

Trained model рдХреЛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рд╣рдо рдирдИ unseen images рдкрд░ predictions рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

import numpy as np

predictions = model.predict(x_test[:5])
print(np.argmax(predictions, axis=1))
    

ЁЯТб Real-world Applications

  • Medical Image Diagnosis
  • Face Detection and Recognition
  • Traffic Sign Recognition in Self-driving Cars
  • Satellite Image Classification
  • Wildlife Monitoring with Drones

ЁЯУК Project Report & Insights

- CNN based models shallow networks рд╕реЗ рдЬреНрдпрд╛рджрд╛ powerful рд╣реЛрддреЗ рд╣реИрдВред
- Data Augmentation рдХрд╛ use рдХрд░рдХреЗ accuracy improve рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
- Transfer Learning (рдЬреИрд╕реЗ VGG, ResNet, MobileNet) future рдореЗрдВ рдЗрд╕ project рдХреЛ рдФрд░ рднреА powerful рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

тЭУ FAQs

Q1: CNN рдФрд░ MLP (Multilayer Perceptron) рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
Ans: CNN images рд╕реЗ automatically features рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдЬрдмрдХрд┐ MLP raw pixels рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Q2: CIFAR-10 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреМрди рд╕реЗ dataset beginner projects рдХреЗ рд▓рд┐рдП best рд╣реИрдВ?
Ans: MNIST, Fashion-MNIST, Tiny-ImageNetред

тЬЕ Conclusion

рдпрд╣ project CNN based image classification рдХреЛ practically implement рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ example рд╣реИред рдЕрдЧрд░ рдЖрдк deep learning рдФрд░ computer vision рдореЗрдВ career рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ projects рдЖрдкрдХреЗ portfolio рдХреЛ рдмрд╣реБрдд strong рдмрдирд╛ рджреЗрдВрдЧреЗред