Der Ozean, ein oft übersehener, aber wesentlicher Teil unseres Planeten und ein Bollwerk gegen die Bedrohung durch den Klimawandel. Sie gelten als die Städte des Ozeans, Korallenriffe als die Städte des Ozeans angesehen werden, sind Korallenriffe für die Ökosysteme des Ozeans unerlässlich, sowohl für das Meeresleben als auch für die Meeresvegetation. Der Klimawandel und die vom Menschen verursachte Umweltverschmutzung sind jedoch nicht gut für unsere wertvollen Riffe, denn Hochrechnungen dass wir bis 2050 fast alle unsere Riffe verlieren werden.
Neben der Eindämmung der Ursachen wie Klimawandel und Umweltverschmutzung ist die Forschung von entscheidender Bedeutung, um die Korallenriffe zu retten. Ein Startup, das versucht, Forscher bei diesem Thema zu unterstützen, ist Reef Support, das Software entwickelt, die Forschern bei der Entscheidungsfindung zu diesem Thema hilft. Zusammen mit FruitPunch AI haben sie sich gefragt, ob KI dabei eine Rolle spielen könnte. Daher organisierten sie einen Wettbewerb, um herauszufinden, ob sie mit Hilfe von KI die Forscher beim Schutz der Korallenriffe unterstützen können. Im Rahmen dieser Herausforderung nahmen wir von ML6 Kontakt mit ihnen auf und beschlossen, der Herausforderung im Rahmen unserer Weihnachtsprojekte eine Chance zu geben.
Das Ziel ist es, Bilder von Korallen zu segmentieren, um automatisch die Korallenbedeckung des Bildes zu bestimmen. Das klingt nach einem Bildsegmentierungsproblem, das eigentlich ganz einfach ist. Leider sind die Daten, wie so oft in der realen Welt, nicht so einfach zu handhaben. In der idealen Welt bestehen die Daten aus Bildsegmentierungsmasken als Beschriftungen, wie im folgenden Bild.
Bei den Daten, mit denen wir arbeiten, handelt es sich jedoch um den Seaview-Datensatz. Der Datensatz enthält etwa 1,1 Millionen hochauflösende Bilder von Korallen, darunter etwa 11 Tausend Bilder mit Anmerkungen. Bei diesen Anmerkungen handelt es sich, wie in der Abbildung unten zu sehen ist, um Pixel, die von Experten manuell beschriftet wurden und die Zugehörigkeit zu einer bestimmten Art (Koralle, Alge, Schwamm usw.) angeben.
Die größte Herausforderung dieses Projekts besteht also darin, die Informationen dieser Anmerkungen auf intelligente Weise zu nutzen, so dass wir ein Bild auch dann segmentieren können, wenn wir keine eigentlichen Bildsegmentierungsmasken für das Training benötigen.
Eine erste Idee, die uns in den Sinn kam, war, die vorhandenen Beschriftungen nicht zum Trainieren eines Segmentierungsmodells, sondern eines Klassifizierungsmodells zu verwenden. Die Idee ist, dass jede einzelne Anmerkung als Information für die Bildklassifizierung verwendet werden könnte. Wir gingen so vor, dass wir für jedes Bild ein Quadrat um jede Anmerkung herum ausschnitten. Da wir etwa 50 Anmerkungen pro Bild haben, kann dies zu über 500.000 Eingabebildern führen, um einen Klassifikator zu trainieren.
Dieses Modell könnte dann theoretisch das gesamte Bild als rollendes Fenster durchlaufen und jedes Pixel klassifizieren. Allerdings müssen wir auch hier mit der Tatsache leben, dass wir in der realen Welt leben und die Rechenzeit endlich ist. Um also Rechenzeit zu sparen, verwendet das Rolling Window eine bestimmte Schrittweite (in diesem Fall z. B. 16).
Das Ergebnis ist dann, dass jeder Block von 16 x 16 Pixeln im Bild einer Klasse zugeordnet wird, was zu einer Segmentierungsmaske führt.
Wenn der Klassifikator ausreichend leistungsfähig ist, sieht das Ergebnis dieser Methode recht vielversprechend aus, hat aber auch seine Nachteile.
Eine andere Methode, deren Idee Maks Kulicki zugeschrieben wird, der ebenfalls an dem Wettbewerb mitgearbeitet hat, ist eine Kombination aus unbeaufsichtigter Segmentierung und einem Klassifikator, wie er bereits verwendet wurde.
Bei dieser Methode wird zunächst eine nicht überwachte Technik (wie SLIC) eingesetzt, um die möglichen Segmente im Bild zu bestimmen. Als nächstes wird ein Bereich um die Mitte jedes dieser Segmente herum ausgeschnitten, und dieser Bereich wird dann durch den Klassifikator geleitet.
Das Ergebnis ist dann, dass jedes der vorgegebenen Segmente einer Klasse zugeordnet wird, was zu einer Segmentierungsmaske führt.
Wenn man sich die beiden vorherigen Methoden ansieht, haben beide ihre Vor- und Nachteile. So kam natürlich der Gedanke auf: Können wir beides kombinieren?
Die Idee, die wir dabei verfolgten, war die folgende: Mit Hilfe des rollenden Fensters wird ein erster Segmentierungsvorschlag gemacht. Als Nächstes würde die unüberwachte Segmentierung das Bild in Segmente unterteilen. Anstatt den Klassifikator zu verwenden, um die Klasse des Segments direkt zu klassifizieren, basiert dies nun auf dem Ergebnis der Rolling-Window-Methode. Wenn der Prozentsatz der Pixel in einem Segment, die als Korallen klassifiziert werden, größer ist als ein bestimmter Schwellenwert (z. B. 30 %), wird das Segment als vom Typ Koralle angesehen.
Infolgedessen hat sich die Leistung deutlich verbessert (sowohl auf der Grundlage der subjektiven visuellen Bewertung als auch in den Metriken).
Die vorgeschlagenen Methoden sind zwar noch nicht perfekt, aber es wurde eine Grundlage geschaffen, auf der wir aufbauen können, um die Methoden zu verfeinern und so hoffentlich die Arbeit der Korallenforscher so weit wie möglich zu verbessern.
Für die nächsten Schritte werden wir mit der Studentenorganisation Everest Analytics zusammenarbeiten. Da dies mit ihrem Ziel übereinstimmt, Studenten an Daten- und maschinellen Lernprojekten mit gesellschaftlichem Mehrwert arbeiten zu lassen, schien dies eine perfekte Gelegenheit zu sein, dieses Projekt mit ihnen zu starten. Als ML6 werden wir sie dabei unterstützen, die zuvor vorgeschlagenen Lösungen zu verfeinern. Mögliche Wege sind:
Bleiben Sie dran für einen möglichen zukünftigen Blogpost, um zu sehen, wie es sich verbessert hat.