Forums

Fast OCR over raspberry or some other board

Started by gm June 1, 2015
Hi !

I want to read data from one LCD graphics display ( 2x16 ) and send this 
data over LAN to one end device.

Now, the main problem is OCR data processing because this should be 
quite fast. The text on the display will stay  the same ,most of the 
time, but when new message arrives, it should be read and processed 
under 5 seconds.

Is something like this doable with some raspberry, beaglebone or some 
other small computer ?
On 01/06/2015 22:02, gm wrote:
> Hi ! > > I want to read data from one LCD graphics display ( 2x16 ) and send this > data over LAN to one end device. > > Now, the main problem is OCR data processing because this should be > quite fast. The text on the display will stay the same ,most of the > time, but when new message arrives, it should be read and processed > under 5 seconds. > > Is something like this doable with some raspberry, beaglebone or some > other small computer ?
The OCR should be doable with the boards you suggest. For a more bizarre solution: You may also be able to read it by putting a piece of wire over the LCD panel and capacitively picking up some combination of the electrode voltages, e.g. with a FET input buffer connected to a soundcard input or similar. Quite possibly you could decode the text from this waveform even before the liquid crystal has reacted and changed the optical transmission of the pixels. It would work in the dark too. Capacitive pick-up might not work so easily if there is an electroluminescent or CCFL backlight as those have high AC voltages in them that could interfere. Chris
On Mon, 01 Jun 2015 14:02:08 +0200, gm <notMyMail@mail.not> wrote:

> I want to read data from one LCD graphics display ( 2x16 ) and send this > data over LAN to one end device. > > Now, the main problem is OCR data processing because this should be > quite fast. The text on the display will stay the same ,most of the > time, but when new message arrives, it should be read and processed > under 5 seconds. > > Is something like this doable with some raspberry, beaglebone or some > other small computer ?
The key to getting good OCR results is obtaining a solidly registered image with good (and consistent) brightness and contrast. If you could guarantee to your satisfaction that pixel X (or perhaps W,X,Y, and Z) in your image will reflect the upper left "dot" of the first character in the LCD you're looking at, things whould be fairly simple; however, as you read through the real-world experiences below you'll get a feel for why this isn't always easy. A little "skew" in the image can really screw things up. <grin> I'm not aware of any efforts focused specifically on extracting character-LCD dot-matrix data, but here's a link to some fairly light-duty software that can be used to decode 7-segment data from an LED/LCD display. You might be able to adapt it for your purposes: Seven Segment Optical Character Recognition <https://www.unix-ag.uni-kl.de/~auerswal/ssocr/> It includes some sample images, as well as links to related projects. Here are some discussions of similar problems: OCR for reading multimeter? <https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=28021> Text detection on Seven Segment Display via Tesseract OCR <http://stackoverflow.com/questions/17672705/text-detection-on-seven-segment-display-via-tesseract-ocr> Saving Energy Via Webcam-Based Meter Reading? <http://ask.slashdot.org/story/08/11/12/2054218/saving-energy-via-webcam-based-meter-reading> and some other projects and research: OCR&acirc;&euro;&trade;ing a power meter <https://www.anfractuosity.com/projects/ocring-a-power-meter/> 7-segment LCD Display Reader (OpenCV) <http://www.androidpit.com/app/com.yuyang.opencvtest> Electricity meter fun <http://blog.jfedor.org/2012/02/electricity-meter-fun.html> Doing OCR Using Command Line Tools in Linux <http://williamjturkel.net/2013/07/06/doing-ocr-using-command-line-tools-in-linux/> Optical Character Recognition using Dynamic Memory Image Algorithm <http://www.iosrjournals.org/iosr-jce/papers/Vol16-issue2/Version-7/D016271216.pdf> Enjoy. I hope you find something useful in all this; it sounds like a fun project. Frank McKenney -- It is the business of education to implant insight and respon- sibility. It must turn irresponsible opinion into responsible judgement and lead from chance and arbitrariness to the rational lucidity of an intellectual order. -- Mies Van der Rohe -- Frank McKenney, McKenney Associates Richmond, Virginia / (804) 320-4887 Munged E-mail: frank uscore mckenney aatt mindspring ddoott com
On 01.06.2015 18:19, Frnak McKenney wrote:
> On Mon, 01 Jun 2015 14:02:08 +0200, gm <notMyMail@mail.not> wrote: > >> I want to read data from one LCD graphics display ( 2x16 ) and send this >> data over LAN to one end device. >> >> Now, the main problem is OCR data processing because this should be >> quite fast. The text on the display will stay the same ,most of the >> time, but when new message arrives, it should be read and processed >> under 5 seconds. >> >> Is something like this doable with some raspberry, beaglebone or some >> other small computer ? > > The key to getting good OCR results is obtaining a solidly registered > image with good (and consistent) brightness and contrast. If you could > guarantee to your satisfaction that pixel X (or perhaps W,X,Y, and Z) in > your image will reflect the upper left "dot" of the first character in > the LCD you're looking at, things whould be fairly simple; however, as > you read through the real-world experiences below you'll get a feel for > why this isn't always easy. A little "skew" in the image can really > screw things up. <grin> > > I'm not aware of any efforts focused specifically on extracting > character-LCD dot-matrix data, but here's a link to some fairly > light-duty software that can be used to decode 7-segment data from an > LED/LCD display. You might be able to adapt it for your purposes: > > Seven Segment Optical Character Recognition > <https://www.unix-ag.uni-kl.de/~auerswal/ssocr/> > > It includes some sample images, as well as links to related projects. > > Here are some discussions of similar problems: > > OCR for reading multimeter? > <https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=28021> > > Text detection on Seven Segment Display via Tesseract OCR > <http://stackoverflow.com/questions/17672705/text-detection-on-seven-segment-display-via-tesseract-ocr> > > Saving Energy Via Webcam-Based Meter Reading? > <http://ask.slashdot.org/story/08/11/12/2054218/saving-energy-via-webcam-based-meter-reading> > > and some other projects and research: > > OCR&acirc;&euro;&trade;ing a power meter > <https://www.anfractuosity.com/projects/ocring-a-power-meter/> > > 7-segment LCD Display Reader (OpenCV) > <http://www.androidpit.com/app/com.yuyang.opencvtest> > > Electricity meter fun > <http://blog.jfedor.org/2012/02/electricity-meter-fun.html> > > Doing OCR Using Command Line Tools in Linux > <http://williamjturkel.net/2013/07/06/doing-ocr-using-command-line-tools-in-linux/> > > Optical Character Recognition using Dynamic Memory Image Algorithm > <http://www.iosrjournals.org/iosr-jce/papers/Vol16-issue2/Version-7/D016271216.pdf> > > Enjoy. I hope you find something useful in all this; it sounds like a > fun project. > > > Frank McKenney >
------------- Thank you guys for reply. Before we ho any deeper with this, can someone of you ( from some practical example ) confirm that this "reading / data processing " can be done under 5 seconds ? Because, this is the main part and main thing. GM
On Mon, 01 Jun 2015 14:02:08 +0200, gm <notMyMail@mail.not> wrote:

>Hi ! > >I want to read data from one LCD graphics display ( 2x16 ) and send this >data over LAN to one end device. > >Now, the main problem is OCR data processing because this should be >quite fast. The text on the display will stay the same ,most of the >time, but when new message arrives, it should be read and processed >under 5 seconds. > >Is something like this doable with some raspberry, beaglebone or some >other small computer ?
Depends. Does this have to be "non-contact" or can your add-on be allowed to see the 16*2 drive stream?
On 2015-06-01, gm <notMyMail@mail.not> wrote:
> Hi ! > > I want to read data from one LCD graphics display ( 2x16 ) and send this > data over LAN to one end device.
> Now, the main problem is OCR data processing because this should be > quite fast. The text on the display will stay the same ,most of the > time, but when new message arrives, it should be read and processed > under 5 seconds.
OCR speed is mainly constrained by the number of pixels that need to be interpreted. an LCD alphanumeric display seems ideally suited to OCR, especially if you can extract the individual LCD pixels form the image. .
> Is something like this doable with some raspberry, beaglebone or some > other small computer ?
abslutely. -- umop apisdn
On 2015-06-01, gm <notMyMail@mail.not> wrote:
>> > ------------- > Thank you guys for reply. > Before we ho any deeper with this, can someone of you ( from some > practical example ) confirm that this "reading / data processing " can > be done under 5 seconds ? > > Because, this is the main part and main thing.
I'd expect ballpark 0.5 seconds. -- umop apisdn
On 02.06.2015 10:45, Jasen Betts wrote:
> On 2015-06-01, gm <notMyMail@mail.not> wrote: >> Hi ! >> >> I want to read data from one LCD graphics display ( 2x16 ) and send this >> data over LAN to one end device. > >> Now, the main problem is OCR data processing because this should be >> quite fast. The text on the display will stay the same ,most of the >> time, but when new message arrives, it should be read and processed >> under 5 seconds. > > OCR speed is mainly constrained by the number of pixels that need to be > interpreted. an LCD alphanumeric display seems ideally suited to OCR, > especially if you can extract the individual LCD pixels form the image. > . >> Is something like this doable with some raspberry, beaglebone or some >> other small computer ? > > abslutely. > >
------------------------ LCD will have data in 2 lines and this will look something like: ******************* System ON - 12.30 Typ:S #32 ON ******************* I have to validate this number and status from the second line. That's all. There is one more thing. I need to operate on cca 80 outputs. Should i use multiple port expanders or is there some ready made solution which can boost from standard 16 to 80 pin outputs ?