Objekterkennung

Beschreibung

Für die Objekterkennung nutzen wir Tensorflow, da Tensorflow einige Modelle bietet, welche sich in Präzision und Schnelligkeit unterscheiden. Die Objekterkennung dient in der aktuellen Pipeline als Störfaktorerkennung, dennoch hatten wir in einer frühen Konzeptphase sie auch für die Erkennung von Müll auf den Bildern direkt verwendet, dies ist aber gescheitert, weshalb wir uns dafür entschieden haben, nur die Störfaktoren zuerkennen.

Müllerkennung

Um nun Müll am Strand zu erkennen, wird ein Dataset benötigt, welches auf Müll trainiert ist. Es gibt bereits fertige Datasets wie Taco oder auch Open litter map.
Das Problem bei den fertigen Datasets ist, dass sie auf Nahaufnahmen von Müll beruhen, da aber in diesem Projekt mit Aufnahmen von Webcams gearbeitet wird und nicht mit Nahaufnahmen, musste ein eigenes Dataset erstellt werden.
Im selbst erstellten Dataset haben wir nur zwischen Müll und Treibholz unterschieden, da bei weitflächigen Aufnahmen von den Stränden, welche meist zu finden sind bei Strandkameras, es schwer ist einzelnen Müllobjekte zu erkennen. Deshalb haben wir uns dafür entschieden, nicht die einzelnen Objekte wie zum Beispiel, Plastikfalsche, Reifen usw. zu markieren, sonderndie großen Müllareale zu markieren.
Da wir bei unserer Anwendung nicht unterscheiden müssen, was für Müll genau am Strand liegt, da es in unserem Fall egal ist was für Müll dort vorhanden ist, sondern nur wieviel der Fläche von dieser Verschmutzung befallen ist. Deshalb konnten wir die großflächigen Areale markieren umso zu untersuchen wie viel Fläche befallen ist. Um erste Ergebnisse zu erhalten, haben wir mit jeweils 20 Bildern für Müll und Treibholz trainiert. Bei der ersten Nutzung dieses Ansatzes, haben wir schnell feststellen müssen, dass dieser Ansatz nicht die gewünschten Ergebnisse liefert. Dies könnte an der relativ kleinen Menge des Trainingsatzen liegen, aber auch daran, dass die Objekterkennung Probleme hatte zu unterscheiden zwischen Müllareale und andere Faktoren wie zum Beispiel, Berge, Wälder oder auch Gebäude.

Störfaktorerkennung

Aufgrund dieses Scheiterns, haben wir uns dazu entschlossen, den Müll mit Farberkennung oder auch Kantenerkennung zu erkennen. Da wir aber nun immer noch ein Problem hätten mit Störfaktoren von strandtypischen Objekten wie Strandkörbe, Liegen, Sonnschirme, Personen und so weiter, hatten wir die Idee die Störfaktoren, welche bei der Kantenerkennung und Farberkennung potentiell stören könnten, mittels der Objekterkennung zu erkennen und zu Entfernen. Hierfür haben zwei Datasets benutzt.
Das erste Dataset ist ein selbst erstelltes, bei diesem Dataset haben wir verschiedene strandtypische Objekte gelabelt. Wir haben das Neuronale Netz auf folgenden Objekten trainiert: Sonnenschirme, Strandspielzeug, Strandkörbe, Liegen, Tische, Handtücher, Bänke, Surfbretter. Wir hatten für jede dieser Klassen circa 50-100 Bilder gelabelt. Diese Erkennung lieferte zufriedenstellende Ergebnisse.
Das zweite Dataset ist COCO. COCO steht für “Common Objects in Context” und ist ein Dataset, in welchen eine Vielzahl von alltäglichen Objekten enthalten ist. Wir nutzen COCO bei unserem Projekt um diese Objekte zu erkennen. Die Klassen die wir aber hauptsächliche nutzen wollen, sind folgende Klassen: Personen, Autos, Boote und Tiere.
Diese beiden Datasets in Kombination, entfernen ein Großteil der Störfaktoren auf den Bildern. Dennoch hat die Objekterkennung Probleme, bei Störfaktoren welche im Horizont der Bilder sind, trotzdem sind die Objekte welche im Fokus des Bildes sind erkannt wurden.

Störfaktorentfernung

Da wir nun die Koordinaten der Objekte durch die Objekterkennung geliefert bekommen, müssen wir diese entfernen. Hierfür erstellen wir Masken die wir wiederum später in der Pipeline auf das Originalbild legen.
Da nun aber mehrere Störfaktoren auf den Bildern existieren könnten, können wir die Masken nicht direkt bei der Erstellung verwenden, sondern sammeln alle erstellten Masken und führen die Anwendung auf dem Originalbild in einem späteren Schritt aus. Dies wird auch erst später durchgeführt, da durch die Hough Line-Erkennung ebenfalls eine Maske geliefert wird. Um die Masken nun auf das Originalbild anzuwenden, wird über alle Masken gegangen und jede einzelne auf dem Bild angewandt. Beim ersten Durchlauf ist das Bild, bei welchem die Masken angewandt werden, dass Originalbild. In den späteren Durchläufen ist das Bild wo die Masken angewandt werden, die jeweilige Rückgabe des vorherigen Durchlaufes.