Author Options:

cheap & easy way to do optical mark recognition (omr) or crude image scanning / processing? Answered

What's a cheap & easy but reliable way to scan a crude drawing or do omr - optical mark recognition - ie read marks on paper like the forms you fill out with a #2 pencil ? I envision something like a row of 8 lights sensors spaced to match the lines on a 3x5 index card, you feed the card into guides aligning the lines with the sensors. Or get some graph paper & scissors and cut out some 3x5 cards. Perhaps this could be a crude scanner to scan simple drawngs at whatever resolution matches the spacing of the sensors (width of drawing would be limited to # of sensors, the length limited to arduino's memory/storage). You could hand-feed a 3x5 card with a drawing through it, the horizontal resolution would be the spacing of the sensors, maybe have some kind of roller to track the card being fed through so it knows to scan another line. I know there are sensors used by line-following robots, but what about a simple light sensor? Or buying a cheap camera element and hooking that up to a video input and processing the image inside arduino? Or processing input from composite video? Any thoughts?



10 years ago

(I hate to link to my personal site over an Instructable, but I never got around to making one.  Anyway... You might want to take a look at my project that uses IR sensors + Arduino to read dice pips. [link]  It works reliably, but only when the dice are aligned just right and pressed up against the sensor, so you'd need to be very careful how you feed the paper. (Shoot me a private message if you want to look at some ugly Arduino code.)

To feed the paper you could cannibalize a printer, it has everything you need.

If you're using pencil lead here's what I'd try:
Pencil led can conduct electricity, paper not so much.   So I'd make a sensor that uses two piece of metal with a small gap in between, and place one along each column where you expect dots to be so it touches the paper as it passes through.  Read the resistance between the two pieces.  When you get any conductivity between them you know you have a mark.


Answer 10 years ago

Thanks for your reply... This is clever and sounds like it would work, but I would like an optical only design for a couple of reasons.

1) to avoid any mechanical contact, so parts don't wear out, require no maintenance, and are reliable. In this case, after a while the pencil lead rub off onto the metal probes and make the contacts dirty? If it reads a given card enough times, wouldn't the marks on the paper get smeared or worn off?

2) Also I do not want to be limited to pencil lead only, but anything that can make a mark (ie a sharpie, crayon, etc.)

However I'm sure the pencil lead resistance can be used for some similar project where the above is not an issue.