Four weeks of work

Post by Sjöräddningen 176d ago update

Figure: Current version of our GUI

Starting off

After the initial workshop together with SSRS that kickstarted the project, we began constructing a data pipeline that would allow us to utilize the data for training our model. We received an API-key from the external IT provider Öpac and began preprocessing the data. The time-series data collected concern the Victoria-class vessels that are equipped with two Volvo Penta D8 engines. We then proceeded to play around with the data in many different ways to increase our understanding, and made sure to communicate with the technicians at SSRS whenever the data seemed confusing. 

An issue we encountered during this exploratory phase is the lack of clear anomalies in the data. Since the engines are quite new, there aren’t many occurrences of engine failure that can be used as test data. The one incident we do have access to is where one of the vessels went into service to have an oil- and filter change in April 2024. Even though a service does not constitute an engine failure, it should affect the status of the vessel in a positive way. Our hypothesis was therefore that a model should be able to detect a clear difference in the Mean Standard Error (MSE) from just before service, and right afterwards. To test this hypothesis, the next step was to begin constructing our model. We started this process by diving into literature and research, while also interviewing colleagues with expertise that we had access to through AI Sweden. 

Choosing a model

Multiple techniques were tested, such as Convolutional Neural Network (CNN), Isolation forest, Autoencoder and LSTM Autoencoder, where the research found the last two especially suitable. In order to prepare for the training of these models, we then proceeded with data cleaning and feature engineering. Data from when the engines are not activated was removed, missing values were handled and the timestamps were manipulated to give us one timestamp every 10 seconds. We then applied normalization through min-max scaling and also feature engineered to ensure that the weather data was incorporated into vessel data, since this can heavily impact the performance of the engine. This data was gathered using SMHI and Open-meteo API’s. 

The next step was to decide on what sequence size was to be used for the LSTM Autoencoder model. Since the vessel’s feature values vary greatly during one trip, it was important to catch the temporal context and understand whether the vessel is in the start, middle or end of one trip. However, since every trip is of varying length, a unanimous sequence size could not be decided upon which led to the application of dynamic sequencing through masking and padding. Since this operation of test-training the model with masking was too memory-intensive to be run on our own laptops, we were granted access to the Aiqu platform where we could run our programs on a GPU instead. A Docker container was therefore created and run on the platform which allowed us to execute more extensive tests. The initial tests showed our hypothesis to be true, which meant that the model detected a clear difference in MSE before and after service, a pattern that could not be seen in other vessels that had not been serviced. While this is promising, we continuously seek to find more data to test on, either through finding more service occurrences from SSRS, or through data augmentation where we create more synthetic anomalous data. 

Building a GUI

The aim is to create a tool that will easily blend into daily operations at SSRS. To achieve this, we have started constructing a GUI through Streamlit that we try to make as user-friendly as possible, to decrease the resistance towards using it. The idea is for the operator to choose a time-interval and a vessel, which will create an API call for that specific sensor data. This data will then be fed to our model which will run inference on it, and return the operator plots and values of both aggregated- and feature-wise MSE scores. This will allow operators to be warned when service is needed, while also allowing them to see incremental changes in performance over longer periods of time. 

Next steps

In order to utilize our large network of partners at AI Sweden, we have initiated collaboration with Volvo Penta through Pieter Gheeraert, VP Services, who has delivered great insights and will connect us to their predictive maintenance team. The exact outcomes of this collaboration remains to be seen, but we hope to receive some valuable insights in how to approach datasets with few anomalies, and maybe even receive some data from Volvo Penta. Regardless, we are very grateful to Pieter for the contributions from him and his team. This will prove useful as we continue to enhance our model, finalize our GUI and present SSRS with something usable that can be iterated upon.