Repository navigation
Evaluate Project516's rebuilt-fuel model and make its export reproducible - #3
Project516 wants to merge 1 commit into
Conversation
3699d68 to
7262ee9
Compare
|
@allengregoryiv @SpectrumFRC3847 ready for a review. Rebased onto What I would like checked:
Caveats worth weighing before anyone acts on this: 13 held-out balls, so one miss moves recall by 0.077. These are phone photos, not our camera. Team 2826's numbers come from the int8 TFLite while the Jetson runs an FP16 engine, so they may be understated. The main practical value here is that |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Evaluation metrics and preprocessing do not currently match the stated reproducibility requirements, with additional cache and dependency-pinning issues.
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
Adds reproducible export and evaluation tooling for Project516’s YOLO26n fuel model alongside Team 2826’s model.
Changes:
- Adds pinned model download, verification, and ONNX export validation.
- Adds colour/gray evaluation tooling.
- Updates documentation with results and usage guidance.
| File | Summary |
|---|---|
tools/fuelmodel/requirements.txt |
Defines export and evaluation dependencies; exporter dependencies are not fully pinned. |
tools/fuelmodel/README.md |
Documents setup and usage. |
tools/fuelmodel/export.py |
Downloads, verifies, and exports the model. |
tools/fuelmodel/eval.py |
Evaluates both models; AP calculation, preprocessing padding, and cached split handling require changes. |
README.md |
Updates model attribution. |
docs/GAME-PIECE-MODELS.md |
Records results and recommendations. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
9916ac0 to
e3d3952
Compare
…t with Team 2826's
e3d3952 to
9a45f4a
Compare
|
@allengregoryiv ready for a review when you have a moment. Rebased onto |


What this changes
Checks whether Project516's rebuilt-fuel YOLO26n (v1) can replace or sit beside Team 2826's YOLO11n on the Jetson, and makes the export reproducible.
tools/fuelmodel/export.pyreplaces the laptop-only~/build/yolo/export_fuel.py. It downloadsrebuilt-fuel-model-v1.ptat a pinned Hugging Face revision, checks its SHA-256, exports the raw head, and fails unless the ONNX output is[1, 5, 8400], the layoutdetector/TensorRtYoloJNI.cureads.tools/fuelmodel/eval.pyscores both models on the 53 rebuilt-fuel photos, in colour and in gray (what a mono Thriftiest Cam gives the model). Both models go through the same letterbox, NMS at IoU 0.45 and COCO-style AP (101-point interpolation with step precision, as pycocotools does). Team 2826's model is PhotonVision's int8 TFLite at a pinned commit. The photos,train.txtand the TFLite are all pinned, and the downloads are checked by SHA-256.docs/GAME-PIECE-MODELS.mdgets the results and an updated "Which to use".tools/fuelmodel/requirements.txtand the README pin the export dependencies, including torch and torchvision, to the versions the Actions run used.Rebased onto
mainatab6e086on 2026-10-12. The rebase had no conflicts, and main's new commits don't touchtools/fuelmodelordocs/GAME-PIECE-MODELS.md.Results
Run on GitHub Actions, 2026-09-30, after the AP fix. "Held out" is the 11 photos v1 did not train on, rebuilt from v1's own split.
Checks
project516_yolo26n_fuel_v1_raw.onnxwith output[1, 5, 8400], onnxruntime ran it, and eval.py printed the table above. Last run: https://github.com/Project516/SpectrumJetson/actions/runs/36801619049scripts/ci/lint.sh(main's new lint job) is clean on the rebased branch.12-install-yolo-model.shhas built v1's raw ONNX before, per the existing notes in GAME-PIECE-MODELS.md.Noticed, not fixed
train.txtin rebuilt-fuel lists 54 photos, but the dataset has 53. v1's training script skipped the missing one, and eval.py does the same..pt, which may score a little higher.