Visual egg inspection

Egg inspection on the conveyor, in real time and without a black box

Vigiovo is visual inspection software that grades eggs on a conveyor as clean, dirty, cracked or unverified. It uses classical computer vision, with no neural networks and no training: the same image always gives the same result, and every decision comes with the measurements behind it. It runs at about 90 frames per second on an ordinary CPU.

Updated

Brown and cream eggs on a roller conveyor, each outlined: green for clean, red for dirty with a visible stain, orange for cracked with the crack line highlighted.

What Vigiovo grades

Every visible egg gets exactly one of four classes. Eggs that can't be seen whole are never guessed at.

Clean
Intact shell, with no stains or cracks above the limits. Goes on to packing.
Dirty
Faeces, blood, soil or yolk stains covering 3% or more of the visible shell, measured against that egg's own shading.
Cracked
A thin, elongated line (at least 5 times longer than wide) that runs into the shell and measures 0.8 egg radii or more.
Unverified
Egg cut off by the frame edge, overlapping another or oddly shaped. Sent to manual review instead of getting a made-up grade.

Conveyor demo

Each egg is outlined in its class colour and measured 3 times as it crosses the frame, like the 1/3, 2/3 and 3/3 checks on a quality-control panel. The panel in the corner totals the eggs already graded.

Synthetic conveyor with known ground truth: green = clean, red = dirty, orange = cracked. Running at ~90 frames/s on one CPU core.

How it works, in six steps

No step learns from data. Each one is a classical image operation with fixed, readable limits.

  1. Colour maskSeparates shell (warm and bright) from rollers (grey and dark) with hue, saturation and brightness limits.
  2. Camera-independent scaleDownscales until each egg is ~12 px in radius. Every limit is a multiple of that radius.
  3. Splitting touching eggsDistance transform, h-maxima seeds and watershed, only on blobs that hold more than one egg.
  4. DirtFits a quadratic surface to each egg's shading and measures what departs from it, plus colour deviation in Lab space.
  5. CracksBlack-hat and top-hat filters find lines; only long, thin lines that run into the shell count.
  6. Decision and votingFixed thresholds decide each measurement; on video an egg is rejected only if the defect shows up in 2 of 3 checks.

Read the full technical explanation →

Measured speed and accuracy

Measured with the project's own benchmark commands on a single Apple Silicon CPU core, no GPU.

Vigiovo performance
MetricResultConditions
Latency per frame (video)~11 ms mean, ~15 ms p95960×540, ~45 eggs on screen
Frame rate~90 frames/sSame video, one CPU core
Single image, every egg measured~41 ms1228×691, 54 eggs
Per-egg accuracy, tracked video98.7% (376 of 381)Synthetic scenes with ground truth
Per-egg accuracy, single frame~95%Synthetic scenes with ground truth
Clean eggs rejected0All synthetic tests

Accuracy figures come from synthetic scenes with ground truth, not from a production line. In a pilot, the system is calibrated and measured on images from your own conveyor.

Deterministic vision or AI?

Neural networks are the usual choice for visual inspection. For a well-defined task like sorting clean, dirty and cracked eggs, measured rules have practical advantages, and one clear limit.

Vigiovo compared with neural-network classifiers
CriterionVigiovo (deterministic)AI classifier
Same image, same resultAlwaysDepends on model version and hardware
Explains each decisionYes: stain area, crack length, shapeUsually just a score
Data to get startedA few hundred labelled eggs, to calibrateThousands of labelled images, to train
HardwareOrdinary CPU, no GPUUsually a GPU or accelerator
Fine-tuningReadable thresholds in a config fileRetraining the model
Rare, highly varied defectsLimited to what the rules describeLearns patterns, given enough data

Limitations

What Vigiovo doesn't do, so you can decide with the full picture:

Pilot programme

Vigiovo is opening pilots with egg farms and grading stations in Brazil. A pilot needs:

The outcome is an accuracy report measured on your line and a configuration calibrated for it.

Egg grading guides

References with official sources on cracked eggs, dirty eggs, candling and the grading rules.

All resources →

Frequently asked questions

What is Vigiovo?

Vigiovo is visual inspection software that grades eggs on a conveyor as clean, dirty, cracked or unverified from camera images. It uses classical, deterministic computer vision, runs on an ordinary CPU at about 90 frames per second, and explains every decision with the measurements that produced it.

Does Vigiovo use artificial intelligence?

No. There are no neural networks, trained models or randomness. Vigiovo uses classical image-processing operations (colour thresholds, distance transform, watershed, mathematical morphology and least-squares fitting) with fixed, readable limits. The same image with the same configuration always produces the same result.

Which egg defects does it detect?

Shell dirt (faeces, blood, soil, yolk) covering 3% or more of the visible area, and visible cracks: thin, elongated lines that run into the shell. Eggs cut off by the frame edge, overlapping or abnormally shaped are marked unverified and sent to manual review.

How fast is the grading?

About 11 ms per frame on 960×540 video with ~45 eggs on screen, or ~90 frames per second on a single CPU core. A single image with 54 eggs, all measured, takes ~41 ms. On video, each egg is measured 3 times as it passes and is only tracked the rest of the time.

Does it need a GPU or a special camera?

No. Vigiovo runs on an ordinary CPU and works with any fixed camera above the conveyor, as long as the lighting is diffuse. High resolution isn't needed: for segmentation the image is downscaled until each egg is about 12 pixels in radius.

Does Vigiovo detect hairline cracks?

Only cracks that are visible in the image. Hairline cracks that don't show under normal light need candling (light behind the egg) or acoustic testing. Vigiovo complements those methods by removing dirty and visibly cracked eggs before them.

Does it work with white eggs?

The default colour limits target brown and cream shells. White or bluish eggs work by adjusting the hue and saturation limits in the configuration, which is part of pilot calibration.

How is the system calibrated for my line?

With a few hundred images of eggs from your conveyor, labelled by your team. The dirt, crack and colour thresholds are adjusted until the results match the labels. Every decision records how close the egg was to the limit, which makes tuning straightforward.