junbin666's picture
Evaluate v2 on 100 synthetic hard negatives
61774cf verified
|
Raw History Blame Contribute Delete
4.11 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
- objectness
- tiny-cnn
model-index:
- name: Tiny Vial CNN SDG Objectness v2
results:
- task:
type: object-detection
name: Object presence and single-object localization
dataset:
type: junbin666/isaac-blue-vial-sdg-contract
name: Isaac Blue Vial SDG Contract
split: model-specific test holdout
metrics:
- type: precision
value: 1.0
name: Objectness precision
- type: recall
value: 1.0
name: Objectness recall
- type: iou
value: 0.885074
name: Positive mean IoU
---
# Tiny Vial CNN SDG Objectness v2
Tiny CNN v2 adds an explicit objectness head to the v1 bounding-box baseline.
It can return “no object” for negative synthetic frames before producing a
single `blue_vial` box. It supports the public
[Isaac Sim-to-Real VLA Lab](https://huggingface.co/spaces/junbin666/isaac-sim2real-vla-lab)
and uses
[`junbin666/isaac-blue-vial-sdg-contract`](https://huggingface.co/datasets/junbin666/isaac-blue-vial-sdg-contract).
This is an educational synthetic-data checkpoint, not a production detector or
safety claim.
## Test results
| Metric | Result |
| --- | ---: |
| Precision | 1.000 |
| Recall | 1.000 |
| False-positive rate | 0.000 |
| Observed false positives | 0 / 100 negatives |
| FPR upper bound (95%, rule of three) | 0.030 |
| Accuracy | 1.000 |
| Positive mean IoU | 0.885074 |
| IoU ≥ 0.5 on positive frames | 1.000 |
The model-specific test holdout contains **109 frames: 9 positive and 100
synthetic hard negatives**. Its observed FPR is 0/100. With no observed
failures, the rule-of-three gives an approximate one-sided 95% FPR upper bound
of **3%**; this is more informative than the earlier two-negative check, but it
is not evidence of real-camera robustness.
The public dataset repository keeps its original 81/10/9 split. For this v2
release, a separate deterministic 300-frame synthetic hard-negative suite is
divided 180/20/100 across train/validation/test. Its eight challenge families
include empty scenes, distractor-colored vials, blue geometric objects,
occlusion, and multiple blue boxes. Positive frames retain their original
source splits, and the 100 test negatives are never used for fitting or
threshold selection.
## Architecture
- 64×64 RGB input
- Three stride-2 convolution layers: 3→12→24→32
- Shared 64-unit representation
- One objectness logit plus four sigmoid box values
- BCE-with-logits objectness loss
- Smooth L1 box loss, applied only to positive samples
- 141,357 parameters
## Files
- `model.safetensors`: recommended state dictionary
- `pytorch_model.pt`: original checkpoint, load with `weights_only=True`
- `config.json`: preprocessing, threshold, and output contract
- `inference.py`: standalone positive/negative inference
- `eval_results.json`: confusion counts and per-frame held-out results
- `training_metrics.jsonl`: deterministic training history
- `release_report.json`: hashes and package verification
## Inference
```bash
pip install -r requirements.txt
python inference.py examples/positive-000006.png --weights model.safetensors --output prediction.png
python inference.py examples/negative-000200.png --weights model.safetensors --output negative.png
```
The JSON output includes `detected`, `objectness_score`, `threshold`, and an
optional pixel-space `bbox`.
## Limitations
The training and evaluation images come from small procedural renderers. The
checkpoint has not been tested on a real camera, Isaac Replicator output,
unfamiliar real containers, or safety-critical robot motion. The expanded
hard-negative suite exercises synthetic occlusion and multi-object distractors,
but cannot measure real-world domain shift. A robust release still needs real
camera evaluation, broader failure-mode coverage, and calibrated uncertainty.
## License
Model code and weights use the MIT License. The associated dataset uses CC BY
4.0.