Skip to content

slavabarkov/railway-infrastructure-segmentation

Repository files navigation

Railway Infrastructure Segmentation

Author: Viacheslav Barkov

Railway Infrastructure

Purpose of work

Develop an algorithm for determining railway infrastructure components, specifically the railway gauge and rolling stock. The developed algorithm can be used to prevent emergencies on the railroad. The task contains several primary tasks of determining the elements of road infrastructure: gauge (railroad ties) and rolling stock (locomotives, freight cars, passenger cars).

Solution

The solution consists of multiple diverse semantic segmentation models, which are aggregated using ensemble modeling. These models include a PAN (Pyramid Attention Network) decoder and the following encoders: EfficientNet B4, NFNet with ECA and SiLU, SE-ResNet.
Training was performed using Google Colab with a Tesla P100 GPU.

Results

Railway_Infrastructure_Segmentation - Jupyter Notebook with data exploration, training, evaluation, ensembling and prediction. The notebook is also available on Google Colab with additional environment setup specifically for Google Colab.
The weights of the trained models and training history can be found in the Github Releases section and are also available on Google Drive.