Machine vision methods and articles of manufacture for ball grid array

Information

  • Patent Grant
  • 6442291
  • Patent Number
    6,442,291
  • Date Filed
    Thursday, December 31, 1998
    25 years ago
  • Date Issued
    Tuesday, August 27, 2002
    22 years ago
Abstract
A method of inspecting an image to locate a ball grid array surface-mounted device includes the steps of inspecting the image to find its surface features and to determine their locations (referred to herein as their “observed” locations); comparing expected locations of those features with the observed locations to identify missing surface features; reinspecting the image in the vicinity of apparently missing surface features to verify if the feature is really missing or to find those features and to determine their “observed” locations; and determining, from the observed locations of the surface features, the position and/or angle of the ball grid array surface-mounted device. The invention can be used to determine the position and/or angle of ball grid array surface-mounted devices with surface features in any of many array configurations, e.g., a regular lattice, a checker board lattice, a reverse checker board lattice, a regular lattice with a holes., and a custom lattice.
Description




RESERVATION OF COPYRIGHT




The disclosure of this patent document contains material which is subject to copyright and/or mask work protection. The owner thereof has no objection to facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright and/or mask work rights whatsoever.




BACKGROUND OF THE INVENTION




The invention pertains to machine vision and, more particularly, to methods and articles of manufacture for inspecting ball grid array devices.




In automated assembly processes, such as those for assembling electronic circuit boards, it is important to determine the exact location of components prior to their placement for final assembly. For example, an assembly system must know the axial position and angular orientation of each component before placing its leads on appropriate solder pads of a printed circuit board.




Accuracy in positioning is ever more critical as the ratio of the size of the electronic components to the number of conductive leads increases. Such is the case with ball grid array (BGA) devices. These are small surface mounted devices containing tens or hundreds of conductive solder “bumps” arranged in regular patterns, e.g., rectangular arrays, “checker boards”, et cetera. Because the bumps are so closely spaced, accurate placement and alignment with solder pads on the circuit board is imperative.




The art suggests a few approaches to determining the orientation of BGA devices. These approaches are primarily binary techniques based on “blob” analysis of the solder bump array images. A drawback of the approaches is that, due to their binary nature, they are highly susceptible to lighting conditions or device-to-device variations. Moreover, they require that correspondence steps be performed to remove extraneous features, or noise. Those correspondence steps are typically very time consuming. While some approaches have attempted to reduce that time by limiting the correspondence step to a small subset of the bumps, those approaches suffer reduced accuracy.




An object of this invention is to provide improved methods for machine vision analysis and, particularly, improved methods for inspection of ball grid array devices.




A more particular object of this invention is to provide improved methods for BGA device inspection that permit the placement and orientation of those components to be readily and accurately determined.




Yet still another object of the invention is to provide such methods that can execute quickly, and without consumption of excessive resources, on a wide range of machine vision analysis equipment.




Still yet another object of the invention is to provide articles of manufacture comprising a computer usable medium embodying program code for carrying out improved such methods.




SUMMARY OF THE INVENTION




The foregoing objects are attained by the invention which provides, in one aspect, a method of inspecting an image to locate a ball grid array surface-mounted device characterized by an array of similar surface features, e.g., solder bumps. The method includes the steps of inspecting the image to find its surface features and to determine their locations (referred to herein as their “observed” locations); comparing expected locations of those features with the observed locations to identify missing surface features; reinspecting the image in the vicinity of apparently missing surface features to verify if the feature is really missing or to find those features and to determine their “observed” locations; and determining, from the observed locations of the surface features, the position and/or angle of the ball grid array surface-mounted device.




The invention can be used to determine the position and/or angle of ball grid array surface-mounted devices with surface features in any of many array configurations, e.g., a regular lattice, a checker board lattice, a reverse checker board lattice, a regular lattice with a holes.




In further aspects, the invention calls for finding the convex hull (i.e., perimeter) and hull angle (i.e., angular orientation of the perimeter) of the observed surface features. From those, a grid of expected locations of the surface features can be generated. Each of the observed locations can be assigned to the closest vertex on the grid. A score is then generated based on the number of surface features assigned to each vertex and the distance between each such vertex and its assigned surface features.




In a related aspect of the invention, the position and/or angle of the ball grid array surface-mounted device can be determined by performing a rigid body fit of the observed locations of surface features to the grid of expected locations.




These and other aspects of the invention are evident in the drawings and in the description that follows.











BRIEF DESCRIPTION OF THE DRAWINGS




A more complete understanding of the invention may be attained by reference to the drawings, in which





FIG. 1

is a diagrammatic representation of a machine vision system for determining the orientation of an object by image processing and analysis;





FIG. 2

depicts a method according to the invention for inspecting an image of a ball grid array surface-mounted device;





FIG. 3

depicts BGA device solder bump grid pattern styles amenable to inspection by the invention;





FIG. 4

illustrates missing ball selection in a method according to the invention; and





FIG. 5

depicts an article of manufacture, to wit, a magnetic diskette, composed of a computer usable media.











DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT





FIG. 1

is a diagrammatic representation of a machine vision system


10


for determining the orientation of an object by image processing and analysis. The system


10


includes a video camera


30


for generating a video signal


32


depicting the front of an object


20


being inspected. Lighting sources


22


provide illumination, e.g., that illuminates the object


20


from the front. A pickup device


24


, such as a robotic gripper or suction nozzle, holds the object


20


during inspection. Actuator


26


, such as a servo or robotic actuator, moves the pickup


24


and, thereby, the object


20


.




The machine vision system


10


further includes an image analyzing system


40


for performing an automatic vision analysis of the object


20


. The image analyzing system


40


determines characteristics of the object


20


, such as position, boundary and orientation, based on processing and analyzing the video image signal


32


from the video camera


30


.




In a preferred embodiment of the invention, image analyzer


40


represents a conventional digital data processing system having an image digitizer


42


, memory


46


, at least one CPU


44


, and input/output processing elements


48


for interfacing the system


40


to peripheral input and output devices. The image analyzer may also include input devices


50


, such as a keyboard or mouse, and output devices


52


, such as a display monitor and printer as well as interface with one or more terminals


54


.




Image analyzer


40


and its components


42


-


54


comprise any commercially available digital data processor, e.g., a personal computer or workstation, programmed for operation in accord with the teachings of this application. Preferred image analyzers


40


suitable for such programming are sold by the assignee hereof, Cognex Corporation. Those skilled in the art will appreciate that programming the analyzer


40


for operation in accord with the teachings of the invention includes storing in memory


46


(and, optionally, other computer readable storage media, such as magnetic diskettes or hard disks) a computer program that enables CPU


44


to carry out the methodology of FIG.


2


.




BGA devices present several challenges to inspect with a machine vision system. Some of the problems faced when inspection a BGA include the large number of balls; the lack of contrast between ball and background; the irregular ball shapes; the degradation of ball image and reflectivity due to oxidation; the large BGA device size; the varied packing types and the need to necessity of inspecting quickly. The inspection methodology described herein overcomes these problems in a manner superior to that attained by the prior art.




Training/Insection Overview




Device Training




BGA devices come in a variety of packaging styles with several grid patterns. A device description allows a user to describe the geometrical layout of a BGA device. This description, which is used as input to the training phase is as follows:




Overall Size (Width, Height)




Number of ball rows




Number of ball columns




Grid pattern style (regular, checkerboard, reverse checkerboard and grid with a holes). See FIG.


3


.




Grid spacing (pitch)




Ball size (diameter)




For grids with holes, the starting row, column and number of rows, columns of missing balls for each hole.




This device description describes the attributes of the BGA that are invariant for a given component (packaging style, substrate color, etc. may vary for a given component) and are used to perform the inspection.




The following two steps are performed to construct (or “train”) a device inspection. These steps occur at some point in time prior to performing the inspection:




1) Using the device description, construct one or more locators. It is the locator that does the actual work to find the ball(s). Additional information (dependant on the locator) is also provided.




2) Using the device description and the locators, construct a device inspection.




Device Inspection




At some later point in time a BGA device that was described to a previous training step is acquired by the system and the inspection is performed. The overall process here is illustrated in FIG.


2


and is spelled out below:




1) Select the first global locator




2) Repeat the following




2.1) Run the locator on the entire image




2.2) For each ball found




2.2.1) Record its location in the locator results




2.3) If enough balls found (user selectable) go to 3




2.4) Else if enough balls found to grid




2.4.1) Perform gridding operation




2.4.2) Select the first local locator




2.4.3) Repeat the following for each missing ball




2.4.3.1) Apply the local locator to the area with the missing ball




2.4.3.2) If a ball was found, update the grid




2.4.3.3) Return to step 2.4.3.




2.4.5) If all the balls are found go to 3




2.4.6) Select the next local locator




2.4.7) If a locator was selected repeat from step 2.4.3




2.4.8) Else fail the device.




2.5) Select the next global locator




2.6) If a locator was selected repeat from step 2




2.7) Else fail the device




3) Perform the final gridding operation




4) Perform a rigid body fit using the found points and the expected points




5) Report device location




Training/Inspection Details




Construction of a hough locator is performed by using the device description and a calibration which gives the transformation from physical to image space. Using the device description, a hough model of a ball is trained. In addition, the point set data structures are pre-allocated so that at run time this allocation does not need to occur. The point set size is allocated to be equal to the number of balls on the BGA device. Other device specific information is also cached to save time later at run time.




long bodyRSize=dd→bodyRSize( ).max( );




long bodyTSize=dd→bodyTSize( ).max( );




// Record the physical space inspection window for the BGA. The




// bounding box is 2× the body size (Note: this should be an input




// parameter).




_phMin.x=-bodyRSize;




_phMin.y=-bodyTSize;




_phMax.x=bodyRSize;




_phMax.y=bodyTSize;




_diameter=dd→ballParams( ).diameter( );




const ccBgaElement& elem=dd→elements( );




_numBalls+=elem.numBallsR( )*elem.numBallsT( );




if (elem.gridType( )==CPS_GRID_CHECKER)




_numBalls=_numBalls/2+1;




else if (elem.gridType( )==CPS_GRID_REVERSE_CHECKER)




_numBalls=_numBalls/2;




else




{




const ccBgaMissing& missing=elem.missing( );




_numBalls-=missing.numMissingR( )*missing.numMissingT( );




}




_locatorResults._pointSet=cps_create_pt_set (_numBalls,




CPS_CREATE_XYZ);




double pelsize=1.0/(_pelSizeX+_pelSizeY)*2.0;




Cu_clear ((char*)&_houghParams, sizeof (cbga_params));




_houghparams.diateter=_diameter.nom( )*pelSize;




_houghParams.nun-bits_ang=CBGA_NUM_BITS_ANG;




_houghparams.run_rej_pct=CBGA_RUN_REJ_PCT;




_houghparams.results=numballs;




_poughparams.accept=score;




_houghParams.spread=CBGA_SPREAD;




_houghParams.flags=CBGA_FLAGS;




_houghModel=cbga_train (&_houghParams);




Constructing a device inspection is then accomplished by using the previous constructed locator and device description. In one embodiment, the implementation only allows for a single locator to be used. Other embodiments allow for multiple locators of differing types. Here, many of the runtime parameters are precomputed and cached. In particular, the expected location of the balls for an ideal part that is located at the expected location are computed.




ct2d_point modelPts;




ccBgaElement& elements=_dd→elements( );




ccLocatorResults& locatorResults=_locator→locatorResults( );




_rows=elements.numBallsR( );




_cols=elements.numBallsT( );




for (int i=0; i<_rows; i++)




for (int j=0; j<_rows; j++)




{




if (elements.position (_dd→ballParams( ), i, j, modelpts))




locatorResults.addModelPoint (modelPts.x, modelPts.y);




}




// Allocate the point set information




ccBgaMissing& missing=elements.missing( );




_hole.start_row=missing.rBallCoord( );




_hole.start_col=missing.tBallCoord( );




_hole.rows=missing.numMissingT( );




_hole.cols=missing.numMissingT( );




_grid=cps_create_grid (_rows, _cols, elements.gridType( ), 0, &_hole);




_ptIndex=cps_create_index(locatorResults._pointSet→count,




locatorresults._pointSet);




After these two steps are completed, the device will be in a trained state and ready for inspection.




Device Insection Details




Further details of the device inspection methodolgy shown in

FIG. 2

is provided below:




1) Select the first global locator




The first global locator will be the first locator in a list of locators. There are two such lists; the global locators and the local locators.




2) Repeat the following




2.1) Run the locator on the entire image




Actually, the locator is run on the inspection window that was computed at training time. This will help improve speed and reduce the chances of find features that are not part of the device.




2.2) For each ball found




2.2.1) Record its location in the locator results.




The locator results contains a list of model points that where previous computed during training. Now add the list of found points.




2.3) If enough balls found (user selectable) goto 3




Enough balls will be partially determined by the user. They may say that it is neccessary to find less balls than the device actually contains.




In addition, the system must have found enough unique balls to correctly determine the location of the grid. A unique ball would be a corner ball or an edge ball. The test for determining if the ball is a corner ball or an edge ball will be based on distances between the balls on one edge to the opposite edge. If this distance is within ¼ of a ball pitch then these balls will be considered edge or corner balls.




2.4) Else if enough balls are found to perform gridding




Here it is not necessary to find the actual grid location. It will be sufficient to have found the grid orientation and its approximate position (within a few rows).




2.4.1) Perform gridding operation




Gridding is performed by computing the convex hull of the device. Then, using the convex hull, the angle of the hull computed. Using this angle information, the lattice (grid) can be computed for the balls.




2.4.2) Select the first local locator




This is the first locator in the list.




2.4.3) Repeat the following for each missing ball




Actually, since the gridding may not have been entirely accurate in location, The selection of a missing ball will be performed as follows:




A) Select all balls that are surrounded by other balls.




B) Select a ball at a potential site. If that ball is not found in the following steps then select a ball at an opposite site. If the ball is still not found then this device has missing balls so continue at step 2.4.5. See FIG.


4


.




In that Figure, the illustrated BGA has a 7×7 grid of solder bumps. Only a 6×6 grid was found. The * sites will be examined first since these must be balls. The X sites will be examined last since the device could be translated in either direction. The . was the first attempt at locating a ball site. There was no ball present. The @ was the 2nd attempt and a ball was found. At this point, the location of the grid can be determined.




2.4.3.1) Apply the local locator to the area with the missing ball




This is actually a potential missing ball site. If the previously computed grid (step 2.4.1) contained enough unique balls then the ball site will be a site that should contain a ball. If enough information was not available then the ball site may be off of the device.




2.4.3.2) If a ball was found, update the grid




During the updating process a grid may go from being in an undetermined region to a determinable region.




2.4.3.3) Return to step 2.4.3.




2.4.4) If enough balls are found goto 3




2.4.5) Select the next local locator




We allow for multiple locators for cases where the image of the device is such that a single locator methodology does not work. Currently, we anticipate 3 locator technologies; a hough based locator, a blob based locator and a sobel angle image locator. In addition, new locators can be implemented by subclassing from our base locator class.




2.4.6) If a locator was selected repeat from step 2.4.3




2.4.7) Else fail the device.




2.5) Select the next global locator




Additional global locators are used for the same reasons that additional local locators are used. Currently there are two proposed global locators. A blob based locator and a hough based locator. Additional locators can be supplied at a later time by either Cognex or the customer.




2.6) If a locator was selected repeat from step 2




2.7) Else fail the device




3) Perform the final gridding operation. This is done to account for all the balls found.




This step could actually be combined with the previous step (2.4.3.2) to save time.




4) Perform a rigid body fit using the found points and the expected points




This fit is a least-squares 3 paramter fit. The 3 parameters are X translation, Y translation and rotation.




5) Report device location




Using the calibration information, the device location in physical space is computed and returned to the user.




A hough transform tool, as well as other machine vision tools, of the type referred to above for use in conjunction with the illustrated embodiment may be any one of the many such tools commercially available. Preferred such tools are available from the assignee hereof.




As noted above, where the inspection is performed using a general hough transform machine vision tool, that tool can be trained prior to inspection to generate a model of a circle substantially the same size as the expected size of the surface features. That model can be can have, for example, 8-bit or 16-bit resolution depending on a calibration score of the model (i.e., a circle) and an expected image of a surface feature. At the time of inspection, moreover, the general hough transform tool can be applied in a single, exhaustive pass aimed toward locating the circular surface features of the ball grid array surface-mounted device.




A still further understanding of the foregoing methodologies may be attained by reference to U.S. patent application Ser. No. 08/506,295 (Attorney Docket 150448-016), filed Jul. 24, 1995, for IMPROVED MACHINE VISION METHODS AND ARTICLES OF MANUFACTURE FOR DETERMINATION OF CONVEX HULL AND CONVEX HULL ANGLE, the teachings of which are incorporated herein by reference, as well as to the teachings of the appendices and other supplemental materials filed with U.S. Provisional Application No.60/001,430, filed Jul. 25, 1995, all of which are incorporated by reference (see the section above entitled Reference to Related Applications).





FIG. 5

depicts an article of manufacture, to wit, a magnetic diskette, composed of a computer usable media, to wit, a magnetic disk, embodying a computer program that causes image analyzing system


40


, or other such digital data processing apparatus, to inspect a BGA device in accord with the methods described above in connection with

FIGS. 1-5

. The diskette


100


is shown in front view


100


A and back view


100


B. It is of conventional construction and has the computer program stored on the magnetic media therein in a conventional manner readable, e.g., via a read/write head contained in a diskette drive of image analyzer


40


. It will be appreciated that diskette


100


is shown by way of example only and that other articles of manufacture comprising computer usable media on which programs intended to cause a computer to execute in accord with the teachings hereof are also embraced by the invention.




Described above are methods for inspecting a BGA device meeting the objects set forth herein. Those methods can be beneficially applied in machine vision applications for the rapid and accurate inspection of BGA devices, without consumption of undue computational resources. From this, the position, orientation and quality of the device as a whole is readily discerned. Such positioning information enables equipment fabricators to precisely position the BGA device on, for example, a printed circuit board. Those methods are amenable to ready application to a range of ball grid arrays devices, such as those with checker board lattices, reverse checker board lattices, and regular lattice with a holes. It will be appreciated that the embodiments described herein are not intended to be limiting, and that other embodiments incorporating additions, deletions and other modifications within the ken of one of ordinary skill in the art are in the scope of the invention.



Claims
  • 1. A method of inspecting an image to locate a ball grid array surface-mounted device that is characterized by an array of similar surface features, the method comprising:inspecting the image to find said surface features and to determine their observed locations, comparing expected locations of the surface features with the observed locations to identify any surface features that are apparently missing, reinspecting the image in a vicinity of an apparently missing surface feature to find that apparently missing surface feature and to determine its observed location, and determining, from the observed locations of the surface features found in the inspecting and reinspecting steps, any of a position and an angle of the ball grid array surface mounted device.
  • 2. A method according to claim 1, whereinthe inspecting step includes applying a first machine vision tool to find the surface features and to determine their observed locations, the reinspecting step includes applying one or more subsequent machine vision tools to find an apparently missing surface feature and to determine its observed location.
  • 3. A method according to claim 2, comprising using an operator-selected function for any of the first and subsequent machine vision tools.
  • 4. A method according to claim 2, comprising invoking the reinspecting step a plurality of times to identify any further apparently missing surface features and to determine their observed locations.
  • 5. An article of manufacture comprising a computer usable medium embodying program code for causing a digital data processor to carry out a method of inspecting an image to locate a ball grid array surface-mounted device that is characterized by an array of similar surface features, the method comprising:inspecting the image to find said surface features and to determine their observed locations, comparing expected locations of the surface features with the observed locations to identify any surface features that are apparently missing, reinspecting the image in a vicinity of an apparently missing surface feature to find that apparently missing surface feature and to determine its observed location, and determining, from the observed locations of the surface features found in the inspecting and reinspecting steps, any of a position and an angle of the ball grid array surface-mounted device.
  • 6. An article of manufacture according to claim 5, whereinthe inspecting step includes applying a first machine vision tool to find the surface features and to determine their observed locations, the reinspecting step includes applying one or more subsequent machine vision tools to find an apparently missing surface feature and to determine its observed location.
REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 08/521,959, filed Aug. 31, 1995, now U.S. Pat. No. 6,026,176, which claims the benefit of the filing date of U.S. Provisional Application No. 60/001,430, filed Jul. 25, 1995, the teachings of both of which applications, including the appendices filed therewith, are incorporated by reference herein.

US Referenced Citations (127)
Number Name Date Kind
3816722 Sakoe et al. Jun 1974 A
3936800 Ejiri et al. Feb 1976 A
3967100 Shimomura Jun 1976 A
3968475 McMahon Jul 1976 A
3978326 Shimomura Aug 1976 A
4011403 Epstein et al. Mar 1977 A
4115702 Nopper Sep 1978 A
4183013 Agrawala et al. Jan 1980 A
4200861 Hubach et al. Apr 1980 A
4254400 Yoda et al. Mar 1981 A
4300164 Sacks Nov 1981 A
4385322 Hubach et al. May 1983 A
4441124 Heebner et al. Apr 1984 A
4441206 Kuniyoshi et al. Apr 1984 A
4534813 Williamson et al. Aug 1985 A
4541116 Lougheed Sep 1985 A
4570180 Baier et al. Feb 1986 A
4577344 Warren et al. Mar 1986 A
4581762 Lapidus et al. Apr 1986 A
4606065 Beg et al. Aug 1986 A
4617619 Gehly Oct 1986 A
4630306 West et al. Dec 1986 A
4688088 Hamazaki et al. Aug 1987 A
4706168 Weisner Nov 1987 A
4728195 Silver Mar 1988 A
4730260 Mori et al. Mar 1988 A
4731858 Grasmueller et al. Mar 1988 A
4736437 Sacks et al. Apr 1988 A
4742551 Deering May 1988 A
4764870 Haskin Aug 1988 A
4771469 Wittenburg Sep 1988 A
4783826 Koso et al. Nov 1988 A
4783828 Sadjadi Nov 1988 A
4783829 Miyakawa et al. Nov 1988 A
4831580 Yamada May 1989 A
4860374 Murakami et al. Aug 1989 A
4860375 McCubbrey et al. Aug 1989 A
4876457 Bose Oct 1989 A
4876728 Roth Oct 1989 A
4903218 Longo et al. Feb 1990 A
4907169 Lovoi Mar 1990 A
4914553 Hamada et al. Apr 1990 A
4922543 Ahlbom et al. May 1990 A
4926492 Tanaka et al. May 1990 A
4932065 Feldgajer Jun 1990 A
4953224 Ichinose et al. Aug 1990 A
4955062 Terui Sep 1990 A
4959898 Landman et al. Oct 1990 A
4962423 Yamada et al. Oct 1990 A
4972359 Silver et al. Nov 1990 A
4982438 Usami et al. Jan 1991 A
5012402 Akiyama Apr 1991 A
5046190 Daniel et al. Sep 1991 A
5054096 Beizer Oct 1991 A
5060276 Morris et al. Oct 1991 A
5063608 Siegel Nov 1991 A
5073958 Imme Dec 1991 A
5081656 Baker et al. Jan 1992 A
5081689 Meyer et al. Jan 1992 A
5086478 Kelly-Mahaffey et al. Feb 1992 A
5090576 Menten Feb 1992 A
5091861 Geller et al. Feb 1992 A
5091968 Higgins et al. Feb 1992 A
5093867 Hori et al. Mar 1992 A
5113565 Cipolla et al. May 1992 A
5115309 Hang May 1992 A
5119435 Berkin Jun 1992 A
5124622 Kawamura et al. Jun 1992 A
5133022 Weideman Jul 1992 A
5134575 Takagi Jul 1992 A
5143436 Baylor et al. Sep 1992 A
5145432 Midland et al. Sep 1992 A
5151951 Ueda et al. Sep 1992 A
5153925 Tanioka et al. Oct 1992 A
5159281 Hedstrom et al. Oct 1992 A
5159645 Kumagal Oct 1992 A
5168269 Harlan Dec 1992 A
5185855 Kato et al. Feb 1993 A
5189712 Kajiwara et al. Feb 1993 A
5206820 Ammann et al. Apr 1993 A
5216503 Paik Jun 1993 A
5225940 Ishii et al. Jul 1993 A
5230027 Kikuchi Jul 1993 A
5243607 Masson et al. Sep 1993 A
5253306 Nishio Oct 1993 A
5253308 Johnson Oct 1993 A
5265173 Griffin et al. Nov 1993 A
5271068 Ueda et al. Dec 1993 A
5287449 Kojima Feb 1994 A
5297256 Wolstenholme et al. Mar 1994 A
5299269 Gaborski et al. Mar 1994 A
5311598 Bose et al. May 1994 A
5315388 Shen et al. May 1994 A
5319457 Nakahashi et al. Jun 1994 A
5327156 Masukane et al. Jul 1994 A
5337267 Colavin Aug 1994 A
5363507 Nakayama et al. Nov 1994 A
5367439 Mayer et al. Nov 1994 A
5367667 Wahlquist et al. Nov 1994 A
5371690 Engel et al. Dec 1994 A
5388197 Rayner Feb 1995 A
5388262 Dreste et al. Feb 1995 A
5398292 Aoyama Mar 1995 A
5432525 Maruo et al. Jul 1995 A
5440699 Farrand et al. Aug 1995 A
5455870 Sepai et al. Oct 1995 A
5455933 Schieve et al. Oct 1995 A
5475766 Tsuchiya et al. Dec 1995 A
5477138 Efjavic et al. Dec 1995 A
5481712 Silver et al. Jan 1996 A
5485570 Bushboom et al. Jan 1996 A
5491780 Fyles et al. Feb 1996 A
5495537 Bedrosian et al. Feb 1996 A
5519840 Matias et al. May 1996 A
5526050 King et al. Jun 1996 A
5544256 Brecher et al. Aug 1996 A
5566877 McCormack Oct 1996 A
5568563 Tanaka et al. Oct 1996 A
5583954 Garakani Dec 1996 A
5586058 Aloni et al. Dec 1996 A
5592562 Rooks Jan 1997 A
5594859 Palmer et al. Jan 1997 A
5602937 Bedrosian et al. Feb 1997 A
5608872 Schwartz et al. Mar 1997 A
5640199 Garakani et al. Jun 1997 A
5640200 Michael Jun 1997 A
6026176 Whitman Feb 2000 A
Foreign Referenced Citations (7)
Number Date Country
0 527 632 Feb 1993 EP
WO 9521376 Aug 1995 WO
WO 95122137 Aug 1995 WO
WO 9721189 Jun 1997 WO
WO 9722858 Jun 1997 WO
WO 9724692 Jul 1997 WO
WO 9724693 Jul 1997 WO
Non-Patent Literature Citations (15)
Entry
Grimson, W. Eric L. and Huttenlocher, Daniel P., “On the Sensitivity of the Hough Transform for Object Recognition”, May 1990, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 12, No. 3.
Medina-Mora et al. (1981) An Incremental Programming Environment, IEEE Transactions on Software Eng. SE-7:472-482.
Teitelbaum et al. (19810 The Cornell Program Synthesizer: A Syntax-Directed Programming Environment, Communications of the ACM 24:563-573.
Newsletter from Acquity Imaging, Inc., “Remote Vision Support Package—The Phones Are Ringing!,” 1 page.
PictureTel Corporation Product Brochure “Picturetel Live PCS 100(tm) Personal Visual Communications System,” 3 pp. (1993).
PictureTel Corporation Product Brochure “PictureTel System 1000: Complete Videoconferencing for Cost Sensitive Applications,” 4 pp. (1993).
PictureTel Corporation Product Brochure, “PictureTel System 4000(tm) a Family of Models to Fit your Application from Offices to Boardrooms, Classrooms, and Auditoriums,” 4 pp. (1993).
Symantec Corporation, “The Norton pcAnywhere User's Guide,” Table of Contents 8 pp; Introduction of pcAnywhere Technology pp i-vii; Chapter 7—Sessions; pp. 191-240 (1991).
Bursky, Dave, “CMOS Four-Chip Set Process Images at 20-MHz Data Rates,” Electronic Design, May 28, 1987, pp. 39-44.
Plessey Semiconductors, Preliminary Information, May 1986, Publication No. PS2067, May 1986, pp. 1-5.
NEC Electronics Inc., PD7281 Image Pipelined Processor, Product Information Brochure, pp. 2-169-2-211.
Horn, Berthold Klaus Paul. “Robot Vision”, The Massachusetts Institute for Technology, 1986.
Rosenfeld, Azriel. “Computer Vision: Basic Principles,” Proceedings of the IEEE. vol. 76, No. 8, Aug. 1988. pp.863-868.
Grimson, Member, Ieee and Huttenlocher, On the Sensitivity of the Hough Transform for Object Recognition, 1990, p. 255.
Grimson, Member, Ieee and Huttenlocher, On the Sensitivity of the Hough Transform for Object Recognition, 1990, p. 123.
Provisional Applications (1)
Number Date Country
60/001430 Jul 1995 US
Continuations (1)
Number Date Country
Parent 08/521959 Aug 1995 US
Child 09/224161 US