Stromzähler auswertung

Aug 16, 2005 10 Replies

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


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

formatting link
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:

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:

Belichtungsverhältnisse ändern sich also auch nicht?

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:

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?

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:

Das könnte man wohl auch mit IrfanView.

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

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

formatting link
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:

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.

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:

Ja, hört sich gut an. Hast Du das irgendwo noch rumliegen?

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

en

Warum? Einfach gucken, ob waagerecht die Grundfarbe/Helligkeit=20 unterbrochen wird. Alle Ziffern haben (mindestens) einen senkrechten=20 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=DFer dem Rauschen)= =20 keine Ver=E4nderung zum Vorbild haben.

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required