๐ง Part 7: Computer Vision with OpenCV and Deep Learning
๐️ What Is Computer Vision?
Computer Vision (CV) enables machines to “see” and understand images or videos. It’s used in:
-
Face detection
-
Object recognition
-
Medical imaging
-
Self-driving cars
๐งฐ Tools We'll Use
-
OpenCV – Image processing library
-
TensorFlow/Keras – Deep learning models (CNNs)
-
Pre-trained Models – For fast and accurate image classification
Install with:
pip install opencv-python tensorflow
๐ผ️ Step-by-Step: Image Classification with a CNN
๐️ Step 1: Load & Preprocess the CIFAR-10 Dataset
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
import matplotlib.pyplot as plt
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0
# Show a sample image
plt.imshow(X_train[0])
plt.title(f"Label: {y_train[0][0]}")
plt.show()
๐ง Step 2: Build a Convolutional Neural Network (CNN)
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(32,32,3)),
tf.keras.layers.MaxPooling2D((2,2)),
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D((2,2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
⚙️ Step 3: Compile & Train the Model
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, validation_split=0.2)
๐ Step 4: Evaluate and Predict
test_loss, test_acc = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_acc:.2f}")
predictions = model.predict(X_test)
print("Predicted class:", predictions[0].argmax())
๐งฐ Bonus: Load and Process Custom Images with OpenCV
import cv2
image = cv2.imread('your_image.jpg')
resized = cv2.resize(image, (32, 32)) / 255.0
reshaped = resized.reshape(1, 32, 32, 3)
prediction = model.predict(reshaped)
print("Predicted class:", prediction.argmax())
๐ Alternative: Use Pretrained Model (MobileNet)
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions
model = MobileNetV2(weights='imagenet')
from tensorflow.keras.preprocessing import image
import numpy as np
img = image.load_img('your_image.jpg', target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = model.predict(x)
print("Predicted:", decode_predictions(preds, top=1)[0])
๐งช Practice Challenge
-
Try using other datasets like Fashion MNIST or CelebA
-
Detect faces using
cv2.CascadeClassifier
-
Implement edge detection with OpenCV
๐ What You’ve Learned:
-
Image classification using CNNs
-
Using OpenCV for image processing
-
How to use pre-trained models for instant predictions
๐งญ What’s Next?
In Part 8, we’ll explore Reinforcement Learning (RL)—where agents learn to make decisions through trial and error using rewards and penalties.
No comments:
Post a Comment