Home / 
Automatische Planung von Solaranlagen

Case Study

Automatische Planung von Solaranlagen

Unser Auftraggeber ist eine Firma aus dem Solarbereich, welche die Planung, Beratung und Installation von Solaranlagen für Privathaushalte anbietet. Ziel dieses Projekts ist es, den Planungsprozess von Solaranlagen zu automatisieren. Konkret geht es dabei um die Erstellung eines individuellen Angebots für Kunden, damit diese Kosten und Nutzen der Investition abschätzen können und einen ästhetischen Eindruck des Endergebnisses erhalten.

Ausgangslage

Um ein Angebot erstellen zu können, benötigt der Auftraggeber zunächst diverse Informationen des Kunden, wie z.B. die Länge und Breite des Daches, Dachausrichtung etc. Meist sind Teile dieser Daten dem Hausbesitzer unbekannt und ein Mitarbeiter muss die Informationen anderweitig herausfinden.

Beschreibung alter Prozess

Zunächst legt der Mitarbeiter ein neues Projekt in einer Desktop-Solarsoftware an und bittet den Hausbesitzer um ein Foto des Daches. Der Mitarbeiter überträgt die Stammdaten sowie das Dachfoto des Kunden in die Solarsoftware. Nun müssen der Dachumfang sowie die Umrisse jedes Hindernisses auf dem Dach händisch eingezeichnet werden. Dachgauben werden gesondert behandelt, da diese auf dem Foto meist mehr Dachfläche einnehmen als in der Realität.

Nun fügt der Mitarbeiter eine Referenzlänge hinzu (z.B. die Länge oder Breite des Daches). Dafür öffnet er den Browser und gibt z.B. bei Google Maps die Kundenadresse ein. Ist die Qualität des Satellitenbildes gut genug, zählt der Mitarbeiter die Ziegel des Daches und bestimmt so grob die Referenzlänge. Sonst muss er auf einen anderen Service ausweichen. Nach Eingabe der Referenzlänge schätzt das Programm den Dachwinkel und die resultierende Dachfläche. Hierbei kommt es häufig zu Ungenauigkeiten. Da die zugrundeliegende Berechnungsmethode nicht transparent offen liegt, ist eine nachträgliche Verbesserung kaum möglich.

Nach einigen weiteren Schritte speichert der Mitarbeiter die gewünschte Solarpanel-Visualisierung und überträgt diese (inkl. weiterer angebotsrelevanter Daten) in die Software, sodass ein endgültiges Angebot erstellt werden kann.

Der ganze Prozess dauert im Durchschnitt 120 Minuten pro Planung, ist fehleranfällig (unklare Berechnungsmethoden, häufige manuelle Schnittstellen) und die Visualisierung der Solarpanele auf dem Hausdach entspricht nicht aktuellen Standards.

Bisher wurden die Solaranlagen mit Hilfe einer Desktop-Applikation geplant, welche nur für Windows erhältlich ist und eine veraltete GUI sowie hohe Wartungs- und Lizenzkosten mit sich bringt. Ferner fehlen Schnittstellen (sowohl zum automatischen Einlesen von Kundeninformation als auch zur Weitergabe neuer Informationen) und die Usability ist nicht für den Anwendungsfall optimiert (viele unnötige Klicks/Schritte).

Für Fälle, in denen die Dachwinkel und Dachmaße des Interessenten unbekannt sind, verfügt die Applikation über eine approximative Triangulationsmethode, welche den Dachwinkel mit Hilfe des auf einem Foto eingezeichneten Dachumfangs und der Eingabe einer Referenzlänge (z.B. Dachbreite, Dachlänge) schätzt. Oftmals stellt sich dieses Verfahren jedoch als fehlerhaft heraus. Da keine transparente Beschreibung der Berechnung existiert und es sich um eine proprietäre Applikation handelt, kann dieser Fehler nicht hinreichend analysiert und die Methode nicht verbessert werden.

Herausforderungen

Das Ziel des Projekts war klar definiert: Der Planungsprozess sollte deutlich beschleunigt werden.

Doch im Detail gab es viele Herausforderungen, wie z.B.:

  • Sollten wir eine Lösung für alle Dachformen anstreben? Welche Datenquellen sollten herangezogen werden?
  • Welche Mensch-Maschine-Schnittstellen sind optimal im Spannungsfeld Planungsqualität vs. Zeitersparnis vs. Benutzerfreundlichkeit?
  • Wie skaliert die Lösung für mehrere Anwender? Läuft das System in der Cloud oder auf dem Rechner des Anwenders?

Zur Verfügung stehender Input: Adresse sowie Dachfoto des Kunden.

Gewünschter Output: Dachmaße, Dachwinkel, südliche Ausrichtung, Anzahl der passenden Solarpanele, Solarpanel-Visualisierung auf dem Dachfoto des Kunden.

Die größten Herausforderungen, die wir vor Projektbeginn identifizieren konnten, waren die Folgenden:

  1. Erkennen von kleinen Hindernissen (Kamin, Dachfenster, Antenne etc.)
  2. Unterschiedliche Inputqualität (z.B. Verschattung)
  3. Schätzen von (3-dimensionalen) Dachmaßen (Länge, Breite, Dachwinkel)
  4. Umgang mit Sonder-Dachformen
  5. Unterteilen in Dachhälften
  6. Schnittstellen (Mensch-Maschine, Maschine-Maschine)

Lösung

Wir haben eine Software entwickelt, die den vollständigen Prozess bis zur fertigen Solarpanel-Visualisierung automatisiert. Die Umsetzung erfolgte in einem agilen Projektrahmen (MVP nach 6 Monaten, kontinuierliches Anwender-Feedback) und wurde gemeinsam mit der IT-Abteilung des Kunden als Web-Applikation umgesetzt, was diverse Vorteile mit sich bringt: z.B. schneller Roll-out von Verbesserungen, unbegrenztes Hinzufügen von Nutzern, Unabhängigkeit vom Betriebssystem, etc.

Aktuell arbeiten 13 Mitarbeiter des Auftraggebers mit unserer Softwarelösung (Stand Juni 2019). Die Nutzung der alten Solarsoftware konnte mittlerweile eingestellt werden.

Die Planungszeit wurde von vorher 120 Minuten auf nun ca. 15 Minuten reduziert.

Eingesetzte Technologien

Backend: Python, Tensorflow, PyTorch, SciPy, NumPy, scikit-learn, scikit-image, OpenCV, Flask

Frontend: JavaScript, Angular5, Three.js, Fabric.js, Sass

Infrastruktur: GCloud (Training), AWS (Production), Docker, Git

Wir präsentieren im Folgenden Lösungen einiger ausgesuchter Teilprobleme.

1. Segmentierung des Daches

Sowohl auf dem Satelliten- als auch auf dem Kundenfoto segmentieren wir das Dach und die auf diesem befindlichen Hindernisse mittels neuronaler Netze. Die Architektur dieser Netze orientieren sich vor allen Dingen an U-Nets, d.h. Convolutional Neural Networks, welche für derartige Problem derzeit die beste Performance liefern.

Für das Training der Netze haben wir selbst zahlreiche Labels generiert, d.h. Umrisse von Dächern und Hindernissen markiert. Hierbei war es wichtig, das Labelingschema an das Problem anzupassen, um etwa auch kleine Hindernisse und semantische Strukturen lernen und schließlich erkennen zu können. Das Training hat ein umfangreiches Finetuning erfordert (z.B. Identifikation der besten Lossfunktion, Datenaugmentierung, Hyperparameteroptimierung etc.) - für Details sei auf unseren Blog verwiesen.

Bei der Segmentierung der Kundenfotos haben wir mittels Transfer-Learning durch ein auf ImageNet vortrainiertes neuronales Netz deutliche Verbesserungen erreichen können. Die zwei unteren Bilder zeigen exemplarisch die beeindruckenden Fähigkeiten des von uns trainierten neuronalen Netzes semantische Strukturen zu erkennen.

2. Postprocessing

Die Segmentierung der Dächer liefert zunächst eine pixelweise Klassifikation (d.h. jeder Pixel wird einer Klasse = {Dach, Nicht-Dach, Hinderniss, etc.} zugewiesen). Als nächster Schritt ist das Detektieren von geometrischen Formen sowie das Erkennen von semantischen Strukturen notwendig. Insbesondere geht es etwa um das Erkennen der Dachecken, das Trennen einzelner Hausteile und die Identifikation der jeweiligen Südseite.

Diese Teilaufgaben entpuppten sich u.a. aufgrund des nicht immer perfekten Segmentierungsoutputs als schwieriger als zunächst angenommen. Durch eine kreative Kombination von evolutionären Algorithmen und klassischen Computer-Vision-Methoden können wir dennoch auch hier eine sehr gute Qualität erreichen und etwa weniger gute Segmentierungen teilweise korrigieren.

3. Inferenz der Dachmaße

Fotos sind 2-dimensionale Projektionen und somit nicht ohne Weiteres ausreichend für die Schätzung der tatsächlichen Dachfläche.

Gelöst haben wir dieses Problem durch die Kombination von Satelliten- und Kundenfoto. Ersteres liefert Referenzmaße für horizontale Distanzen und auf Zweiterem können wir mittels projektiver Geometrie und selbst entwickelten Formeln die Winkel für rechtwinklige Dachflächen berechnen.

Daraus lässt sich schließlich mit einfachen trigonometrischen Formeln Länge und Breite und somit die Fläche des Daches bestimmen. Die durch die Formeln gewonnene Transformationsmatrix ermöglicht nun ferner eine Visualisierung der Panele auf dem Kundenfoto.

Genauere Informationen stellen wir Ihnen gerne in einem persönlichen Gespräch vor.

Produkt

Um die Produktdemonstration zu starten, klicken Sie bitte das Bild unterhalb an.

Diese Produktdemo ist zur Zeit nur für die Desktopansicht optimiert.

Schritt 1: Der Nutzer gibt die Adresse des Hauses ein.

Schritt 2: Das neuronale Netz erkennt Dachflächen inkl. Hindernisse, der Nutzer sucht das gewünschte Dach aus.

Schritt 3: Ein Postprocessing-Algorithmus bestimmt die Ecken der Dachfläche, der Nutzer die Vorschläge editieren.

Schritt 4: Ein weiteres neuronales Netz bestimmt Dachfläche und Hindernisse auf dem Kundenfoto. Der Nutzer kann ggf. nachsteuern.

Schritt 5: Alle Informationen werden zusammengeführt, Ergebnis wird visualisiert. Nutzer kann letzte Änderungen vornehmen.

Ende der Produktdemo

Ihre Firma plant gar keine Solaranlagen?

Kein Problem, denn wir sind eine Softwarefirma, die viele verschiedene Arten von Geschäftsprozessen automatisiert. Diese Prozesse zeichnen sich dadurch aus, dass ein zentraler Bestandteil darin besteht Muster in Bildern oder in Texten zu erkennen, um im Anschluss eine Entscheidung vorzuschlagen.

In obiger Fallstudie wurden Muster von Dächern & Hindernissen in 2 Arten von Bildern erkannt, um schlussendlich vorzuschlagen, wie viele Solarpanele auf ein Dach passen.

Jedes Mal eine individuelle Lösung programmieren - ist das nicht viel zu teuer?

Oft gibt es einfach keine Standardsoftware, welche Ihren Geschäftsprozess ausreichend automatisieren könnte. Und selbst falls es eine solche Software am Markt gibt, muss diese erweitert oder aufwändig an ihr Unternehmen angepasst werden (dies wäre bei o.g. Projekt der Fall gewesen).

Ob es sich lohnt eine Spezialsoftware entwickeln zu lassen, kommt auf die Kosten des Geschäftsprozesses bzw. auf den strategischen Wert des Projekts an. Umso erfahrener die Softwarefirma in dem jeweiligen Bereich ist, desto günstiger wird die Entwicklung. Genau deswegen ist dida auf Mustererkennung in Texten oder Bildern spezialisiert. Gerne helfen wir bei der Suche nach sinnvollen Automatisierungsprojekten und erstellen Ihnen im Anschluss ein unverbindliches Angebot (-> Kontakt).

Entwickelt dida die Lösung unabhängig von den Software-Entwicklern des Auftraggebers?

Ja, das ist möglich. Noch lieber sind wir allerdings im engen Austausch mit den internen Software-Entwicklern und Data Scientists. Dies ermöglicht einen optimalen Kommunikationsfluss und minimiert die Kosten des Projekts, da dida sich lediglich auf diejenigen Bereiche beschränken kann, wo sie den größten Produktivitätsvorteil besitzt.

Use Cases zu Machine Vision

Handschriftliche Dokumente können durch Machine-Learning-Algorithmen ausgelesen und vorausgefüllt werden. Durch weitere Eingaben können diese Dokumente noch einmal editiert werden, wovon die Genauigkeit des Algorithmus noch mal profitiert.

Durch die Analyse von Röntgen- oder MRT-Bildern durch einen Algorithmus können Diagnosevorschläge erstellt werden.

Um die öffentliche Infrastruktur planen zu können, benötigen die Behörden aktuelle Informationen über die Nutzung ihres Landes.


Erfahren Sie, was dida für Sie tun kann