Computer vision teaches machines to extract meaning from images and video. Classical CV used hand-engineered features (edges, corners, SIFT). Modern CV is dominated by deep learning, particularly CNNs and increasingly transformers.
The shift from hand-engineered to learned features in 2012 (AlexNet) is the defining moment of modern CV.
Images are arrays of pixels. A grayscale image is a 2D array; a color image is 3D (height × width × channels, usually RGB).
Common formats:
For ML: typically loaded as float arrays, normalized (often to [0,1] or standardized to mean 0).
Sobel, Canny — find intensity gradients. Still used for preprocessing.
SIFT, SURF, ORB — detect keypoints invariant to rotation and scale.
Used for:
Watershed, k-means clustering — partition images into regions.
Track pixel movement across video frames. Lucas-Kanade and Farnebäck are classics.
These techniques still matter for low-power, real-time, or interpretable systems.
Inspired by biological vision. Convolutional layers learn local features; pooling layers reduce dimension; fully-connected layers classify.
Key architectures:
ResNet remains a strong default for image classification.
Treat image as sequence of patches; apply transformer architecture.
ViTs need more data than CNNs to train from scratch but excel with pretraining.
Hybrid CNN-transformer architectures often work best in practice.
Single label per image. The benchmark task; ImageNet is the canonical dataset.
Find and classify multiple objects per image. Bounding boxes + labels.
Architectures:
Pixel-level classification. Each pixel gets a class label.
Architectures: U-Net, DeepLab, Mask R-CNN.
Like semantic but distinguishes individual objects.
Find keypoints (joints, landmarks). Used for human pose, hand tracking, faces.
GANs, diffusion models generate novel images. Stable Diffusion, DALL-E.
Most practical CV uses pretrained models:
This dramatically reduces data requirements. With 1000 examples, fine-tuning a pretrained model often beats training from scratch on millions.
Synthetically increase training data:
Aggressive augmentation helps with limited data.
CNNs run efficiently on GPUs. For mobile/edge:
Real-time CV needs:
Model weights + activation memory. Affects where the model can run.
Models trained on ImageNet may fail on rotated, low-light, or domain-specific images.
Tiny pixel perturbations can fool models. Robustness research is ongoing.
Models reflect biases in data. Face recognition has had documented racial bias issues.
Without enough data or augmentation, deep networks memorize training set.
Softmax outputs aren't well-calibrated probabilities by default.
The model is rarely the bottleneck. Data quality and quantity usually matter more.