Object oriented method of structuring a software step program

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000

Reexamination Certificate

active

06226783

ABSTRACT:

FIELD OF THE INVENTION
This invention relates generally to computer programs and more particularly, to the object-oriented representation and architecture of such software programs and to the representation and properties of computer programs such as those programs used to describe and effectuate real time control of various manufacturing and process control applications.
BACKGROUND OF THE INVENTION
The ultimate goal of a computer (application) program is to control the operation or processing of some form of data. More specifically, the goal of a machine vision system application program is to extract important features from image data from which a description, interpretation, or understanding of the objects in the image can be provided by the machine (computer) for the purpose of classification, reporting and decision making.
In a machine vision application, for example, a set of operations or steps are executed in sequence. A typical machine vision program flow diagram is shown in FIG.
1
. The steps generally begin with the acquisition of an input image, which is captured by a camera and placed in memory, step
1
. The image is optionally preprocessed, step
2
, before the image is segmented and features are extracted from it. Segmentation and feature extraction, step
3
, of the image into one or more distinct objects can be accomplished, for example by extracting their boundaries. Features can be any data that describes or identifies parts, features (holes, etc.) and objects in the camera scene, such as size, area, length, distance or like parameters.
Features are usually expressed in pixel units that describe the geometric position of a feature in the image relative to some fixed position in the image such as the top left corner of the image (also called an image coordinate system), or in physical units like “mm” or inches (also called a camera coordinate system) if the position of the camera in the scene is known or can be measured (usually referred to as calibrating the camera).
These features are typically checked against tolerances or classified into various categories, step
4
, before a decision, step
5
, can be made or pass/fail status and results obtained, step
6
. Reports can also be generated, detailing the processing application, step
7
. External control inputs, step
8
, are used to activate the tolerance checking and to provide nominal tolerance values during execution for a particular feature.
SUMMARY OF THE INVENTION
The object oriented method of structuring a software step program, which is the subject of the present invention and described herein, has many advantages such as it:
1) Makes simple vision applications very easy to set up, train and run, while ensuring that complex applications can also be readily configured.
2) Provides a way to extend the programs by providing drop-in functionality in the form of language independent software components. New machine vision operations can be added to the system arbitrarily as well as new user interfaces for them. There are no arbitrary limits on the type of operation that can be done or data that can be returned by these computer programs.
3) Supports building the programs from a recipe database or directly using an easy to use point and click graphical user interface.
4) Allows access of any data in the step program by name for easy scripting either locally or over a network and free form expression support.
5) Provides a mechanism for expressing result data in the step program in different systems of coordinates so that, for example, measurements between features in different cameras can be easily computed when the object is too big to fit in one camera image.
6) Allows any such named data to be encoded in a form that is compatible with the Internet addressing scheme known as the Uniform Resource Locator (URL) address for access to any data either locally or from remote host machines on an Internet or Intranet network.
7) Provides a mechanism for the machine vision program to create the user interface components that allow the training and setting of parameters using a GUI (Graphical User Interface) library native to the platform (computer or system) that the program is loaded on.
8) Allows the training and tryout (i.e. trial runs) of the machine vision program on a host with the vision processor plugged into a peripheral extension bus of the same host computer or plugged into the peripheral extension bus of a different host computer that is on the same network as the setup and training host.
9) Allows the training and tryout of the machine vision program on a host computer with a standalone vision processor connected to the host system network.
10) Runs the machine vision computer programs unchanged on different CPU architectures and takes advantage of image processing acceleration hardware when available. More specifically the architecture supports a variety of processing models (corresponding to the runtime configurations as disclosed in commonly-owned, co-pending U.S. Provisional Patent application No. 60/066,339, filed Nov. 21, 1997, which is incorporated herein by reference), including:
a) Execution of the program on a vision processor board (the target) plugged in to a peripheral extension bus of the host computer.
b) Execution of the program on the host using a vision board plugged into the extension bus for image acquisition and accelerated image processing.
c) Execution of the program on the host using a vision board for image acquisition (frame grabber).
d) For each output or result generated, a system of coordinates which specifies the units this output is expressed in is attached.
e) Execution of the program on a standalone vision processor system (the target) connected to the host over a network.
10) Allows machine vision programs to also be monitored once running on the vision processor board or vision processor target for the purpose of diagnostics and debugging from a local host or a remote host.
The invention describes an object oriented method of structuring a software step program, which creates machine vision programs by composing a set of software objects or steps self-organized into a hierarchical structure which both provides the execution order and the connection of inputs to outputs at each step and between steps.
Steps are also organized into an object-oriented software hierarchy to take advantage of commonality between steps that perform similar operations.
A step program encodes a wealth of information. For example, a step program:
a) contains a list of operations that together make up the machine vision application;
b) for each step (operation), encodes the set of parameters and settings required to execute that step (operation) successfully;
c) for each step (operation), defines the inputs that the step (operation) accepts and the outputs or results that are generated;
d) for outputs that are generated, attaches a system of coordinate information so that results can be expressed in real physical units;
e) contains information that allows for the calibration of a system of coordinates to physical, real-world units like inches or mm and also allows the conversion of results from one system of coordinates to another;
f) defines the physical relationships between a system of coordinates by organizing them into a hierarchical tree structure referred to as a part step tree, which allows, for example the description of a moving camera by inserting a stage part step (i.e. the motion device the camera is mounted on) between the camera system of coordinates and the world system of coordinates (usually the table or fixture the entire apparatus is bolted on);
g) contains information to detect whether a particular operation needs to be setup or trained by the operator of the system before it can run successfully;
h) for each operation, contains information to invoke the required user interface components that assist an operator when setting up and training step programs regardless of the GUI (Graphical User Interface) environment the step program is loaded on;
i) for each operation,

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Object oriented method of structuring a software step program does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Object oriented method of structuring a software step program, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object oriented method of structuring a software step program will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2548060

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.