Project Info
Inspiration
We came together as a team over our shared passion to create high-impact products and solutions to contribute to the healthcare sector. A member shared how she came across visually-impaired influencers on social media detailing the hardships they faced on a daily basis—just how difficult it was to complete simple tasks such as navigating around an obstacle. Watching her suggested videos, we echoed her empathy and decided that we wanted to build a product specifically targeted at improving ease of mobility for the visually impaired. Hopefully, starting with a smartphone app, we can make walking outside a safer, more practical task.
What it does
Walking around within a bustling surrounding is typically dangerous for a person that is visually impaired, sometimes even for those that are not. But with this innovative mobile application, users can take photos of their surroundings with their phone, which are then processed with image recognition and depth estimation algorithms to identify obstacles and provide personalized and quantified safety suggestions from LLMs for blind users to travel within their surrounding environment.
How we built it
This fullstack project is built through a seamless integration of a robust backend and innovative frontend, with hidden features that enhance the user experience. For the backend, we implemented FastAPI for its speed and flexibility. After processing the image taken by the user, through OpenAI API calls and carefully engineered prompting using techniques such as Chain-of-Thought, we verbalize surrounding of the visually impaired. When an obstacle is detected, we use the Segment Anything Model (SAM) and Depth Anything V2 to estimate its distance from the user. Since no highly accurate measuring AI model exists, we combined Depth Anything V2 for depth mapping with SAM for object segmentation, creating a precise obstacle mask to improve distance estimation. On the frontend, we utilized FlutterFlow, which allowed us to send surrounding photos to the backend through Firebase. Additionally, we integrated special features, including Eleven Labs for text-to-speech, the Whisper API for speech-to-text, LangChain for advanced language processing, and depth estimation frameworks to provide an extra degree of surrounding information for those in need.
Challenges we ran into
Some of the biggest challenges we ran into were our indecisiveness in mapping out the project benchmarks, individual technical challenges which prompted us to reach out to mentors and other hackers, and arguably the largest of them all, scrambling to beat the deadline through all our attempts to perfect our project.
Accomplishments we're proud of
Having two new hackers on the team, along with our decision to explore a variety of new apps and methods we had never encountered before, has been our biggest challenge. However, we’re all really proud of how well we collaborated and pushed our limits. We’re also especially proud that our work resulted in an app that contributes to accessibility and addresses important social issues, making a meaningful impact beyond just the technical side.
What we learned
Through this process, we learned the value of time and it being the most valuable resource especially in hackathon situations. This involved improving methods of time management, finding new ways to brainstorm ideas, and having a high sense of adaptability. Additionally, we learned to familiarize ourselves with novel technologies and use them in ways to solve problems which meant a lot to us.
What's next
for Navigating the Unknown The next couple challenges that we want to tackle with the app are fine-tuning the LLM image recognition model to evoke more precise responses that can be better quantified to provide the user with pin-point information, and implementing a translation text to speech feature to further simplify the user's surroundings in a foreign environment. There are several directions with which this project can be advanced, but we feel that the combination of the wide variety of technologies that we used exhibited the power of fusing cutting-edge resources together to create impactful developments to the field of healthcare.
title: "Blind Navigation" emoji: 🏃♂️ colorFrom: purple colorTo: indigo sdk: docker app_file: Dockerfile pinned: false
blindNavigation
Backend
Setup
cd to project directory (../blindNavigation)
ENV SETUP
conda create --name blindnav python=3.11 -y
conda activate blindnav
INSTALL DEPENDENCIES
conda install pytorch torchvision torchaudio -c pytorch-nightly
pip install fastapi uvicorn opencv-python numpy pillow
pip install langchain langchain-openai openai
pip install elevenlabs
pip install python-dotenv
pip install python-multipart
pip install pillow pillow-heif
pip install sounddevice
pip install tensorflow tensorflow-hub
pip install tensorflow-macos tensorflow-metal tensorflow-hub
pip install scipy
pip install timm
pip install --upgrade langchain langchain-community langchain-openai
pip install git+https://github.com/facebookresearch/segment-anything.git
VERIFY (in terminal)
python
import torch
import openai
import langchain
import elevenlabs
from dotenv import load_dotenv
print("MPS (Apple GPU) Available:", torch.backends.mps.is_available())
print("MPS Backend Built:", torch.backends.mps.is_built())
print("PyTorch Version:", torch.__version__)
print("OpenAI Installed:", openai.__version__)
print("LangChain Installed:", langchain.__version__)
print("ElevenLabs Installed:", hasattr(elevenlabs, "generate"))
check if everything returns the right string
DEACTIVATE
conda deactivate
Start Fast API Server
uvicorn main:app --reload
Once the server starts, visit:
Swagger UI (API Docs): http://127.0.0.1:8000/docs
JSON Response (Basic Test): http://127.0.0.1:8000
Exit
control + c
Citation
@article{depth_anything_v2, title={Depth Anything V2}, author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Zhao, Zhen and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang}, journal={arXiv:2406.09414}, year={2024} }
@inproceedings{depth_anything_v1, title={Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data}, author={Yang, Lihe and Kang, Bingyi and Huang, Zilong and Xu, Xiaogang and Feng, Jiashi and Zhao, Hengshuang}, booktitle={CVPR}, year={2024} }
@article{kirillov2023segany, title={Segment Anything}, author={Kirillov, Alexander and Mintun, Eric and Ravi, Nikhila and Mao, Hanzi and Rolland, Chloe and Gustafson, Laura and Xiao, Tete and Whitehead, Spencer and Berg, Alexander C. and Lo, Wan-Yen and Doll{'a}r, Piotr and Girshick, Ross}, journal={arXiv:2304.02643}, year={2023} }
Analysis
View
Metric
- 32
- 11
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- DartIn code
- FastAPIIn code
- LangChainIn code
- PythonIn code
- PyTorchIn code
- FirebaseClaimed
5 of 6 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
188 KB
Source files
53
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
lisere5/blindNavigation
63 files · 1.8 MB · @ 1e96bcf
Structure
Interface
2 files · 3%Screens, components and styles rendered to the user.
Application logic
48 files · 76%Domain rules, services and shared utilities.
+4 moreData & schema
4 files · 6%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Dart63%
- Python36%
- Markdown1%
- Shell0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 24- aiofiles
- elevenlabs
- fastapi
- firebase-admin
- gradio
- gradio_imageslider
- langchain
- langchain-community
- langchain-openai
- matplotlib
- numpy
- opencv-python
- Pillow
- pillow-heif
- pydantic
- python-dotenv
- requests
- scipy
- +6 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.