Research record

Nineteen experiments. One clear lesson.

Model architecture mattered. Dataset quality mattered more. MIRA progressed from a 61% classifier to a 90.58% mAP50 detector through measured iteration.

Best detectorEXP-019
mAP5090.58%
mAP50-9582.15%
Precision87.2%
Recall84.6%

From image labels to object locations.

MIRA began as a four-class image classifier. It then moved to five-class object detection so multiple materials could be located in the same frame.

Stage A

Classification established the baseline.

A custom CNN reached 61.0% validation accuracy. MobileNetV2 transfer learning raised that to 87.42%, which remained unchanged after INT8 export.

EXP-001
61.00%
EXP-002
84.28%
EXP-003
87.42%
EXP-004
87.42%
Stage B

Detection exposed the data problem.

Early YOLO experiments varied from 35.0% to 82.3% mAP50. Mixing more sources did not guarantee better generalization.

EXP-005
82.3%
EXP-011
35.0%
EXP-014
60.7%
EXP-017
59.3%
Breakthrough

Clean and balanced beat simply larger.

Rebuilding the dataset around controlled tabletop examples produced 90.6% mAP50 in EXP-018. EXP-019 repeated the result.

EXP-018
90.60%
EXP-019
90.58%

The complete result, through EXP-019.

Every chart below is generated from the latest recorded experiment values, with the underlying data available to screen readers.

Stage B · mAP50

Detection experiments

90.58%
All recorded detector runs. EXP-018 and EXP-019 reproduce the large gain from the cleaned dataset.
Stage A · validation accuracy

Classification baseline

87.42%
Transfer learning. MobileNetV2 created the first major performance gain.
EXP-019 · mAP50

Per-class results

5 classes
Tabletop validation. Plastic is the lowest class at 81.1%; trash is highest at 97.5%.
EXP-019 · dataset

Current split

6,898 images
Clean balanced dataset. 5,108 train, 415 validation, and 1,375 test images; the independent test split remains unevaluated.

EXP-019

The current reference model.

YOLO11n trained for 120 epochs on a clean balanced dataset, then exported to PyTorch, ONNX, and quantized TFLite.

Dataset

Train images
5,108
Validation images
415
Test images
1,375
Bounding boxes
12,832

Model

Parameters
2,583,127
Compute
6.3 GFLOPs
Epochs
120
Training time
2.672 h

Exports

PyTorch
5.47 MB
ONNX
10.61 MB
TFLite 320
3.02 MB
TFLite 640
3.04 MB

Accuracy versus portability.

The TFLite export is smaller and intended for edge testing, but target-hardware benchmarking is still pending.

Development model

PyTorch .pt

90.58%

mAP50 at 640 px

  • 5.47 MB
  • Full Ultralytics workflow
  • Recommended desktop reference
-4.38mAP50 points
Edge candidate

INT8 TFLite

86.2%

mAP50 at 320 px

  • 3.02 MB
  • Quantized weights, FP32 I/O
  • Hardware validation pending

A high validation score is not the finish line.

Crumpled paper

White crumpled paper can be classified as plastic with high confidence, so thresholding alone cannot solve the error.

Can orientation

Metal cans facing the camera opening-first can disappear because the training set contains fewer examples of that view.

Occlusion

Stacked or overlapping objects reduce bounding-box quality, particularly for paper and trash.

Target hardware

Raspberry Pi latency, memory use, and complete robotic sorting have not yet been benchmarked.

Every major workflow is exposed through the CLI.