Über unsMediaKontaktImpressum
Majed Alaitwni, Dr. Nils Olav Handegard, Shirin Mian & Dr. Eldar Sultanow 26. Juli 2022

Ozeandaten und KI für den Artenschutz

Das Problem und zugleich unsere Motivation ist der Artenschwund im Ozean, der oftmals auch als "Unsichtbares Sterben" bezeichnet wird. Mit unserem Ansatz verfolgen wir das Ziel, dieses Sterben sichtbar und damit verhinderbar zu machen. Um Geschehnisse im Ozean sichtbar zu machen, müssen wir in Abhängigkeit der Ozeantiefe Muster und dann Abweichungen von diesen Mustern erkennen. Mit dem norwegischen Institut Lofoten-Vesterålen werten wir Ozeandaten aus, wodurch Anomalien erkannt werden sollen. Dies soll dabei helfen, ein besseres Verständnis des Ökosystems im Ozean zu erlangen und die Folgen des menschlichen Eingriffes in die Natur, wie beispielsweise schwindende Fischbestände, zu erkennen.

Genaue Beobachtungen von Ökosystemen ermöglichen detaillierte ozeanographische Forschung, wodurch Anomalien in enorm großen Mengen an Daten, mit Hilfe von Künstlicher Intelligenz (KI), identifiziert werden können.

Das Lofoten-Vesterålen (LoVe) Ocean Observatory liegt westlich von Hovden Vesterålen im nördlichen Teil von Norwegen. Es befindet sich in einem ökologischen, geologischen, ozeanographischen und ökonomischem "Hotspot". Ein Netzwerk aus Unterseekabeln und sieben Sensorknoten bedeckt einen Querschnitt vom Festland bis zur Tiefsee. Es enthält eine Station an Land und sieben Sensor-Plattformen, welche einen Gradienten vom Meeresspiegel bis zu einer Tiefe von 200m abdecken. Das System liefert kontinuierlich einzigartige Online-Daten über die Meeresumwelt im nördlichen Norwegen und ist seit 2013 aktiv.

Das System ist eine nationale Forschungsinfrastruktur, sowohl für Grundlagen- und angewandte Forschung als auch eine Testinfrastruktur, an der Industriepartner neue Unterwassersensoren und -technologien testen können. Das Lofoten-Vesterålen Ocean Observatory hat über die Jahre hinweg über 100 Terabyte an Sensordaten (Temperaturen, Strömungen & Echogramme) gesammelt.

OceAIn entstand als Team für die Teilnahme an Capgeminis Global Data Science Challenge (GDSC) 2021. Ziel von OceAIn war es, ein KI-Modell zu entwickeln, welches neue Erkenntnisse über saisonale korrelierende Muster in den Ökosystemen erkennt, indem von den Meeressensoren gesammelte Zeitreihendaten verwendet werden. Dies soll helfen, das Klima unseres Planeten zu modellieren und besser zu verstehen.

Das KI-Modell verarbeitet Daten des Querschnitts vom Festland bis zur Tiefsee. Sie werden von vier verschiedenen Sensoren erfasst:

  1. Ein wissenschaftliches Echolot misst gerichtete, pulsierende Töne in bestimmten Bereichen.
  2. Ein sogenanntes Hydrophon, also ein Unterwassermikrofon, zeichnet Geräusche in der Umgebung auf.
  3. Ein akustischer Doppler (ADCP) erkennt die Geschwindigkeit und Richtung von Meeresströmungen mithilfe des Doppler-Effekts.
  4. Punktsensoren liefern physikalische, biologische und chemische Echtzeit-Beobachtungen.

Die Identifikation von sich wiederholenden saisonalen Mustern und Anomalien ermöglicht es den Wissenschaftlern, die Meeresumwelt besser zu beobachten. Dies beinhaltet die weitläufige Erforschung der Anomalien und ihrer Einflussfaktoren, wobei Schlüsse aus dem Gesamtbild gezogen werden können, wie etwa Unterschiede in den Fischbeständen, variierende Strömungsmuster oder der Einfluss des Klimawandels.

Während große Mengen ungefilterter Daten nur schwer händisch zu verarbeiten und die Ergebnisse dabei sehr fehleranfällig sind, ermöglichen KI-Modelle die Filterung dieser Daten auf relevante Ereignisse. Außerdem erlaubt die KI die kontinuierliche Analyse der eintreffenden Daten, was in einem Strom an Daten an die Wissenschaftler resultiert.

Architektur des Systems

Auch wenn das KI-Modell das Kernstück von OceAIn ist, gibt es noch weitere Komponenten, aus denen die Plattform besteht. Unser nächstes Ziel ist es, diese nach dem Cloud-Native-Architekturkonzept zusammenarbeiten zu lassen, wodurch eine zukunftssichere und flexible Datenpipeline entstehen wird. Die Rohdaten, die von dem Institut übermittelt werden, werden dabei in einem Arbeitsschritt gesammelt und im nächsten bereinigt und transformiert. Diese Arbeitsschritte spielen sich in Docker-Containern ab, wobei jede Art von Daten (Hydrophon, Biomasse-Erkennung, etc.) eigene Container pro Arbeitsschritt hat. Die Zusammenarbeit der Container wird in Apache Airflow definiert, welches nach dem "Configuration As Code"-Prinzip arbeitet. Airflow ermöglicht die Definition von Infrastruktur mithilfe von DAGs (Directed Acyclic Graph). Dabei ist noch zu erwähnen, dass die Docker-Container tatsächlich von Kubernetes verwaltet werden, welches wiederum von Airflow definiert wird. Schließlich werden die transformierten Daten in Form von CSV-Dateien persistiert. Sie werden von der KI verarbeitet, um Anomalien zu erkennen, welche mit den Daten in Form von Bilddateien auf einer Web-Oberfläche dargestellt werden.

Umsetzung des KI-Modells

OceAIn beinhaltet ein KI-Modell, welches Anomalien in den Ozeandaten erkennt. Die Sensordaten für das KI-Modell sind in der Art der Informationen, sowie in der Zeitspanne, hochgradig variabel. Zudem sind manche Arten von Anomalien nur erkennbar, wenn die Sensordaten von Anfang an miteinander verbunden betrachtet werden.

Die erste Idee bestand darin, einzelne Modelle zu konzentrieren, welche verschiedene Arten von Daten verarbeiten können, und die separaten Modelle später miteinander zu verbinden. Durch die unterschiedlichen Daten zeigten sich in diesem Ansatz einige Nachteile, wie zum Beispiel eine erhöhte Komplexität bei der Aggregation der einzelnen Modelle.

Die Idee, die sich letzten Endes durchgesetzt hat, bestand darin, ein deep-learning neuronales Netz zu verwenden, welches alle Daten in ihrer Gesamtheit auf Anomalien analysiert. Zuerst wurden unüberwachte Modelle eingesetzt und trainiert. Später wurden echte Daten von den Forschern eingesetzt, in denen Anomalien erkannt werden sollten.

Der Einsatz von unüberwachten KI-Modellen hat den Vorteil, dass das Training jener Modelle nicht auf die Präsenz von Kennzeichnung der Datenpunkte (Anomalie vs. Normal) angewiesen ist. Andererseits sind jene Modelle äußerst anfällig gegenüber Datenrauschen und -korruption [1]. Auch den zugrundeliegenden Ozeanmessdaten sind diese Eigenschaften zuteil, welche außerdem durch ihre gesamtheitliche Betrachtung und die damit einhergehende hohe Datendimensionalität verstärkt werden.

Durch die Bereitstellung von gekennzeichneten Daten durch die Forscher wurde der Einsatz von überwachten KI-Modellen ermöglicht. Grundsätzlich übertreffen überwachte KI-Modelle ihre unüberwachten Pendants in der Anomalie-Erkennung, da diese besonders in der Lage sind, auch anwendungsspezifische Anomalien zu erkennen [2].

Anhand dieser Erkenntnisse wurde entschieden, dass OceAIn ein Modell verwenden soll, welches überwacht lernt. Dieses soll später kontinuierlich anhand der Daten, die im laufenden Betrieb von den Forschern generiert werden, neu-trainiert werden. Ein Ausschnitt aus dem Code für das Modell ist in Listing 1 dargestellt. Hier werden die Datensets erkannt, die signifikant von dem erwarteten Normalverlauf abweichen. Dies geschieht, indem zunächst über alle Datensets iteriert wird. Dabei werden alle als Abweichung erkannten Daten in dem Array anomalous data indices gespeichert.

Listing 1: Codeausschnitt für die Erkennung von Anomalien

# Detect all the samples which are anomalies.
anomalies = test_mae_loss > threshold
print("Number of anomaly samples: ", np.sum(anomalies)) 
print("Indices of anomaly samples: ", np.where(anomalies))

plt.plot(x_test[0]) 
plt.plot(x_test_pred[0], alpha=0.7) 
plt.show()

anomalous_data_indices = []
for data_idx in range(TIME_STEPS - 1, len(X_test) - TIME_STEPS + 1): 
   if np.all(anomalies[data_idx - TIME_STEPS + 1 : data_idx]):
      anomalous_data_indices.append(data_idx) 
anomalous_data_indices

Visualisierung der riesigen Datenmengen

Die Visualisierung der durch die KI-Modelle erzeugten Ergebnisse und die dazugehörigen Messdaten geschieht in Form einer Webanwendung, deren Aufbau in Form eines Klassendiagramms in Abb. 1 zu sehen ist. Die Klasse Visualizer ist abhängig von dem externen Framework ThreeJS, und für die Generierung der Bilddateien aus den CSV-Daten verantwortlich. Visualizer wird zudem noch erweitert, wobei für jede Art an Sensordaten eine eigene Komponente existiert. Die Klasse App wiederum ist für die Initialisierung der Sensorklassen und der Komponente zur Verarbeitung der Nutzereingaben verantwortlich.

Serverseitig wird mit Python und Docker gearbeitet, wobei verschiedene Pakete zur Verfügung gestellt werden, welche die Funktionalitäten für die Datensynchronisierung und die Bereitstellung von Messdatendarstellungen beinhalten. Clientseitig werden bei der Ausführung der von dem Server gesendeten Web-Dokumente im Browser Kontrollelemente erstellt, welche die Interaktionen des Anwenders in entsprechende Anfragen umwandeln. Dabei kommen Javascript und die Bibliothek Three.js zum Einsatz.

Die eigentliche Visualisierung der Messdaten auf der Clientseite geschieht folgendermaßen: Es gibt vier Canvas-Elemente, die wie in Abb. 2 zu sehen angeordnet sind. Sie beinhalten die visualisierten Daten verschiedener Sensoren, wobei jedes Element auf der X-Achse, und somit im zeitlichen Raum, verschoben werden kann. Bewegt man sich auf der Y-Achse dagegen, bewegt man sich in einem sensorenspezifischen Raum.

Oben links werden die Daten der EK60-Sensoren ausgewertet. Diese können erkennen, wie viel Biomasse sich an einer bestimmten Stelle befindet. Sichtbar ist dies durch den Farbverlauf der generierten Abbildung. Je heller ein Bereich ist, desto mehr Biomasse wurde an der entsprechenden Stelle erfasst. Vertikale Bewegung passt die Tiefe der erfassten Daten an.
Oben rechts werden mit Hydrophonen aufgenommene, akustische Signale angezeigt, wobei hier nur eine Verschiebung auf der X-Achse möglich ist.

Unten links werden von oben nach unten, Strömungsgeschwindigkeit, -stärke und -richtung angezeigt. Siehe dazu auch Abb. 3. Genau wie bei den EK60-Sensoren bestimmt die vertikale Position die Tiefe der erfassten Daten und die Helligkeit der Farben die Geschwindigkeit bzw. Intensität der Strömungen.

Schließlich befinden sich unten rechts noch die Punktsensoren. Diese erfassen unterschiedliche Daten, beispielsweise die Wasserzusammensetzung, den Salzgehalt oder das Vorkommen gewisser Chemikalien, und stellen diese in Form von Graphen dar.

Serverseitig findet eine Umwandlung der Messdaten von CSV-Daten zunächst in JSON und schließlich in Bild-Formate (wie zum Beispiel PNG, JPG und JEPG) statt. Dabei werden nur die wirklich wichtigen Daten visualisiert. So wird der unwichtige Teil von vornherein ignoriert, wodurch nur ein Bruchteil tatsächlich dargestellt werden muss. Die Umwandlung der Messdaten in Bild-Formate ermöglicht eine Reduktion der gesendeten Daten an den Client wodurch große Zeitintervalle visualisiert und dabei alle Messdaten-Informationen dargestellt werden können.

Die serverseitig erstellten Darstellungen werden von den clientseitigen Komponenten abgerufen und angezeigt. Abb. 2 zeigt die umgesetzte Nutzeroberfläche, die einen Ausschnitt der Messdaten der EK60-Sensoren, Hydrophone, ADCP-Sensoren und Punktsensoren für einen Zeitraum von drei Tagen anzeigt. Jeder der vier Bereiche lässt sich durch eine Kontrollleiste steuern. Die X- und Y-Position des Mauszeigers in der Visualisierungsoberfläche werden clientseitig ohne Erstellung von Anfragen an den Server so interpretiert, dass die X-Position zum Anzeigen des Zeitstempels für die darunter angezeigten Messdaten und die Y-Position zum Anzeigen von Y-Achsen-Werte der Messdaten führt. So werden zum Beispiel bei den EK60 und ADCP die Tiefen-Werte angezeigt. Aus den ADCP-Messdaten werden zusätzlich die Strömungen berechnet, was die Erstellung von Zusammenhängen zwischen Wasserströmungen und der Verteilung/Bewegung der Biomasse aus den EK60-Messdaten ermöglicht. In Abb. 3 wird dies veranschaulicht.

In Listing 2 ist die Funktion to_streamplot zu sehen, welche für die Berechnung der Strömungsdaten verantwortlich ist. Die Variable plt steht dabei für die externe Python-Bibliothek Matplotlib. In der Funktion werden die ADCP-Daten als Parameter mitgeliefert. Aus diesen wird mithilfe der Matplotlib-Funktion streamplot ein Strömungsdiagramm erzeugt, welches die berechneten Meeresströmungen anzeigt. Das Diagramm wird als Bilddatei abgespeichert, von wo aus es später auf der Weboberfläche angezeigt wird.

Listing 2: Code für die Berechnung der Strömung für die Visualisierung

def to_streamplot(X, Y, u, v,target_file_path,config):
   _,ax = get_fig_ax()
   ax.streamplot(X, Y, u, v,linewidth=config['linewidth'], 
         color=u,density=config['density'], 
         cmap=config['cmap'], 
         arrowstyle=config['arrowstyle'])
   plt.savefig(target_file_path, 
   format=str(target_file_path.suffix).replace('.',''),
         bbox_inches='tight',pad_inches=0.0, transparent=True) 
   return target_file_path

Zusammenfassung

Die OceAIn-Plattform ermöglicht es den Meeresbiologen des LoVe Ocean Observatory, direkt auf fachlich relevante Ereignisse aus der Fülle von Daten zuzugreifen. So wird eine große Menge an manueller Datenanalyse gespart, wobei in dieser gewonnenen Zeit stattdessen die Forschung vorangetrieben wird.

Ausblick

Das OceAIn-Projekt zeigt, wie eine Zusammenarbeit von Meeresbiologie und IT helfen kann, Arten zu schützen und das Verständnis unserer Umwelt zu erweitern. Dabei ist die Arbeit an diesem Projekt noch lange nicht abgeschlossen. Es gibt einige geplante Features, die sich auf unserer Roadmap befinden. Zunächst soll die gesamte Struktur, von der Datensammlung bis hin zu den verarbeiteten Ergebnissen, mithilfe von Containern automatisiert werden, wie am Anfang dieses Artikels beschrieben. Ein weiteres Ziel ist es, ein kontinuierliches und automatisiertes Neu-training der KI anhand der händisch markierten Anomalien zu ermöglichen. Auch die Visualisierung selbst ist noch nicht abgeschlossen. Hier gibt es etwa Möglichkeiten zur Erweiterung der Darstellung der Daten oder den UI-Features. Außerdem soll die fertige Website bald laufend aktiv sein, damit sie von den Forschern des LoVe-Institutes verwendet werden kann.

Das Team

  • Thomas Ramm, Softwareingenieur bei Capgemini
  • Sophie Bader, Molekularbiologin und Softwareentwicklerin
  • Majed Alaitwni, Softwareentwickler
  • Mustapha Mustapha, Softwareentwickler bei Capgemini
  • Shirin Mian, Studentin
  • Tom Hatton, Data Scientist
  • Dr. Nils Olav Handegaard, Forscher am LoVe Ocean Observatory
  • Geir Pedersen, Forscher am LoVe Ocean Observatory
  • Daniel Friedmann, Softwareentwickler bei Capgemini
  • Dr. Eldar Sultanow, Enterprise Architect Director bei Capgemini
Quellen
  1. Raghavendra Chalapathy and Sanjay Chawla. Deep learning for anomaly detection: A survey. arXiv preprint arXiv:1901.03407, 2019.
  2. Charu C. Aggarwal. Time series and multidimensional streaming outlier detection. In Outlier Analysis, pages 273–310. Springer, 2017.

Autoren

Dr. Nils Olav Handegard

Dr. Nils Olav Handegard forscht beim Institute of Marine Research (IMR) in Norwegen zur Anwendung neuer Methoden und Datenverarbeitungsverfahren in der Meeresökologie und der Fischereiozeanografie.
>> Weiterlesen

Dr. Eldar Sultanow

Dr. Eldar Sultanow ist Architekt bei Capgemini. Seine Schwerpunkte sind moderne Softwarearchitekturen, Digitalisierung und Unternehmensarchitekturmanagement.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben