YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
- Model Checkpoints
- 1. Corner Detector β
ml/checkpoints/basket_edges_resnet18.pth - 2. Sand UNet v1 β
ml/checkpoints/sand_unet.pth - 3. Sand UNet v2 β
ml/checkpoints/sand_unet_v2.pthβ - 4. Warped EffNet v1 β
ml/checkpoints/fill_warped_effnet.pth - 5. Warped EffNet v2 β
ml/checkpoints/fill_warped_effnet_v2.pthβ - 6. Warped ResNet18 β
ml/checkpoints/fill_warped_resnet18.pth - 7. Multi-task EffNet β
ml/checkpoints/multitask_effnet.pth - 8. HF EfficientNet β
ml/checkpoints/best_model.pth - Quick Reference
Model Checkpoints
Here are every model checkpoint and what each one does, in the order it was created.
1. Corner Detector β ml/checkpoints/basket_edges_resnet18.pth
Purpose: Predict the 4 corners of the basket rim from any camera frame.
- Architecture: ResNet18, ImageNet-pretrained, classifier replaced with
Linear(512 β 8)+Sigmoid - Input:
224Γ224normalized RGB frame (full camera image) - Output: 8 floats in
[0,1]β normalized(x, y)for each of 4 corners - Training script:
ml/train_basket_edges.py - Trained on: 427 hand-labeled rows in
basket_edges.csv - Loss: SmoothL1
- Validation MAE:
1.74%normalized (β 1β2% of image dimension per coord) - Use: Stage 1 of the warped-fill pipeline; gives corners β perspective warp
- Status: Production-ready. This is your active corner detector.
2. Sand UNet v1 β ml/checkpoints/sand_unet.pth
Purpose: Predict per-pixel sand probability mask on a warped basket crop.
- Architecture: Custom TinyUNet β 840k params, 4 down/up steps, sigmoid output
- Input:
256Γ128normalized RGB perspective-warped basket crop - Output:
1Γ128Γ256sand probability mask - Training script:
ml/train_sand_unet.py - Trained on: 248 rows from
basket_edges.csv - Loss:
L1(mean(mask), fill_pct/100) + 0.5Β·TV + 0.3Β·saturation - Validation MAE:
8.47%(25-frame val) - Special: Weakly supervised β never sees pixel labels, learns from scalar
fill_pct - Status: Superseded by v2. Kept for reference.
3. Sand UNet v2 β ml/checkpoints/sand_unet_v2.pth β
Purpose: Same as v1 but on the extended dataset with color augmentation.
- Architecture: Same TinyUNet (840k params)
- Input: Same β
256Γ128warped crop - Output: Same β
1Γ128Γ256mask - Training script:
ml/train_sand_unet.py --color_aug - Trained on: 577 rows from
basket_edges_extended.csv(hand + predicted corners) - Augmentation:
ColorJitter(brightness/contrast/saturation/hue)β fixes light-beige sand - Validation MAE:
5.28%(115-frame val) - Status: Current best UNet. Use this for fill % + spatial mask.
4. Warped EffNet v1 β ml/checkpoints/fill_warped_effnet.pth
Purpose: Direct fill regressor on warped crops.
- Architecture: EfficientNet-B0, ImageNet-pretrained, classifier
Linear(1280 β 1)+Sigmoid - Input:
224Γ224resized warped basket crop - Output: 1 float β fill in
[0,1] - Training script:
ml/train_fill_warped_effnet.py - Trained on: 248 rows
- Augmentation:
RandomHFlip,RandomPerspective,ColorJitter - Training phases: Head-only (8 ep) β fine-tune last 3 blocks (20 ep)
- Validation MAE:
7.34% - Status: Superseded by v2.
5. Warped EffNet v2 β ml/checkpoints/fill_warped_effnet_v2.pth β
Purpose: Same as v1 but on extended dataset.
- Architecture: Same EfficientNet-B0
- Input: Same
- Output: Same
- Trained on: 577 rows
- Training phases: Head-only (8 ep) β fine-tune last 3 blocks (25 ep)
- Validation MAE:
3.77%(115-frame val) - Status: Current best fill regressor when you don't need a mask.
6. Warped ResNet18 β ml/checkpoints/fill_warped_resnet18.pth
Purpose: Earlier baseline, dominated by EffNet.
- Architecture: ResNet18, ImageNet-pretrained
- Input:
224Γ224warped crop - Trained on: 130 rows
- Augmentation: None
- Validation MAE:
9.79% - Status: Obsolete. Kept only as a sanity-check baseline; don't use.
7. Multi-task EffNet β ml/checkpoints/multitask_effnet.pth
Purpose: Single model that predicts BOTH corners and fill percent in one forward pass.
- Architecture: EfficientNet-B0 backbone β split into corner head (8 floats) + fill head (1 float)
- Input:
224Γ224full camera frame - Output:
(corners, fill)β both from one inference - Training script:
ml/train_multitask.py - Trained on: 248 rows
- Augmentation:
albumentations:HFlip + Affine + brightness/contrast/saturation/hue + RandomShadow - Loss:
SmoothL1(corners) + 0.5Β·MSE(fill)(masked when fill missing) - Validation MAE: corner
7.04%/ fill9.65% - Status: Worse than two specialist models. Useful only for single-pass-inference latency requirements. Negative-result reference.
8. HF EfficientNet β ml/checkpoints/best_model.pth
Purpose: Production fill model your team trained externally, hosted on HuggingFace.
- Architecture: EfficientNet-B0, classifier
Linear(1280 β 1)+Sigmoid(same as v2) - Input:
224Γ224full camera frame - Output: 1 float β fill in
[0,1] - Training: Done before this session, possibly on the same training set we're evaluating on
- Repository:
Azamatas/truck-fullness-detector - Auto-download: Via
ml/predict.py - Validation MAE:
3.85%on the 115-frame val (suspect: probably saw most of these in training) - Status: Currently wired into
server_side/myapp/fullness.py. Production model. Likely overfit; real-world accuracy unknown.
Quick Reference
Predict basket corners on a new frame
- Model:
basket_edges_resnet18.pth - Validation MAE:
1.74%
- Model:
Get a fill number, no debugging needed
- Model:
fill_warped_effnet_v2.pth - Validation MAE:
3.77%
- Model:
Get fill + a spatial sand mask you can inspect
- Model:
sand_unet_v2.pth - Validation MAE:
5.28%
- Model:
End-to-end fill (corners β warp β fill)
- Model: EffNet v2 + corner detector
- Validation MAE:
3.81%mean / β2%median
Best blend (no data leak)
- Model:
0.7Β·EffNet_v2 + 0.3Β·UNet_v2 - Validation MAE:
3.51%/1.98%median
- Model:
Single-pass corners + fill (latency-bound)
- Model:
multitask_effnet.pth - Validation MAE:
7% / 10%
- Model:
Production today (with caveat)
- Model:
HF best_model.pth - Validation MAE:
~3.9%(suspect leak)
- Model: