ЁЯУ╕ 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 рдмрдирд╛ рджреЗрдВрдЧреЗред