# US 7,079,141 B2 · System and method for specifying a machine vision process using different programming methodologies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,079,141 B2
- Document ID: US7079141B2
- Status: Granted
- Kind: B2
- Application number: 10/100,559
- Filed: 2002-03-18
- Published: 2003-03-06
- Granted: 2006-07-18
- Earliest claimed: 2001-06-29
- Assignees: National Instruments Corporation
- Inventors: Nicolas Vazquez; Kevin L. Schultz
- Web page: https://patentgrep.com/patent/US7079141B2

## CPC

- G06F 8/10: Requirements analysis; Specification techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for specifying a machine vision process utilizing two or more different program creation methodologies. In one embodiment, the different program creation methodologies may include specifying steps or operations for the process using graphical input panels, e.g., in a “wizard-based” manner, and using graphical programming techniques for other portions, such as to specify decision operations. Thus, optimum program creation methodologies may be used for specifying different respective portions of the process.

## Claims

### Claim 1

A method for specifying a machine vision process, the method comprising:
displaying an image on a display;
displaying a graphical user interface on the display, wherein the graphical user interface comprises a plurality of possible image processing steps;
receiving first user input selecting a plurality of image processing steps to be applied to the image;
creating a process specification in response to the first user input, wherein the process specification comprises the plurality of image processing steps, wherein the process specification specifies a first portion of the machine vision process;
receiving second user input selecting a plurality of nodes and interconnecting at least two of the plurality of nodes, thereby specifying a plurality of interconnected nodes; and
creating a block diagram in response to the second user input, wherein the block diagram specifies a second portion of the machine vision process, wherein the block diagram comprises the plurality of interconnected nodes which visually indicate operation of the second portion of the machine vision process;
wherein the process specification is distinct from the block diagram; and
wherein the process specification and the block diagram collectively specify the machine vision process.

### Claim 2 (depends on 1)

The method of claim 1,
wherein the machine vision process is operable to visually inspect a device.

### Claim 3 (depends on 1)

The method of claim 1,
wherein the plurality of image processing steps of the process specification are operable to analyze an image of a device under inspection;
wherein the block diagram is operable to determine an inspection result for the device, based on values determined by the image processing steps.

### Claim 4 (depends on 1)

The method of claim 1,
wherein the block diagram graphically specifies a procedure that uses values determined by the first portion of the process to produce one or more results.

### Claim 5 (depends on 1)

The method of claim 1,
wherein the block diagram graphically specifies a decision operation based on execution results determined by steps in the process specification.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
including one or more steps in the process specification operable to perform a plurality of operations based on a result computed by the block diagram.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
including a step in the process specification that references the block diagram.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
executing the machine vision process, wherein the machine vision process visually inspects a device and generates a result.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
displaying a graphical user interface useable to create the block diagram;
wherein said receiving the second user input comprises receiving the second user input via the graphical user interface.

### Claim 10 (depends on 1)

The method of claim 1,
wherein said creating the block diagram comprises:
displaying the plurality of interconnected nodes in the block diagram, wherein one or more of the nodes are displayed in response to the second user input.

### Claim 11 (depends on 1)

The method of claim 1,
wherein said creating the block diagram in response to the second user input comprises creating a graphical program in response to the second user input.

### Claim 12 (depends on 1)

The method of claim 1,
wherein the block diagram includes a first set of nodes having values determined by execution results of the process specification;
wherein said creating the block diagram comprises:
including a second set of function nodes in the block diagram in response to the second user input;
connecting nodes from the first set of nodes to nodes from the second set of function nodes, in response to the second user input.

### Claim 13 (depends on 1)

The method of claim 1, wherein each of the plurality of steps in the process specification has zero or more associated parameters, the method further comprising:
receiving user input specifying at least a subset of the parameters associated with the plurality of steps;
automatically including one or more nodes in the block diagram, wherein each node corresponds to a parameter from the specified at least a subset of parameters.

### Claim 14 (depends on 1)

The method of claim 1, wherein the process specification comprises a script, the method further comprising:
displaying a graphical user interface useable to select from image processing steps available for inclusion in the script;
wherein said creating the process specification is performed in response to the first user input received via the graphical user interface specifying desired image processing steps to include in the script.

### Claim 15 (depends on 1)

The method of claim 1, the method further comprising
displaying a graphical user interface indicating operations that can be performed on the image;
wherein the plurality of image processing steps comprises one or more operations to be performed on the image.

### Claim 16

A method for specifying a machine vision process, the method comprising:
displaying a graphical user interface (GUI), wherein the GUI includes machine vision operations that are selectable to be included in a process specification;
receiving first user input to the GUI, wherein the first user input selects machine vision operations for inclusion in the process specification;
creating the process specification in response to the first user input, wherein the process specification specifies a first portion of the machine vision process;
receiving second user input to the GUI, wherein the second user input selects a plurality of nodes and interconnects at least two of the plurality of nodes, thereby specifying a plurality of interconnected nodes; and
creating a block diagram in response to the second user input, wherein the block diagram specifies a second portion of the machine vision process, wherein the block diagram comprises the plurality of interconnected nodes which visually indicate operation of the second portion of the machine vision process;
wherein the process specification is distinct from the block diagram; and
wherein the process specification and the block diagram collectively specify the machine vision process.

### Claim 17 (depends on 16)

The method of claim 16,
wherein the machine vision operations included in the process specification comprise image processing operations operable to analyze an image of a device.

### Claim 18 (depends on 17)

The method of claim 17,
wherein the block diagram is operable to determine an inspection result for the device, based on values determined by the image processing operations.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
including one or more operations in the process specification that depend on the inspection result determined by the block diagram.

### Claim 20

A method for specifying a machine vision process, the method comprising:
creating a process specification in response to first user input, wherein the process specification comprises a plurality of steps specifying a first portion of the machine vision process;
creating a block diagram in response to the second user input, wherein the block diagram specifies a second portion of the machine vision process, wherein the block diagram comprises a plurality of interconnected nodes which visually indicate operation of the second portion of the machine vision process;
wherein the process specification is distinct from the block diagram; and
wherein the process specification and the block diagram collectively specify the machine vision process.

### Claim 21

A computer-readable memory medium for specifying a machine vision process, the memory medium comprising program instructions executable to:
display an image on a display;
display a graphical user interface on the display, wherein the graphical user interface comprises a plurality of possible image processing steps;
receive first user input selecting a plurality of image processing steps to be applied to the image;
create a process specification in response to the first user input, wherein the process specification comprises the plurality of image processing steps, wherein the process specification specifies a first portion of the machine vision process;
receive second user input selecting a plurality of nodes and interconnecting at least two of the plurality of nodes, thereby specifying a plurality of interconnected nodes; and
create a block diagram in response to the second user input, wherein the block diagram specifies a second portion of the machine vision process, wherein the block diagram comprises the plurality of interconnected nodes which visually indicate operation of the second portion of the machine vision process;
wherein the process specification is distinct from the block diagram; and
wherein the process specification and the block diagram collectively specify the machine vision process.

### Claim 22 (depends on 21)

The memory medium of claim 21,
wherein the machine vision process is operable to visually inspect a device.

### Claim 23 (depends on 21)

The memory medium of claim 21,
wherein the plurality of image processing steps of the process specification are operable to analyze an image of a device under inspection;
wherein the block diagram is operable to determine an inspection result for the device, based on values determined by the image processing steps.

### Claim 24 (depends on 21)

The memory medium of claim 21,
wherein the block diagram graphically specifies a procedure that uses values determined by the first portion of the process to produce one or more results.

### Claim 25 (depends on 21)

The memory medium of claim 21,
wherein the block diagram graphically specifies a decision operation based on execution results determined by steps in the process specification.

### Claim 26 (depends on 21)

The memory medium of claim 21, further comprising program instructions executable to:
include one or more steps in the process specification operable to perform a plurality of operations based on a result computed by the block diagram.

### Claim 27 (depends on 21)

The memory medium of claim 21,
wherein, to create the block diagram, the program instructions are further executable to:
display a plurality of nodes in the diagram, wherein one or more of the nodes are displayed in response to the second user input.

### Claim 28

A system for specifying a machine vision process, the system comprising:
a processor;
a memory storing program instructions;
wherein the processor is operable to execute the program instructions to:
display an image on a display;
display a graphical user interface on the display, wherein the graphical user interface comprises a plurality of possible image processing steps;
receive first user input selecting a plurality of image processing steps to be applied to the image;
create a process specification in response to the first user input, wherein the process specification comprises the plurality of image processing steps, wherein the process specification specifies a first portion of the machine vision process;
receive second user input selecting a plurality of nodes and interconnecting at least two of the plurality of nodes, thereby specifying a plurality of interconnected nodes; and
create a block diagram in response to the second user input, wherein the block diagram specifies a second portion of the machine vision process, wherein the block diagram comprises the plurality of interconnected nodes which visually indicate operation of the second portion of the machine vision process;
wherein the process specification is distinct from the block diagram; and
wherein the process specification and the block diagram collectively specify the machine vision process.

### Claim 29 (depends on 1)

The method of claim 1, wherein one or more steps of the plurality of image processing steps in the process specification has one or more associated output parameters, wherein each associated output parameter indicates execution results when the step is executed;
the method, further comprising:
automatically including one or more nodes in the block diagram, wherein each node of the one or more automatically included nodes corresponds to an associated output parameter from a user selected at least a subset of the one or more associated output parameters for the one or more steps of the plurality of image processing steps.

### Claim 30 (depends on 29)

The method of claim 29, further comprising:
for each step of one or more steps of the plurality of image processing steps, receiving user input selecting at least a subset of the one or more associated parameters for the step.

### Claim 31 (depends on 1)

The method of claim 1,
wherein each step of one or more steps of the plurality of image processing steps in the process specification has a plurality of associated output parameters, wherein each associated output parameter indicates execution results when the step is executed;
wherein the block diagram graphically specifies a decision operation based on the execution results of each step of the one or more steps of the plurality of image processing steps in the process specification.

### Claim 32

A computer-implemented method for specifying a machine vision process, the method comprising:
displaying an image on a display of a computer system;
displaying a graphical user interface on the display, wherein the graphical user interface comprises a plurality of possible image processing steps;
receiving first user input selecting a plurality of image processing steps to be applied to the image;
creating a first portion of the machine vision process in response to the first user input, wherein the first portion of the machine vision process comprises the plurality of image processing steps to perform image processing on the image, wherein the first portion of the machine vision process produces one or more associated output results;
receiving second user input selecting a plurality of nodes and interconnecting at least two of the plurality of nodes, thereby specifying a plurality of interconnected nodes; and
creating a second portion of the machine vision process in response to the second user input, wherein the second portion of the machine vision process comprises the plurality of interconnected nodes which visually indicate a decision operation;
wherein a result of the decision operation is based on at least a subset of the one or more associated output results produced from the first portion of the machine vision process.

### Claim 33 (depends on 32)

The computer-implemented method of claim 32, wherein the plurality of interconnected nodes is executable by the computer system to perform the decision operation.

### Claim 34 (depends on 33)

The computer-implemented method of claim 33, wherein the plurality of interconnected nodes are compilable or interpretable.

### Claim 35 (depends on 32)

The computer-implemented method of claim 32, wherein the plurality of interconnected nodes is a dataflow diagram.
