← Latest posts

Blog

Page 8 of 9

Fundamentals
·16 min read Intermediate

RANSAC: How Vision Algorithms Vote Away Outliers

RANSAC separates data into inliers and outliers by fitting models to random minimal samples and keeping the one with the largest consensus. Walked end to end on two vision problems: a walking-speed estimate that three false detections drag from 2.00 m/s to 0.78, and a basketball shot called from a 3-point parabola fit. Plus the one-line formula for how many samples you need, a hands-on lab, and real inlier ratios measured on the temple dataset.

geometryfundamentals
Read more →
Fundamentals
·12 min read Intermediate

What Is SIFT? Finding the Same Point in Two Photos

SIFT finds points in one photo that can be found again in another photo of the same scene, and describes each with 128 numbers so the two can be paired. One pipeline, from blurring at many sizes to keeping only the unambiguous pairs, run on two photos of Barcelona harbour and scored against a homography fitted by a different detector: 420 of the 440 pairs it keeps are right, and the five lessons take each step apart.

geometryfeaturesfundamentals
Read more →
Fundamentals
·16 min read Advanced

Structure from Motion, from Scratch: 47 Photos to a 3-D Temple in ~800 Lines of Python

How overlapping 2-D photos become 3-D points and camera poses: SIFT matching, the essential matrix, triangulation, PnP growth, and sparse bundle adjustment, built from scratch with OpenCV + SciPy. The pipeline registers all 47 Middlebury temple views at 0.25 px mean reprojection error, next to COLMAP's 0.30 px on the same images. Worked examples, three interactive labs, and the reconstruction growing image by image.

geometryopencvfundamentalsfeatures
Read more →
Models & Detection
·26 min read Advanced

YOLO-NAS Strikes Back: Still the Fastest Detector on Hardware You Already Own

Quantized to INT8, YOLO-NAS-S runs at 201 FPS on a laptop CPU and gives up 0.4 AP on COCO for it, and it drops straight into Frigate. The model aged well; its tooling did not. Here is a clean reimplementation, measured across CPU, Intel iGPU and NVIDIA dGPU, and checked bit-for-bit against the original.

object-detectionyolo-nasedge-aiquantization
Read more →
Fundamentals
·5 min read Intermediate

The Camera Matrix: K, [R|t] and P, Worked on a Real Chessboard

Lesson 2 of Camera Geometry. A camera is one 3×4 matrix: the focal lengths and image centre in K, where the camera stands in [R|t], and their product P, which sends any point of the world to a pixel. Worked on one corner of a chessboard in OpenCV's own calibration photos, checked against cv2.projectPoints, and taken apart again.

camera-calibrationopencvgeometryfundamentals
Read more →
Fundamentals
·14 min read Beginner

Image processing, computer vision, and computer graphics: one picture, three directions of the arrow

Three fields, one shared object: the digital image. Graphics turns a model into an image (forward), vision turns an image into a model (inverse), and image processing turns an image into a better image. Worked on a single red-ball scene, with a 1957→2026 timeline of how they split apart and re-merged.

image-processingfundamentals
Read more →
Fundamentals
·8 min read Beginner

How 2D Convolution Works on Images: Kernels, Filters, and the Math, Interactively

2D convolution is the operation behind blur, sharpening, edge detection, and every CNN. Slide a kernel, multiply, sum: see it happen step by step in an interactive demo, apply real kernels to a live image, and get the math plus runnable OpenCV in Python and C++.

image-processingopencvfundamentals
Read more →
Evaluation
·9 min read Beginner

Classification Metrics, From the Ground Up: Precision, Recall, F1, ROC and AUC

The confusion matrix and everything that falls out of it: precision, recall, F1, specificity, the precision/recall trade-off, PR and ROC curves, and AUC, all built on one running toy example (a backyard cat-cam), with the equations, the intuition, and scikit-learn.

metrics
Read more →
Fundamentals
·9 min read Beginner

Colour Spaces: Choosing Axes You Can Threshold

Lesson 4 of The Image as Data. A colour space is a choice of axes for the same three numbers, and the choice is what makes a question easy or impossible. Worked on one measured chart patch: RGB (149.8, 58.3, 34.0) becomes luma 82.8, hue 12.6 degrees stored as 6, and Lab (36.9, 37, 34), plus the five-line red detector that is brittle in RGB and robust in HSV.

image-processingopencvcolor-spacesfundamentals
Read more →