The challenge SilverRail presented to HackTrain 5.0 was to build a program which can read in signal data annotated from the ninja iOS app which captures accelerometer, gyroscope and magnetometer data in X, Y and Z axis.
Th main objective is then to read in further signal data files not annotated with transport mode labels, and for this new data, identify and display time spans during which the user appears to be on a train.
Furthermore, stretch objective include to classify all contiguous time periods of non-annotated signal data as one of the following modes of transportation: on foot, train, car/bus, stationary, other.
We propose a solution which uses Machine Learning (K-Nearest Neighbours Classifier) model in Python. It connects via RESTful API using Flask as the request endpoints, all of these are hosted on a Docker server. To receive the file, we built a JAVA applet that will ask the user for a CSV file, then the user can select which model will they be using (Either to classify Train/Walking or Bus/Train/Walking).
Finally, it will provide visualisation of the segmentation of the journey, as well as the accuracy of the output.
The model can be adapted to any other means of transportation as long as appropriate data is provided. As for this challenge, SilverRain only provided an extra mean of transport which was Bus, and the model successfully could generate a model of at least 80% accuracy.
There are many benefits from collecting and modelling this data. It would open up the possibility for personalised journey fares, postpay ticketing, dwell time, delay repay, and congestion on train journeys. Moreover, thinking about the future IoT, Smart cities, it creates the perfect tool to step into the world of Smart Road with vehicle and activity recognition.
Log in or sign up for Devpost to join the conversation.