Computer Vision Roadmap: From Basics to Real Projects
In this series (30 parts)
- Computer Vision Roadmap: From Basics to Real Projects
- What is Computer Vision? From Pixels to Decisions
- A Short History of Computer Vision: 1545 to Now
- Math for CV Beginners: Vectors, Matrices, Convolutions
- Image Fundamentals: Color, Histograms, Noise, Filtering
- How Images and Video Are Stored: Colour, JPEG, Frames
- OpenCV Setup + First 10 Tasks in Python
- Vision Metrics: Accuracy, Precision, Recall, mAP, IoU
- CV Project Workflow: Dataset, Baseline, Error Iteration
- Intensity Transforms and Frequency-Domain Filtering
- Edge Detection and Thresholding That Actually Work
- Morphology, Contours, and Shape Analysis for Real Images
- Feature Matching (SIFT/ORB) and Image Stitching
- Camera Calibration and Perspective Correction
- Epipolar Geometry, Stereo Vision, and Depth Estimation
- Optical Flow and Motion Tracking in Video
- HOG, HOF and MBH: Descriptors Before Deep Learning
- Your First Image Classifier (PyTorch + Transfer Learning)
- Data Pipelines and Augmentation for Vision Models
- CNN Architectures Explained: From LeNet to ResNet
- YOLO Detection Pipeline: Data to Inference
- Semantic and Instance Segmentation: U-Net to Mask R-CNN
- Vision Transformers (ViT) and When to Use Them
- CV Explainability: Grad-CAM, Failures, Bias Checks
- 3D Vision Basics: SfM, Point Clouds, and Pose Estimation
- Multimodal Vision: CLIP, Embeddings, and Retrieval Systems
- Video Understanding: Flow Networks, Interpolation, Stabilisation
- Real-Time CV Systems: Tracking, Latency, Streaming
- Deploying CV Models: ONNX, TensorRT, Edge, and APIs
- Responsible CV: Privacy, Fairness, Security, Governance
This is a 29-post path through computer vision, written so that someone who has never opened an image in Python and someone who trains models for a living both find something they can use. Every post has hand-worked examples, runnable code, and a practice task.
What you will be able to build
By the end of the series you should be able to do all of these without looking anything up:
- Load, inspect, and clean images, and know from a histogram whether an image is even usable.
- Tell from a file whether it has already been through a lossy step that will hurt your model.
- Build a working inspection or counting system using thresholds, contours, and shape measurements, with no training data at all.
- Calibrate a camera, correct perspective, and convert pixel measurements into real-world millimetres.
- Stitch photos into a panorama and estimate depth from a stereo pair.
- Fine-tune an image classifier, train an object detector, and train a segmentation model.
- Process video efficiently instead of running an image model 30 times a second.
- Explain why a model made a prediction, and find the bias in it before someone else does.
- Deploy a model to run in real time on a CPU, a GPU, or an edge device.
- Evaluate all of the above honestly and know which metric is lying to you.
The four parts
graph LR P1["Part 1<br/>Foundations<br/>posts 1-9"] --> P2["Part 2<br/>Classical CV<br/>posts 10-16"] P1 --> P3["Part 3<br/>Deep learning<br/>posts 17-22"] P2 --> P3 P3 --> P4["Part 4<br/>Production<br/>posts 23-29"] P2 --> P4
| Part 1: Foundations | Part 2: Classical CV | Part 3: Deep learning | Part 4: Production | |
|---|---|---|---|---|
| Posts | 1-9 | 10-16 | 17-22 | 23-29 |
| Main tools | NumPy, OpenCV | OpenCV | PyTorch | ONNX, TensorRT, monitoring |
| Hardware | Any laptop | Any laptop | GPU strongly preferred | Varies |
| Training data needed | None | None | Hundreds to thousands | Depends |
| Time to work through | ~20 hours | ~20 hours | ~24 hours | ~22 hours |
| You end up able to | Read and clean images | Build rule-based systems | Train models for real tasks | Ship and keep them working |
Choose your route
You do not have to read all 29 posts in order. Pick the route that matches where you are.
| # | If you are... | Start with | Then | Skip for now |
|---|---|---|---|---|
| 1 | New to images entirely | 1 → 2 → 3 → 4 | 5, 6, 7, 8, then part 2 in order | Nothing, go in order |
| 2 | A developer who wants something working this week | 1 → 6 → 10 → 11 | 7, 8, then 17 | The heavy math in 3, and post 9 |
| 3 | An ML practitioner adding vision | 1 → 7 → 17 → 18 | 19, 20, 21, 22 | Parts of 2 and 4 you already know |
| 4 | An engineer shipping an existing model | 7 → 8 → 26 → 27 | 28, 23, 29 | Parts 1 and 2 mostly |
| 5 | A student preparing for interviews | 3 → 19 → 22 → 20 | 2, 7, 16, 23 | Part 4 until later |
Five routes through the same 29 posts
graph TD
Q{"What do you<br/>want first?"} -->|"understand images"| A["Post 1, then 2, 3, 4"]
Q -->|"working code this week"| B["Post 1, then 6, 10, 11"]
Q -->|"train a model"| C["Post 7, then 17, 18"]
Q -->|"ship what I have"| D["Post 7, 8, then 27, 28"]
A --> E["Posts 7 and 8:<br/>how to measure and iterate"]
B --> E
C --> E
D --> E
E --> F["Everything else,<br/>in whatever order you need"]
Posts 7 and 8 sit in the middle of every route on purpose. Measuring honestly and knowing what to fix next are the two skills that decide whether a project finishes, and they apply equally to a threshold rule and to a transformer.
Part 1: Foundations (posts 1–9)
| # | # | Post | What you build or work out by hand |
|---|---|---|---|
| 1 | 1 | What is computer vision? | A cap-detection rule from a raw 8×8 pixel grid, counted by hand |
| 2 | 2 | History of computer vision | Why every era's method failed, traced through one running problem |
| 3 | 3 | Math for CV beginners | A 3×3 convolution computed cell by cell; layer output sizes |
| 4 | 4 | Image fundamentals | An RGB→HSV conversion by hand showing why hue survives lighting changes |
| 5 | 5 | How images and video are stored | A DCT block, a bit-depth reduction, and the I/P/B latency argument |
| 6 | 6 | OpenCV setup + first 10 tasks | Ten runnable tasks, ending in a batch processor with a CSV report |
| 7 | 7 | Vision metrics | IoU, precision, recall, F1 and Average Precision all computed by hand |
| 8 | 8 | CV project workflow | An error-bucket analysis that shows which fix returns the most per day |
| 9 | 9 | Intensity transforms and frequency filtering | A log transform with the constant derived, and a Butterworth response table |
Part 1 — nothing here needs a GPU or any training data
- What is computer vision? — pixels, the recognition ladder, and why the same object produces wildly different numbers under different light.
- History of computer vision — camera obscura to CLIP, told as a sequence of methods that each broke for a specific reason.
- Math for CV beginners — array shapes, convolution, the output size formula, normalization, and 2D transforms.
- Image fundamentals — colour spaces, histograms, and which filter removes which kind of noise.
- How images and video are stored — sampling, bit depth, JPEG, and why B-frames decide your live-video architecture.
- OpenCV setup + first 10 tasks — a working environment and ten hands-on exercises.
- Vision metrics — accuracy, precision, recall, IoU, mAP, and Dice, all worked out on real numbers.
- CV project workflow — spec, data audit, leak-free splits, baselines, and error analysis.
- Intensity transforms and frequency filtering — log, gamma, slicing, and the Fourier view that explains why a blur is a low-pass filter.
Part 2: Classical CV and geometry (posts 10–16)
Classical methods still run most working vision systems in factories, on production lines, and inside larger pipelines. They need no training data, they run on any CPU, and you can explain exactly why they made a decision.
- Edge detection and thresholding — Sobel, Canny, Otsu, and adaptive thresholding on images that fight back.
- Morphology, contours, and shape analysis — clean up masks, separate touching objects, measure real shapes.
- Feature matching and image stitching — SIFT and ORB keypoints, matching, RANSAC, and a working panorama.
- Camera calibration and perspective correction — remove lens distortion and convert pixels into millimetres.
- Epipolar geometry and stereo depth — depth from two cameras, and where it breaks.
- Optical flow and motion tracking — measuring movement between frames and tracking objects over time.
- HOG, HOF and MBH descriptors — the descriptors that ran detection before deep learning, worked out to the exact 3780 numbers.
Part 3: Deep learning for vision (posts 17–22)
| # | # | Post | Task it solves | Typical training time |
|---|---|---|---|---|
| 1 | 17 | First image classifier (PyTorch) | Classification | 20 min on a GPU |
| 2 | 18 | Data pipelines and augmentation | Every task | n/a |
| 3 | 19 | CNN architectures: LeNet to ResNet | Understanding | n/a |
| 4 | 20 | YOLO object detection pipeline | Detection | 2-8 hours |
| 5 | 21 | Semantic and instance segmentation | Segmentation | 4-12 hours |
| 6 | 22 | Vision transformers (ViT) | Classification and beyond | Hours to days |
Part 3 — a GPU makes a real difference here, though everything runs on CPU if you are patient
- Your first image classifier — transfer learning end to end, with a real training loop.
- Vision data pipelines and augmentation — the part that usually gives the biggest gain for the least effort.
- CNN architectures explained — why each design change happened and what it fixed.
- YOLO object detection pipeline — data format, anchors, training, NMS, and evaluation.
- Semantic and instance segmentation — U-Net and Mask R-CNN, and when each is right.
- Vision transformers — patches, attention, and the data volume ViT actually needs.
Part 4: Modern CV, video, deployment, and responsible use (posts 23–29)
- Model explainability and bias checks — Grad-CAM, failure analysis, and finding the shortcut your model learned.
- 3D vision basics — structure from motion, point clouds, and pose estimation.
- Multimodal vision with CLIP — image and text embeddings, zero-shot classification, and retrieval.
- Video understanding — learned flow, interpolation, stabilisation, denoising, and detection that exploits time.
- Real-time CV systems — latency budgets, batching, tracking, and streaming.
- Deploying CV models — ONNX, TensorRT, quantization, and edge devices.
- Responsible computer vision — privacy, fairness, security, and the release checks that catch problems early.
Check whether you are ready
Answer these four. If you can, start at post 1 and move quickly. If you cannot, start at post 1 and move slowly. Either way, post 1 is the right place.
- In Python, what does
a[2:5]give you ifa = [10, 20, 30, 40, 50]? - If a NumPy array has shape
(480, 640, 3), how many numbers does it contain in total? - What is as a decimal?
- If you multiply every number in a list by 0.5, what happens to the average?
Answers: (1) [30, 40, 50]. (2) . (3) . (4) It halves.
That is genuinely the entry bar for parts 1 and 2. Part 3 additionally assumes you have seen a training loop before; if not, the machine learning series covers that ground first, and neural networks from scratch covers backpropagation.
What you will install
| # | Part | Install | Hardware |
|---|---|---|---|
| 1 | 1 and 2 | python, numpy, opencv-python, matplotlib | Any laptop |
| 2 | 3 | + torch, torchvision, albumentations | GPU strongly preferred |
| 3 | 3 (detection) | + ultralytics or detectron2 | GPU |
| 4 | 4 | + onnxruntime, optionally tensorrt | Depends on target |
Nothing needs installing until the post that uses it
If you have no GPU, Google Colab and Kaggle Notebooks both give free GPU time that is enough for every training task in part 3.
How to actually get through it
- You run the code as you read, on your own images, not the ones in the post
- You do the practice task at the end of each post before moving on
- You work out at least one of the hand-computed examples yourself on paper
- You keep one small project running through the whole series and improve it each post
- You read posts 7 and 8 early, whatever route you take
- You read all 29 posts and write no code — none of it will stick
- You skip straight to transformers without knowing how to measure a model
- You only test on clean, well-lit images you chose yourself
- You copy code without checking what shape comes out of each step
Checkpoints
Five points where you should be able to build something on your own, with nothing open but a terminal.
| # | After post | You should be able to | If you cannot, revisit |
|---|---|---|---|
| 1 | 6 | Load a folder of images, resize them correctly, and produce a CSV of measurements | Posts 1, 4 and 6 |
| 2 | 11 | Count and measure objects on a plain background, and say when it will fail | Posts 4, 10 and 11 |
| 3 | 18 | Fine-tune a classifier on your own photos and report precision and recall | Posts 7, 8 and 17 |
| 4 | 22 | Choose between a CNN and a ViT for a given dataset size and justify it | Posts 19 and 22 |
| 5 | 28 | Export a model, measure its latency, and state its throughput on real hardware | Posts 27 and 28 |
Five checkpoints. Each one is a small project, not a quiz.
Roughly 86 hours end to end with the practice tasks. At five hours a week that is about four months, which is a realistic pace for something you are learning alongside other work.
Summary
Twenty-nine posts, four parts, five routes. Parts 1 and 2 need nothing but a laptop and give you systems that work without any training data. Part 3 adds learned models for classification, detection, and segmentation. Part 4 covers video, explaining, shipping, and keeping models working once real conditions hit them.
Whichever route you take, posts 7 and 8 are the ones to read early. Everything else is a technique; those two are the judgement that decides which technique you need.
- Four parts: foundations, classical CV, deep learning, production. 29 posts total.
- Parts 1 and 2 need no GPU and no training data. Many real systems never go further than this.
- Five suggested routes exist. You do not need to read the posts in order.
- Posts 7 (metrics) and 8 (workflow) belong early in every route, whatever you skip.
- Every post has hand-worked numbers, runnable code, and a practice task. Do the tasks.
- Budget roughly 86 hours end to end, or about four months at five hours a week.
Start here
What is computer vision? opens with a real factory problem and solves it completely using nothing but a grid of numbers and a threshold. It is the shortest path to understanding what every method in the rest of the series is actually doing.