9GHE H h£ in ■ mm miiH ■ HHB H m HjH ISmi &:, ■ ■ ■ I ■ H ■ ■ Hftfc I BfiflnE n Mil H Sffiasea LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 510. 84- ru>. &G7&72 co p. 2 blc\ W ,{f UIUCDCS-R-T 1 +-668 f/UJK, LINDA ( LINE DRAWING ANALYZER) by Dick Kent Blandford July, 19lh OEC 41974 DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN URBANA, ILLINOIS uiucdcs-r-tU-668 LINDA (LINE DRAWING ANALYZER) by DICK KENT BLANDFORD July, 197^ Department of Computer Science University of Illinois Urbana, Illinois 6l801 This work was submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Electrical Engineering, May, 197^ , and was supported in part by the Office of Naval Research, Contract No. N000 1U-67-A-0305-002U. Digitized by the Internet Archive in 2013 http://archive.org/details/lindalinedrawing668blan LINDA ( LINE DRAWING ANALYZER) DICK KENT BLANDFORD Department of Electrical Engineering University of Illinois at Urbana-Champaign, 197^ ABSTRACT LINDA ( LINe Drawing Analyzer) is a hardware project in pattern recog- nition. Line drawings in LINDA' s vocabulary are made up of closed poly- gons and circles. Identification of such drawings is based upon the separation and serial analysis of each of the simple parts of the drawing. Line drawings are presented to LINDA on a clear plastic card, which a flying spot scanner converts to a video signal. This signal is analyzed in terms of the number of video pulses on a horizontal scan line. When the total number of pulses on one horizontal line changes, new regions are defined which may or may not belong to the same part of the line drawing. Long shift registers are used as delay lines and one horizontal line is delayed and compared to the next line. The result of this com- parison gives the information needed to determine which regions belong to which parts of the line drawing. Once this information is obtained, the drawing is separated into its parts and each part is analyzed in turn with the top left most part being first. Twenty bits of information are produced for each part. These twenty bits tell how many corners the part has, how big the part is in relation to other parts, the location verti- cally and horizontally with respect to other parts, and whether the part has any connection to the outside of the line drawing. An associative memory is used for a dictionary with one card and up to 160 bits for each line drawing. Information is received simultaneously by all cards in the dictionary as a series of 20 bit numbers. When the correct series of 20 bit numbers is received by a card in the dictionary it turns on a light indicating identification. The LINDA system is a hardware project and it has been built in prototype form. Logical details of the construction are presented with a section on results and recommendations. Ill ACKNOWLEDGMENT The author wishes to express his thanks and gratitude to his advisor Professor W. J. Poppelbaum for originating project LINDA and for his con- tinued support, guidance and friendship throughout the course of the project. Further, all of the people in the printed circuit shop, Sam McDowell, Bill Marlatt, and especially Gene Kelly and Frank Serio did an outstanding job on the physical fabrication of the printed circuit cards and the machine itself. The author wishes to express his gratitude. The author also wishes to thank Roy Nelson for his philosophy and sup- port over the past few years. Mike Selander and Steve Whiteside made signifi- cant technical suggestions and were very helpful in project discussions. Evelyn Huxhold did a very neat job of typing the final draft of this thesis. The author wishes to thank her for her efforts, cooperation and patience. In addition, the author wishes to thank his wife, Ann, (who has been helping him as such since May 31, 1972) for her efforts in some of the more tedious panel wiring as well as her help in correcting, proofreading and typing the early drafts of this thesis. IV PREFACE Project LINDA began some four years ago as one of the first pro- jects in the Hardware Research Group in the Pattern Recognition area. The goals which we set for ourselves were deliberately unrestricted and the final product bears little resemblance to the machine which was originally conceived. At first we set out only to build a machine capable of recognizing two-dimensional line drawings using an algorithm which we thought should be l) fairly simple to implement in hardware, and 2) one using an iden- tification procedure based on shape but excluding such things as mask matching techniques. Later in the program we hoped to be able to separate off simpler parts of line drawings and identify them separately. Knowing the parts of a complex drawing and something about their positions with respect to each other, we believed we could make a fairly accurate esti- mate as to what the line drawing was. In the beginning we encountered several blind alleys, trying to im- plement schemes which seemed simple enough at first glance. One of these schemes is worth mentioning. It used a ring of photocells around an oscilloscope face. The line drawing in question was displayed on the scope and by suitably lowering the accelerating voltage across the tube the drawing expanded. As the edges of the drawing passed the photocell ring the information was clocked into a group of registers, one for each photocell. This method presents a nice way of encoding simple line drawings into strings of l's and O's. However, there are many subtle problems involved and this solution was eventually discarded in favor of the polygon recognizer which was finally built. The problem of separating a given line drawing into simple closed parts is the major part of project LINDA. The separation algorithm is in fact a general algorithm which can be used to divide any line drawing made up of closed parts into its parts and present them for identification one at a time. The parts need not be polygonal in nature to be separated from one another; any arbitrary shape is allowed as_ long as it is closed . LINDA can only identify parts which are either polygons or circles be- cause we did not incorporate a large memory system into this project. Many pattern recognition schemes have been implemented by others using (2)(9) software schemes with large computer backup systems. The only mem- ory which LINDA uses in the separation algorithm consists of three delay lines, each being capable of delaying a horizontal video scan line of 512 bits by 63.5 ysec. There is some memory in the form of a diode matrix in the "dictionary logic," but this is not substantial. LINDA' s vocabulary of known objects is small and unusual for a pattern recognition machine. LINDA recognizes such things as "house," "train," etc. All of these things are everyday objects with human labels. No attempt has been made to identify the more usual (and more practical) things like alphabet letters or numbers. It is possible that with some modification LINDA could be adapted to do such things, but probably LINDA would be more useful in an industrial robot environment where, for example, the machine could be used to identify parts on an assembly line. In presenting the details of the system, actual circuit diagrams have been included only when they are necessary to the understanding of the system logic. Throughout this thesis details are presented in block diagram form with sufficient definition to allow a hardware designer to implement the system logic in any of the logic families capable of an VI 8 MHz switching rate or more. Two appendices have been added. Appen- dix I includes actual circuit diagrams of the more important system parts. Appendix II is a list of operating instructions for those who use the machine. Vll TABLE OF CONTENTS Page 1.0 INTRODUCTION 1 2.0 DEFINITIONS 1+ 3.0 SEPARATION 7 3.1 THE SHADING ALGORITHM 7 3.2 LINE PULSE CHANGE DETECTOR 8 3-3 ON-LINE REGION INDICATOR 10 3.U HORIZONTAL LINE COMPARISON 10 3.5 ALL SHADED VIDEO 15 3.6 DELAY LINES 18 3-7 BACKGROUND SHADING 21 3.8 REGION STORAGE 21 k.O DRAWING IDENTIFICATION 27 k.l PART IDENTIFICATION 27 U.2 DICTIONARY 32 5.0 NOISE CONSIDERATIONS 37 5.1 ELECTRICAL NOISE 37 5.2 PICTURE NOISE 38 6.0 RESULTS AND RECOMMENDATIONS k2 APPENDIX I 1+7 APPENDIX II 56 REFERENCES 59 VITA 60 1.0 INTRODUCTION The LINDA system can be divided into three sub-systems. The first sub-system is small and contains about 15 integrated circuit packages. The function of this system is noise processing . The noise processing circuitry used is both preventive and corrective. The preventive cir- cuitry keeps noise out of the system by excluding very fast video and by allowing only those signals to pass which are the result of a high con- trast picture. The corrective circuitry examines a processed version of the video signal to make sure it is consistent from frame to frame. If it is not consistent a correction is made by resetting the analysis to begin again. The second sub-system in LINDA is the most important. It is the separation system and is responsible for separating the line drawing into its simpler parts and presenting these parts for analysis. The separa- tion system works in the following manner: The video signal is analyzed for the points at which the number of pulses on a horizontal line change. At each point in the frame where a change exists there is a possibility that l) a new part has started, 2) a previously looked at part has ended, or 3) a previously looked at part is continuing and a new part is beginning. Figure 1 illustrates these three conditions. The LINDA system gives each point in the video signal a region number if that point may belong to some part of the line drawing. New region numbers are assigned each time the number of video pulses on a line changes. Then by using delay lines to examine two lines at a time, it is possi- ble to determine which regions belong to the same part and the three possibilities mentioned above are resolved. Part starting Part ending Part continuing New part starting Figure 1 Three Possibilities Indicated By A Change In The Number Of Pulses On A Scan Line. The third sub-system in LINDA is the dictionary system . This system receives the separated video signal and does the analysis on it. Posi- tional information, relative size, and the number of discontinuities are encoded into a twenty bit number for each part. The dictionary proper consists of a rack of twenty cards which form an associative memory. Each card examines all the information coming into the dictionary and turns on a light if the information matches that which has been programmed into the card. Programming a dictionary card involves setting a diode matrix of l60 positions (20 bits by 8 lines). A second matrix is included on each card for the purpose of programming out certain bit positions. An exact match is not required! The second matrix can be used to ignore any or all of the bit positions so that pattern discrimination is determined to a large degree by the programmer. 2.0 DEFINITIONS LINDA is capable of analyzing line drawings made up of closed parts. Some clarification is necessary on this point since there are some classes of polygonal line drawings which LINDA has not been designed to identify. If LINDA is presented with a polygonal line drawing consisting of two polygons, one of which is enclosed by the boundary of the other, identifi- cation will fail. The shading algorithm used to separate out the parts of the line drawing will successfully isolate the enclosed polygon. How- ever, the outer polygon will not be completely shaded in. It will have a "hole" in its shaded form where the enclosed polygon was erased. This could be corrected so that LINDA could handle this class of line drawings by making a comparison of the regions which make up each part. No attempt has been made to implement this addition in hardware. It should be further noted that a similar misidentification may occur when two or more polygons overlap in a line drawing. In discussing line drawings, the following definitions for PART and REGION will be used throughout this thesis: A PART is defined as that section of a line drawing which completely encloses some area in which there are no lines. A PART of a line drawing, then, is a natural division in human terms. In Figure 2 there are two parts labeled A and B. A REGION of a line drawing is not a natural division which would be made by humans, and may consist of an area not bounded on one or more sides by the lines in the drawing. A new region is defined each time the number of video pulses on a raster scan line changes from one line to the next . Regions always have lines for left and right boundaries , but not REGION PART A PART B Figure 2 Defining REGION And PART. necessarily for upper and lover boundaries . If lines are drawn across a drawing in such a way as to indicate the points in the raster scan where the number of video pulses on a line change, a region may be defined as that area lying between two of these change lines (upper and lower bound- aries) and having video pulses for left and right boundaries. This is illustrated in Figure 2. Regions are areas which are easily found by LINDA and can be isolated from one another by numbering them as they are encountered in the raster scan and displaying them selectively. The problem of separating a line drawing into its parts becomes much simpler for a machine to do if the separation is done in two steps. The first step consists of finding and numbering all of the regions in the line drawing. The second step deter- mines which regions belong together in the same part. LINDA accomplishes the second step by using delay lines to make successive regions appear at the same time so that they may be compared to determine which regions be- long together. This concept is presented in detail in the section on the shading logic. The term RASTER SCAN as used throughout this paper will denote the 525 line video picture put out by the flying spot scanner. This signal has no interlace as in a conventional TV signal. The vertical scanning rate is synchronized to the 60 Hz power line frequency and the horizontal scanning signal is derived from the vertical by a phase locked loop fre- quency multiplier. The horizontal scanning rate is usually 15720 Hz. SHADED VIDEO or all shaded video used in this paper will denote that portion of the video signal lying between any two adjacent video pulses on a single horizontal line. 3.0 SEPARATION The circuitry for separation of a given pattern into its parts is the most important part of LINDA' s hardware. It is the heart of the identification procedure. Separation is accomplished by shading in the regions of a line draw- ing and comparing this shaded video signal to the signal delayed by one line to determine which regions belong to the same part in the line draw- ing. Note that when a given part of a line drawing is shaded in, its outline is erased but the shaded portion retains the shape of the part. This shading in of each part overcomes the problem presented by boundary lines between parts. When parts are shaded in, boundary lines no longer exist, but shape is retained. Part shading is also necessary to the identification algorithm which is discussed in a later section. In the following section the details of the separation system will be presented and explained. 3.1 THE SHADING ALGORITHM The shading algorithm used in the LINDA system does not utilize any large memory system such as a video disc or programmed backup. However, the video picture generated by the flying spot scanner is continuously available, i.e., the line drawing is continuously presented at a 30 Hz rate. This in effect may be considered to be a memory system for a line drawing. In other words, if a television camera were used to present a video signal on line, then l) some other buffer memory system would have to be constructed to insure that the same line drawing was continuously available for several frames or 2) the camera and picture would have to 8 be mechanically fixed to present the same video signal for several frames. LINDA does not memorize a point in time at which certain regions on the line drawing arrive; rather, LINDA memorizes the sequence of arrival of the regions and labels them appropriately. Regions are numbered as they are encountered in the raster scan. The shading algorithm allows LINDA to determine which regions belong to the same part. Therefore, instead of memorizing a point in time at which a given region arrives, LINDA, for example, memorizes that region 1 and region 3 belong to part 1. In shading in part 1, then, all regions ex- cept 1 and 3 are erased. There is no need to know that region 1 occurs, say, halfway down the frame, only that there is a region 1 and a region 3, and that these regions will exist over a sufficient number of frames to allow proper analysis. 3.2 LINE PULSE CHANGE DETECTOR The purpose of the line pulse change detector is to determine when the number of video pulses on one line is different from the number of pulses on the previous line. When this event occurs, the line pulse change detector puts out a pulse of about 500 ns duration at the begin- ning of the horizontal blanking period. The logic of the change detector is shown in Figure 3- Alternate lines of the video signal are gated into two counters so that counter 1 gets the even lines while counter 2 gets the odd lines. The two counters are compared to one another at the end of each line and if the magnitude of their respective counts differs from one another, the comparator puts out the pulse signaling a change. A maximum of eight video pulses are allowed on one horizontal line. The number of frames necessary for a complete analysis is dependent upon picture complexity and may be as short as 1 frame or as long as l6 frames. Hor Sync Video Counter 1 Qa Qp Qc Qd A 1 A 2 A 3 a 4 Magnitude Comparator B 1 B 2 B 3 B 4 Qa Q b Qc Qd Counter 2 A=B Hor. sync. Aj^B [Line 'pulse change Figure 3 The Line Pulse Change Detector. 10 3.3 ON-LINE REGION INDICATOR The on-line region indicator contains counting circuitry which has been adapted to count successive regions in the all shaded video signal. The logical workings of the on-line region indicator are best explained with a picture and some timing diagrams, since a thousand words serve only to confuse the issue! Figure h is a functional block diagram of the re- gion indicator. The latch is clocked each time the total number of pulses on a horizontal line changes. If the clock pulse occurs, it must be coincident with the strobe pulse which is a short pulse generated by the rising edge of the horizontal sync, signal. Figure 5 shows a line draw- ing, its video signal, and its all shaded video signal with the regions labeled as they would be by the latch/counter circuitry. Note that, to avoide unnecessary confusion, only those horizontal lines which border regions have been shown. The region indicator output is a 1( bit number corresponding to the region which is present in the all shaded video signal. It can be seen that the region indicator allows the selective shading of any particular region in the line drawing. Once this is possible the separation problem becomes one of finding out which regions belong to the same part. 3.U HORIZONTAL LINE COMPARISON Two successive horizontal lines may be logically compared to one another if one of them is delayed by 63 . 5 ysec. Consider the all shaded video signal of Figure 6B and assume that each time region 1 comes by it will be passed on for analysis. Further, assume that this output signal is delayed by one horizontal line and compared logically (AND gate) to the all shaded video signal. In the all shaded video signal region 1 occurs on lines labeled k and 5- When this signal is passed and delayed, region 11 Figure h The On-Line Region Indicator. 12 5 10. --Q- Line Drawing Figure 5 An Idealized Line Drawing With Its Video Signal And Its All Shaded Video Signal With Regions Numbered. 1 r—u 10- 15. J— L 5 J—L r~i_ j~i r _n r~L _t-l j—\ r - v J— l_J L Video Signal m All Shaded Video 13 LLLILMILLLL frrrrrrrrrrrrrrr o Q u pq W *-3 £3 1 01 c3 v— CD CD 43 T3 d 1 o CD 43 £3 CD CD ■H ,0 H P CO d m bfl CD rH X! CO CD d CO M ■H CD Q H 43 CD fn CD CO O > £3 Sjj CD CO 43 CO 43 Vh ■^ C P bO CO CD P CD t»o CD C cd on u H 43 -p d ■H 43 CO ■H ft CD p ps q vu CO EH -H N £3 43 ft p •H CO o -P , bO -P o 01 o f"""-* H Cd -H rH pj pi u y< CD • ft CO 43 bO d •H o t>0 p TJ co - — •H CD a P Sh „_, # 60 •H •H P CD ft 3 M d d O •H > CO p •H cd d CD cd ft >> P< a co p d On >> pq Til H ft •H ^ cd i) ill d CD CD p > > 43 bO t3 g CD - M H H O P a cd cd *d -p cd pi £3 43 3 o 43 in H H ft CO O CO cd rH co

> cd H CD Q W O ft P Pi O O 0) d d CD -d >43 cd co H CD Q O CD *d •H > pq cd TJ cd 72 H H < lilllkt ft p d o p h cd ft -d CD d cd 43 CO d CD >> cd O H 0) CD d ft -H > h) ft S3 d d CD {S3 •H H cd CD d LLLLLLLLLLLL ffrrr/ffr rrr r d £3 3 b rH bC o W cd pq d CD d CD cd H d CD £3 ft H ft -P Pi ft O o u bO 44 o cd pq Ik 1 will occur on lines 5 and 6 (see Figure 6G). A pulse coming out of the AND gate comparison circuit (Figure 6K) will occur when region 2 is present in the all shaded video signal. This pulse indicates that region 1 and region 2 belong to the same part of the line drawing and it will gate region 2 to the output for analysis. This is an example of "downward" line comparison. In downward comparison a low numbered re- gion is shaded in and delayed for comparison to the next line down (later in time) to see if any higher numbered regions have some common area. On the other hand, Figures 6F and 6J illustrate upward line compari- son. For upward line comparison, the all shaded video signal is delayed and compared to the signal being passed to the output for analysis. In upward line comparison, a higher numbered region has been initialized or shaded in and is being compared to a previous line (backward in time) to see if any lower numbered regions have common area shaded in. This is seen to occur in Figure 6J on line 8. Note that a second on-line region indicator circuit is needed to count regions in the delayed shaded video signal. In Figure 6C region 3 occurs on line 8. It is compared to line i of the output (Figure 6F) where region k has been shaded in due to the downward line comparison. A single short pulse occurs on line 8 (Figure 6j) as a result of this comparison; it is labeled region 3 since it corresponds to region 3 in the delayed shaded video signal. This pulse feeds the shading gate registers which in time allow region 3 to pass to the output each time it comes by. Note that in Figures 6J and 6K there are several other pulses in- dicating that various regions should be shaded in because they have some common area with regions presently being shaded in. Many of these 15 pulses are the result of comparing a shaded region with itself. These self comparisons are labelled with an S. Further, downward shading can take place in one frame, i.e., if a region is to be shaded in as the result of a downward comparison, then that region necessarily lies below the comparison point. Upward shading is just the opposite. A region to be shaded in as the result of upward comparison must be above the comparison point and therefore must wait until the next frame to be shaded in. For upward shading, the pulse from the line comparison only authorizes a region to be shaded in. In Figure 7, then, four frames would be needed to shade in part 1 which is comprised of regions 1, 2, 3, k 9 6, T> 8 5 and 9« It may be useful to think of the shading algorithm in the following terms: Consider that there are 3 successive lines of shaded video such that the first line occurs in the past, the second in the present and the third in the future. Then the second line will be displayed and is con- sidered the output. It will be compared to the first line and this will be called upward comparison. It will also be compared to the third line and this will be called downward comparison. The results of the compari- sons will determine what other regions (if any) will be shaded in. 3.5 ALL SHADED VIDEO The All Shaded Video signal has been defined as a video signal which is "high" when it lies between two adjacent video pulses on the same hori- zontal scan line. This signal is neatly produced by using two counters and some gates as shown in Figure 8. The workings of the all shaded video generator are as follows: Counter 1 receives the video signal and counts up at each rising edge. At the horizontal sync, pulse counter 2 16 PULSES PER LINE REG 1 REG 2 REG 4 REG 7 REG 3 REG 6 REG 8 REG 9 FRAME INITIALIZE AUTHORIZE SHADE IN 1 1 2,4,7,8,9 1,2,4,7,9 2 6 8 3 3 6 4 3 Figure 7 An Idealized Line Drawing And Its Region Shading Sequence For Part 1. 17 Hor. Sync. Figure 8 Circuitry For Producing All Shaded Video. 18 is loaded with the contents of counter 1, and counter 1 is cleared. Counter 2 receives the same signal as counter 1 except that it is delayed by one line. Further, counter 2 does not count up, but rather counts down. The timing diagram of Figure 9 shows the input sequence and pulses that occur at critical points throughout the logic. Note that the inputs shown in Figure 8 and Figure 9 are video and delayed video, which produce shaded output. This shaded output is de- layed one line from the video to which it corresponds, since it is neces- sary to know how many pulses are on a horizontal line before any shading can begin. In other words, it is necessary to wait for a whole line to pass in order to have enough information to shade it in. To produce delayed shaded video the same circuits may be used but the inputs need to be changed. If the inputs in Figure 8 are changed from video to delayed video and from delayed video to twice delayed video, then the output becomes delayed shaded video. 3.6 DELAY LINES LINDA makes use of several delay lines for generating shaded video and for comparison of video lines. These delay lines are in fact long shift registers. Each shift register is capable of holding 512 bits and of shifting in one direction at about 8 MHz. These MOS dynamic registers have a minimum data rate of 1 KHz, which is sufficiently low to allow the 8 MHz clock to be stopped for up to about lms, if necessary, without loss of data. This feature permits the shift registers to be used as delay lines even though the horizontal line period is not constant. (The horizontal scanning frequency is generated by means of a phase locked 19 1 _n_ m m 1 2 n n -J-L 2 n n r~ i rn 3 * i — i Video 4 Delayed Video 1 1 2 l~ 2" I i i rn 3 r 3 I rn 4 i Point A 4 I Point B 2. 3. Figure 9 Timing Diagram For All Shaded Video Circuit. All Shaded Video Output 20 loop from the vertical scanning frequency which is synchronized to the 60 Hz power line). A local oscillator is employed to clock the shift registers. It runs at about 8 MHz or slightly faster: Its exact frequency is not important, nor is its long time stability. A 512 bit counter is used to determine how many times the shift registers have been clocked in one line period. Since the local oscillator is running at slightly more than 8 MHz — say 8.1 MHz — 512 bits will go through the shift register in less time than it takes for one horizontal scan line to pass (about 63.5 us). The 512 bit counter begins counting at the lagging edge of the horizontal blanking pulse. When its count reaches 512 it stops the 8.1 MHz oscillator, and does not allow it to start again until a lagging edge of a horizontal blanking pulse sets the counter back to at the start of another line. In effect then, the delay lines and 512 bit counter use the lagging edge of the horizontal blanking pulse as a reference signal and the discrepancy in horizontal line length is made up in the time the oscillator is turned off at the end of each line. The necessity of having a delay line capable of accurately delaying a video signal for one horizontal scan time comes about from the fact that succeeding video lines are compared to one another logically to determine which regions belong to the same part of a line drawing. An erroneous or ambiguous comparison results from having a delay time not equal to the horizontal scan time. The MOS shift registers and the 512 bit counting scheme work well in practice and have proven to be a very satisfactory solution to the 21 delay line problem. The only other reasonable alternative solution seemed to be expensive ultrasonic delay lines. Figure 10 is a system diagram illustrating the use of the delay lines for LINDA. Note that only two delay lines are needed to generate the All Shaded Video and the Background video signal as well as delayed versions of each of these. A third delay line is employed to delay the shaded output signal for comparison to the shaded video. 3.7 BACKGROUND SHADING The background shading system works in a manner similar to the sys- tem used to produce the all shaded video signal. Background video is compared to the shaded output signal to determine if any regions belong to the outside of the line drawing. Both upward and downward comparison is used in this process, so that in Figure 11 both regions 1 and 3 would be found to belong to the outside of the line drawing. These regions are not erased; rather they are identified and used by the dictionary logic as part of the analysis. No attempt has been made to weight the outside regions differently from regions lying inside the boundary lines. Back- ground signals for an idealized line drawing are shown in Figure 6. Fig- ures 6l and 6H illustrate the use of the background signal to determine which regions lie outside the line drawing or have some connection to the outside of the drawing. > 3.8 REGION STORAGE The region numbers are stored in two main registers, the frame region storage register and the permanent region storage register. Both registers have one flipflop for each region to be stored. In this prototype system, 22 VIDEO " 1 ' DELAY LINE \ BACKGND BACKGROUND GENERATOR <. — ALL SHADED VIDEO GENERATOR ALL SHADED DELAYED VIDEO VIDEO _J y f DELAY LINE > DELAYED BACKGROUND TWICE DELAYED ALL SHADED VIDEO GENERATOR DELAYED BACKGND GENEF 1ATOR VIC >EO ALL SHADED VIDEO REGION SHADING *■ SYSTEM OUTPUT DELAY LINE DELAYED OUTPUT (For comparison to shaded video) Figure 10 Delay Line System Diagram. 23 Region 1 Region 2 Region 3 Figure 11 Idealized Line Drawing Having Two Regions Belonging To The Outside. 2U there are only l6 flipflops per register. For explanatory purposes, I have numbered the flipflops in each register 1 through l6, with FF1 cor- responding to region 1, etc. In beginning to separate a line drawing, both registers are first cleared. At the Start/Reset pulse, the two registers are linked in such a way that only one FF in the frame region register is set. This FF cor- responds to the lowest numbered FF with a zero in the permanent region register (in this case, FFl). The frame region register directs the on-line region indicator to shade in region 1 as it passes. Horizontal line com- parison is done and any region connected to region 1 (in the same part) has its corresponding FF set in the frame region register . Special detection circuitry associated with the frame region register determines when no new region number is coming into the register. At that point, the part is com- pletely shaded in. It is then gated to the dictionary for analysis. At the end of the analysis cycle the information in the frame region register is gated into the permanent region register. For example, say that re- gions 1, 2, and h belong to part 1. FF's 1, 2, and h in the frame region register have a 1 in them at the beginning of the analysis cycle. These regions are shaded in and analyzed. At the end of the analysis cycle, all of the l's in the frame region register are clocked into the permanent region register. The frame region register is cleared and the cycle begins again. This time FF3 in the permanent region register will be the lowest number FF to have a zero. Therefore, region 3 will be shaded in next. Figure 12 presents a system diagram for region shading. By way of further clarification, note that the frame region register stores the region numbers for each part on a temporary basis. It re- ceives some region number from the permanent region register and allows A Line Drawing V» Flying Spot Scanner Video o CRT Display Display Shading Circuitry L Delay Line Part Analysis Dictionary All Shaded Video Delay Line Initialize Upward Shading — I Initialize Downward Shading 25 Line Pulse Change Detector On— Li ne Region Indicator Corrective Noise Processing Frame Region Register .reset gate Permanent Region Register Figure 12 Shading System Diagram. 26 this region to be shaded in as an initialized region. The frame region register communicates with the horizontal line comparison circuitry and eventually receives the region numbers for all the regions in the part it initialized. The frame region register allows the part to be analyzed and transfers all of its region numbers to the permanent region register. After this transfer, the frame region register is cleared. The permanent region register stores the region numbers it receives for the duration of the line drawing analysis. It receives region numbers from the frame region register after each part is analyzed. Associated with the permanent region register is a clock and counter circuit which allows the register to transmit the number of the next region to be analyzed. This region number always corresponds to the lowest numbered region which has not been shaded in. 27 U.O DRAWING IDENTIFICATION k.l PART IDENTIFICATION LINDA can identify parts of a line drawing which have "been separated from the line drawing proper if the parts are polygons or circles. Even if a part is not a polygon or a circle, some information is extracted and in many cases the drawing can be identified. Each part of a line drawing is presented to the dictionary system separately in the form of a 20 bit number. This 20 bit number gives the following information about the part: 1) One "bit is used to tell whether the part lies inside or outside of the line drawing. This information is extracted from the shaded part by logically comparing it to the line drawing's background. The circuitry uses a delay line and is similar to that used in the separation algorithm circuitry. 2) Three bits are used to count the number of corners of the poly- gon. To understand the corner counter, consider the four-cor- nered part in Figure 13. Consider further that this part has been displayed in a 525 line raster scan, that all of its boundaries have been erased, and that its interior has been shaded in. Some horizontal scan lines have been drawn in and numbered for the purpose of explanation. Suppose now that there is an oscillator running at about 500 bits per scan line, and that this oscillator can be gated into a counter which is cleared at the end of each line. When scan line 1 appears, the oscillator is gated into the counter over the period of time corresponding to the shaded video on that line. The counter will have some 28 Voltage Figure 13 A Four Cornered Line Drawing And Its Resolution Into An Analog Signal. 29 number in it at the end of line 1. Say this number is 5- For line 2 the count will be larger — say 15. All lines between 3 and h will have the same count — 25. Lines 5 and 6 will have lesser counts — say 8 and 2 respectively. If these digital count signals are passed through a D/A converter and the output passes into a low pass filter, the resulting signal will have discontinuities corresponding to those points in the pattern that were corners. One need only differentiate this signal twice to get pulses which are easily counted. Some discrepancies re- sult if two corners lie on the same horizontal line (except if they are on the edge of the part). In such cases both corners show up as a single discontinuity and one corner is missed in the count. This has not proved to be a significant difficulty, and no attempt has been made to correct this problem. If necessary, one could sweep the picture in several different directions and take the maximum corner count from all sweeps. Figure lU shows a triangle and its resolution into three pulses by the circuitry described above. 3) Four bits are used to describe the horizontal position of the shaded part. These k bits are called the horizontal weight of the part, and, in simplified terms, these h bits give an idea of how far to the left or right the part is in relation to other parts. The circuitry which determines the horizontal weight is a counter which counts up 1 for each region in the part which is on the extreme left of the figure and down 1 for each region in the part on the extreme right of the figure. No other region is counted. 30 ifv. dV2 Figure ik A Triangle And Its Resolution Into Pulses 31 h) Eight bits are used to describe the vertical position of each part. These 8 bits are called the vertical weight and may be thought of as two individual counts of k bits each. The two sets of h bits in the vertical weight are the weight to the part and the shaded weight. The vertical weight circuitry has two k bit counters which count the number of times the video pulses on a horizontal line change. The weight to the part is the number of line pulse changes from the top of the line drawing to the top of the part being analyzed. The shaded weight is the number of line pulse changes which occur while the part is being analyzed. The weight to the part gives an idea of how far down in the line drawing the part is, while the shaded weight gives an idea of how long the part is ver- tically. 5) The remaining k bits in each 20 bit part number give a measure of the area of each part in relation to the part which preceded it. The area of a part is measured by counting a h MHz oscil- lator during that part of the frame that the shaded part occurs. Only the three most significant bits are considered and these are stored in a register. A second register is used to store the area of the preceding part. The output of these two registers goes to a diode matrix read only memory which has a h bit output corresponding to the quotient of the two area numbers. Division Some question may arise at this point as to why the vertical weight has 8 bits and the horizontal weight has only k bits. This is due to the fact that horizontal complexity causes the number of regions to grow faster than vertical complexity. Since the number of region registers in this particular machine is only l6 , figures which are horizontally complex are excluded and k bits are adequate to describe the horizontal position of the part . 32 by zero is defined since the first part has no preceding part and since some parts may be so small that their area may become zero in the round-off procedure. In summary, the part identification system produces 20 bits for each part of the line drawing. These give the following information: l) The part is described by whether it lies totally inside the line drawing or whether there is some region in the part which lies outside the line drawing. 2) The number of discontinuities in the part are counted. 3) The part is described in terms of the number of regions it contains which are to the left, right, or center with respect to other regions in the line drawing. h) The vertical weight gives a measure of how far down the part is from the top of the line drawing plus a measure of the vertical height of the part. 5) The area of each part is measured and compared to the area of the previous part. The 20 bits describing each part become available at the first vertical blanking interval following the complete analysis of a part. The 20 bits remain available until the next part is analyzed and its 20 bits are ready or until the Start /Reset button is pushed. All 20 bits go to the full rack of dictionary cards simultaneously and in parallel. k.2 DICTIONARY A system diagram for the dictionary system is shown in Figure 15. The dictionary proper consists of a rack of approximately 20 cards. Each card in the dictionary has a diode matrix of 8 lines by kO bits for a 33 Part Integrator Part Inside/ Outside Part Corner Counter Horizontal Weight Counter Vertical Weight Counter Part Area Divider -o > L_ i_ o CO c <: o TJ •*-' k_ o CO a O Drivers I 1 'I /I , k Figure 15 The Dictionary System. 3k total of 320 bits. Half of this diode matrix is programmed to accept up to eight 20 bit numbers which could correspond to 8 parts in a line drawing. The remaining l60 bits in the memory are used to delete certain bit positions in any of the eight 20 bit numbers. The l60 deleting bits will be explained in the latter part of this discussion. Consider now only the eight 20 bit lines, each of which can be programmed to match the 20 bits describing one part in some line drawing. As an example, consider that the line drawing being analyzed is a house consisting of two parts. Somewhere in the dictionary there is a card which has its diode matrix programmed to match the two 20 bit num- bers which describe the triangle and square making up the house. These two diode lines in the matrix are sequentially accessed so that initially the twenty bits coming into the house card (and all other dictionary cards) can "see" only one line of the diode matrix. Line 1 of the diode matrix for the house is programmed for a triangle. If the 20 bits coming into the dictionary match this programmed line, this particular card re- ceives an asynchronous pulse which causes line 1 of the diode matrix to be gated off. The 20 incoming bits then "see" line 2. No other card is clocked unless its line 1 happens to be programmed for a triangle. The next 20 bits presented to the dictionary describe the square and its rela- tion to the triangle. Line 2 of the house card diode matrix is programmed to accept the second part (square) of the house line drawing. When these 20 bits appear at its input, the diode matrix is again clocked one line, A diode matrix is used for several reasons: 1) Diodes happen to be readily available in the quantities needed; 2) Currently available read only memories which can be reprogrammed if an error is made or a change is needed are not economical; 3) Low cost field programmable read only memo- ries cannot be reprogrammed and require several months delivery time. 35 to line 3, which is set to turn on a light and indicate that the house figure has been recognized. Recognition of a given line drawing as described above requires that the dictionary be programmed to be an exact mask for the informa- tion extracted from the line drawing. This is not always desirable and in some cases presents somewhat disturbing results. Consider again the case of the house. It is easy to make two line drawings of a triangle over a square, one of which has a different area ratio between the two parts than the other one. If LINDA recognized houses on the basis of an exact match only, one of these two drawings would be excluded. This re- sult may upset the unknowing human who finds it difficult to "eyeball" the differences in area ratios of the two houses. In some cases, how- ever, such discrimination may be desirable. For this reason a second diode matrix of 8 lines by 20 bits has been added to each dictionary card. This second matrix has one bit position which corresponds to each bit position in the first matrix. If a diode is put into this position, the corresponding bit position in the first matrix will be ignored. For the house with the different area ratio, then, the last k bits in the 20 bit string which describes the area ratio may be programmed out. The logic diagram for a typical dictionary card with its 320 bit diode memory is shown in Figure l6. Note further that since it may be desirable to program out certain bit positions, it is useful to encode each section of the 20 bit part number (corner count, horizontal weight, vertical weight, and relative area) into gray code. This minimizes the amount of reprogramming neces- sary for line drawings that do not match exactly. The gray code conver- sion is done just before the dictionary driver circuitry. 36 15 DIODE MATRIX Each intersection is a possible (Connection point for a germanium diode. + 5 2 3 4 5 6 7 8 Connect last part Figure l6 Logic Diagram For A Typical Dictionary Card. 37 5.0 NOISE CONSIDERATIONS 5.1 ELECTRICAL NOISE LINDA has always been sensitive to noise. This results mainly from the fact that the number of pulses in the video signal is critical to the separation algorithm. A flying spot scanner is used instead of the more usual TV camera system. This scanner provides a cleaner video signal free from the effects of room lighting and shadows. No attempt has been made to use a TV camera input. Some noise still gets into the flying spot scanner signal due to dust on the picture, temperature effects, and electrical noise from the environment. Some pre-processing of the video signal was necessary to cope with these noise sources. The temperature effect became a problem because LINDA deals with a black and white video signal in which the video is converted to TTL logic levels. Ordinarily, it is necessary only to use a comparator to check the video signal against a DC level. The flying spot scanner puts out a gray level, and a comparator video to logic converter changes some of these gray levels to black and others to white. If the video input sig- nal is responsive to temperature changes, a gray level at one temperature may be converted to black, while this same part of the video may be con- verted to white as the system warms up. To circumvent this problem, a video amplifier with AGC was added to the flying spot scanner. The AGC circuitry samples the peak level of the video signal during a single frame and adjusts the gain of the amplifier so as to keep the peak at a fixed level. As a further aid, a Schmitt trigger was added in place of the usual one level video to logic converter. The Schmitt trigger gives two levels for comparison to the video signal. This means that the gray 38 scale must rise above the upper Schmitt trigger level to get a "l" out or below the lower Schmitt level to get a "0" out. This circuitry helps to eliminate small deviations in the video level due to dust or scratches on the slide. Finally, a circuit which cuts out any change in the (logical) video signal which is less than 200 ns in length was added. This was necessary to allow time to do some processing as the signal arrives. This circuitry is presented in Figure 17- The pulse length discriminator, Schmitt trigger logic converter and the AGC amplifier are all circuitry which acts to prevent noise from getting into the system. Some electrical noise from the environment is inevitable and one more circuit has been added to keep this noise from causing a misidentification of a line drawing. The function of this circuit is corrective rather than preventive. It consists of a counter and two registers. The counter counts the number of line pulse changes during one frame and alternately stores this count in one of the two registers. The two registers are compared during the vertical blanking period and if the contents are found to be different a pulse is given out which will reset any analysis in progress. 5.2 PICTURE NOISE The above discussion of electrical noise says little about LINDA' s ability to handle picture noise. LINDA' s picture noise tolerance is in some respects very good and in others only mediocre to poor. Horizontal lines have presented problems to other picture processing projects such as ORBIT (ll) and the tricolor cartograph (7) because they do not appear as a 39 A Video Input 1 Q 1 shot 3~>n gate delay r~V R 2 C 2 t Q 1 shot * 5 gate delay ^H Video output Figure 17 Pulse Length Discrimination. Uo uniform video pulse occupying one or two video lines. Instead, in the more usual case, the horizontal hand drawn line appears in the video signal as a line with small bumps and waves, so that one video line may have a series of pulses instead of a single long smooth pulse. This type of picture noise does not present a major problem to LINDA since the bumps in the video would only create more regions in the part being analyzed. Each small region would be checked in the usual manner with a problem occurring only when the total number of regions is exceeded. Likewise, an open space in a line is also treated as a region, pro- vided the space does not create a complete break in the line. In such a case, the shading algorithm would find that there is a connection between certain regions and the outside of the figure. It would then consider these regions to be outside and ignore them in the analysis. LINDA is therefore sensitive to breaks in the line of the drawings and one must be careful to draw closed figures. Figure 18 presents a sampling of the various types of picture noise that LINDA can and cannot handle. Ill Rounded Corner Uneveness Dust Nonuniform line ** thickness Horizontal line ACCEPTABLE Below resolution ^y Double overlap UNACCEPTABLE Figure 18 Acceptable and Unacceptable Picture Noise. k2 6.0 RESULTS AND RECOMMENDATIONS: The mechanics of the LINDA system are shown in Figure 19- The flying spot scanner is recessed into the top. Line drawings are inserted by open- ing the top cover. LINDA lias two power supply systems: the +2U volt supply operates at less than 1 amp, and the +5 volt system runs all of the bipolar logic at about 12 l/k amps. The dictionary rack faces the operator. It holds up to 19 word cards (in any order) and one driver card. Each word card contains the diode matrix memory for one line drawing. The word cards are labeled and each card has its own red LED. If the line drawing of a house is put into the scanner, then successful identification results when the LED on the word card labeled HOUSE comes on. In the automatic mode of operation, one needs only to insert the line drawing and push the START/RESET button. The oscil- loscope is not essential to the identification procedure but is useful to the operator for observing the state of the machine. About 20 cards have been programmed as of this writing. Some of the more interesting line drawings are shown in Figure 20. LINDA successfully identifies each of these drawings with no major problems. The HOUSE card is simple and easy to program and modify. As a result, most of the program- ming modification has been done with this card. Figure 21 shows some of the house variations that LINDA can accept and identify. Variations are programmed in by using the deletion matrix (section k.2) and deleting par- ticular bits in the first matrix. The error correction circuitry (section 5.1) was one of the last cir- cuits to be made operational. Its operation has been quite favorable, espe- cially in view of LINDA' s sensitivity to noise. This circuitry checks to see whether the picture is consistent from one frame to the next during the U3 Flying spot scanner cower Scope display AC Breaker z- Meters 3 o o ^x^4feet Figure 19 LINDA kh HOUSE SNOOPY o o TRUCK LADDER _ "A SAILBOAT BICYCLE TRAIN VOLKSWAGON Figure 20 Some Line Drawings . 1*5 B H Figure 21 House Variations, U6 analysis of any line drawing. If an inconsistency is detected, the correc- tion circuitry interrupts the analysis and resets it to the starting point. Correct identification usually results even when artificial noise is induced into the system. The ladder, for example, has been correctly identified even when noise interrupted the system to the point where the analysis was delayed by as long as 5 seconds. The following recommendations are for those who work on LINDA or on similar projects. They are mostly from hindsight but some are from areas of interest observed during the construction of LINDA which were not pursued. 1. The flying spot scanner has caused many problems, and should be re- done with electrostatic deflection and at least 500 lines of resolu- tion per frame. 2. The noise correction circuitry should be increased so that more errors can be detected. Analysis should be done to see if these errors result in a mi si dent i fie at ion and warrant resetting the machine. 3. The video signal should be further analyzed by the delay line com- parison techniques used here to allow LINDA to work on overlapping line drawings. Once an elementary part is separated, it may be analyzed in conjunction with other parts to see if one part lies inside another or if 2 parts can form a 3rd more easily identified part. k. A master timing scheme should be worked out so that all timing pulses can be derived from the horizontal or vertical sync, signals. 5. The dictionary system should be built for a specific set of patterns. The pattern set determines the size of the system and should be the major consideration in determining which features will be analyzed. hi APPENDIX I The circuit diagrams included in this appendix are the working schematics from which the main parts of the system were built. The following circuit diagrams are included. 1. All Shaded Video circuit (Figure 23) 2. On-Line Region Indicator (Figure 22) 3. Frame Region Register (Figure 22) k. Gating card (Figure 22) 5. Permanent Region Register (Figure 22) 6. Start /Reset card (Figure 2k) 7. Dictionary Timing card (Figure 25) 8. Horizontal Weight card (Figure 26) 9- Vertical Weight card (Figure 27) 10. Dictionary Word card (Figure 28) The following list of circuits and systems are part of LINDA hut are not included in this appendix: 1. Horizontal and Vertical Sync. Generator 2. Video to Logic Converter 3. Pulse Length Limit er k. Delay Line System 5. Error Recycle card 6. Change Detector 7. Background card 8. Switch latch card 9. Video Amplifier card 10. Horizontal and Vertical Sweep circuits U6 11. Differentiation System 12. Corner Counter 13- Part Integrator Ik. Part Area Divider 15. Part Information Display card 16. Dictionary Driver and Gray Code Converter 17. Part Information Gray Code Display card 18. Flying Spot Scanner Modification cards 19. 2U volt Power Supply Regulators U9 % % f f f 50 OE LAyto V 1OE0 l/IOEo ~74 -2 3T SHADtO c \/l DHo UJ V hor - Sjoc n^ DELAy ED V iOt (eM SHftOtO '4 74/23 V Q STAgfU/ PER.M. % 4£ 7*- Y -NAANy-jl 7* Q d €11 r^oDt i (3^ NEXT PaB-t 'Sw. Figure 25 Working Schematic for Dictionary Timing Card. 53 tj f 1+1" Ca S M APE D T4-Q4- %74*< 1 + 11? Cup 9. So iok-ioqW. **»t\ OQ?4 '/a 74/3J 4, Q _l /«*. /40/y 1 1 l_ 1*zs X PR-EANALVfE * 74/9 3 Qc Load (5^1 I> Figure 26 Working Schematic for Horizontal Weight Generator. 5fc PRE-ANAL^jt C LKA r. LINE PULSE C HAN&E rO— 5>HA0ED /o/fc /MP/ u -v*H<- 7 4oo Hob. * 74»z/ VER.T 7 + 40 Figure 27 Working Schematic for Vertical Weight Generator, 55 O c Qe <$a 1 AAlWN /0fcV- ^or^^ti /a* Figure 28 Working Schematic for Dictionary Word Card. 56 APPENDIX II Operation instructions for the LINDA system. 1. The main power cord should be plugged into 110 vac. LINDA draws about 6 amps. 2. Turn on the main AC breaker on the front of the cabinet. The red POWER ON light should come on immediately. 3. Wait until the SCANNER READY light comes on. There is a time delayed warm up of about 1 minute. h. Lift cover of flying spot scanner and insert the line drawing. 5. The line drawing will appear on the screen when the scanner ready light comes on. 6. Set the MODE switch to either AUTO or MANUAL. ?. If in the Auto mode push the START/RESET button. LINDA will do the analysis automatically. The parts of the drawing will be separated and flashed on the screen as they are analyzed. The line drawing will re-appear after the analysis is completed. If the analysis is success- ful the correct light will come on at the appropriate dictionary word card. If the environment is noisy or if the picture presents special problems the analysis may take several seconds. During this time various parts will be flashed on the 'screen since each time an error is detected the cycle is reset to part one. Artificially induced noise can produce the same effect. To demonstrate this one need only wiggle a finger in front of the photomultiplier tube in the flying spot scanner. 8. If in the manual mode push START/RESET. Part one will appear on the screen and remain there until the operator pushes the NEXT PART button. The next part will then appear. Continue pushing NEXT PART until 57 the last part of the drawing is seen on the screen. A light on the appro- priate dictionary word card will come on identifying the line drawing. Pushing the NEXT PART "button one more time will bring back the line draw- ing. To begin again push START/RESET. 9. The DISPLAY DRAWING button will cause the line drawing to be displayed on the screen regardless of the machine cycle. 10. Note that in the manual mode the error-recycle card still func- tions. If an error is detected when the operator is trying to see any part after the first the machine will reset to part 1. If this is annoying and one is interested only in seeing the separation the error-recycle card can be removed and the system will operate without it. 11. The dictionary cards can go in the dictionary rack in any order or position except for the driver card which must operate in the left most rack position (as the operator faces the machine). Do not put any other card in this position. 12. Any card may be removed from the system without harming it while the power is on with the exception of those cards inside the flying spot scanner. These cards have high voltage on them and should not be handled or removed unless the power is unplugged . 13. Along the left and right sides of LINDA at the bottom of the cabinet are two receptacles (one on each side) which are connected to 110 VAC when the system is plugged in. They are useful for maintenance purposes for such things as an oscilloscope or a soldering iron. Maximum output is 5 amps. lU. The two racks in back of the cabinet swing out on hinges. They are not self supporting and should be supported from below or with the hanging wire support provided. 58 15- The following is a list of fuses and circuit breakers in the system. A. Main Power breaker, 15 amps on both sides on line. B. Mini-breaker (15 amps) in 6 terminal receptacle bank. C. Main 5 volt supply - h amp fuse on front D. "Power-One" 5 volt supplies - current limited on output to 3 amps. 1 amp fuse in primary of each. E. Oscilloscope display - h amp fuse in front F. Flying spot scanner - 3 amp fuse in back. G. 2k volt system is current limited to two amps. H. Each side receptacle has a 5 amp fuse on each side of the line, I. U5 volt supply - 1 amp fuse in primary. 59 REFERENCES 1. 1972-73 AEC Proposal; Part B, Uncommon Forms of Information Processing and Novel Displays. 2. Freeman, Herbert, "On the Encoding of Arbitrary Geometric Configur- ations," IRE Transactions on Electronic Computers, June 196l, pp. 260-268. 3. Greanias, E. C. , Meagher, P. F. , Norman, R. J., and Essinger, P., "The Recognition of Handwritten Numerals by Contour Analysis," IBM J. Res. and Develop., Vol. 7, No. 1, Jan. 1963, pp. lU-21. k. Gregory, R. L. , Moray, N. , and Ross, Helen E. , "The Curious Eye of Copilia," Nature, Vol. 201, March 21, I96U , pp. Il66-ll68. 5. Harmon, L. D. , "Line-Drawing Pattern Recognizer," Electronics, Sept. 2, I960, pp. 39-^3. 6. Kazmierczak, H. , and Steinbuch, K. , "Adaptive Systems in Pattern Recognition," IEEE Transactions on Electronic Computers, Dec. 1963, pp. 822-835. 7. Kubitz, W. J. , A Tricolor Cartograph, Report No. 28, Department of Computer Science, University of Illinois. 8. Levine, M. D. , "Feature Extraction: A Survey," Proceedings of IEEE, Vol. 57, No. 8, Aug. 1969, pp. 1397-1^07. 9. Lindgren, Nilo, "Machine Recognition of Human Language, Part III - Cursive Script Recognition," IEEE Spectrum, May 1965» pp. 10U-116. 10. Noton, D. and Stark, L. , "Scanpath in Eye Movement During Pattern Recognition," Science, Vol. 171 » PP- 308-311. 11. Oberbeck, P. E. R. , ORBIT (On-Line Reduced Bandwidth Information Transmission), Report No. *+30, Department of Computer Science, University of Illinois. 12. "Quarterly Technical Progress Report," Department of Computer Science, University of Illinois, Starting Oct. 1969 to March 197^- 13. Uhr, Leonard, Pattern Recognition , Wiley, New York, 1966. 6o VITA Dick Blandford was born on October 1, 19^5 in Tell City, Indiana. He received his B.S. in Electrical Engineering from the University of Evansville in 1968 and an M.S. from the University of Illinois in 1971 • His undergraduate work with the University of Evansville was a 5 year co- operative training program with the Maxon Construction Company in Tell City. SECURITY CLASSIFICATION OF THIS PAGE (Whan Data Bnlrrad) REPORT DOCUMENTATION PAGE READ INSTRUCTIONS BEFORE COMPLETING FORM 1. REPORT NUMBER ~ • """ UIUGDCS-R-7^-668 2. GOVT ACCESStON NO. 3. RECIPIENT'S CATALOG NUMBER 4. TITLE fand Subtltla) LINDA (LINE DRAWING ANALYZER) S. TYPE OF REPORT ft PERIOD COVERED technical «. PERFORMING ORG. REPORT NUMBER 7. AUTHORf'J Dick Kent Blandford •. CONTRACT OR GRANT NUMBERS 9. PERFORMING ORGANIZATION NAME AND ADDRESS Department of Computer Science University of Illinois at Urb ana-Champaign Urbana, Illinois 6l801 10. PROGRAM ELEMENT, PROJECT, TASK AREA ft WORK UNIT NUMBERS 11. CONTROLLING OFFICE NAME AND ADDRESS Office of Naval Research 219 South Dearborn Street Chicago, Illinois 6o60h 12. REPORT DATE July, 197*+ 13. NUMBER OF PAGES 14. MONITORING AGENCY NAME ft ADDRESSfJf dtHarani /root Controlling Ollict) 18. SECURITY CLASS, (of thlm import) 18a. DECLASSIFICATION/ DOWNGRADING SCHEDULE 16. DISTRIBUTION STATEMENT (at thla Report) 17. DISTRIBUTION STATEMENT (of th» mbattmct antatod In Block 30, It dlttatant from Raport) 18. SUPPLEMENTARY NOTES 19. KEY WORDS (Continue on r»vat»» aid* II nacaaamry and Idantlty by block numbar) Line drawing Pattern recognition Video signal analysis 20. ABSTRACT (Contlnua on rarataa alda II naeaaamry and Idantlty by block numbar.) LINDA is a hardware project in pattern recognition. Line drawings in LINDA's ■ocabulary are made up of closed polygons and circles. Identification of such rawings is based upon the separation and serial analysis of each of the simple >arts of the drawing. Line drawings are presented to LINDA on a clear plastic ard, which a flying spot scanner converts to a video signal. This signal is nalyzed in terms of the number of video pulses on a horizontal scan line. When he total number of pulses on one horizontal line changes, new regions are de- 'ined which may or may not belong to the same part of the line drawing. Long »i:X M 7,M73 EDITION OF 1 NOV 68 IS OBSOLETE S/N 0102-014-6601 | SECURITY CLASSIFICATION OF THIS PAGE (Whan Dmta Entarad) , , .T^TTTTaSSIMCATION OF THIS PAGCrWh-. P«»« gn..r»d; shift registers are used as delay lines and one horizontal line is delayed and compared to the next line. The result of this comparison gives the information needed to determine which regions belong to which parts of the line drawing. Once this information is obtained, the drawing is separated into tis parts and each part is analyzed in turn with the top left most part being first. Twenty bits of information are produced for each part. These twenty bits tell how many corners the part has, how big the part is in relation ot other parts, the loca- tion vertically and horizontally with respect to other parts, and whether the part has any connection to the outside of the line drawing. An associative memory is used for a dictionary with one card and up to l60 bits for each line drawing. Information is received simultaneously by all cards in the dictionary as a series of 20 bit numbers. When the correct series of 20 bit numbers is received by a card in the dictionary it turns on a light indicating identifica- tion. The LINDA system is a hardware project and it has been built in prototype form. Logical details of the construction are presented with a section on results and recommendations. SECURITY CLASSIFICATION OF THIS PAGE(TWi»fi Dmtm Battel) BLIOGRAPHIC DATA EET Title and Subtitle 1. Report No. UIUCDCS-R-71+-668 LINDA ( LINE DRAWING ANALYZER) Author(s) Dick Kent Blandford Performing Organization Name and Address Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 Sponsoring Organization Name and Address Office of Naval Research 219 South Dearborn Street Chicago, Illinois 6o6o4 Supplementary Notes 3. Recipient's Accession No. 5. Report Date July, 197U 6. 8. Performing Organization Rept. No. 10. Project/Task/Work Unit No. 11. Contract/Grant No. 13. Type of Report & Period Covered technical 14. LINDA is a hardware project in pattern recognition. Line drawings in LINDA 1 s cabulary are made up of closed polygons and circlet. Identification of such drawings based upon the separation and serial analysis of each of the simple parts of the S o? 1 ^;™ ine d^ngs are presented to LINDA on a clear plastic card, P which a flying ot scanner converts to. a video signal. This signal is analyzed in terms of the niSfei video pulses on a horizontal scan line. When the total number of pul¥es on one hSri- "£al line changes, new regions are defined which may or may not belong to the Same rt of the line drawing. Long shift registers are used as delay lines and one horizon- 1 line is delayed and compared. to the next line. The result of this comparison gives L S 0rm n tl0n + {!- ed ^, t0 determine which regions belong to which parts of P the linl awing. Once this information is obtained, the drawing is separated into its iarts snr ch part is analyzed in turn with the top left most part being first. Twent? Jits of formation are. produced for each part. These twenty^bits telf how many corners the rt has how big the part is in relation to other parts, the lo c at ioT vertically and rizontally with respect to other parts, and whether the part has any connection to the rrTandun to liffh^flv^ " *J£ associative memory is used for a dictionary with one ra ana up to ibU bits for each line drawing. Information is received simultaneous"! v all carts in the dictionary as a series of 20 bit numbe?s WheS the cor^cHeriei J 2 ?-^ numbers is received by a card in the dictionary it turns on a light indicating <- n w 1 1 x c cLu 1 on • The LINDA. system is a hardware project and it has been built in prototype form. ?ical details of the construction are presented with a section on results and recom- naao ions . Key Words and Document Analysis. 17a. Descriptors le arawmg :tern recognition leo signal analysis Identifiers/Open-Ended Terms COSATI Field/Group Availability Statement Unlimited distribution A NTIS-35 ( 10-70) 19. Security Class (This Report) UNCLASSIFIED 20. Security Class (This Page UNCLASSIFIED 21. No. of Pages 71 22. Price USCOMM-OC 40329-P71 in a. uJ CO I UNIVERSITY OF ILLINOIS-URBANA 510 84 I18R no COO? no 667 672(1974 Raport/ ■ 3 0112 088401382 I ■tfl I ■ ■ ■ ■■ ■ ■ ■ ^Uftl ■I B 8 HH BBfl ^■1 H I SIBBHfl HHBHH H Hi iBmSBfl / H H mm I B r HRBSBtttiBBfla 1