Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss17:protokolle_kassenzettel [2017/08/23 13:44] Jan_Philipps [20.6.17] |
ss17:protokolle_kassenzettel [2017/09/15 17:27] (aktuell) Jan_Philipps [26.08.17 bis vermutlich 2142] |
||
---|---|---|---|
Zeile 79: | Zeile 79: | ||
Um unser Datenset zu erstellen haben wir uns damit beschäftigt wie man Rauschen in ein Bild einfügen kann. Dies kann man einfach so machen in dem man von den Grauwert für jeden Pixel einen Bestimmten Wert abzieht. Dies hat dann mit Coden jedoch länger gedauert als wir dachten. | Um unser Datenset zu erstellen haben wir uns damit beschäftigt wie man Rauschen in ein Bild einfügen kann. Dies kann man einfach so machen in dem man von den Grauwert für jeden Pixel einen Bestimmten Wert abzieht. Dies hat dann mit Coden jedoch länger gedauert als wir dachten. | ||
+ | |||
+ | Wir haben eine Methode geschrieben, die die obere, linke Ecke eines Zeichens besser bestimmen kann. Um dies zu erleichtern, wurden verschiedene Methoden zerlegt und finden nun in mehreren Anwedungen Verwendung. | ||
==== 13.07.17 ==== | ==== 13.07.17 ==== | ||
- | |||
- | Wir haben ein Zeilenfinder geschrieben. Dieser behebt das Problem, dass beim schrägen Scannen nach Buchstaben ein Buchstabe aus einer unteren Zeile gefunden wird. Dank der Zeilenober- und untergrenze, können Umlaute und Buchstaben mit Accents nun vollständig gefunden werden. | ||
Wir haben verschiedene Kassenbon ähnliche Fonts zusammen gesucht. Dazu haben wir sehr viele Bugs gefixt und am Ende haben wir einen laufenden Algorithmus erhalten. Einer dieser Bugs war zum Beispiel noch im Rauschen Algorithmus wo wir nicht wussten dass man in eine img Matrix keine Pixelwerte die höher als 255 sind eintragen kann. Ein weiterer Bug war, dass wir den Schwerpunkt für Bilder nicht berechnen können, wenn der Buchstabe nicht vollständig abgebildet ist. Was daran lag, dass die Fonts unterschiedliche Größen haben. | Wir haben verschiedene Kassenbon ähnliche Fonts zusammen gesucht. Dazu haben wir sehr viele Bugs gefixt und am Ende haben wir einen laufenden Algorithmus erhalten. Einer dieser Bugs war zum Beispiel noch im Rauschen Algorithmus wo wir nicht wussten dass man in eine img Matrix keine Pixelwerte die höher als 255 sind eintragen kann. Ein weiterer Bug war, dass wir den Schwerpunkt für Bilder nicht berechnen können, wenn der Buchstabe nicht vollständig abgebildet ist. Was daran lag, dass die Fonts unterschiedliche Größen haben. | ||
+ | |||
+ | |||
+ | Wir haben ein Zeilenfinder geschrieben. Dieser behebt das Problem, dass beim schrägen Scannen nach Buchstaben ein Buchstabe aus einer unteren Zeile gefunden wird. Dank der Zeilenober- und untergrenze, können Umlaute, Buchstaben mit Accents und ähnliche, mehrteilige Buchstaben vollständig gefunden werden. | ||
==== 20.07.17 ==== | ==== 20.07.17 ==== | ||
- | Einigung auf ein zu übergebenes Format. Die ausschneide Gruppe wir uns einen Ordner von .png Dateien übergeben, wobei sich der Name aus der Position des Buchstaben zusammensetzt. | + | Einigung auf ein zu übergebenes Format. Die ausschneide Gruppe wir uns einen Ordner von .png Dateien übergeben, wobei sich der Name aus der Position des Buchstaben zusammensetzt. |
+ | |||
+ | Die Methode, die für das Finden des nächsten Zeichens zuständig war, wurde entfernt. Ihre Funktion wurde aus Effizienzgründen vom ursprünglichen Zeichenfinder übernommen. Dazu wurde der Zeichenfinder stark umstrukturiert. Verschieden kleine Methoden, die bei der Zeichenerkennung geholfen haben, wurden entfernt. Bereits vorhandene Methoden haben ihre Funktion übernommen. Dazu wurden sie leicht verändert. Bis jetzt wurden fast ein drittel der zwischenzeitlich vorhandenen Methoden entfernt und ihre Funktionen auf andere Methoden umverteilt. | ||
==== 16.08.17 ==== | ==== 16.08.17 ==== | ||
- | Wir haben recherchiert, wie wir die gefundenen Symbole am besten als PNG Bilder exportieren können. Die beste Lösung schien [[https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.misc.imsave.html|scipy.misc.imsave]] zu sein. | + | Wir haben recherchiert, wie wir die gefundenen Symbole am besten als PNG Bilder exportieren können. Die beste Lösung schien [[https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.misc.imsave.html|scipy.misc.imsave]] zu sein, da wir scipy sowieso schon verwenden und die gefundenen symbole als scipy arryas speichern. |
==== 23.08.17 ==== | ==== 23.08.17 ==== | ||
- | Das Symbol-Erkennungs Programm speichert jetzt die gefundenen Zeichen als PNG Dateien. Das gesamte Program ist nun in Methoden verpackt. Nur eine der Methoden muss aufgerufen werden um das gesamte Bild zu scannen und Symbol-PNGs zu generieren. | + | Das Symbol-Erkennungs Programm speichert jetzt die gefundenen Zeichen als PNG Dateien. Das gesamte Program ist nun in Methoden verpackt. Nur eine der Methoden muss aufgerufen werden um das gesamte Bild zu scannen und Symbol-PNGs zu generieren. Die PNGs werden in einem Unterordner des Program-Verzeichnisses gespeichert. |
+ | |||
+ | |||
+ | ==== 24.08.17 ==== | ||
+ | Ein kleiner Bug im Symbolerkennungsprogram wurde mit großem Aufwand behoben. Nach Stunden ist es gelungen, tensorflow zum laufen zu kriegen. Irgendwie klappt jetzt alles zusammen, auch wenn überall noch kleine Fehler und Zeugs sind. Symbole werden ausgeschnitten und an das neurale Netz übergeben, welches die Zeichen mehr oder //weniger// richtig erkennt. | ||
+ | |||
+ | ==== 25.08.17 ==== | ||
+ | Wir haben ein neues neurales Netz getestet, das Arik ausgebrütet hat. Leider ist die Erkennungsquote relativ niedrig. Womöglich liegt das an der Skalierung der Buchstaben. | ||
+ | |||
+ | ==== 26.08.17 bis vermutlich 2142 ==== | ||
+ | Jan versucht das neuronale Netzwerk auf seinem Heim-Computer unter Windows 10 zum laufen zu bekommen. CPU-Berechnung funktioniert nach vielen Tagen (und Nächten) Arbeit und Herumprobieren und ist einige male schneller als die Berechnung auf den Laptops in der Uni. Aber es ist trotzdem nicht schnell genug. Leider sind jegliche Bemühungen, Theano dazu zu überreden die 1920 CUDA-Kerne der GPU zu nutzen vergeblich. |