A device and method for reading optical marks are disclosed. The device,
an optical mark reader (OMR) has an array of photo sensors with
light-emitting diodes (LEDs), which are driven by digital-to-analog
converters (DACs), which are in turn controlled by a microcontroller.
When calibrating the OMR, the sensors read a white card, and the
microcontroller adjust the DACs so that the outputs of all sensors are at
a voltage close to the saturation points of the photo-transistors in the
sensors so that the maximum useable ranges of the sensors are utilized.
The sensors then read one or more patterns of known grayscales and their
response voltages are recorded. The microcontroller generates an array of
voltage values as a function of grayscale for each sensor and store the
values in a memory device. When reading an optical marks, the sensor
output voltage in response to a mark is looked up in the table of
voltages values stored in the memory device to determine the grayscale of
the mark. Various algorithms may be employed to calculate an apparent
grayscale to allow the test taker's true intent be ascertained without
requiring the test taker to make a perfect mark.