Patent Description:
Visual inspection of trains is an essential part of railway maintenance. Such inspections are one of the most significant responsibilities of engineering maintenance teams, and take up large amounts of time because of the size and length of trains and the frequency with which they must be repeated. As a result, there is a significant cost associated with manual human inspection.

More particularly, trains have to undergo regular maintenance exercises combining part performance testing and regular inspection. Typically, these exercises may include a daily fitness-to-run examination, mid-term examinations at periods of around <NUM> to <NUM> days, and longer-term major overhauls. Visual inspection (of the underside, roof, exterior etc.) tasks can occupy between <NUM>% and <NUM>% of the exercise schedule over the course of a year. Visual inspection may not be required at every mid-term examination, but when performed they may take from <NUM> minutes to <NUM> hours to perform, depending on exam card requirements. Even with a relatively small fleet of trains, this is a significant maintenance burden, and with a larger fleet there is a significant increase in the engineer resource needed to safely undertake visual inspections. Automation of some visual inspection tasks can remove some of the maintenance burden or speed up inspection. In particular, it would be desirable to be able to assist a human inspector with an automated inspection report performed in parallel with human inspection or which can be performed during an otherwise non-productive train manoeuvre, such as train entry into a maintenance depot.

<CIT> proposes a detection method for detecting damage to the bottom floor of a railway freight car. <CIT> proposes a train operation automatic fault detection system.

In general terms, the present invention provides a system and a method for detecting and locating anomalies in trains based on a sequence of image frames captured by a static camera. Maintenance engineer teams can then use these results to help them find anomalies more easily when performing their visual inspections.

In a first aspect, the present invention provides a train inspection system according to claim <NUM>.

Advantageously, subsequent maintenance engineer inspection of the train can then be focused on the locations of the predicted anomalies provided at the communication interface. This can help to reduce human resource costs and enable more efficient deployment of engineer time.

Conveniently, the static camera can be provided by a streaming camera service, a micro PC (personal computer) or loT (internet of things) device to automatically detect train movement and capture the sequences of inspection image frames.

The image analysis of the sequence of inspection image frames by the computer program instructions may include: detecting beginning and end locations of the moving train in the sequence of inspection image frames; and allocating image frames to positions along the length of the train on the basis of frames corresponding to the detected beginning and end locations. More particularly, when the moving train is formed from a plurality of coupled cars, the image analysis of the sequence of inspection image frames by the computer program instructions may further include: detecting locations of car-to-car transitions in the sequence of inspection image frames; and also allocating image frames to positions along the length of the train on the basis of frames corresponding to the detected car-to-car transitions. In this way, the position of a frame in the sequence of inspection image frames can be correlated to an actual train location, translating the temporal nature of the captured sequence into distance information.

Conveniently the model may be a neural network configured to learn spatial feature representations in sequences of image frames and to learn temporal evolution of the spatial feature representations. The neural network may be trained on plural training sequences of inspection image frames of moving trains representative of normalcy, the neural network having an input layer that receives each training sequence of inspection image frames and an output layer that reconstructs a corresponding sequence of image frames, weights of the neural network being adjusted to minimise an objective function that measures differences between a given training sequence and the reconstructed sequence. Conveniently, each training sequence is typically input as a series of sub-sequences of the images frames of the entire sequence, rather than all the image frames of the entire sequence being inputted at the same time. Similarly, the reconstructed sequence is typically output as a series of corresponding sub-sequences which can be combined together to form the entire reconstructed sequence. By modelling states normalcy, rather than attempting to model different states of abnormality, a need to provide training data representing all possible, and sometimes rare, states of abnormality can advantageously be avoided. Effectively, the model allows a new sequence of inspection image frames to be compared against a dataset of normal image sequences to determine a degree of difference or anomalies in the new sequence.

As one possible architecture, the neural network may have an encoder section that forms a latent representation from each input sequence of inspection image frames, and a decoder section that operates on the latent representation to form the corresponding reconstructed sequence of image frames, the encoder section having one more convolutional layers that spatially encode individual frames of the input sequence and one or more long short-term memory layers that temporally encode a time-ordered sequence of the spatially encoded frames to produce the latent representation, and the decoder section having one or more long short-term memory layers that produce a time-ordered sequence of spatially encoded reconstructed frames from the latent representation, and one more convolutional layers that generate the corresponding reconstructed sequence from the produced spatially encoded sequence. However, alternative time-sensitive abnormal image detection architectures are also possible.

The neural network may be used to identify locations on the moving train where the sequence of inspection image frames indicates departures from normalcy by: inputting the sequence of inspection image frames into the neural network to output a respective reconstructed sequence of image frames therefrom; calculating values of an error function which performs pixel-wise comparisons between image frames from the sequence of inspection image frames, and corresponding image frames from the respective reconstructed sequence of image frames; and determining departures from normalcy when the error function passes a predetermined threshold value.

The control command may increase the frame capture rate just for regions of the train including the identified locations of the associated outputted predicted anomalies stored in the data storage. By increasing the frame capture rate in this focused way, the inspection system can increase its sensitivity for trains or train regions where there is a higher likelihood of an anomaly recurring or persisting.

The communication interface may be configured to receive a maintenance report from maintenance engineer inspection of the train in response to the outputted predicted anomalies, the report interface sending the maintenance report to the processor system. The computer program instructions, when executed by the processor system may then: determine if the maintenance report identifies any actual anomalies; and when no actual anomalies are identified in the maintenance report, updates the stored model to reflect that the sequence of inspection image frames from the train is representative of normalcy; or when one or more actual anomalies are identified in the report, classifies the frame or frames in the sequence of inspection image frames showing the anomalies as being representative of those anomalies, and saves the classified frame or frames in an anomaly library. When no actual anomalies are identified, such updating can help to reduce the likelihood in the future of false-positive outputs of predicted anomalies. For example, when the model is a neural network trained on plural training sequences of inspection image frames of moving trains representative of normalcy, the instant false-positive sequence of inspection image frames can be classified as a training sequence representative of normalcy and used to retrain and thereby incrementally improve the neural network. As to the anomaly library, when enough examples of anomalies have been saved, it can be used to develop another model, e.g. in which a further neural network model is trained to search for similar image frames in further sequences of inspection image frames. This further model can therefore positively identify types of anomaly (rather than merely departures from normalcy), allowing the inspection system also to output suggested maintenance actions based on previous actions taken when this anomaly was encountered before. In such a further model, image masking may be used to focus modelling effort and subsequent anomaly identification just on parts or sections of interest, such as cabling, axles etc..

However, despite such masking, the spatiotemporal relationship between image frames can be preserved.

The disclosure provides a train depot having the train inspection system of the first aspect, and a line of track at which the static camera is installed to capture the sequence of inspection image frames of a train moving on the line of track. For example, the line of track may be a maintenance lane of the depot.

In a second aspect, the present invention provides a computer implemented method of performing train inspection according to claim <NUM>.

Thus the method of the second aspect corresponds to the system of the first aspect. Accordingly, preferred or optional features of the system of the first aspect pertain also to the method of the second third aspect.

The method may include performing maintenance engineer inspection of the train in response to the outputted predicted anomalies to identify actual anomalies corresponding to the predicted anomalies. The method may include capturing the sequence of inspection image frames of the moving train by the static camera.

Conversely, when an anomaly is predicted, and a maintenance engineer is sent to confirm the presence of absence of the anomaly, there are two possibilities. The first is that no actual anomaly is confirmed. In this case, the sequence of inspection image frames can be added to the "normal" dataset and again used to refine the model. The second is that actual anomaly confirming the prediction is identified. In this case, the anomaly can be repaired, but the system can also the classify the frame or frames in the sequence of inspection image frames showing the anomaly as being representative of those anomalies, and saves the classified frame or frames in an anomaly library to build up a new image dataset that can eventually be used to train a new model (e.g. a mask RCNN discussed below) that can positively identify anomalies. This process is illustrated schematically in <FIG>.

Currently, computer vision and machine learning techniques are unable to completely replace human experts, especially in high risk and high trust requirement industries, such as railways and aerospace. Human expertise, however, can be supplemented by such techniques in relation to specific tasks to enhance overall performance capabilities. Alternatively, an expert human maintenance team with limited engineer resource and tasked with performing time-consuming and frequent inspections on a large fleet can benefit significantly by automation of simpler tasks that do not require safety-critical decision-making. The present invention provides a train inspection system which enables the automation of visual inspection tasks on trains, i.e. inspecting for anomalies such as undercarriage and roof damage, filter blockage, external and internal graffiti, and cosmetic damage. Advantageously, this automated inspection can take place during a depot manoeuvre that would be unsafe for a human inspector to perform, thus reclaiming engineer downtime and providing cost savings.

Conventional expert systems that address the issue of automated visual inspection typically adopt an image stitching approach in which multiple images of a single entity (e.g. an automobile) are stitched together preliminary to anomaly detection. With an automobile, which has a relatively small exterior, this is possible. However, a train typically comprises many relatively long cars, coupled in succession.

Stitching together many images of a train to form a single image of even single car, let alone the whole train, thus becomes problematic, as a high degree of precision is required from the recording device to ensure that an image that can be compared to a "normal" dataset or model is obtained. Even small changes to the speed of the train would affect the image processing requirements, and may necessitate specialist apparatus to accurately determine location on the moving train and to image capture at an appropriate dynamic rate. The same difficulties would apply to a moving inspection vehicle tracking beneath or alongside a stationary train. In addition, such a tracking vehicle would introduce safety concerns and cause delays due to the need to avoid conflicts with human personnel.

Automated visual inspection applied to a single image that spanned a complete train, by contrast, would likely suffer from an averaging effect across cars of the whole train that could make it difficult for an expert system to identify localised anomalies, or to accurately locate an anomaly once identified.

In addition, where an expert system relies on anomaly detection via positive identification of specific types of anomaly, a significant chance exists that the total variety of abnormal states is not fully considered in the system. In particular, as abnormalities or anomalies of many failure modes are rare compared to normal expected operation, building an image dataset of sufficient size to train a machine learning algorithm or similar can take a significant amount of time.

Accordingly, the present invention takes a different approach, and provides a train inspection system which uses a spatiotemporal data recording (i.e. a sequence of inspection image frames) of a moving train captured by a static camera. The system examines the spatiotemporal data recording and compares against a model which allows the data recording to be evaluated for departures from normalcy. For example, the model can be developed from (typically abundant) corresponding spatiotemporal data previously determined to be normal. The system can then determine a level of abnormality spatially, e.g. the level of abnormality of an individual frame in the image sequence, and temporally, e.g. the level of abnormality across a predetermined time period or set of image frames. Thus, with the spatiotemporal analysis, each image frame's own features can be considered, and a possible anomaly's position along the train can be identified by reference to its position in the sequence of frames. In this way, the existence and severity of anomalies (such as damage, dirt or missing parts) and their location can be identified and communicated to a human expert.

For example, armed with the results of the automated inspection, a maintenance engineer can inspect the train and determine whether the anomaly predicted by the system is accurate and corresponds to an actual anomaly or can be disregarded (i.e. no actual anomaly discovered). In the former case, the frame or frames from the spatiotemporal data recording which are representative of actual anomalies can be saved to an anomaly library for use in developing an expert system that performs anomaly detection via positive identification. In the latter case, the spatiotemporal data recording can be classified as representative of normalcy, and used to update the model. Thus the train inspection system enables a stepped approach in which the model used by the system is incrementally improved and basis for a positive identification expert system is also incrementally developed.

When an anomaly is visually confirmed by an engineer, the required repair work or maintenance is determined and logged. In addition, a unique identifier for the train, and generally also the affected car, can be recorded in data storage so that an increased risk level can be allocated to the train. In preparation for a subsequent inspection of the train, the previous maintenance log, image data and other recorded data can be forwarded to the train inspection system. This historic data can prompt the system to issue a warning notice to the maintenance engineers. At the train region containing the location of the previously identified anomaly, the system instructs the camera to dynamically increase the frame capture rate to obtain more detailed information of that region. If no subsequent anomaly is discovered, or the previous issue has not recurred, the region can be downgraded in risk for subsequent inspections, i.e. they can be performed at the normal frame capture rate.

<FIG> shows schematically such a train inspection system <NUM>. The system has a camera interface <NUM> which receives image frames of a moving train <NUM> captured by a static camera <NUM> installed at a line of track. For example, the track can be a maintenance pit lane <NUM> of a train maintenance depot. The system further has a communication interface <NUM> which communicates with a convenient input/output device <NUM> such as a dedicated terminal or PC. The system <NUM> includes a processor system <NUM>, and a database <NUM> and program storage <NUM> both coupled to the processor system. The system <NUM> also includes data storage (not shown in <FIG>) for recording train unique identifiers and associated records of previous visually confirmed anomalies and repair or maintenance work. Some or all of these items can be implemented in a local computer installation, for example in a control room of the maintenance depot. Alternatively, some or all of them can be implemented remotely, for example in a cloud computing environment. The database, program storage and data storage are forms of computer readable media.

More particularly, the static camera <NUM> captures a spatiotemporal data recording in the form of a sequence of inspection image frames of the moving train <NUM> which are then received by the processor system <NUM> via the camera interface <NUM>. Typical frame capture rates are in the range from <NUM> to <NUM> frames per second. The processor system <NUM> may constantly run a script that detects significant movements in the image stream from the camera. A significant movement is for example entry or exit of a train that triggers that start and end of a capture sequence, while a change in lighting, or slight movement of the camera due to vibration etc. is not enough to trigger the camera. In this way capture of unnecessary data can be avoided.

The program storage <NUM> stores computer program instructions for execution by the processor system <NUM>. These instructions firstly cause the processor to analyse the sequence of inspection image frames to allocate image frames to locations along the length of the train <NUM>. They then cause the processor system to use a model stored on the database <NUM> to evaluate the sequence of image frames for departures from normalcy. Predicted anomalies, characterised by their locations along the train and their corresponding departures from normalcy, are output via the communication interface <NUM> for reading on the input/output device <NUM>. <FIG> shows an example of an outputted predicted anomaly with, at left, an image frame of the anomaly with an associated time stamp and train location, and, at right, a plot of similarity to normalcy plotted against frame number or time with the departure from normalcy at the anomaly circled. Actual anomalies visually confirmed by an engineer, along with associated repair or maintenance work, can be reported to the system <NUM> via the input/output device <NUM> and the communication interface <NUM>.

Next we consider in more detail the image analysis performed by the processor system <NUM> to allocate image frames to locations along the length of the train <NUM>. The processor system <NUM> identifies the train cars that are passing through the image frames i.e. leading car, car <NUM>, car <NUM>, car n until the end of the train, and then allocates the spatiotemporal data, i.e. individual image frames, to the car which they represent. For example, the characteristics of a leading vehicle (such as aerodynamic shape edge detection, and the presence of a moving body on only one side of the image denoting a leading vehicle entering into the image with no connecting vehicle before it) are used to identify and label following images as the leading car. Similar characteristics (aerodynamic shape edge detection, and the presence of a moving body on the other side of the image denoting a leading vehicle leaving the image with no connecting vehicle after it) can be used to allocate frames to the end car. Intermediate cars can be detected by detecting car-to-car transitions in the sequence of inspection image frames (for example by detecting edges at the end of one car and the start of a new car and a coupling arrangement between the cars), and frames allocated to these cars accordingly. <FIG> shows schematically stages in a train car detection process.

To assist the car detection and identification, the train inspection system <NUM> can accept input data from train onboard systems such as a TMS (Train Management System), OTMR (On Train Monitoring Recorder), maintenance scheduling or live inputs from an engineer. These can determine train unit number, and the direction of travel along the maintenance pit lane <NUM> to establish if car <NUM> is at the front of the train (normal forward travel) or back of the train (reverse travel).

The image analysis allows features to be tracked and records their position at a desired key frame rate, which may be the same as the actual capture frame rate. By comparing the position of a feature between key frames a measurement of distance can be calculated. Key frames can then be labelled as reference positions from the start of the train and/or from the start of their respective car. Non-key frames can be labelled with the distance label of the nearest key-frame. Typically, the result is a set of image frames for each car of the train, as shown schematically in <FIG>, which is an overview of car detection and frame allocation. Assuming a constant frame rate and constant train travel speed, the location of any given frame on the train (specified e.g. by car number and a distance from an end of the car) can then be determined from frame number relative to given key frame. Alternatively or additionally, if a relationship between number of pixels and distance is established, frame locations can be determined by identifying the movement of a feature across a sequence of frames, a shown schematically in <FIG>. More accurate location can be provided by taking account of any variations in train travel speed, key frame rate and/or capture frame rate. Variations in these rates can be used to vary the accuracy of anomaly localisation and processing requirements for edge detection. However, they may also be varied to suit track speed limits, vehicle types and image capture requirements. Knowing the frame location on the train allows any anomaly (e.g. damage, dirt, missing part etc.) detected by a frame to be correspondingly located.

Next we consider in more detail the model, and how it is used to identify locations where there are departures from normalcy.

Conveniently the model can be a neural network configured to learn spatial feature representations in sequences of image frames and to learn temporal evolution of the spatial feature representations. <FIG> shows schematically a possible architecture of such a neural network. It is based on an "autoencoder" architecture described by Yong Shean Chong et al. Further discussion of spatiotemporal learning is described by Mahmudul Hasan et al. The neural network has an input layer and an output layer. The input layer receives a sequence of inspection image frames of a moving train, which is one of plural training sequences in a training phase of the neural network, or an inspection image frame captured by the camera <NUM> in actual use of the model. The output layer provides a reconstructed sequence of image frames of a moving train. Between these layers are an encoder section which spatially and temporally encodes the input sequence, a latent representation of the input sequence, and a decoder section that generates the reconstructed sequence of image frames from the latent representation. The encoder section typically has one more convolutional layers that spatially encode individual frames of the training sequence and one or more long short-term memory (LSTM) layers that temporally encode sub-sequences of the spatially encoded frames to produce the latent representation. The decoder section does the reverse and typically has one or more LSTM layers that generate sub-sequences of spatially encoded reconstructed frames from the latent representation, and one more convolutional layers that generate the reconstructed sequence from the generated sub-sequences.

<FIG> illustrate schematically the training process of the neural network. As shown at <FIG>, a "normal" dataset of plural training sequences of inspection image frames of a moving train is accumulated, the sequences and the trains being representative of normalcy. Typically the inspection images are greyscale rather than colour. <FIG> then shows schematically the operation of the encoder section. Each training sequence is inputted into the neural network, generally as a series of sampled clips (i.e. sub-sequences) of the sequence. The first convolutional layer spatially filters each of the n (where n is typically <NUM>-<NUM>) images from each clip, and the second convolutional layer repeats that process. The LSTM layer then forms the latent representation from the n doubly filtered images. <FIG> shows schematically the reverse operation by which the decoder section generates a reconstructed sub-sequence corresponding to each clip.

The aim of the training is to adjust the weights of the neural network so that the reconstructed sequence is optimally representative of the training sequences. More particularly, the model can be trained using back-propagation in an unsupervised manner, by minimizing a reconstruction error of the reconstructed sequence from the training sequences. A frame error e can be determined by performing a pixelwise comparison for each image frame of a training sequence and the corresponding frame of the reconstructed sequence, calculating the Euclidean distance between the two frames: <MAT> where I is intensity, x and y are pixel coordinates, t is the time of the given frame equivalent to frame position along the train), and fw is the learned weights of the spatiotemporal model, and then summing over all the pixelwise errors in the given frame to give the reconstruction error of that frame: <MAT>.

The reconstruction error of a clip or sub-sequence of frames can be calculated by summing e(t) over those frames. Typically the training is performed to minimise the reconstruction errors of clips or sub-sequences of frames, rather than the reconstruction errors of individual frames or the reconstruction error of an entire sequence.

Once trained, the model can be used to identify locations on a moving train where a sequence of actual inspection image frames indicates departures from normalcy passing a threshold value. To this end, the actual (and again typically grayscale) inspection image frames are inputted into the neural network and the corresponding reconstructed sequence of image frames is outputted from the network. Again the inspection image frames can be inputted as separate clips (i.e. sub-sequences of frames), with corresponding reconstructed clips being generated by the neural network. The reconstruction error discussed above is calculated for each clip by comparing the actual inspection image frames with the reconstructed image frames. An abnormality score sa is then calculated for each clip by scaling the reconstruction error between <NUM> and <NUM>: <MAT> where sa,min is the smallest reconstruction error of all the reconstruction errors of the set of clips from that sequence of actual inspection image frames, and sa,max is the largest reconstruction error of all the reconstruction errors of the set of clips from that sequence of actual inspection image frames, and converted into a similarity to normalcy (i.e. regularity) score sr for each clip by subtracting from <NUM>: <MAT> Values of sr can be plotted against frame number or time, and departures from normalcy passing a predetermined threshold identified. As mentioned above, this can be outputted via the communication interface <NUM> for reading on the output device <NUM>, for example with an image of the respective image frame showing the predicted anomaly and an indication of its location as shown in <FIG>. In this example, the predetermined threshold is passed when sr drops below <NUM>.

When no anomalies are predicted for a given sequence of inspection image frames, the sequence can be added to the "normal" dataset and used to further refine the model. The overall process is illustrated schematically in <FIG>. Numbered stages <NUM> to <NUM> in <FIG> are as follows:.

Conversely, when an anomaly is predicted, and a maintenance engineer is sent to confirm the presence or absence of the anomaly, there are two possibilities. The first is that no actual anomaly is confirmed. In this case, the sequence of inspection image frames can be added to the "normal" dataset and again used to refine (i.e. incrementally improve) the model. The second is that an actual anomaly confirming the prediction is identified. In this case, the anomaly can be repaired, but the system also the classifies the frame or frames in the sequence of inspection image frames showing the anomaly as being representative of those anomalies, and saves the classified frame or frames in an anomaly library to build up a new image dataset that can eventually be used to train a new model (e.g. a mask region-based convolutional neural network (RCNN)) that can positively identify anomalies. This process is illustrated schematically in <FIG>. Numbered stages <NUM> to <NUM> in <FIG> are as follows:.

The new model is thus developed in an incremental or stepped fashion. When it is sufficiently developed the process illustrated schematically in <FIG> can be applied in which the mask RCNN model identifies the type anomaly and optionally provides a maintenance suggestion. Numbered stages <NUM> to <NUM> in <FIG> are as follows:.

The mask RCNN uses machine learning to segment image frames prior to anomaly detection to focus attention on only specific parts of the train. The parts are objects of interest that are pre-classified by expert engineers. Masks are applied to areas of interest so that non-areas of interest (i.e. regions outside of the masks) have their image information removed (i.e. pixel intensities or colour set to <NUM>). By masking in this way, the objects of interest retain their spatiotemporal relationship with the image frames.

Embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function. The term "computer readable medium" may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term "computer-readable medium" includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.

Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a computer readable medium. One or more processors may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc..

A number of publications are cited above in order to more fully describe and disclose the invention and the state of the art to which the invention pertains. Full citations for these references are provided below.

Claim 1:
A train inspection system (<NUM>) including:
a camera interface (<NUM>) configured to receive a sequence of inspection image frames of a moving train (<NUM>) captured by a static camera (<NUM>);
a processor system (<NUM>) configured to receive sequences of inspection image frames from the camera interface (<NUM>);
a communication interface (<NUM>) configured to output results from the processor system (<NUM>);
a database (<NUM>) coupled to the processor system (<NUM>) and storing a model which allows a sequence of image frames of a moving train (<NUM>) to be evaluated for departures from normalcy; and
program storage (<NUM>) coupled to the processor system (<NUM>) and storing computer program instructions for execution by the processor system;
wherein the computer program instructions, when executed by the processor system (<NUM>):
image analyse the sequence of inspection image frames to allocate image frames to locations along the length of the train (<NUM>);
use the model to identify locations on the moving train (<NUM>) where the sequence of inspection image frames indicates departures from normalcy passing a threshold value; and
output the identified locations and the corresponding departures from normalcy at the communication interface (<NUM>) as predicted anomalies;
characterised in that:
each train (<NUM>) has a unique identifier, and the system further includes data storage coupled to the processor system (<NUM>) which stores, for a given train from which a sequence of inspection image frames was captured and for which predicted anomalies were outputted, the unique identifier of the given train and the associated outputted predicted anomalies;
wherein:
the camera interface (<NUM>) is further configured to issue control commands to the static camera (<NUM>);
the processor system (<NUM>) is configured to receive the unique identifier identifying each train (<NUM>) for which the static camera (<NUM>) is to capture a sequence of inspection image frames; and
the computer program instructions, when executed by the processor system (<NUM>), send a control command to the camera interface (<NUM>) to be issued to the static camera (<NUM>) to increase a frame capture rate for an inspection of a new train (<NUM>) when a unique identifier stored in the data storage matches the unique identifier of the new train.