--- 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.