US4791675A - VSP Connectivity pattern recognition system - Google Patents
VSP Connectivity pattern recognition system Download PDFInfo
- Publication number
- US4791675A US4791675A US06/815,476 US81547685A US4791675A US 4791675 A US4791675 A US 4791675A US 81547685 A US81547685 A US 81547685A US 4791675 A US4791675 A US 4791675A
- Authority
- US
- United States
- Prior art keywords
- pixel
- pixels
- frame
- region
- value
- 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 - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/457—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
Definitions
- the present invention relates generally to image processing systems and, more particularly, to an image processing system for enhancing and analyzing a digital image.
- a robot arm may be assigned the task of sorting nuts and bolts on a moving conveyor belt.
- the image processing sort must supply the information relating to: (1) the position of each object; and (2) the identity of each object. Also, because the belt is moving and the objects themselves are to be moved by the arm, this information must be continually updated.
- a typical digital image processing system acquires frames at a rate of about 30 per second. Each of these frames typically has dimensions of 512 ⁇ 512 pixels. Accordingly, in one second a huge amount of data, 7,864,430 pixels per seconds, must be processed.
- the robot arm or other automated machine, requires correctional feedback to compensate for positional changes.
- the speed of operaion of the automated machine depends on the frequency of updating the information supplied by the image processing system. Accordingly, a great need exists for an image processing system that updates information at the rate that image frames are provided to the system.
- the present invention is a system for computing morphological, and other, characteristics of regions in a binary labelled frame. These characteristics may be compared to stored reference characteristics to determine the identity of objects in the frame.
- Two particularly useful morphological characteristics are the perimeter and Euler number of a region. Other characteristics of interest include dimension, position, and orientation characteristics. Several characteristics may be needed to distinguish between objects having similar values of one characteristic.
- a particularly beneficial attribute of the present system is its capability to compute a characteristic, or a set of characteristics, at the frame rate. This capability facilitates feedback to and correction by an automated system at the maximum possible rate.
- a functional quantity is assigned to a center pixel positioned at the center of a rectangular region of a frame.
- the value of the functional quantity is determined by the pixel values in the rectangular region.
- the functional value is substituted for the pixel value of the center pixel to generate a processed image.
- a selected functional value is accumulated to compute a morphological characteristic of an object region in the frame.
- a region labelling system labels each object region, or subregion, in a frame with a separate index.
- This index is used by a statistics component to route functional values from different object regions, or subregions, to separate accumulators identified by the index of the region.
- the quantity in each accumulator at the end of a frame cycle is the computer value of a selected morphological, or other, characteristic of each labelled region.
- an architecture of a morphological component for generating the selected functional values includes a line delay element for outputting J adjacent lines of a frame, a bit packer element, for outputting the pixel values of J ⁇ K region of the frame, and a look-up table, for mapping the J ⁇ K pixel values into a selected functional value.
- a set of selected functional values may be simultaneously generated and accumulated to compute several morphological characteristics in parallel.
- FIG. 1 is a schematic diagram of a frame of pixels.
- FIG. 2 is a block diagram of an image acquisition system.
- FIG. 3 is a set of timing diagrams for handshake signals.
- FIG. 4 is a block diagram of the image processing system of the present invention.
- FIG. 5 is a block diagram of a system for performing binary morphological processes.
- FIG. 6 is a schematic diagram of the delay line unit.
- FIG. 7 is a schematic diagram of an area bit packer.
- FIG. 8 is a schematic diagram of an LUT.
- FIG. 9 is a schematic diagram illustrating a grow operation.
- FIGS. 9A and 9B are schematic diagrams illustrating a shrink operation.
- FIG. 10 is a set schematic diagram of pixel patterns for pixels on the boundary of an object region.
- FIG. 11 is a schematic diagram of an object region.
- FIGS. 12A--12C are schematic diagrams illustrating patterns for computing the microperimeter of an object region.
- FIGS. 13A and 13B are schematic diagrams of pixel patterns utilized to compute the Euler number of objects in a frame.
- FIGS. 14A and 14B are schematic diagrams illustrating the computation of the Euler number.
- FIG. 15 is a block diagram of an embodiment of the region analysis subsystem.
- FIG. 16 is a schematic diagram illustrating the function of the region labelling unit.
- FIGS. 16A-16Z illustrate the operation of the region labelling component.
- FIG. 17 is a schematic diagram illustrating the operation of the statistics gathering unit.
- FIG. 1 is a schematic diagram of an image frame.
- the image frame 10 is divided into elemental area unit termed pixels 12.
- the pixels are depicted having square boundaries.
- Each pixel has an associated pixel value indicating the brightness of the portion of the image incident on the pixel according to a predetermined gray scale.
- the frame has dimensions of 512 ⁇ 512 pixels, with each pixel value represented by an eight bit binary number on the gray scale.
- FIG. 2 is a block diagram of a typical image acquisition system for use in an image processing system.
- a camera 20 typically a charge coupled device camera, is connected to an analog to digital (A/D) converter 22.
- the output of the A/D converter 22 is a series of digital signals encoding the gray scale values of each pixel.
- the A/D converter 22 output is coupled to the input of a filtering unit for improving the quality of the image.
- the output of the filtering unit is coupled to the input of a binary conversion unit 46 for converting the gray scale image to a binary image.
- the binary conversion unit 46 is a thresholding unit programmed with a given threshold value. All gray scale values above the threshold value are converted to a binary 1 and all gray scale values below the threshold value are converted to binary 0.
- an object region of pixels in the frame have higher gray scale values than the background region in the frame. Accordingly, the object regions will be labelled with binary "1"'s and the background with binary "0"'s. Of course, the system could also be configured to have the object regions labelled with binary "0"'s and the background labelled with binary "1"'s.
- FIG. 3 is a timing diagram illustrating typical handshake signals utilized to coordinate timing of the various subsystems of the image processing system.
- a PCLK signal functions as the basic pixel clock signal.
- PCLK has a nominal pixel scan rate, RP, of 20 MHz.
- a "valid" signal indicates whether a valid pixel will be transferred on the next clock cycle.
- An HSYNC signal 32 is asserted to indicate the extent of each line of data.
- a VSYNC signal 34 indicates the duration of each frame cycle. The frames are generated at a nominal frame generation rate, RF, of 30 Hz.
- the HSYNC signal remains true while 512 valid PCLK pulses occur and is then false for the duration of the interline gap.
- the VSYNC signal remains true while 512 valid lines are transmitted.
- a pixel valid signal 36 is asserted by subsystem components to indicate whether the component output is valid pixel data.
- FIG. 4 is a block diagram of the image processing system of the present invention.
- the output of the image acquisition system 20 is coupled to the input of an optional image enhancement subsystem 40.
- the output of the image enhancement subsystem is coupled to the input of a region analysis subsystem 42.
- Each subsystem is coupled to a processor system 44 by processor interfaces 46, 48, and 50.
- the image acquisition system 20 contains a camera or line scanner generating a raster image of a scene containing the object to be analyzed.
- the image is filtered to remove noise and then thresholded or otherwise converted to binary.
- Up to 20,000,000 one-bit pixel values per second are transferred to the image enhancement subsystem 40.
- the active pixels which correspond to object silhouette typically have a value of 1, the inactive pixels which correspond to background, or the absence of object, are typically 0 value.
- the image enhancement subsystem 40 performs one or several iterations of a shrink-grow operation. These operations remove small regions of pixels of one value enclosed within regions of pixels of the other value. This so called “salt and pepper" noise removal reduces the number of discrete connected regions of active pixels. In certain cases, the image may be of sufficient quality that shrink and grow operations are not needed. In this case, the binary pixels from the image acquisition system 20 are passed directly to the region analysis subsystem 42.
- the region analysis subsystem 42 accepts a stream of binary pixels, where each connected region of binary pixels is considered to be a single object, for analysis.
- the regions of pixels are first identified, and then various characteristics of each region are computed in parallel. The resulting characteristics are passed to the processor system.
- the processor subsystem 44 controls the special purpose hardware in the other three subsystems and interprets the characteristics from the region analysis subsystem.
- the processor also compares the characteristics supplied by the region analysis subsystem 42 with stored characteristics previously computed from reference objects. Accordingly, if these characteristics compare then the object in the frame is identified as the reference object having the same characteristics.
- the processor system 44 also interfaces with external systems and communicates the results of the computation performed by the image analysis subsystem.
- FIG. 5 is a block diagram of a basic architectural unit utilized in both the image enhancement and region analysis subsystems 40 and 42. This architecture functions as a morphological component of the image analysis system. In the present embodiment, each component is implemented on a silicon substrate utilizing VLSI technology.
- a line delay element 50 has an input coupled to receive a stream of binary pixel values representing a frame. The outputs of the line delay element 50 are provided to the inputs of an area bit packer (ABP) 52.
- a look-up table (LUT) has an input port coupled to the output port of the ABP and an output port for providing a functional output.
- the function of this architecture 49 is to generate a set of selected functional values that depends on the values of the pixels in a particular 3 ⁇ 3 rectangular region of a frame.
- the LUT 54 is programmed to provide functional values of the pixels in the enhanced image. The detailed operation of the image enhancement subsystem 40 will be described below.
- the functional values are programmed to be accumulated over the duration of a frame. These accumulated functional values are utilized to compute morphological characteristics of objects in the frame.
- the output at the first line delay output port 50A comprises the binary pixels in line l n .
- the output signals generated at the second and third line delay output ports 50B and 50C correspond to the lines l n-1 and l n-2 , respectively.
- the pixel value corresponding to the same pixel position, p r , in each of the above-identified lines is provided at the output ports 50A-50C during the same PCLK cycle.
- the output signals from the line delay element provide three adjacent lines of the frame.
- the pixel values of each of these lines is provided at the pixel scan rate, RP.
- the ABP 52 accepts the three lines of the frame from the line delay element and maps the pixel values at pixel positions p r , p r+1 , and p r+2 , in each of the three image lines l n , l n-1 , and l n-2 , into the single bit positions of a 9-bit area bit packer output signal, Y. This output signal is transferred to the LUT by a 9-bit digital bus.
- the function of the look-up table is to provide a digital morphological functional value at its outputs for selected values of the 9-bit ABP output signal. This relationship is illustrated in Equation 1.
- Equation 1 D is the digital output signal provided by the LUT 54, Y is the digital input signal to the LUT 54 provided by the ABP 52, and f represents the function generated by the LUT 54.
- the LUT output signal, D is an eight-bit binary signal. The various bit planes in the eight-bit output signal may be programmed to generate different morphological functions.
- Equation 2 is an exemplar of a possible programming scheme for the various bit planes.
- the LUT is programmed so that the value of the first bit, D 0 , of the LUT output signal is equal to the function f 0 of the APB output signal.
- the second bit, D 1 is equal to the function f 1 of the APB output signal.
- the functions f 0 and f 1 are single bit functions.
- the LUT is programmed so that the third and fourth bits of the LUT output signal are equal to a functional value specified by f 2 . Accordingly, f 2 may have four values, i.e., 00, 01, 10, or 11.
- the fifth and sixth bits of the LUT output signal indicate the functional values f 3 and f 4 , respectively.
- a set of functional values is generated each PCLK cycle. These functional values may be utilized for processing the image frame or computing morphological characteristics. Several functional outputs may be processed in parallel each PCLK cycle.
- FIG. 6 is a more detailed schematic diagram of the delay line unit 50.
- three memory banks 60, 62, and 64 each include an I/O port, ADR port, and write enable port (WE).
- the delay line input port 51 is coupled to the input ports of first, second, an third tri-state buffers 65a, 65b, and 65c.
- the output of each tri-state buffer is coupled to first, second, and third data buses 66, 68, 70, respectively.
- a single VLSI chip includes all of the control elements described here and also includes the three banks of memory. Each bank of memory is sufficient to hold up to 256 pixels in each line. If the line length is greater than 256 pixels, then an alternative embodiment is used where the same VLSI chip is connected to external static RAM chips of sufficient size to hold the length of line.
- the first data bus 66 is coupled to the I/O port of the first memory bank 60 and a first input port of a switching circuit 72.
- the second data bus 68 is coupled to the I/O port of the second memory bank 62 and a second input port of the switching circuit 72
- the third data bus 70 is coupled to the I/O port of the third memory bank 64 and a third input port of the switching circuit 72.
- the WE enable ports of the first, second, and third memory banks 60, 62, 64 and control inputs of the first, second, and third tri-state buffers 65a, 65b, and 65c are coupled to first, second, and third inputs of a WE signal generator 74 by WE lines 75a, 75b, and 75c.
- the ADR ports of the memory banks are coupled to the output port of an ADR generaor 75.
- a switch controller 76 has an output coupled to a control input of the switching circuit 72.
- the WE generator 74, ADR generator 75, and switch controller 76 each have a handshake input port, coupled to a HS(in) bus 77, for receiving incoming handshake signals comprising the PCLK signal and the HSYNC, VSYNC, and pixel valid signals generated by the data acquisition system.
- a delay element handshake signal generator 78 includes a handshake input port for receiving the incoming handshake signals and a handshake output port.
- the output ports of the switching circuit are coupled to the output ports of the line delay element 50A, 50B, and 50C.
- the address generating circuit 65, the write enable signal generating circuit 66, and the switch control 74 receive the incoming handshake signals, HSYNC, VSYNC, and pixel valid, on the handshake in bus 76.
- the address generator counter output spans on address space for the pixels in each line (000-511).
- the counter 68 is initialized by the HSYNC, VSYNC, and pixel valid signals at the termination of a given line and frame.
- the ADR generator is incremented by PCLK when pixel valid is asserted.
- the first write enable signal for the first line bank 60 is asserted by the write enable signal generator 74 so that the first tri-state buffer 65a transmits the pixels in l n to the first data bus 66 and so that pixel p 0 is stored in storage location 0, p 1 is stored in storage location 1, and so on.
- the pixels in the previous two lines of the frame, l n-1 and l n-2 were similarly stored in banks 1 and 2, 62 and 64, respectively, during previous line cycles.
- the write enable signals for banks 1 and 2 are not asserted by the write enable signal generator 66.
- the second and third tri-state buffers 65b and 65c isolate the third and fourth data buses 68 and 70 from the delay element input port.
- the switching circuit 72 selectively couples each input port to a selected output port under control of the signal received at the control input port.
- the switching circuit output ports are the delay output ports 50a, 50b, and 50c.
- the first, second, and third input ports are coupled to the first, second, and third output ports of the switching circuit.
- the pixels of l n are transferred to the first output port 50a
- the pixels of line l n-1 stored in the second memory bank 62
- the pixels in l n-2 stored in the third memory bank 64, are transferred to the third output port 50c.
- the HS generator 78 receives the incoming handshake signals generated by the image acquisition system. These incoming signals provide time references for generating the addresses and WE enable signals to process pixels in the line delay element 50.
- the line delay element 50 introduces processing delays so that the output pixels from the line delay element 50 are no longer defined by the time frame defined by the incoming handshake signals.
- the handshake generator 82 generates line delay handshake signals that define line, frame, and valid pixel time references for the output pixels of the line delay element 50.
- the basic clock signal PCLK is supplied to each component.
- the handshake signals, HSYNC, VSYNC, and pixel valid that define the time references for the component output pixels are generated at each component. All handshake signals are referenced to PCLK and all components operate at the frequency of PCLK, RP.
- FIG. 7 is a more detailed schematic diagram of the ABP 52.
- the ABP 52 includes three three-bit shift registers, 80, 82, and 84.
- the input of the first shift register 80 is coupled to the first output port of 50A of line delay element 50
- the input of the second shift register 82 is coupled to the second output port 50B of the line delay element 50
- the input of shift register 2 is coupled to the third output port 50C of the line delay element 50.
- the nine-bits stored in the three shift registers 80, 82, and 84 at any given time represent the pixel values in a 3 ⁇ 3 neighborhood of the frame.
- An HS and CTR signal generator 85 receives the PCLK signals and handshake signals from the line delay component 50. These signals are utilized to generate control signals for shifting valid pixels through the shift registers 80-84 at the PCLK rate. The HS generator 85 also generates HS out signals for defining a timing reference for the pixels transmitted by ABP 52.
- the bits in the 3 ⁇ 3 neighborhood are labelled with the first bit being in the uppermost right hand corner and the last bit being in the lower left hand corner and with the bits labelled across each shift register and then down to the next shift register.
- the shift register elements of the shift registers 80, 82, and 84 are coupled to the nine-bit output port (Y) of the ABP 52.
- the nine-bit (Y) word presented at the ABP output port uniquely represents the value of the pixels in the 3 ⁇ 3 neighborhood of the frame.
- the ABP output signal (Y) defines a pixel pattern centered at a center pixel positioned in position 5 of the 3 ⁇ 3 region. For a given frame supplied to the ABP, nine-bit output signals can not be generated for pixels in the top and bottom rows and first and last columns of the frame. Accordingly, the ABP output signal is defined over a smaller frame then provided to the ABP inputs.
- a functional output of the ABP is sequentially generated for every valid pixel in the frame at the pixel scan rate, RP.
- the functional output for a particular pixel occurs during the PCLK cycle that the particular pixel is a center pixel, i.e., is positioned at position 5 of the ABP 52.
- the ABP generates HS out signals to reference the values of the functional outputs to the frames and lines defined by the center pixels.
- the handshake signals generated by the ABP define the time reference for this smaller frame.
- FIG. 8 is a detailed schematic diagram of the look-up table 54.
- the look-up table comprises a random access memory (RAM) having 512 storage locations with each storage location selected by an address signal provided to the address input of the RAM. Each storage location stores an eight-bit word.
- bit planes corresponding to specific bits in the LUT output signal (D) may be independently programmed to specific functional values.
- a specific utilization of the architecture of FIG. 5 to perform an image enhancement function will now be described with reference to FIG. 9. It is desirable to eliminate object regions consisting of only a few pixels from the plane prior to region analysis. These regions do not represent real objects in the scene, but result from noise. These noise objects are often called "salt and pepper" regions and may cause errors in the region analysis subsystem computation results.
- a salt region may be an isolated object pixel in the background and a pepper region may be an isolated background pixel in an object region.
- FIG. 9A an object region 90 and a salt region 92 are depicted.
- a shrink operation all pixels on the boundary of an object are converted from object pixels, value "1", to background pixels, value "0".
- the result of the shrink operation is depicted in FIG. 9B. Note that the salt pixel 92 has disappeared.
- a general image enhancement operation may comprise a series of shrink operations followed by the same number of grow operations, or, even a sequence of such shrink and grow operations.
- the programming of the LUT 54 to accomplish a shrink operation will now be described.
- the shrink operation is programmed in the first bit plane of the LUT 54.
- Signal output D 0 is utilized to provide the pixel signal for generating a frame.
- the pixel at position 5, designed the center pixel, in the 3 ⁇ 3 array is analyzed to determine whether it is positioned on the boundary of an object.
- FIG. 10 depicts several configurations where position 5 is at the boundary of an object.
- the bit packer output signal Y is also listed.
- FIG. 10 is not intended to be exhaustive, but merely illustrative.
- the word stored at location Y0 is "0xxxxxxx". Where x means "don't care”.
- the word stored at location YBG is "0xxxxxxxx”.
- the bit packer output is YW. The word stored at location YW is "1xxxxxxxx”.
- the grow operation is similarly implemented in the second bit plane of the LUT output signal.
- Center pixels are analyzed to determine whether they are background pixels positioned adjacent to the boundary of an object. If so, the functional output of D 1 is "1". For background center pixels not adjacent to an object, the signal value D 1 is 0 and, for center pixels interior to an object the signal value at D 1 is 1.
- the first computational operation described is the computation of the perimeter in an object of a frame.
- the present example is for a frame having one object region, however, a system for computing the perimeters, or other morphological characteristics, of several objects in a frame, is described below.
- FIG. 11 depicts an object region in the frame. Note that the shape depicted in FIG. 11 is an approximation to the true shape of a real object. The square edges resulting from the scanning technique are not necessarily congruent to the edges of the actual object. Accordingly, any algorithm for computing the perimeter will merely generate an approximation to the true perimeter of the object.
- the pixels on the exterior boundary of the object are labelled from P1-P14. Additionally, the pixel edges on the boundary of the object are labelled from E1 to E26.
- the first algorithm for computing the perimeter of the object utilizes a macroperimeter approach wherein the perimeter of the object is set equal to the number of pixels on the boundary of the object.
- the output at D 2 is 1 only for the fourteen pixels on the boundary of the object.
- a second algorithm calculates the number of edges on the boundary of the object and generates a microperimeter measure.
- the functional values, f 4 (Y), are either 0, 1, 2, or 3 and therefore must be programmed into two bit planes.
- the functional outputs are generated on the fourth and fifth bit planes, D 3 and D 4 .
- FIGS. 12A, 12B, and 12C given an indication of the construction of the function.
- background pixels are labelled "B”
- interior pixels are labelled "I”
- perimeter pixels are given a label corresponding to FIG. 11.
- the functional value at D 5 and D 4 is "00".
- FIG. 12A depicts a center pixel having one edge adjacent to the background.
- the bit packer outputs, Y for each of the configurations depicted in FIG. 12A-12C are also listed on the figure.
- the micromeasure of the object's perimeter may be generated.
- FIGS. 13A and 13B depict the two patterns utilized to generate the functional output for the Euler number.
- This function f 5 (Y) requires two bit planes to span the three functional values +1, -1, and 0.
- FIG. 13A depicts the pattern for generating a functional value of +1
- FIG. 13B depicts the pattern for generating a value of -1. All other patterns generate the functional value 0.
- the first pattern of FIG. 13A depicts the top left outside corner of an object and the second pattern, FIG. 13B, depicts the bottom right hand inside boundary of a hole in an object.
- FIGS. 14A and 14B illustrate the operation of the first and second patterns of FIG. 13 to generate the Euler number.
- FIGS. 14A a simple square object having a single square hole is depicted. Note that the only position on the object that fits the first pattern (FIG. 13A) is the upper left hand corner 140. The only position that fits the second pattern (FIG. 13B) is the boundary of the lower right hand corner of the hole 142. Accordingly, the Euler number is +1 -1, or 0.
- FIG. 14 depicts the more complicated case where the rectangular object 150 is oriented in a diagonal fashion.
- the 45° edge of the object is represented as a staircase of pixels.
- a first staircase 152 defines the outer left edge 154 of the object 150 and a second staircase 156 defines the inner right boundary 158 of the hole in the object 150.
- Each staircase of pixels 152 and 156 include outer step edges 160 and inner step edges 162.
- the external upper left boundary 154 of the region 150 is a staircase having nine outer edges 160 and eight inner edges 162.
- the first pattern (FIG. 13A) corresponds to the outer edges 160 of the staircase 152 and the second pattern (FIG. 13B) corresponds to the inner edges 162 of the staircase 152. Accordingly, the staircase corresponding to the outer edge 152 generates nine +1 functional outputs and eight -1 functional outputs.
- that staircase includes six inner edges 162 and five outer edges 160. Accordingly, if the functional values are accumulated over the frame cycle from the left edge of the figure 150 there is generated (+9 -8) for a net +1 and from the lower right hand boundary of the hole there is generated a (-6 +5) for a net -1. Accordingly, the Euler number of the object is 0. This confirms that the rectangle has a hole.
- the set of functional outputs required to compute the macroperimeter, microperimeter, and Euler are generated each PCLK cycle. Thus, all three of these characteristics can be computed in parallel each frame cycle.
- FIG. 15 depicts an architecture for computing morphological characteristics for the case where several objects are present at one time in a single frame.
- the line delay unit 50 are bit packer unit 52, and LUT 54 of the architecture of FIG. 5 are depicted.
- the second output port 50B of the line delay 50 is coupled to an input port of a binary region labeller unit 150 by labeller bus 151.
- the output of the binary region labeller unit 150 is coupled to the index input of a statistics chip 152.
- Selected functional outputs, D, of the lookup table 54 are coupled to increment inputs of the statistics unit 152.
- the output of the statistics unit provides data to the processor 44.
- FIG. 16 illustrates the conversion of a binary unit 160 including two objects to a labelled region image 162. Note that all pixels in the first region 164 of the binary frame 160 are labelled with the same index, e.g., 2, in the region labelled frame 162. Similarly, the pixels in the second region 166 of the binary frame are labelled by the index 3.
- the binary region labeller component 150 is intended to accept a stream of bilevel pixels in raster scan order, and output a labelled image also in raster scan order. Clearly, without having enough memory to store the entire image, such a component cannot perform a complete labelling. (Consider a U-shaped region; at first the binary region labeller 150 sees two separate regions, and assigns two labels; subsequently it sees the join, and cannot recall the pixels with the second label in order to relabel them with the first label.) However, a partial labelling can be achieved, and the join equivalence data can be made available to the control processor at the end of the frame.
- FIGS. 16A-C illustrate various definitions of connectivity.
- FIG. 16A is an example of four connectedness; the four pixels which share a common edge with the given pixel are defined to be connected to that pixel.
- FIG. 16B is an example of Eight Connectedness; the eight pixels which either share an edge or a corner vertex with the given pixel are defined to be connected to that pixel.
- FIG. 16C is an example of six connectedness; six connectedness allows a consistent view of the labelling of object and background. (The alternative is to label objects with four connectedness and background with eight connectedness or vice versa).
- Six connectedness is derived from a hexagonal pixel grid, where each pixel shares an edge with six others. This is represented on a square pixel matrix by defining the connected pixels to be the four connected pixels plus two of the four vertex adjacent pixels which lie on one of the diagonals. There are thus two definitions of six connectedness, which we call left and right six connectedness.
- FIG. 16D is a block diagram of a system for labelling connected regions in a binary frame.
- Bilevel pixels arrive at the input on the top right, and are clocked through a Cb register 167a, a Lb register 167b, and into a first shift register 167c. Exactly one line after a pixel was in the Cb register 167a, it is clocked from the other end of the shift register 167b and into a Tb register 167d.
- a box labelled logic 167e can read the values of the Cb (current), Lb (left) and Tb (top) registers 168a, b, d, at every cycle, and determine the connectivity of the pixels visible. It generates a label for the current pixel, or outputs a zero if there is a background pixel in the Cb register 167a. This label is clocked from a C register 167f to an L register 167g, through a second shift register 167h, and appears in a T register 167i one line later.
- FIGS. 16F-I illustrate the possible values in the bilevel Tb, Cb, and Lb registers 167d, 167a, and 167b as the L-shaped configuration 167j scans the lines in a frame. Only those cases where the pixel in the Cb register 167a, the current pixel, is an object pixel are shown. In all other cases the logic outputs a zero as the new label for the current pixel.
- the current pixel may be labelled with either the value T or L.
- FIGS. 16J-M illustrate the labeling of a simple set of first and second regions 164 and 166 in a frame 160 is depicted
- FIG. 16J a frame of pixels having two connected regions is depicted.
- the pixels in lines 1 2 and 1 3 have been labelled "1" and the L-shaped configuration has the first pixel in the second region 166, on line 1 4 , as the current pixel.
- This is the configuration of FIG. 16j.
- a new label, "2” is generated
- a new label, "3” is generated for the second pixel of the second region 166 on line 1 4 .
- This example illustrates the problem of mislabelling sections of a single region.
- the frame is scanned one line at a time.
- the region labelling unit does not "know” that the pixels labelled "2" and "3" on 1 4 will later join into one region.
- FIG. 16N is a schematic diagram of an initialized CAM 167k storing five words 1671. Initially, each word contains the address of itself, i.e., each word points to itself.
- FIGS. 16P-R illustrate the joinder problem encountered in labelling a complex region and the motivation for the joinder algorithm described below.
- FIG. 16P shows a third region having a more complicated configuration and having several mislabeled subregions.
- the regions heretofore labelled "4" and "5" are, indeed, subregions of the same region. Some action must be taken to note the fact that "5" is equivalent to "4".
- regions labelled "2" and "4" and “9” and “7” are also the same. These facts are also noted.
- the root of "9 i.e., "7
- the pixel at J4 is labelled "2".
- FIG. 16Q depicts a set notation for the above-described joins.
- the nodes 167m are the labels for the various regions and the edges 167n represent the joins discovered.
- a set of nodes 167m connected by edges 167n is a tree 167o.
- the lowest value of a label in a tree 167o is the root of the tree.
- the roots of the trees 167o in FIG. 16Q are "2" and "7" before J4 has been executed.
- the process described with reference to FIG. 16P is illustrated in FIG. 16Q. From FIG. 16Q, at J1 and J2 it is noted that "5" is equivalent to "4" is equivalent to "2". At J3 it is noted that “9” is equivalent to "7”. At J4 it is noted “9” is equivalent to "5" by joining the roots of each tree.
- FIG. 16R depicts the state of the CAM, corresponding to the graphs in FIG. 16Q, prior to the join at pixel J4.
- the pixel at J3 is to be labelled with the lowest value, i.e., the root, of any of the labels assigned to the two subregions to be joined.
- Each node in such a graph may be represented as a word in a memory. Initially, each word contains the address of itself, which signifies an edge pointing from the node to itself. (Each node is a member of the unique set of which it is the root). As two root nodes are joined, the word at the higher address of the two nodes is changed to contain the lower address.
- the root nodes of each set In order to perform a join operation between two sets, the root nodes of each set must be found, and this join operation performed. The operation of finding the root of the set involves following the chain of pointers from node to node until a node is found which points to itself. This is the root of the set.
- FIG. 16U is a block diagram of a system for performing four and left six connected region labelling, with two pixel lookahead. In both four and left six connectivity, the joins are always between pixels L and T, in the notation above; this simplifies the design of the control logic.
- the pixel lookahead is used where a new label would otherwise be generated; in such a case, if it can be seen that the new label would join an existing region within one or two pixel cycles, then the label of that region can be brought forward and used instead of the new label.
- This technique reduces the number of fragmentary partial regions which are generated. In a set of test images, it was found that one stage of lookahead reduces the number of fragments by approximately a factor of two; the second stage of lookahead reduces this by about another 10 or 20%.
- Bilevel pixels are input to a main control logic block 167p. Simultaneously the corresponding labelled pixel from the previous line of output is obtained from a line delay memory 167q. From this pixel is derived the bilevel pixel corresponding to the labelled pixel, as this is cheaper than storing the bilevel pixel in addition to the labelled pixel.
- the logic block 167p computes the labelling for the next pixel, and outputs this value.
- the labelled value is also passed to the line delay memory to store for the next line.
- a CAM block 167r contains a 256 ⁇ 8 memory designed for content addressable selected writing. This is used to find the root label corresponding to each labelled pixel on the top line as it arrives from the line delay memory, and to perform the join equivalencing as required.
- the CAM memory 167r is discussed next.
- the memory structure performs the following operations for maintaining sets of label values for a binary region labeller component. Each word represents one label, and the value stored at that word is the root label for the set to which the label belongs.
- the word size is large enough to hold sufficient labels for labelling the required images.
- the length of the memory is 2 wordlength words long.
- FIG. 16V shows a basic static memory design with suitable circuitry to perform these operations. This design could be fabricated in a 2 micron CMOS process and be built in a 256 ⁇ 8 form.
- the basic cell 167t is a cross coupled inverter.
- a pair of complementary read/write lines 167u for each bit is connected to the cell 167t by two transistors 167v which are enabled by a read/write enable line 167w. These lines are either driven by a pair of write drivers 16x or are read by a read sense amplifier 167y. In this mode of operation the read/write enable line 167w is driven high for exactly one cell by the address decoder logic.
- a match line 167bb which runs through all the cells in a given word is used to wire-AND connect 167cc the match functions of each bit to form the match function for the whole word.
- the match line 167bb in every word where the data did match causes the read/write enable line 167w for each of those cells to be driven high, so that a write cycle can be performed.
- the data to be written is driven onto the read/write lines 167u by the write drivers 167x.
- ⁇ pm Precharge Match Lines.
- the match line 167bb for every word is precharged. Since both the sample data lines 167z are held low, there is no match line discharge patch. This is performed in the cycle before a sample cycle.
- ⁇ s Sample.
- the data to be compared against CAM contents (the sample data) is enabled onto the sample data lines 167z. If the contents of any CAM cell 167t fail to match the sample data, then the match line 167b for that word will be discharged to ground.
- ⁇ w Write.
- the data to be written to any cell which matched the sample data (the write data) is driven onto the read/write data lines 167u.
- the state of the match line 167bg is driven onto the read/write enable line 167w, so that any word where the match line 167bb is still high will store the value of the write data lines 167u.
- ⁇ pr Precharge Read Write Lines.
- the read/write lines 167u are precharged.
- the read/write enable lines 167w for each cell are disabled, and the write drivers 167x are also disabled, so there is no discharge path for the precharge current during this phase. This is performed in the cycle before a read cycle.
- ⁇ r Read/Write (Conventional Addressing).
- the address of the word to be read or written is decoded, and the read/write enable line 167w for the selected word is driven high.
- the write data is enabled onto the read/write data lines 167u and the CAM cells store the written value.
- the write data drivers 167x are disabled, and the read sense amplifiers 167y read the state of the addressed cells.
- the main limit on the speed at which this device can be run will be imposed by the time required to perform a matched write when most of the cells are writing new data.
- the write drivers must supply sufficient current to override the drive capabilities on all 256 of the cell transistors if necessary.
- the pull up devices in the memory cell are made much lower powered than the pull down devices, so that the side of the cell being pulled down by the read/write lines will require a minimum of sink current capability in the drivers Once one side of the memory cell is pulled to a low value, the other side becomes much easier to pull high.
- the read/write lines In order to assist the cell pull up devices when a read cycle is being performed, the read/write lines must be precharged in the cycle before the read occurs.
- ⁇ pm Precharge Match Lines.
- the match lines are precharged.
- ⁇ s Sample.
- the sample data is driven onto the sample data lines. In any word where bits do not match the cell contents, the match line is discharged.
- ⁇ mw Write Data in Matched Words.
- the data to be written is driven onto the write lines.
- the write enable line is driven high; this decouples the two inverters in each memory cell and connects the inputs of those inverters to the write data lines.
- the inverters switch to the state of the write data lines.
- the two inverters are reconnected so that the value written will be stored statically during the subsequent clock phases. Note: it may be beneficial to start driving the data to be written onto the write lines in the previous cycle, so that the capacitance of the write lines is precharged to the write data state. This is called the write precharge cycle.
- ⁇ pr Precharge Read Data Lines. The read data lines are precharged.
- ⁇ r Read.
- the read enable line in the word addressed by the address decoders is driven high.
- the outputs of the inverters in this word are connected to the (precharged) read lines.
- the read sense amplifiers determine the value of the addressed word.
- ⁇ w Write.
- the write data is driven onto the write data lines.
- the write enable line for the word addressed by the address decoders is driven high; this disconnects the inverters in the addressed cell, and connects the inverter input gates to the write data lines.
- the inverters take up the state of the write data lines. At the end of the phase, the inverters are reconnected so that the word stores its value statistically in subsequent clock phases. Note: It may be beneficial to start driving the data to be written onto the write lines in the previous cycle so that the capacitance of the write lines is precharged to the write data state. This is called the write precharge cycle.
- the T or the L pixel could be used at the new root of the combined region. It is assumed that the T pixel is always used as the new root. If two pixels on the previous line are adjacent, then they must both already have the same root, as they will have been joined on the previous line. This means that any join involving the first of these pixels cannot possibly alter the root of the second of the pixels. This allows one clock cycle for the pixel lookup to be performed without any risk of invalidating the result. Note that the address decode can be pipelined, as the address, which is the value of the label actually used for the T pixel, does not change, only the contents of the location are subject to change.
- FIG. 16Y is a block diagram showing the pipelined register layout of the control logic.
- each rectangular box represents a clocked register module. Signals move from one register to the next in every cycle. Arrows labelled CL indicate connections to the control logic 167p.
- a signal is clocked into the register advance 168a every clock cycle from input IN0.
- a true value is clocked in whenever a new valid pixel is clocked into newP, and also for a number of clock cycles at the end of each line after the last valid pixel of the line has arrived. This signal is an indication that all the registers should move forwards. If this signal is false, most of the registers reload their previous value on each clock cycle.
- a counter 1686 is used to generate the labels for the object regions.
- the new bilevel pixel arrives at input IN1. This value is clocked through registers new0, new1, new2, new3, and new4 whenever advance in true.
- the output of register new3 corresponds to the Cb register of discussions above and new4 is Lb.
- the outputs from new1 and new2 are used for determining whether lookahead is possible.
- the CAM address decoder will be decoding the address of the byte held in mem3.
- the looked up value corresponding to mem3 will be clocked into mem4.
- address decoding takes more than one cycle of lookahead
- a delayed version of the advance signal will be needed to correctly set the multiplexing for the input to the address decoders.
- the looked up value is clocked through mem4 and mem5. Note also that the contents of mem4 are also presented at the CAM match-write data for possible equivalencing steps.
- the CAM select data is taken from the out register.
- the bilevel values corresponding to the previous line of pixels are reconstructed from the output of mem0, by comparing the labelled pixel with zero.
- the reconstructed bilevel pixels are clocked through top1, top2, top3, and top4 whenever advance is true.
- Register top3 corresponds to Tb in previous discussions
- register top4 corresponds to TLb.
- the outputs from top1 and top2 are used for examining the possibility of lookahead as appropriate.
- a valid signal indicating the duration of each line is brought into the subsystem at IN3, and propagated through registers valid1, valid1, valid2, valid3, valid4, and valid5 whenever advance is true. Note that valid5 is cleared to false whenever advance is false; if this were not done, multiple copies of the previous valid pixels would be output while the pipeline were stopped.
- topline Another signal, called topline, is brought in at IN4 and passed through registers topline0, topline1, topline2, and topline3 whenever advance is true.
- This signal is active when the current signal arriving at IN1 is the first line of a frame. This means that the data being fetched from the line delay memory is invalid, and should be ignored.
- the registers top1, top2, top3, and top4 receive an input from topline0, topline1, topline2, and topline3, respectively, and load zero rather than the value from the previous stage of the pipeline if the topline signal is true.
- the counter register is used to count from 1 upwards. It is used to generate new labels as required.
- the out register is the equivalent of the L register in previous discussions.
- the outgoing labelled pixel is taken from this register whenever valid5 is true.
- the value written back to the line delay memory is taken from here whenever valid 5 is true.
- the input to the out register is taken from a multiplexer, which selects one of:
- the out register multiplexer is controlled from the state register. This allows two pipelined stages to be used to compute the required action in any given configuration. Clearly, more stages could be used, as the configuration of binary pixels which is used to set the stage register can be read from farther back along the topn and a newn pipelines. Here just a single stage of pipelining in this computation is shown.
- the state register is set by a block of combinational logic shown as CL in the figure. This logic is normally set based upon the values of top4, top3, new4, and new3, which are the values of the bilevel pixels in the registers previously referred to as TLb, Tb, Lb, and Cb. In special cases (such as lookahead), other logic values are used to set the state. Sixteen possible states are defined by these four variables, and these map into the following cases:
- CASE-NO-PIXEL New3 is zero, indicating a background pixel.
- CASE-NEW-LABEL Only new3 is non-zero, indicating a new label. Where lookahead is being used, this state could be mapped into CASE-USE-TR or CASE-USE-TRR.
- the counter logic is set to increment the counter by one on the following cycle.
- CASE-USE-TL only top4 and new3 are non-zero. If six connectivity is enabled, then state is CASE-USE-TL, otherwise this state maps into CASE-NEW-LABEL. If state is CASE-USE-TL, then the multiplexer for the out register will be set to select the TL value (from register mem5) on the next cycle.
- CASE-USE-T Top3 and new 3 show object pixels; top4 and new4 may be zero or one.
- the multiplexer will be set to select the T value (from register mem4) on the next cycle. Note that if top3, new3, and new4 all show object pixels but top4 does not, then this state maps into CASE-JOIN-USE-T.
- CASE-USE-TR This is a substate of CASE-NEW-LABEL. When only new3 is zero, indicating that a new label is apparently required, lookahead is used. If new2 shows an object pixel and top2 also, then mem2 contains a labelled pixel which will be connected to the current pixel on the next cycle. Therefore the multiplexer will be set to select register mem3 (where the contents of mem2 will be next cycle), and a new label is not generated. Note that this label will not have been looked up in the CAM. This does not matter, as at least one other pixel exists with the same value, so the CAM will already contain any joins for that value to connect it with any other subregions.
- CASE-USE-TRR As above, this is the lookahead two pixel case. When new2 and ne1, and top1 all shown an object pixel, then mem1 contains a labelled pixel which will be joined to the current pixel in two cycles. The multiplexer will be set to select register mem2 (where the contents of mem1 will be on the next cycle).
- CASE-USE-L Only new4 and new3 shown object pixels. The label used for the previous pixel will be replicated by setting the multiplexer to select the value in the out register on the next cycle.
- CAse-JOIN-USE-T This is the join case; the CAM match write cycle is enabled, and the T value from the mem3 register will be used for the out register.
- CASE-RECIRCULATE The out pixel is copied while the pipeline is stopped. No CAM write cycles occur.
- the T value be used (this is the value which was just looked up in the CAM). This ensures that the out register always contains a labelled pixel which is its own root. When a new label operation is performed, the new value is its own root by definition. When another value is copied from mem5 or mem4, these have been looked up by the CAM and must also be their own root. (If the value is being taken from mem5, then mem4 must be a background pixel, so a join cannot be performed which would invalidate the value looked up for mem5). When lookahead is being used, the value copied into the out register has not been looked up in the CAM; this could cause problems.
- this value will be joined to the looked up value in mem4; such a join must be a null join, as it is joining the value originally used to label the pixel on the previous line with the root of that label. However, after this, the out register will contain the correct root again.
- a completely labelled image can be achieved with the system of FIG. 16Z in the following manner.
- the partially labelled image is fed into a frame buffer 169a where it is stored until the end of the frame.
- the processor 44 accesses the join equivalence data from the binary region labeller component 150 and programs a lookup table 169b to perform the equivalencing operation.
- the partially labelled image is output from the frame buffer 169a and sent through the lookup table 169b.
- the final output from the lookup table 169b is the fully labelled image.
- the partially labelled data may be adequate.
- the labelled image is being input to a set of statistics components 152, each of which is computing some statistic of interest for each region in the object, then it is sufficient to compute the statistics for each partial region, and sum them together as indicated by the equivalence data at the end of the frame before computing object parameters from the statistics.
- the binary region labeller 150 sends a "mini-frame" to the stat component 152 over the label bus 151 (FIG. 15) after the original frame has been completely labelled.
- This mini-frame consists of the equivalence data from the CAM 167r (FIG. 16U).
- FIG. 17 illustrates the operation of the statistics component 152.
- the statistics component 152 includes a set of 256 accumulators 170.
- a signal routing circuit 172 directs the value of the signal at the increment of the statistics component 152 to a selected accumulator 170.
- the value at the increment input port of the statistics component 152 determines which accumulator receives the increment signal.
- the statistics component is a multi-statistics gathering system that simultaneously accumulates functional values for one or more object regions per frame.
- the operation of the architecture depicted in FIG. 15 will now be described. Assume tht the perimeter of the first and second objects is to be computed at the Stat 5 component 152.
- the relative time frames of the binary region labeller component 150 and ABP/LUT morphology component 52/54 are synchronized so that the label for a given pixel and the functional value for the given pixel are supplied to the statistical component 152 during the same PCLK cycle.
- This synchronization may be achieved by either matching the delays introduced by the RL component 150 and the morphology component 52/54 or by utilizing a variable delay element.
- the background pixels contribute nothing to the value of the perimeter.
- the labeled value of the first region i.e., 2
- the region labeling unit 150 is provided to the index input of the second statistics unit by the region labeling unit 150.
- the functional value generated by the LUT 54 for the given pixel in the first object region 164 will be directed to accumulator 2 by the routing circuitry 172 of the statistics unit 152.
- pixels on the boundary of the first region 164 are assigned the functional value of 1 and pixels on the interior of the region are assigned the functional value 0. Accordingly, at the end of the frame cycle, the accumulated value in accumulator 2 will be equal to the macroperimeter of the first region 164.
- the index for the second object region i.e., 3 is provided to the index input of the statistics chip 152.
- the functional value for the given pixel in second object region 166 is routed to bin 3 by the routing circuitry 172. Accordingly, the macrovalue of the perimeter of the first region 164 is stored in the second accumulator and the value of the macroperimeter of the second region 166 is stored at the third accumulator at the end of the frame cycle. These values are then transferred to the processor for use in subsequent image analysis.
- the architecture of FIG. 15 facilitates the parallel computation of several morphological characteristics of a set of object regions in a frame. These characteristics are computed at the frame rate.
- the statistical components 152 may compute other characteristics relating to the dimensions, position, and orientation of object regions in a frame. Details for computing these other characteristics are described in the above-referenced patent application by Deering.
- Stat 1 is configured to compute area ( ⁇ 1)
- Stat 2 is configured to compute the sum of the x coordinates (2x)
- Stat 3 is configured to compute the sum of the xy terms (zxy)
- Stat 4 computes ⁇ y
- Stat 6 computes ⁇ x 2 .
- the characteristics are computed at the frame rate.
- Stat 5 and Stat 7 are coupled to the outputs of the LUT 54 that provide perimeter and Euler number functional values.
- the LUT may be programmed to generate functional data for computing other morphological characteristics, such as edgel (small regions on an object perimeter), orientation, number of a specific corner shape, and spikes or holes in an object region.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
Description
D=f(Y) EQ. 1
D.sub.0 =f.sub.0 (Y)
D.sub.1 =f.sub.1 (Y)
D.sub.2 =f.sub.2 (Y)
D.sub.3 =f.sub.2 (Y)
D.sub.4 =f3(Y)
D.sub.5 =f.sub.3 (Y)
D.sub.6 =f.sub.4 (Y)
D.sub.7 =f.sub.4 (Y) EQ. 2
______________________________________ Phase Match Write Read(1) (Read(2) Read(3) ______________________________________ 1 φ.sub.pm φ.sub.pr φ.sub.r -- 2 φ.sub.s φ.sub.r -- -- 3 φ.sub.w -- -- φ.sub.pr 4 -- -- φ.sub.pr φ.sub.r ______________________________________
______________________________________ Phase Match Write Read ______________________________________ 1 φ.sub.pm φ.sub.pr 2 φ.sub.s φ.sub.r 3 φ.sub.w φ.sub.pr 4 -- φ.sub.r ______________________________________
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/815,476 US4791675A (en) | 1985-12-31 | 1985-12-31 | VSP Connectivity pattern recognition system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/815,476 US4791675A (en) | 1985-12-31 | 1985-12-31 | VSP Connectivity pattern recognition system |
Publications (1)
Publication Number | Publication Date |
---|---|
US4791675A true US4791675A (en) | 1988-12-13 |
Family
ID=25217912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US06/815,476 Expired - Fee Related US4791675A (en) | 1985-12-31 | 1985-12-31 | VSP Connectivity pattern recognition system |
Country Status (1)
Country | Link |
---|---|
US (1) | US4791675A (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918739A (en) * | 1988-08-12 | 1990-04-17 | Maraven, S.A. | Process and system for digital analysis of images applied to stratigraphic data |
US4969202A (en) * | 1988-03-31 | 1990-11-06 | Honeywell Inc. | Image recognition edge detection method and system |
US4982342A (en) * | 1987-11-05 | 1991-01-01 | Kabushiki Kaisha Toyota Chuo Kenkyusho | Image processor system having multifunction look-up table units |
US5058190A (en) * | 1990-09-14 | 1991-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Selective readout of a detector array |
US5166986A (en) * | 1989-05-16 | 1992-11-24 | Matsushita Electric Industrial Co., Ltd. | Apparatus for binarizing image signals |
US5325444A (en) * | 1991-11-19 | 1994-06-28 | Xerox Corporation | Method and apparatus for determining the frequency of words in a document without document image decoding |
FR2719684A1 (en) * | 1994-05-05 | 1995-11-10 | Jenoptik Technologie Gmbh | Method and circuit for detecting image structures in the form of lines linked topologically with one another. |
US5740285A (en) * | 1989-12-08 | 1998-04-14 | Xerox Corporation | Image reduction/enlargement technique |
US5781667A (en) * | 1995-07-31 | 1998-07-14 | Neopath, Inc. | Apparatus for high speed morphological processing |
US5805745A (en) * | 1995-06-26 | 1998-09-08 | Lucent Technologies Inc. | Method for locating a subject's lips in a facial image |
US6038352A (en) * | 1997-10-17 | 2000-03-14 | Acuity Imaging, Llc | Two-bit morphology processing apparatus and method |
US6108446A (en) * | 1997-02-18 | 2000-08-22 | Hoshen; Joseph | Method and apparatus for extracting cluster shape features from digital images |
US6233369B1 (en) * | 1997-10-17 | 2001-05-15 | Acuity Imaging, Llc | Morphology processing apparatus and method |
US6728427B1 (en) * | 1997-10-16 | 2004-04-27 | Electronics And Telecommunications Research Institute | Method of extracting temporal and spatial combination markers for morphological image division |
US20080075355A1 (en) * | 2006-07-31 | 2008-03-27 | Michael Ben-Yishay | Method and system for defect detection |
US8285791B2 (en) | 2001-03-27 | 2012-10-09 | Wireless Recognition Technologies Llc | Method and apparatus for sharing information using a handheld device |
US20130330004A1 (en) * | 2012-06-12 | 2013-12-12 | Xerox Corporation | Finding text in natural scenes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3905018A (en) * | 1970-06-22 | 1975-09-09 | Information Int Inc | Binary image processor |
US4288779A (en) * | 1978-07-08 | 1981-09-08 | Agency Of Industrial Science & Technology | Method and apparatus for character reading |
US4295120A (en) * | 1978-08-28 | 1981-10-13 | Hajime Industries Ltd. | Pattern data processing method and apparatus to practice such method |
US4606065A (en) * | 1984-02-09 | 1986-08-12 | Imaging Technology Incorporated | Image processing-system |
-
1985
- 1985-12-31 US US06/815,476 patent/US4791675A/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3905018A (en) * | 1970-06-22 | 1975-09-09 | Information Int Inc | Binary image processor |
US4288779A (en) * | 1978-07-08 | 1981-09-08 | Agency Of Industrial Science & Technology | Method and apparatus for character reading |
US4295120A (en) * | 1978-08-28 | 1981-10-13 | Hajime Industries Ltd. | Pattern data processing method and apparatus to practice such method |
US4606065A (en) * | 1984-02-09 | 1986-08-12 | Imaging Technology Incorporated | Image processing-system |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4982342A (en) * | 1987-11-05 | 1991-01-01 | Kabushiki Kaisha Toyota Chuo Kenkyusho | Image processor system having multifunction look-up table units |
US4969202A (en) * | 1988-03-31 | 1990-11-06 | Honeywell Inc. | Image recognition edge detection method and system |
US4918739A (en) * | 1988-08-12 | 1990-04-17 | Maraven, S.A. | Process and system for digital analysis of images applied to stratigraphic data |
US5166986A (en) * | 1989-05-16 | 1992-11-24 | Matsushita Electric Industrial Co., Ltd. | Apparatus for binarizing image signals |
US5740285A (en) * | 1989-12-08 | 1998-04-14 | Xerox Corporation | Image reduction/enlargement technique |
US5058190A (en) * | 1990-09-14 | 1991-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Selective readout of a detector array |
US5325444A (en) * | 1991-11-19 | 1994-06-28 | Xerox Corporation | Method and apparatus for determining the frequency of words in a document without document image decoding |
FR2719684A1 (en) * | 1994-05-05 | 1995-11-10 | Jenoptik Technologie Gmbh | Method and circuit for detecting image structures in the form of lines linked topologically with one another. |
US5805745A (en) * | 1995-06-26 | 1998-09-08 | Lucent Technologies Inc. | Method for locating a subject's lips in a facial image |
US5781667A (en) * | 1995-07-31 | 1998-07-14 | Neopath, Inc. | Apparatus for high speed morphological processing |
AU728832B2 (en) * | 1995-07-31 | 2001-01-18 | Neopath, Inc. | Apparatus for high speed morphological processing |
US6108446A (en) * | 1997-02-18 | 2000-08-22 | Hoshen; Joseph | Method and apparatus for extracting cluster shape features from digital images |
US6728427B1 (en) * | 1997-10-16 | 2004-04-27 | Electronics And Telecommunications Research Institute | Method of extracting temporal and spatial combination markers for morphological image division |
US6038352A (en) * | 1997-10-17 | 2000-03-14 | Acuity Imaging, Llc | Two-bit morphology processing apparatus and method |
US6233369B1 (en) * | 1997-10-17 | 2001-05-15 | Acuity Imaging, Llc | Morphology processing apparatus and method |
US8285791B2 (en) | 2001-03-27 | 2012-10-09 | Wireless Recognition Technologies Llc | Method and apparatus for sharing information using a handheld device |
US20080075355A1 (en) * | 2006-07-31 | 2008-03-27 | Michael Ben-Yishay | Method and system for defect detection |
US7970201B2 (en) * | 2006-07-31 | 2011-06-28 | Applied Materials Israel, Ltd. | Method and system for defect detection |
US8238647B2 (en) | 2006-07-31 | 2012-08-07 | Applied Materials Israel, Ltd. | Method and system for defect detection |
US20130330004A1 (en) * | 2012-06-12 | 2013-12-12 | Xerox Corporation | Finding text in natural scenes |
US8837830B2 (en) * | 2012-06-12 | 2014-09-16 | Xerox Corporation | Finding text in natural scenes |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4791675A (en) | VSP Connectivity pattern recognition system | |
US4369430A (en) | Image analyzer with cyclical neighborhood processing pipeline | |
EP0118053B1 (en) | Image signal processor | |
US4742552A (en) | Vector image processing system | |
US4601055A (en) | Image processor | |
EP0227406A2 (en) | Image signal processor | |
US4845767A (en) | Image signal processor | |
US4718101A (en) | Image processing segmentation apparatus | |
US4887302A (en) | Labelling circuit for image processor | |
US5781667A (en) | Apparatus for high speed morphological processing | |
EP0191200B1 (en) | Image processing device for the real-time processing and recognition of two-dimensional images, and image processing system including at least two series-connected image processing devices of this kind | |
CA1122325A (en) | Parallel partitioned serial neighborhood processors | |
US5237626A (en) | Universal image processing module | |
US7756363B2 (en) | System and method for image processing | |
Hattori | A high-speed pipeline processor for regional labelling based on a new algorithm | |
US5274717A (en) | Parallel image processor for performing local neighboring image processing | |
EP0267968B1 (en) | Image processor | |
US5408251A (en) | Memory system for storing two-dimensional digitized image signals | |
Pratt et al. | Review of machine vision architectures | |
US6307587B1 (en) | Input circuit for an image processor | |
JP2938217B2 (en) | Image processing device | |
JPH04100179A (en) | Image processor | |
Llario | Hardware-software trade-offs in robot vision | |
WO1990001750A1 (en) | Intelligent scan image processor | |
Chan et al. | Subword parallel architecture for connected component labeling and morphological operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FAIRCHILD SEMICONDUCTOR CORPORATION, 10400 RIDEVIE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:DEERING, MICHAEL F.;HUNT, NEIL;REEL/FRAME:004534/0772 Effective date: 19860311 |
|
AS | Assignment |
Owner name: SCHLUMBERGER SYSTEMS AND SERVICES, INC., 1259 OAKM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:FAIRCHILD SEMICONDUCTOR CORPORATION;REEL/FRAME:004821/0860 Effective date: 19871007 Owner name: SCHLUMBERGER SYSTEMS AND SERVICES, INC.,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FAIRCHILD SEMICONDUCTOR CORPORATION;REEL/FRAME:004821/0860 Effective date: 19871007 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 19921213 |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |