Detection of railway switches in a point cloud

pointcloud of rails i3mainz, CC BY SA 4.0

The presented project is an internship project by two french master’s degree students. It has been realized in partnership with the German railway company, Deutsche Bahn. The project aim is to automatically detect and identify the various types of railway switches within a point cloud containing the railway. An approach with several steps has been developed using the specific characteristics of railway switches and railway tracks. The first step is to isolate the railway tracks from the other elements of the point cloud. The second step is to identify crossings between the railway tracks. The third step is to characterize these crossings and compose digital railway switches. The solution provides for both the identification of the location and the type of railway switches within a point cloud with a computationally low cost.


The German railway company does not have an up-to-date and complete set of documentation of railway switches or a connection topology. In order to improve the documentation the company collects point cloud data of the railway and its neighborhood. The manual analysis of the point clouds would take a lot of time and be expensive. That is why the development of an automatic system which allows for the analysis of point clouds is an advantage and a need for the German railway company. Therefore, the project aim is to develop an automatic system which detects railway switches, defines their type, and builds the topology of the railway.


After studying different existing segmentation methods, a linear system has been implemented in order to detect the railway switches and build the topology of the railway. The developed system allows for the submission of files provided by our partner to a succession of processing steps which are grouped inside three main categories.

The first step is pre-processing. This includes classical image processing, image processing adapted in 3D or applying mathematical principles in 3D. This reduces the point cloud to only the railway tracks, and improves the point cloud quality in order to facilitate and optimize the next step.

The second step is a set of lower-level processes which decomposes the point cloud results from the first step, and then classifies their different elements. The decomposition is realized by a combination of several segmentation techniques. The classification is realized using the characteristics of the different elements.

The third step is a set of higher-level processes. The different elements previously obtained are gathered to construct digital railway switches. According to the different elements of each railway switch, they can then be classified. Finally, the topology of the railway is created through building up connections between the different railway tracks and railway switches.


The final system is able to detect railway switches with a success rate of 97.4%, and classify their type with a success rate of 99.3%. The system can process 91 kilometers of railway in one hour, when using the following system specifications: an AMD E1, dual cores at 1.4 GHz, 4 GB of RAM processor.