CA1193709A - Operator programmable inspection apparatus - Google Patents

Operator programmable inspection apparatus

Info

Publication number
CA1193709A
CA1193709A CA000386515A CA386515A CA1193709A CA 1193709 A CA1193709 A CA 1193709A CA 000386515 A CA000386515 A CA 000386515A CA 386515 A CA386515 A CA 386515A CA 1193709 A CA1193709 A CA 1193709A
Authority
CA
Canada
Prior art keywords
pixels
window
test
operator
monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000386515A
Other languages
French (fr)
Inventor
Gary G. Wagner
Lawrence F. Berridge, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspection Technology Inc
Original Assignee
Inspection Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspection Technology Inc filed Critical Inspection Technology Inc
Application granted granted Critical
Publication of CA1193709A publication Critical patent/CA1193709A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0006Industrial image inspection using a design-rule based approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/987Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns with the intervention of an operator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection

Abstract

ABSTRACT OF THE DISCLOSURE

Programmable video inspection apparatus.
The invention includes a camera for viewing an object of interest, the camera presenting a video signal to both a monitor for operator viewing and a digitizer.
The digitizer generates an array of digitized pixels from the video signal and stores the same in a memory.
A processing unit compares specific groupings of pix-els known as windows against predetermined values to determine the acceptability of the object. The pre-selected values may he generated by the operator by viewing an object of known quality on the monitor and by selecting the windows of interest for such objects by means of a control panel. The operator can define the windows of interest as to position and size, as well as with respect to the test to be conducted upon such window, the threshold levels associated with the window, and the minimum number of pixels within the window which must satisfy the test.

Description

7~g OPERATOR PROGRAMMABLE I~SPECTION APPARATUS

TE~CHNIC:AL FIELD
. _ _ The invention herein resides in the art of non-contacting industrial inspection apparatus. More particularly, the invention relates to video inspec-~ion appara~us in whic~ digitized video images of selected areas of,an object are compared against preselected referenc~ valuesO The system is of the type in which the areas of interest and the reference values are operator programmable~

'BACKGROU~' ART
. ~.... . . .
Heretofore, various types of inspection appar-atus have been known for determining the acceptability of artic.les of manufactureO Since the ad~en~ of ~ass production and the utiliza~ion of standardized parts, it has been known that periodic i~spection of parts is necessary to assure acceptability of the finished productO In the pas-t, inspection of parts for the presence and/or absence of particular elements has often been accomplished by individual inspectors mak-in~ a visual comparison again~t a part of known quali-~5 ty n In the past, the presence or absence of holes in a par~ has often heen tested by the use of pl.atens having ~oles therein corresponding to those in a known good partO The platen is m~ted with the part and then, by the use of a source of air pressure and an alr sensor, the presence or absence of holes in the part being tested was determîned, Similar rudimentary tests were conducted utilizing eLectromagnetic proximlty sensors~ Fur~her, ,~he art has known the use of hard wired logic video sys~ems~
Inherent with all of the ~oregoing prior art ,~

~L937~

structures and techniques, is the fact ~hat each sys-tem is tailored to a particular part or itemO Such systems and Lechniques are inflexible and expPnsive since each part requires its own inspection system.
W~ile some automated video inspection devices have come upon the market, none of them are easily pro~rammable to accommodate t~e large variety of ob-jects available and to be used by workers of marginal skill. Such systems generally do not include storage means for maintaining operator generated programs ~or future use, nor do they include an automatic threshold genera~or to automatically establish a contrast com~
parison test on the area selected by the operator~
Yet further, ~nown systems are incapable of instanta-neously creatin~ a contras~ for the item of interest agains~ the piece itself where such a contrast would otherwise not exist. Yet further, known systems have but a li~ited number of inspection windows available for selection by the operator and do not afford the operator control over the siæ~, position, and contras-t or gray level to be sensed in the windowO
Indeed, known systems are still rudimentary in concept, design, and LmplementationO None of them are readily adapted for implementation in modern industry wherein a large variety of parts need to be inspected, with each such part requiring its own peculiar inspec-tion techniques and criteria~

DISCLOSURE OF I~ENTION
In light of the fore~oing, it is an object of : a first aspect of -the invention to provide an operator pro~rammable inspection apparatus which is easily programmable by those ~f moderate skill to accommodate the inspectio~ of virtually any object.
It is an object of yet another aspert of the .. , .. ,. . .. ~ .. . .

. ~ ~ 93 7~ ~

invention to provide an operator program~lable inspec-tion apparatus which includes ~torage means for main-~aining operator genera~ed programs, for future use~
It is yet ~nother object of an aspect of the invention to provide an operator programmable inspec-tlon apparatus which includes au~omatic threshold generation teclmiques allowing the operator to merely program the areas of in~.erest, wqthout regard to speci~ic te~t ~hreshold levels~
An,a~ditional object o an aspect o~ the inven-tion is to provide an operator programmable inspection apparatus which includes means for instan~aneously creating a contras~ between an item of interest and the part itself where no such contrast would typically existO
Still another object of an aspect of the inven~
tion is to provi~de an operator programmable inspection apparatus which aceommodates a large number of inspec-tion windo~s with operator controlled size, position, and gray,level criteria associated therewithO
A further object of an aspect of the invention is to provide an operator programmable inspection apparatus which includes computation means for auto-matically calculating test threshold levelsO
Yet an additional object of an aspect of the invention is to provide an operator programmable inspec-tion apparatus which is reliable, while being rela~
tively simplistic to program and operate and which is further relatively inexpensive to construct. from s~ate~o-the-art components~ .
~ The~ foregoing and othex objects of the inven -tion which will~become.apparent as the detailed descrip-tion pro~eeds are achieved by operator programmable inspection apparatus for.d,eterminin~ the accep~ability 3S of an object~.comprising: a camera having a~field of view including said object and producing an output - ~93'7U~

signal corresponding to said field of view; digitiz-ing means connected to sai.d canera, receiving said video outpu~ signal, and ~enerating a plurality of discrete digitized pixels corresponding to s~id video output signal; a memory connected to said digitizing means and receiving and storing said digitized pixels in an array corresponding to said field of view; and computation means conne.cted to said memory and compar-ing selecLed groups of pixels stored in said memory against preselected values and determining the accepta-bility of the object as a basis of such comparison~

BRIEF DESCRIPTIO~ OF D_ WINGS
For a complete understanding of the objects, techniques, and structure of the invention, refexence should be had ~o the follo~ing detailed description and accompanying drawings wherein:
Figo 1 is a hi~hly illustrative functional block diagram illustrating certain features of the invention;
Figo 2 is a detailed block diagram showing the elements and interconnection thereof of the preferred embodiment of the invention;
Figs. 3 and 4 are detailed circuit schematics of the interface circuitry interconnecting the control panel with the processing unit of the inven~ion;
Figo 5 is a front elevational view of the sys-tem of the invention, particularly illustra~ing the control panel thereof; and Figso 6-15 comprise flow chart diagrams of the programming control of the inventionO

BEST ~!DE FOR CARRYIN& W'~ THE IN~ENTION
Refèrring now to the drawings and more particu-larly Figo lj it can be seen that an opera:tor pro~ram-~ 7U'~

rnaDle inspection apparatus according to the invention is illustratively shown a~ designated by the numeral lOo Included in ~he apparatus is a camera 12 which may be any closed circuit black and white lndustrial grade camera, typically having high resolution associated therewith and providing a composite outp~t signal of the RS-170 typeO The camera 12 is maintained in juxta-position with an object 14 of interest such as a plate, casting, or the likeO The camera 12 receives an -image of the object 14 and passes a corresponding video signal to a digitizer 16 which, in standard fashion, digiti~es the video signal on a pixel-by-pixel basis and transfers the same for storage in an image memory 18~ The memory 18 thus maintains digital data corres~
ponding to th~ object 14 with .the resolution o~ the image so ~tored dependent u~on the characteristic resolu~ion of the camera 12, the digi~izing capability of ~he digitizer 16, and the storage capacity of the memory 18.
2~ A digital to analog converter 20 is intercon-nected with the image memory 18 and, of course, can be part and parcel thereof for converting the digital data back to a video signal for transfer to a CRT monitor or standard TV screen 220 As will become apparent with respect to Figo 2, the camera 12 may be directly inter-connected to the monitor 22 for presenting a live image of the object 14D More particularly, the elements 20,22 provide means for communication with a central processing unit or microprocessor 24 which,.in standard fashion~ has associated therewith a memory 260 The memory 26 may maintain therein data corresp.onding to the digital image o an object simi.lar to the object 14 which is known to be. of accept.a~le qualityD The processor 24 operates to. comp~re the image of the memory 18 with the reference data maintained in th~
memory 26 to determine the accepta~ility of the object -.
:

~37~

14 as satisfyin~ preprogrammed criteria~
An input/output (I/O) ~odule 28 is provided in interconnection between the processor 24 and operator controls 30 w~ich may be used for controlling the processor 24 in either a ~est modP or for generating a program for storage in the memory 26, again to be discussed hereinafterO The I~O module 28 also is provided to communica-te between the processor 24 and a strobe light 32. This light 32 is not only used in standard fashion for l'freezingl' action, but is also used ~o generate a contrast between an item of interest on the object 14 and the object itself. For example, under typical lighting conditions, if one is looking for the presence of a partial depth bore in the object 14, or an element welded to that obj~ct, neither the bore nor the element may be apparent to the camera 12 since the bot~om of the bore and the element may be of the same material as the surrounding material of the objPct 14O Accordingly, when the object 14 is to be tested, the processor 24 causes the strobe light 32 to flash or illumina~e for a short fixed period of time, typically casting a shadow as for example at the bottom of the bore or of the element itself on the surface of the object 14. To e~fect the desired shadow, the strobe light 32 is preferably a high inten-sity point source of illumination, and is positioned to cast the shadow at the most advantageous arean With the test program designed to look for the presence of the shadow, one may quickly determine that the bore is present or that the ~lement is welded to ~le object l~ith final reference to the illustration of Fig 1~ it will be noted that a switch 34 is provided in interconnection with t~e I/O module 28 to advise the processor 24 that the object 14 is in a test posi-tion. Such switch is most beneficial in an ass~mbly 7~

or conveyor line environment~ The switch 34 may comprise a limit switch or, as shown, may include a photocell and photodetector with the object 14 break-ing a light path to tri~ger the s~itch~ In any event, when the switch 34 senses the object 14, the light 32 is briefly illuminated, the video image of the camera 12 is digitized at 16 and stored in memory 18, and then compared against the reference values~
Wi~h reference now to Fig, 2, a detailed block diagram schematic of the apparatus 10 may be seen as designated generally by the numeral 36~ Here again, a camera> shown only as the "video in" signal, is pro-vided for receiving a live image of the object in interestO As mentioned above, the camera 12 may be of any suitable nature with a resolution dependent upon the types of objects to be viewed? A type of camera suitable for this purpose provides a composi.te video output signal of the RS-170 typeO A monitor 38, again of standard type, m~y be provided for viewing either the live image from the camera, or the digi-tized image as selected by the switch 400 The switch 40 is under operator control as through a control panel 420 A video digitizer 44 is adapted for receiving the composite video signal from the camera and digi-tizes the same on a pixel-by-pixel basis. As is well kno~l to those s`killed in the art, a pixel is a pic-ture element, comprising bits of digital data corres-ponding to the gray level of a discrete portion of the video signal or rasterO A suitable digitizer is the model FG01 Frame Grabber, manufactured by Matrox E~ectronic Systems Ltdo o Que~ec, Canada, and as describ.ed in Matrox puhlication 140M0 1, dated March 1980, This digitizer forms a 256 x 256 pixel array of the view seen by the camera 12, with each pixel com prising four binary bitso Accordingly, each pixel ~ '7~ ~

will have ~ value of O - 15, or one of sixteen gray levei. valuesO
The 256 x 256 pixel array is trans.ferred from the vldeo digitizer 44 directly to the image st~rage uni~ 46 via ~ high speed linlc~ The image storage unit 46 receives the data in real time and includes as part and parcel thereof a D/A converter for transferring the digitized stored image to -the monitor 38 or to an auxiliary m~nitor~ A suit~ble image storage is -the model RGB-256; also manufactured by Matrox Electronic Systems Ltd~, and described in Matrox Publication 134MO-l, dated January 19800 Suffice it to say ~hat the image storage 46 maintains therein a 256 x 256 array of digitized pixels corresponding to the actual video image of the object 14.
The "brains" of the circuitry 36 is a central processing unit or microprocessor 480 At present, microprocessors are well known and understood by those skilled in the art ~nd typically include a plurality of input and output ports, shift registers and arith-metic means to perform all operations commonly per-ormed between bi~s of binary dataO As with the ele-ments 44 3 46, any of numerous microprocessors might be selected to fulfill the requirements of the instant invention, but a particularly desirable unit is the Tntel SBC80/05 as described in the Intel Component Data Catalogue~ copyrighted in 1~77 by Intel Corpora-tion of Santa Clara9 California~
Proper con~truction and operation of the inven-tion is dependent upon the utîlization of several memory types. The memory unit is designated by ~he numeral 50 and includes EPROM which, in standard fashion, has burned thereinto th.e basic program of the system to be discussed laterO Along with thls read only memory, there is provided a random acces 5 memory (RAM) which functions in typical fashion as a scratch ~93'7~1~

pad memor~ for temporary storage of data, computa-tional results, and the like~ Finally, there is provided a standard core ~.emory, operated upon the well known electromagnetic storage principles for receiving the programs or subroutines created by the operator for testing the authenticity or acceptability of the various types of objects 14~ It will be noted ~hat both the main program and the operator-generated programs are stored in nonvolatile memory such that a loss of power will not destroy the stored programsO
Intercommunication be~een the elements 44-50 is achieved by means of the computer bus 52~ Suitable buses for achieving the desired intercommunication are readily available in the art with the preferred embod-iment contemplating the bu~ described Ln the Intel Multibus Specification Manual 9800683, copyrighted 1978, by Intel Corporation. Such a computer bus is bidirectional and allows for communication between the processor 48 and the elements 44,46,50 in both a read or write modeO
Before departing from the basic elements 44-50, it should be noted that the core memory element of the memory 50 may be of the type described ln the ~-8080/B Technical Manual dated January 1979, by Micromemory, Inc~, of Chatsworth, CaliforniaO
An interface circuit 54 is provided in inter-comIection between the control panel 42 and the micro-processor 480 The operational relationship between.
these elements will be discussed in detail hereinaf-~er, but it should be noted at this time that it is the interface 54 which provides the strobe out signal to illuminate ~he lamp 32 and which receiYes the test in signal as from the switc'n 34 to indicate the pres-ence of the objec~ 14 and that the test program may beginO The interface 54 also presents a pass/fail output si~nal which may be u~ed to energize external signal means to indicate that the object 14 is not ~3~J ~

1~) 7 acceptable~ In a fully automated system, this signal may actuate rejection means to automatically remove Ihe object 14 from the assembly line7 Finally, the interface 54 actuates a solid state switch 64 when operatlon of the m~nitor 38 is selected via the con-~rol panel 42.
The circuit 36 also includes a main power switch~56 under operator control to apply available AC
voltage to the system This AC voltage drives the power supply 58, lamp supply transformers 60, and cooling fans 6?, in somewhat standard fashionO
Reference is now made to Figso 3-5 ~or an unders~anding of the control panel 42 and interface 54. With particular reference to Figo 5~ it can be seen that the system 36 is maintained in a casing 66 'naving therein the monitor 38~ The front of the con-trol panel 42 i~ shown to include ~he main power switch 5~, the monitor actuation switch 64, and the switch 40 to selec~ either the live or stored digi-tized Lmage for viewing on the monitor 38~ Also included on the front panel is a test switch 68 which, when actuated, causes the system 36 to exercîse lts selected programmed test. As discussed above, the test switch 68 could actually be substituted for the external switch 34~
Also lncluded on the control panel 42 is an area designate~ PROGRAM which includes a program/run switch 70, enabling the operator to select one of two modes ~f operationO In the program mode, the opera~or may addJ delete, or modify a program or subroutine in core memory, while in the run mode, -the system utili-zes such stored programs to determine the acceptabili-ty of the o~ject 14 n In a preferred embodiment of the invention, the program/run switch 70 is key operated to prevent unauthorized personnel :Erom m~kin~
access to the system 360 ~ 7~ ~

A reset switch 72 is provided for resetting the syst~m at any time in the operation thereof, returning the system to the beginning of the program~ Also pro-vided is a ten numeral key pad 74 for entering data such as threshol.d levels, program numbers~ and the like in th~ program mode~ Also included are switches 76 designated yes, no, and enter, to assist the operator in programming mode in responding to inqulries pre-sented on the monitor 38 by the main program or for authori~in~ the entry of data to the program being generatedA It will be understood that the instant invention contemplates that the control program of the system 35 presents instructions in English or other suitable language on the monitor 38, directing the user in a step-by-step fashion during the creation of his programO Such directions requir~ such responses as yes, no, or the entry of data via the switches 76~
Indeed, it is the presentation of directives from the main program to the monitor 38 which simplifies the operation oE the instant system over all those pre-viously known in the art and which allows such system to have the flexibility to receive operator-generated test programs for any of numerous articles of manu~
f2ctureO
Also provided on the control panel 42 is an area designated by the legend '~INDOW," which is used by the operator in creating an inspection programO It will be a.ppreciated that the concept of ~he invention is not a comparison of the entire object of interest 14 against a known standard, but only a comparison of preselected portions of the video image of the object 14 against such predetermined standardsO In other ~rds, the tes~
is designed about windows of interest on the object 14O For example, should the object necessarily have a plurality of holes thereon, windows may be defined to be substantlally congruent with sueh holes, the ~ ~ ~3~7~ ~

holes having a particular gray level associated there-wi~h either inherently or by means of the strobe light 32~ Accordingly, only the pi~els within the defined windows are considered for the acceptability test.
The characteristics of these windows, as to position and si.ze, is controlled by this section of the control panel 42~ The positioning of any particular window is achieved by control of ~he four position switches 78, the vertically aligned switches n~ving the window either up or down on th~ monitor 38 and the horizon-tally aligned switches movin~ the window to the left or rightO Similarly, ~he size of the windows is controlled by the four switches 80. Here, the ve~ti-cally aligned switches make the window eith~r taller or shorter, while the horlzontally aLigned switches make the wqndow either narrower or wider. In combin-ation, the switches 78,80 comprise the cursor or window control m~ans, allowing the operator to define windows upon the nitor 38 as to both size and posi-tionO Again, it will be understood that the opera~or will typically define a window to be substantially congruent with the ite~ of interest on the object 140 The windows may typically be defined ~th a known acceptable objPct in view on the monitor 38 with all subsequent objects 14 being maintained in such view in proper registration.
Also included in the window section of -the panel 42 are the control switches 82, allowin~ the operator to add, dify, or delete a window, or to obtain information respecting the parameters asso-ciated with a particular window such as size, posi-tion, and average gray levPl for an acceptable thresh-old~
The interconnection of the swi~ches of the control panel 42 of Figo 5 with the microprocessor is achieved by the interface circuitry of FigsO 3 and 40 ~193 7¢J!~

As shown, ~he cursor switches 80 are connected direc~
ly to the input ports 2-8 of the microprocessor 48, while the cursor switcnes 78 are connected to the input ports 10-16 thereofO The key pad ~itches 74, the add, mL~dify, and delete swltches 82, and the yes and no switches 76, are passed through the sixteen to four encoder 84,8~, and gates 88, to the input ports 10-16 of the microprocessor 48. While these are the same ports used by the cursor switches 78, it will be appreciated that the control progra~ of the nLicropro-cessor never calls for a function of the cursor switch-es 78 at the same time it calls for a function from the switches 74,76,82, and accordingly the ports 10-16 may serve thP dual unction sho~nO
As a ~ovel ~eature of the instan~ invention, the control program of the microprocessor is such that at each step in the generation of a program by -the operator, those switches on the control panel 42 which may make a proper response to a directive printed on the monitor 38 wi'l be enabled and illumina~ed~ This greatly simplifies ~he programming feature of the invention since it limits ~he possible number of choices available to the operator~ With many people becoming frustrated with a large number of choices, the illumination of the appropriate response swi~ches gives both an aid and a degree of confidence to the operatorO
With final reference to Fig7 3, it will be noted that the test/info, run/program, and enter switches are respectively connected to the input ports 34-38 as shown~ Also connected to the input port 34 is the external test input which, again, could be pro~-ided by the external switch 34 of Fig7 1, indicat-ing that an acceptability test is to be conducted~
With reference now to Fig~ 4, an apprecia~ion of the remainder of the interface circuitry can be obtained~ As shown, a plurality of solid state switch-es 90 are connected to the microprocessor output ports such that, upon actuation under program control, the illustrated lamps associated with particular switches on the keyboard 42 are illuminated~ A three to seven decodex 92 is connected to output ports 20-24 for con-trolling the iilustrated lampsO Additionally, the decoder 92, under control of the microprocessor via the ports 20-24, creates the strobe pulse for illuminating the lamp 32 and a reject pulse for produclng an alarm or other indicia that the object 14 is not acceptableO
As mentioned above, the reject pulse can be used to control means for automatically removing the object 14 from the assembly line. Finally, as shown, the output port 18 is directly connected to the solid state switch 90 for control of the lamp for the enter switch With continued reference to Fig. 4, it can be seen that a flip flop 94 is provided to operate in a toggle mode with the complementary output thereof being connected to a transistor 96 to control energization of the relay coil 980 The output port 26 of the micro-processor is operative for clearing the flip-flop 94 to a predetermined state when the system is originally turned onO The image swltch 40 is applied to the flip-flop 94 to provide a clock to the same such that each actuation of the ~itch 40 toggles the flip~flop 94 and alternately turns the transistor 96 on or off.
Accordingly, the two pairs of contacts associated with the relay 98 tog~,le back and forth wi~h the state of actuation of the switch 40. As shown, one of the pairs of contacts illuminates the lamp indicating that the image on ~he monitor 38 is live, while the other con-tact indicates that it is the stored digitized image.
Similarly, the second pair of contacts is operati-ve to connect the monitor 38 either directly to the camera 12 or to the imiage storage 46. As illustrated, the
3~g37~1 15 .

camera 12 is a.lways directly connected to the video digitizer ~4O
With final reference to Fig. 4, :it can be seen ~hat the reset switch 72 is connected to the clear input of the flip-flop 100 and to the card frame reset line~ It will be appreciated that the various elements 44-50 are all received in a card frame such that the components thereof are all commonly resetO
Such a card frame is discussed in ~m95t6440 "Standard ~o Card Cage User's Manual," copyrlghted in 1979 by Ad-vanced Microcomputers of Santa Clara, California.
While resetting the components just described, -the reset button 72 also clears the flip-flop 100 to t-urn the monitor 38 on~ The monitor may be turned off by means of the monitor power s~itch 64 which serves as a clock to tha to~gle flip-flop lO0, the true and com-plementary outputs thereof respectively passing through the appropriate solid state switch lO~ to mutually exclusively illumlnate the monitor on and monitor off lampsO The true output of the flip-flop 100 also serves to actuate the power relay or solid state swi~ch 64 to apply power to the monitor 38~
With an appreciation of the structure of the invention, attention is now directed to Figs~ 6-15 wherein the programming flow charts of the invention are presented in detailO With initial reference to Figo 6, i~ can be seen that when the system 36 is actuated, it is first initialized by the technique of Figo 7O Nex~, the user or operator is welcomed by a video print-out on the m~nitor 38, such print-out affordin~ the user both a general and detalled discus-sion of the system's function and capability, as shown in Figo 80 At this point, a determination is made as to whether the system has been selected for 'he run or program de via the switch 70O If in the run mode, the appropriate test program is selected 3'~

by the operator vla the kev pad 74 and the flow chart of Fig ]2~ Next~ ~he selected program is executed as by the flow chart of Fig~ 15, If the program mode was selected, the desired program is selected as by the technique of Fig~ 9, and the desired window is selected as by the program of ~igo lOo The ~indow is then defined as to posi-tion and size, the test parameters associated there-wi~h are defi.ned~ and the wqndow is checked for appro-priate information as by respective flow diagrams of r igs~ 11-13~ When all windows of intere.st have been so defined and checked, the program loops into the run ~.ode ~Jhere the generated program or any other selected program may be run~ As shown in Figo 7, the initialization of the system includes ~he steps of initializing the computer or microprocessor 48~ ini-tializing the graphics of the monitor 38, and turning off all of the lights of the control panel 42~ Re-turn is then made to the program of Fig~ 6~
After the system has been initialized, ~he flow chart of Figo 8 is followed to welcome the user to the system~ ~lere, a cover page carrying pertinent information regarding the origin and propriety of the system is printedO Next, a brief one page descrip-tion of the system is printed on th~ monitor 38n A
question is then asked on the monitor 38, whether a detailed description is desiredO If the no switch of the switches 76 is actuated by the user, a descrip-tion of the run and program modes is printed and the system returns to the flow chart of Fig 6. If a detailed description is desired as indicated by the yes switch, a detailed explanation is printed on the monitor 38 providing definitions of the system as a whole, digitization, pixels, windows, window para-meters, test options~ thresholds, computer-defined thresholds, minimum Eeature size, programming order, ~3~

;~nd ins~rucr:ions relatin~ to general operation~
AEter this detailed explanation, the pro~ram branches back to the descripti.on of the run and program modes~
~en the program mode is selected as by the s~itch 70, the m~nitor 38 directs the operator to make an appropriate selection by means of the switch-es 82 to ei~er add, modify, or delete the program~
As illustrated in the flow chart of Fig~ 95 the pro-gram then branches on the selected input and, iE a program is to be added, the system determines if there is room in the core memory for an additional program~ If not, an error signal or legend is print-ed on the monitor 38 and the program returns to the beginning of the subroutine~ If there is area avail-able in the core m~mory, the monitor 38 directs ~he user to select a program number via the key pad by which that program will be known in the future~
If the delete button has been selected, the operator is directed to select the number of the program to be deleted If the number is invalid, an error signal ls printed and the subroutine returns to the beginning of the subroutine of Figo 9~ If the number is valid J an inquiry is again made as to whe~her or not it is desired to delete the programO
If the operator has made an error and now determines that it is not desired to delete the program, and 50 indicates by the appropriate switch 76, the subrou-tine again returns to the beginning thereof~ If the operator Lndicates by the appropriate switch 76 that a deletion is desired, the program is erased from core and the program returns.
Finally, i~ it desired to modify a program, the program number is entered ~nder instructions of the monitor 38 and, if valid, the subroutine ~hen returns to the program of Figo 60 If t~e number is invalid, of course, an error message is printed and ~ ~ ~? 3 ~

18~

~he suhroutine returns to the start of -the subroutine of FiV~ 9~
IE the operator has selected to either modlfy or add a program, the main program then enters into tne subroutine of Figo 10 by which a window is to be selected~ Again, under direction of the monitor 38, the operator is directed to either add, ~odify, or dele~e a wqndow and, upon actuation of the appro-priate switch 82, the subroutine branches on the input~ If a window is to be added and if there is an unused window in the selected program, the operator is directed to assign a window number as by the key pad 74, the window is initialized, and the sub-routine returnsO Of cou~se, if there is no unused window, an error signal is printed and return is made to the beginning of ~he subroutineO
If the operator selects to delete a window according to the routine of Fig, lO, he again enter~
the wqndow number, a determination is made if the window number is valid, and a second inquiry is made as to whether or not it is desired to delete that window~ Then, in response to actuation of the yes swi~ch 76, the information relating to such window is deleted from the programO If either the window num-ber is mvalid or if the operator determines that he does not desire to delete the window, the subroutine returns to the start thereofO
Finally, if the operator has de~ermined to modify a window, he is directed by the monitor 38 to enter the window n~mber via the key pad 74O If the number is valicl, the subroutine returns to the main program and if not, an error message is printed and the opera~ion returns to the start of ~he subrou-tine~
The window selected for addition or modifica-tion is defined by the subroutine of Figo 11~ Here, 19~

directions are first printed on the screen 38 direct-ing the user as to how a ~indow is to be defined~
~he existing windows for the program are then dis-played on ~he monitor 38. A new window of predeter-mi-ned ~it size is then presented by lllumina~ion on the screen~ The position of the window may then be controlled by means of the cursor switch 78 ~s shown.
Tl~e microprocessor continually scans the cursor switches 78,80 and correspondingly modifies the new window by moving it left, right, up, or down, and by making it narrower, wider, shorter, or taller~ In response to the actuation of any of the switches 78,80, the x9y components of the window positions are modified and the height and width dimensions are modifiedO The operator may view the position and dimensional parameters of the window by depressing the info switch 820 This information will also con-tain data respecting the average gray level within the window at that positionO If there is any change in the window as to either location or SiZ2, the new window is drawn and the corresponding data is entered into the core memoryO As shown, the loop continues to cycle until the window of interest is completed, at which time the subroutine returns to the main program of Figo 6 and the test parameters are then defined via the subroutine of Fig~ 12~
In Figo 12, the subroutine for establishing the test parameters is set forthO First, while only one subroutine is shown, it will be understood that three ident~cal subroutines are incorporated in the main pro~ram, one subroutine to establish the test to be conducted, a second subroutine to establish the threshold for that window, and a third to es~ablish the minimum size or criteria for passing ~he test~
When the subroutine of Figo 12 is actuatecl, a descrip-tion is first printeclO This descrip~ion clefines two ~37~J~

20~

tests ~hich can be performed on the window~ In test number one/ a search is made for the presence of dark pixel~s as compared to a light background, whlle in test number two, a search is made for llght pixels as compared to a dark background Test number one con-templates determinin~ that the number of dark pi~els, as compared to a threshold to be discussed, exceeds a particular number or minimum size, also to be dis-cussed~ Test number two contemplates determining whether the number of light pixels as compared to a threshold exceeds a minimum number or sizeO Accord-ingly, if the dark feature is to be tested, test n~ber one would typically be selected, while if a light feature were ~o be sensed, test number two would be selected~
In the deseription provided on the nitor 38 via the subroutine of Fig~ 12, a threshold is defined as that value between zero and fifteen which deter-mines whether a pixel is light or dark? It will be appreciated as discussed above that each pixel is a four-bi~ binary value relating to a gray level of between zero and fifteen, zero being the d~rkes~ and fifteen being the lightest, with a linear gradient therebetweenO By way of example, if the threshold is set at five, any pixel having a value of zero through five inclusive, would be considered dark, while pixels having a value greater than five would be considered lighto Finally, the flow chart of Figo 12 also de-fines the minimum size of a feature before it can be considered to pass the testO In other words, the operator may determine that if the window has a ~otaL
area of twenty-four pixels, and if fourteen or more of those pixels are either less than or equal to the threshold for test one, or greater than the threshold for test two, the feature within the window passes~

~ ~ ~ 3 ~ ~

rrne minimu~ si~e t'nus defines the number of pi~els witnin ~he window which must satisfy the threshold criteria before that window is deemed to pass the test~
With specific reference now to Figo 1~ ~ the flow charts for establishing the test, threshold~ and mini~um size are shown, it again being recalled that the program contemplates a separate subrou~in.e for each of these three parametersO After the descrip~
tion, the microprocessor determines if this is a new window~ If it is not, the present value for either the test, threshold, or minimum size is displayfd on the monitor 38O The user is then asked via ~he moni-tor 38 whether such value is satisfactory. If it is, the subroutine returns t~ the main program If not, or if the window in consideration is a new window, ~he subroutine branches to a step directing the user to input the proper parameters, either the test, threshold, or minimum size, via ~he key pad 74 7 It will be apprecia~ed that ~he test will either be a one or two, the threshold will be a numeral between zero and fif~een, and the minimum size will be a n~neral greater than oneO The determination is then made as to ~he~her the input is validO If it is not, as for example by selecting test number three 9 t~e instruction is again given to the operator to input the parameterO If the input is valid, -the subrouti.ne branches or returns to the main program~
A feature of the invention is that the operator may choose to allow the microprocessor to define the thrçshold level for the windows in a manner ~o be presentfd hereinaf~erO Accordingly, in the threshold subroutine, the operator is asked via the monitor 38 if the system is to set the thrPsholdD If the respon~e is affirmative, the threshold is automatically calcu-lated and setO If the response is negative, the operator may then enter the desired threshold~
With the test parameters o~ the window de-fined, the subroutine of Fig~ 13 is entered~ Co~nt-ers in ~he microprocessor are initialized by setting the same to zero, these counters to be used for chechin~ window parameters~ Inquiry is then mclde as to whether a check is desired~ If the operator re-sponds with the no switch 76, the program returnsA
If the operator responds in the affi~native, an explanation of the check is printed on the monitor 38~ This advises the user that window features are to be tested to be sure that the selected window passes the defined test, threshold, and minirnum size~
In this manner, ~e operator knows whethex the select-ed test parameters are proper~
After the explanation, the program deter~ines whether the threshold for the ~ndow has been entered by the operator into the program or if it is to be computed by the microprocessor. If it is ~o be com-puted, ~he microprocessor automatically sets a thresh~
old for dark features equivalent to the average gray l.evel of ~he window minus two, with the threshold for light features (test two) equivalent to ~he average gray level plus two, In any event, with the thresh~
old present, the number of dark and light pixels are counted in the previously defined fashlon, and a determination is n~de as to whether or not ~he test has passedO If the test failed, an x or other appro-priate indicia is drawn across the monitor 38 and the window which failed the test is outlined~ Of course, failing of the test would indicate tha~ the recognized feature contained fewer pixels ~either dark or light) than those specified by the minimu;n size and selected ~es~O In any Pvent, whether the test has passed or failed, all window parameters are printed on the moni~or 38, these being the x and y positions of the ~937~J~

window, ~he width and height of the window, the test associated with the window, the ~`hresllold and minimum size associated with the test~ and the total number o pixels within the window, including a subtotal of those which are dar~ and those which are light as compared to the threshold. At ~his time, the user can again monitor the test parameters to determine that the window is as desired~
As shown in Fig~ 6, the program mode continues for a number of windows determined by the operator and, when the last such window nas been selected, defined as to position, size~ test, threshold, and minimum size, and after such parame~ers have been checked, the main program of Fig~ 6 branches to the run mode of operationO Of course, the run mode col11d have originally been selected by means of the key swi~ch 700 In either event, the subroutine of Fig~
i4 is entered~ First, a d~scription of the ~un mode of operation is presented ~n ~he monitor 380 Here, the operator is advised that the test mode is con-ducted on a window by-window basis until all windows have been tested, with those windows failing the test being identified~
After the run mode has been described, the operator places the desired program number into the microprocessor via the key pad 74~ If the number is not a valid progra~ number, an error message is printed on the monitor 38 an~ the program returns to the beginning of this subroutine~ If the number is valid, the monitor 38 displays a descrip~ion of passlfailO Here, the operator is advlsed that if the object 14 fails the test, the failing window or windows will be outlined and an x or other appro-priate designation will appear across the obJect on the monitor 380 Of course, if the external fail signal i~ used, an alarm or other fail indicia may be 24 ~

energized, or ~he signal may be utilized to auto-matically remove the object 14 from the assembly line~ A description is then presented on the monitor 38 as to the function of the test key 68n Here, the opera-~or is advised that each time the test key 68 is depressed, a test will be performed, or if the e~ter-nal test jack i.s used, a test ~ill be performed each time a signal is received as from the switch 34O
Fi.nally, the program pointer is calculated i.n standard fashion ~o define where the program is ;n r.lemoryn The subroutine then returns to the main program of Figo 6 which then enters into the subrou-tine of Figo 150 The actual test loop subroutlne is presented in Figo 150 When the test key 68 or external test ~witch 34 is actuated, an Lma~e of the obj ect 14 is displayed on the monitor 38O The sub-routine then loops through the subrou~ine for each of the I windows. First the window pointer is calcu-lated and, if the program calls for the microproces-sor to calculate the threshold, such calculation is made in the manner presented hereinaboven ~hether the threshold is calculated by the microprocessor or preprogrammed by the operator, the number of dark and light pixels ~re counted based upon such threshold~
Then, dependent upon the test ~alled for by the program, a comparison is made to the programmed mini-mum size of either the total number of dark or light pixels~ On this basis, it is determined whe~her or not the window has failed~ If it has failed, an x is placed on the screen and the failing window is framedO
This loop contînues until all such windows have been tested, at which time the subroutine returns to await the next test operation~
It can thus be seen that in operation of the instant invention, a known object may be plac~d with-in the field of vicw of the camera 12 with the image 3~

I-nereof being made apparent on the monitor 38.
Vtilizing the program mode of operation, the operator ~ay ~hen create a numbered program by definin~ a plurality of windows encompassing items of interest .~ on the object 14r The operator may define the win-dows as to size, location, the type of test asso-ciated therewith, and the threshold and l~nimum si~e associated with the test~ The operator may also check his program as to such criteria as well as the total number of pixels, the total number of dark pixels, and the total number of light pixels for each window, The operator also has available the option of allowing the microprocessor to define the thresh-old as a predetermined number over the average shade for light features and a predetermined number under the average shade of the window for dark featuresO
Also included is the capability of allowing the operator to modify or delete such programsO
With the operator-genera~ed programs stored in core memory, the opera~or may cause the system ~o function in the run or ~est mode, whereby each object 14 of interest is placed in registration in the field of view of the camera 12, and the preprogrammed selected test is then conducted upon each of the windows defined by the program parameters. If any winàow fails ~he test, the entire test fails, and the failing window is identifiedO Provisions are rnade for automatically actuating the test by an external switch 34 w~en the object 14 comes into proper reg-istration within the field of view of the camera 12 There is also provided a flash lamp or other illum-ination source 32 to provide the desired contrast between an it~m of interest and the object i~sel or, more particularly, to create a shadow by the ltem of interestO The test is then conducted to sense the presence or absence of the shadow which, accordingly, 7~J~

determines the pre~ence or absence of the item~
The fle~ibility of the syste~ just presented is extensive and, with the benefit of the teachings herein, those skilled in the art could readily expand upon the preferred embodiment~ Accordingly, while only the best mode and preferred embodiment of the invention has been presented and described in detail, it is to be understood that the invention is not limited thereto or thereby~ For an appreciation of the true scope and breadth of the invention, refer-ence should be had to the accompanying clalmsO

~5

Claims (21)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. Operator programmable inspection apparatus for determining the acceptability of an object, comprising:
a camera having a field of view including said object and producing an output signal corresponding to said field of view;
digitizing means connected to said camera, receiving said video output signal, and generating a plurality of discrete digitized pixels corresponding to said video output signal;
a memory connected to said digitizing means and receiving and storing said digitized pixels in an array corresponding to said field of view;
computation means connected to said memory for comparing selected groups of pixels stored in said memory against preselected values and determining the acceptability of the object on the basis of such comparison; and programming means operatively connected to said computation means for allowing an operator to establish test windows and test data criteria associated therewith, each test window corresponding to one of said selected groups of pixels.
2. The apparatus according to claim 1 which further includes illumination means operatively connected to said computation means for momentarily casting light upon the object and thereby creating a shadow of particular elements of interest characterizing the object, and wherein certain of said selected groups of pixels include said shadow.
3. The apparatus according to claim 2 wherein said illumination means comprises a flash lamp.
4. The apparatus according to claim 1 which further includes test switch means operatively connected to said computation means for sensing the presence of the object at a particular point within said field of view and, upon such sensing, actuating said comparison means to perform said comparison.
5. The apparatus according to claim 1 wherein each said group of pixels comprises a test window, each test window being compared against uniquely associated preselected values.
6. The apparatus according to claim 5 wherein the pixels of each window are compared against a threshold unique for such window, the total number of pixels within a window satisfying a pre-determined relationship with respect to said threshold determining the acceptability of the object with respect to such window.
7. The apparatus according to claim 6 wherein said threshold is automatically determined by said computation means as a function of the average digitized value of all pixels comprising the associated window.
8. The apparatus according to claim 1 wherein said programming means further includes means for allowing an operator to determine the position of each said window within said field of view and for determining the number of pixels comprising each said window.
9. The apparatus according to claim 8 wherein said programming means further includes means for associating with each said window a threshold value, all pixels within said window being classified with respect to such pixel's digitized value with respect to said threshold.
10. The apparatus according to claim 9 wherein said programming means further includes means for associating with each said window a selected number of pixels which must fall within a selected classification for the object to be acceptable with respect to said window.
11. The apparatus according to claim 10 which further includes a monitor for producing an image of a test object, said programming means presenting each said window upon said image and defining each said window as to size and location by operator control.
12. The apparatus according to claim 11 which further includes a control panel in communi-cation with said programming means, said control panel including switches for altering each said window as to size and location upon said image.
13. The apparatus according to claim 12 wherein programming instructions are presented on said monitor and wherein selected switches on said control panel responsive to said instructions are uniquely illuminated.
14. A device for validating an object, comprising:
a camera presenting a video output signal corresponding to its field of view;
a monitor connected to said camera and presenting a video image of said field of view;

a digitizer connected to said camera, digitizing said field of view into discrete pixels;
an image memory connected to said digitizer, receiving and storing said pixels in an array corres-ponding to said field of view;
a processor connected to said memory and comparing selected groups of pixels of said array against uniquely associated predetermined criteria, and determining the validity of said object as a function of said comparison; and programming means associated with said processor for allowing an operator to establish the geometric configuration of said groups of pixels and said criteria associated with each said group.
15. The device as recited in claim 14 wherein said criteria includes the number of pixels in each group, a threshold level for determining whether each pixel within such group is dark or light, and a minimum count for such group as to the number of dark or light pixels which must be present before such group is considered valid.
16. The device as recited in claim 15 wherein said programming means communicates with said monitor through a control panel, said groups of pixels being illuminated upon said monitor and said groups of pixels being controlled as to size and location on said monitor by said control panel.
17. The device as recited in claim 16 wherein said threshold level and minimum count are entered for each said group of pixels via said control panel.
18. The device as recited in claim 14 wherein each pixel has associated therewith a digitized value, and wherein said predetermined criteria for each said group of pixels includes a function of the average of all such digitized values for all pixels within each said group.
19. The device as recited in claim 18 wherein said function is determined by said processor for eachsaid group.
20. The device as recited in claim 1 which further includes a source of illumination connected to said processor in juxtaposition to the object, momentarily illuminated by said processor for casting a shadow upon said object, and wherein at least one of said groups of pixels includes said shadow.
21. The device as recited in claim 20 wherein said source of illumination comprises a point source of high intensity light.
CA000386515A 1980-11-17 1981-09-23 Operator programmable inspection apparatus Expired CA1193709A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US20774880A 1980-11-17 1980-11-17
US207,748 1980-11-17

Publications (1)

Publication Number Publication Date
CA1193709A true CA1193709A (en) 1985-09-17

Family

ID=22771840

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000386515A Expired CA1193709A (en) 1980-11-17 1981-09-23 Operator programmable inspection apparatus

Country Status (5)

Country Link
JP (1) JPS57146378A (en)
CA (1) CA1193709A (en)
DE (1) DE3145832A1 (en)
IT (1) IT1139710B (en)
MX (1) MX150612A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6479960B2 (en) 2000-07-10 2002-11-12 Mitsubishi Denki Kabushiki Kaisha Machine tool

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4519041A (en) * 1982-05-03 1985-05-21 Honeywell Inc. Real time automated inspection
FR2559581B1 (en) * 1984-02-10 1986-07-11 Siderurgie Fse Inst Rech METHOD AND INSTALLATION FOR DETECTING SURFACE DEFECTS ON A TAPE DURING TRIPPING
US4696047A (en) * 1985-02-28 1987-09-22 Texas Instruments Incorporated Apparatus for automatically inspecting electrical connecting pins
DE3612256C2 (en) * 1986-04-11 1998-05-14 Twi Tech Wissenschaftliche Ind Method and device for optoelectronic quality control
DE19646678A1 (en) 1996-11-12 1998-05-14 Heuft Systemtechnik Gmbh Method for testing the reliability of a test device, in particular an empty bottle inspector
DE19646694A1 (en) 1996-11-12 1998-05-14 Heuft Systemtechnik Gmbh Method for testing the reliability of a test device, in particular an empty bottle inspector

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025202A (en) * 1975-08-07 1977-05-24 Ball Brothers Service Corporation Method and apparatus for inspecting the bottoms of hollow glass articles
JPS5399731A (en) * 1977-02-14 1978-08-31 Barry Wehmiller Co Method of and device for electronically analyzing image of article to be illuminated
JPS6037949B2 (en) * 1978-06-14 1985-08-29 株式会社東芝 image display device
JPS55119782A (en) * 1979-03-09 1980-09-13 Daihen Corp Pattern automatic inspection method
DE2916159A1 (en) * 1979-04-20 1980-10-30 Hajime Industries Optical inspection unit for quality control - has TV camera scanning tested and reference objects for correcting video signal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6479960B2 (en) 2000-07-10 2002-11-12 Mitsubishi Denki Kabushiki Kaisha Machine tool

Also Published As

Publication number Publication date
JPS57146378A (en) 1982-09-09
IT1139710B (en) 1986-09-24
DE3145832A1 (en) 1982-09-23
IT8125038A0 (en) 1981-11-12
MX150612A (en) 1984-05-30

Similar Documents

Publication Publication Date Title
CA1193709A (en) Operator programmable inspection apparatus
US2783454A (en) Data assembly apparatus
US6205370B1 (en) Method of making a nest of cuts
US8189887B2 (en) Imaging standard apparatus and method
CA1267219A (en) Automatic inspection device
CN101646021B (en) Exposure determining device and image processing apparatus
CA1204869A (en) Training controller for pattern processing system
CN111860610B (en) License plate overexposure and license plate vehicle identification method and device and computer storage medium
CA2004457A1 (en) Minutia data extraction in fingerprint identification
CA2078374C (en) Method for displaying defect and apparatus therefor
US6320977B1 (en) Method and apparatus for positional detection using pattern matching process
GB2361086A (en) ID recognition apparatus and ID recognition sorter system for semiconductor wafer
EP0284381B1 (en) Lead sense system for component insertion machine
JPH11219437A (en) Number of people counting system
JPH071180B2 (en) Remote control automatic inspection device
JP3730798B2 (en) Object image detection method
Thompson et al. Shadow Stereo-Locating Object Boundaries Using Shadows.
JPH0663788B2 (en) Pushbutton switch pushing device in remote control automatic inspection device
JPH0421125B2 (en)
JP2544004B2 (en) Card transaction recorder
JPS62129190A (en) Semi-automatic egg detector
CN115546837A (en) Integrated management system for transformer substation access
JPH0592866U (en) Optical information reader
JPH071182B2 (en) Remote control automatic inspection device
EP0376434A2 (en) Apparatus for registering individualities and for identifying individuals

Legal Events

Date Code Title Description
MKEX Expiry