VisionNav is a cutting-edge navigation system designed for visually impaired individuals, providing real-time guidance through voice commands. The system leverages advanced technologies such as OpenCV, SLAM, YOLO for object detection, and Text-to-Speech (TTS) to recognize indoor landmarks and obstacles, ensuring precise and safe navigation.
- Real-Time Object Detection and Recognition: Utilizes YOLO to detect and recognize objects in the environment.
- Indoor Localization and Mapping: Employs SLAM (Simultaneous Localization and Mapping) to create and update maps in real-time.
- Voice Guidance: Provides audio feedback and navigation commands using Text-to-Speech.
- Multi-Floor Navigation: Supports navigation across multiple floors with elevator recognition.
- Bluetooth Beacon Integration: Enhances indoor positioning accuracy using Bluetooth beacons.
- OpenCV: For capturing and processing video feed.
- SLAM: For real-time localization and mapping.
- YOLO: For object detection.
- Text-to-Speech (pyttsx3): For voice guidance.
- Bleak: For Bluetooth beacon integration.
- Python: The primary programming language used.
- Python 3.6 or higher
- pip (Python package installer)
-
Clone the repository:
git clone https://github.com/debjit-mandal/VisionNav.git cd VisionNav
-
Install the required dependencies:
./setup.sh
-
Download YOLO configuration and weights:
mkdir -p data/yolo cd data/yolo curl -O https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3.cfg curl -O https://pjreddie.com/media/files/yolov3.weights curl -O https://raw.githubusercontent.com/pjreddie/darknet/master/data/coco.names cd ../../
-
Collect Bluetooth beacon data (if applicable):
python collect_beacon_data.py
-
Run the main script:
python -m src.main
-
Usage:
- The system will start capturing video from the webcam.
- Detected objects will be displayed with bounding boxes and labels.
- Voice commands will guide the user based on detected objects and navigation logic.
- Bluetooth beacon data will be printed after the video feed is stopped.
data/
: Contains configuration files and data.beacons/
: Stores Bluetooth beacon data.yolo/
: Contains YOLO configuration, weights, and class names.
src/
: Contains source code for object detection, SLAM, navigation, TTS, and Bluetooth integration.main.py
: Main script to run the application.object_detection.py
: Module for object detection using YOLO.tts.py
: Module for Text-to-Speech functionality.slam.py
: Module placeholder for SLAM functionality.navigation.py
: Module for navigation logic.bluetooth.py
: Module for Bluetooth beacon integration.
requirements.txt
: List of dependencies.setup.sh
: Setup script to install dependencies.README.md
: Project documentation.LICENSE
: License for the project.
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements, bug fixes, or new features.
This project is licensed under the MIT License. See the LICENSE file for details.
- Thanks to the open-source community for providing the tools and libraries used in this project.
- Special thanks to the creators of OpenCV, YOLO, pyttsx3, and Bleak.
Happy navigating!