Should I Stay or Should I Go?

Problem

Since the coronavirus pandemic started, everyone is trying to take some measurements to keep their selves and the people around them safe. One of the most common measurement is maintaining a social distance with other people.  To maintain this social distancing policy, lots of businesses got closed for some amount of time. 

However, as the spread of the virus is slowed down, some of the businesses are starting to re-open. Even though the businesses are re-opening, there are lots of questions in the minds of the customers,  such as, how many people are there now, can I maintain my social this distance there, is the place clean, the biggest question is, Should I Stay or Should I go?

Solution

To provide a solution to this problem, I created Should I Stay or Should I Go which is a web application for users and a desktop application for the clients.

By using the web application, users can see the number of people who are currently in a registered location, and also they can see the total number of people who visited that location on that day. 

Other than this, businesses can set an upper limit of the number of people that they can allow inside, and by using this number, users can decide whether to go or not to go to that location. This creates a huge benefit for the businesses as well, because since customers know whether or not the location is available, they don't cause a demand that the businesses cannot provide.

How It Works

To provide the real-time person detection and tracking future, I am using a PyTorch implementation of Deep SORT(Simple Online and Real-time Tracking) algorithm. Also, the implementation that I am using is using Yolov3 which is a real-time object detection system, which is extremely fast and accurate compared to its alternatives. Client-side software pushes the data from the Real-Time detector to the Firebase database, which user side web application retrieves them in real-time as well. In the context of this project, sharing and receiving the data in real-time is crucial, and with the help of Firebase, the software can easily prove this desired behavior.

For the front-end of the web application, I am using the Bootstrap framework. The reason I used Bootstrap is that it allows developers to create responsive websites fast and easy, which makes it almost platform independent because users can access the website whether using the browser in their computer or their mobile device. My main goal for this application is to make it widely accessible, so having a responsive website is really important.

Challenges I Ran Into

Real-time object detection requires a strong GPU. I used my laptop to create this project, which doesn't have a powerful GPU. So, this caused some delays in the live object detection.

Accomplishments that I am proud of

A thing that I am really proud of is creating a working real-time object detector and pushing its data to Firebase in real-time. Also, I never created a GUI in Python before, or use Javascript for a complex project. So, I am proud of learning all of these in such a small time and creating an MVP by using these skills.

What I Learned

  • Creating GUI in Python with TkInter
  • Using Javascript to read data from a Firebase database in real-time.

What is next

I am hoping to improve and train the object recognition model to recognize masks on people, so the user side web application can show the ratio of people who are using masks and not. I believe that this will be beneficial to both client and the user. Other than this, I want to improve the client-side software, such that they can push updates to the web application about the cleaning times of their store. Also, since this was an MVP, I only created the essential parts of the product. So, I want to complete the basic features, and to re-structure the project to make it clean.

References

Share this project:
×

Updates