Patent application title:

Regression of Rail Alignments from Survey Points

Publication number:

US20260103852A1

Publication date:
Application number:

19/358,052

Filed date:

2025-10-14

Smart Summary: A new method helps to align railway tracks accurately. It starts by collecting survey data about the track. Then, it automatically calculates the centerline and curves of the railway based on this data. Different types of track geometry, like straight sections and curves, are identified and shown clearly in a visual format. Finally, any changes made to the track's geometry are updated in real-time, and the final alignment is sent to a machine that adjusts the tracks accordingly. 🚀 TL;DR

Abstract:

A method and system provide the ability to align a railway track. Survey representing the track are obtained. A centerline of the railway track and curvatures are autonomously computed based on the survey points. Geometry is detected based on the curvature plot and provides for geometry types including a tangent, a spiral, and a curve. An alignment is displayed and includes a curvature plot that includes the detected geometry with each geometry type displayed in a visually distinguishable manner. Parameters of the detected geometry are changed and the alignment is dynamically updated. The alignment is then exported to a physical machine that aligns the railway track consistent with the alignment.

Inventors:

Assignee:

Applicant:

Interested in similar patents?

Get notified when new applications in this technology area are published.

Classification:

E01B35/10 »  CPC main

Applications of measuring apparatus or devices for track-building purposes for measuring irregularities in longitudinal direction for aligning

E01B29/16 »  CPC further

Laying, rebuilding, or taking-up tracks; Tools or machines therefor Transporting, laying, removing, or replacing rails; Moving rails placed on sleepers in the track

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. Section 119(e) of the following co-pending and commonly-assigned U.S. provisional patent application(s), which is/are incorporated by reference herein:

Provisional Application Ser. No. 63/706,494, filed on Oct. 11, 2024, with inventor(s) Valentin R. Koch, entitled “Detection of Alignment Geometries from Survey Points,” attorneys' docket number 30566.0635USP1.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to railway systems and design, and in particular, to a method, apparatus, system, and article of manufacture for alignment regression of railways.

2. Description of the Related Art

(Note: This application references a number of different publications as indicated throughout the specification by reference numbers enclosed in brackets, e.g., [x]. A list of these different publications ordered according to these reference numbers can be found below in the section entitled “References.” Each of these publications is incorporated by reference herein.)

Railways are subject to heavy wear and tear, which affects riding comfort and results in material stress and safety issues. Laser surveying is used to record points along the deformed rails. Engineers then use design software to find a best-fit alignment geometry that passes through these survey points. This task is also known as alignment regression (or horizontal regression analysis). The corrected alignment geometry is fed into the computer of a heavy tamping machine train, which then moves along the tracks. The tamper lifts the rails out of the ballast and moves them vertically and horizontally to align with the best-fit alignment. This periodic maintenance saves rail companies from the expensive reconstruction of railways. In addition, there may be other use cases for “regression analysis” including verifying values of rail superelevation or maximum speed, railway upgrade, railway construction, and digitalization of the existing railway tracks.

The alignment regression task is quite complex. Traditional/conventional computer aided design (CAD) approaches are manual, where a user manually examines/inspects the survey points from a 2D (two-dimensional) perspective and then visually detects each segment type (straights, curves, and spirals). For example, the user manually tries to fit tangents to sections where points form a straight line, and arcs where they think a curve lies. They then use CAD tools to place transition curves (spirals) between the tangents and curves. While existing CAD tools may provide some level of automatization of spiral segment detection, such tools require laborious adjustments. For example, such tools may require manual adjustments of the tangents and curves to make the spirals fit. This traditional approach can take from hours to multiple days, depending on the length and complexity of the alignment. Further, users working on rail and roadway rehab projects have identified limitations with such approaches including low time efficiency, performance and lack of flexibility of the output. Further, prior art solutions do not allow users to inspect and improve results with small cognitive load.

To better understand the problems with prior art alignment regression, a description of prior art approaches may be useful.

AUTODESK'S™ CIVIL 3D™ application currently provides a best-fit alignment tool. According to user feedback, the tool does not perform consistently, and rail users generally avoid using it. The few rail engineers who use the CIVIL 3D™ application for alignment regression rely on other existing tools to fit single arcs or tangents to a selection of points. This results in disconnected geometries that the user connects by placing spirals (clothoids) between the geometries. The entire task is quite manual and very time-consuming. The BENTLEY™ company offers OPENRAIL™ software (available at www.bentley.com/software/openrail-designer to their customers, which provides additional tools for alignment regression. One of these tools is a curvature plot, which allows an engineer to better see at which survey point a geometry (tangent, spiral, arc) starts or ends. However, the recent rewrite of OPENRAIL™ has resulted in unhappy customers who are now looking for alternatives.

SUMMARY OF THE INVENTION

Embodiments of the invention provide the ability to compute and use curvature information between the survey points. Curvature can be seen as the rate of change (or derivative) of an alignment. This rate of change is zero on a tangent and a constant negative or positive value on a curve. The spirals in-between tangents and curves have a linear rate of change. Depicting the curvature or rate of change between the survey points in a separate curvature graph (also referred to as a radius graph) allows the user to see where a tangent, curve, or spiral starts or stops (thereby significantly accelerating the process of identifying mentioned entities). This helps to make the manual process much faster.

Embodiments of the invention provide a new best-fit tool that makes use of a curvature plot. The curvature plot is computed from the survey points, where station and curvature pairs are assigned to one or multiple survey points to form the plot. In embodiments of the invention, an algorithm attempts to detect the various geometries automatically from this new curvature plot and presents the user with a connected/unified alignment. The user is then able to correct and edit the automatic detection. The final alignment may be further adjusted by an optimization algorithm to reduce (i.e., minimize) the distance/offset from the alignment to the survey points. The result is a best-fit alignment that is not only closer to manual methods but also offers an automation that saves users time in the order of days.

Smoothing—Due to the wear and tear on the rails, the curvature values of consecutive stations may vary quite a bit. This renders the curvature plot similar to a noisy signal. To assist with the detection analysis, the curvature plot or signal can be smoothed using the following methods:

    • Moving Average filter computed on the curvature plot,
    • L1 Regularization on the curvature plot.

Detection—The geometry detection can be understood as a sliding window that steps over the smoothed or un-smoothed curvature plot (until all survey points in the curvature plot are processed). The window size can be determined by the user and can range from just a few points to very large parts of the curvature plot, including all the points in that plot. At each step, the data in the window is analyzed to determine the start and end points of various geometries/geometry types such as tangents, arcs, clothoids, or similar geometric curves. The analysis may include:

    • Linear regression, dynamic programming, and statistical checks such as median, mean, quantiles, Cook's distance, leverage, etc. One or more thresholds may be used for these checks, which can be adjusted by the user to influence the result.
    • Machine Learning models such as Convolutional Neural Networks (CNN).

The start and end points of the detected geometries are then provided to an alignment math solver, which creates the connected alignment geometry with the help of spiral solvers or other geometry solvers. Alternatively, it returns an unconnected alignment and marks the locations where geometries cannot be connected smoothly. Thereafter, the connected alignment geometry is exported to a physical machine that aligns the railway track consistent with the alignment.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers represent corresponding parts throughout:

FIG. 1 illustrates the process workflow for using survey data in design workflows in accordance with one or more embodiments of the invention;

FIG. 2 illustrates an exemplary curvature plot in accordance with one or more embodiments of the invention;

FIGS. 3A-3C illustrate the logic for performing statistical analysis in accordance with one or more embodiments of the invention;

FIG. 4 illustrates a machine learning pipeline in accordance with one or more embodiments of the invention;

FIG. 5 illustrates an exemplary alignment plot in accordance with one or more embodiments of the invention;

FIG. 6 illustrates an exemplary single user interface for adjusting geometric segment determination in accordance with one or more embodiments of the invention;

FIG. 7 illustrates a second exemplary single user interface for adjusting curvature geometric segment determination in accordance with one or more embodiments of the invention;

FIG. 8 illustrates an alternative graphical user interface with property value tables in accordance with one or more embodiments of the invention;

FIG. 9 is an exemplary hardware and software environment used to implement one or more embodiments of the invention; and

FIG. 10 schematically illustrates a typical distributed/cloud-based computer system in accordance with one or more embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

Overview

Embodiments of the invention provide a workflow that incorporates two new concepts: firstly, it facilitates the automatic detection and creation of the continuous alignment, and secondly, it allows the user to modify and alter the alignment geometry, while being simultaneously guided by displayed meta information such as curvature and offset distance to survey points—all combined within the same view. In embodiments of the invention, detection may be conducted using statistical properties or through machine learning processes. Depending on the accuracy, the detection will already undertake a significant portion of the traditional workflow, which will save time. Where the detection is imprecise, the user can swiftly edit and rectify the alignment using the combined alignment, curvature, and offset graph view.

Geometries are visualized in both the curvature and the alignment preview, enabling a user to rapidly see where entities start and end. The alignment's geometries can be visualized using different colors in the radius graph and on the real alignment plot.

Furthermore, geometries can be displayed in an alignment table, which could facilitate easy editing of start and end points, along with other geometry parameters. The tables may also be utilized for verification of results by inspecting the offset values between surveyed points and regression alignment geometries. Additionally, they may be used to exclude erroneous points or assign weights to the points.

Key features of the Horizontal Regression Analysis workflow may include:

    • Modern engine that identifies lines, curves and spirals;
    • A streamlined, iterative process that allows users to easily refine results;
    • Generation of a design-ready CAD application alignment; and
    • Generation of detailed skew reports

Process Workflow

FIG. 1 illustrates the process workflow for using survey data in design workflows in accordance with one or more embodiments of the invention. At step 102, data is imported/obtained (e.g., into a regression engine). For example, the data may consist of COGO (coordinate geometry) points, 2D/3D polylines, point groups, etc. To perform the importation, a file may be selected and locally saved/stored and/or a pre-imported point may be selected from an application (e.g., from a canvas within the CIVIL 3D™ application). To be able to generate an alignment, at least one set of survey data may be required to be imported/selected. If a second path is optionally uploaded/imported, the regression may generate the centerline between the two paths. In view of the above, at step 102, survey points that represent a railway track (i.e., a physical real world railway track) are obtained.

At step 104, the imported data is organized/prepared. For example, the data may be prepared using preferred presets for the purpose of a particular project. Depending on the context, such settings may be made according to standards of a user's design firm, national standards, or individual preference. In any case, the choices made at this step have the role customize the characteristics of the alignment that will be output. The order of the workflow's steps do not have a defining role over the concept. For instance, many of the settings (e.g., naming the geometry) may also be made at a later point in the process without altering the concept. As an example, within an “alignment settings” selection, the user may decide on presets that fine-tune the final alignment including aspects such as the name of the resulting object, the layer where the alignment will be placed, and/or the station numbering convention (e.g., distance along the alignment).

At step 106, the centerline of the path(s) is (autonomously—i.e., without any additional user input) computed (based on the survey points). In this regard, survey points may represent one of the rail tracks or the centerline between two tracks.

Curvature Computations 108

At step 108, the curvatures are (autonomously) computed. Such computing may include plotting the curvatures on a curvature plot. More specifically, for each consecutive triplet of survey points, an arc is placed over the triplet, and the curvature of this arc is (autonomously) computed. That curvature is then assigned to one or more of the survey points in the triplet, and a station value that may represent a distance from the start or end of the alignment is assigned to that curvature value. The curvature plot may then be created and contains new points formed by the station and curvature values. FIG. 2 illustrates an exemplary curvature plot 200 in accordance with one or more embodiments of the invention. As illustrated, the x-axis of the curvature plot comprises station values and the y-axis comprises curvature values.

Different methods may be chosen to compute the curvature from the three points. Two commonly used ones are versine curvature and menger curvature.

Versine Curvature

Consider the points A, B, and C that form a triplet. Furthermore, consider the point D that lies perpendicular to B on the line segment from A to C. We define the distances:

a =  A - D  2 , b =  C - D  2 , v =  B - D  2 ,

where ∥·∥2 is the Euclidean distance. Then the radius R of the circle that circumscribes the three points A, B, and C can be computed by the Versine formula:

R ≈ ab 2 ⁢ v .

The curvature is then just the reciprocal of R. This method to compute curvature is an approximation to the real curvature, which is popular among surveyors for its simplicity.

Menger Curvature

Consider the points mentioned above. Furthermore, consider the area S of the triangle formed by A, B, and C. Then the Menger Curvature can be calculated by

R =  A - B  2 ⁢  A - C  2 ⁢  B - C  2 4 ⁢ S .

Curvature Plot Smoothing

Step 108 may also include the smoothing of the curvature plot 200. Let the original curvature plot 200 be defined by n points of the form (ti, yi), i=1,2, . . . , n, where ti∈ denotes the distance or station along the alignment, measured from the start, and yi∈ denotes the elevation at the station ti.

Moving Average

For the moving average, we use a moving window of size k and replace the points in the curvature plot 200 by (ti, xi), i=1,2, . . . , n−k, where

x i = ∑ j = i i + k ⁢ y j k .

In this case, the last k points are truncated or replaced by a fixed value. The moving average can be calculated similarly by truncating or fixing the first k points, or by truncating or fixing on both sides up to k points.

L1 Regularization

Consider the three consecutive curvature points (t1,y1), (t2,y2), (t3,y3). Let

α = 1 t 1 ⁢ and ⁢ β = 1 t 2 ,

and let ∥·∥ be the L1 norm defined by

 v  1 = ∑ i = 1 n ⁢ ❘ "\[LeftBracketingBar]" v i ❘ "\[RightBracketingBar]" ,

where ν is a vector of length n, and |·| denotes the absolute value. Then the grade change minimization between the three points can be stated as

min x ⁢  α ⁢ x 2 - α ⁢ x 1 - β ⁢ x 3 + β ⁢ x 2  1 .

Expanding this to n points in a curvature plot can be stated as

min x ∑ i = 2 n - 1  ( α + β ) ⁢ x i - α ⁢ x i - 1 - β ⁢ x i + 1  1 .

Solving this problem would result in a straight line. To preserve the shape of the original curvature plot 200, we introduce the smoothing coefficient λ∈ and restate our problem as

min x ∑ i = 2 n - 1  ( α + β ) ⁢ x i - α ⁢ x i - 1 - β ⁢ x i + 1  1 + λ ⁢ ∑ i = 2 n - 1  x i - y i  1 .

The problem can be written in matrix form as

min x  Ax - b  1 , where ⁢ A = [ - α ( α + β ) - β 0 0 … 0 - α ( α + β ) - β 0 … ⋮ λ 0 0 … 0 λ 0 0 … 0 0 λ 0 … ] , b = [ 0 ⋮ y 1 y 2 y 3 ⋮ ] ,

where b∈ and m=2n−2. The problem can then be written as a Linear Program:

min ⁢ 1 T ⁢ s ⁢ subject ⁢ to : ⁢ Ax - b ≤ s Ax - b ≥ s x ∈ s ∈ .

Geometry Detection 110

At step 110, geometries are detected in the curvature plot 200. Such detected geometry includes geometry types that consist of a tangent, a spiral, and a curve. The smoothed or un-smoothed curvature plot 200 can be regarded as a signal on an x, y plot. The x-axis represents the stations or distance from the beginning or another marker point of the alignment, and the y-axis represents the curvature value at that station. For points on tangents 202, curvature values are around zero, whereas for arcs or curves 204, the values are non-zero (positive or negative) but stay constant along the stations that belong to the curve. Points between curves and tangents usually rise or fall linearly, indicating a spiral 206 or clothoid. In other terms, the curvature plot 200 represents the mathematical derivative of the alignment geometries 202-206.

As mentioned above, the automated geometry detection 110 of embodiments of the invention may be based on a sliding window of arbitrary size k, that reads in k consecutive points (ti, xi) from the curvature plot 200. The size k could be chosen as a small number or include all points of the curvature plot 200. An analysis method is then run for the points in the window.

Two different approaches may be utilized to detect geometry at step 110—a statistical analysis approach and a machine learning approach. Both approaches are described in detail below.

Statistical Analysis

FIGS. 3A-3C illustrate the logic for performing the statistical analysis of the points in the window in accordance with one or more embodiments of the invention. In a statistical analysis approach, the method begins by reading a set of k consecutive points from a curvature plot (i.e., a scan window is moved at step 302), which represents the curvature values of a railway track at various stations or distances. These points are processed using a segmentation algorithm 304, such as Bellman's piecewise linear segmentation, to divide the curvature plot into a set of consecutive segments S. In another example, the algorithm 304 is SLSQ (segmented least squares) which is a dynamic programming algorithm that finds an optimal set of tangents to fit to 2D points. The algorithm 304 uses a penalty value for parsimony (e.g., via an advanced setting).

In this regard, the algorithm 304 is run for each segment left (as determined at step 306) in the curvature plot. Once the algorithm 302 has divided the curvature plot into all of the segments S, the process continues.

At step 308, each segment s E S is then analyzed to determine its geometric properties. In this regard, for each segment/tangent, and statistical measures (e.g., the slope, median, and quartiles) are obtained. More specifically, the slope m of each segment is calculated, and statistical measures such as the median μ1/2, lower quantile ql, and upper quantile qu of the curvature values are obtained. Based on these measurements/geometric properties, the method classifies each segment as either a tangent, curve, or spiral.

A determination is made at step 310 regarding whether the slope is flat or not (i.e., whether it is below a predefined threshold). If the slope of a segment is below a predefined threshold ε, the segment is considered flat (and the process continues to FIG. 3C) and can be classified as either a tangent or a curve. Thereafter, based on the statistical measures, the system distinguishes between the tangent or the curve for the flat segment.

As illustrated in FIG. 3C, if the segment is part of a spiral (i.e., as determined at step 312), the method evaluates the segment's length and continuity with previous segments to determine whether to merge it with an existing spiral or classify it as a new geometric feature. In this regard, if it is determined at step 312 that the segment was on a spiral before, the spiral is ended at step 314, and a tangent or curve (i.e., a new geometric feature) is started at step 316. However, if it is determined at step 312 that the segment was not on a spiral before, a determination is made at step 318 regarding whether the segment is longer than a minimum spiral. If it is not longer than the minimum spiral, the process return back to FIG. 3A for processing of the next segment.

If the segment is longer than the minimum spiral, a determination is made at step 320 regarding whether the segment is on a tangent. Thereafter, further checks of the median (via steps 322-328) and quantiles (via steps 330-336) help distinguish between these two geometries. More specifically, if not on a tangent (as determined at step 320), a determination is made at step 322 regarding whether there are opposite sign quartiles or a small median. If the quartile signs are not opposite or the median is not small, it is determined that the segment is on the previous curve at step 324. However, if the quartiles have opposite signs or there is small median, the curve geometric segment is ended at step 326 and the tangent geometric segment is started at step 328.

Returning to step 320, if the segment is on a tangent, a determination is made at step 330 regarding whether the quartiles have the same sign. If not, it is determined that the segment is on a previous tangent at step 332. If the quartiles have the same sign, the tangent segment is ended at step 334, and a new curve geometric segment is started at step 336.

Returning to FIG. 3A, for segments with slopes exceeding the threshold E (i.e., the slope is not flat), the method continues to FIG. 3B and checks for significant changes in curvature to identify potential spiral transitions. Statistical measures of the segment are then compared to determine whether to add a tangent, curve, or spiral at the potential spiral transition. In other words, when the slope exceeds the threshold, it is determined that the segment is not part of a spiral. Thereafter, the length of the segment and continuity with a previous segment are evaluated to determine whether to merge the segment with an existing spiral or classify the segment as a new geometric feature. More specifically, the median and quantiles of the curvature values from previous segments are compared to determine whether to add a tangent, curve, or spiral at these transitions. More specifically, if the segment was not on a spiral before (as determined at step 338), the quartile and median before the segment are obtained at step 340. At step 342, a determination is made regarding whether the quartiles have opposite signs or if the median is small (e.g., below a defined threshold). If neither condition applies, the curve segment is ended at step 344. If either condition applies, it is determined that the segment was a tangent and it is ended at step 346. A spiral segment is then started at step 348.

If the segment was on a spiral before (as determined at step 338), a determination is made at step 350 regarding whether a significant spiral change has happened. If not, the process continues with the next segment (back to FIG. 3A via FIG. 3C). If there is significant changes on the current spiral segment, the current spiral segment is ended at step 352 and a new spiral segment is started at step 354.

The method iteratively processes (via steps 306) all points in the curvature plot until no more points are left. It tracks previous segments to connect them with segments in subsequent windows if they form the same geometry. Segments representing spirals may be merged to form a single spiral. The method also keeps track of consecutive spirals and removes or inserts curves where necessary.

In view of the above, FIGS. 3A-3C show a flow diagram of the statistical analysis. The listing in Table A provides a schematic representation of the logical flow:

TABLE A
Require: Curvature Plot, ε
 1 repeat
 2  Read k points for Tim
 3  Run Bellman to obtain segments S
 4  for all s∈S do
 5   Read curvature values C from s
 6   m ← slope of s
 7   μ1/2 ← median of C
 8   qu ← an upper quantile of C
 9   ql ← a lower quantile of C
10   if |m| ≤ ε then
11    if previous s was a spiral? Then
12     Add a spiral and start tangent or curve.
13    else
14     if s is longer than some minimum spiral length? Then
15      if previous s is a tangent? Then
16       if sign(qu)≠sign (ql) then
17        Add tangent and start curve.
18       else
19        Stay on previous tangent.
20       end if
21      else
22       if μ1/2 is small or sign(qu)≠sign (ql) then
23        Add a curve and start tangent.
24       else
25        Stay on previous curve.
26       endif
27      endif
28     endif
29    endif
30   else
31    if previous s was a spiral? Then
32     if significant spiral change happened? Then
33      Add a spiral and start new spiral.
34     else
35      μ*1/2 ← median of previous C
36      q*u ← an upper quantile of previous C
37      q*l ← a lower quantile of previous C
38      if μ*1/2 is small or sign (q*u) ≠sign (q*l) then
39       Add a tangent and start spiral.
40      else
41       Add a curve and start spiral.
42      endif
43     endif
44    endif
45   endif
46  end for
47  until no more points are left

Machine Learning Analysis

In a machine learning approach, the system performs classification of sequences of survey points to detect the railway geometry. For each survey point, it produces one of four labels in a 4-class system: Tangent (T), Curve (C), Spiral Increasing (SI), and Spiral Decreasing (SD). These classifications feed a geometry solver that generates a connected best-fit alignment.

From survey points (x, y) we compute bearing (direction of travel), station (distance along the track), and curvature (how sharply the track bends). Curvature may use the versine or Menger formulas (as described above). For each of the survey points, based on the signals, we then build input vectors using named feature modes that describe which signals are included (in that survey point):

sc: [station, curvature]
scC: [station, curvature, |curvature|] (adds absolute
curvature for clearer spiral boundaries)
xysc: [x, y, station, curvature]
xysC: [x, y, station, |curvature|]
xycC: [x, y, curvature, |curvature|]
xybc: [x, y, bearing, curvature]
xyscC: [x, y, station, curvature, |curvature|]
xybsc: [x, y, bearing, station, curvature]
xybscC: [x, y, bearing, station, curvature, |curvature|]

Any of these feature modes can be used as input to the classification model; the choice depends on which signals are available and the desired robustness.

The inputs are then normalized so the model sees similar value ranges during training and in use. For curvature, a symmetric percentile scaling may be used: typical large positive and negative curvature values are estimated (for example the 95th percentile magnitudes) across data, then positives and negatives are scaled by their own constants and clipped to [−1,1]. This keeps left/right bends balanced and helps the model recognize spirals. Standard scaling and a legacy station/curvature scheme are also available.

Once normalized, a sequence is constructed. The signal is cut into overlapping windows of a fixed length (for example 200-500 points). A small overlap helps smooth the result at window boundaries. Only the last, shorter fragment is padded if needed.

An ML Model is then defined that is trained to predict a class for each survey point by receiving the survey point as input and outputting a class from a predefined list of classes (for each survey point).

Exemplary ML model embodiments may utilize a hybrid network as the default model. Such embodiments may first use 1D convolutions (Conv1D) to extract local patterns, then a bidirectional LSTM (long short term memory) to understand how those patterns evolve along the (railway) track, and finally a small classifier that outputs one of the four classes for each survey point. Alternative versions can add residual connections or use attention layers, but the overall idea is the same: recognize local shapes, then use context over distance.

Conv1D layers act like small sliding detectors. Over short spans of points they can, for example:

    • spot nearly constant curvature (typical for a circular curve),
    • spot curvature near zero (typical for a tangent),
    • spot small linear ramps in curvature (typical for a spiral increasing or decreasing),
    • recognize a gentle local turn or arc shape in the (x, y) view,
    • distinguish steady bearing changes (curves/spirals) from flat bearing (tangents),
    • use the absolute curvature channel to stabilize the detection of spiral boundaries.

An LSTM (Long Short-Term Memory) layer then looks at how these local patterns change along the track. It keeps/maintains a running memory of what came before and what comes next (when bidirectional), while also forgetting noise. In practice, this helps the model:

    • confirm that a short curve-like patch is truly part of a longer curve (i.e., that a first segment is part of a second longer segment);
    • follow gradual ramps in curvature to identify spirals reliably; amd
    • place cleaner boundaries between tangents, curves, and spirals by using context on both sides.

The model can be trained to predict the correct geometry class for each survey point. The training objective encourages correct classifications and stable boundaries between regions, so results are both accurate and smooth along the track.

Inference Pipeline—when classifying a new alignment, the same overlapping window may slide along the data. Each window makes its own prediction; where windows overlap, their opinions may be combined by simple majority voting. A small smoothing step (for example, taking the majority in a short neighborhood) removes isolated misclassifications. The result is one stable label per survey point.

Direction-Aware Segmentation and Merging—consecutive points with the same label/class may be grouped into segments and very short segments (likely noise) can be dropped. Because spirals can increase or decrease in curvature, SI and SD may be kept separate so transitions are respected. Simple rules decide when neighboring segments can be merged (for example, tangent next to tangent).

Integration with Geometry Solver—Each segment becomes/is converted into a simple geometry primitive (tangent, curve with a sign for left/right, or spiral with increase/decrease). A solver then connects these pieces (i.e., each geometry primitive) while enforcing smooth joins (tangency). If a larger group cannot be solved, the system tries smaller groups or flags the spot for a quick manual check.

Training Data Generation—Embodiments of the invention may use synthetic supervision with increasing realism:

    • Phase 1: Basic patterns with controlled noise to establish core recognition.
    • Phase 2: Wear simulation across noise intensities (light→severe) conditioned on asset factors (age, maintenance, traffic).
    • Phase 3: Challenging compositions (long spirals, rapid transitions, compound curves; spiral-curve-spiral) and a fraction of clean references to sharpen boundaries. Complex pattern injection increases robustness.

These datasets mirror feature computation and normalization used in deployment to avoid train-inference skew.

Performance and Industrial Applicability—Representative evaluations on synthetic and real survey data show high point-wise accuracy and strong segment-level fidelity, with especially high precision on spiral detection. The pipeline is efficient (parallel preprocessing and lightweight models), deployable in CAD contexts, and integrable with existing alignment solvers. The described components may be implemented on CPU, GPU, or APPLE SILICON™ processor acceleration without changing the method.

Variations—In addition to dual-branch and hybrid models, alternative classifiers (including attention-only encoders) may be substituted. Feature modes may be selected per dataset; notably, adding Icurvaturel (xycC) often improves spiral boundary detection. Voting stride, smoothing windows, segment thresholds, and solver back-off policies may be tuned without departing from the core method.

In view of the above, FIG. 4 illustrates a machine learning pipeline, feature computation and normalization, sequence construction, classification with a hybrid Conv1D+(bi)LSTM model, overlapping-window voting, direction-aware segmentation (SI/SD), and geometry solver integration. While referencing FIG. 4, the following method/system/medium embodiments are supported by the foregoing description:

    • (1) Method: Receiving survey points 402; computing signals/features 404 such as bearing, station, and curvature; normalizing curvature 406 by standard, legacy-2D, or raw symmetric percentile scaling with separate kpos and kneg; sequence construction 408 (e.g., with length L, strid s, and padding at the tail), for example, assembling feature sequences (from the curvature) in a selected mode (including [x, y,curvature, |curvature|]); and utilizing an ML model to perform various predictions including extracting features 410 (e.g., using a Conv1D feature extractor (multi-layer); classifying 412-414 each point with a dual-branch or hybrid sequence model (e.g., a (bi)LSTM sequence modeler 412) that may utilize head per-point logits (B, L, 4) 414 (e.g., generating class T, C, SI, or SD as described above); aggregating overlapping-window predictions 416 by majority voting (and/or temporal smoothing); performing direction-aware segmentation 418 that preserves SI/SD; and generating alignment primitives and invoking group solvers to output a connected best-fit alignment (e.g., a geometry solver (2-/3-/4-entity; tangency).
    • (2) System: One or more processors and memory storing instructions to perform the method, including model parameters and configuration for feature modes, normalization, windowing, and segmentation thresholds.
    • (3) Computer-Readable Medium: Instructions which, when executed, cause a machine to perform the method, including computing the symmetric percentile scaler and applying direction-aware segmentation rules.

In addition to the above, feature modes/sequences may be selected from a library (xysc, xybc, xycC, xybscC); using (bi)LSTM or attention encoders; applying temporal logit smoothing; tuning window length/stride; iterative refinement using solver residuals.

Geometry Solver

When the detection algorithm 110 identifies the geometries (tangents, spirals, and curves), they are detected in a sequence that should represent a connected alignment. The rail track alignment should be smooth where the geometries join. In civil engineering, this smoothness is also called tangency where the geometries meet. FIG. 5 illustrates an exemplary alignment plot 500 showing the different segments including tangents 502, spirals 504, and curves 506 in accordance with one or more embodiments of the invention (also shown are the different segment types displayed visually distinguishable from each other—e.g., different colors for different segment types).

Sometimes it is possible to join curves 506 and tangents 502 directly and preserve tangency or smoothness. However, in many cases, they don't connect smoothly. This is where spirals 504 are used to transition from a curve 506 to a tangent 502 or vice versa, or from curve 506 to curve 506. Euler spirals 504 (clothoids) have a linear change in curvature, and solving for the correct start and end radius can be done using optimization methods such as Newton's method. Sometimes it is not possible to solve for such a spiral 504.

In embodiments of the invention, the detection algorithm attempts to identify spirals 504 between tangents 502 and curves 506, and the corresponding parameters. However, embodiments may use an exact solver to compute the correct spiral parameters. This is where a Geometry Solver comes into play. It uses pre-existing spiral solvers within the CIVIL 3D™ application to connect various geometries. These spiral solvers can solve for different kinds of geometry sequences.

The main idea of a Geometry Solver of embodiments of the invention is the way the corresponding spiral solver is chosen from the CIVIL 3D™ application. The following pseudo-code in Table B illustrates this concept:

TABLE B
Require: Detected geometries sequence
 1 Initialize the alignment geometry list G ={g1, g2, ... , gn}
 2 i ← 1
 3 while i≤n do
 4  Use appropriate 4-entity solver for quadruplet gi, gi+1, gi+2, and
 gi+3
 5  if 4-entity solver fails then
 6   Use appropriate 3-entity solver for triplet gi, gi+1, gi+2
 7   if 3-entity solver fails then
 8    Use appropriate 2-entity solver for pair gi, gi+1
 9    if 2-entity solver fails then
10     Mark gi as requiring manual adjustment
11    endif
12    i ← i + 1
13   else
14    i ← i + 2
15   endif
16  else
17   i ← i + 3
18  endif
19  end while
20  Return the connected alignment geometry list G

With a sequence of detected geometries of G, the Geometry Solver algorithm processes the geometries in the sequence by grouping them into pairs, triplets, and quadruplets. The algorithm then uses the appropriate group solver to solve the geometries in one group. After solving the geometries in one group, the algorithm moves on to the next group. Solving a group of geometries involves calculating the geometries in the group and keeps them being tangential to each other.

Embodiments of the invention support 2-entity, 3-entity, and 4-entity solvers for pairs, triplets, and quadruplets, respectively. For example, a simple 2-entity solver can solve for a spiral 504 between a tangent (T) 502 and a curve (C). 506. Let's call this a TC solver. A 3-entity solver solves for a spiral 504 between two curves 506 is called a CC solver. Similarly, if there is already a tangent 502, a spiral (S) 504, and a curve 506, and it is desired to add another curve 506, a 4-entity solver TSCC solver may be used.

Exemplary 4-entity solvers include:

    • Tangent-Spiral-Spiral-Tangent (TSST) solver
    • Tangent-Spiral-Spiral-Curve (TSSC) solver
    • Curve-Spiral-Spiral-Tangent (CSST) solver
    • Curve-Spiral-Spiral-Curve (CSSC) solver

Exemplary 3-entity solvers include:

    • Tangent-Spiral-Curve (TSC) solver
    • Curve-Spiral-Tangent (CST) solver
    • Curve-Spiral-Curve (CSC) solver
    • Tangent-Curve-Tangent (TCT) solver

Exemplary 2-entity solvers include:

    • Tangent-Spiral (TS) solver
    • Spiral-Tangent (ST) solver
    • Spiral-Curve (SC) solver
    • Curve-Spiral (CS) solver
    • Tangent-Curve (TC) solver
    • Curve-Tangent (CT) solver

Modifications Optimization

Returning to FIG. 1, once geometries have been detected at step 110 and the geometry solver has been utilized to provide a connected alignment, the results are displayed at step 112. FIGS. 2 and 5 illustrate the curvature plot (FIG. 2) and alignment plot (FIG. 5) that is displayed/output. In other words, step 112 provides for displaying an alignment on a graphical user interface. Such a displayed alignment may include the curvature plot, and detected geometry displayed on the curvature plot wherein each geometry type is displayed in a visually distinguishable manner from other geometry types.

At step 114, the results may be changed/adjusted (e.g., by adjusting detection parameters/parameters of the detected geometry). FIG. 6 illustrates an exemplary single user interface for adjusting geometric segment determination in accordance with one or more embodiments of the invention. The interface includes curvature plot 602, alignment plot 604, and detection parameter adjustment area 606. As illustrated, the user can adjust the sliders 608 in area 606 to adjust the smoothing, scan window and sensitivity. Based on the adjustments, an updated curvature plot 602 and updated alignment plot 604 are dynamically and autonomously displayed and include a better fit to survey points. Alternative methods (e.g., other than sliders 608) may be utilized to adjust the detection parameters in accordance with embodiments of the invention. In other words, step 114 includes changing the detection parameters and the dynamic updating of the displayed alignment based on the changed parameters.

FIG. 7 illustrates a second exemplary single user interface for adjusting curvature geometric segment determination in accordance with one or more embodiments of the invention. The interface includes curvature plot 702, alignment plot 704, and alignment adjustment area 706 where the users can adjust sliders 708 for graph smoothing and sensitivity. Once sliders 708 are used adjust the parameters, the curvature plot 702 and alignment plot 704 are autonomously and dynamically updated in real time to reflect the adjustment.

FIG. 8 illustrates an alternative graphical user interface where the alignment element properties values 802 and data-point properties values 804 (for the various geometric segments) are displayed in editable tables such that the user can edit individual table cells to adjust the properties in accordance with one or more embodiments of the invention. Once edited, the underlying curvature and alignment plots may be autonomously and dynamically updated in real time to reflect the changed property values.

Once the results are changed at step 114, the plots may be further optimized at step 116 before the alignment is exported at step 118 (e.g., exported to a tamping machine [e.g., in a LandXML format] to perform the alignment consistent with the alignment). In this regard, step 118 includes exporting the alignment to a physical machine (e.g., a tamping machine) that aligns the railway track consistent with the alignment.

Alternative Embodiments and Details

In view of the above, after computing the centerline at step 106, steps 108-116 provide the ability to analyze and fine tune the alignment. In this regard, the user may visualize the alignment in multiple equivalent representations (e.g., the curvature plot and alignment plot) that are displayed simultaneously from different points of view of the graphical user interface. Each of the sub-views (e.g., the plots and/or data/methods to adjust the alignment) that are displayed during the analysis describe the alignment geometry from a different point of view, but all refer to the same object(s). While FIG. 1 provides a general flow, embodiments of the invention are not limited to a strictly linear workflow. The user might cycle through the different views and compare the information in various patterns according to their individual preference. However, the defining action (of the analysis and fine tuning steps) is that the user has access to multiple forms of visual and numeric descriptions, based on which the user can inspect the output/alignments.

As described above, there are two different options for performing the analysis and fine tuning of the alignment (i.e., the geometry detection 110 and resulting adjustments in 114-116): (1) machine learning approach; and (2) the statistical analysis (also referred to as regression detection) approach.

For the machine learning approach, the user may choose to enable the artificial intelligence assisted detection and may have the option to switch between the regression detection and the AI alternative.

In the non-AI based workflow, the user may have the option to adjust various parameters as illustrated in FIG. 6 (i.e., area 606) and FIG. 7 (i.e., area 706). For example, there may be an option to adjust the “data de-noise” setting (also referred to as graph smoothing in FIG. 7). Such a slider reduces the weight of data points that have an unusually high deviation. Another adjustable parameter is that of “spiral sensitivity”. This setting determines the granularity of the segment detection. Depending on the data, a higher sensitivity is likely to result in the algorithm dividing the alignment into a higher number of segments. A lower sensitivity will approximate some of the values by slightly higher margins, resulting in the generation of a more clean geometry, with a higher tolerance for offset values.

Once detected, the alignment descriptions may be analyzed in the form of various graphs/plots/views including a radius graph, offset graph, station navigator, segment properties (tabular view), point properties (tabular view), and canvas geometry. Each of these different forms of analysis are described in details below.

Radius Graph (also referred to as a curvature plot)—referring to FIG. 7, a radius graph/curvature plot 702 may help the user visualize the curvature of the alignment as it evolves. Following this graph 702, one can visually distinguish the areas where the alignment has a straight shape, from the curves and the transition segments (spirals). In one or more embodiments, the different segment types may be marked/displayed with different colors. For example, straight segments may be marked with red, curves may be depicted in blue, and spirals may be represented in green. However, different colors and/or distinguishing characteristics may be used (e.g., line patterns, shading, etc.). In one or more embodiments an “O” curvature axis 710 may be in the middle, and a segment that diverges upwards describes a curvature of an alignment to the left. Similarly, segments that diverge downwards may describe a curvature of the alignment to the right. Comparative differences between survey data points and the detected alignment may also be visualized/highlighted. Such comparative difference indications may allow for a visual inspection of the accuracy of the detection and helps the user decide if supplementary manual adjustment are needed in specific areas. The curvature information may also be mapped in accordance with alignment stationing (distance on the course of the alignment) on the x-axis and the radius/curvature on the y-axis.

Offset Graph—the offset graph 712 helps the user visualize the difference (comparative differences) between the position of the survey data (i.e., the survey points) and the detected alignment/geometry. An “O” deviation axis 714 may be displayed in the middle—segments that diverge upwards describe an offset of the alignment to the left of the survey data; similarly, the segments that diverge downwards describe an offset of the alignment to the left of the survey data. The line of the graph may also be color coded, so that the user can visualize high deviations easier—for example, areas of high deviation may be in red, mid range deviation may be marked with yellow, and small to no deviation may be represented in green. The curvature information may be mapped in accordance to the alignment stationing (distance on the course of the alignment) on the x-axis and the value of the deviation on the y-axis.

Station Navigator 716—this is a zoomed out depiction of the curvature graph/plot 702, allowing users to orientate and quickly move along the stationing of the alignment. The rectangle 718 that highlights a particular segment of the (zoomed out) graph/view determines which segment is currently visible in other views (e.g., in the displayed alignment of the curvature plot).

Segment Properties (tabular view) (also referred to as alignment element properties 802)—this is a table that is describing the geometric properties of each detected alignment segment (each straight/tangent, curve, and spiral) in numerical form. It gives information about features such as the segment type, total length, start and end point alongside the alignment stationing. The tabular view communicates with the graphs (e.g., the curvature plot) and the displayed information is correlated. Some of the values can be modified by editing the number in the table cell of the tabular view 802 and the change will be reflected (e.g., dynamically updated) in the alignment geometry/curvature plot.

Point properties (tabular view) 804—this is a table that is describing the properties of each individual data point (i.e., survey point) in numerical form. It gives information about features such as: the stationing of the point alongside the alignment; Northing and Easting of the point; and offset (distance between original survey data point and detected alignment). The point properties tabular view 804 communicates with the graphs (e.g., the curvature plot) and displayed information is correlated. Some of the values can be modified by editing the number in the table cell and the change will be reflected (e.g., dynamically updated) in the alignment geometry/curvature plot.

Canvas geometry preview (also referred to as alignment plot/graph 704)—applications of embodiments of the invention may display a preview of the alignment geometry.

After reviewing/editing via the above graphs/plots/views, the user may commit the changes and generate the geometry for export (i.e., step 118).

Hardware Environment

FIG. 9 is an exemplary hardware and software environment 900 (referred to as a computer-implemented system and/or computer-implemented method) used to implement one or more embodiments of the invention. The hardware and software environment includes a computer 902 and may include peripherals. Computer 902 may be a user/client computer, server computer, or may be a database computer. The computer 902 comprises a hardware processor 904A and/or a special purpose hardware processor 904B (hereinafter alternatively collectively referred to as processor 904) and a memory 906, such as random access memory (RAM). The computer 902 may be coupled to, and/or integrated with, other devices, including input/output (I/O) devices such as a keyboard 914, a cursor control device 916 (e.g., a mouse, a pointing device, pen and tablet, touch screen, multi-touch device, etc.) and a printer 928. In one or more embodiments, computer 902 may be coupled to, or may comprise, a portable or media viewing/listening device 932 (e.g., an MP3 player, IPOD, NOOK, portable digital video player, cellular device, personal digital assistant, etc.). In yet another embodiment, the computer 902 may comprise a multi-touch device, mobile phone, gaming system, internet enabled television, television set top box, or other internet enabled device executing on various platforms and operating systems.

In one embodiment, the computer 902 operates by the hardware processor 904A performing instructions defined by the computer program 910 (e.g., a computer-aided design [CAD] application) under control of an operating system 908. The computer program 910 and/or the operating system 908 may be stored in the memory 906 and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program 910 and operating system 908, to provide output and results.

Output/results may be presented on the display 922 or provided to another device for presentation or further processing or action. In one embodiment, the display 922 comprises a liquid crystal display (LCD) having a plurality of separately addressable liquid crystals. Alternatively, the display 922 may comprise a light emitting diode (LED) display having clusters of red, green and blue diodes driven together to form full-color pixels. Each liquid crystal or pixel of the display 922 changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor 904 from the application of the instructions of the computer program 910 and/or operating system 908 to the input and commands. The image may be provided through a graphical user interface (GUI) module 918. Although the GUI module 918 is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system 908, the computer program 910, or implemented with special purpose memory and processors.

In one or more embodiments, the display 922 is integrated with/into the computer 902 and comprises a multi-touch device having a touch sensing surface (e.g., track pod, touch screen, smartwatch, smartglasses, smartphones, laptop or non-laptop personal mobile computing devices) with the ability to recognize the presence of two or more points of contact with the surface. Examples of multi-touch devices include mobile devices (e.g., IPHONE, ANDROID devices, WINDOWS phones, GOOGLE PIXEL devices, NEXUS S, etc.), tablet computers (e.g., IPAD, HP TOUCHPAD, SURFACE Devices, etc.), portable/handheld game/music/video player/console devices (e.g., IPOD TOUCH, MP3 players, NINTENDO SWITCH, PLAYSTATION PORTABLE, etc.), touch tables, and walls (e.g., where an image is projected through acrylic and/or glass, and the image is then backlit with LEDs).

Some or all of the operations performed by the computer 902 according to the computer program 910 instructions may be implemented in a special purpose processor 904B. In this embodiment, some or all of the computer program 910 instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor 904B or in memory 906. The special purpose processor 904B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor 904B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program 910 instructions. In one embodiment, the special purpose processor 904B is an application specific integrated circuit (ASIC).

The computer 902 may also implement a compiler 912 that allows an application or computer program 910 written in a programming language such as C, C++, Assembly, SQL, PYTHON, PROLOG, MATLAB, RUBY, RAILS, HASKELL, or other language to be translated into processor 904 readable code. Alternatively, the compiler 912 may be an interpreter that executes instructions/source code directly, translates source code into an intermediate representation that is executed, or that executes stored precompiled code. Such source code may be written in a variety of programming languages such as JAVA, JAVASCRIPT, PERL, BASIC, etc. After completion, the application or computer program 910 accesses and manipulates data accepted from I/O devices and stored in the memory 906 of the computer 902 using the relationships and logic that were generated using the compiler 912.

The computer 902 also optionally comprises an external communication device such as a modem, satellite link, Ethernet card, or other device for accepting input from, and providing output to, other computers 902.

In one embodiment, instructions implementing the operating system 908, the computer program 910, and the compiler 912 are tangibly embodied in a non-transitory computer-readable medium, e.g., data storage device 920, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive 924, hard drive, CD-ROM drive, tape drive, etc. Further, the operating system 908 and the computer program 910 are comprised of computer program 910 instructions which, when accessed, read and executed by the computer 902, cause the computer 902 to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory 906, thus creating a special purpose data structure causing the computer 902 to operate as a specially programmed computer executing the method steps described herein. Computer program 910 and/or operating instructions may also be tangibly embodied in memory 906 and/or data communications devices 930, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device,” and “computer program product,” as used herein, are intended to encompass a computer program accessible from any computer readable device or media.

Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer 902.

FIG. 10 schematically illustrates a typical distributed/cloud-based computer system 1000 using a network 1004 to connect client computers 1002 to server computers 1006. A typical combination of resources may include a network 1004 comprising the Internet, LANs (local area networks), WANs (wide area networks), SNA (systems network architecture) networks, or the like, clients 1002 that are personal computers or workstations (as set forth in FIG. 9), and servers 1006 that are personal computers, workstations, minicomputers, or mainframes (as set forth in FIG. 9). However, it may be noted that different networks such as a cellular network (e.g., GSM [global system for mobile communications] or otherwise), a satellite based network, or any other type of network may be used to connect clients 1002 and servers 1006 in accordance with embodiments of the invention.

A network 1004 such as the Internet connects clients 1002 to server computers 1006. Network 1004 may utilize ethernet, coaxial cable, wireless communications, radio frequency (RF), etc. to connect and provide the communication between clients 1002 and servers 1006. Further, in a cloud-based computing system, resources (e.g., storage, processors, applications, memory, infrastructure, etc.) in clients 1002 and server computers 1006 may be shared by clients 1002, server computers 1006, and users across one or more networks. Resources may be shared by multiple users and can be dynamically reallocated per demand. In this regard, cloud computing may be referred to as a model for enabling access to a shared pool of configurable computing resources.

Clients 1002 may execute a client application or web browser and communicate with server computers 1006 executing web servers 1010. Such a web browser is typically a program such as MICROSOFT INTERNET EXPLORER/EDGE, MOZILLA FIREFOX, OPERA, APPLE SAFARI, GOOGLE CHROME, etc. Further, the software executing on clients 1002 may be downloaded from server computer 1006 to client computers 1002 and installed as a plug-in or ACTIVEX control of a web browser. Accordingly, clients 1002 may utilize ACTIVEX components/component object model (COM) or distributed COM (DCOM) components to provide a user interface on a display of client 1002. The web server 1010 is typically a program such as MICROSOFT'S INTERNET INFORMATION SERVER.

Web server 1010 may host an Active Server Page (ASP) or Internet Server Application Programming Interface (ISAPI) application 1012, which may be executing scripts. The scripts invoke objects that execute business logic (referred to as business objects). The business objects then manipulate data in database 1016 through a database management system (DBMS) 1014. Alternatively, database 1016 may be part of, or connected directly to, client 1002 instead of communicating/obtaining the information from database 1016 across network 1004. When a developer encapsulates the business functionality into objects, the system may be referred to as a component object model (COM) system. Accordingly, the scripts executing on web server 1010 (and/or application 1012) invoke COM objects that implement the business logic. Further, server 1006 may utilize MICROSOFT'S TRANSACTION SERVER (MTS) to access required data stored in database 1016 via an interface such as ADO (Active Data Objects), OLE DB (Object Linking and Embedding DataBase), or ODBC (Open DataBase Connectivity).

Generally, these components 1000-1016 all comprise logic and/or data that is embodied in/or retrievable from device, medium, signal, or carrier, e.g., a data storage device, a data communications device, a remote computer or device coupled to the computer via a network or via another data communications device, etc. Moreover, this logic and/or data, when read, executed, and/or interpreted, results in the steps necessary to implement and/or use the present invention being performed.

Although the terms “user computer”, “client computer”, and/or “server computer” are referred to herein, it is understood that such computers 1002 and 1006 may be interchangeable and may further include thin client devices with limited or full processing capabilities, portable devices such as cell phones, notebook computers, pocket computers, multi-touch devices, and/or any other devices with suitable processing, communication, and input/output capability.

Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with computers 1002 and 1006. Embodiments of the invention are implemented as a software/CAD application on a client 1002 or server computer 1006. Further, as described above, the client 1002 or server computer 1006 may comprise a thin client device or a portable device that has a multi-touch-based display.

CONCLUSION

This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accomplishing the present invention. For example, any type of computer, such as a mainframe, minicomputer, or personal computer, or computer configuration, such as a timesharing mainframe, local area network, or standalone personal computer, could be used with the present invention. In summary, embodiments of the invention combine automatic detection, as well as a continuous alignment that can be edited simultaneously with support of a curvature/radius graph/plot, alignment preview/graph/plot, and/or alignment table. The user may easily correlate five (5) different methods of data visualization at the same time to inspect and customize the desired output. This allows for a very high level of precision in defining the desired alignment geometry.

Embodiments of the invention may also provide seamless integration within a CAD application environment (e.g., the CIVIL 3D™ application) and enhances user experience through its intuitive design and high performance. Also, embodiments of the invention may provide tools that are sharable components, that can be reused in different environments, e.g., the RECAP application).

Further to the above, embodiments of the invention provide an alignment process that utilizes a sliding window that performs a segmented lease square partition, and chains the segments together into geometries, mixes a greedy-approach algorithm with dynamic programming and some statistical ideas, in a manner that is not possible in the prior art.

The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.

REFERENCES

  • [Bellman] R. Bellman, On the approximation of curves by line segments using dynamic programming, Communications of the ACM, 4(6):284, 1961.

Claims

What is claimed is:

1. A computer-implemented method for aligning a railway track, comprising:

obtaining survey points that represent the railway track, wherein the railway track is a physical real world railway track;

autonomously computing a centerline of the railway track based on the survey points;

autonomously computing curvatures based on the survey points and centerline, wherein the computing comprises plotting the curvatures on a curvature plot;

detecting geometry based on the curvature plot, wherein the detected geometry comprises geometry types, wherein the geometry types comprise a tangent, a spiral, and a curve;

displaying an alignment on a graphical user interface, wherein:

the displayed alignment comprises the curvature plot;

the detected geometry is displayed on the curvature plot;

each geometry type is displayed in a visually distinguishable manner from other geometry types;

changing parameters of the detected geometry;

dynamically updating the alignment based on the changed parameters;

exporting the alignment to a physical machine that aligns the railway track consistent with the alignment.

2. The computer-implemented method of claim 1, wherein the autonomously computing the curvatures comprises:

for each triplet of the survey points:

placing an arc over the triplet;

autonomously computing a curvature of the arc;

assigning the curvature to one or more of the survey points in the triplet;

assigning a station value that represents a distance from a start or end of the alignment that is assigned to that curvature; and

creating the curvature plot that contains new points formed by the station value and the curvature, wherein an x-axis of the curvature plot comprises station values, and a y-axis of the curvature plot comprises curvature values.

3. The computer-implemented method of claim 1, further comprising:

smoothing the curvature plot.

4. The computer-implemented method of claim 1, wherein the displayed alignment further comprises an offset graph that visualizes comparative differences between the survey points and the detected geometry.

5. The computer-implemented method of claim 1, wherein the alignment further comprises a station navigator comprising a zoomed out depiction of the curvature plot with a rectangle highlighting a particular segment of the zoomed out depiction of the curvature plot that determines which segment is visible in the displayed alignment of the curvature plot.

6. The computer-implemented method of claim 1, wherein:

the displayed alignment further comprises a tabular view of segment properties that describes geometric properties of each detected geometry in numerical form;

the tabular view communicates with the curvature plot and displayed information is correlated;

the changing the parameters further comprises modifying numbers in a table cell of the tabular view; and

the dynamically updating the alignment reflects the modified numbers in the curvature plot.

7. The computer-implemented method of claim 1, wherein:

the displayed alignment further comprises a tabular view of point properties that describes properties of each survey point in numerical form;

the tabular view communicates with the curvature plot and displayed information is correlated;

the changing the parameters further comprises modifying numbers in a table cell of the tabular view; and

the dynamically updating the alignment reflects the modified numbers in the curvature plot.

8. The computer-implemented method of claim 1, wherein:

the alignment that is displayed comprises a visualization of the alignment in multiple equivalent representations that are displayed simultaneously from different points of view on the graphical user interface.

9. A computer-implemented method for aligning a railway track, comprising:

(a) obtaining survey points that represent the railway track, wherein the railway track is a physical real world railway track;

(b) autonomously computing a centerline of the railway track based on the survey points;

(c) autonomously computing curvatures based on the survey points and centerline, wherein the computing comprises plotting the curvatures on a curvature plot;

(d) detecting geometry based on the curvature plot, wherein:

(1) the detected geometry comprises geometry types;

(2) the geometry types comprise a tangent, a spiral, and a curve;

(3) the detecting comprises a sliding window that iteratively steps over the curvature plot until all survey points in the curvature plot are processed;

(4) at each step:

(i) analyzing data in the sliding window to determine start and end points of the geometry types;

(e) providing the start and end points to an alignment solver that creates an alignment geometry using a geometry solver;

(f) exporting the alignment geometry to a physical machine that aligns the railway track consistent with the alignment.

10. The computer-implemented method of claim 9, wherein the analyzing comprises linear regression, dynamic programming, and statistical checks.

11. The computer-implemented method of claim 9, wherein the analyzing comprises statistical analysis and comprises:

reading a set of k consecutive points from the curvature plot within the sliding window;

processing the set of points using a segmentation method to divide the curvature plot into a set of consecutive segments;

analyzing each of the consecutive segments to determine its geometric properties, wherein the geometric properties comprise:

a slope of each segment; and

statistical measures of curvature values; and

classifying each segment as either a tangent, curve, or spiral based on the geometric properties.

12. The computer-implemented method of claim 11, wherein the classifying comprises:

determining that the slope of the segment is below a predefined threshold;

determining, based on the slope below the predefined threshold, that the segment is considered flat and can be classified as either a tangent or a curve;

based on the statistical measures, distinguishing between the tangent or the curve for the flat segment.

13. The computer-implemented method of claim 11, wherein the classifying comprises:

determining that the slope of the segment is above a predefined threshold;

determining, based on the slope above the predefined threshold, that the segment is part of a spiral;

evaluating a length of the segment and continuity with a previous segment to determine whether to merge the segment with an existing spiral or classify the segment as a new geometric feature.

14. The computer-implemented method of claim 13, wherein the evaluating comprises:

checking for changes in curvature to identify potential spiral transitions;

comparing statistical measures of the segment to statistical measures of previous segments to determine whether to add a tangent, curve, or spiral at the potential spiral transition.

15. The computer-implemented method of claim 9, wherein the analyzing utilizes a machine learning model comprising:

from survey points (x,y), computing signals, wherein the signals comprise a bearing, a station, and a curvature;

for each of the survey points, based on the signals, building input vectors that describe which signals are included in that survey point;

normalizing the input vectors;

constructing a sequence by cutting the signals into overlapping windows of a fixed length;

defining a machine learning (ML) model wherein the ML model:

is trained to predict a class, for each survey point;

receives the survey points as input and outputs a class from a predefined list of classes for each survey point,

extracts local patterns using 1D convolutions; and

uses a bidirectional long short-term memory (LSTM) to understand how patterns evolve along the railway track.

16. The computer-implemented method of claim 15, wherein the 1D convolution:

acts as a sliding detector;

spots curvature typical for a circular curve;

spots curvature typical for a tangent;

spots linear ramps in curvature typical for a spiral increasing or decreasing;

recognizes a local turn or arc shape in an (x,y) view;

distinguishes steady bearing changes from flat bearing; and

uses an absolute curvature channel to stabilize detection of spiral boundaries.

17. The computer-implemented method of claim 15, wherein the LSTM:

analyzes how local patterns change along the railway track;

maintains a running memory of what came before and what comes next on the railway track;

confirming that a first segment is part of a second segment, wherein the second segment is longer than the first segment;

follow ramps in curvature to identify spirals; and

places boundaries between tangents, curves, and spirals by using context on both sides.

18. The computer-implemented method of claim 15, further comprising:

grouping consecutive points with a same class into segments;

converting each segment into a geometry primitive;

connecting, using the geometry solver, each geometry primitive while enforcing smooth joins.

19. The computer-implemented method of claim 9, wherein the analyzing utilizes a machine learning model comprising:

from the survey points, computing signals, wherein the signals comprise a bearing, a station, and a curvature;

normalizing the curvature by symmetric percentile scaling;

assembling feature sequences, from the curvature, in a selected mode;

utilizing a machine learning (ML) model to:

classify each of the survey points with a dual-branch or hybrid sequence model;

aggregating overlapping-window predictions by majority voting;

performing direction-aware segmentation that preserves spiral increasing (SI) and spiral decreasing (SD);

generating alignment primitives; and

invoking group solvers to output a connected alignment.

20. The computer-implemented method of claim 19, further comprising:

selecting the feature sequences from a library.

21. The computer-implemented method of claim 19, further comprising:

applying temporal logit smoothing.

22. The computer-implemented method of claim 19, further comprising:

tuning window length or stride.

Resources

Images & Drawings included:

Sources:

Recent applications in this class:

Recent applications for this Assignee: