I built SIFT (Scale-Invariant Feature Transform) from scratch in pure NumPy — 3,000 lines, no OpenCV. SIFT is the algorithm behind image stitching, object recognition, and visual search. OpenCV gives it to you in one function call, but I wanted to understand what's actually happening inside every convolution, every gradient histogram, every scale-space extremum. The implementation covers the full pipeline: - Gaussian scale-space pyramid construction - Difference of Gaussians for blob detection - Sub-pixel keypoint localization via Taylor expansion - Orientation assignment for rotation invariance - 128-dimensional descriptor generation - Feature matching with Lowe's ratio test To test it, I gave it a single license plate and asked it to find the match in a cluttered wall of 50+ plates. It detected 11,049 keypoints in the scene, narrowed them to 44 matches, then used RANSAC homography (also from scratch in NumPy) to verify 34 geometrically consistent inliers — all landing on the correct plate. Full technical writeup + code: github.com/DataEdd/SIFT #ComputerVision #Python #NumPy #SIFT #MachineLearning #FeatureDetection
So cool, and such a break, to see something made from a blank canvas all the way up! 🙌🏼
Well done Aditya!
Keep it up Aditya 👍
Bravo! You need to understand what's under the hood to do this, which will make you a better user, as well. But, shouldn't "011 CAH" be a Massachusetts plate, rather than North Dakota? 😀