Inhalt
Die Umwandlung von einem Bild in eine simulierbare Datei erfolgt grob in 4 Schritten.
Im Ersten Schritt wird das Bild für die weitere Verarbeitung vorbereitet. Dazu wird es in ein reines schwarz/weiß Bild umgewandelt, alle Linien werden zu Linien mit nur einem Pixel dicke umgewandelt und es werden noch einige Filter auf das Bild angewandt.
Das Ziel hinter Schritt 2 ist es dann, die Position der Bauteile im Bild zu finden. Wichtig! Hier soll nur die Position bestimmt werden! Nicht aber die Art des Bauteils. Umgesetzt wird dies wie folgt. Zuerst wird die Schaltung in eine sogenannte Graph Datenstruktur umgewandelt. In dieser Struktur kann man anschließend sehr einfach nach bestimmten Mustern suchen. So gibt es zum Beispiel für Widerstände, Kondensatoren usw. je ein einiges Muster, welches im Graph gesucht werden kann.
In Schritt 3 werden nun die zuvor gefunden Bauteile durch ein Neuronales Netzwerke klassifiziert. Dafür wird ein Convolutional Neural Network verwendet, welches darauf trainiert wurde, ein Bauteil auf einem Bild zu klassifizieren.
Im letzten Schritt wird die Information aus dem Graphen und die durch das NN generierte zusammengeführt und es wird eine simulierbare Datei erstellt. In unserem Fall ist das generierte File eine LT-Spice Schaltung. Jene wird einfach durch Text beschrieben. Extrem vereinfacht, macht dieser Schritt nicht mehr als einfach durch jedes gefundene Bauteil zu gehen, zu prüfen mit welchen anderen dieses verbunden ist und diese Information dann in eine Textdatei zu schreiben.
Ergebnisse
Das Ergebnis unseres Projektes ist eine Software, welche es dem Benutzer erlaub über eine GUI ein Bild zu laden und anschließend auf Knopfdruck ein LT-Spice File erstellt.
In unserem Fall erkennt unser Programm die folgenden Bauteile: Widerstände, Spule, Kondensatoren, Ground, Spannungsquellen.
Wird während der Umwandlung falsch klassifiziert, so ist unser Programm darauf ausgelegt, die Schaltung trotzdem umzuwandeln und nur das eine Falsch erkannte Bauteil zu überspringen. Somit kann ein Nutzer dann Fehler einfach in LT-Spice ausbessern.
Das Umwandeln einer Schaltung benötigt hierbei nur wenige Sekunden bis maximal eine Minute. Somit wird die insgesamt zum Entwickeln einer Schaltung benötigte Zeit drastisch reduziert.
Schlussfolgerung
Der modulare Aufbau unserer Software macht es einfach in Zukunft noch weitere Bauteile hinzuzufügen. Auch sollte es mit mehr Entwicklungszeit möglich sein, dass Bauteilwerte direkt aus der Zeichnung übernommen werden. Mit der Verbesserung von derzeitigen Machine-Learning Algorithmen, sollte es bald auch nicht mehr nötig sein, die Schaltung in einen Graphen umzuwandeln, um die Bauteile zu finden. Mit Technologien wie “YOLO” gibt es dafür heute schon die ersten Ansätze, jedoch sind diese noch wenig ausgereift und benötigen extrem viele Trainings Daten, um ansatzweiße verlässlich zu funktionieren.
Anhänge:
Voting Link:
Partner Maturaprojekt-Wettbewerb