Hi,
Which solution can someone suggest to detect that a book is open or closed ?
For a specific page ? and better to detect the page opened ?
just a switch, weight measurement ????
I'm a bit new about arduino and sensor...
Sebastien
Hi,
Which solution can someone suggest to detect that a book is open or closed ?
For a specific page ? and better to detect the page opened ?
just a switch, weight measurement ????
I'm a bit new about arduino and sensor...
Sebastien
How do you plan to open the book/turn a page? Manually or using some kind of actuator? Does the book lay on a flat surface?
The most obvious solution I can think of is to use computer vision/ocr to read the page number. See OpenCV download | SourceForge.net. But for that you need a generic computer (may be a small one like the SheevaPlug). That's too heavy task for the Arduino.
Or can you print anything on the pages, like barcode tags? If you can, you could use a PS2 barcode scanner with the Arduino.
yeah, people will turn pages of a book on a table.
First, I wanna test opening with simple sensor(switch, whatever....) and arduino. It looks simple and the good idea...
In a second time, maybe openCv work.
anyway, I will have a PC running, arduino will just send sensor or light some light stuff.
Can you tell us a bit more about the purpose of your project? What are you trying to accomplish? Why do you need to know when people turn pages?
Hi,
The final project is to present books on a table,
people open it and text (of the page...) displays on a screen, words splitting into letters, letters into sparks, maybe also playing sounds and lighting desk lamp.
Anyway I will have a PC running doing the main stuff , i will use arduino for detection if necessary...
Detecting open yes, which page no, not without some really clever vision software I think.
Technically it would be possible to weight both halves of the book, but I think there would be too many variables to make that viable and you'd have to do some seriously good ADC circuit design.
As pekkaa says, tell us more.
Rob
Crossed there.
So you already have some vision stuff happening and a PC. Maybe some OCR on the page image. Bit out of my area though.
Rob
I believe that computer vision/ocr is the easiest way to do it. The only extra hardware you would need is a webcam. Finding/recognizing the page numbers isn't the most complex task you can do with the tools like OpenCV. If the book is always on the same place, it will be even easier. You can easily crop the picture (taken by the webcam) so that it will contain only the page number, and use any OCR software to recognize it. The only problem is that the person who reads the book may block the camera.
With the Arduino + some sensors you can probably detect a page turn, but it would be hard the tell which page is opened. I don't think measuring the weight would work. How the weight distributes between the halves depends on many factors, for example, the stiffness of the book's spine and it will change over time.
The only extra hardware you would need is a webcam. Finding/recognizing the page numbers isn't the most complex task you can do with the tools like OpenCV.
The problem with that is that for proper OCR you need a resolution of 600 dpi and you are unlikely to get that with a web cam.
Are you in control of the book? Something like a bar code to act as a page number might be a better option.
The problem with that is that for proper OCR you need a resolution of 600 dpi and you are unlikely to get that with a web cam.
I don't think that that high resolution is necessary, but it certainly helps to have a good quality webcam, possibly with a zoom (or long enough fixed focal length) so that you don't need to bring the camera too close to the book. Ocr and pattern recognition algorithms in general are quite efficient. It is even possible to recognize faces from a few hundred pixels. Recognizing page numbers is almost a trivial task. There are only ten digits the recognize.
I took this picture using my cell phone. Open source tesseract software was able to recognize the page number without any tweaking of the picture (no cropping or any other post processing) or training of the ocr software.
300 dpi is enough for OCR of printed text that is not too "distorted" (vague isn't it)
at 600 dpi one can discriminate between fonts a bit easier.
What kind of resolution is needed depends on the ocr software you use. And of course on what kind of text (font face/size etc) you are trying to recognize. With some image prosessing and training of the ocr software it is possible to do ocr with much lower resolutons.
I have a 300 dpi scanning of some text I wrote a long time ago and it was published in a magazine.
I have some OCR software provided by Epson when I got a scanner / printer from them. No doubt it is not the best in the world but a lot better than stuff I have had in the past. It has a great deal of difficulty recognising the text and it is full of errors of a 330 dpi scan. If I scan at 600 dpi I get 100% error free recognition.
This is just my experience but I am sure it is not atypical.
Grumpy_Mike:
I have a 300 dpi scanning of some text I wrote a long time ago and it was published in a magazine.I have some OCR software provided by Epson when I got a scanner / printer from them. No doubt it is not the best in the world but a lot better than stuff I have had in the past. It has a great deal of difficulty recognising the text and it is full of errors of a 330 dpi scan. If I scan at 600 dpi I get 100% error free recognition.
This is just my experience but I am sure it is not atypical.
oh, I tried some from epson too! It was AWESOME, nothing less.
Took a page with some graphics and text on, and it scanned everything into a word document, with the graphics as vectors, so I could modify them as I wanted too.
This is a copy of the picture I posted earlier, but the resolution is now reduced down to about 150 dpi (640px/9cm). Tesseract can still recognize the page number correctly without any image post processing, training etc. with the default options. There were some errors in other parts of the text (partly because the language settings didn't support dotted characters like "ä"). Most commercial ocr software probably give better results.
If you train the software for a specific font it's performance would be better. And if normal ocr still doesn't provide good enough results, one can build a specialized solution using more powerful pattern/shape recognition tools like those of OpenCV.
I think that the ocr part wouldn't be hard to tackle at all. Perhaps the most difficult part would be to make sure the the reader won't come between the camera and the page number.