|
|
|
| United States Patent | 5742504 |
| Link to this page | http://www.wikipatents.com/5742504.html |
| Inventor(s) | Meyer; Frank (Wootton, GB2);
de Magalhaes; Frederico P. (Bedford, GB2);
Chappel; Benjamin J. (Bucks, GB2);
Cooper; Christopher J. (Herts, GB2) |
| Abstract | A method and system are provided for quickly developing application
software for use in a machine vision system using a computer system.
Hardware operating parameters are stored which correspond to possible
hardware for use in the machine vision system. The hardware operating
parameters define a set of custom controls having properties. Commands and
a set of instructions are received from a user of the computer system to
select a first custom control program corresponding to a desired
component, desired hardware operating parameters corresponding to desired
hardware and a second custom control program corresponding to a desired
machine vision algorithm. The first custom control program is linked with
the desired hardware operating parameters to the second custom control
program to form the application software. The step of linking includes the
step of setting the property of one custom control to be equal to one
property of another custom control to form the application software in
response to the commands and a set of user supplied instructions. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5742504 |
|
|
Method and system for quickly developing application software for use in
a machine vision system |
|
|
|
|
|
| Publication Date |
April 21, 1998 |
|
|
|
|
|
| Filing Date |
November 6, 1995 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5603058 Belknap 710/35 Feb,1997 |      Your vote accepted [0 after 0 votes] | | 5594657 Cantone 716/16 Jan,1997 |      Your vote accepted [0 after 0 votes] | | 5581769 Wallace 719/315 Dec,1996 |      Your vote accepted [0 after 0 votes] | | 5574828 Hayward 706/45 Nov,1996 |      Your vote accepted [0 after 0 votes] | | 5555365 Selby 715/765 Sep,1996 |      Your vote accepted [0 after 0 votes] | | 5530643 Hodorowski 700/86 Jun,1996 |      Your vote accepted [0 after 0 votes] | | 5517663 Kahn 345/473 May,1996 |      Your vote accepted [0 after 0 votes] | | 5511147 Abdel-Malek 700/264 Apr,1996 |      Your vote accepted [0 after 0 votes] | | 5500906 Picard 382/220 Mar,1996 |      Your vote accepted [0 after 0 votes] | | 5481712 Silver 717/109 Jan,1996 |      Your vote accepted [0 after 0 votes] | | 5453933 Wright 700/181 Sep,1995 |      Your vote accepted [0 after 0 votes] | | 5434629 Pearson
Jul,1995 |      Your vote accepted [0 after 0 votes] | | 5416392 Lee 318/568.1 May,1995 |      Your vote accepted [0 after 0 votes] | | 5414812 Filip 707/103R May,1995 |      Your vote accepted [0 after 0 votes] | | 5383110 Fujita 700/86 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5327350 Endo 700/179 Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5314055 Gordon 198/395 May,1994 |      Your vote accepted [0 after 0 votes] | | 5170352 McTamaney 701/26 Dec,1992 |      Your vote accepted [0 after 0 votes] | | 5095204 Novini 250/223B Mar,1992 |      Your vote accepted [0 after 0 votes] | | 5005119 Rumbaugh 718/101 Apr,1991 |      Your vote accepted [0 after 0 votes] | | 4928313 Leonard 382/149 May,1990 |      Your vote accepted [0 after 0 votes] | | 4922434 Fule 700/259 May,1990 |      Your vote accepted [0 after 0 votes] | | 4914567 Lipkis 700/83 Apr,1990 |      Your vote accepted [0 after 0 votes] | | 4833624 Kuwahara 700/249 May,1989 |      Your vote accepted [0 after 0 votes] | | 4759074 Iadipaolo 382/152 Jul,1988 |      Your vote accepted [0 after 0 votes] | | 4679137 Lane 700/83 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4462046 Spight 348/94 Jul,1984 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. A method for quickly developing application software for use in a
machine vision system using an open computer system operating in an open
programming environment, the method comprising the steps of:
storing an application development program, including a first set of custom
control programs representing possible components of a user interface for
the machine vision system, the first set of custom control programs
defining a first set of custom controls obeying an open standard which
defines properties for programming the first set of custom controls;
storing a second set of custom control programs representing possible
machine vision algorithms for the machine vision system, the second set of
custom control programs defining a second set of custom controls obeying
the open standard which defines properties for programming the second set
of custom controls;
storing hardware operating parameters corresponding to possible hardware
for use in the machine vision system, the hardware operating parameters
defining a third set of custom controls obeying the open standard which
defines properties for programming the third set of custom controls;
displaying graphical representations of the possible components, the
possible hardware and the possible machine vision algorithms;
receiving commands from a user of the open computer system to select a
first custom control program corresponding to a desired component of the
user interface, desired hardware operating parameters corresponding to
desired hardware and a second custom control program corresponding to a
desired machine vision algorithm; and
linking the first custom control program with the desired hardware
operating parameters to the second custom control program to form the
application software in response to the commands wherein the step of
linking includes the step of setting the properties of the custom controls
of the selected programs and hardware operating parameters.
2. The method as claimed in claim 1 wherein the step of setting includes
the step of setting one property of one custom control to be equal to one
property of another custom control.
3. The method as claimed in claim 1 wherein the step of linking includes
the step of receiving a set of instructions from the user of the open
computer system.
4. The method as claimed in claim 1 further comprising the steps of:
storing a third set of custom control programs representing possible
software products for use in a machine vision system; and
displaying a graphical representation of the possible software products,
wherein the step of linking links a third custom control program
corresponding to a desired software product with the first and second
custom control programs and the desired hardware operating parameters in
response to the commands to form the application software.
5. The method as claimed in claim 1 wherein the desired hardware operating
parameters correspond to a desired image source of the machine vision
system.
6. The method as claimed in claim 5 wherein the desired image source is a
camera.
7. The method as claimed in claim 5 wherein the desired operating
parameters further correspond to a desired vision processor board of the
machine vision system.
8. The method as claimed in claim 5 wherein the desired hardware operating
parameters further correspond to a desired frame grabber board of the
machine vision system.
9. The method as claimed in claim 5 wherein the desired hardware operating
parameters further correspond to a desired motion board of the machine
vision system.
10. The method as claimed in claim 5 wherein the desired hardware operating
parameters further correspond to a desired bus of the machine vision
system.
11. The method as claimed in claim 5 wherein the desired machine vision
algorithm is an image processing algorithm.
12. The method as claimed in claim 5 wherein the desired machine vision
algorithm is an image-analysis algorithm.
13. The method as claimed in claim 5 wherein the desired machine vision
algorithm is a calibration space algorithm.
14. The method as claimed in claim 5 wherein the desired machine vision
algorithm is an interactive CAD/geometry algorithm.
15. The method as claimed in claim 5 wherein the open computer system
includes a personal computer.
16. An open computer system operating in an open programming environment
for quickly developing application software for use in a machine vision
system, the system comprising:
means for storing an application development program, including a first set
of custom control programs representing possible components of a user
interface for the machine vision system, the first set of custom control
programs defining a first set of custom controls obeying an open standard
which defines properties for programming the first set of custom controls;
means for storing a second set of custom control programs representing
possible machine vision algorithms for the machine vision system, the
second set of custom control programs defining a second set of custom
controls obeying the open standard which defines properties for
programming the second set of custom controls;
means for storing hardware operating parameters corresponding to possible
hardware for use in the machine vision system, the hardware operating
parameters defining a third set of custom controls obeying the open
standard which defines properties for programming the third set of custom
controls;
means for displaying graphical representations of the possible components,
the possible hardware and the possible machine vision algorithms;
means for receiving commands from a user of the open computer system to
select a first custom control program corresponding to a desired component
of the user interface, desired hardware operating parameters corresponding
to desired hardware and a second custom control program corresponding to a
desired machine vision algorithm; and
means for linking the first custom control program with the desired
hardware operating parameters to the second custom control program to form
the application software in response to the commands wherein the means for
linking includes means for setting the properties of custom controls of
the selected programs and hardware operating parameters.
17. The computer system as claimed in claim 15 wherein the means for
setting sets one property of one custom control to be equal to one
property of another custom control.
18. The computer system as claimed in claim 16 wherein the means for
linking includes means for receiving a set of instructions from the user
of the computer system.
19. The computer system as claimed in claim 16 further comprising:
means for storing a third set of custom control programs representing
possible software products for use in a machine vision system; and
means for displaying a graphical representation of the possible software
products, wherein the means for linking links a third custom control
program corresponding to a desired software product with the first and
second custom control programs and the desired hardware operating
parameters in response to the commands to form the application software.
20. The computer system as claimed in claim 16 wherein the desired hardware
operating parameters correspond to a desired image source of the machine
vision system.
21. The computer system as claimed in claim 20 wherein the desired image
source is a camera.
22. The computer system as claimed in claim 20 wherein the desired
operating parameters further correspond to a desired vision processor
board of the machine vision system.
23. The computer system as claimed in claim 20 wherein the desired hardware
operating parameters further correspond to a desired frame grabber board
of the machine vision system.
24. The computer system as claimed in claim 20 wherein the desired hardware
operating parameters further correspond to a desired motion board of the
machine vision system.
25. The computer system as claimed in claim 20 wherein the desired hardware
operating parameters further correspond to a desired bus of the machine
vision system.
26. The computer system as claimed in claim 20 wherein the desired machine
vision algorithm is an image processing algorithm.
27. The computer system as claimed in claim 20 wherein the desired machine
vision algorithm is an image-analysis algorithm.
28. The computer system as claimed in claim 20 wherein the desired machine
vision algorithm is a calibration space algorithm.
29. The computer system as claimed in claim 20 wherein the desired machine
vision algorithm is an interactive CAD/geometry algorithm.
30. The computer system as claimed in claim 20 wherein the open computer
system includes a personal computer. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
TECHNICAL FIELD
This invention relates to methods and systems for developing application
software for use in a machine vision system.
BACKGROUND ART
Application software is the cornerstone of every successful vision system
job and normally accounts for the majority of the development effort.
At one extreme there are general purpose vision systems for generic
gauging, verification, or flaw detection applications. These systems come
with a standard interface configurable with a keyboard and mouse.
Successful applications most often require software changes to cope with
individual site requirements. Most general purpose systems are closed, or
difficult to modify. Others can only be reconfigured through various
programming languages.
There is a need to configure and customize the application in the shortest
time, yet provide powerful algorithms. Some systems can be modified using
"C". Some require one to learn the supplier's proprietary language. Hiring
"C" experts, or taking the time to learn yet another language, is
expensive and time consuming.
Many times generic vision systems are not the answer, so one must build a
custom system using a frame grabber or fast vision hardware. Software is
typically the most difficult and time-consuming task of any programmable
vision system. At best, the board comes with a library of "C" calls or
more often a way to program the board at the register level. Not only does
one have to program the application and design a Windows interface, one
must understand the performance characteristics of the board and its
behavior so one can write algorithms that maximize speed. This is a
complicated task for someone trying to solve a problem in the shortest
period of time.
Typically, this process takes man-years--not man-months. The only vision
system developer that can afford this option is one that amortizes
engineering over hundreds of systems. With today's frequency of product
improvements, even OEMs are having a hard time justifying this approach.
The Intelec Corporation of Williston, Vt. sells a Windows-based software
development package that allows users to create machine vision
applications and handle a range of machine vision functions. The software
provides a dynamic link library interface which allows the end user to add
special purpose algorithms for image processing and analysis.
Xiris, Inc. of Burlington, Ontario, Canada makes a software package
including image processing algorithms. The package is configured as a
Visual Basic Extension (VBX) to allow the building of automatic inspection
applications.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a method and system for
quickly developing application software for use in a machine vision
system.
Another object of the present invention is to provide a method and system
for simply and flexibly developing application software for use in a
machine vision system with a graphical user interface such as Windows
interface.
Yet another object of the present invention is to provide a method and
system for developing application software for use in a machine vision
system without the need to develop core vision algorithms and/or complex
calibration techniques.
Still another object of the present invention is to provide a
cost-effective method and system for developing application software for
use in a machine vision system using standard PC hardware and a frame
grabber or vision processor while providing a graphical user interface,
such as a Windows interface.
In carrying out the above objects and other objects of the present
invention, a method is provided for quickly developing application
software for use in a machine vision system using a computer system. The
method includes the step of storing an application development program,
including a first set of custom control programs representing possible
components of a user interface for the machine vision system. The first
set of custom control programs define a first set of custom controls. The
method also includes the step of storing a second set of custom control
programs representing possible machine vision algorithms for the machine
vision system. The second set of custom control programs define a second
set of custom controls. The method further includes the step of storing
hardware operating parameters corresponding to possible hardware for use
in the machine vision system. The hardware operating parameters define a
third set of custom controls. The method further includes the step of
displaying a graphical representation of the possible components, the
possible hardware and the possible machine vision algorithms. Then, the
method includes the step of receiving commands from a user of the computer
system to select a first custom control program corresponding to a desired
component of the user interface, desired hardware operating parameters
corresponding to desired hardware and a second custom control program
corresponding to a desired machine vision algorithm. Finally, the method
includes the step of linking the first custom control program with the
desired hardware operating parameters to the second custom control program
to form the application software in response to the commands.
Further in carrying out the above objects and other objects of the present
invention, a system is provided for carrying out the method steps.
The benefits accruing to the method and system of the present invention are
numerous. For example, the method and system:
Simplify and accelerate the process of developing vision applications by
using a Visual Programming Environment;
Utilize image processing algorithms that are robust, accurate, fast, and
reliable;
Reduce software debugging time;
Develop applications which can easily have a graphical user interface such
as a Windows.TM. user interface;
Support various processors and various frame grabbers such as Cognex
processors;
Interface to various video sources including analog, digital, and the line
scan cameras in addition to other image sources like a scanner;
Provide programmable tools for various application development environments
such as Visual Basic.TM., Visual C++.TM., or Borland.RTM. Delphi.TM.;
Use standard technology such as visual basic extension (VBX) technology;
Include a library of image processing and analysis techniques such as
color, distortion correcting calibration, and template matching;
Provide calibration such as non-linear, 2-D, and 3-D calibration;
Include components or custom controls for multi-axis motion control;
Transparently accelerate speed by using on-board vision processing; and
Operate typically with a single monitor.
The above objects and other objects, features, and advantages of the
present invention are readily apparent from the following detailed
description of the best mode for carrying out the invention when taken in
connection with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram illustrating a preferred hardware
configuration on which the method of the present invention can be
implemented;
FIG. 2 is a schematic diagram illustrating a machine vision system which
can be supported by the method and system of the present invention;
FIG. 3 is a screen display of a Visual Basic programming environment;
FIG. 4 is a portion of the Visual Basic programming environment after
custom controls of the present invention have been added;
FIG. 5 is a screen display associated with a camera custom control;
FIG. 6 is a screen display associated with an SE100 custom control;
FIG. 7 is a screen display associated with a Magic custom control;
FIG. 8 is a screen display associated with a VP50 custom control;
FIGS. 9-11 are screen displays associated with a editable image custom
control;
FIGS. 12-22 are screen displays associated with a search tool custom
control;
FIGS. 23-27 are screen displays associated with a blob tool custom control;
FIGS. 28-29 are screen displays associated with a point custom control;
FIGS. 30-31 are screen displays associated with a editable shape custom
control;
FIG. 32 is a screen display associated with a stage custom control; and
FIG. 33 is a screen display associated with a Type1 stage custom control.
BEST MODES FOR CARRYING OUT THE INVENTION
Referring now to the drawings figures, there is illustrated in FIG. 1 a
workstation on which the method and system of the present invention can be
implemented. The hardware illustrated in FIG. 1 includes a monitor 10 such
as a single SVGA display, a keyboard 12, a pointing device such a mouse
14, a magnetic storage device 16, and a chassis 18 including a CPU and
random access memory. In a preferred embodiment, the chassis 18 is a
Pentium-based IBM compatible PC or other PC having 8 megabytes of RAM and
at least 12 megabytes of hard disk space.
The hardware configuration also includes the development environments of
either Microsoft Visual Basic, Microsoft Visual C++, or Borland Delphi
together with a Microsoft Windows user interface.
Referring now to FIG. 2, there is illustrated schematically a machine
vision system generally indicated at 20 generally of the type which can be
supported by the method and system of the present invention. The machine
vision system 20 typically includes an image digitizer/frame grabber 22.
The image digitizer/frame grabber 22 samples and digitizes the input
images from one or more image sources such as cameras 24 and places each
input image into a frame buffer having picture elements. Each of the
picture elements may consist of an 8-bit number representing the
brightness of that spot in the image.
The system 20 also includes a system bus 38 which receives information from
the image digitizer/frame grabber 22 and passes the information on to the
IBM compatible host computer.
The system 20 also includes input/output circuits 30 to allow the system 20
to communicate with external peripheral devices such as robots,
programmable controllers, etc. having one or more stages.
One or more of the cameras 24 may be an image source such as an analog
digital or line scan camera such as RS-170, CCIR, NTSC and PAL.
The system bus 26 may be either a PCI an EISA, ISA or VL system bus or any
other standard bus.
The I/O circuits 30 may support a three axis stepper board (i.e. supports
multiple axis control) or other motion boards.
The image digitizer/frame grabber 22 may be a conventional frame grabber
board such as that manufactured by Matrox, Cognex, Data Translation or
other frame grabbers. Alternatively, the image digitizer/frame grabber 22
may comprise a vision processor board such as made by Cognex.
The machine vision system 20 may be programmed at a mass storage unit 32 to
include custom controls for image processing, image analysis, third party
machine vision products, calibration, and interactive CAD/geometry as
described in greater detail hereinbelow. Examples of image processing may
include linear and nonlinear enhancement, morphology, color and image
arithmetic. Also, image analysis may include search, edge, caliper, blob,
template, color, 2-D and 3-D measurements.
Third party products may include digital I/O, various camera formats,
motion, databases, SPC and others.
Calibration may include non-linear, 2-D, 3-D and color calibration.
Also, interactive CAD/geometry custom control may be provided for both 2-D
and 3-D space.
Referring now to FIG. 3, there is illustrated therein a Visual Basic
programming environment screen. However, it is to be understood that the
programming environment that can be utilized by the method and system of
the present invention include other programming environments such as
Microsoft Visual C++ or Borland Delphi as well as others.
Referring now to FIG. 4, there are illustrated icons of a Visual Basic
toolbox which appear after various custom controls, which will be
described in greater detail hereinbelow, are added thereto. | | |