As Melbournians, we all know the struggles with PTV.

The constant delays, the crowded carriages during peak hours, there’s something about it that brings out so much anxiety within us.

In fact, due to recent staff shortages, PTV forecasts an increase in disruptions in public transport services. With 200+ 6 carriage trains running across the entire metropolitan line, unexpected delays are inevitable and often frustrating.

We might feel anxious about missing a train, being late to class or work, not being able to find parking at the train station, or even worry about carriage capacity - especially in times of Covid, wouldn’t you like to find a carriage with fewer people?

Whilst we do have the helpful PTV app, and we can also rely on Google maps to get us where we want, what’s missing from them are real-time updates about the status of trains, which would be incredibly beneficial for daily commuters - this its where MiniMelbourne comes in.

What it does

MiniMelbourne is a web-app that provides the most up-to-date and relevant information to commuters travelling by train. As a proof-of-concept project, we aim to provide key information and alerts on train delays, carriage occupancy, car parking availability at stations, and we do all of this in real time, in 3D space, so you can see what’s going on with ease. We believe that better visualisation equals less anxiety.

With MiniMelbourne, you are able to search by specific train stations, which will provide 3D renderings of all trains coming to and from the stations. It will also provide extra information such as the availability of parking at the station. When you click on each train, it will show whether the train is delayed or not, as well as its level of occupancy by carriage, so you can plan ahead and find a carriage with the fewest people. Whilst the features at MiniMelbourne is cool and handy, it obviously can’t replace current map apps. We simply aren’t able to compete. With the resources, expertise, and sophistication of apps created by organisations such as Google or PTV; nor are we look to “disrupt” the journey planing market and “revolutions” the way people travel via public transport. MiniMelbourne demo

Based purely on publicly available datasets and open-source API provided by the PTV, MiniMelbourne is simply a proof-of-concept design that shows the potential of what the public transport network here at Melbourne could offer. We hope that our project inspires PTV to consider the possibilities of real-time updates using more granular data points.

How we built it

To achieve this level of fine grain detail of live information, several open-source dataset are used in the backend, which periodically feeds information to the frontend to simulate train movement.

For detection of car park availability and carriage occupancy, we used a Raspberry Pi to detect the number of cars coming in and out at entry/exit points, thus providing us wit real-time data on its occupancy rates.

For carriage occupancy, we implemented YOLO - a state-of-the-art, real-time object detection neural network to predict the number of people in carriages ataxy given time using video data from in-built cameras on the train. By taking snapshots at minute-intervals, the model is able to provide an approximation. Of how busy each individual carriage is at fractions-of-a-second speeds. ML_predictions

Challenges we ran into

We ran into many challenges along the way, but continued persevering through the weekend. The biggest was getting up to speed with ReactJS, Mapbox and, technologies the majority of our group had not used before.

This took a lot of grit and determination to solve and eventually allowed us to develop the whole website in ReactJS, with everyone in the team contributing something. By having a lot of trial and error, we were eventually able to come up with something that we believe provides the user with the best matches possible.

Accomplishments that we're proud of

Progressing from an idea, to a functioning prototype all in a weekend is an amazing accomplishment for anyone. In addition to this, way that we encountered and took-on challenges without backing down, in particular learning all the new technologies, is something that we are all very proud of.

What we learned

From this hackathon, we learnt how to:

  • use mapping libraries (Mapbox/\
  • create APIs using FastAPI and how to connect them with a web application. We learnt about machine learning models, and how we could apply them to solve issues in the transport network.

What's next for MiniMelbourne

We are incredibly proud of our progress, and ambitious about the product’s potential in the future. There are a wide variety of avenues for scaling, including expanding the network to include trams and buses, and also incorporating regional areas of Melbourne and other major cities within Australia.

Furthermore, we see a lot of potential in our AI model. Currently, the service is hosted locally using simulated data for the sake of simplicity. However, we envision that the model could be optimised to capture more accurate data of density within carriages. We also recognise that data privacy is a major concern, especially in public environments, and we absolutely do not want to fall into the category of “mass surveillance”. That’s why we aspire to implement architectural frameworks such as federated learning, where the ML model itself is sent to independent nodes for training with local data sources. Thus, the data is never directly observed or transferred, enabling us to address the issues surrounding data security and anonymity, whilst allowing for a more robust model to be trained over a wider variety of data points. Federated Learning Schema

Last but not least, we here at MiniMelbourne believe in equity and accessibility, which is why we also strive to implement features such as voice assistance to allow the app to be more disability-friendly.


The deployed web app

The backend FastAPI interactive docs (try out our backend api!)

Frontend repo

Backend API repo

Train carriage occupancy neural net model repo

Car parking sensor repo

Built With

Share this project: