CA1151300A - Character recognition system - Google Patents

Character recognition system

Info

Publication number
CA1151300A
CA1151300A CA000361012A CA361012A CA1151300A CA 1151300 A CA1151300 A CA 1151300A CA 000361012 A CA000361012 A CA 000361012A CA 361012 A CA361012 A CA 361012A CA 1151300 A CA1151300 A CA 1151300A
Authority
CA
Canada
Prior art keywords
character
storing
output
minimum
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000361012A
Other languages
French (fr)
Inventor
Robert B. Nally
George Trohatos
James F. Akister
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NCR Canada Ltd
Original Assignee
NCR Canada Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NCR Canada Ltd filed Critical NCR Canada Ltd
Application granted granted Critical
Publication of CA1151300A publication Critical patent/CA1151300A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
    • G06V30/2253Recognition of characters printed with magnetic ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition

Abstract

CHARACTER RECOGNITION SYSTEM

Abstract of the Disclosure A character recognition system is disclosed in which feature characteristics of an analog waveform representing an unknown character are applied to a plurality of templates each representing a known char-acter and consisting of a number of windows in which the feature characteristics of the known character are to be located. Hardware implemented circuits compare each feature characteristic of the unknown character with each window of the template. If a feature characteristic is found outside the window, the distance between the location of the feature characteristic from the location of the window is found. The sum of the distances for each template is generated and the templates having the two minimum distances are selected and evaluated to determine if a character can be recognized from the value of the two minimum distances.

Description

115~3~)0 CHARACTER RECOGNITION SYSTEM

Cross-reference to Related Applications Magnetic Ink Character Recognition Apparatus, co-pendinq Canadian application Serial No. 361,016, filed on September 25, 1980, invented by Robert B. Nally, James S. Akister and David Hulford, assigned to the ~CR
Canada, Ltd.

Baekground of the Invention The present invention relates to the field of machine reeognition of magnetically imprinted characters on a doeument and more particularly to a method and apparatus for identifying an input waveform representing an unknown character.
In single-gap magnetic character reading systems, a single analog input waveform is obtained by passing the characters to be sensed, normally printed on a document, beneath a magnetic read head at least as wide as the height of the eharaeters and having a single flux gap. The signal generated by the read head is a derivative waveform representing the rate of ehange oE
magnetic flux transversing the head as the eharacters are seanned. Sinee the distribution of ink, and thus flux, assoeiated with eaeh different eharacter is unique, the waveform derived for each different eharaeter unique-ly identifies that eharacter.
To simplify the timing of the waveform analysisproeess, the eharaeters are provided with stylized geometrie features whieh impart antieipatable timing characteristies to the derived waveforms. Thus, in accordanee with this means for reader identifieation, eaeh eharaeter of the E-13B font, for example, is divided into a predetermined number of vertical segments corres-ponding to a location of bar portions of the charaeter.
The E-13B eharacters are designed such that the distri-bution of ink undergoes significant change only at the "
B

11513~0 boundaries between each segment. Elence, peak fluctua-tions in the derived waveform caused by these variations in ink distribution can occur at only predetermined times during the character scanned.
Prior character recognition systems have incorporated circuits for determining the amplitude of each of the peaks of the waveform which uniquely repre-sent the unknown character. These peak amplitudes and their positions are normalized and then correlated with the known peak characteristics of each of the E-13B
characters to identify the character read. An example of this type of recognition system may be found in the Canadian Patent No. 1,115,846 and assigned to the present assignee. Ideally, a recognition system should be able to correctly classify an input waveform as being the character it represents regardless of waveform distortions produced by printing apparitions. In actual practice, it has been found that the characters imprinted on a document may be distorted such that portions of the symbol of the character within the symbol outline are not covered with magnetic ink. Such a distortion may occur due to imperfections of the printing device em-ployed to imprint a character on a document. Also, the pigment of the magnetic ink used by the printing device may not have been uniformly dispersed throughout the character outline. Such poorly defined or misprinted characters produce voltage waveforms that may resemble the waveform of a character other than the character that was intended to be printed, thereby causing a misread. It has also been found that documents become splattered with ink particles during the printing process, which particles cause corresponding spurious signals in the read head. All of these situations have caused mis-read operations in those recognition systems which are based solely on the correlation of peak amplitudes with a character reference standard. It is therefore an object of this invention to provide a magnetic character ,~
,~.

llSl33()0 recognition system which overcomes the above-mentioned problems found in the prior art. It is a further object of this invention to provide a character recognition system which will correlate features of an unknown character with known characters at a relatively high rate of speed. It is a further object of this invention to provide a character recognition system which measures the "degree of risk" associated with classifying a waveform as a certain character.

Summary of the I _ention These and other objects of the invention are fulfilled by providing a system for applying a plurality of templates representing a known character with features representing peak amplitudes extracted from the unknown character waveform for identifying the unknown character. Positive or negative features extracted from the unknown character waveform and their positions are compared to the maximum and minimum values defining a window stored at the same position in each of a plurality of character templates. If each of the features of the unknown character waveform fit between all the maximum and minimum values in any one of the given character templates, the unknown character is the character asso-ciated with that template. If one or more of the input features are outside the limits set in all of the tem-plates, the distance between the feature and the corres-ponding maximum and minimum values of the window in the template is summed. After all the templates have been correlated with the features of the unknown character, the two minimum values found in the correlation process are then selected and evaluated to determine if a refer-ence character can be selected given the features gen-erated by the read head. If it is found that the dif-ference between the two minimum values is sufficiently large, the reference character corresponding to the minimum value found in the correlation process is then 1~S13QO

selected as the character corresponding to the unknown character. The minimum value of the selected reference character is then compared with a second threshold value to insure that the magnitude of the generated data is sufficient to adequately recognize the character. The invention is further directed to a character recognition system wherein feature characteristics of an analog waveform representing an unknown character are compared with the feature characteristics of a plurality of known characters, an apparatus for recognizing the unknown character, comprising first means for storing the feature characteristics of an unknown character and the feature characteristics of a plurality of known characters, first comparison means coupled to said first storing means for comparing the location of each feature char-acteristic of the unknown character with the location of the feature characteristics of the known characters to produce a first signal representing the difference therebetween, means coupled to said first comparison means for accumulating the first signals for each known character, second comparison means for comparing the accumulated differences of each of the known characters to provide a plurality of second signals representing two minimum differences, second means for storing said second signals, third means for storing the known char-acters associated with said second signals, and proces-sing means coupled to said second and third storing means for applying a plurality of threshold values to the difference between said second signals to enable said processing means to identify the unknown character in accordance with the second signal having the minimum difference.
The foregoing and various other objects, advantages, and meritorious features of the present invention will be apparent from the following detailed description and appended claims when read in conjunction with the drawing, wherein like numerals identify corres-ponding elements.

~_?
~, llS~3QO
-4a-Brief Description of the Drawings Fig. 1 shows a system block diagram of the invention;
Fig. 2 is a schematic diagram of a template representing the character 0 showing the location of the windows with respect to an unknown character waveform in which are located the features of the unknown char-acter corresponding to the peak positions of the unknown character waveform.
Figs. 3A and 3B taken together disclose a block diagram of the template matching unit of the recognition system.
Figs. 4A-4G inclusive taken together disclose a portion of the logic circuits for establishing the values of the templates in accordance with the features of the unknown character waveform;
Fig. 5 is a diagram showing the manner in which Figs. 4A-4G inclusive are arranged with respect to each other to form the logic circuits;
Figs. 6A-6C inclusive taken together disclose another portion of the logic circuits for matching the windows of the templates with the features of the un-known character waveform;
Fig. 7 is a diagram showing the manner in which Figs. 6A-6C inclusive are arranged with respect to each other to form the logic circuits;

r~.

~1513QO

Figs. 8A-8D inclusive taken together further disclose a portion of the logic circuits for comparing the minimum distances;
Fig. 9 is a diagram showing the manner in which Figs. 8A-~D inclusive are arranged with respect to each other to form the logic circuits;
Fig. 10 discloses a logic circuit of the clock generator used in the template matching logic circuits;
Fig. 11 discloses a logic circuit for the output buffer used in the template matching logic cir-cuits;
Fig. 12 discloses an output buffer which outputs the two minimum values for each template;
Fig. 13 discloses logic circuits for selecting the data outputted by the template matching logic cir-cuits;
Fig. 14 discloses a logic circuit for gen-erating the clock signals used in transferring the minimum values into the character recognition processor;
Figs. 15A and 15B inclusive taken together disclose a flowchart of the operation of the template matching operation;
Figs. 16A and 16B inclusive taken together disclose a flowchart of the character recognition opera-tion in which thresholds are applied to the minimum distances.

Description of the Preferred Embodiment Referring now to Fig. 1, there is shown a block diagram of the character recognition system which 3~ includes a single-gap magnetic read head 20 positioned adjacent the path of movement of a document having characters printed thereon in magnetic ink. While the preferred characters in the present embodiment are printed in the form of the E-13B character font which is well known in the art and has been adapted by the American Bankers Association for use with banking checks in this country, it is obvious that the recogni-`` 1151;~0 tion system of the present invention can be used withany character font which results in a unique analog waveform when scanned by the read head 20. As a document moves past the read head 20 in the direction indicated by the arrow in Fig. 1, the read head will generate an ana-log electrical signal corresponding to the time deriva~
tive of the change in flux of the magnetized ink. The waveform is amplified by and transmitted from an ampli-fier 22 through an analog ~ilter 24 for filtering out noise to an Analog/Digital (A/D) converter 26 which digitizes the analog signal and outputs a plurality of binary data each representing a sample of the analog waveform to a character start circuit 28 used in gen-erating a threshold for determining the actual start of the waveform. The character start circuit 28 will output data to a processor 30 which establishes the start of the actual waveform using the data received from the character start circuit 28. The processor 30 will smooth out the number of samples outputted by the A/D converter 26 and extract from the reduced number of samples those samples having the maximum amplitude. The extracted samples representing the peak amplitudes which will hereinafter be referred to as features of the unknown character waveform are normalized and outputted to a template matching unit 32. The template matching unit will correlate a plurality of templates each repre-senting a known character to the features outputted by the processor so as to classify the unknown character as one of the known characters in accordance with the matching of the corresponding template. The template matching unit 32 will also output data representing the distances between the features of the unknown character waveform and the windows of the templates where the feature is found to be outside the window of a template.
This data is transmitted to a character recognition processor 34 which applies a plurality of thresholds to the distances outputted by the template matching unit 32 to recognize the unknown character. For a full dis-closure of the character start circuits 28 and the operation of the processor 30, reference should be made to the previously-cited co-pending patent application Serial No. 361,016 of Nally et al.
Referring to Fig. 2, there is shown a sche-matic diagram of the windows and their positions that comprise a template for the character 0. As fully disclosed in the previously-cited Nally et al. co-pend-ing application Serial No. 361,016, the processor 30 (Fig. 1~ will output fourteen normalized peak amplitudes and their associated positions representing the unknown character. As shown in Fig. 2, each normalized feature of the unknown character waveform shown in dotted line 36 comprises the peak voltage amplitudes 38 of each of the peaks in the waveform 36. Each template of a known character comprises a series of positive windows 40 and negative windows 42. There can be a maximum of seven positive windows and seven negative windows for each template. As shown in Fig. 2, the first negative window 42 of the template is offset to the first positive window 40, thereby enabling the unknown character wave-form to have eight features for use in identifying the unknown character. The templates for the characters to be recognized are essentially a set of "tolerance bands"
to which the fourteen voltage amplitudes and their positions are compared to determine if a perfect match exists. As shown in Fig. 2, the peaks 38 fit exactly into the limits allowed in the 0 template and hence the waveform is classified as 0 in this case. Each template is distinct from any of the other templates. Thus, if the waveform 36 exactly matches one template, it cannot match exactly any other template. In actual experience, many of the peaks 44 and 46 (Fig. 2) will fall outside the allowed template limits. As will be described more fully hereinafter, the template matching unit 32 (Fig. 1) when matching the feature points 44 and 46 with the cor-responding positive and negative windows 40 and 42respectively, will establish distances dl and d2 (Fig.
2) separating the feature points Erom its associated window. For each template, the template matching unit 32 (Fig. 1) adds all the distances dl and d2 for each window in each template and selects the two minimum distance values DMl and DM2. The processor 34 (Fig- 1) will apply control thresholds to each of the two minimum distances to select the character in accordance with the template having the lowest distance value.
Referring now to Figs. 3A and 3B, there is shown a block diagram of the template matching unit 32 (Fig. 1) and to Figs. 15A and 15B inclusive which dis-closes a flowchart of the operation of the template matching unit. As fully disclosed in the previously-cited co-pending application Serial No. 361,016 of Nally et al., the processor 30 (Fig. 1) will have stored 28 bytes of binary data comprising 14 maximum voltage amp-litudes representing the peaks in each of seven positive and seven negative windows and 14 bytes of data repre-senting the position of each of the peaks. Upon comple-tion of processing the samples outputted by the A/D con-verter 26, the processor 30 will output the signal DATAREADY (block 52) (Fig. 15A) over line 52 (Fig. 3A) to the input control logic 54. The control logic 54 in re-sponse to receiving the signal DATAREADY will enable an output buffer 56 (Fig. 3B) and a RAM 58 to receive the 28 bytes of data (block 60) which are transmitted over the bus 62 from the processor 30. The data transmitted over the bus 62 is coupled to a two's complement circuit 64 which will convert all the negative bytes of data to positive bytes, the bytes then being transmitted to the RAM 58 for storage therein. The fourteen bytes repre-senting the peaks are stored in one portion of the RAM
58 while the fourteen bytes representing the positions of the peaks are stored in a second portion of the RAM
58. Upon completion of the storage of the data in the 115~3~)0 RAM 58, the control logic 54 will initiate a counter 66 (Fig. 3A) which outputs a count to the buffer RAM 58, enabling the RAM 58 to output the fourteen bytes (block 68) representing the positions of the maximum voltage amplitudes to a PROM 70 in which is stored the minimum and maximum voltage values of each window of a plurality of templates representing known reference characters.
In the present embodiment, the PROM 70 has stored therein 32 templates, each of which comprises seven positive minimum and maximum values and seven negative minimum and maximum values representing seven positive windows 40 (Fig. 2) and seven negative windows 42 respectively.
Each byte representing the position of a maximum ampli-tude stored in the buffer ~AM 58 is used as an address for the PROM 70 wherein the minimum and maximum values of each window of each template are outputted over bus 72 to a comparator circuit 74 which also receives over bus 76 the maximum amplitude whose position was used as the address for the PROM 70.
The comparator circuit 74 will initiate a comparison operation (block 69) (Fig. 15A) upon re-ceiving each maximum amplitude (block 78) associated with one of the windows 40 and 42 (Fig. 2) stored in the buffer RAM 58 together with the minimum and maximum values (block 80) stored in the PROM 70 corresponding to the same window in one of the templates. The circuit 74 will compare the values (block 82) to determine if the peak is less than the maximum value and greater than the minimum value indicating that the peak is located within the window. If it is, the control logic 54 will increment the counter 66 whose output count transmit-ted over bus 84 to the RAM 58 results in the byte rep-resenting the position of the next peak being outputted over bus 86 to the PROM 70 for enabling the maximum values of the next window to be outputted over bus 72 to the comparator circuit 74 for locating the maximum amplitude point with respect to the next window. This 115~3~0 operation will continue until all fourteen windows of a template have been compared (block 71) with the samples stored in the RAM 58, at which time a second counter 88 is incremented by one. The output count of the counter 88 is transmitted over bus 90 to the PROM 70 enabling the PROM to output the maximum and minimum values asso-ciated with the windows of the next template in response to receiving the position of the peaks from the RAM 58.
If in comparing (block 82) (Fig. 15A) the maximum amplitude with the maximum values representing the limits of the windows, it is found that the maximum amplitude is outside the window, the total of the dis-tances dl and d2 (Fig. 2) is then established by trans-mitting the data to a two's complement and accumulator circuit 92 (Fig. 3A) wherein the negative values of the distances are enabled to be added (block 94) to the positive values with the result D representing the total distances between the peaks and the windows being stored (block 96) in the accumulator circuit 92.
Upon completion of comparing the values stored in the RAM 58 with the template data stored in the PROM
70 representing the reference character, the accumulated distance stored in the accumulator circuit 92 is trans-ferred to a minimum distance comparator and latch cir-25 cuit 98 which will compare (block 100) (Fig. 15B) the accumulated distance of each reference character with the previous accumulated distances stored in the latch portion of the circuit 98 to establish the two templates having the two lowest or minimum accumulated distances DMl and DM2. The comparator circuit 98 will first com-pare the first minimum distance (DMl) with the second minimum distance (DM2) (block 102) (Fig. 15B). If the first minimum distance is equal to or greater than the second minimum distance, the first minimum distance is then compared with the accumulated distance being pre-sently inputted into the comparator circuit 98 (block 104) to determine the minimum distance between the two inputted values. If the first minimum distance is greater than the presently-inputted distance, the in-putted distance D is then stored (block 106) in the latch portion of the circuit 98 becoming the first pre-vious minimum distance. If the second previous minimum distance (DM2) is greater than the first previous minimum distance (DMl) the comparator circuit 98 will compare the second previous minimum distance (DM2) with the in-putted accumulated distance (block 108) and if it is greater than the inputted distance, the inputted dis-tance D is then stored (block 110) in the latch portionof the circuit 98. During the operation of the com-parator and latch circuit 98, signals are transmitted to a control logic unit 112 (Fig. 3A) which will store in a template number latch circuit 114 the template numbers corresponding to the two minimum distances stored in the comparator circuit 98. This data is then stored (block 114) in a FIFO storage unit tnot shown) located in the output buffer circuits 56 (Fig. 3B) and the output count of the counter 88 is then checked (block 116) (Fig. 15A) to see if all templates have been compared with the data stored in the RAM 58. If the comparison operation is completed (block 121), a signal is transmitted over line 118 from the counter 88 to the output buffer con-trol circuits 56 enabling the FIFO storage unit located in the output buffer circuits 56 to store the template numbers having the two minimum accumulated distances to-gether with the distances stored in the latch 114 and comparator 98. The output control circuits 56 will gen-erate the output ready signal OTRD to the processor 34 (Fig. 3B) which will raise the shift signal OTSF enab-ling the two minimum distances together with the tem-plate numbers to be outputted (block 121) (Fig. 15B) over bus 120 to the processor 34 (Fig. 3B) wherein the processor will apply a plurality of threshold voltage values to the minimum distances to determine if the values of the minimum distances are capable of estab-lishing a valid reference character in a manner that will be described more fully hereinafter.

Referring now to Figs. 4A-4G inclusive, there is shown a portion of the block diagram of Fig. 6 of the template matching unit 32 (Fig. 1) in which the features of the unknown character are located with respect to the windows of the templates. As shown in Fig. 4C, the processor 30 (Fig. 1) will raise a data ready signal DRDY over line 52 to the D input of an LS74 flip-flop 120 whose clock input is connected over line 122 to a clock generator (Fig. 10) which outputs a plurality of clock signals including the signal CLCK. As shown in Fig. 10, the clock generator generally referred to by the numeral 124 comprises an LS175 quad flip-flop 126 which outputs a plurality of clock signals C01-C04 and ~ C~4 inclusive in response to receiving a clock signal CLOCK (Fig. 3A) outputted from a 4 MHz. oscillator (not shown), which clock signal is coupled with an ex-ternal clock signal (EXTCLK) through an AND gate 128 whose output clock signal CLCK is transmitted over line 122 to the flip-flop 126 and the flip-flop 120 (Fig.
4C). Upon the raising of the input signal DRDY, the Q
output of the flip-flop 120 will transmit a high signal to the D input of an LS74 flip-flop 130 resulting in the appearance of a high signal WRFF at its Q output and a low signal WR appearing on its Q output. The signal WR
25 is transmitted over line 133 to an inverter 132 and appears as the high signal data required (DTRQ) which is transmitted over line 134 to the processor 30 enabling the processor to output the 28 bytes of data represent-ing the 14 maximum amplitudes or peaks and 14 bytes corresponding to their positions in the waveform 36 (Fig. 2). The LS74 flip-flops 120, the LS175 flip-flop and the other logic elements disclosed in the present application are commercially available from the Texas Instruments Corporation of Dallas, Texas.
As shown in Fig. 4A, each byte of data out-putted from the processor 30 (Fig. 1) is transmitted over eight transmission lines 135a-135h inclusive, in ~151300 which the binary bit appearing on line 135h character-izes the seven bits of data as being positive when low and negative when high. As previously described, seven bytes of the data transmitted from the processor 30 and representing the maximum amplitudes of the samples ap-pearing in the windows 42 (Fig. 2) will be negative, while the remaining seven amplitudes will be positive.
In order to logically add the voltage amplitudes, the negative amplitudes have to be converted into positive amplitudes. This is accomplished by coupling the input lines 135a-135g inclusive to a pair of LS04 inverters 136 and 138 whose output is coupled to a pair of 4-bit LS283 adders 140 and 142 which comprise the two's com-plement circuit. Each negative bit inputted into the 15 inverters 136 and 138 is added to a carry appearing at the carry input 144 of the adder 140 enabling the adders 140 and 142 to output the positive values representing the negative amplitudes being inputted over lines 135a-135g. The output lines of the adders 140 and 142 and generally indicated by the numeral 146 are inputted to the B input of a pair of LS158 multiplexers which also receive at their A input the lines 135a-135g inclusive over which appear the positive amplitude data bits. As each byte of data representing the peak amplitudes is 25 transmitted over lines 135a-135g inclusive, the data bit appearing on line 135h is transmitted to the multiplex-ers 148 and 150 selecting the inputs A or B depending on whether the byte of data is positive or negative. Each byte of data is outputted from the multiplexers 148 and 150 over their output lines generally indicated by the numeral 152 to a RAM generally indicated by the numeral 58 (Figs. 4A and 4C) comprising a plurality of S189 RAM
units 154, 156 (Fig. 4A) and 158 and 160 (Fig. 4C). The RAM 58 will store all 28 bytes of data transmitted from 35 the processor 30. The RAM units 154 and 156 (Fig. 4A) will store the 14 bytes representing the positions of the maximum amplitude samples while the RAM units 158 ~151300 ~14-and 160 (Fig. 4C) will store the 14 positive values representing the maximum amplitudes of the unknown character waveform.
As described previously, upon the raising of the signal DRDY (Fig. 4C) by the processor 30 (Fig. 1), the flip-flop 130 will output the high signal ~RFF over line 131 to one input of a NOR gate 164 (Fig. 4C) which receives a low signal from a NAND gate 166 due to an input compare enable signal CMPENB being low at this time. The NOR gate 164 will output a low signal to a LS161 counter 168 which will count the number of bytes being transmitted over lines 135a-135h inclusive for correlation with a window. The output count of the counter 168 controls the operation of a pair of LS74 15 flip-flops 170 (Fig. 4C) and 172 (Fig. 4E) enabling the RAM units 154 and 156 to store the first fourteen bytes of data being transmitted over lines 135a-135h inclusive representing the positions of the maximum voltage amp-litudes in a manner that will now be described.
The RAM units 154 and 156 are enabled by the signal CSl while the RAM units 158 and 160 (Fig. 4C) are enabled by the signal CS2. As shown in Fig. 4E, both the signals CSl and CS2 are controlled by the state of the flip-flop 172. During the time the output count of the counter 168 is counting through the first fourteen counts, the binary bits appearing on the output lines 174a-174c inclusive will enable an AND gate 176 to output a low signal to the D input of the flip-flop 170 resulting in the Q output signal CN14 being low. This signal is transmitted over line 178 to the clock input of the flip-flop 172 (Fig. 4E) resulting in a low signal appearing at the Q output of the flip-flop. This signal is transmitted to the AND gate 180 on whose other input appears the low signal CMP. This condition will enable the AND gate 180 to output the low signal CSl to the RAM
units 154 and 156 (Fig. 4A) enabling the RAM units to store the first fourteen bytes of data representing the 1~513~0 position of the maximum amplitude. Upon the output count of the counter 168 reaching the count of fourteen, a high signal will appear on each of the output lines 174a-174c enabling the AND gate 176 to output a high signal to the D input of the flip-flop 170 enabling the Q output signal CN14 to go high, while the Q output signal CN14 will go low. The raising of the signal CN14 over line 178 will clock the flip-flop 172 enabling the Q output signal to go high while the Q output signals go low, the latter signal enabling an AND gate 182 to output the low signal CS2 which signal is transmitted over line 184 to the RAM units 158 and 160 enabling the RAM units to store the data appearing on the output lines 152. At this time, the output signal CSl will go 15 high, thereby disabling the R~M units 154 and 156 from accepting any more data for storage appearing on the input lines 152.
The raising of the signal CN14 upon the output count of the counter 168 reaching 14, over line 178 to 20 the NOR gate 186 (Fig. 4C) enables the NOR gate 186 to output a low reset signal RSN14 over line 188 to the reset input of the counter 168 resetting the counter.
At this time the counter 168 will output counts over lines 174a-174d inclusive to the RAM units 154-160 inclusive enabling the bytes of data appearing on the input lines 152 to be loaded into the RAM units 158 and 150 in a manner that is well-known in the art. Upon completion of the second fourteen counts by the counter 168, the 28 bytes of data will be stored in the RAM
30 units 154-160 (Figs. 4A and 4C inclusive).
As described previously, upon the raising of the data ready signal DRDY over line 52 (Fig. 4C), which occurs each time the processor 30 (Fig. 1) has processed one character, the Q output of the flip-flop 130 will go high, which signal WRFF enables the NOR gate 164 to go low, thereby incrementing the counter by one. Since the flip-flop 130 is now latched due to the signal DRDY

being hiyh during the time the data is transmitted from the processor to the RAM buffers 58, the signal WRFF
will cycle in response to the generation of the clock signal C~4 which appears at the clock input of the flip-flop 130. For this arrangement, the counter 168 will be incremented to count up to 14, enabling the first 14 bytes representing the positions of the maximum ampli-tudes to be loaded into the RAM units 154 and 156 in the manner described previously. The counter 168 is reset by the generation of the signal CN14 to initiate the second fourteen count operation at the end of which the signal CN14 is again raised. The high signal CN14 is transmitted over line 178 to the clock input of the flip-flop 172 (Fig. 4E) resulting in a high signal appear-ing at the Q output, which signal is transmitted overline 192 to the clock input of a LS74 flip-flop 194 (Fig. 4E). The clocking of the flip-flop 194 results in the appearance of the high compare enable signal CMPENB
on the Q output line 196 and the low signal CMP appearing on the Q output line 198 (Figs. 4E and 4F). The low signal CMP is transmitted over line 198 to one input of the AND gate 200 (Fig. 4C) whose other input signal RST
is high at this time, thereby enabling the AND gate 200 to output a low signal to the reset input of the flip-flop 120 thereby resetting the flip-flop and stopping the input operation of the counter 168. In addition, the signal CMP is transmitted over line 198 to the inputs of the AND gates 180 and 182 (Fig. 4E) resulting in both the output signals CSl and CS2 going low, which signals are transmitted to the RAM units 154-160 (Figs.
4A and 4C) over lines 181 and 184 enabling data to be outputted from the RAM unit. As described previously, the data bytes representing the positions of the maximum amplitudes are used as addresses for input to a PROM
unit 70 (Fig. 3) which stores the template data com-prising the maximum and minimum values which are to be compared with the amplitude values for correlation therewith.

115~3~)0 The resetting of the flip-flop 120 (Fig. 4C) stops the operation of the inputting of the data from the processor until the signal DRDY goes high, which occurs when the processor 30 has processed a new char-acter waveform. The resetting of the flip-flop 120 results in the resetting of the flip-flop 130 resulting in the Q output signal WRFF going low. As described previously, the signal WRFF is transmitted over line 131 to one input of the NOR gate 164 (Fig. 4C) whose other input is coupled to the output of the NAND gate 166 on whose input appears the compare enable signal CMPENB
which at this time is high as a result of the clocking of the flip-flop 194 (Fig. 4E) by the high signal ap-pearing on line 192. Upon the application of the high signal CMPENB to the AND gate 166, a high signal will occur on its output upon the clock signal C~l going high which signal is transmitted to the NOR gate 164 result-ing in the outputting of a low signal to the counter 168 incrementing the counter by 1. It will be seen that every time the clock signal C~l goes high, the counter 168 will be incremented by one, which output count is transmitted over lines 174a-174d inclusive to the RAM
units 154-160 inclusive (Figs. 4A and 4C). Upon the occurrence of each count on the output lines 174a-174d inclusive, six bits of data representing the position of a maximum amplitude will appear on the output lines 202a-202f inclusive of the RAM units 154 and 156 (Figs.
4A and 4B) while eight bits of data will appear on the output lines 204a-204h inclusive (Figs. 4C and 4D) of 30 the RAM units 158 and 160 representing the corresponding maximum amplitude. The data bit appearing on line 204h represents the sign of the amplitude values. Thus, if the peak amplitude value was positive, the signal PSNG
will be low, while if the amplitude value was negative, the output signal PSNG of the inverter 161 (Fig. 4D) will be low. As shown in Figs. 4B, 4D, 4F and 4G, the PROM 70 (Fig. 3) containing the template data consists 11513~0 of eight #2758 PROM units 206-220 inclusive. As shown, the PROM units 206, 208, 214, and 216 contain the minimum and maximum values associated with the positive windows 40 (Fig. 2) while the PROM units 210, 212, 218 and 220 store the minimum/maximum values associated with the negative windows 42 (Fig. 2). The six binary bits appearing on lines 202a-202f inclusive (Fig. 4D) will appear at the inputs of each of the PROM units 206-220 inclusive. The particular template is selected by a four bit count appearing on the output lines 220a-220d inclusive (Fig. 4F) of a counter 222 which is incremented by the raising of the signal CN14 over line 178 which occurs upon the counter 168 reaching the count of 14 in the manner described previously. The counter 222 is coupled to a second LS161 counter 224 (Fig. 4G) which outputs over line 226 a PROM enable signal SELA and the PROM enable signal SELB over line 228 and transmitted through an inverter 230. As shown in Figs. 4B, 4D, 4F
and 4G, one of the PROMS will be selected by the signals SELA, SELB, PSNG, and PSNG together with the output count of the counter 222 appearing on lines 220a-220b inclusive to output over the output lines 232a-232g inclusive (Fig. 4B) the minimum value of the window. In a similar manner, the maximum value will appear on the output lines 234a-234b inclusive (Figs. 4D and 4F) for transmission to the comparator circuits 74 (Fig. 3) as will be described more fully hereinafter.
Upon the counters 222 (Fig. 4F) and 224 (Fig.
4G) reaching a count equal to the last template, the signal RDEND appearing on the output line 236 will be transmitted to one input of the NOR gate 186 (Fig. 4C) and also to an EXCLUSIVE OR gate 238 (Fig. 4G) which outputs a ready signal OTRD over line 240 signalling the comparator circuits 74 (Fig. 3) that data representing the maximum and minimum values are present for trans-mission to the comparator circuits. The transmission of the signal RDEND to the NOR gate 186 (Fig. 4C) enables 11513~0 the NOR gate to output a low reset signal RSM14 over line 188 for resetting the counter 168. The processor 30 will output a low reset signal STRS (Fig. 4E) which signal is coupled to an AND gate 241 which also receives a reset signal RESET which is transmitted from the comparator circuits to reset the inputs FIFO in a manner to be described more fully hereinafter. The NAND gate 241 will output the reset signals RST over line 239 and FFRES outputted from the inverter 243 which signals are used to reset the logic circuits in a manner that is well-known in the art.
Referring now to Figs. 6A-6C inclusive, there is shown the logic circuits for comparing the maximum and minimum values of each template with the peak ampli-tudes of the unknown character waveform and for accum-ulating the distances between the peak amplitudes and the maximum and minimum values of the templates. As shown in Fig. 6A, the data bits representing the peak amplitude outputted over lines 204a-204g of the RAM
units 158 and 160 (Fig. 4C) are inputted into the A
inputs of a plurality of comparators 242-248 inclusive.
The minimum values of each window corresponding to the position of the peak amplitude as represented by data bits appearing over lines 232a-232g from the PROMS 206-220 inclusive (Fig. 4B) are inputted into the B in inputs of the comparators 242 and 244 while the data bits rep-resenting the maximum value of the window are outputted over lines 234a-234g of the PROMS 206-220 inclusive (Figs. 4D and 4F) to the B a inputs of the comparators 30 246 and 248 enabling the comparators to locate the peak amplitude with respect to the window represented by the maximum and minimum values. It will be seen that there are three conditions which can occur as a result of this comparison operation. If the peak amplitude inputted at the A inputs is greater than the minimum values and is also less than the maximum values, the peak amplitude is located within the window and no distance accumula-~5I300 tion is necessary. If the peak amplitude is less than the minimum values, the peak amplitude is required to be subtracted from the minimum values to arrive at the distance d2 (Fig. 2) while if the peak amplitude is greater than the maximum value, the maximum value has to be subtracted from the peak amplitude to arrive at the distance dl (Fig. 2). As the distances dl and d2 are generated, they are accumulated as each window is com-pared with a peak amplitude such that after fourteen comparison operations representing the template of a known reference character, the value stored in the accumulator represents the total distance for that template.
Upon the inputting of the values into the comparator 242-248 inclusive, if the peak amplitude is greater than the minimum value of the window, a high signal will appear on line 250 from the comparator 244, which signal is transmitted to one input of an EXCLUSIVE
OR gate 252. If the peak amplitude is less than the maximum value of the window, a high signal will appear on line 254 of comparator 248, which signal is trans-mitted to the other input of the EXCLUSIVE OR gate 252 enabling the gate to output the low signal NEQ over line 256 to the D input of an LS74 flip-flop 258. A low signal appearing at the D input of the flip-flop 258 will result in the Q output signal clock accumulator (CLADD) which signal is transmitted over line 260 to a latch 262 (Fig. 6C) and disabling the latch from latching the value representing the distances generated from a logic circuit which will now be described.
If the peak amplitude value is greater than the maximum value of the window, a high signal will appear on line 264, which signal is transmitted to a number of circuits which will generate the distances d and d2 (Fig. 2~ in a manner that will now be described.
As shown in Fig. 6B, the peak amplitude values are transmitted over lines 204a-204g to the A inputs of a llS13~0 pair of LS158 multiplexers 266 and 268 on whose output lines 270a-270g inclusive will appear the inverted val-ues of the selected input values. The multiplexers 266 and 268 also receive the maximum values of the window over lines 234a-234g inclusive at its B inputs. The max output lines 270a-270g inclusive of the multiplexers 266 and 268 are inputted into the A inputs of a pair of LS283 adders 272 and 274. The value appearing on the lines 270a-270g inclusive represents the distance between the maximum value being inputted at the B ax inputs of the multiplexer and the peak amplitude values appearing at the A inputs of the multiplexers 266 and 268 which have a negative sign. By inverting the negative value and inputting the value into the adders 272 and 274, the adders 272 and 274 will perform a twos complement opera-tion by adding one to the value of a high carry signal appearing over line 276.
The peak amplitude values appearing on lines 20ga-204g inclusive are inputted into a pair of LS157 multiplexers 278 and 280 which also receives at its A
input the minimum values of the window transmitted over lines 232a-232g. The output lines 282a-282g inclusive are inputted into the B input of the adders 272 and 274.
If a high signal appears on line 264 (Figs. 6A
and 6B) indicating that the value of the peak amplitude (A) is greater than the maximum value (BmaX) of the window, the signal will be transmitted to the control input of the multiplexers 266-280 inclusive (Fig. 6B) enabling the multiplexers 266 and 268 to output a value representing the inverted maximum value (l/B ax) over lines 270a-270g inclusive to the A input of the adders 272 and 274. The high signal being transmitted over line 264 will enable the value of the peak amplitudes to be outputted over the output lines 282a-282g inclusive of the multiplexers 278 and 280 into the B input of the adders 272 and 274. The adders 272 and 274 will sub-tract the maximum value from the peak amplitudes by 11513~0 performing a two's complement on the inverted value (l/Bmax) using the carry siqnal appearing on line 276 and adding the resulting value to the value of the peak amplitude. This value, representing the distance dl (Fig. 2), is outputted over lines 284a~284g inclusive to a pair of LS283 adders 286 and 288 whose output lines 290a-290g inclusive are coupled to an LS273 latch 262 (Fig. 6C). The output lines 292a-292g of the latch 262 are coupled to the A inputs of the adders 286 and 288 and also to an LS374 flip-flop 294 or storing the output of the latch 262.
If the peak amplitude (A) is less than the minimum value (Bmin) of the window, the signal appearing on line 264 will be low, enabling the adders 272 and 274 to subtract the value of the peak amplitude appearing on lines 270a-270g inclusive from the minimum value appear-ing on the output lines 282a-282g of the multiplexers 278 and 280. The value of the distance being outputted over the lines 284a-284g of the adders 272 and 274 are added to the output of the latch 262 and the adders 286 and 288, which value is then outputted over lines 290a-290g inclusive to the latch 262. As each peak amplitude is compared with the minimim/maximum values representing the windows of the template, the distances will be added in adders 286 and 288 and will appear on the output of the latch 262 for transmission over lines 292a-292g inclusive to the flip-flop 294 for storage therein. At the completion of comparing all fourteen values of the peak amplitudes with the windows of the template, the counter 168 (Fig. 4C) will enable the flip-flop 170 to output the clock signal CN14 over line 178 to the flip-flop 294 (Fig. 6C) enabling the flip-flop to store the output value appearing on the output lines 292a-292g inclusive of the latch 262 representing the total ac-cumulated distances for the template. The flip-flop 294 is reset by the generation of the signal CMP which goes low at the end of the counter 168 reaching a count of 28 in a manner described previously. The signal CMP is transmitted over line 198 into a NOR gate 296 which also receives over its input line 298 a reset signal generated upon the occurrence of the signal CN14 going high which clocks a flip-flop 300 on whose D input appears the compare enable signal C~PENB. The clocking of the flip-flop 300 will output the high signal CLMN over its Q
output line 302 which is inputted into a second flip-flop 304 whose Q output will reset a flip-flop 306 enabling a high signal to occur over line 298 upon the rising of the latch clock signal CLADD appearing over line 260. The latch 262 is reset upon the generation of the reset signal RSN14 appearing on the output line 188 of the NOR gate 186 (Fig. 4C) in the manner described previously.
The accumulated distance of the peaks for each template stored in the flip-flop 294 (Fig. 6C) will result in the value appearing on the output lines 308a-308h inclusive, which lines are coupled to the inputs of a pair of LS273 flip-flops 310 (Fig. 8A) and 312 (Fig.
8B). Upon the inputting of the first distance over lines 308a-308h inclusive, the output of the flip-flops 310 and 312 will have high signals appearing on its output lines 314a-314h inclusive and 316a-316h inclusive respectively. These signals are inputted into a plural-ity of LS85 comparators 320-326 inclusive (Fig. 8A) which will compare the distance appearing on lines 308a-308h inclusive with the value of the distances appearing on the output lines 314a-314h inclusive and 316a-316h inclusive. The comparators 322 and 326 will output signals CMl-CM4 inclusive as a result of comparing the inputting values. The function of the comparators 320-326 inclusive is to determine the two minimum distances of all the distances generated as a result of comparing the templates with the peak amplitudes in a manner described previously. As each value of the distance is inputted over lines 308a-308h inclusive, the values will be compared with the two minimum distances (D 1) stored in flip-flop 310 and (D 2) stored in the flip-flop 312.
The output values of the flip-flops 310 and 312 are transmitted to a pair of comparators 328 and 330 (Fig.
8C) to determine if they are equal or not. As the result of comparing the two minimum values, the com-parator 330 will output the signals CM5 and CM6. The values CMl-CM6 inclusive are inputted into a decoder circuit (Fig. 14) which comprises a plurality of AND
gates 332-336 whose outputs are coupled to the D inputs of a pair of LS74 flip-flops 328 and 340 through OR
gates 342 and 344. The Q outputs of the flip-flops 338 and 340 are coupled through a pair of OR gates 346 and 350 to output the clock signals CLKl and CLK2 over lines 352 and 354 to the flip-flops 310 and 312 (Figs. 8A and 8B) enabling the flip-flops to store the input value appearing on lines 308a-308h inclusive upon finding that the input value is less than the minimum value stored in the flip-flops 310 and 312.
Referring now to Fig. 13, there is shown an LS161 counter 356 which outputs the count 0-3 inclusive over lines 358 to a LS155 selector 360 which outputs in succession the low load signals LDl-LD4 inclusive. The load signals LDl-LD4 inclusive are outputted to a pair of LS244 buffers (Fig. 8C) and a pair of LS374 flip-flops 366 and 368 (Fig. 8D). Upon the signals LDl and LD2 going low, the buffers 362 and 364 will be enabled to output the minimum distances D 1 and D 2 appearing on the output of the flip-flops 310 and 312 over output lines 370a-370h inclusive for storage in a pair of #3341 output buffers 372 and 374 (Fig. 12) when enabled by the signal C~3 going high. Upon the raising of an output ready signal OTRD (Fig. 4G)~ which is transmitted to the processor 34 (Fig. 3) over line 240, the processor will output the shift out signal OTSF over line 376 (Fig. 12) which signal will clock a flip-flop 378 to output a high signal over line 380 enabling the output buffers to 11513~0 output data over lines 120a-120h inclusive to the pro-cessor 34 (Fig. 3) where, as described more fully herein-after, the processor will apply threshold voltages to the two minimum values to select the character representing the unknown character waveform 36 (Fig. 2). A hiyh sig-nal is inputted into the D input of the flip-flop 378 as a result of the high signals ORl and OR2 outputted by the buffers 372 and 374 over lines 365 and 367 respectively to an AND gate 369.
The data being outputted over the output lines 370a-370h inclusive (Fig. 8D) includes the two minimum values being outputted by the buffers 362 and 364 (Fig.
8C) together with the template number corresponding to the two minimum values. During the time the data repre-senting the distance of a template is being inputted over lines 308a-308h inclusive (Fig. 8A), the number of the template which is present on the output lines 220a-220e inclusive and 226 (Fig. 4G) will be inputted into the flip-flops 366 and 368. Depending on the finding that the distance corresponding to the template is a minimum distance, the flip-flops 366 and 368 will first store the template number representing the two minimum distances upon the generation of the clock signals CLKl and CLK2 (Fig. 14) and will then subsequently be enabled by the load signals LD3 and LD4 to output over lines 370a-370h inclusive the numbers of the templates cor-responding to the two minimum distances. This data is transmitted over lines 120a-120h inclusive to the pro-cessor 34 for processing in the manner that will now be described. As shown in Fig. 11, the eight bits of data outputted over lines 135a-135h (Fig. 4A) is also out-putted into an LS244 buffer 137 for outputting of the samples to the processor 34 for use in recognizing the characters.
Referring now to Figs. 16A and 16B, there is disclosed a flowchart of the operation of the processor 34 in applying thresholds to determine if the value of llS~3~) the minimum distances are capable of identifying the unknown character. ~pon receiving the first minimum distance ~FMD) and the second minimum distance (SMD), the processor will determine which of the two data bytes representing the minimum distances is the first minimum distance by comparing the two distances (block 376). If the second minimum distance is less than the first minimum distance, the minimum distances (FMD), (SMD) and the characters ( FCHAR and SCHAR) are rearranged to be in proper order. The processor will then compare the value of the first and second character templates (block 380) to determine if they are valid templates. If they are not, the processor will reject the data (block 382).
The processor will then check the second minimum distance (SMD) to see if it is equal to 0 (block 384). If it is, then the first minimum distance is equal to 0 and the first and second character templates represent the character 0. In the case where there are a multiple number of templates for the character 0, the processor will check to see that both characters are 0 (block 386). If they are, the processor will indicate that the unknown character is a 0 (block 388)~ If not, the processor will generate a reject signal (block 390) for transmission to a utilization device.
If the second minimum distance (SMD) is not equal to 0, the processor will check the first minimum distance (FMD) to see if it is equal to 0 (block 392).
If the first minimum distance is 0, the unknown char-acter is outputted as the character corresponding to the first character template (block 394) to the utilization device which thus ends the character recognition opera-tion. If the first minimum distance is not equal to 0, the processor will check a flag to determine if the character is in the amount field. If it is, there are certain characters such as U, D, T, which must be ex-cluded from the amount field. If the first character is equal to any of these characters (block 396), the pro-cessor will reject (block 400) the character and end the ~lsi3ao operation. If the first character is not an excluded character, the processor will look up the allowed maximum distance for a first character minimum distance together with the allowed differences between the first and second minimum distance (block 402). If the first minimum distance is not in the amount field, the pro-cessor looks up the allowed maximum distance for the first minimum distance and the allowed differences between the first and second distances when not in the amount table (block 404). After obtaining this informa-tion, the processor will check to see if the first minimum distance is greater than the allowed distance.
If it is, it will reject the characters (block 408). If it is not, the processor will subtract the first minimum distance from the second minimum distance and compare the result with the allowed differences (block 410). If the distance is less than the allowed resolution and both characters associated with the two minimum dis-tances do not represent 0 (block 412), the processor will reject the data (block 414) and re~turn to a state to await the next data outputted by the template matching unit 32 (Fig. 1). If the resolution is greater than the allowed resolution, the processor will generate signals (block 416) indicating the character represented by the first character (FCHAR) as the recognized character.
Below is a group of program listings in the assembly language for the Intel 8086 processor 30 which is commercially available from The Intel Corporation of Santa Clara, California and which is used in the system operation described above.

115~3~0 ISIS-II PL/M-86 Vl.l COMPILATION OF MODULE DISTMATCHMODULE
OBJECT MODULE PLACED IN :Fl:READER.OBJ
COMPILER INVOKED BY: PLM86 :Fl:READER.SRC PAGEWIDTH(77) DATE(JULY 4/79) 1 DIST$MATCH$MODULE: DO;

2 1 DECLARE NTMPLS LITERALLY '18', NAMT$TMPLS LITERALLY '15';
3 1 DECIARE PARAMETER (27~) WORD EXTERNAI"
TEMPLATE STRUCTURE
(POSITIONS (14) BYTE, VALUES (14) BYTE, CHECK (4) BYTE) EXTERNAL;
4 1 RECOG: PROCEDURE (AMOUNT$FIELD) BYTE PUBLIC;

2 DECLARE AMOUNT$FIELD BYTE, UPPER$DIST$RES WORD DATA (~42~H), PEAKS (14) BYTE AT (@TEMPLATE.VAL-UES), LOCATIONS (14) BYTE AT (@TEMPLATE.
POSITIONS), (FMD,SMD,FMDLOC,SMDLOC) BYTE AT
(@TEMPLATE.CHECK), (I,OFFSET) BYTE, (DIST$RES,INDEX) WORD, (FQ$DIST,EQ$RES) BYTE AT (@DIST$RES), REJ$CHAR 8YTE DATA(12), CHARACTERS(*) BYTE DATA(~
1,2,3,4,5,6,7,8,9,14,13,1~,11);

/* START OF EXECUTION */

/* SWITCH AROUND lST AND 2ND MINIMA IF NECES-SARY */

11513~0 6 2 lF SMD < FMD TllEN
7 DO;
8 3 I = FMD; FMD = SMD; SMD = I;
11 3 I = FMDLOC-1; FMDLOC = SMDLOC-1; SMDLOC
= I;
14 3 FND;
15 2 ELSE DO;
16 3 FMDLOC = FMDLOC-1;
17 3 SMDLOC = SMDLOC-1;
18 3 END;
19 2 IF SMDLOC = 0FFH THEN SMDLOC = 0;

/* REJECT IF THE MINIMUM TEMPLATES INDICATED
ARE NOT ALLOWED */
21 2 IF FMDLOC >= NTMPLS OR SMDLOC >= NTMPLS THEN
RETURN REJ$CHA

- R;

/* CHECK FOR A MULTIPLE TEMPLATE MATCH AND RE-JECT UNLESS THE TWO TEMPLATES ARE FOR '~'. */

23 2 IF SMD = 0 THEN
24 2 IF SMDLOC <= 4 AND FMDLOC <= 4 THEN
26 2 RETURN 0; ELSE RETURN REJ$CHAR;

/* IF COMPLETE TEMPLATE MATCH, RETURN CHARACTER
IMMEDIATELY. */

27 2 IF FMD = 0 THEN RETURN CHARACTERS(FMDLOC);
/* NO COMPLETE TEMPLATE MATCH; COMPARE DISTANCE
AND RESOLUTION
* /

29 2 IF AMOUNT$FIELD THEN
30 2 DO; /* GET MULTI-DISTANCE PARAMETERS */

11513~0 /* EXCLUDE "U", "D" AND "T" (LAST Tfl~EE
TEMPLATES) FROM Tl-IE AMOUNT FIELD. */

31 3 IF FMDLOC > NAMT$TMPLS-1 THEN RE'rURN
REJ$CHAR;

33 3 INDEX = FMDLOC*NTMPLS + SMDLOC;
34 3 DIST$RES = PARAMETER (INDEX);
35 3 END;
36 2 ELSE DIST$RES = UPPER$DIST$RES;

/* REJECT IF 'FMD' > THAN THE ALLOWED DISTANCE
OR RESOLUTION < THAN ALLOWED. IF BOTH
TEMPLATES ARE FOR '~', THEN ALLOW RESOLUTION
TO BE ZERO. */

37 2 IF FMD > EQ$DIST THEN RETURN REJ$CHAR;
39 2 IF (SMD - FMD) < EQ$RES THEN
4~ 2 IF FMDLOC > 4 OR SMDLOC > 4 THEN
41 2 RETURN REJ$CHAR;

42 2 IF AMOUNT$FIELD THEN DO;

/* DATA PASSES MULTIPLE DIST/RES TEST; NOW
APPLY FEATURE FORCING TESTS. APPLY
FEATURE FORCING TESTS ONLY IN THE
AMOUNT FIELD. */

/* CHECK FOR EXISTENCE OF A FEATURE IN THE
MIDDLE OF A '5' ~ REJECT IF FOUND.
(COULD BE A '7'.) */

44 3 IF FMDLOC = 9 THEN
45 3 DO;
46 4 IF PEAKS(6) < -16 THEN RETURN

REJ$CHAR;
48 4 END;
/* FORCE 2ND +VE FEATURE ON '6' */

49 3 ELSE IF FMDLOC = 1~ THEN
5~ 3 DO;
51 4 IF PEAKS(3) < 14 THEN RETURN
REJ$CHAR;
53 4 END;
/* IF "Z" TEMPLATE SELECTED, REJECT SINCE
THIS TEMPLATE MUST FIT EXACTLY */
54 3 ELSE IF FMDLOC = 3 THEN RETURN REJ$CHAR;
/* IF '2' IS RECOGNIZED, CHECK TWO WINDOWS
TO DETERMINE IF IT MAY BE A '5' */
56 3 ELSE IF FMDLOC = 6 THEN
57 3 DO;
58 4 IF ~PEAKS(8) < -92) OR
(PEAKS(2) > -12) THEN RETURN
REJ$CH~R;
6~ 4 END;
/* IF '3' IS RECOGNIZED, CHECK -W5. (NOTE
THE TWO TEMPLATE SUBSECTIONS IN -W5) . */
61 3 ELSE IF FMDLOC = 7 THEN
62 3 DO;
63 4 IF LOCATIONS(l~) = 38 THEN
64 4 DO;
65 5 IF PEAKS(10) > -10 THEN RETURN
REJ$CHAR;
57 5 END;
68 4 ELSE IF PEAKS(10) > -13 THEN RETURN
REJ$CHAR;
END;
END;

/* PROGRAM EXECUTES IIERE IF DATA PASSES ALL
TESTS ===> RECOGNITION */

72 2 RETURN CHARACTERS(FMDLOC);
73 2 END RECOG;
74 1 /* NEXT CHAR IS INPUT*/
35 129 2 NUM$FLAG = NUMERIC(CHAR); /*CHECKED FOR
NUMERIC*/

11513~0 13~ 2 IF NUM$F21D
VARIABLE AREA SIZE = 0006H 6D
MAXIMUM STACK SIZE = ~6H 6D

0 PROGRAM ERROR(S) While the preferred embodiment of the present invention has been described in detail for recognizing characters in a standard E-13B character font, the character recognition system could be easily adapted by a person of ordinary skill in the art to recognize characters and symbols from any standard character font without departing from the spirit of the invention.
Furthermore, many of the changes and detai~s of the preferred embodiment may be made without departing from the spirit or scope of the invention as defined in the appended claims.

Claims (12)

WHAT IS CLAIMED IS:
1. In a character recognition system wherein feature characteristics of an analog waveform repre-senting an unknown character are compared with the feature characteristics of a plurality of known charac-ters, an apparatus for recognizing the unknown character, comprising:
(a) first means for storing the feature characteristics of an unknown character and the feature characteristics of a plurality of known characters;
(b) first comparison means coupled to said first storing means for comparing the location of each feature characteristic of the unknown character with the location of the feature characteristics of the known characters to produce a first signal representing the difference therebetween;
(c) means coupled to said first comparison means for accumulating the first signals for each known character;
(d) second comparison means for comparing the accumulated differences of each of the known char-acters to provide a plurality of second signals repre-senting two minimum differences;
(e) second means for storing said second signals;
(f) third means for storing the known characters associated with said second signals;
(g) and processing means coupled to said second and third storing means for applying a plurality of threshold values to the difference between said second signals to enable said processing means to iden-tify the unknown character in accordance with the second signal having the minimum difference.

2. The apparatus of claim 1 in which said first storing means includes a first storage unit for
2. (concluded) storing the location of each feature characteristic of the unknown character and a second storage unit connec-ted to said first storage unit for storing the location of each feature characteristic of the known characters and said apparatus further includes a first counter means operable to output a count equal to the number of feature characteristics stored in said first storing means, said first counter means coupled to said first storage unit and outputting a plurality of counts each of which enables each of said feature characteristics stored in said first storage unit to be outputted as an address to said second storage unit enabling said second storage unit to output the feature characteristics of a known character to said first comparison means.
3. The apparatus of claim 2 which further includes second counter means coupled to said first counter means and said second storage unit, said second counter means enabled to output a count representing a known character to said second storage unit upon said first counter means outputting a count equal to the number of feature characteristics of the unknown char-acter whereby said second storage unit will output feature characteristics of another known character to said first comparison means in response to receiving the feature characteristics of the unknown character.

4. The apparatus of claim 3 in which said accumulating means accumulates the differences between the locations of the feature characteristics of the unknown and the known characters, said apparatus further including a third storage unit coupled to said accumu-lating means and said first comparison means for storing said first signals, said comparison means adapted to compare the accumulated differences outputted by said accumulating means with the accumulated differences
4. (concluded) stored in said third storage unit enabling said third storage unit to store the accumulated differences having the minimum difference.
5. The apparatus of claim 4 which further includes a fourth storage unit coupled to said second counter means for storing the output of said second counter means and logic means coupled to said second comparison means and said fourth storage unit for enab-ling said fourth storage unit to store the output of said second counter means upon said second comparison means finding a minimum difference, the output of said second counter means identifying the known character associated with the minimum difference.
6. The apparatus of claim 5 which further includes a fifth storage unit coupled to said third and fourth storage units for storing the values representing the two minimum differences and their known characters, said second counter means coupled to said processing means for outputting to said processing means a control signal upon reaching a count equal to the number of known characters available whereby said processing means will enable said fifth storage unit to output the stored values to said processing means in response to the outputting of said control signal.

7. In a character recognition system wherein peak values representing first features of an analog waveform corresponding to the shape of an unknown char-acter are compared to second features of a plurality of known characters, an apparatus for processing features of and recognizing the unknown character comprising:
means for outputting a plurality of first features representing the location of the peak values of an analog waveform;
7. (concluded) first means for storing the first features of the unknown character;
second means for storing the second features of a plurality of known characters;
first comparison means coupled to said first and second storing means for comparing the first features of the unknown character with the second features of the known characters to provide a first binary signal representing the difference between the first and second features;
first counter means connected to said first storing means and responsive to the outputting of said first features for outputting counts to said first storing means enabling said first storing means to store said first features and to output said first features to said comparison means;
means connected to said comparison means for accumulating the first binary signals outputted by said comparison means for each known character;
second comparison means connected to said accumulating means for comparing the accumulated binary signals of each known character to output second binary signals representing the two minimum accumulated first binary signals;
and processing means coupled to said second comparison means for comparing the difference between said second binary signals with a plurality of threshold values enabling said processing means to identify the unknown character with the known character having the minimum difference.

8. The apparatus of claim 7 which further includes a second counter means coupled to said first counter means and said second storing means and enabled, upon the output count of said first counter means reach-ing a count equal to the number of first features out-
8. (concluded) putted by said outputting means, to output an enabling signal representing a known character to said second storing means whereby said second storing means will output a plurality of second features of a known char-acter to said comparison means.
9. The apparatus of claim 8 which further includes a latch member coupled to said accumulating means for storing the first binary signal outputted by said accumulating means, said latch member outputting said first binary signals to said accumulating means enabling said accumulating means to output to said latch member the sum of said first binary signals, said ap-paratus further including third means for storing the output of said latch member.
10. The apparatus of claim 9 which further includes fourth storing means coupled to said second counter means for storing the output of said second counter means when enabled, said second comparison means outputting a plurality of first control signals in accordance with the second binary signals found and logic means coupled to said second comparison means and said fourth storing means for enabling said fourth storing means to store said enabling signal representing the known character associated with said second binary signals.

11. The apparatus of claim 10 which further includes fifth storing means coupled to said third and fourth storing means for storing said second binary signals and said enabling signals representing the two minimum differences and their known characters, said second counter means coupled to said processing means for outputting to said processing means a control signal upon reaching a count equal to the number of known
11. (concluded) characters available whereby said processing means will enable said fifth storing means to output the stored signals to said processing means in response to the outputting of said control signal.
12. A method of recognizing an unknown char-acter comprising the steps of:
storing the location of a plurality of first feature characteristics of an unknown character;
storing the location of a plurality of second feature characteristics of a number of known characters;
comparing the first feature characteris-tics with the second feature characteristics of each known character;
accumulating the distance between the location of said first feature characteristics with the second feature characteristics of each known character;
comparing each accumulated distance of each known character with the accumulated distances of the remaining known characters;
selecting the two minimum accumulated dis-tances;
subtracting the smallest minimum distance from the largest minimum distance;
comparing the difference between the two minimum distances with a threshold value;
and selecting the unknown character as the known character having the minimum distance.
CA000361012A 1979-10-01 1980-09-25 Character recognition system Expired CA1151300A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/080,952 US4277775A (en) 1979-10-01 1979-10-01 Character recognition system
US080,952 1987-08-27

Publications (1)

Publication Number Publication Date
CA1151300A true CA1151300A (en) 1983-08-02

Family

ID=22160719

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000361012A Expired CA1151300A (en) 1979-10-01 1980-09-25 Character recognition system

Country Status (3)

Country Link
US (1) US4277775A (en)
JP (1) JPS5657172A (en)
CA (1) CA1151300A (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4499595A (en) * 1981-10-01 1985-02-12 General Electric Co. System and method for pattern recognition
US4547899A (en) * 1982-09-30 1985-10-15 Ncr Corporation Waveform matching system and method
US4551850A (en) * 1983-02-07 1985-11-05 Pattern Processing Technologies, Inc. Response detector for pattern processing system
US4550431A (en) * 1983-02-07 1985-10-29 Pattern Processing Technologies, Inc. Address sequencer for pattern processing system
US4504970A (en) * 1983-02-07 1985-03-12 Pattern Processing Technologies, Inc. Training controller for pattern processing system
US4541115A (en) * 1983-02-08 1985-09-10 Pattern Processing Technologies, Inc. Pattern processing system
US4567609A (en) * 1983-03-28 1986-01-28 The United States Of America As Represented By The Secretary Of The Navy Automatic character recognition system
JPS603062A (en) * 1983-06-18 1985-01-09 Sankyo Seiki Mfg Co Ltd Recognizing device for read character
JPS6137555U (en) * 1984-08-10 1986-03-08 日本システム開発株式会社 magnetic ink character recognition device
US4841473A (en) * 1986-12-19 1989-06-20 Robert S. Salzman Computer architecture providing programmable degrees of an almost condition
JPH04128706U (en) * 1991-05-14 1992-11-25 横河メデイカルシステム株式会社 MRI machine
WO1993018482A1 (en) * 1992-03-11 1993-09-16 New York University Method and apparatus for encoding and decoding signals with structures
US7227995B1 (en) 2003-04-18 2007-06-05 Kamran Reihani System and method for automated symbolic recognition including spatial reasoning
US7239749B1 (en) * 2003-04-18 2007-07-03 Kamran Reihani System and method for automated symbolic recognition including evidence-based technique
US7218782B1 (en) * 2003-04-18 2007-05-15 Kamran Reihani System and method for automated symbolic recognition including multi-phase symbolic reshaping
US7236631B1 (en) 2003-04-18 2007-06-26 Kamran Reihani System and method for automated symbolic recognition including logical symbols
US7242805B1 (en) 2003-04-18 2007-07-10 Kamran Reihani System and method for automated symbolic recognition including database modeling
US8023718B1 (en) * 2007-01-16 2011-09-20 Burroughs Payment Systems, Inc. Method and system for linking front and rear images in a document reader/imager

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3492646A (en) * 1965-04-26 1970-01-27 Ibm Cross correlation and decision making apparatus
DE1623855A1 (en) * 1967-08-01 1971-04-01 Telefunken Patent Circuit arrangement for determining which of several lines simultaneously carrying different voltages which has the highest voltage
USB618016I5 (en) * 1968-11-29
US4110737A (en) * 1977-08-22 1978-08-29 The Singer Company Character recognition apparatus for serially comparing an unknown character with a plurality of reference characters

Also Published As

Publication number Publication date
US4277775A (en) 1981-07-07
JPS5657172A (en) 1981-05-19
JPH0215106B2 (en) 1990-04-11

Similar Documents

Publication Publication Date Title
CA1151300A (en) Character recognition system
US4143356A (en) Character recognition apparatus
US2961649A (en) Automatic reading system
US4457015A (en) Matrix character preprocessing system
US4288779A (en) Method and apparatus for character reading
US3634823A (en) An optical character recognition arrangement
CN102722690B (en) magcard decoding method
US3605092A (en) Magnetic ink character recognition system
US3430198A (en) Method of and apparatus for automatically identifying symbols appearing in written matter
US4190820A (en) Signal train verification system using landmarks
US3713099A (en) Method and apparatus for identifying letters, characters, symbols and the like
US3571793A (en) Character recognition systems
US3112469A (en) Apparatus for reading human language
EP0096717B1 (en) Method and apparatus for recognizing an unknown character
CA1151301A (en) Magnetic ink character recognition apparatus
US3479642A (en) Threshold system
US3461427A (en) Identification of digital signals resulting from scanning recorded characters
US3534332A (en) Electronic systems and apparatus for recognising printed characters
EP0098284B1 (en) Method and system for timing during character recognition
US3246293A (en) Character sensing method and apparatus
US3018471A (en) Character recognition system
JPS6316795B2 (en)
US3332064A (en) Double-frequency coded symbol reader
EP0026669B1 (en) Character recognition apparatus and method, using waveform analysis
JPS61163472A (en) Character recognizing device

Legal Events

Date Code Title Description
MKEX Expiry