Disclaimer

⚠️ This project relies on Machine Learning (ML) and AI models that need heavy computing resources. Free backend services like Render, Railway, and Vercel either don’t support ML inference or are too limited (CPU only, small memory, no GPU). Since I don’t have money for paid GPU hosting, I currently run this project in vercel (front-end only and simple json data fetching) to use this please run it locally, refer to the github instructions, alternatively you can refer to the video thank you for understanding. : )


Inspiration

I was inspired by a TikTok where a dog owner with hallucinations trained his dog to greet people to confirm if they were real. Also some parts of this idea came from me and my friends during a class in college. That got me thinking: What if technology could provide a similar kind of support system?


What it does

Miru is a detector using ML/AI that takes camera input or uploaded images and identifies whether the user is seeing a person, an animal, or an object. The idea is to help people who may experience hallucinations or difficulty distinguishing reality by giving them clear, real-time feedback.


How I built it

This project is built using the following technologies:

Frontend

  • Next.js – React-based framework for SSR and routing
  • JSX – Component-based UI development
  • TailwindCSS – Utility-first CSS framework
  • shadcn/ui – Prebuilt, accessible UI components
  • Vercel – Hosting & deployment platform

Backend

  • FastAPI – High-performance backend framework for Python
  • Node.js – Backend runtime environment
  • Render – Cloud service for backend deployment

AI & Machine Learning

  • YOLO (You Only Look Once) – Real-time object detection model
  • OpenCV – Computer vision and image processing library
  • NumPy – Numerical computing library for ML tasks
  • AI Models – Custom and pre-trained machine learning models
  • Machine Learning – Training, inference, and evaluation pipeline

Data & Formats

  • JSON – Lightweight data interchange format

Challenges I ran into

  • Project was to big for a limited time span
  • Getting ML inference to work on free backend hosts with strict CPU/memory limits.
  • Handling CORS errors when connecting frontend and backend across domains.
  • Scaling down model size for faster responses without losing too much accuracy.

Accomplishments that I'm proud of

  • Successfully integrating YOLOv8 into a real-world use case.
  • First time making this type of project
  • Was able to show the features properly

What I learned

  • A lot about CORS policies, deployment quirks, and hosting trade-offs.
  • How to make object detection more lightweight for real-time use.
  • How to connect backend with the frontend
  • ML is really demanding to be deploy in productions.

What's next for Miru

  • Explore better hosting options for ML inference (e.g., Hugging Face Spaces, Replicate).
  • UI/UX update
  • Expand dataset to include more specific hallucination-prone objects.
  • Make the survey more precise for data collection.
  • Optimize for mobile use, since many people would use this on their phone.

Built With

Share this project:

Updates