Skip to content

poran-dip/odstream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Underwater Object Detection – Remote Control Interface

A unified control and monitoring interface for an underwater object detection drone, developed as part of the IIT Guwahati internship project (July 2025).


Overview

This system provides a cross-platform GUI to interact with a remotely operated underwater drone equipped with:

  • Intel RealSense camera
  • NVIDIA Jetson Nano for ML inference
  • YOLOv8 object detection model

The interface supports real-time control, recording, playback, and Python-based ML workflows, accessible via a modern frontend.


Features

  • Live video feed from Jetson or webcam
  • Start/Stop recording sessions
  • Save videos as .mp4 with timestamped filenames
  • Display and playback saved recordings
  • Trigger and display YOLO-based object detection from the frontend
  • Frontend/backend integration (Vite + Flask)
  • Supports remote backend running on a Jetson Nano via odstream-remote

Tech Stack

Area Tools
Frontend React (via Vite), TailwindCSS
Backend Python, Flask
Remote Backend Flask on Jetson Nano
Object Detection YOLOv8 (Ultralytics)
Hardware Targets Jetson Nano, RealSense Camera

Setup

See git & workflow instructions here


Directory Structure (WIP)

odstream
├── .gitignore           # Self explanatory
├── docs                 # Dev logs, documentation
│   └── git-setup.md     # Project setup and git guide
├── shared
│   └── recordings       # Saved .mp4 files
├── backend
│   ├── utils            # Python helpers (planned)
│   ├── requirements.txt # Backend dependencies
│   └── app.py           # Flask entrypoint
└── frontend
    ├── public           # Favicon, other global assets
    └── src              # Everything app related
        ├── pages        # Route-based page components
        ├── utils        # Helpers functions (planned)
        ├── assets       # Assets for components
        └── components   # Reusable UI components
            └── ui       # UI primitives

# Jetson-side remote backend (separate repo)
odstream-remote
├── .gitignore           # As per usual
├── app.py               # Jetson Flask entrypoint
├── jetson_camera.py     # Stream handling and detection logic
├── jetson_routes.py     # Defines all Flask API endpoints
└── requirements.txt     # Dependencies for remote backend

Roadmap

Phase 1 – Web App (Vite + Flask)

  • Vite + Tailwind frontend
  • Video source selection dropdown
  • Live camera feed display
  • Recording and saving .mp4 files
  • Playback for saved videos
  • Stream from Jetson Nano
  • Jetson connection settings in modal

Phase 2 – Detection Pipeline

  • Flask API to run YOLOv8 inference
  • Detection overlay on live stream
  • Toggle detection from frontend

Phase 3 – Deployment & Polish

  • Auto-deploy scripts for Jetson + host
  • LAN streaming support (MJPEG)
  • Basic mobile responsiveness

Contributors

Mentors:

  • Divya Jyoti (PhD Scholar, EEE, IIT Guwahati)
  • Parvez Aziz Boruah (PhD Scholar, CSE, IIT Guwahati)

Supervisor:

  • Dr. Chayan Bhawal (Professor, EEE, IIT Guwahati)

Notes

  • Minimal dependencies, modern stack
  • Recording format: YYYYMMDD-HHMM.mp4 (e.g., 20250704-1315.mp4)
  • Network-based live stream and object detection are now supported

“Build it simple, scale it smart.”

About

A real-time multi-user LAN connected YOLO powered object inference platform with Jetson Nano and Intel RealSense support.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors