Autonomous Vehicle Perception System

Multi-camera ADAS platform for autonomous vehicle development

Status
Research
Version
No tagged release
Platform
Desktop app
License
Not specified
01 · Problem

Provides a single desktop platform for autonomous vehicle development that brings multi-camera capture, perception, safety monitoring, planning and testing together in one modular application.

02 · Architecture

How it is put together.

Autonomous Vehicle Perception System is a PyQt6 desktop application that captures from up to four USB cameras in parallel threads and runs a perception pipeline on them: classical lane detection, YOLOv8 object detection, centroid tracking, multi-camera fusion and a bird's-eye-view display. Later versions add safety warnings (forward collision, lane departure, blind spot), driver monitoring, recording and playback, calibration, path and motion planning, vehicle control models, a V2X module and a scenario testing framework. It was built in phases, each documented in the README and CHANGELOG.

Camera subsystemcamera/Perceptionperception/Safety systemssafety/Planningplanning/Recording and playbackrecording/User interfaceui/Visualizationvisualization/Camera subsystemcamera/Perceptionperception/Safety systemssafety/Planningplanning/Recording and playbackrecording/User interfaceui/Visualizationvisualization/
FIG. 01Modules and data flows, from the repository layout and documentation.
  1. 1

    Camera subsystem

    Capture threads, multi-camera manager, frame synchronizer, calibration

    camera/
  2. 2

    Perception

    Lane, object, tracking, fusion, segmentation, depth, signs and lights, visual odometry

    perception/
  3. 3

    Safety systems

    Collision, lane departure, blind spot, driver monitoring, safety scorer

    safety/
  4. 4

    Planning

    Path, route, motion and behavior planners; parking assist

    planning/
  5. 5

    Recording and playback

    Recording manager, video and metadata writers, playback

    recording/
  6. 6

    User interface

    Main window, camera widgets, telemetry dashboard, calibration wizard

    ui/
  7. 7

    Visualization

    BEV generator, minimap, overlay renderer

    visualization/
03 · Capabilities

Specification.

Cameras
Up to 4 UVC USB cameras, one QThread each, with frame synchronization and auto-reconnect
Perception
Canny/Hough lane detection with polynomial fit; YOLOv8n detection; centroid tracking; multi-camera fusion; BEV view
Safety
Forward collision (TTC), lane departure (TTLC), blind spot warning, driver monitoring, safety score 0-100
Planning and control
A*, RRT and Frenet planning; kinematic/dynamic bicycle models; PID, Stanley and Pure Pursuit controllers
Recording
Synchronized multi-camera MP4 recording with JSONL metadata; playback; CSV/JSON/video export
Calibration
Chessboard calibration wizard for intrinsics and distortion, saved as JSON
Benchmark thresholds
pytest-benchmark tests assert lane detection < 50 ms at 640x480, tracking < 10 ms for 10 objects, pipeline > 15 FPS
Runs on
PyQt6 desktop application launched with python3 main.py and fed by local USB cameras
Stack
  • Python 3.10+
  • PyQt6
  • OpenCV
  • Ultralytics YOLOv8
  • PyTorch
  • NumPy
  • SciPy
  • PyQtGraph
  • pandas
  • pytest