|
Description  |
|
|
TECHNICAL FIELD
This invention relates generally to optical character readers and, more
particularly, to asynchronouslyoperated optical sensing devices for
transferring graphic, printed, typed, or other character information into
a computer.
BACKGROUND OF THE INVENTION
Systems for electronically scanning data symbols have been developed for
various uses. Such systems, however, are generally limited by constraints
on the character set, the requirement for a uniform scanning speed, or the
awkward mechanical systems used to determine or control the position of
the unit over the scanned optical information.
Most conventional optical character readers are cumbersome devices through
which documents of various sizes are passed, with the documents moving
through a reading zone. The document is carefully aligned and then scanned
synchronously, i.e., at a fixed speed, to convert successive slices of the
optical image on the document into digital form. The output digital data
is computer-processed to identify the characters occupying the scanned
field. In such systems, registration and synchronism between the scanning
system and the document must be precisely controlled. Consequently,
optical character readers typically involve relatively complex
electro-mechanical optical subsystems. Accordingly, they are too expensive
to be used economically in small, e.g., microcomputer, applications, such
as word processing and personal computers.
In many merchandising operations, a bar code is read by an optical scanning
device to provide accounting and inventory information for the
merchandiser. The well defined spacing of the bars, together with their
considerable length, enables hand-held or stationary scanning units to be
used without requiring a uniform scanning speed or precise registration
between the scanning system and the bar code tag.
One method for compensating a seven line bar code reader against the speed
variations inherent in a hand-held scanning unit is shown in IBM Technical
Disclosure Bulletin, Vol. 14, No. 8, pp. 2407-08, January, 1972. The bar
code data are encoded in the six spaces between the seven vertical lines
of a bar code. A unit distance between vertical lines corresponds to a
logic zero, and a two unit distance corresponds to a logic one. The bar
code character set is constrained so that the first space of each code is
always a logic zero. In operation, the reader first measures the time
spent reading the first unit space. Velocity variation is then controlled
by measuring the read time of each subsequent digit and comparing it to
that of the previous digit. If it is substantially equal to the first
space read time, the second space read time is recognized as a logic zero
and is then stored for comparison to the third space read time. If it is
substantially longer than the first space read time, the second space read
time is recognized as a logic one, divided in half, and stored for
comparison to the third space read time. This cycle of reading a space and
updating the reference time is repeated until the bar code is completely
read. Although the IBM system is effective in certain applications, it is
inapplicable when the character set is not constrained by known data at
the beginning of each string. Furthermore, such a system cannot track the
position of the sensor over uniform character data, such as all black or
all white.
One optical text scanning system has recently been proposed as an adjunct
to word processing systems to facilitate input of textual data into the
memory of a computer. Such system is the Omni-Reader marketed by Oberon
International. In the Omni-Reader, a page of text, printed in one of four
standard type faces, is mounted on a scanning platform. A scanning head,
mounted on a specially engineered guide rule, is moved manually over the
text to convert the text into machine-readable form. Such system employs a
single optical sensor and associated circuitry to sense a repeated,
asymmetric pattern of dots and dashes on the guide rule, thereby to detect
movement and scanning direction of the scanning head along the guide rule
and to synchronize data acquisition with movement. Precise alignment of
the text with the guide rule is required for proper operation. The
Omni-Reader is, however, unable reliably to recognize dot matrx,
newsprint, letterhead, graphics, foreign language, and handwritten
materials.
U.S. Pat. No. 3,947,817 to Requa, deceased et al. shows an optical data
reader for point-of-sale terminals which uses a two-dimensional
self-scanned photodiode array in a hand-held scanning unit. The size of
the array is chosen and the device is operated so that an entire character
is scanned at one time. The constrained character set used on the
inventory tags obviates the need to determine the relative spacing of the
characters or to note the presence of blank areas.
U.S. Pat. No. 4,118,687 to McWaters et al. shows a portable optical
character recognition system using a two-dimensional array of optical
sensors. The optical sensors are described in the above Requa, deceased et
al. patent. The disclosure of McWaters et al. is directed to the system's
internal editing and formating functions, such as ignoring spaces in the
text. U.S. Pat. No. 4,072,859 to McWaters discloses a control circuit to
automatically remove power from the recognition circuits of the optical
character recognition system when the hand-held scanner is not being used.
U.S. Pat. No. 3,713,100 to Hemstreet shows an optical character recognition
system which compares the scanned data with a stored set of character data
to identify the character being scanned. U.S. Pat. No. 3,713,099 to
Hemstreet describes the conversion of scanned data into parallel form and
its comparison with symbolic reference data. A comparison yields an analog
output signal indicative of the degree of match.
U.S. Pat. No. 3,496,363 to Rome shows the use of nonparallel arrays of
light-responsive elements in a scanner for tracking the position of a star
in the sky.
None of the foregoing devices is capable of reliable, hand-held operation
to scan unconstrained optical data and input such data into a computer as
they are being scanned.
Accordingly, a need remains for an optical character reader which can
operate manually at irregular speeds and with imperfect alignment,
reliably to scan alphanumeric, graphic, and other optical data of any
kind.
SUMMARY OF THE INVENTION
One object of the present invention is to provide an economical hand-held
scanner for optically sensing a pattern on a surface.
Another object of the present invention is to provide a reliable method and
scanning apparatus for asynchronously scanning unconstrained data
patterns, such as typewritten text.
A further object of the present invention is to provide a hand-held
scanning unit that can be used at irregular speeds and without precise
alignment, yet accurately record optical information from scanned optical
data.
Yet another object of the present invention is to provide an optical
scanning unit for use with an unconstrained set of optical data.
The preferred embodiments of the optical scanning unit of the present
invention operate asynchronously by electro-optically detecting movement
of a scanning unit directly from the data being scanned.
A first preferred method of operation includes projecting plural first
imaging elements along a character-imaging line onto a surface containing
an optical data pattern and projecting at least two second imaging
elements onto the surface alongside the line of first imaging elements. A
user moves the first and second imaging elements across the pattern
laterally in a scanning direction generally normal to the
character-imaging line, and electronic circuitry senses the optical states
of the second imaging elements to detect a change in optical state which
change corresponds to relative movement between the second imaging
elements and the pattern. The occurrence of relative movement in the
scanning direction can be detected by first detecting a pattern in a first
subset of the second imaging elements and then sensing a shift of the
detected pattern to a second subset of such elements toward a trailing end
of the set of the second imaging elements.
In response to detecting a unit increment of movement, electronic circuitry
senses the optical states of the first imaging elements to detect a
portion of the pattern along the character-imaging line. The response to
detection of such relative movement can be directly or instantaneously
triggered, but in this embodiment is preferably triggered indirectly by
calculating an average rate of relative movement and triggering each
sensing of the first imaging elements at periodic intervals corresponding
to the calculated average rate of relative movement. Upon detection of a
uniform optical state of the second imaging elements, such as when
scanning across a blank region in the pattern, sensing of the optical
state of the first imaging elements is triggered at such periodic
intervals so long as said uniform state continues to be detected. The
optical information is thus obtained in a succession of steps and is
assembled by the host computer.
The host computer may use and execute character recognition procedures on
the acquired composite optical information, or merely use such information
in its raw form if it represents graphical or architectural data. The use
of an integral motion detection system obviates the need for a uniform
scanning rate, yet accurately reproduces spacing and distances in two
dimensions directly from the pattern being scanned.
A second preferred method of operation differs from the first preferred
method in that the former uses a rectangular array of imaging elements
arranged in rows and columns and calculates an estimate of the
instantaneous rate relative movement. Each of the rows of imaging elements
is aligned parallel to the scanning direction and changes optical states
in a manner analogous to that of the line of second imaging elements
described above. The second preferred method promotes increased accuracy
during collection of optical information for situations in which the
scanning direction is misaligned from the optical information and the
scanning velocity is nonuniform.
The foregoing objects, features, and advantages of the present invention
will be more readily apparent from the following detailed description of
preferred embodiments thereof which proceeds with reference to the
accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 is a cross-sectional view of a hand-held optical character-reading
device according to the invention, showing the arrangement of the optical
elements of the device.
FIG. 2 is an enlarged plan view of the optical imaging elements in the
first preferred embodiment of the device of FIG. 1, projected onto
exemplary optical data.
FIG. 3 is a plan view of an alternate form of the imaging element array of
FIG. 2.
FIG. 4 is a block diagram of the electronic signal processing circuitry
used in the first preferred embodiment of the device of FIG. 1, together
with interface circuitry for connecting the device to a host computer.
FIG. 5 is a block diagram similar to FIG. 4, showing an alternate form of
optical system and associated electrical circuitry, utilizing a single
photodiode and a plurality of collimated light sources to form the array
of imaging elements.
FIGS. 6A and 6B are flowcharts of operation of the device of FIGS. 1-5
according to the invention.
FIG. 7 is a schematic of the optical imaging elements and associated
multiplexing circuitry of the first preferred embodiment, illustrating
concurrent sensing of optical data by both lines of sensors.
FIG. 8 is an enlarged plan view of the optical imaging elements the second
preferred embodiment of the device of FIG. 1.
FIGS. 9A and 9B show a block diagram of the electronic signal processing
circuitry used in the second preferred embodiment of the device of FIG 1,
together with interface circuitry for connecting the device to a host
computer.
FIGS. 10A and 10B show a detailed block diagram of the motion detection
circuitry shown in FIG. 9A and 9B.
FIG. 11 is a timing diagram showing the timing relationships of certain
signals processed by and developed in the motion detection circuitry of
FIGS. 10A and 10B.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Referring to FIG. 1, the first and second preferred embodiments of the
invention employs a hand-held scanning device or "mouse" 20. This scanning
device is connected by power, clock and serial data lines 22 to processing
circuitry 24 (FIG. 4) on an electronic interface card in a host computer,
such as an IBM PC or other personal microcomputer (not shown). Scanning
device 20 includes a housing for an optical scanning system 26, a pair of
circuit boards 28a, 28b supporting circuit 28 (FIG. 4), and a manually
actuable push button switch or read key 30. The housing is divided into
interlocking upper and lower casing halves 32 and 34, respectively. Upper
casing half 32 is sized and shaped to fit comfortably within a user's
hand, and read key 30 is centered in the top of the casing for convenient
operation by the user's index finger. Lower casing half 34 has a flat
bottom for smoothly interfacing with a flat surface 36, such as a sheet of
paper bearing an optical data pattern. Circuit boards 28a and 28b are
stacked in spaced parallel relationship and mounted in lower casing half
34. The casing has at its front end a narrow nose portion 38 which is
covered by a transparent shell 39, so that the user can view the optical
data along each side of nose portion 38.
The optical system 26 includes within nose portion 38 a vertical channel 40
which extends to an opening 42 in the plane of the bottom wall of lower
casing 34. A pair of white lights 44, 46 are mounted on opposite walls of
channel 40 just above opening 42 for illuminating a pattern on surface 36.
Light from the lamps is reflected from the surface and modulated by the
pattern on the surface. Light reflected upwardly traverses a vertical path
48 to a front-silvered mirror 50 positioned at a 45.degree. angle to
reflect the light rearwardly along line 52 within the casing. The light
passes through an achromatic lens 54 to a second front-silvered mirror 56
positioned anti-parallel to mirror 50 so as to reflect the light upward
along line 58 to a photodiode array 60 of the first embodiment or
photodiode array 202 of the second embodiment.
Referring to FIG. 2, the photodiode array 60 of the first embodiment
includes a character-image line of diodes 62 and a movement sensor line of
diodes 64. The two lines of diodes are preferably oriented at right
angles, with the movement sensor line of diodes 64 centered between the
ends of the character-image line of diodes, to form a T-shaped array. The
lines of diodes are oriented so that the character-image line 62 is normal
to the scanning direction, indicated by arrow 67, and the movement sensor
line 64 extends in the scanning direction from the character-image line.
Alternatively, for two-directional scanning, a "+"-shaped array as shown
in FIG. 3 can be used. Other orientations of the character-image and
movement sensor lines can be used, depending on the application. For ease
of manufacture, a rectangular photodiode array can be employed, with the
unused diodes being masked either in the array output circuitry or in
processing software. A charge-couple device (CCD) may be substituted for
the photodiode array. In the first preferred embodiment, a custom,
T-shaped photodiode is used, eliminating the need to tailor the scanning
pattern by hardware or software.
The photodiode array is sized so that character-image line 62 of
photodiodes fully encompasses the optical data patterns expected to be
scanned by the device. FIG. 2 illustrates a 12 pitch gothic type letter
"A" as viewed through the optical array. Lens 54 and the distances along
lines 48, 52, 58 are dimensioned to provide a 1:1.3 relationship between
the pattern being scanned and the image at the photodiode array.
Accordingly, FIG. 2 is a projection, to scale, of imaging elements defined
by the photodiode array, onto surface 36 over the character A. The
photodiodes and optical system are sized and spaced to provide a
resolution roughly corresponding to that of the human eye. A suitable unit
spacing for the diodes is 0.0055" center to center. Forty diodes are used
in the character-image line, and 16 diodes are used in the movement sensor
line.
Referring to FIG. 4, the photodiode array 65 is symbolically shown using
the conventional diode symbol. For simplicity, only three photodiodes are
shown, with the understanding that they represent the entire 56-diode
array shown in FIG. 2. The outputs of the photodiode array are applied to
the inputs of a multiplexer 70, shown in further detail in FIG. 7. The
multiplexer has two analog outputs, an output line 72 for analog image
data from character sensor line 62 and an output line 74 for analog
movement data from movement sensor line 64.
For use of scanning device 20 to scan typewritten text or other black and
white data patterns, the image and movement sensor outputs are digitized,
by analog-to-digital converters 76, 78, respectively, into binary
quantities, with a logic 0 representing light and a logic 1 representing
dark. The binary image and movement data are input to serial-to-parallel
converters 80, 82, respectively.
As explained hereinafter, operation of the multiplexer and
serial-to-parallel converters is controlled by a clock 84 through clock
lines 86, 87, 88. During each clock cycle on line 86, two diodes in the
photodiode array are scanned, one in the character-image line 62 and one
in the movement sensor line 64, as illustrated in FIG. 7. Two separate
multiplexer sections 70a, 70b are provided, one connected to each line of
photodiodes, for performing this parallel multiplexing function.
The image data serial-to-parallel converter 80 is an 8-bit converter and
movement data converter 82 is a 16-bit converter. The 16 parallel output
lines from converter 82 are connected to a microprocessor 90 which is
programmed, as discussed hereinafter, to detect movement of the optical
data pattern along the line-of-movement sensor photodiodes and to provide
an output signal corresponding to such movement.
The eight output lines from the image data serial-to-parallel converter 80
are applied, under control of a load signal from the microcomputer on line
92 and through gates 94, to the inputs of a temporary random access memory
96. The temporary RAM is sized to accumulate a plural slices of image
data, for example, six slices of 40 bits each. RAM 96 has an 8-bit
parallel output bus connected through an array of gates 98 to the data
inputs of the host computer (not shown).
The interface circuit 24 includes a host computer address bus, which is
connected through a first array of address gates 100 to the temporary RAM
to the microprocessor. A secondary array of address gates 102 is provided
in the address bus between the microprocessor and the temporary RAM. The
microprocessor has an output signal line 104 for transmitting a host
interrupt signal to the host computer. The host computer in turn has a set
of parallel host control signal lines connected to a host control logic
subcircuit 106. The host control logic has, as an output, a host enable
signal line 108, which controls operation of gates 98, 100, 102. The host
enable signal is input to gate 102 through an inverter 110 and an AND gate
112. The AND gate has, as a second input, the movement signal which
appears on signal line 92.
Referring to FIG. 5, an alternative form 128 of the optical system 26 and
associated circuitry reverses the relative positions of the light sources
and sensors. Instead of photodiode sensors, the imaging array 62, 64 can
be formed by an array of light-emitting diodes 165, arranged as in FIGS. 2
or 3. Instead of lamps 44, 46, a phototransistor 144 is used to detect
light emitted by the LEDs and reflected back from surface 36. Interface
circuit 124 is substantially the same as circuit 24 and like parts are
numbered using the same reference numerals as in circuit 24.
Circuit 128, which controls operation of the light-emitting diodes,
includes a counter 130 connected to signal line 86 from clock 84. The
counter provides an output count corresponding to the number of imaging
elements in the array, for example, from 1 to 56. The output count is
transmitted via signal line 132 to a demultiplexer 134, which turns each
successively-numbered light-emitting diode on and off in turn. As each LED
is turned on, it projects light parallel to the path of lines 58, 52, 48
(FIG. 1) onto surface 36, illuminating the point imaged by its
respectively-numbered imaging element in lines 62, 64 (FIG. 2). The clock
signal from clock 84 is also input via line 136 to a second counter 138
which has two output lines, 140, 142. On line 140, the counter provides a
count equal to the number of imaging elements in the image data array
(e.g., 40) to serial-to-parallel converter 80. The count is continued on
output line 142 for the number of imaging elements in line 64 (e.g., 16),
to control serial-to-parallel converter 82. Each increment of the count on
line 140 inputs a bit of data via line 145, which corresponds to the
signal received by phototransistor 144. If the illuminated imaging element
is light, a logic 0 is input into the like numbered location of converter
80, 82. If such imaging element is dark, a logic 1 is input to the
corresponding location in the converters, as controlled by counter 138.
The operation of the circuit of FIG. 5 is otherwise substantially the same
as that of FIG. 4.
With reference to FIG. 4, the clock 84 provides a 2.5 MHz signal that is
divided by sixteen to provide a 156.25 KHz clock to the photodiode array
multiplexer 70. During each clock cycle, two diodes of photodiode array 65
are scanned by the multiplexer, as discussed below with reference to FIG.
7. The entire scanning of the photodiode array takes 42 clock cycles, 40
cycles for the photodiodes themselves, and 2 cycles at the end of the scan
for the capacitors of the charge-coupled array to recharge (in effect, a
vertical retrace period). Thus, each scan of the photodiode array produces
two streams of 42 bits to the two serial-to-parallel converters. The
character-image serial- to-parallel converter 80 receives a string of 40
data bits followed by 2 vertical retrace bits (X) (FIG. 7).
Serial-to-parallel converter 80 masks the 2 retrace bits and provides to
gate 94 a parallel output containing the 40 data bits in five 8-bit bytes.
The 42 bit data string fed to the position detector serial-to-parallel
converter 82 contains, at its beginning, 16 bits corresponding to the 16
motion-detecting photodiodes. Following this string are 24 dummy bits (Y)
(FIG. 7), inserted in the string to compensate for the difference between
the character sensing array of 40 elements and the motion sensing array of
16 elements. Again, the 42 bit data string includes 2 dummy bits at the
end corresponding to the vertical retrace. The output of motion-sensing
serial-to-parallel converter 82 is a single, 16-bit word corresponding to
the 16 motion-sensing photodiodes.
The scanning system is designed to operate at a maximum scanning speed of 4
inches per second. At speeds above this rate, it would be difficult
manually to maintain the scanning mouse over the single line of text. The
resolution of the system is 180 dots per inch. The entire array is scanned
in about 268 microseconds (42 cycles at 156.25 kilohertz) and the rate of
scanning (column rate) is 1.4 milliseconds per column of data (4 inches
per second at 180 columns per inch). Consequently, the system typically
scans the character-sensing photodiodes at least five times before it
senses a change in the state of the motion-sensing diodes due to relative
motion. The repetitive scanning of the same column of data allows the
processor periodically to perform other functions, such as transferring
data to the host computer, without missing relevant motion data.
The microprocessor, a Motorola MC146805E2, has a 1 MHz internal instruction
frequency, which is internally generated from an external 5 MHz crystal.
The microprocessor is programmed, in accordance with the flowcharts
described later, to detect increments of movement as sensed by the
position sensing photodiode array. The microprocessor intermittently
issues a load signal on line 92, at intervals corresponding to the
| | |