EDGE-DATA

An Android app that records driving data and labels it on the device

Status
Live
Version
0.2.0
Platform
Android app
License
Not specified
01 · Problem

Autonomous driving datasets are dominated by Western roads, and Indian traffic (auto-rickshaws, hand carts, cattle, unmarked intersections, flooding) is under-represented because collecting that data is expensive. The premise is that a phone on a windscreen is a usable capture rig that can turn an ordinary drive into an indexed, labelled dataset.

02 · Architecture

How it is put together.

EDGE-DATA records timestamp-synchronised video, GNSS and IMU on a phone, runs YOLOv11n locally to find road users in the footage, mines the motion sensors for driving events such as hard braking and swerves, and indexes everything into a searchable on-device dataset. Trips can be played back with seek-to-detection, mapped offline, and exported as GeoJSON, COCO or YOLO. The README is explicit that the bundled COCO-trained model can produce only 9 of the 38 taxonomy labels, that no fine-tuned Indian-roads model exists yet, and that the cloud tier in ARCHITECTURE.md is a design, not a built system.

Recording serviceapp/src/main/java/com/edged…Data layerapp/src/main/java/com/edged…Detectionapp/src/main/java/com/edged…Domainapp/src/main/java/com/edged…UIapp/src/main/java/com/edged…camera frames (~2 fps)camera frames (~2 fps)sensor flows to EventMinersensor flows to EventMi…detection events + thumbnailsdetection events + thum…sensor-mined eventssensor-mined eventssearch, map, playback, exportsearch, map, playback, …Recording serviceapp/src/main/java/com/edged…Data layerapp/src/main/java/com/edged…Detectionapp/src/main/java/com/edged…Domainapp/src/main/java/com/edged…UIapp/src/main/java/com/edged…camera frames (~2 fps)camera frames (~2 fps)sensor flows to EventMinersensor flows to EventMi…detection events + thumbnailsdetection events + thum…sensor-mined eventssensor-mined eventssearch, map, playback, exportsearch, map, playback, …
FIG. 01Modules and data flows, from the repository layout and documentation.
  1. 1

    Recording service

    Foreground RecordingService for camera and sensors

    app/src/main/java/com/edgedata/app/service/
  2. 2

    Data layer

    Room database, sensor collectors, metadata writer, scene classifier, exporter, power monitor, upload client, retention

    app/src/main/java/com/edgedata/app/data/
  3. 3

    Detection

    EdgeCaseDetector interface, YoloV11Detector, ModelRegistry

    app/src/main/java/com/edgedata/app/ml/
  4. 4

    Domain

    Models, taxonomy, repository contracts, event miner (pure Kotlin)

    app/src/main/java/com/edgedata/app/domain/
  5. 5

    UI

    Compose screens: record, trips, player, map, dataset, insights, settings

    app/src/main/java/com/edgedata/app/presentation/
03 · Capabilities

Specification.

Capture
1080p H.264 video + GNSS + IMU JSONL sidecar on one elapsedRealtimeNanos() clock, from a foreground service
Detection
YOLOv11n via raw TFLite interpreter (XNNPACK CPU) with from-scratch letterbox and NMS; 9 COCO classes mapped to the taxonomy
Event mining
Hard braking/acceleration from GNSS speed, swerves and impact spikes from IMU, sustained-crawl traffic jams — no model
Taxonomy
7 categories, 38 labels; custom fine-tuned .tflite + labels.txt loadable from external storage
Index and review
Room index of detections with box, thumbnail, geotag, video offset, review state; playback seeks to the detection frame
Export
GeoJSON, COCO and YOLO on device via the system share sheet; offline map of route and detections
Field data so far
8 drives, 2,132 indexed events (959 vision, 1,173 sensor-mined); sensor counts from an older, inflated miner
Platform
Android 12+, tested on one phone model; 44 JVM unit tests
Runs on
Android app distributed as a debug-signed APK in Releases or built with Gradle
Stack
  • Kotlin
  • Jetpack Compose (Material 3)
  • Hilt
  • Room
  • CameraX
  • Media3 / ExoPlayer
  • WorkManager
  • DataStore
  • TensorFlow Lite
  • Coil
  • Play Services Location
  • Python (Ultralytics model export)
04 · Changelog

Releases.

  1. v0.2.0
    Capture fixes from on-device testing, plus playback, map, upload and retention.
  2. v0.1.0