VialSight

Image AI for the cold chain

Every vaccine vial carries a heat label.
VialSight reads it for you.

The Vaccine Vial Monitor is a small square inside a circle. When the square turns as dark as the circle, the vaccine has had too much heat and must be thrown away. Health workers judge this by eye, on over a billion labels a year. VialSight measures it, applies the WHO rule, and shows the number behind every call.

Loading the vision engine…

How it reads a label

No AI model makes the decision. Image processing finds and measures the label, and an exact rule decides.

  1. FindContours and an ellipse fit locate every outer circle in the frame, at any size or rotation.
  2. StraightenEach ellipse is resampled into a front-on circle, which undoes the camera's tilt.
  3. MeasurePixels move to CIELAB, a colour space built on human lightness. The square's centre is compared with the circle's ring.
  4. Self-calibrateThe circle is the label's own reference colour. A fitted plane across it cancels uneven light, so no colour card is needed.
  5. DecideWHO rule: discard when the square is the same as or darker than the circle. Glare, blur, tilt or an unstable reading asks for a rescan instead of a guess.
WHO graphic: square lighter than circle means use; square matching or darker than circle means discard.
The WHO reading rule. VialSight reads all three labels in this graphic correctly (try "WHO reference labels" above).

Accuracy, measured

Synthetic trays with known ground truth: every square is set to a known lightness offset from its circle, then hit with uneven light, colour cast, tilt, rotation, glare, noise and blur. Run it yourself.

Why not just ask an AI?

We asked a state-of-the-art vision-language model, Qwen3-VL-30B, the same question on the same labels. Reading a few lightness units of difference is a measurement, not a description.

Limits, honestly