← Latest posts

Blog

Page 5 of 9

Edge Deployment
·13 min read Advanced

Marigold V2 at four bits: what quantizing a 20-billion-parameter depth model costs

Marigold V2 ships as a 17 GB inference job, but the released checkpoint is a rank-128 LoRA over a frozen 20.4 B backbone, so the backbone is swappable. Four configurations on one rented A40: going 4-bit costs 10% of the time and saves 65% of the memory, picking GGUF over bitsandbytes costs another 1.87x and saves nothing, and streaming the weights from host RAM costs 3.33x.

quantizationedge-aibenchmark
Read more →
Edge Deployment
·28 min read Advanced

Build a computer-vision plugin for OBS Studio, and measure what every frame costs

A step-by-step OBS Studio video filter in C++ on OpenVINO, split so the model swaps without touching the plumbing, and measured stage by stage: getting pixels off the GPU, where inference has to live so OBS never drops a frame, and what the trip from camera to virtual camera costs.

openvinoIntelSoftwareInnovatorsegmentationedge-ai
Read more →
Evaluation
·22 min read Intermediate

How to build a rep counter that does not count your rest

A step-by-step build of exercise repetition counting on MediaPipe pose landmarks, in the browser. Each design decision is settled with a measurement: why the joint angle comes from world landmarks, why the 1 euro filter beats an exponential moving average by 44 percent at a 100 ms lag budget, and why one threshold turns six push-ups into twenty.

mediapipe
Read more →
Models & Detection
·28 min read Advanced

Reproducing a published pupil-diameter model, and running it in the browser

An independent run of Shah et al.'s released PupilSense checkpoints over all 424,000 EyeDentify crops, then the whole thing converted to ONNX and put in a browser tab: what the quantisation costs, what the preprocessing port costs, where the compute goes, and what I would change to make it both cheaper and more trustworthy.

mediapipe
Read more →
Fundamentals
·7 min read Beginner

An Image Is an Array: Shape, dtype, and Why OpenCV Hands You BGR

Lesson 1 of The Image as Data. One photograph, held three ways: a 24.7 MB mosaic of 12-bit counts, a 74.2 MB 16-bit development, and the 37.1 MB 8-bit array imread would give you. Two thirds of the numbers in that last one were never measured, adding 60 to a value of 207 gives 11, and a slice you write into changes the original.

image-processingopencvfundamentals
Read more →
Fundamentals
·9 min read Intermediate

From Photons to Counts: What a Raw Number Means

A photosite collects electrons, a converter turns them into an integer, and that integer is all any algorithm ever sees. Measured on eighteen exposures of one scene: the count doubles with the shutter to within a few percent, then sticks near 3875 DN, and the ceiling the file declares is not the ceiling the sensor has.

image-processingsensorsfundamentals
Read more →
Fundamentals
·9 min read Intermediate

High Dynamic Range: Merging a Bracket, Then Checking It Against a Meter

Eighteen exposures of a 17-stop scene, merged into one radiance map, calibrated with a single scale factor fitted on one patch, then compared with the colorimeter readings taken in the room. Across all 48 patches (the anchor included) the median error is 0.198 stops, 0.109 across the neutral patches, and every large error is at the dark end.

image-processingsensorsfundamentals
Read more →
Fundamentals
·14 min read Beginner

Image Formation: How a Camera Flattens the World Onto a Sensor

How to predict where any point in the world lands in a photograph, and undo what the lens did on the way. One pipeline, from a point to its ray to the lens's bend to a pixel, with focus as a side question, measured on public photographs: a real lens moves a corner 51 px, and a fisheye fitted with the wrong model misses by 7.3 px against 0.64 px with the right one.

camera-calibrationopticsfundamentals
Read more →
Fundamentals
·8 min read Intermediate

How Close Is Your Colour to the Real Thing?

Lesson 5 of The Image as Data. Converting between colour spaces is exact arithmetic; deciding what the numbers mean physically is a fit. Checked against a colorimeter on 22 chart patches: treating the developed file as sRGB lands 9.54 ΔE*ab from the light in the room, the camera's own published matrix does no better, and a 3x3 fitted here and scored on patches it never saw reaches 2.41.

image-processingcolor-spacesfundamentals
Read more →