Skip to content

Capstone Projects

Every level ends with a capstone: a larger project that combines everything in the level. Capstones are the gates of this handbook. Don't move on until you can complete the current one without notes.

Each capstone has a scenario, deliverables, an acceptance checklist, hints, and a full worked solution. Wherever possible, capstones use images with a known right answer (a warp you applied, a camera you simulated, ground-truth depth), so you can measure exactly how well your solution works.

Level Capstone Est. time Solution
Level 0: Images and tools Build a photo-processing tool: batch-convert, resize, annotate, and analyze a folder of images 6–10 h Solution
Level 1: Image processing Build a document scanner: find the page, rectify it, and clean it up 8–12 h Solution
Level 2: Classical computer vision Stitch a panorama and measure depth: features, RANSAC, homographies, and stereo 10–15 h Solution
Level 3: CNNs for vision Train an image classifier on a new domain, and explain what it learned 8–12 h Solution
Level 4: Object detection Build and evaluate an object detector end to end 10–15 h Solution
Level 5: Segmentation and dense prediction Train a segmentation model and measure it properly 10–15 h Solution
Level 6: Transformers and multimodal vision Build a zero-shot image search and classification system with CLIP-style embeddings 8–12 h Solution
Level 7: Generative vision Train a small diffusion model that generates images, and steer it with guidance 10–15 h Solution
Level 8: Video, 3D, and deployment Ship a real-time video analytics pipeline: detect, track, count, and optimize 12–20 h Solution

How to use the solutions

  1. Attempt the whole capstone first. Use the hints if you're stuck for more than 30 minutes on one part.
  2. Compare your solution with the worked one, focusing on the reasoning behind each decision. Different isn't wrong if you meet the acceptance checklist.
  3. Redo any part where you needed the solution from a blank file a few days later.
  4. Add what you got wrong to your "mistakes I made" log.