The maps of railway signals are often incomplete or lack details, such as precise locations of the signals. Recording these signals manually takes a long time, and so the challenge was to automate this task.
What it does
We use pictures captured by a camera situated in the front of the train to detect the various train signals on the train tracks. We feed the images into a trained Neural Network (YOLO/Darknet) to detect the signals, and then use the GPS data from the EXIF in the image file to mark the signal on a map. With this, we can then populate a map of all the signals on the train track, and use the data as well to assign repair tasks to maintenance personnel. The maintenance personnel then has access to an interface where they get the exact GPS location of the signal, as well as the image with the signal highlighted.
How we built it
We're using YOLO/Darknet with GPU (CUDA) support enabled to train the network in a relatively short amount of time, and then to detect the signals in the unlabeled images.
Challenges we ran into
Setting up the whole environment for the machine learning task took quite a long time, and at the start the detections were quite bad, however after several hours of training, the results improved drastically. We were struggling a bit with Python in the beginning, as we aren't used to code in python at all.
Accomplishments that we're proud of
We're happy that the detection turned out quite precise after several hours of training.
What we learned
Training Neural Networks takes really, really long.
What's next for TraccMap
Improving the quality of the detections. One could also use the extracted data to automatically create detailed track schematics.