Model Evaluation

Know which model wins.See where it loses.

Score models against ground truth, compare them on the same test set, and decide what to label or train next.

Evaluate Object Detection

YOLO11s v5 against ground truth · 412 test images

mAP 50:95.671IoU .50 to .95
AP50.874IoU .50
AP75.742IoU .75
F1.722at best-F1 threshold .43

Wrong class errors cost the most: fixing them alone would raise mAP from .671 to .748. Unripe scores well below the average, and small berries are much harder to find.

AP by class

  • Ripe.742
  • Flower.694
  • Unripe.577

AP by object size

  • Small.452
  • Medium.703
  • Large.781
Hardest images

Lowest F1 first. White boxes are right, orange are wrong, dashed were missed.

F1 .31
F1 .38
F1 .42
F1 .45

Compare Object Detectors

3 models on the same 412 test images

ECDet-S v8

Selected as the overall winner based on mAP

  • mAPECDet-S
  • AP50YOLO11s
  • AP75ECDet-S
  • PrecisionDEIMv2-N
  • RecallYOLO11s
  • F1ECDet-S
  • ECDet-S v8
  • YOLO11s v5
  • DEIMv2-N v3

Key metrics

mAP.684.671.652
AP50.881.894.862
Recall.742.761.703

Average precision by class

Ripe
Unripe
Flower
Error profile by model
ECDet-S v8641187139
YOLO11s v5839212644
DEIMv2-N v3581514952
  • Wrong class
  • Missed
  • False alarm
  • Loose box
Images to inspect
Biggest disagreement
Where the winner falls behind
Hard for every model

Evaluate Prelabeling Efficiency

YOLO11s v5 boxes against 200 images labeled by people

.74Assistance score
Strong assist

Labelers can accept 7 of 10 boxes as they are and fix most of the rest with a nudge.

Correct boxes1,48671% of all objects
Mean IoU.86on correct boxes
Shifted boxes214right object, loose box
Confused classes97right box, wrong class
False positives162to delete
False negatives131to draw by hand
What labelers will get

Pre-labels on a sample image, checked against what a person drew.

shiftedripe
  • Accept as is · 5
  • Fix · 2
  • Draw by hand · 1

Active Learning Curve

mAP on the same test set after each labeling cycle

Labeled images2,5006 cycles
mAP now.676all data: .689
Last cycle+.005for 500 more images
mAP by labeled imagesTest set v4 · 412 images

The curve is flattening: the last 500 images added .005 mAP. More of the same data will barely help; label harder cases instead.

Cycles
CycleImagesmAPGain
1250.418—
2500.531+.113
31,000.612+.081
41,500.652+.040
52,000.671+.019
62,500.676+.005

Evaluation built into your workflows

Other tools stop at a dashboard. In OvalBee every report is a node, and the rest of your flow acts on what it finds.

  • Results the next step can use

    Every evaluation is a node. The winning model, flagged label errors and a recommended config go straight on through the flow.

  • One test set for every model

    Pin the test set to a version, and every model scored on it lands on the same leaderboard.

  • Score any model

    Evaluation compares predictions with ground truth, so a model trained outside OvalBee is scored the same way.

  • Re-score every new version

    Point evaluation at @latest, and each retrained model is tested the moment it finishes.

Diagnostics

A score says how much. The report says why.

Every evaluation breaks the result down by error type, class, scene and image, so you know what to fix before you spend another GPU hour.

Pick the best model for your data

The winner changes with what you measure. Rank up to five models on all images, small objects, one class or crowded scenes.

Comparing 4 object detectors

Each model scored on the same test set

Best model on
ECDet-Sv8.684.446.589.603.742.594.664.672
YOLO11sv5.671.512.571.552.761.688.682.629
DEIMv2-Nv3.652.409.618.531.703.552.711.598
D-FINE-Sv2.637.431.554.588.695.577.641.661

ECDet-S v8 wins on mAP, 1.3 points ahead of YOLO11s v5.YOLO11s v5 finds 16% more small berries than the overall winner.DEIMv2-N v3 ranks third overall but tells unripe berries apart best.ECDet-S v8 keeps its lead where berries overlap. DEIMv2-N v3 drops the most.

Biggest disagreement

  • ECDet-S v89 of 10 found
  • YOLO11s v56 of 10 · 1 false alarm

Where the winner falls behind

  • YOLO11s v56 of 6 found
  • ECDet-S v83 of 6 found

Biggest disagreement

ripeunripeunripe
  • DEIMv2-N v35 of 5 · classes right
  • ECDet-S v84 of 5 · 1 wrong class

Biggest disagreement

  • ECDet-S v87 of 7 found
  • DEIMv2-N v34 of 7 · 1 merged box

See what each error costs

The report sorts every mistake by type and works out how much mAP fixing that type would win back. Start with the one that pays most.

Error decomposition

ECDet-S v8 · what fixing each error type would buy

If fixed, mAP goes up by

  • Wrong class+.137
  • Missed object+.087
  • False alarm+.027
  • Loose box+.010

See which classes it mixes up

A confusion matrix and the most swapped pairs, with the images where the model mixes them up.

Confusion matrix

Unripe predicted as ripe

Catch mistakes in the labels

Confident predictions that contradict the labels go to review: not every error is the model’s.

Wrong GT class

The label says ripe.
The model says unripe, and it is right.

Find the scenes where it breaks

Split every score by object size, crowding or your own tags, such as camera, site or weather.

mAP by tag

  • Greenhouse.721
  • Open field.683
  • Overcast.642
  • Backlit.412

Recall by objects per image

Set the threshold that fits

The report starts at the confidence with the best F1. Move it to trade missed objects for false alarms.

  • Auto, best F10.37F1 .825
  • Your choice0.70F1 .701
0.370.70

Act on the results

Don’t stop at the report

Evaluation is a node like any other. Its findings start the next labeling task, the next training run or the next release, in the same flow.

  • Fix the ground truth

    Images where the model is sure and the labels disagree go back to labeling as tasks.

  • Release only what wins

    The comparison outputs its winner, and an AI gate checks it against the rules you write.

  • Tune the next run

    Recommend training config raises image size or epochs where the errors point.

  • Know when to stop labeling

    Active learning curve shows whether more labeled images still raise mAP.

From benchmark to production

Choose with evidence, then ship it

The overall winner is not always the right model. Keep every score side by side, and deploy the version that wins where it matters to you.

Benchmarks

Every model on one leaderboard

Each evaluation is saved with the version it scored and ranked against everything tested on the same data before.

  • Ranked by mAP
  • Filter by test set version
  • Warns when classes differ
  • Shows what is deployed

Deployment

Serve the version you chose

Run a version as an HTTP endpoint on the machine you pick, or export it to run on your own hardware.

  • Version or alias
  • API token on every request
  • Logs and a live report
  • ONNX and TensorRT export

Capabilities

Everything an evaluation needs

  • Metrics

    mAP 50:95AP50 and AP75PrecisionRecallF1Mean IoUCalibrationCustom IoU

  • Breakdowns

    Per classObject sizeObjects per imageOverlap between objectsSplit by tags

  • Error analysis

    ClassificationLocalizationBackgroundMissedDuplicatesmAP gained if fixedWritten diagnosis

  • Images

    Hardest imagesBiggest disagreementWhere the winner falls behindPrediction galleryPer-image scores

  • Thresholds

    Best-F1 thresholdYour own thresholdPrecision-recall curvesConfidence distributionReliability diagram

  • Comparison

    Two to five modelsComparability checksMetric leadersClasses wonImages wonWinner as an output

  • Label quality

    Missing labelsWrong classesLoose boxesReview queuePre-labeling efficiency

  • Automation

    Models at @latestSchedulesAI gateRecommend training configActive learning curveAI agents over MCP

  • Results

    Benchmarks leaderboardScores on each versionHTTP endpointsONNX and TensorRTHTML and PDF reports

FAQ

Model evaluation questions

Which tasks can OvalBee evaluate?

Object detection: scoring a single model, comparing up to five, measuring pre-labeling efficiency and tracking an active learning curve. Evaluation for classification, segmentation and tracking is on the way. If your project needs it now, tell us during onboarding.

Can I evaluate a model trained outside OvalBee?

Yes. Evaluation compares a dataset of predictions with a dataset of ground truth, so it does not matter where the model came from. Upload its weights with the Upload model node and run a predict node, or import predictions you already have.

How do I know a comparison is fair?

Pin the test set to a version, so it cannot change between runs. Before ranking, the comparison checks that every model was scored against the same ground truth, classes and thresholds, and Benchmarks warns when the class sets of two runs differ.

How is the winner chosen?

By the highest mAP; a shared top score is reported as a tie. The report also names the leader in AP50, AP75, precision, recall and F1, and the winner is an output of the node, so the next step in the flow can use whichever model won.

What does “mAP gained if fixed” mean?

Every wrong or missing box is sorted into one type: wrong class, loose box, background, missed object or duplicate. The report then recomputes mAP as if one type of error were fixed, which shows where more data or a different setup would pay off most.

Why does a class score zero?

Most often its name differs between the ground truth and the model, for example stop_sign and stop sign. Unmatched names count as missed objects, and the frequently confused classes section of the report shows such pairs with a confusion of 1.0.

How is the confidence threshold chosen?

By default, the report picks the threshold with the best F1. You can set your own threshold, IoU from 0.50 to 0.95 and the maximum number of detections per image, and every number in the report follows.

Can I deploy the model that wins?

Yes. Deploy a YOLO version as an HTTP endpoint on the machine you choose, with an API token on every request and logs in the app. YOLO, D-FINE, RT-DETRv2 and DEIMv2 models also export to ONNX and TensorRT for your own hardware.

Can I share a report?

Yes. Save any report as HTML or print it to PDF. Every run also stays attached to the model version it scored, so the evidence behind a decision does not get lost.