Stromzähler auswertung

R

Rainer Zocholl

Guest
Hallo

ich habe hier eine Reihe von JPG bildern die die Zählrollen
eines Strom-, Gas- oder Wasserzähler in "Nahaufnahme" zeigen
(5 Stellen = ca. 300x80 Pixel)
Quasi ein Verbrauchsanzeige-Webcam ;-)

Es wäre schön, wenn es eine Software gäbe, die diese
automatisch auswerten könnte.

Die Kamera ist fest installiert und die meiste bewegung kommt
vom Rauschen der Kamera ;-).

Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Wenn ja, wo?
"Richtige" OCR ist wohl nicht so sehr geeignet resp, völlig "overpowered"
zumal ja bekannt ist, was da stehen muss...
Was könnte man (ausser Werkstudenten) nehmen?




Rainer
 
Rainer Zocholl wrote:
Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Wenn ja, wo?
"Richtige" OCR ist wohl nicht so sehr geeignet resp, völlig "overpowered"
zumal ja bekannt ist, was da stehen muss...
Was könnte man (ausser Werkstudenten) nehmen?
Ich hatte mal ein ähnliches Problem, allerdings gings dabei darum, ein
sehr präzises Thermometer optisch auszulesen: ging einwandfrei mit
ImageMagick (convert), das das Bild der Webcam zugeschnitten hat und
danach gocr/jocr (http://jocr.sourceforge.net/). Hat, wenn einmal
richtig konfiguriert, hervorragend funktioniert. Allerdings halt ein
bischen Skriptaufwand.

Gruß,
Johannes
 
Am 17 Aug 2005 01:42:00 +0200 schrieb Rainer Zocholl:

Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Wenn ja, wo?
"Richtige" OCR ist wohl nicht so sehr geeignet resp, völlig "overpowered"
zumal ja bekannt ist, was da stehen muss...
Was könnte man (ausser Werkstudenten) nehmen?
Ich hatte mal ein ähnliches Problem:
Und zwar sollte ich für eine Konkurrenztankstelle die Preistafel einer
anderen Tankstelle mit einer Webcam auswerten - die Zahlen also einlesen.

Da mir der Aufwand für den Lohn zu groß war haben wir es einfach so
gemacht, dass die Tankstelle1 eine eMail mit den neuen Preisen von
Tankstelle2 bekommt sobald diese sich geändert haben.

Aber wenn du eine Software findest wäre es super wenn du es hier bekannt
geben würdest!

--
Die im Header angegebene eMail- Adresse ist nicht reply- fähig!
 
Rainer Zocholl schrieb:

ich habe hier eine Reihe von JPG bildern die die Zählrollen
eines Strom-, Gas- oder Wasserzähler in "Nahaufnahme" zeigen
(5 Stellen = ca. 300x80 Pixel)
Quasi ein Verbrauchsanzeige-Webcam ;-)

Es wäre schön, wenn es eine Software gäbe, die diese
automatisch auswerten könnte.

Die Kamera ist fest installiert und die meiste bewegung kommt
vom Rauschen der Kamera ;-).
Belichtungsverhältnisse ändern sich also auch nicht?


Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Als ersten Versuch würde ich einfach für jede Stelle eine Kreuzkorrelation
des aktuellen Bildes mit jedem der 10 Musterbilder durchführen. Das
richtige Bild dürfte am besten korrelieren.

Gruß
Jürgen

--
GPG key:
http://pgp.mit.edu:11371/pks/lookup?search=J%FCrgen+Appel&op=get
 
(Egon Mang) 17.08.05 in /de/sci/electronics:

Am 17 Aug 2005 01:42:00 +0200 schrieb Rainer Zocholl:

Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Wenn ja, wo?
"Richtige" OCR ist wohl nicht so sehr geeignet resp, völlig
"overpowered" zumal ja bekannt ist, was da stehen muss...
Was könnte man (ausser Werkstudenten) nehmen?

Ich hatte mal ein ähnliches Problem:
Und zwar sollte ich für eine Konkurrenztankstelle die Preistafel einer
anderen Tankstelle mit einer Webcam auswerten - die Zahlen also
einlesen.

Da mir der Aufwand für den Lohn zu groß war haben wir es einfach so
gemacht, dass die Tankstelle1 eine eMail mit den neuen Preisen von
Tankstelle2 bekommt sobald diese sich geändert haben.
Auch ein Weg :)
Aber ich weis zwar das es E-Zähler mit V.24 Anschluss gibt, aber
ob ich meine Wasseruhr davon überzeugen kann, mir alle Stunde
o.ae. ne eMail zuschicken?


Aber wenn du eine Software findest wäre es super wenn du es hier
bekannt geben würdest!
Mit fällt da nur das Programm "motion" ein.
Das detekiert (schnelle) Veränderungen im Bild und kann dann ne
eMail schicken etc.
Das reicht ja erstmal, oder sollen sich die Anzeige synchron
und "automagisch" mit der der Konkurrenz ändern?
Rainer
 
(Johannes Bauer) 17.08.05 in /de/sci/electronics:

Rainer Zocholl wrote:
Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?
Wenn ja, wo?
"Richtige" OCR ist wohl nicht so sehr geeignet resp, völlig
"overpowered" zumal ja bekannt ist, was da stehen muss...
Was könnte man (ausser Werkstudenten) nehmen?

Ich hatte mal ein ähnliches Problem, allerdings gings dabei darum, ein
sehr präzises Thermometer optisch auszulesen: ging einwandfrei mit
ImageMagick (convert), das das Bild der Webcam zugeschnitten hat
Das könnte man wohl auch mit IrfanView.

und danach gocr/jocr (http://jocr.sourceforge.net/).

Hat, wenn einmal richtig konfiguriert, hervorragend funktioniert.
Allerdings halt ein bischen Skriptaufwand.
Danke für den Hiweis, aber leider ist der Zeichensatz des Zählers z.T.
sehr speziell, z.B. ist 5 kaum als solches zu erkennen. Es fehlt
der senkrechte Strich, vermutlich um Verwechslung einer OCR mit der "6"
zu verhindern. Aber das nutzt nix, da alle Zahlen unten abgeschnitten
da die Blende wohl nicht genau sitzt. Sie Zeichen sind trotzdem gut unter
scheidbar, zumal man ja genau weis, wie sich die Werte entwickeln können
Das Programm scheint aber nicht anlernbar zu sein, oder?
(Die Anleitung ist ein bisserl mager, oder steht die irgendwo
an besonderer Stelle?)


Rainer
 
Als ersten Versuch würde ich einfach für jede Stelle eine Kreuzkorrelation
des aktuellen Bildes mit jedem der 10 Musterbilder durchführen. Das
richtige Bild dürfte am besten korrelieren.
Hast du den Algorithmus für die Kreuzkorrelation in einer verständlichen
Form? Wäre dankbar!

Ich habe vor einiger Zeit mal etwas Ähnliches selber gemacht. Dabei habe
ich mir aus einem Videobild jeweils die Ziffern geholt und dann
aufbereitet:

- auf pures Schwarz/Weiß gefiltert
- automatisch auf null Rand beschnitten ("bounding box")
- auf 30 x 30 Pixel skaliert/verzerrt ("normiert")
- Pixel für Pixel von gleichgroßen Musterbildern (0..9) subtahiert
("Fehlerquadratsumme")
- das mit der kleinsten Fehlerquadratsumme, ist dann das
Wahrscheinlichste

Richtiges OCR arbeitet natürlich wesentlich intelligenter, aber bei dem
bescheidenen Umfang von 10 möglichen Zeichen klappt die von mir
beschriebene primitive Methode ganz gut.

Bei einem Stromzähler könnte es evtl. Probleme geben, wenn die Zahlen
ins Bild hineinscrollen - also manchmal nur teilweise zu sehen sind ...

Frank
 
Hast du den Algorithmus für die Kreuzkorrelation in einer verständlichen
Form?
http://www.embeddedFORTH.de Heft 6 hat zumindest ein E13B Lesegerät
( Magnetschrift ) leicht lesbar dargestellt.

Andere historischen OCR-Systeme haben die Buchstaben auf
sw also 1 Bit quantisiert. Damit entfällt Multiplikation und es genügt
XOR-Gate. Die "defekten" Bits ergeben 1, alle identischen "0".
Wenn man die Zahl der defekten Bits in einem Datenwort summiert nennt
sich das die Hamming-Distanz ( Grundoperation für fehlerkorrigierende
Codes ). Also:

10001100 = ReferenzMuster
10101000 = Datenwort
00100100 = XOR der beiden Muster
-> Hamming-Distanz = 2 ( fehlerhafte Bits )

Die Summierung wurde in den ersten binären seriellen Korrelatoren
von TRW anfang/mitte 70er Jahre schlicht durch ein Widerstandsnetzwerk
mit
identischen Widerständen durchgeführt, sodaß man die "Ähnlichkeit" also
analoge Spannung erhielt.
Ein 1-dimensionales Signal das durch ein Schieberegister geschoben
wird hat im Augenblick grösster Ähnlichkeit maximale Spannung haben,
vorausgesetzt das Binärmuster ist passend ausgelegt ( optimal:
Barker-Code).
Das Datenwort muß meist deutlich länger sein, die TRW-Korrelatoren
machten 32 oder 64 Bit pro IC und waren kaskadierbar.
Bei Schriften ist das Muster nicht passend auslegbar und man hat
mit simplem Korrelator Probleme weil Muster 2-dimensional ist.
Insofern kommt man mit simplem Korrelator nicht allzuweit.

Merkmalsgewinnung die Translations/Rotations/Skalierungs-
invariant ist wäre da wünschenswert. Einfaches Verfahren
"invariant moments" wie von Hu in 60er Jahren schon vorgeschlagen.
Da kann ich bei Bedarf Literatur heraussuchen.
Hierzulande sind Polynomklassifikatoren von AEG und Siemens
seit 70er Jahren verwendet worden, da ist die Literatur aber
spärlicher.

MfG JRD
 
(Jürgen Appel) 17.08.05 in /de/sci/electronics:

Rainer Zocholl schrieb:

ich habe hier eine Reihe von JPG bildern die die Zählrollen
eines Strom-, Gas- oder Wasserzähler in "Nahaufnahme" zeigen
(5 Stellen = ca. 300x80 Pixel)
Quasi ein Verbrauchsanzeige-Webcam ;-)

Es wäre schön, wenn es eine Software gäbe, die diese
automatisch auswerten könnte.

Die Kamera ist fest installiert und die meiste bewegung kommt
vom Rauschen der Kamera ;-).

Belichtungsverhältnisse ändern sich also auch nicht?
Noe. Das Teil ist im Dunstern und wird von einer LED beleuchtet.
Ggf. kann man ja mit einer Papmanchette o.ae. dafür sorgen das
es duster ist.

Aus nicht geklärten gründen meinte jedoch die Kamera den
Weissabbleich einmal anders zu machen.
Ok, aber nicht soo schlimm, da man ja weiss was raus kommen muss.


Gibt es ein Tool dem man die Ziffernbitmaps "anlernen" kann?

Als ersten Versuch würde ich einfach für jede Stelle eine
Kreuzkorrelation des aktuellen Bildes mit jedem der 10 Musterbilder
durchführen. Das richtige Bild dürfte am besten korrelieren.
Jo, aber womit?

Ich wollte da nu keine grosse Programmierereien starten.

jocr/gocr glaubt ca. 4..5 Zeilen in den 80*320 Pixeln zu sehen.
Dabei ist es nur eine einzige.

Rainer
 
(Frank Esselbach) 17.08.05 in /de/sci/electronics:


Als ersten Versuch würde ich einfach für jede Stelle eine
Kreuzkorrelation des aktuellen Bildes mit jedem der 10 Musterbilder
durchführen. Das richtige Bild dürfte am besten korrelieren.

Hast du den Algorithmus für die Kreuzkorrelation in einer
verständlichen Form? Wäre dankbar!

Ich habe vor einiger Zeit mal etwas Ähnliches selber gemacht. Dabei
habe ich mir aus einem Videobild jeweils die Ziffern geholt und dann
aufbereitet:

- auf pures Schwarz/Weiß gefiltert
- automatisch auf null Rand beschnitten ("bounding box")
- auf 30 x 30 Pixel skaliert/verzerrt ("normiert")
- Pixel für Pixel von gleichgroßen Musterbildern (0..9) subtahiert
("Fehlerquadratsumme")
- das mit der kleinsten Fehlerquadratsumme, ist dann das
Wahrscheinlichste
Ja, hört sich gut an.
Hast Du das irgendwo noch rumliegen?

Richtiges OCR arbeitet natürlich wesentlich intelligenter, aber bei
dem bescheidenen Umfang von 10 möglichen Zeichen klappt die von mir
beschriebene primitive Methode ganz gut.

Bei einem Stromzähler könnte es evtl. Probleme geben, wenn die Zahlen
ins Bild hineinscrollen - also manchmal nur teilweise zu sehen sind
...
Jein. Man muss dann ebend 19 Bilder vergleichen :).
Ich mache alle 5 Minuten ein Bild (was zu viel ist)
es bewegt sich dabeit praktisch imemr nur die Kommastelle,
die anderen Rollen haben max. 1 Zwischenbild.

Ausserdem "weiss" man ja, das nach der 99 ein "100" kommen muss,
und nicht "188", wenn man bei der nächsten Aufnahme "102" erkannt hat.
Bei der Tankstelle oder einem Voltmeter ist das schon kritischer.


Rainer
 
Frank Esselbach wrote:


Bei einem Stromzähler könnte es evtl. Probleme geben, wenn die Zahlen
ins Bild hineinscrollen - also manchmal nur teilweise zu sehen sind ...
Warum? Einfach gucken, ob waagerecht die Grundfarbe/Helligkeit
unterbrochen wird. Alle Ziffern haben (mindestens) einen senkrechten
Stich (Bogen) von ganz oben bis ganz unten.

Wenn das in zwei Zeilen nicht der fall ist, befindet sich das Zahlen-Rad
gerade in Bewegung.

Oder nur bilder nutzen, die bei der letzten Ziffer (außer dem Rauschen)
keine Veränderung zum Vorbild haben.

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ==
http://WWW.DSCHEN.DE mailto:usenet@dschen.de
 

Welcome to EDABoard.com

Sponsor

Back
Top