Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss17:erkennung_gedruckter_geschrift_einen_kassenbon_lesen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss17:erkennung_gedruckter_geschrift_einen_kassenbon_lesen [2017/09/21 10:24]
Jan_Philipps [Symbol-Finder]
ss17:erkennung_gedruckter_geschrift_einen_kassenbon_lesen [2017/10/18 09:13] (aktuell)
Jan_Philipps [Symbol-Finder]
Zeile 100: Zeile 100:
   
  try:  try:
- os.mkdir(pPath) #​Erstellt ​Speicherverzeichniss ​falls noch nicht vorhanden+ os.mkdir(pPath) #​Erstellt ​Speicherverzeichnis ​falls noch nicht vorhanden
   
  except: pass  except: pass
Zeile 115: Zeile 115:
  EndLine=True  EndLine=True
   
- Zeit2=time() #​Beendet Zeitmessung. Auskommentiert weil meist sinnlos, aber manchmal doch ganz nett zu wissen.+ #Zeit2=time() #​Beendet Zeitmessung. Auskommentiert weil meist sinnlos, aber manchmal doch ganz nett zu wissen.
   
  #print "​SymbolScanner-Time=",​ (Zeit2-Zeit1) #Gibt an, wie lange die ganze Suche gedauert hat. Auskommentiert weil meist sinnlos, aber manchmal doch ganz nett zu wissen.  #print "​SymbolScanner-Time=",​ (Zeit2-Zeit1) #Gibt an, wie lange die ganze Suche gedauert hat. Auskommentiert weil meist sinnlos, aber manchmal doch ganz nett zu wissen.
Zeile 229: Zeile 229:
   
  while (cy>​yMax) and (cx<b): #Schleife laeuft bis der Algorithmus an der oberen oder rechten Kante vom Bereich ankommt.  while (cy>​yMax) and (cx<b): #Schleife laeuft bis der Algorithmus an der oberen oder rechten Kante vom Bereich ankommt.
- if img[cy,​cx]<​threshold:​ #Wenn der aktuell ​Pixel dunkel ist, werden die Koordinaten zurueckgegeben+ if img[cy,​cx]<​threshold:​ #Wenn der aktuelle ​Pixel dunkel ist, werden die Koordinaten zurueckgegeben
  return cx,cy  return cx,cy
  cx=cx+1 #Geht eins nach rechts  cx=cx+1 #Geht eins nach rechts
Zeile 241: Zeile 241:
   
  while (cy>​yMax) and (cx<​b):​ #​Schleife laeuft bis der Algorithmus an der oberen oder rechten Kante vom Bereich ankommt.  while (cy>​yMax) and (cx<​b):​ #​Schleife laeuft bis der Algorithmus an der oberen oder rechten Kante vom Bereich ankommt.
- if img[cy,​cx]<​threshold:​ #Wenn der aktuell ​Pixel dunkel ist, werden die Koordinaten zurueckgegeben+ if img[cy,​cx]<​threshold:​ #Wenn der aktuelle ​Pixel dunkel ist, werden die Koordinaten zurueckgegeben
  return cx,cy  return cx,cy
  cx=cx+1 #Geht eins nach rechts  cx=cx+1 #Geht eins nach rechts
Zeile 492: Zeile 492:
 == Artefakte == == Artefakte ==
  
-Flecken, Schatten, Druckfehler, ​Stempeln ​oder ähnliche Unreinheiten auf dem Papier sind teilweise dunkel genug um vom Programm als Symbol erkannt zu werden. Das kann dazu führen, dass Zeilen nicht richtig erkannt werden, in manchen Fällen hält das Programm dann zwei Zeilen für eine einzige. In solchen Fällen werden oft Buchstaben aus den beiden Zeilen nicht gefunden. Dieser Fall tritt aber nur bei relativ großen Artefakten ein, welche ziemlich selten sind, wenn man sich mit dem Foto etwas Mühe gibt.+Flecken, Schatten, Druckfehler, ​Stempel ​oder ähnliche Unreinheiten auf dem Papier sind teilweise dunkel genug um vom Programm als Symbol erkannt zu werden. Das kann dazu führen, dass Zeilen nicht richtig erkannt werden, in manchen Fällen hält das Programm dann zwei Zeilen für eine einzige. In solchen Fällen werden oft Buchstaben aus den beiden Zeilen nicht gefunden. Dieser Fall tritt aber nur bei relativ großen Artefakten ein, welche ziemlich selten sind, wenn man sich mit dem Foto etwas Mühe gibt.
 Kleinere Artefakte werden einfach als Symbole erkannt und an das neuronale Netzwerk übergeben, welches diese dann aussortieren soll. In diesem Teil des Programmes eine Lösung zu finden wäre zu aufwendig, vor allem da man mit einem neuronales Netzwerk ziemlich einfach erkennen kann, ob es sich um eine richtiges Symbol handelt oder nicht. Kleinere Artefakte werden einfach als Symbole erkannt und an das neuronale Netzwerk übergeben, welches diese dann aussortieren soll. In diesem Teil des Programmes eine Lösung zu finden wäre zu aufwendig, vor allem da man mit einem neuronales Netzwerk ziemlich einfach erkennen kann, ob es sich um eine richtiges Symbol handelt oder nicht.
 ==== Machine Learning ==== ==== Machine Learning ====
ss17/erkennung_gedruckter_geschrift_einen_kassenbon_lesen.1505982292.txt.gz · Zuletzt geändert: 2017/09/21 10:24 von Jan_Philipps