Vision Mate
An AI-powered assistive vision system designed to help visually impaired individuals navigate their environment by identifying objects, estimating distances, and providing real-time audio feedback. π Features
-Real-time Object Detection: Uses YOLOv8 for accurate and fast object recognition
-Distance Estimation: Calculates distance to detected objects using triangle similarity
-Voice Feedback: Multi-engine text-to-speech system with fallback options
-Movement Tracking: Monitors object movement patterns (getting closer/moving away)
-Auto-Speak Mode: Automatically announces detected objects at regular intervals
-Web Interface: User-friendly dashboard for system control and monitoring
-Cross-Platform Support: Works on Windows, macOS, Linux, and WSL
π Quick Start Prerequisites
-Python 3.8+
-IP camera with MJPEG streaming support
-Speakers or headphones for audio output
-WiFi or Ethernet
Installation
1.Clone the repository:
git clone https://github.com/YOUR_USERNAME/vision-mate.gitcd vision-mate
2.Create conda environment:
conda env create -f environment.yml
conda activate vision-mate
3.Install dependencies:
pip install -r requirements.txt
4.Download YOLO model:
wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x.pt
5.Run the application:
python app.py
Camera Setup
-Install an IP camera app on your smartphone (IP Webcam, DroidCam, etc.)
-Connect your phone to the same WiFi network as your computer
-Configure the app to enable IP camera mode
-Note the IP address shown in the app
-Update the phone_ip variable in app.py with your phone's IP address
Voice Commands
-"What do you see?": Announces all currently detected objects
-"Auto Speak": Toggles automatic object announcements every 7 seconds
-"Clear Memory": Resets the object announcement history
-Distance Estimation: Automatically calculates distances to people, vehicles, and common objects
Camera Settings:
# In app.py, update these variables:
phone_ip = "# Your phone's IP address"
phone_port = "8080" # Default IP camera port
π API Endpoints Endpoint
Method
Description
/GET Main web interface /video_feed GET MJPEG video stream /status GET System status information /voice/objects GET Announce detected objects /voice/speak_objects_once GET Speak all objects once /voice/auto_speak GET Toggle auto-speak mode /voice/clear_announcements GET Clear announcement history /test_tts GET Test text-to-speech
π§ Development Project Structure
vision-mate/ βββ app.py # Main Flask application βββ templates/ β βββ index.html # Web interface βββ requirements.txt # Python dependencies βββ README.md # This file βββ .gitignore # Git ignore rules βββ environment.yml # Conda environment file βββ yolov8x.pt # YOLO model (large file)