• At the end of the school day, students crowd the area where busses come to pick us up. It can be hard to get a good view of the busses, and if you want to stay comfortably indoors, you might miss one.

What it does

  • Our solution utilizes a computer vision system to recognize route numbers displayed on the side of school busses. By interacting with our chatbot, students can sign up for notifications about their bus route, helping them relax while knowing that they won't miss their ride home.

How we built it

  • BusBot utilizes a number of specialized heuristics to extract route numbers from images. These are implemented using the OpenCV and Pillow libraries in Python. The Telegram bot is made with the python-telegram-bot package. We also used Android Studio to create a mobile app as an alternative way to get information on busses.

Challenges we ran into

  • Diagnosing the root cause of a failure was more challenging than in many other software projects. Some heuristics we used ended up being too brittle to generalize to different lighting, orientation, etc. This continues to limit the real-world practicality of our system.

Accomplishments that we're proud of

  • Our Telegram-based chatbot can handle basic user interaction across many platforms through language-based commands. Notifications are delivered quickly once a bus number is recognized.

What we learned

  • Our team learned, among other things about managing Python packages on Windows, using the Flask web framework, and building chatbots with the Telegram API.

What's next for BusBot

To ensure it never misses a bus, the BusBot vision system will have to operate in near-real-time. This will require performance improvements in our algorithms (i.e. rewriting components in compiled languages like C or Rust). Real-world practicality would also require durable, low-power hardware for the system to run on.

Share this project: