Void Talon is an Aided Target Recognition (AiTR) overlay for the Common Remotely Operated Weapon Station and its peers. It accelerates the engagement timeline against Group 1 & 2 UAS by giving the operator passive detection, multi-target tracking, monocular range estimation, and threat scoring — with a hard human-in-the-loop confirm-to-engage gate.
Annotated inference on held-out validation frames. Detection + threat scoring + monocular range overlay. All targeting decisions remain operator-confirmed.
Passive detection, classification, tracking, and range estimation of Group 1 & 2 UAS in the CROWS video feed. ≤30 m/s targets, stationary or maneuvering, day or night.
Cursor-on-Target XML over UDP/WebSocket. ATAK/WinTAK ingest validated. Post-quantum + RF transport stubs documented in docs/PART4_NETWORK.md.
Targets NVIDIA Jetson Orin Nano (8 GB, 40 TOPS) and AGX Orin (275 TOPS). ONNX intermediate; TensorRT engine built on-device for hardware-specific scale factors.
RTSP / USB / MP4 ──► stabilize ──► detect ──► classify ──► track ──► HITL UI
(EO / IR feed) ECC YOLOv11n multi-head ByteTrack FastAPI + WS
│
monocular ranging ──► threat scoring ──► CoT / TAK output
(pinhole + size) (range/closure/age) UDP + WS
│
▼
ONNX ──► TensorRT FP16/INT8
(built on Jetson)
YOLOv11n custom-trained on aggregated drone datasets (Seraphim 75k+8k images, single-class drone). On-demand 2×2 tiling for far-field recall when scene density is low — full-resolution effective recall at ≥600 m without paying SAHI's 1.6 s/frame cost on every frame.
ByteTrack (bundled in Ultralytics) for low-confidence detection recovery, critical for small distant targets entering/exiting RWS FOV. Monocular pinhole ranger uses Group-1/2 size priors; passive per AoI preference.
Composite score over inverse range, closure rate, speed, track age, and class weight. Two thresholds: alert (0.6) and engage (0.8). ENGAGE button disabled below alert threshold; every decision logged to /api/audit.
FastAPI + WebSocket + vanilla JS Canvas overlay. No SPA framework. Operator must confirm every engage action — no auto-engage path exists in the codebase. Audit trail persisted; system fails open to manual RWS.
| Passive detection & classification | ✓ |
| Day + night operation | ✓ |
| ~600 m detection, ~100 m engagement | ✓ |
| ≤ 30 m/s targets, maneuvering | ✓ |
| Open system architecture | ✓ Apache-2.0 |
| Reduced operator workload | ✓ |
| Graceful degradation | ✓ |
| Mandatory HITL | ✓ |
| IP transport (UDP + WS) | ✓ |
| RF transport | roadmap v0.2 |
| TAK compatibility (CoT XML) | ✓ |
| Edge-side analysis | ✓ |
| Post-quantum encryption | stubbed v0.2 |
| Domestic infrastructure | ✓ self-hosted |
| DoD AI Ethical Principles | ✓ ETHICS.md |
git clone https://github.com/PoggyBobby/void-talon
cd void-talon
pip install -e .
python scripts/01_fetch_datasets.py
python scripts/02_prepare_yolo_dataset.py
python scripts/03_train.py --modality rgb
python scripts/07_demo.py \
--source data/test/in.mp4 \
--weights runs/rgb/weights/best.pt \
--out out.mp4
# Ship rgb.onnx + ir.onnx to the Jetson, then on-device:
bash scripts/06_jetson_build_engine.sh rgb.onnx 960
bash scripts/06_jetson_build_engine.sh ir.onnx 640
python -m voidtalon.pipelines.jetson \
--rgb-engine rgb.engine \
--ir-engine ir.engine \
--source "rtsp://..."