DRIVYX

Perception and waypoint control training platform for the India Driving Dataset (IDD)

Status
Research
Version
0.1.0
Platform
GPU workstation
License
Not specified
01 · Problem

Training perception and waypoint control on Indian driving data directly on a Jetson AGX Orin, with data preparation, training, evaluation and TensorRT export in one reproducible pipeline. The repo records where the data and platform constrain results (mostly straight routes, 0.65 Hz OBD, clock offsets, withheld test-split GPS).

02 · Architecture

How it is put together.

DRIVYX is a CLI-first training engine with a PyQt6 desktop application on top, running entirely on an NVIDIA Jetson AGX Orin. It trains two models from IDD data: a PIDNet-S semantic segmentation model over 8 collapsed classes, and a waypoint predictor (5 ego-frame waypoints over 2.5 s) supervised by GPS and OBD from IDD Multimodal. The GUI launches CLI subcommands as subprocesses, and every training run writes a self-contained run directory with frozen config, environment report and event stream.

CLIsrc/drivyx/cli.pyData preparationsrc/drivyx/data/Modelssrc/drivyx/models/Trainingsrc/drivyx/train/Evaluationsrc/drivyx/eval/Exportsrc/drivyx/export/Desktop appsrc/drivyx/gui/launches subcommands as subprocesseslaunches subcommands as…shards, waypoint datasetsshards, waypoint datase…checkpointscheckpointsCLIsrc/drivyx/cli.pyData preparationsrc/drivyx/data/Modelssrc/drivyx/models/Trainingsrc/drivyx/train/Evaluationsrc/drivyx/eval/Exportsrc/drivyx/export/Desktop appsrc/drivyx/gui/launches subcommands as subprocesseslaunches subcommands as…shards, waypoint datasetsshards, waypoint datase…checkpointscheckpoints
FIG. 01Modules and data flows, from the repository layout and documentation.
  1. 1

    CLI

    argparse entry point, one subcommand per capability; JSON to stdout

    src/drivyx/cli.py
  2. 2

    Data preparation

    Verification, masks, LUT, shards, multimodal sync and waypoints

    src/drivyx/data/
  3. 3

    Models

    PIDNet-S, the waypoint net, losses

    src/drivyx/models/
  4. 4

    Training

    Trainers, configs, throughput probe

    src/drivyx/train/
  5. 5

    Evaluation

    Segmentation and control evaluation, overlay renderer

    src/drivyx/eval/
  6. 6

    Export

    ONNX export, TensorRT build, parity check

    src/drivyx/export/
  7. 7

    Desktop app

    PyQt6 application, one module per workspace; runs drivyx subprocesses and tails events.jsonl

    src/drivyx/gui/
03 · Capabilities

Specification.

Models
PIDNet-S segmentation (8 classes); waypoint predictor (5 waypoints over 2.5 s) from segmentation logits + speed
Pipeline
verify-data, mask generation, LUT, WebDataset shards, multimodal inventory/sync/labelling, train, eval, export, bench
Early eval (partial checkpoint)
eval-seg mIoU 0.4189, pixel accuracy 0.7306 over 200 validation images
Export
ONNX opset 17 → TensorRT fp16 engine (16.6 MB); torch vs engine parity delta 0.068 mIoU
Benchmark (drivyx bench)
p50 4.31 ms, p99 6.64 ms, 258 qps vs a 33 ms frame budget (timing flagged unstable, GPU shared)
Data prepared
20,101 segmentation images across 552 sequences; 9,138 waypoint frames from 3 routes
Desktop app
Six workspaces: DATA, LABEL, TRAIN, EVAL, EXPORT, SYSTEM
Tests
281 CPU tests and 11 device tests; ruff lint clean
Runs on
Targets the NVIDIA Jetson AGX Orin with CUDA torch and TensorRT; engine only unit-tests on CPU
Stack
  • Python
  • PyTorch
  • PyQt6
  • pyqtgraph
  • TensorRT
  • ONNX
  • WebDataset
  • pydantic
  • pandas
  • pyarrow
  • OpenCV
  • jetson-stats