System and method for efficiently scoring a probe in an image with a vision system - Patents.com

JP7651523B2Active Publication Date: 2025-03-26COGNEX CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022135459
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-02-10
Filing Date
2022-08-28
Publication Date
2025-03-26
Estimated Expiration
2037-02-11

Smart Images

  • Figure 0007651523000001
    Figure 0007651523000001
  • Figure 0007651523000002
    Figure 0007651523000002
  • Figure 0007651523000003
    Figure 0007651523000003
Patent Text Reader

Abstract

A system and method are provided for scoring trained probes for use in analyzing one or more candidate poses in runtime images. A procedure for scoring matches between a probe and a runtime candidate pose includes applying a set of probes having positions and gradient directions based on a trained model to one or more runtime image-based candidate poses, where the applied probes each include a discrete set of position offsets relative to a respective gradient direction. A match score is calculated for each probe, which includes estimating a best-match position for each probe relative to one of the respective offsets, and generating an individual set of probe scores for each probe at each estimated best-match position.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Related Applications This application claims priority to co-pending U.S. Provisional Patent Application No. 62 / 294,430, filed December 2, 2016, entitled "System and Method for Efficiently Scoring a Probe in an Image with a Vision System," the teachings of which are incorporated herein by reference.

[0002] Technical Field The present invention relates to machine vision systems, and more particularly to a system and method for aligning trained images with respect to candidate poses of a runtime image. [Background technology]

[0003] Machine vision systems, also referred to herein as "vision systems", are used to perform a variety of tasks in manufacturing environments. Vision systems generally consist of one or more cameras with image sensors (or "imagers") that capture grayscale, color and / or three-dimensional (3D) images of a scene containing the object being manufactured. The images of the object can be analyzed to provide data / information to a user and to the associated manufacturing and / or other processes. Data produced by the images is typically analyzed and processed by the vision system in one or more vision system processors, which may be purpose-built or may be part of one or more software applications written within a general-purpose computer (e.g., PC, laptop, tablet or smartphone).

[0004] Common tasks for vision systems include alignment and inspection. In alignment tasks, a vision system tool, such as the well-known PatMax® system available from Cognex Corporation (Natick, Massachusetts), determines the presence / absence and pose of a pattern in an imaged scene against a trained pattern (using a real or synthetic model) of features in an image of the scene. This information can be used in subsequent inspection (or other) operations to look for defects and / or perform other actions such as part rejection.

[0005] Such a vision system task can be performed by computing a meaningful match score for a given pose of the trained model in a two-dimensional (2D) image (e.g., grayscale) during alignment. The score can be used, for example, to determine which candidate pose is a true instance of the model, to select the best available candidate, or for other classification and / or decision purposes.

[0006] Calculating scores and determining alignment is often difficult when the acquired runtime images contain deformations or other transformations from the expected model images. Such deformations may be the result of small imperfections in the object surface or may result from optical issues, such as changes in viewing angle, uneven lighting of the field of view, partial occlusions, shadows, etc. To score pose effectively, some deformations must be taken into account in the process. Similarly, there may be distortions of the vision system camera lenses that may be nonlinear, which can be difficult to address and require high processing overhead.

[0007] A common technique for aligning a trained image with a runtime image involves the use of a probe, which typically encompasses a set of locations corresponding to points on the model that define a gradient. The probe is positioned relative to a candidate pose in the runtime image and scored to determine how well the candidate pose matches the expected model characteristics defined by the probe.

[0008] Prior techniques for performing probe matching of candidate poses in the presence of deformation involve extracting "mini-features" from the runtime image and attempting to match the mini-features. This consists of extracting the sub-pixel locations of individual edge transitions from the image. Each mini-feature corresponds approximately to a section of the boundary that is (for example) one pixel long. Once these mini-features are extracted, a neighborhood search centered on each probe can determine if there are potential matching features, and a score is credited if a match occurs. However, this approach has two important deficiencies. First, it requires a hard contrast threshold to determine what gradient changes are strong enough to be called a feature and what are not. If image features are close to this hard threshold, the extraction behavior can be unstable. Second, extracting mini-features is computationally expensive because it requires determining the gradient at every location, calculating the angle of the gradient direction (rather than just their x and y components), and performing off-peak suppression to retain only the locations with the locally strongest gradients. Thus, this approach is not very fast and is not as efficient as desired.

[0009] Another prior art technique for matching trained models is to score a "smoothed" run-time image. This consists of smoothing the image (e.g., by applying a Gaussian filter) and (optionally) downsampling the image. The image is then scored (e.g.) at the exactly transformed probe location (precisely mapped to the downsampled coordinates, if applicable). This implicitly allows for some local deformations, since nearby features will be smeared and overlap with the probe location. Again, this approach suffers from two important deficiencies. First, smoothing destroys information and therefore may eliminate true matching features, resulting in a lower than desired score. Second, smoothing may produce one or more new locations with strong gradients, thus producing false matching features, resulting in a higher than desired score. Summary of the Invention

[0010] The present invention overcomes the shortcomings of the prior art by providing a system and method for scoring probes used in aligning trained model images to candidate poses in run-time images that tolerate some local deformations that are not explicitly part of the pose transformation, but avoids run-time image data blurring and / or downsampling, or performing computationally expensive excessive operations on the run-time images. Adjusting for the deformations does not significantly reduce the score. Advantageously, the score can be computed quickly, and generally without requiring explicit run-time feature extraction on the acquired images.

[0011] In an exemplary embodiment, a system and method are provided for scoring trained probes for use in analyzing one or more candidate poses in a runtime image. A set of probes having positions and gradient orientations based on a trained model, generated in a training phase, are applied to one or more candidate poses based on the runtime image. Each applied probe includes a discrete set of position offsets relative to a respective gradient orientation. A match score is calculated for each probe, which includes estimating a best match position relative to a respective offset for each probe, and generating a set of individual probe scores for each probe at each estimated best match position.

[0012] Exemplarily, a set of probes is generated having positions and orientations representative of the trained model in the training step. A total score can be generated that is a weighted sum or product of the individual probe scores, where the calculation of the total score operates either (a) at the same time as the probe scores are generated, or (b) after some or all of the probe scores have been generated. A best alignment match between the model and the runtime image can be selected based on the total score. Exemplarily, a set of probes is pre-registered relative to each candidate pose prior to the application step. Prior to the application step, gradients are calculated for each position to which each probe is applied. A gradient vector for each location where each probe is applied can also be calculated by one of: (a) determining the gradient field pixel that encompasses the location and using the gradient vector corresponding to the gradient field pixel; (b) performing sub-pixel interpolation of neighboring gradient field values ​​relative to the location; (c) determining a set of image pixels that are closest to the location and applying an X kernel and a Y kernel to calculate a global pixel gradient; or (d) determining X and Y gradients for a neighborhood of global pixel gradients centered at the location and performing sub-pixel interpolation of neighboring gradient field values ​​relative to the location. The magnitude of at least one direction vector of each probe and the gradient direction vector of each probe can be normalized to a predetermined value (e.g., 1.0). Illustratively, the normalization includes one of: (a) normalizing the magnitude of the direction vector to a predetermined magnitude; or (b) normalizing the magnitude of the direction vector to a magnitude that is a predetermined function of its raw magnitude. The system and method can also include normalizing the magnitude of the direction vector of each probe during the training phase. Illustratively, the positions of the probes applied to the runtime image may be determined by (a) normalizing each probe's direction vector to a magnitude of 1.0, and (b) calculating an offset position as a predetermined multiple of the normalized probe direction vector. In an embodiment, the system and method may also include calculating an offset in a direction perpendicular to each respective direction vector.Additionally, calculating the score may include performing a dot product of the orientation of each probe with a gradient vector of the runtime image at each respective position of each probe. In an embodiment, the magnitude of one or more of the vectors of the probe may be normalized based on a normalization function.

[0013] The present invention will now be described with reference to the accompanying drawings. [Brief description of the drawings]

[0014] [Figure 1] 1 is a schematic diagram showing a vision system acquiring images of an exemplary object whose candidate poses are aligned with a trained model using a probe in accordance with an illustrative embodiment.

[0015] [Diagram 2] 1 is a flowchart of a training procedure in which trained probes are generated from contours / features of a model image.

[0016] [Diagram 3] 1 is a schematic diagram of an exemplary model image contour display showing associated trained probes.

[0017] [Figure 4] 13 is a schematic diagram of a display of multiple trained probes showing their center positions relative to the gradient of an exemplary model contour.

[0018] [Diagram 5] 13 is a schematic diagram of a display of a set of trained probes encompassing the gradient of a model image.

[0019] [Figure 6] 13 is a flowchart of a procedure for applying trained probes to run-time candidate poses and scoring matches between the probes and run-time candidate poses.

[0020] [Figure 7]13 is a schematic diagram of an exemplary run-time image display in which a deformation is aligned with a set of trained probes.

[0021] [Figure 8] 1 is a schematic diagram of an exemplary probe showing a set of offsets at predetermined increments used to estimate the best position relative to the gradient of the run-time contour.

[0022] [Figure 9] 13 is a schematic diagram of a display of multiple probes illustrating the transition from a match with the gradient of an exemplary run-time contour, through a weak match, to no match. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] I. System Overview

[0024] FIG. 1 illustrates a machine vision system 100 (also referred to simply as a "vision system") for use in inspecting and / or analyzing features on a surface of an object imaged within a field of view (FOV) of a vision system camera assembly 120. The camera assembly 120 may be any acceptable arrangement of components, and typically includes a lens assembly 122 and a camera body 124 housing an image sensor (or "imager") 126 based on any acceptable imaging technology, such as CCD or CMOS. The imager 126 may be arranged to capture images in two dimensions (e.g., along the x-axis and y-axis) of an array of image pixels that may be adapted to sense the scene in grayscale or color. The camera body 124 may include various image processing components that make up a vision processor 130 that performs associated vision processes. The vision processor 130 operates on the captured images of the scene and may extract information from the captured image data 134 using vision system tools and other processes (processors) 152. This information may relate to features of interest and other items appearing in the image. Vision system tools, such as the well-known PatMax® available from Cognex Corporation, Natick, Massachusetts, USA, can be used to analyze 2D and 3D features in the images to provide information about relative pose, alignment, and other details, such as edges, blobs, etc. Some or all of the vision system processes can be performed within the body 124 of the camera assembly 120. It is expressly contemplated that some or all of the processes can be performed by an interconnected (wired or wireless) computing device / processor, such as a dedicated processor or a general-purpose computer (e.g., server, PC, laptop, smartphone, tablet, etc.) 140 and appropriate user interface (e.g., keyboard 142, mouse 144, and display / touch screen 146). The interconnected computing device / processor 140 can use the processed image data 134 to perform further utilization tasks by downstream processors or devices.For example, when a vision system performs an inspection task, the information can be used to provide quality control information to a database or to reject defective items on the line. The information can also be used in logistics applications (for example) by reading labels and / or ID codes on objects. A variety of other utilization tasks can be undertaken with the image data and related information.

[0025] In an exemplary embodiment, the vision process and processor 130 includes multiple functional blocks and / or modules. These include a training process (or processor) 152 that trains model feature data that is used in subsequent run-time processes to analyze candidate poses of object features for alignment to model features. As described below, model data 154 is generated by the training process (or processor) 152. This model data includes model probes / trained probes. These probes characterize the gradients of the model features at various locations. It should be noted that the trained image data or model image data can be based on acquired images of actual training object surfaces and / or synthetic image data. That is, the trained images or models can be defined by descriptions provided (for example) in CAD models, synthetic squares, etc. The term "model" thus broadly includes data that is defined generally without reliance on actual acquired image pixel values.

[0026] The vision system process (or processor) 130 also includes a runtime process (or processor) 154 that performs various tasks related to acquiring and processing images of the object during runtime operations. Such tasks may include registering features in the image, performing optional feature smoothing and gradient analysis, identifying edges and other features using the vision system tools (132), and transmitting the results of the runtime analysis to a data processing device / processor (processor). These processes allow various candidate poses of the feature of interest in the runtime image to be identified for subsequent alignment operations. Such runtime operations include aligning candidate poses of the object and object features to the model using an alignment process (or processor) 156 according to an exemplary embodiment. As described below, the alignment process (or processor) matches probes to the gradient of runtime image features / contours at the candidate poses based on a score for each probe. More specifically, a score is calculated for a given candidate pose of the trained model in a given image. This allows the matching to adjust for the degree of local deformation (relative to the model) in the contour beyond what the pose dictates.

[0027] II. Model Probe Training

[0028] 2, a procedure 200 for training a model feature consisting of one or more model contours is shown. The model contour or set of contours is determined by a number of techniques that should be apparent to one of ordinary skill in the art. Each contour can define a handedness that indicates the direction of the gradient across the contour, or the polarity of the gradient can be otherwise ignored.

[0029] At step 210, the procedure 210 provides a model image including one or more contours. These may be based on actual captured images of the model object (representing the desired version of the run-time object), or may be provided by synthetic data from (for example) a CAD representation of the object as described above. Additionally, the actual image may be modified to generate the desired model contours.

[0030] As noted in step 220, the model contour is represented by a discrete set of samples called probes that point in the direction of the gradient (perpendicular to the contour). For grayscale models, process 200 generally extracts the contour by examining the gradients and their connectivity, and then selects a discrete set of probes to represent the contour. The generation of the set of probes can generally be accomplished in a manner that will be apparent to one of ordinary skill in the art. Additional techniques such as probe placement and balancing can be employed where applicable. A more general background on such techniques, as well as probes, is provided in commonly assigned U.S. patent application Ser. No. 14 / 603,969 to Simon Barker, entitled "Probe Placement for Image Processing," the teachings of which are incorporated herein by reference as helpful background information. Referring to FIG. 3, an exemplary display 300 of an elliptical object 310 is depicted. The contrast at the edges of the object defines the gradient; that is, individual pixels 312, 314, and 316 transition from dark to light. As such, a series of probes 320, represented by arrows, define the direction of the gradient. A probe has vector properties, and its length defines the magnitude of the gradient. Similarly, each probe 320 can define a central location 322 (the probe's actual location) that approximately falls on a specified edge of the object 310. In Figure 4, the probes 320 along an exemplary contour 400 are shown in more detail with their associated locations (circles 322). As shown in Figure 5, a complete model of a shape 500 can be defined by an array of trained probes that surround the perimeter 510 of the shape, with each probe designated by an arrow pointing outwards (in this example) to represent the gradient direction.

[0031] With further reference to procedure 200 (FIG. 2), the probes can optionally be normalized (step 230) so that their maximum length (magnitude) is a predefined value, e.g., 1.0. In this exemplary embodiment, all probes have magnitudes between 0 and 1. This normalized probe set is then stored or otherwise provided to the run-time stage of the process for use in matching candidate poses to the model (step 240).

[0032] III. Run-time Behavior

[0033] Referring to the run-time procedure 600 of FIG. 6, the vision system (100) acquires an image of the run-time object or otherwise provides image data (e.g., from storage) to the vision system process (or processor) 130 (step 610). Illustratively, the image is a 2D array whose elements may represent grayscale, color intensity, volumetric information, etc. In step 620, the vision system process (or processor) 130 identifies regions of interest - e.g., portions of the image that contain contrasting features, contours, and / or shapes. Optionally, in step 630, from this image, the vision system process (or processor) may generate a fully assembled "gradient image." The gradient image defines derivatives for each element of the 2D array in each of the x and y directions. This array may be the same as the image array, or may be offset by a fraction of a pixel (e.g., half a pixel) for the kernel used to calculate the gradient. Alternatively, the gradient image array may define any relationship to the acquired image array, for example if decimation is performed as part of the gradient operation.

[0034] It should be noted that in various embodiments the imager may be adapted to acquire 3D image data, and the principles described herein may be extended to modulate such data in ways that should be apparent to those skilled in the art.

[0035] In step 640, a pose transformation occurs. The pose transformation defines a mapping from a trained pose of the probe to a candidate pose of the probe in the image. This pose can be as simple as an x-offset and a y-offset, or can optionally include some or all affine degrees of freedom. Alternatively, the pose transformation can define any complex non-linear mapping.

[0036] Illustratively, a vision system process (or processor) may request (or the system may automatically specify) at setup or run-time that the user (e.g., via a user interface) specify the amount of allowed deformation between the model and the run-time image / contour. This deformation may be specified in pixels or other suitable metric. More generally, the user specifies the amount of local deformation that will still be considered a good match. In one embodiment, this value may be an integer, while in other embodiments it may be a floating point value. Illustratively, a specified allowable deformation of 1.0 is equal to the linear dimension of one pixel. The user may convert physical measurement units (e.g., millimeters, microns, etc.) to pixel units via a predefined calibration relationship.

[0037] A transformation of each candidate pose occurs as described above. The trained (model) probes are mapped through the transformation and the mapped positions are determined in terms of orientation for each probe. Figure 7 shows a display 700 of a run-time object image 710, which contains the extent of the deformation relative to a model defined by a set of model probes 720. The circled regions 730 and 740 represent probes that are significantly misaligned (outwards and inwards, respectively) from the run-time contour edge 750 due to the deformation. This misalignment is addressed by scoring, as described below.

[0038] To score the transformation in an exemplary embodiment, first each probe is scored individually and then the scores are summed. For each probe, the system process attempts to find (estimate) a matching gradient in the image. The process also attempts to find a matching "nearby" gradient to accommodate slight inherent deformations between the candidate and the model. In general, the process attempts to find a potential match along the gradient direction of the probe. As such, other probes are expected to be along the edge (perpendicular to the gradient direction) on either side of the target probe. Similarly, the process does not apply full credit to segments that are shorter than expected. The resulting technique efficiently estimates the probe position to test. This is based in particular on the fact that the (vector) direction of the target probe is the direction that is most likely to be tested for a particular location on the contour, and the length of the probe is normalized to 1.0.

[0039] According to step 650 (FIG. 6), the process can generate a set of test positions that form a line by adding a multiple (incremental offset) of the probe direction to the transformed positions. By way of example, as shown in FIG. 8, an exemplary probe 800 defines a direction represented by an arrowhead 810. The transformed positions of the probe 800 are identified by a circle 820. In this example, the user-defined (normalized) allowable deformation is set to 2. Thus, in addition to the central position (circle 820) that defines the test positions for determining the gradient in the runtime image, four additional test positions 830, 840, 850, 860 are provided at opposite sides of the central position 820 (830, 840 on one side, 850, 860 on the other side), each with an incremental offset of 1 unit. These offset positions 830, 840, 850, 860 are calculated by adding multiples of the probe direction (black vector), specifically -2, -1, 0 (position 820), 1, 2.

[0040] For efficiency, and because peaks in bilinear interpolation space typically occur at sample locations, the process determines the whole-pixel gradient bin into which each sample location falls. As a result, the same location may be tested twice, but it is more efficient to test blindly than to determine if the same location is tested multiple times. Illustratively, the process looks at the test location that has the maximum dot product (at the test location) of the (normalized) probe direction and the raw gradient magnitude vector.

[0041] It is noted that in another embodiment, the probe position can be selected from a set of predefined positions based on the gradient direction (for example). By way of non-limiting example, the system selects four sets of offsets that slide the probe 0 degrees, 45 degrees, 90 degrees, or 135 degrees. For example, for 45 degrees, the offsets can be normalized values ​​(-1,-1), (0,0), (1,1). To select the appropriate direction, the calculated angle that is closest to the actual angle of the system mapped probe gradient can be selected.

[0042] At step 660 of procedure 600 (FIG. 6), a final score is given for each probe offset position. For each probe's final score, the system normalizes the selected gradient magnitude vector. In general, the normalization function ensures that the probe length is maximized to a given value - e.g., 1.0.

[0043] Referring again to FIG. 7 showing trained probes 720 mapped to a runtime image 710, probes within circled regions 730 and 740 represent very low scores because they are substantially offset from the runtime image gradient. These areas are considered clear non-matches. Similarly, adjacent areas 770 define low scores below the threshold and are considered non-matches. Transition area 760 has few matches because the gradient is weak (even when tested at the best position offset) or the angle match is less than ideal. Other probes on or near the runtime gradient (e.g., region 780) represent probe scores close to 1, which generally defines a very strong match. Note that some probes near the image apex and slightly to the left of the image are not on any gradient, but are still displayed in green due to their proximity to the matching gradient. Notably, probes located too far from the matching feature receive scores close to 0, even allowing for some deformation. Otherwise the system would not be able to effectively distinguish between matching and non-matching patterns. FIG. 11 shows a portion of a contour 1100 where a probe transitions from a strong match (region 1110), through a weak match (region 1120), to a no match (region 1130), based on closeness to the run-time gradient.

[0044] Referring again to the run-time procedure 600 of FIG. 6, after scoring the probes in step 670, the system then calculates the sum of all such probe scores. The final score may be normalized; that is, the maximum possible value of the score calculated in this manner is equal to the number of probes, and the score is normalized to the range 0 to 1 by dividing the sum by the number of probes. This type of score can be calculated for each suitable candidate pose. Scores above a given threshold (decision step 680) are considered aligned poses (step 682), and scores below a given threshold are considered unaligned poses (step 684).

[0045] IV. Conclusions and Further Considerations

[0046] The above-described system and method allows a reasonable degree of deformation between the model at training time and the candidate poses of the runtime object image at runtime, and accommodates this in a computationally efficient, accurate, and manner that can handle / match details in the runtime image. It is considered that deformations and distortions may occur in the image or its underlying object, and modeling such possible transformations is impractical. Therefore, the alignment process (or processor) here generally employs a subset of possible transformations, e.g., exact transformations defined by x, y, and an in-plane rotation Θ. Thus, in order to accurately report the best candidate, the scoring process is generally tolerant to unmodeled transformations that typically manifest as local deviations from the transformed boundaries. The system and method generally operate at maximum speed to adhere to a time budget that may be several milliseconds long, allowing a large number of possible candidate poses that may occur in the runtime image to be scored.

[0047] In general, the above described systems and methods operate to achieve these goals in a training phase and in a run-time phase. In the training phase, a set of probes is selected to represent the model, each of which defines a position and an orientation. Then, in the run-time phase, a mapped set of probes defined by the transformations of the training probes is computed. A best scoring position is calculated or estimated for each probe among a discrete set of offsets from the mapped position. These offsets are oriented relative to the mapped probe's orientation, and a match score for each probe is calculated as the score of that probe at its best match position. A total score is then calculated, which is a weighted sum or product of the individual probe scores. Optionally, the systems and methods can compute the full set of gradient fields in a pre-processing step before aligning the candidate pose with the trained probe. This can be achieved by computing a corresponding gradient vector for each position where the probe is tested. More specifically, the gradient field pixel that encompasses the position is determined, and the gradient vector corresponding to that gradient field pixel is taken. Alternatively, the system performs sub-pixel interpolation of neighboring gradient field values. This can be done, for example, by bilinear interpolation of the four adjacent x-gradients and bilinear interpolation of the four adjacent y-gradients. The system can also determine the set of image pixels closest to the location and apply the X and Y kernels to calculate the global pixel gradient.

[0048] Exemplarily, the X- and Y-gradients can be determined as above for a neighborhood of the global pixel gradient, and then the gradient values ​​as described above can be determined. Also, the magnitude (length) of the probe direction vector and / or gradient direction vector can be normalized in a manner that can be applied to the probe or gradient individually. More specifically, the magnitude of the direction vector can be normalized to a predetermined magnitude (e.g., 1.0), or to a magnitude that is a predetermined function of its raw magnitude. Exemplarily, the length of all probe direction vectors can be normalized during the training phase. The scores of the probes and corresponding gradient directions as described above can be calculated by the dot product of the (optionally normalized) probe direction and the corresponding (optionally normalized) gradient direction vector. Exemplarily, a fixed point representation of the vectors can be adopted for computational efficiency.

[0049] In an exemplary embodiment, the system determines a set of positions to test relative to the mapped probe position. This is done by (a) normalizing all probe orientation vectors to a magnitude of 1.0 (e.g., training phase), and (b) calculating offset positions as predefined multiples of the normalized probe orientation vector (e.g., if the allowed deformation is 3, the offsets to be tested will be -3, -2, -1, 0, 1, 2, 3, respectively, multiplied by the probe's normalized orientation). Alternatively, the system can employ predefined offsets in the vertical direction to determine the set of positions. These are defined by vectors (-y, x), where (x, y) are the components of the probe's normalized orientation vector. For example, the cross product of {-1, 0, 1 x (-y, x)} and {-3, -2, -1, 0, 1, 2, 3 x (x, y)}.

[0050] In various embodiments, the system can normalize the (total) score to the range 0-1 by (a) dividing it by the theoretical maximum score of the metric (i.e., the score of a perfect match for all probes), or (b) dividing it by the trained pose-on score in the training images.

[0051] Exemplary embodiments of the present invention have been described above in detail. Various modifications and additions may be made without departing from the spirit and scope of the present invention. Features of each of the various embodiments described above may be combined with features of other described embodiments as appropriate to provide multiple feature combinations in related new embodiments. Moreover, while a number of separate embodiments of the apparatus and method of the present invention have been described above, the description herein is merely illustrative of the application of the principles of the present invention. For example, the terms "process" and / or "processor" as used herein should be construed broadly to include various electronic hardware and / or software based functions and components (or functional "modules" or "elements" as they may be referred to). Furthermore, the illustrated process or processor may be combined with other processes and / or processors or divided into various sub-processes or sub-processors. Such sub-processes and / or sub-processors may be combined in various ways in accordance with the embodiments described herein. Similarly, it is expressly contemplated that any functions, processes and / or processors herein may be implemented using electronic hardware, software, or a combination of hardware and software, comprising a non-transitory computer-readable medium of program instructions. Furthermore, the various directional and / or orientation terms used herein, such as "vertical", "horizontal", "up", "down", "bottom", "top", "side", "front", "rear", "left", "right" and the like, are used only as relative descriptions and do not represent absolute orientations with respect to a fixed coordinate system, such as the direction of gravity. In addition, when the words "substantially" or "approximately" are used in connection with a given measurement, value or characteristic, it refers to an amount that is within normal operating ranges to achieve a desired result, but includes some variation due to inherent inaccuracies and errors within the margin of error of the system (e.g., 1-5 percent). Thus, this description is given by way of example and is not meant to otherwise limit the scope of the invention. The claims are set forth below.

Claims

1. 1. A system for analyzing one or more candidate poses in a run-time image using a trained probe with a vision system processor, comprising: an analysis process that receives a set of probes having positions and gradient orientations based on a trained model of image data, provides one or more candidate poses based on run-time images, and applies a probe from the set of probes to at least one of the candidate poses, each applied probe including a discrete set of position offsets relative to a respective gradient orientation; an alignment process that analyzes, for each of said probes, a predetermined match parameter associated with one of said discrete sets of position offsets; The above system.

2. The system of claim 1 , wherein the alignment process is configured to generate an individual probe score for each of the probes, and the predetermined match parameter is a best match score.

3. The system of claim 1 , further comprising a training process that generates a set of the probes having positions and orientations that represent the trained model.

4. The system of claim 2, further comprising: a total score that is a weighted sum or product of individual probe scores for the set of probes; and the analysis process operates (a) simultaneously as the probe scores are generated; or (b) after some or all of the individual probe scores have been generated.

5. The system of claim 4 , wherein the alignment process selects a best alignment match between the model and the runtime image based on the total score.

6. The system of claim 1 , further comprising: pre-registering the set of probes relative to each of the candidate poses prior to applying each of the probes.

7. The system of claim 1 , wherein the analysis process is configured to calculate a gradient for each location where each of the probes is applied.

8. The analysis process calculates a gradient vector for each position where each of the probes is applied. (a) determining the gradient field pixel that encompasses the location and using the gradient vector that corresponds to this gradient field pixel; or (b) performing sub-pixel interpolation of neighboring gradient field values ​​relative to the location; or (c) determining the set of image pixels closest to the location and applying the X and Y kernels to calculate the global pixel gradient; or (d) determining the X- and Y-gradients for a neighborhood of the global pixel gradient centered at the location and performing sub-pixel interpolation of neighboring gradient field values ​​relative to the location; or The system of claim 7, configured to calculate by any one of:

9. The system of claim 1 , wherein the analysis process is configured to normalize a magnitude of at least one direction vector of each probe and a gradient direction vector of each probe.

10. The analysis process comprises: (a) normalizing the magnitude of the directional vector to a predetermined magnitude; or (b) normalizing the magnitude of the directional vector to a magnitude that is a predetermined function of its raw magnitude; The system of claim 9 , further configured to perform one of the following:

11. 10. The system of claim 9, wherein the analysis process is further configured to normalize the magnitude of the direction vector of each of the probes during a training phase.

12. The analysis process determines the position of the probe applied to the run-time image by: (a) normalizing each probe's direction vector to a magnitude of 1.0; and 10. The system of claim 9, further configured to determine by: (b) calculating the offset position as a predetermined multiple of the normalized probe direction vector.

13. The system of claim 12 , wherein the analysis process is configured to calculate a respective perpendicular direction for each directional vector.

14. The system of claim 12 , wherein the analysis process is configured to calculate a dot product of an orientation of each probe and a gradient vector of the run-time image at each position of each probe.

15. The system of claim 12 , wherein the analysis process is configured to normalize the magnitude of one or more vectors of the probe based on a normalization function.

Citation Information

Patent Citations

  • Estimating device for occurrence of glitch in logic circuit

    JP1989083168A

  • Pattern model positioning method in image processing, image processing apparatus, image processing program, and computer readable recording medium

    JP2010067247A

  • System and method for locating fiducials with known shape

    US20150104068A1

  • Shape measurement device, structure production system, shape measurement method, structure production method, and shape measurement program

    WO2014156723A1