junbin666's picture
Publish Tiny Vial CNN synthetic baseline
ba7940e verified
|
Raw History Blame Contribute Delete
3.49 kB
---
language:
- en
license: mit
library_name: pytorch
pipeline_tag: object-detection
datasets:
- junbin666/isaac-blue-vial-sdg-contract
tags:
- nvidia
- isaac-sim
- synthetic-data
- robotics
- sim-to-real
- tiny-cnn
model-index:
- name: Tiny Vial CNN SDG Baseline
results:
- task:
type: object-detection
name: Single-object bounding-box regression
dataset:
type: junbin666/isaac-blue-vial-sdg-contract
name: Isaac Blue Vial SDG Contract
split: test
metrics:
- type: iou
value: 0.893093
name: Mean IoU
- type: accuracy
value: 1.0
name: Success at IoU >= 0.5
---
# Tiny Vial CNN SDG Baseline
![Prediction example](examples/test-frame-000006-prediction.png)
A 141,292-parameter PyTorch CNN that regresses one `blue_vial` bounding box
from a 64×64 RGB image. It is the deliberately small baseline for the
[Isaac Sim-to-Real VLA Lab](https://huggingface.co/spaces/junbin666/isaac-sim2real-vla-lab)
and was trained on
[`junbin666/isaac-blue-vial-sdg-contract`](https://huggingface.co/datasets/junbin666/isaac-blue-vial-sdg-contract).
This is an **educational offline-contract baseline**, not a production object
detector or evidence of real-world robotics performance.
## Results
| Evaluation | Result |
| --- | ---: |
| Best validation mean IoU | 0.869151 |
| Test mean IoU | 0.893093 |
| Test success at IoU ≥ 0.5 | 1.0 (9/9) |
| Parameters | 141,292 |
The test split contains only positive synthetic frames. These results do not
measure false positives, object-presence classification, real-camera
generalization, occlusion, multi-object detection, or Isaac Replicator imagery.
## Files
- `model.safetensors`: recommended state dict
- `pytorch_model.pt`: original checkpoint loaded with `weights_only=True`
- `config.json`: architecture and preprocessing contract
- `inference.py`: standalone inference and PNG overlay example
- `eval_results.json`: per-frame held-out results
- `training_metrics.jsonl`: 20-epoch training history
- `release_report.json`: hashes and release verification
## Inference
```bash
pip install -r requirements.txt
python inference.py examples/test-frame-000006.png \
--weights model.safetensors \
--output prediction.png
```
Expected box for the included example: `[29, 20, 44, 47]`.
The model outputs normalized `(center_x, center_y, width, height)` and the
script converts it to pixel `[x_min, y_min, x_max, y_max]` coordinates.
## Architecture and training
- Three stride-2 convolution layers: 3→12→24→32 channels
- ReLU activations and a two-layer bounding-box head
- Smooth L1 loss and Adam optimizer
- Input: RGB, resized to 64×64 and scaled to `[0, 1]`
- Seed: 7; CPU training; 20 epochs; batch size 16; learning rate 0.003
- Training uses positive frames only. Dataset negatives are reserved for a
future objectness/classification head.
## Intended use
- Reproduce a tiny synthetic-data bounding-box baseline
- Exercise checkpoint loading, evaluation, and inference contracts
- Demonstrate transparent mock/real boundaries in a robotics portfolio
## Limitations
Do not use this checkpoint for safety-critical manipulation, production
robotics, or real-world claims. It assumes one visible blue vial and cannot
express “no object.” Its synthetic renderer and sample count are intentionally
small, and all held-out results are in-domain.
## License
The model code and weights are released under the MIT License. The associated
dataset is CC BY 4.0.