Drag the scene to look around. Tap the camera, Jetson or battery to inspect it. This is a conceptual 3D simulation; no trained model or real inference is included.
Batch count
Counts are generated from synthetic objects and a visibility heuristic, not machine learning. Scan duration is a presentation animation, not a benchmark.
| Material | Detected | Demo truth |
|---|
Scan the pile to see results.
Build one simple portable station
Place an overhead camera on a stable mast above a marked tray. Mount the Jetson, protected battery pack and regulator on the base. Use diffuse light to reduce glare from cans and clear plastic.
Conceptual connections · select exact parts before wiring
Or USB UVC camera → USB port
SSD / microSD stores model and count records
Do not wire a raw pack directly to GPIO or assume Orin Nano and Xavier NX carriers share power or camera pinouts. Confirm input voltage, polarity, connector, continuous / peak current and cable rating from your exact board documentation. Shut down the OS before disconnecting power. Fit CSI cables with power removed.
Camera coverage calculation
Footprint = 2 × height × tan(horizontal field of view / 2). Assumes a downward camera and flat tray. Pile height reduces clearance; lens distortion and usable margins reduce coverage.
Hardware documentation
NVIDIA Orin Nano ports & hardware · Camera connection guide · NVIDIA downloads: find your Xavier NX carrier manual
Orin Nano developer kit CSI ports use 22-pin connectors; a supported 15-pin camera needs the correct 15-to-22-pin cable. Connector fit alone does not establish driver compatibility.
How the real counting system works
A practical training plan
- Photograph your own containers, crushed cans, labels, lighting and tray backgrounds across separate batches.
- Draw instance masks in Roboflow or another annotation tool. Use classes such as PET bottle, aluminum can, glass bottle, carton and other.
- Include confusing objects and partly hidden containers. Label only according to a consistent annotation policy; do not fabricate masks for fully hidden objects.
- Split train / validation / test data by collection session or physical batch, keeping near-duplicate frames together.
- Train an instance segmentation model. Compare predicted counts with manual per-class counts on held-out batches; record count error, misses and false positives.
- Deploy a supported model on Jetson. Match JetPack, CUDA, inference runtime and model support to the board. Measure end-to-end speed, memory and power on that device.
Roboflow or local model
Roboflow Jetson deployment instructions provide a starting point. Alternatively deploy a compatible instance-segmentation model with an appropriate local runtime such as TensorRT after validating its export path and license. Offline availability depends on your chosen model, runtime and licensing.
Avoid double counting
For the first version, use one approved still image per spread-out batch. Re-scan replaces that batch result. Adding counts from multiple views will duplicate objects unless calibrated matching and tracking preserve identity. Moving or pouring the pile can break that matching.
Suggested local interface contract
POST /scan → image + batch_id
{
"batch_id": "batch-001",
"model_version": "your-model-v1",
"instances": [
{"class":"PET bottle", "score":0.91,
"polygon":[[12,20],[45,22],[43,80]]}
]
}Example contract only; no server is connected. A production service needs authentication, input limits and server-side secret handling. Do not put cloud API keys in a public HTML file.
Editable bill of materials
Planning allowances in CAD, not supplier quotes. Tax, shipping, labour and model subscriptions excluded. Changing board updates its allowance.
| Part / purpose | Qty | CAD each | Total |
|---|
Battery duration uses usable Wh × regulator efficiency ÷ total assumed system watts. This is a sizing estimate; verify peaks and measured runtime.