FR2791775A1 - Detection de defauts a base de particularites - Google Patents

Detection de defauts a base de particularites Download PDF

Info

Publication number
FR2791775A1
FR2791775A1 FR0000169A FR0000169A FR2791775A1 FR 2791775 A1 FR2791775 A1 FR 2791775A1 FR 0000169 A FR0000169 A FR 0000169A FR 0000169 A FR0000169 A FR 0000169A FR 2791775 A1 FR2791775 A1 FR 2791775A1
Authority
FR
France
Prior art keywords
image
features
reference image
test
test image
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.)
Withdrawn
Application number
FR0000169A
Other languages
English (en)
Inventor
Jr Harry S Gallarda
Chiwoei Wayne Lo
Adam Rhoads
Christopher G Talbot
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.)
Schlumberger Technologies Inc
Original Assignee
Schlumberger Technologies 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 Schlumberger Technologies Inc filed Critical Schlumberger Technologies Inc
Publication of FR2791775A1 publication Critical patent/FR2791775A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L22/00Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/302Contactless testing
    • G01R31/305Contactless testing using electron beams
    • G01R31/307Contactless testing using electron beams of integrated circuits
    • 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/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • 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/10Image acquisition modality
    • G06T2207/10056Microscopic image
    • 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
    • G06T2207/30148Semiconductor; IC; Wafer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01JELECTRIC DISCHARGE TUBES OR DISCHARGE LAMPS
    • H01J2237/00Discharge tubes exposing object to beam, e.g. for analysis treatment, etching, imaging
    • H01J2237/25Tubes for localised analysis using electron or ion beams
    • H01J2237/2505Tubes for localised analysis using electron or ion beams characterised by their application
    • H01J2237/2594Measuring electric fields or potentials
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01JELECTRIC DISCHARGE TUBES OR DISCHARGE LAMPS
    • H01J2237/00Discharge tubes exposing object to beam, e.g. for analysis treatment, etching, imaging
    • H01J2237/26Electron or ion microscopes
    • H01J2237/28Scanning microscopes
    • H01J2237/2813Scanning microscopes characterised by the application
    • H01J2237/2817Pattern inspection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Power Engineering (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

L'invention concerne un procédé d'inspection d'un substrat configuré, caractérisé en ce qu'il comprend les étapes consistant à : a. préparer une image de référence et une image de test (610); b. extraire des particularités à partir de l'image de référence et extraire des particularités à partir de l'image de test (620); c. mettre en concordance des particularités de l'image de référence et les particularités de l'image de test (625); et d. comparer des particularités de l'image de référence et de l'image de test afin d'identifier des défauts (630). L'invention concerne aussi un appareil correspondant ainsi qu'un produit programme informatique comprenant un support lisible par ordinateur contenant des instructions de commande d'un système informatique caractérisé en ce que ces instructions consistent à mettre en oeuvre les étapes citées ci-dessus.

Description

<Desc/Clms Page number 1>
La présente demande est liée à la demande de brevet des Etats Unis également en attente N de série 08/892 734 déposée le 15 juillet 1997 (Bordereau de mandataire 65.0265), la demande de brevet des Etats Unis N de série 08/782 740 déposée le 13 janvier 1997 (Bordereau de mandataire 65.255), la demande de brevet des Etats Unis N de série 09/012 227 déposée le 23 janvier 1998 (Bordereau de mandataire 65.0255P1), la demande de brevet des Etats Unis N de série ............ déposée la même date que cette demande (Bordereau de mandataire 65. 0287) et la demande de brevet des Etats Unis N de série ........... déposée à la même date que cette demande (Bordereau de mandataire 65.0293), dont les contenus sont incorporés ici par référence.
Une partie de l'exposé du présent document de brevet contient des éléments qui sont soumis à protection de droits d'auteur. Le propriétaire des droits d'auteur n'émet aucune objection à la reproduction par facsimile de l'un quelconque des éléments exposés dans le brevet, tels qu'ils apparaissent dans les fichiers ou enregistrements du Bureau des brevets et des marques, mais se réserve par ailleurs tous droits d'auteur, quels qu'ils soient. 37 CFR1.71.
La présente invention concerne la détection de défauts dans des substrats configurés, par exemple des tranches semi-conductrices, en particulier sur la base de particularités qui apparaissent dans des images de contraste de tension.
La fabrication de dispositifs semi-conducteurs implique de nombreuses étapes de processus d'où résultent des configurations sur un substrat. Si les
<Desc/Clms Page number 2>
configurations d'un étage intermédiaire de production sont défectueuses, il peut en résulter une microplaquette défectueuse, ce qui réduit les rendements. On connaît des procédés et appareils d'inspection des configurations sur des tranches semiconductrices à des étapes intermédiaires de production, ce que l'on appelle l'inspection "en cours". Ces procédés et appareils incluent des systèmes et des procédés basés sur l'identification. de défauts de configuration visibles dans des images optiques de la tranche. Au moins l'une des approches est basée sur des images de contraste de tension de la tranche, acquises en utilisant un microscope à balayage électronique, ou SEM selon les initiales du terme anglo-saxon Scanning electron beam, ainsi que décrit dans les brevets des Etats Unis N 5 502 366 et 5 578 821 et mis en application dans le système SEMSpec, commercialisé par KLA-TENCOR Corp.
Un procédé antérieur de détection de défauts à partir d'images de contraste de tension est basé sur un calcul de la différence des valeurs d'intensité de pixels, pixels par pixels, entre une image de la configuration à inspecter et une image de référence.
Dans ce procédé, deux images de contraste de tension, ou deux régions d'une seule image de contraste de tension, sont comparées. Pour extraire des défauts, les deux images ou les deux régions de l'image sont corrigées en premier lieu quant à des différences de brillance et de contraste, et sont alignées l'une avec l'autre. Puis, la différence des valeurs d'intensités de pixels est calculée, pixel par pixel, pour produire une image de différence. Un effet de seuil est appliqué à l'image de différence résultante afin de produire une image de défauts dans laquelle les valeurs de pixels sont binaires. Des particularités de l'image de défaut qui satisfont à certaines
<Desc/Clms Page number 3>
conditions, par exemple de dimension ou de configuration, ou d'intensité, minimales, sont considérées comme des défauts. Des statistiques des défauts des images sont ensuite calculées et un compte rendu est effectué. Par exemple, le défaut le plus grand et le nombre total de défauts peuvent être fournis pour chaque image. Puis, les images sont visualisées sur la base de statistiques de façon que les défauts les plus significatifs soient d'abord traités et analysés, ce qui réduit considérablement le temps de visualisation.
Une force de ce procédé est qu'il n'exige que peu de connaissances des particularités ou des structures électriques des images de contraste de tension, et qu'il suffit de savoir qu'elles sont de la même dimension approximative dans les deux images ou régions de l'image, et qu'un alignement et une normalisation d'image corrige les différences d'ensemble dans les images ou dans les régions de l'image. Ce procédé permet de détecter des défauts de contraste de tension sans exiger de connaître d'abord quelles configurations électriques sont en cours d'inspection.
Mais cette force est également une faiblesse.
Toutes les différences d'images sont considérées comme des défauts potentiels, même si elles ne le sont pas, et il n'est donc pas possible de différencier entre des défauts dits "killer" selon le terme anglo-saxon, c'est-à-dire tueurs, des défauts de "nuisance", et de "faux" défauts. Un défaut tueur est un défaut de signification électrique dans le test final d'une microplaquette, qui conduit à une fiabilité réduite ou à une performance électrique réduite. Un "faux" défaut est un compte-rendu, produit par un système de détection de défauts, d'un défaut qui ne correspond pas à un parasite de surface ou d'image, et qui
<Desc/Clms Page number 4>
résulte par exemple d'une erreur du système de défauts. Un défaut de "nuisance" est un parasite de surface ou d'image qui est réel mais n'est ni un défaut tueur, ni un défaut pertinent par ailleurs.
Certains parasites du processus d'inspection sont dus à un défaut d'alignement d'image, à des distorsions locales de l'image et à des absences de linéarité du processus de balayage utilisé pour acquérir des images de contraste de tension. Puisque l'apparition de défauts tueurs est en général très rare, le nombre de défauts de nuisance détectés peut être beaucoup plus grand que le nombre de défauts tueurs. Dans des systèmes classiques d'inspection à base de pixels, 90% ou davantage des défauts inclus dans les comptesrendus peuvent être des défauts de nuisance. Séparer ces derniers des défauts tueurs exige une visualisation et une évaluation par des personnels, ce qui exige du temps et est onéreux. Le taux élevé de défauts de nuisance et de faux défauts, et le besoin d'une intervention humaine, rendent difficiles l'amélioration de la performance du processus d'inspection pour le rendre plus utile dans la fabrication de tranches semi-conductrices. Des solutions existantes pour réduire les taux de défauts de nuisance et de faux défauts provoqués par un mauvais alignement, par exemple un positionnement précis de l'étage de tranche, une imagerie plus uniforme et plus facile à répéter, et des algorithmes perfectionnés de détection de défauts, n'éliminent pas le problème et réduisent typiquement la sensibilité à des défauts tueurs. En même temps, ces solutions exigent davantage de traitement, et donc davantage de temps de traitement et d'équipement de traitement.
Ceci réduit tant le débit que le rapport entre la performance et le prix.
<Desc/Clms Page number 5>
Un autre inconvénient est que le procédé ne peut détecter que des différences d'intensité de pixel à pixel puisqu'il est à base de pixels. Ceci rend difficile, sinon impossible, la détection de certains types de défauts. La demande de brevet des Etats Unis également en attente N de série ............
(Bordereau de mandataire 65. 0287) décrit des techniques d'amélioration de la visibilité, dans une image de contraste d'image, de défauts électriquement significatifs dans des particularités comme des orifices de contact non remplis. Ces techniques provoquent une modification de la dimension apparente de l'orifice de contact non rempli dans l'image de contraste de tension, en fonction de la connectivité électrique de matière dans l'orifice de contact. Alors qu'un procédé de comparaison d'images à base de pixels pourrait détecter la modification de dimensions en tant que différences d'intensité pour des pixels qui entourent l'orifice de contact, et que calculer une différence d'intensité de pixel pourrait montrer un défaut en configuration torique, ceci ne révélerait pas la manifestation fondamentale de ce type de défauts : une modification apparente de dimension de la particularité plutôt qu'une modification d'intensité.
La Figure 1 représente un procédé antérieur dans lequel des images ont été acquises et traitées en parallèle. La partie d'acquisition d'image commence par l'installation d'un fichier de lot à l'étape 105, - suivie par une acquisition d'image à l'étape 110, une mémorisation de l'image à l'étape 115 et un déplacement vers une image suivante à l'étape 120. Des images sont mémorisées dans le dispositif de mémoire
125 à disque. Les étapes 110,115 et 120 sont répétées pour d'autres régions d'une tranche et l'imagerie d'une autre tranche débute lorsque l'imagerie de la tranche précédente est achevée. Dès lors qu'une image
<Desc/Clms Page number 6>
a été acquise, un traitement d'image s'effectue en parallèle avec l'acquisition de nouvelles images : traitement d'image commence par un alignement de l'image acquise avec une image de référence à l'étape 130, puis la différence des niveaux d'intensité des images est calculée à l'étape 135 pour produire une étape de différence. Le bruit est réduit dans l'image de différence à l'étape 140, et les particularités de l'image de différence sont ensuite comptées à l'étape 145. Des particularités de l'image de différence sont triées à l'étape 150 et sont visualisées par du personnel à l'étape 155 pour décider celles des particularités qui sont considérées comme des défauts.
Il est souhaitable de fournir des procédés et des appareils qui permettent un moindre taux de défauts de nuisance et un moindre besoin d'intervention humaine, et donc une amélioration tant du débit que du rapport entre la performance et les coûts.
De façon générale, les procédés et appareils de la présente invention emploient un traitement d'image à base de particularités pour détecter, quantifier et analyser des défauts lors de l'inspection de substrats configurés, comme des tranches semi-conductrices, à partir d'images de contraste de tension obtenues par faisceau électronique.
De façon plus particulière, selon un premier aspect, l'invention fournit un procédé d'inspection d'un substrat configuré, caractérisé en ce qu'il comprend les étapes consistant à: a. préparer une image de référence et une image de test; b. extraire des particularités à partir de l'image de référence et extraire des particularités à partir de l'image de test;
<Desc/Clms Page number 7>
c. mettre en concordance des particularités de l'image de référence et des particularités de l'image de test ; d. comparer des particularités de l'image de référence et de l'image de test afin d'identifier des défauts.
Le procédé peut comprendre en outre l'étape consistant à: aligner l'image de test avec l'image de référence avant de mettre en concordance des particularités de l'image de référence et des particularités de l'image de test.
Le procédé peut comprendre en outre l'étape consistant à: enregistrer des défauts identifiés lors de la comparaison de particularités de l'image de référence et de l'image de test.
L'image de référence peut être une image de contraste de tension d'un premier substrat configuré, l'image de test étant une image de contraste de tension d'un deuxième substrat.
L'image de référence peut être une image de contraste de tension d'une première région d'un substrat configuré, l'image de test étant une image de contraste de tension d'une deuxième région du même substrat configuré.
L'image de référence peut être une image de cellules qui se répètent d'un substrat configuré, l'image de test étant une duplication de l'image de référence, décalée d'une cellule par rapport à l'image de référence.
Préparer l'image de référence et l'image de test peut comprendre les sous-étapes consistant à lisser l'image de référence et lisser l'image de test.
Préparer l'image de référence et l'image de test peut comprendre les sous-étapes consistant à
<Desc/Clms Page number 8>
normaliser l'image de référence et normaliser l'image de test.
Préparer l'image de référence et l'image de test peut comprendre les sous-étapes consistant à mémoriser l'image de référence et mémoriser de l'image de test.
Extraire des particularités peut comprendre les sous-étapes consistant à: extraire des particularités à partir de l'image de référence et ensuite extraire des particularités à partir de l'image de test.
Préparer une image de référence et une image de test et extraire des particularités à partir des images peuvent comprendre les étapes consistant à: mémoriser une image de référence et extraire des particularités à partir de l'image de référence, et mémoriser une image de test et extraire des particularités à partir d'une image de test.
On peut prévoir que l'image de test et l'image de référence comprennent des données de pixels qui incluent une information d'emplacement et d'intensité, et qu'extraire des particularités à partir de l'image de référence et de l'image de test comprenne les sous- étapes consistant à: appliquer un effet de seuil à l'information d'intensité pour produire une image à niveau binaire qui inclut des régions de particularités et des régions sans particularités ; utiliser l'image de niveau binaire en tant que masque pour définir comme particularités les régions de l'image de test qui correspondent aux régions de particularités de l'image de niveau binaire.
On peut prévoir que l'image de test et l'image de référence comprennent des données de pixels qui incluent une information d'emplacement et d'intensité et qu'extraire des particularités à partir de l'image
<Desc/Clms Page number 9>
de référence et de l'image de test comprenne les sous- étapes consistant à: comparer de façon répétitive l'image de test à une particularité modèle pour produire des données de corrélation qui représentent une corrélation de particularités de l'image de test avec l'image modèle; appliquer un effet de seuil aux données de corrélation pour identifier les emplacements de particularités à l'intérieur de l'image de test ; détecter des bords de particularités aux emplacements de particularités identifiés.
Comparer des particularités de l'image de référence et de l'image de test pour identifier des défauts peut comprendre les sous-étapes consistant à: calculer des propriétés de particularités, comparer des propriétés de particularités calculées, et déterminer des résultats de comparaison qui satisfont à des critères prédéterminés de défauts.
Comparer des particularités de l'image de référence et de l'image de test pour identifier des défauts peut comprendre les sous-étapes consistant à: calculer des propriétés de particularités dans l'image de référence; calculer des propriétés de particularités dans l'image de test; comparer des propriétés de particularités calculées dans l'image de test à des propriétés de particularités calculées dans l'image de référence; calculer des statistiques de comparaison de propriétés de particularités ; déterminer des statistiques de comparaison qui satisfont à des critères prédéterminés de défauts.
Le procédé peut comprendre en outre un compte-rendu de statistiques de propriétés de défauts.
<Desc/Clms Page number 10>
Extraire des particularités à partir de l'image de référence peut comprendre les sous-étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de référence, enlever de l'image de référence le niveau moyen d'arrière-plan afin de produire une première image de référence modifiée, appliquer un effet de seuil à la première image de référence modifiée pour produire une deuxième image de référence modifiée, et identifier des particularités de la deuxième image de référence modifiée.
Extraire des particularités à partir de l'image de test peut comprendre les sous-étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de test, enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée, appliquer un effet de seuil à l'image de test modifiée pour produire une deuxième image de test modifiée, et identifier des particularités de la deuxième image de test modifiée.
Extraire des particularités à partir de l'image de référence peut comprendre les sous-étapes consistant à: mettre en concordance un gabarit de particularités dans l'image de référence et identifier des particularités de l'image de référence qui concordent avec le gabarit de particularités.
Extraire des particularités à partir de l'image de référence peut comprendre les sous-étapes consistant à:
<Desc/Clms Page number 11>
calculer un niveau moyen d'arrière-plan de l'image de référence, enlever de l'image de référence le niveau moyen d'arrière-plan afin de produire une première image de référence modifiée, mettre en concordance un gabarit de particularités dans la première image de référence modifiée, et identifier des particularités dans la deuxième image de référence modifiée qui concordent avec le gabarit de particularités.
Extraire des particularités à partir de l'image de test peut comprendre les sous-étapes consistant à: mettre en concordance un gabarit de particularités dans l'image de test et identifier des particularités dans l'image de test qui concordent avec le gabarit des particularités.
Extraire des particularités à partir de l'image de test peut comprendre les sous-étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de test, enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée, mettre en concordance un gabarit de particularités dans la première image de test modifiée, et identifier des particularités dans la deuxième image de test modifiée qui concordent avec le gabarit de particularités.
Selon un deuxième aspect, l'invention réalise un appareil d'inspection d'un substrat configuré caractérisé en ce qu'il comprend un système informatique ; et des instructions de commande du système informatique destinées à
<Desc/Clms Page number 12>
préparer une image de référence et une image de test d'au moins un substrat configuré, extraire des particularités de l'image de référence et d'extraire des particularités de l'image de test, mettre en concordance des particularités de l'image de référence et les particularités de l'image de test ; comparer des particularités de l'image de référence et de l'image de test afin d'identifier des défauts.
Les instructions peuvent commander le système informatique de manière à aligner l'image de test avec l'image de référence avant de mettre en concordance des particularités de l'image de référence et des particularités de l'image de test.
Les instructions peuvent commander le système informatique de manière à enregistrer des défauts identifiés lors de la comparaison de particularités de l'image de référence et de l'image de test.
L'appareil peut comprendre en outre: un sous-système d'imagerie à faisceau électronique pour acquérir des images de contraste de tension d'un substrat configuré à utiliser comme images de test.
Les instructions peuvent commander le système informatique de manière à lisser au moins soit l'image ~ de référence, soit l'image de test.
Les instructions peuvent commander le système informatique de manière à normaliser au moins soit l'image de référence, soit l'image de test.
Les instructions peuvent commander le système informatique de manière à extraire en premier lieu des particularités de l'image de référence et
<Desc/Clms Page number 13>
extraire ensuite des particularités de l'image de test.
Les instructions peuvent commander le système informatique de manière à calculer des propriétés de particularités de l'image de référence et de l'image de test, comparer des propriétés de particularités calculées, et déterminer des résultats de comparaison qui satisfont à des critères prédéterminés de défauts.
Les instructions peuvent commander le système informatique de manière à calculer un niveau moyen d'arrière-plan de l'image de référence, enlever de l'image de référence le niveau moyen d'arrière-plan afin de produire une première image de référence modifiée, appliquer un effet de seuil à la première image de référence modifiée pour produire une deuxième image de référence modifiée, et identifier des particularités de la deuxième image de référence modifiée.
Les instructions peuvent commander le système informatique de manière à calculer un niveau moyen d'arrière-plan de l'image de test, enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée, appliquer un effet de seuil à l'image de test modifiée pour produire une deuxième image de test modifiée, et identifier des particularités de la deuxième image de test modifiée.
Les instructions peuvent commander le système informatique de manière à
<Desc/Clms Page number 14>
extraire des particularités d'une image en mettant en concordance un gabarit de particularités dans l'image et en identifiant des particularités dans l'image qui concordent avec le gabarit de particularités.
Selon un troisième aspect, l'invention fournit un produit programme informatique comprenant un support lisible par ordinateur contenant des instructions de commande d'un système informatique caractérisé en ce que ces instructions consistent à: préparer une image de référence et une image de test qui représentent des configurations d'au moins un substrat configuré, extraire des particularités de l'image de référence et des particularités de l'image de test, mettre en concordance des particularités de l'image de référence et des particularités de l'image de test, et comparer des particularités de l'image de référence et de l'image de test afin de d'identifier des défauts.
Les buts, particularités et avantages de la présente invention exposés ci-dessus ainsi que d'autres ressortiront davantage de la lecture de la description qui suit d'un mode de réalisation préféré, en se référant aux dessins dans lesquels: la Figure 1 est un schéma logique d'un procédé antérieur d'acquisition d'images, mis en #uvre en parallèle avec un traitement d'image; la Figure 2 est un schéma d'un système cohérent avec la présente invention; la Figure 3 est un schéma logique de haut niveau de certains procédés cohérents avec la présente invention ; la Figure 4 est une vue à écran divisé qui représente deux images de contraste de tension de
<Desc/Clms Page number 15>
microplaquettes d'une tranche semi-conductrice partiellement fabriquée; la Figure 5 est une illustration de haut niveau de procédés cohérents avec la présente invention pour mettre en concordance des particularités entre des images de contraste de tension d'orifices de contact; la Figure 6 est un schéma logique qui représente des procédés cohérents avec la présente invention; la Figure 7 représente de façon plus détaillée un mode de réalisation de l'étape 610 de la Figure 6, cohérent avec la présente invention; la Figure 8 représente de façon plus détaillée un mode de réalisation de l'étape 630 de la Figure 6, cohérent avec la présente invention; la Figure 9 représente de façon plus détaillée un mode de réalisation des étapes 610,615 et 620 de la Figure 6, cohérent avec la présente invention; la Figure 10 représente de façon plus détaillée un mode de réalisation de l'étape 630 de la Figure 6, cohérent avec la présente invention; la Figure 11 représente de façon plus détaillée un mode de réalisation de l'étape 635 de la Figure 6, cohérent avec la présente invention; la Figure 12 représente de façon plus détaillée un mode de réalisation du procédé de la Figure 6, cohérent avec la présente invention; la Figure 13 représente de façon plus détaillée un mode de réalisation de l'étape 9620A de la Figure 9, cohérent avec la présente invention; la Figure 14 représente de façon plus détaillée un mode de réalisation de l'étape 9620B de la Figure 9, cohérent avec la présente invention;
La Figure 15 représente de façon plus détaillée une variante de mode de réalisation de l'étape 9620A de la Figure 9, cohérent avec la présente invention;
<Desc/Clms Page number 16>
la Figure 16 représente de façon plus détaillée une variante de mode de réalisation de l'étape 9620B de la Figure 9, cohérent avec la présente invention; les Figures 17A, 17B, 17C et 17D représentent un schéma logique d'une mise en application, cohérente avec la présente invention, de détection de défauts à base de particularités; les Figures 18A à 18H illustrent une extraction de particularités par application d'un effet de seuil d'une manière cohérente avec la présente invention; les Figures 19A à 19B illustrent une extraction de particularités par concordance avec un modèle, d'une manière cohérente avec la présente invention; les Figures 20A à 20F illustrent un processus de détection de défauts cohérent avec la présente invention ; la Figure 21 représente un tracé de la zone calculée de particularités d'image de test par rapport à la zone calculée de particularités d'image de référence ; les Figures 22A à 22C illustrent une extraction de particularités par application d'un effet de seuil adaptatif, d'une manière cohérente avec la présente invention ; les Figures 23A à 23D illustrent un exemple d'un fonctionnement en mode en réseau ; la Figure 24 représente un schéma logique d'un procédé d'exécution, en mode en réseau, d'une comparaison de cellule à cellule en vue d'une détection de défauts.
La Figure 2 représente schématiquement un exemple de système 200 destiné à vérifier des tranches en utilisant des techniques de contraste de tension cohérentes avec la présente invention. Le système 200 comprend un sous-système 205 de faisceau électronique, par exemple un sous-système d'imagerie par faisceau
<Desc/Clms Page number 17>
électronique d'un système Schlumberger IDA 1000, qui inclut un affichage facultatif 210, un étage motorisé 213 de tranche, une colonne 215 à électrons qui inclut un étage et une chambre de vide, un processeur 220 d'image, une mémoire 225 de données, par exemple une unité de disque à 100 Goctets, et, facultativement, un sous-système d'ordinateur ou sous-système informatique 230 à affichage 235. Le sous-système 205 de faisceau électronique, le processeur 220 d'image et le soussystème informatique 230 communiquent entre eux par l'intermédiaire d'un bus 240 de réseau ou d'une autre connexion appropriée. Le sous-système 205 de faisceau électronique peut être, par exemple, un système de test IDS 10000 à faisceau électronique, comme celui qui est commercialisé par Schlumberger Automated Test Systems de San José, Californie, à logiciel modifié pour permettre des opérations cohérentes avec l'invention, de la manière décrite de façon plus détaillée ci-dessous. De telles opérations peuvent inclure, par exemple, un traitement asynchrone d'images multiples, un traitement d'alignement et une visualisation d'image, une création et un affichage de topologie de défauts de tranches, et une importation et une exportation d'images à visualiser. Le soussystème 205 de faisceau électronique peut également inclure des modifications comme une énergie ou un courant plus élevé de faisceau électronique, ainsi qu'un canon de noyage à chargement préalable et des éléments matériels et un logiciel correspondants pour appliquer un chargement stable réglable de surface d'une tranche à polarité sélectionnée de chargement, comme décrit dans la demande de brevet des Etats Unis également en attente, N de série 08/892 734, déposée le 15 juillet 1997 de C. W. LO et al. L'étage motorisé 215 de tranche peut être, par exemple, un étage motorisé de tranche model MWS comme celui qui est
<Desc/Clms Page number 18>
commercialisé par Schlumberger Automated Test Systems de San José, Californie, pour manier et positionner une tranche par rapport à la colonne d'électrons (non représentée) d'un sous-système 205 à faisceau électronique. Le processeur 220 d'image peut être, par exemple, un groupe de stations de travail ou d'ordinateurs personnels en réseau, par exemple un groupe d'ordinateurs personnels en réseau équipés de processeurs Pentium II. La mémoire 225 de données offre une capacité de mémorisation d'images de référence et de traitement asynchrone d'images multiples. Le sous-système informatique facultatif 230 à affichage 235 est agencé pour permettre à une personne de surveiller et de visualiser des processus et des images liés à l'inspection de tranches, et d'effectuer des opérations de vérification.
Des procédés cohérents avec la présente invention extraient des particularités à partir d'une image, par exemple en appliquant un effet de seuil pour produire une version binaire de l'image de particularités et ensuite une image facultative d'échelle des gris, ou en comparant des particularités de l'image à un gabarit de particularités. Les images peuvent être alignées pour appliquer des particularités, ou bien des versions binaires de l'image de particularités peuvent être alignées et des particularités correspondantes peuvent alors être mises en concordance. En d'autres termes, des particularités comme celles qui peuvent présenter une signification électrique sont extraites de l'image de contraste de tension et sont ensuite mises en concordance particularité par particularité avant que la détermination des défauts ne soit effectuée. Cette approche offre, par rapport aux procédés antérieurs à base de pixels, les avantages suivants:
<Desc/Clms Page number 19>
1. Taux réduit de défauts de nuisance et de faux défauts et sensibilité accrue aux défauts tueurs.
2. Réduction du bruit de grenaille, par calcul de moyennes des valeurs de pixels sur l'ensemble de la particularité.
3. Seules les parties d'images à signification électrique probable sont extraites, de façon à simplifier et à accélérer le processus de détermination de défauts.
4. Des propriétés éventuellement significatives des particularités, comme la superficie, l'intensité moyenne, la somme de l'intensité, la configuration, les moments, etc., peuvent être calculées et comparées parce que le processus est basé sur des particularités et non sur des pixels.
5. La charge de travail de traitement peut être réduite. En comparant des images particularité par particularité et non pixel par pixel, le nombre des opérations est déterminé par le nombre de particularités, typiquement quelques centaines, et non par le nombre de pixels, typiquement des centaines de milliers ou des millions. Des ressources de calcul sont donc rendues disponibles pour améliorer la robustesse de détection de défauts.
6. Un alignement d'images de référence et de test ou de régions d'une image n'exige pas une précision de l'ordre du pixel. Un alignement d'images doit seulement être assez proche pour que des particularités correspondantes entre images ou régions d'une image soient correctement en concordance. Par conséquent, la précision requise pour l'étage d'alignement et les algorithmes d'alignement d'images est déterminée par des dimensions de particularités et non par des dimensions de pixels.
La Figure 3 est un schéma logique de haut niveau de certains procédés cohérents avec l'invention. A
<Desc/Clms Page number 20>
l'étape 305, une interface graphique d'utilisateur affiche une "recette de tâche" à visualiser par une personne. Lorsque l'opérateur a sélectionné ou entré des paramètres pour la tâche, les algorithmes de traitement d'images, ou d'IP selon les initiales du terme anglo-saxon Image processing, et les paramètres de traitement d'image sont chargés dans la mémoire active à l'étape 310, ainsi qu'une image de gabarit si elle est nécessaire pour la tâche. A l'étape 315, une source de données d'images est sélectionnée, par exemple soit une image vidéo directe ou, en d'autres termes, de données réelles, soit une image précédemment acquise mémorisée sur disque. A l'étape 320, une image de référence R et une image de test T à traiter sont chargées dans la mémoire active, ainsi qu'une image arbitre A si elle nécessaire pour la tâche. L'utilisation d'images arbitres est décrite plus loin de façon plus détaillée. En général, une image arbitre est utilisée lors d'une comparaison d'images de deux régions d'une tranche afin d'enlever une ambiguïté quant à celle des deux images qui est défectueuse, par exemple lors de comparaisons d'images ou de parties d'image représentant des structures répétitives sur une tranche, comme des cellules voisines dans une mémoire. A l'étape 235, l'image de référence et l'image de test sont alignées, ainsi que l'image arbitre si elle est requise pour la tâche.
En variante, l'étape 325 est sautée si l'alignement d'image n'est pas nécessaire, par exemple lorsqu'un étage de précision élevée est utilisé et/ou lorsque les images ont été alignées préalablement. A l'étape 335, une détection de défauts à base de particularités est exécutée. A l'étape 340, les résultats de la détection de défauts, par exemple des emplacements, dimensions, types de défauts etc. sont sauvegardés dans une base de données et/ou le compte-
<Desc/Clms Page number 21>
rendu est effectué et l'image est facultativement sauvegardée en outre pour référence ultérieure. A l'étape 345, des images et résultats intermédiaires, par exemple une topologie de défauts et des statistiques concernant l'emplacement, les dimensions, le type etc. de défauts sont affichés facultativement sur un écran d'affichage 350 pour surveillance par un opérateur humain.
La Figure 4 est une vue à écran partagé qui représente deux images à contraste de tension de microplaquettes d'une tranche semi-conductrice partiellement fabriquée. Les images sont acquises à une étape de fabrication qui suit une gravure d'orifices de contact à travers une couche diélectrique pour exposer des éléments de contact.
Chacun des points noirs représente un orifice de contact. L'image 410 du côté gauche de la Fig. 4 est une image de référence prise sur une première microplaquette. L'image 420 est une image de test prise sur une deuxième microplaquette. Il est souhaité d'inspecter l'image 420 pour identifier des défauts à signification électrique, par exemple des orifices de contact manquants ou incomplètement formés. Des procédés cohérents avec la présente invention permettent une inspection par mise en concordance de particularités incluses dans les deux images.
La Figure 5 est une illustration de haut niveau de procédés cohérents avec la présente invention pour mettre en concordance des particularités entre des images de contraste de tension d'orifices de contact.
Pour la commodité de l'illustration, seul un petit nombre d'orifices de contact est représenté aux images de la Figure 5, bien que les techniques soient applicables à des champs beaucoup plus grands d'orifices de contact, ainsi qu'à des images de particularités, incluses dans des semi-conducteurs
<Desc/Clms Page number 22>
mais autres que des orifices de contact. Une image de référence 510 inclut cinq orifices de contact, représentés sous la forme de points noirs 512, 514, 516,518 et 520, mais il y manque un orifice de contact à un emplacement situé en 522. Une image de test 524 comprend les orifices de contact sous la forme de points noirs en 526,528, 530,532, 534 et 536. L'image de test est alignée avec l'image de référence 510 à l'étape 538. L'alignement est indiqué à des fins d'illustration par des cases en traits interrompus 540 et 542 qui indiquent les régions de recouvrement des images 510 et 524 : exemple la particularité 512 correspond à la particularité 526, la particularité 514 correspond à la particularité 528, la particularité 516 ne comporte aucune contrepartie dans l'image de test, la particularité 518 correspond à la particularité 532, la particularité 520 correspond à la particularité 534, et l'emplacement 522 correspond à la particularité 530. La particularité 536 d'image 524 ne comporte aucune contrepartie dans l'image de référence 510. Des particularités sont extraites des images aux étapes 544 et 546. Les particularités extraites des images sont numérotées de façon à indiquer que les particularités sont identifiées comme particularités à la suite de l'extraction de particularités. A cette étape, il n'existe aucune correspondance entre les numéros de particularités d'une image de référence et les numéros de particularités d'une image de test.
Les Figures 20A à 20F illustrent un processus de mise en concordance de particularités, cohérent avec la présente invention. La Figure 20A représente une partie d'une image de référence à plusieurs particularités représentant des contacts d'une tranche, comme les contacts 2005 ou 2010, le point central et la frontière de chaque particularité étant
<Desc/Clms Page number 23>
respectivement marqués par une croix et un cercle. La Figure 20B représente une partie d'une image de test qui inclut elle aussi une série de particularités représentant des contacts d'une tranche, le point central et la frontière de chaque particularité étant marqués respectivement par une croix et un cercle. La Figure 20C représente l'image de référence qui comporte des anneaux additionnels qui entourent chaque particularité pour indiquer une limite de déport acceptable lors de la comparaison des particularités de l'image de test avec celles de l'image de référence. La Figure 20D représente l'image de test de la Figure 20B à laquelle est superposée l'image de référence de la Figure 20C. De faibles erreurs d'alignement sont visibles. On peut voir que le centre de l'une des particularités de l'image de test, la particularité 2015, est situé en dehors de la limite acceptable de déport de la particularité 2010. On peut voir aussi que la particularité centrale de l'image de référence, la particularité 2020, ne comporte aucune contrepartie dans l'image de test. La Figure 20E représente des particularités qui sont "mises en concordance" dans le processus. La Figure 20F représente les particularités que le processus a identifié comme des "défauts", un compte-rendu de particularités manquantes étant effectué pour la particularité 2020 et un compte-rendu de particularité décalée étant effectué pour la particularité 2010 parce que la particularité 2015 de l'image de test est à l'extérieur de la limite acceptable de déport. Après l'identification des défauts, un recouvrement contrastant, par exemple une couleur contrastante, peut être affichée avec l'image de test pour rendre les défauts directement visibles à un observateur.
Après cette identification et cette numérotation des particularités, des propriétés des particularités
<Desc/Clms Page number 24>
extraites sont déterminées. Dès lors que les particularités ont été extraites, calculer une ou plusieurs propriétés des particularités est un processus de calcul simple et direct. Des propriétés peuvent inclure, sans que cette liste soit limitative, la superficie, les dimensions, la configuration, la centre de gravité, l'intensité moyenne qui est particulièrement importante pour réduire le bruit dans des images à faisceau électronique à bruit de grenaille limité, la somme de l'intensité et l'écarttype de l'intensité. Le tableau I donne des exemples de certaines propriétés de particularités, par exemple les coordonnées x, y du centre de gravité de la particularité, la superficie A et l'intensité moyenne (I) de pixels. Les valeurs données le sont à titre d'illustration et ne sont pas nécessairement mises à l'échelle des images de la Figure 5.
Tableau 1 (Particularités Extraites)
Figure img00240001
<tb>
<tb> Image <SEP> de <SEP> référence <SEP> 510 <SEP> Image <SEP> de <SEP> test <SEP> 524
<tb> N <SEP> x <SEP> y <SEP> A <SEP> I <SEP> N xyAI
<tb> R1 <SEP> 1,2 <SEP> 1,1 <SEP> 3,0 <SEP> 40 <SEP> Tl <SEP> 1,3 <SEP> 1,0 <SEP> 2,0 <SEP> 44
<tb> R2 <SEP> 5,2 <SEP> 1,0 <SEP> 3,5 <SEP> 45 <SEP> T2 <SEP> 5,4 <SEP> 1,1 <SEP> 2,5 <SEP> 81
<tb> R3 <SEP> 6,2 <SEP> 3,1 <SEP> 3,0 <SEP> 50 <SEP> T3 <SEP> 3,2 <SEP> 3,0 <SEP> 2,0 <SEP> 50
<tb> R4 <SEP> 1,2 <SEP> 5,1 <SEP> 2,5 <SEP> 42 <SEP> T4 <SEP> 1,3 <SEP> 5,0 <SEP> 2,5 <SEP> 54
<tb> R5 <SEP> 5,3 <SEP> 5,1 <SEP> 3, <SEP> 0 <SEP> 48 <SEP> T5 <SEP> 5, <SEP> 2 <SEP> 5, <SEP> 0 <SEP> 3, <SEP> 0 <SEP> 52
<tb>
où N désigne le numéro de particularité.
A l'étape 548, des particularités sont mises en concordance. Par exemple, les particularités 512 à 520 sont identifiées comme particularités R1 à R5 de l'image de référence 510, tandis que l'emplacement 522 ne contient aucune particularité. Les particularités 526 à 534 sont identifiées comme particularités Tl à T5 de l'image de test 524. Les particularités R1, R2, R4 et R5 de l'image de référence 510 sont respectivement mises en concordance avec les particularités Tl, T2, T4 et T5 de l'image de test
<Desc/Clms Page number 25>
524. La particularité R3 de l'image de référence 510 ne comporte aucune contrepartie dans l'image de test 524 parce qu'elle est en dehors du champ de vision de l'image de test 524. La particularité T3 de l'image de test 524 ne comporte aucune contrepartie dans l'image de référence 510 parce qu'elle est manquante dans l'image de référence.
Le Tableau 2 représente un exemple simple de comparaison de propriétés de particularités mises en concordance. Une particularité numérotée de l'image de référence (R N ) est comparée à une particularité de l'image de test (T N ), une différence entre la superficie de particularité de l'image de référence (Aref) et la superficie de particularité de l'image de test (Atest) est calculée pour obtenir une valeur de différence entre les superficies (Adif), un rapport entre Aref et Atest est calculé pour obtenir une valeur de rapport des superficies (Aratio). Ce rapport pourrait être utilisé comme mesure de défaut. Par exemple, tout rapport supérieur à un certain seuil, 1,2 par exemple, pourrait être considéré comme une particularité défectueuse. Un test est effectué pour déterminer si la valeur Aratio est ou non supérieure à une valeur de seuil (Ar > 1,2).
Tableau 2 (Particularités Comparées)
Figure img00250001
<tb>
<tb> Particularités <SEP> avec <SEP> concordance
<tb> RN - <SEP> TN <SEP> Aref <SEP> Atest <SEP> Adif <SEP> Aratio <SEP> Ar>1,2 <SEP> Défaut?
<tb> RI <SEP> - <SEP> Tl <SEP> 3,0 <SEP> 2,0 <SEP> 1,0 <SEP> 1,5 <SEP> Vrai <SEP> Oui
<tb> R2 <SEP> - <SEP> T2 <SEP> 3,5 <SEP> 2,5 <SEP> 1,0 <SEP> 1,4 <SEP> Vrai <SEP> Oui
<tb> R4 <SEP> - <SEP> T4 <SEP> 2,5 <SEP> 2,5 <SEP> 0,0 <SEP> 1,0 <SEP> Faux <SEP> Non
<tb> R5 <SEP> - <SEP> T5 <SEP> 3,3 <SEP> 3,0 <SEP> 0,3 <SEP> 1,1 <SEP> Faux <SEP> non
<tb> Particularités <SEP> sans <SEP> concordance
<tb> R3 <SEP> - <SEP> TE <SEP> Hors <SEP> champ <SEP> de <SEP> vision <SEP> Inconnu <SEP> Inconnu
<tb> RX <SEP> - <SEP> T3 <SEP> Manque <SEP> dans <SEP> champ <SEP> de <SEP> vision <SEP> N/D <SEP> Oui*
<tb>
<Desc/Clms Page number 26>
* défaut dans l'image de référence (peut se produire lorsque l'image de référence est celle d'une microplaquette réelle).
N/D signifie non disponible
Lorsque les propriétés des particularités ont été calculées, elles peuvent être comparées individuellement ou en combinaison(s). Un compte-rendu de défauts peut être effectué, par exemple, si les propriétés des particularités diffèrent d'une ampleur prédéterminée. Numériquement, cette comparaison peut être, sans que ceci soit limitatif, une soustraction ou un rapport qui sont l'un et l'autre communément utilisés, ou une fonction plus grand que ou plus petit que, etc. Combiner des propriétés peut augmenter la sensibilité de détection des défauts sans augmenter le rapport nuisance-défauts. Par exemple, la somme des intensités de tous les pixels de la particularité combine une mesure de superficie et un calcul de moyenne d'intensité, et est particulièrement adapté pour détecter un défaut dont le résultat est une variation subtile du niveau de gris, mais qui modifie aussi la dimension apparente de la particularité défectueuse comme c'est le cas pour des contacts ou des orifices traversants, comme décrit dans la demande de brevet des Etats Unis également en attente N de série déposée le (Bordereau de mandataire 65. 0287). Le Tableau 2 montre aussi des défauts classés comme des particularités manquantes ou des particularités additionnelles.
Une autre approche consiste à calculer des statistiques, par exemple des moyennes, des écartstypes et/ou des régressions linéaires, sur des différences entre les propriétés concernées. Les particularités dont les propriétés diffèrent, par exemple de deux écarts-types, de la répartition de différence, peuvent faire l'objet de comptes-rendus de
<Desc/Clms Page number 27>
défauts. Cette approche évite le besoin de définir un seuil fixe quant à la différence entre particularités de propriétés. On notera en effet que les seuils fixes sont enclins aux erreurs parce qu'ils peuvent être fixés incorrectement et parce qu'ils ne s'adaptent pas, même s'ils sont fixés correctement, à des variations subtiles de l'image, par exemple un contraste ou une brillance qui varie. En revanche, le seuil est adaptatif à l'intérieur d'une plage sélectionnée de signification statistique. La moyenne et l'écart-type de différences de propriétés de particularités sont eux-mêmes une mesure de la densité de défauts sur la tranche. Cette approche adaptative est utile, par exemple, dans le cas d'une tranche défectueuse à nombreux défauts, puisque l'écart-type est grand et que seuls les principaux défauts font l'objet de comptes-rendus. Dans le cas d'une tranche de mauvaise qualité, la moyenne et l'écart-type euxmêmes indiquent un mauvais rendement. Dans le cas d'une tranche à haut rendement, des défauts tueurs ressortent clairement à partir de la répartition de différences et peuvent faire l'objet de comptes-rendus corrects en tant que défauts. La Figure 21 représente un exemple de tracé de la superficie calculée de particularités d'image de test en fonction de la superficie calculée de particularités d'une image de référence. Des superficies d'images en concordance parfaite seraient tracées sur la ligne 2100 de "concordance parfaite". Des zones de particularités dont les valeurs sur le graphes sont très éloignées de la ligne 2100, comme les zones 2105, 2110,2115, sont directement identifiées comme défauts tueurs potentiels.
La Figure 6 est un schéma logique qui représente des procédés cohérents avec la présente invention. Une détection de défauts, à base de particularités, débute
<Desc/Clms Page number 28>
à l'étape 605. A l'étape 610, des images de référence et de test et, facultativement, une image d'arbitrage sont préparées. A l'étape 615, les images de référence et de test sont alignées facultativement l'une avec l'autre, à volonté ou selon les besoins. Des procédés d'alignement d'images sont connus dans l'art et ne seront pas détaillés ici : peut se référer par exemple au brevet des Etats Unis N 5 054 097 de Flinois et al., qui représente des techniques d'alignement d'images, et des produits comme le système d'imagerie à faisceau électronique IDS 10000 commercialisé par Schlumberger Technologies, Inc. de San José, Californie, incluent des capacités d'alignement. Des particularités sont extraites des images à l'étape 620. L'étape d'alignement 615 et l'étape d'extraction 620 de particularités peuvent être exécutées dans un ordre ou dans l'autre, ou simultanément, sans affecter le résultat, à moins que l'algorithme d'alignement n'utilise pour l'alignement une information de particularités extraites. Des particularités extraites sont mises en concordance à l'étape 625 en utilisant facultativement une information d'alignement. Les particularités sont comparées à l'étape 630 pour identifier les défauts. A l'étape facultative 635, le compte-rendu des défauts identifiés est effectué et/ou un enregistrement de ceux-ci est sauvegardé. Le compte-rendu peut par exemple prendre la forme d'un affichage ou d'une impression de l'image de test avec un revêtement contrastant, par exemple de couleurs différentes, qui représente les défauts identifiés, ainsi que les statistiques de particularités sous forme de tableau.
L'étape 640 contrôle si une autre image doit être inspectée quant à des défauts. Si tel est le cas, le processus est répété, en recommençant à l'étape 610.
Dans le cas contraire, le processus est terminé à
<Desc/Clms Page number 29>
l'étape 645. Si elle n'est pas nécessaire, la préparation de l'image de référence peut être sautée à l'étape 610. Par exemple, il n'est pas nécessaire de préparer l'image de référence à chaque répétition si c'est la même image de référence qui est utilisée chaque fois qu'une image de test doit être inspectée, ou si l'image de référence à utiliser pendant la répétition suivante est l'image de test provenant de la répétition précédente.
La Figure 7 représente de façon plus détaillée un mode de réalisation de l'étape 610 où les images sont, soit lues lorsqu'il s'agit d'images précédemment acquises et mémorisées, soit acquises à l'étape 7610A.
Les images sont lissées à volonté à l'étape facultative 7610B. Les images sont normalisées à volonté à l'étape facultative 7610C. Des procédés de lissage d'images comme un lissage spatial gaussien, et des procédés de normalisation d'images comme une normalisation d'intensité de pixel, sont connus dans l'art. Puisque le but du lissage est une minimisation de bruit ou une élimination de bruit, d'autres techniques peuvent être utilisées pour réduire le bruit, par exemple augmenter le courant de faisceau pendant une acquisition d'image et calculer une moyenne temporelle, au lieu d'effectuer un lissage spatial.
La Figure 8 représente de façon plus détaillée un mode de réalisation de l'étape 630. Des propriétés de particularités de l'image sont calculées à l'étape 8630A. Les propriétés calculées des particularités sont comparées à l'étape 8630B. Il est déterminé à l'étape 8630C si les résultats de la comparaison satisfont à des critères de défauts.
La Figure 9 représente une méthode possible de mise en oeuvre des étapes 610,615 et 620. Une image de référence R est lue et mémorisée ou est acquise, à
<Desc/Clms Page number 30>
l'étape 9610A. L'image de référence R est lissée à l'étape facultative 9610B. Des particularités sont extraites de l'image de référence R à l'étape 9620A.
L'image de test T est lue et mémorisée, ou est acquise, à l'étape 9610C. L'image de test T est lissée à l'étape facultative 9610D et normalisée à l'image de référence à l'étape facultative 9610E. L'image de test T est alignée avec l'image de référence R à une étape facultative 615. Les particularités sont extraites de l'image de test T à l'étape 9620B.
La Figure 10 représente de façon plus détaillée un mode de réalisation de l'étape 630 dans laquelle les particularités sont comparées pour identifier les défauts. Des propriétés des particularités de l'image de référence R et de l'image de test T sont calculées à l'étape 10-630A. Les propriétés calculées de particularités de l'image de référence et de l'image de test T sont comparées à l'étape 10-630B. Des statistiques de comparaison de propriétés sont calculées à l'étape 10-630C. A l'étape 10-630D, il est déterminé si les statistiques de comparaison de propriétés satisfont à des critères prédéterminés de défauts.
La Figure 11 représente de façon plus détaillée un mode de réalisation de l'étape 635 au cours de laquelle sont effectués un compte-rendu ou une mémorisation des données concernant des défauts détectés. Il est déterminé à l'étape 11-635A si des défauts ont été identifiés. Si tel est le cas, le compte-rendu des statistiques des propriétés des particularités de défauts est effectué, à l'étape 11- 636B. Le compte-rendu, ou la sauvegarde en mémoire, des statistiques de propriétés de défauts et/ou d'autres informations d'image sont effectués à l'étape 11-635C.
<Desc/Clms Page number 31>
La Figure 12 représente de façon détaillée un autre mode de réalisation qui illustre des variantes de modes de répétition. Une détection de défauts à base de particularités commence à l'étape 605. L'image de référence et l'image de test sont préparées à l'étape 610. L'image de référence est préparée à une étape 12-610A, comme aux étapes 9610A, 9610B et 9620A de la Figure 9. Les images sont alignées à une étape facultative 615. Des particularités sont extraites à l'étape 620. Des particularités sont mises en concordance à l'étape 625. Des particularités sont comparées pour identifier les défauts à l'étape 630.
Un compte-rendu et/ou une sauvegarde des données de défauts sont effectués à une étape facultative 635. Le processus se répète ensuite : le mode opératoire consiste à explorer une image de référence, puis une image de test, puis une image de référence, puis une image de test selon une configuration en alternance désignée par RTRT... selon les initiales des mots référence et test, l'étape 12-610A est exécutée à chaque répétition ; le mode opératoire consiste à explorer une seule fois une image de référence et à la comparer ensuite à de multiples images de test, selon une configuration séquentielle désignée par RTTT..., ici aussi selon les initiales des mots référence et test, la répétition débute à l'étape 12-610B. Lorsque toutes les images ont été inspectées, la détection de défauts à base de particularités se termine à l'étape 640. Un compte-rendu et/ou une mémorisation des résultats de détection de défauts pour l'inspection sont effectués à l'étape 1245. Le processus se termine à l'étape 1250.
La Figure 13 représente de façon plus détaillée un mode de réalisation de l'extraction des particularités à partir de l'image de référence R à l'étape 9620A. Un niveau moyen d'arrière-plan de
<Desc/Clms Page number 32>
l'image de référence R est calculé à l'étape 13- 9620A1. Le niveau d'arrière-plan est enlevé des intensités de pixels de l'image de référence R afin de produire une première image de référence modifiée R1 à l'étape 13-9620A2. Enlever le niveau d'arrière-plan est exécuté facultativement parce que certaines images de contraste de tension ne présentent pas un contraste uniforme. Le résultat du contraste non uniforme peut être de rendre compte de faux défauts si de simples algorithmes de soustraction de pixels sont utilisés, sans effectuer d'abord une soustraction ou une normalisation du niveau d'intensité de pixels de l'arrière-plan. L'arrière-plan est la zone de l'image comprise entre les particularités. Les particularités d'une tranche sur laquelle une détection de défauts est exécutée sont typiquement des conducteurs, par exemple des fils, des orifices métallisés ou des contacts. La zone qui entoure ces particularités est typiquement diélectrique, de nos jours du SI02 la plupart du temps. La zone d'arrière-plan d'une image de la tranche représente le diélectrique. Des parasites qui résultent d'une charge non uniforme de la surface de la tranche provoquent parfois un potentiel de surface légèrement différent et donc une intensité d'arrière-plan qui varie pour des points différents de l'image. Enlever ou normaliser l'intensité de pixels d'arrière-plan peut améliorer la robustesse de l'extraction de particularités. Dans le cadre du présent document, le terme d'enlèvement de 1"'arrière-plan" doit être compris comme incluant, soit une soustraction du niveau d'arrière-plan, soit une normalisation du niveau d'arrière-plan, soit toute autre technique appropriée pour compenser un contraste non uniforme d'une image. Les pixels de la première image de référence modifiée RI sont traités par effet de seuil à l'étape 13-9620A3 pour produire une
<Desc/Clms Page number 33>
deuxième image modifiée de référence R2, par exemple une image binaire. Des particularités de la deuxième image de référence modifiée R2 sont identifiées à l'étape 13-9620A4. En général, le but de l'enlèvement d'arrière-plan est d'améliorer les particularités.
D'autres techniques d'amélioration de particularités sont également connues. Par exemple, si la particularité à extraire consiste en longues lignes droites, une amélioration de bord peut être exécutée sur l'image avant l'extraction des particularités.
La Figure 14 représente de façon plus détaillée un mode de réalisation d'extraction de particularités à partir d'une image de test T, à l'étape 9620B. Un niveau moyen d'arrière-plan de l'image de test T est calculé à l'étape 14-9620B1. Le niveau d'arrière-plan est enlevé des intensité de pixels de l'image de test T afin de produire une première image de test modifiée Tl à l'étape 14-9620B2. Les pixels de la première image de test modifiée Tl sont traités par effet de seuil à l'étape 14-9620B3 afin de produire une deuxième image de test modifiée T2, par exemple une image binaire. Des particularités de la deuxième image de test modifiée T2 sont identifiées à l'étape 14- 9620B4.
La Figure 15 représente de façon plus détaillée un mode de réalisation d'extraction de particularités à partir d'une image de référence R, à l'étape 9620A.
Un niveau moyen d'arrière-plan de l'image de référence R est calculé à l'étape 15-9620A1. Le niveau d'arrière-plan est enlevé de l'image de référence R à l'étape 15-9620A2. A l'étape 15-9620A3, un gabarit de particularités est ensuite mis en concordance, soit dans l'image de référence, soit dans l'image qui en résulte après enlèvement du niveau d'arrière-plan. Des particularités de l'image de référence qui sont en concordance avec le gabarit au-dessus d'un certain
<Desc/Clms Page number 34>
seuil, par exemple au-dessus d'une intensité moyenne prédéterminée, sont identifiées à l'étape 15-9620A4 comme particularités présentes dans l'image de référence.
La Figure 16 représente un autre mode de réalisation d'extraction de particularités à partir d'une image de test T, à l'étape 9620B. Un niveau moyen d'arrière-plan de l'image de test T est calculé à l'étape facultative 16-9620B1. Le niveau d'arrière- plan est enlevé des intensité de pixels de l'image de test T à l'étape 16-9620B2. A l'étape 16-9620B3, un gabarit de particularités est ensuite mis en concordance, soit dans l'image de test, soit dans l'image qui résulte de celle-ci après enlèvement du niveau d'arrière-plan. Des particularités de l'image de test qui sont en concordance avec le gabarit au- dessus d'un certain seuil, par exemple au-dessus d'une intensité moyenne prédéterminée, sont identifiées à l'étape 16-9620B4 comme particularités présentes dans l'image de test.
Les Figures 17A, 17B, 17C et 17D représentent un schéma logique d'une mise en application de détection de défauts à base de particularités, qui est cohérent avec la présente invention. En se référant en premier lieu à la Figure 17A, le processus débute à l'étape
1700. Il peut être mis en oeuvre sur un système informatique qui emploie un logiciel quelconque approprié de système d'exploitation, par exemple le . logiciel de système d'exploitation VxWorks, commercialisé par WindRiver Systems. A l'étape 1702, les paramètres d'opération sont téléchargés, c'est-à- dire qu'ils sont reçus par le processus, pour déterminer par exemple les images de référence et de test à comparer, les drapeaux, etc. A l'étape 1704 il est contrôlé s'il existe des images de référence à comparer à des images de test. Puisque le processus a
<Desc/Clms Page number 35>
débuté à l'instant, et qu'il existe au moins une image de référence à utiliser pour comparaison, la commande passe à l'étape 1706. A l'étape 1706, l'image de référence traitée préalablement est chargée pour être utilisée par le processus, par exemple à partir de la mémoire de masse 1708 ou du disque 1710. La mémoire de masse est une grande mémoire vive à haute vitesse. A l'étape 1712, un contrôle est effectué pour assurer que l'image de référence est chargée. Dans le cas contraire, il est rendu compte, à l'étape 1714, de l'absence d'image de référence, et la commande passe à l'étape 1770 (Figure 17D). Si la réponse est positive, il est contrôlé à l'étape 1716 si d'autres images de test doivent être traitées.
En se référant à l'étape 1716 de la Figure 17B, si aucune autre image de test n'est à traiter, la commande passe à l'étape 1770, de la Figure 17D. Si une autre image de test doit être traitée, l'image de test est chargée à l'étape 1718 à partir d'une source 1720 d'images réelles, par exemple un tampon d'exploration d'image, ou à partir d'une source 1722 d'images mémorisées comme une mémoire de masse. A l'étape 1724, il est contrôlé si l'image de test est chargée. Dans le cas contraire, il est rendu compte, à l'étape 1726, de l'absence d'image de test et la commande passe à l'étape 1770, de la Figure 17D. Si la réponse est positive, il est contrôlé à l'étape 1728 de la Figure 17C si les images de test doivent être préalablement traitées. Si tel est le cas, un traitement préalable est effectué à l'étape 1730 et la commande passe à l'étape 1732. A l'étape 1732, il est contrôlé si les images de référence et de test sont déjà alignées. On remarque en effet que les images peuvent être alignées préalablement sur la base de l'exactitude et de la répétabilité de l'étage, ou en mettant en oeuvre un générateur analogique de
<Desc/Clms Page number 36>
balayage, comme dans le sous-système d'imagerie à faisceau électronique du système d'imagerie faisceau électronique IDS 10000 de Schlumberger, ou un générateur numérique de balayage ou "DSB". Si la réponse est positive, la commande passe à l'étape 1742. Dans le cas contraire, un alignement approximatif est effectué à l'étape 1734. A l'étape 1736, il est contrôlé si l'alignement approximatif est adéquat. Si tel est le cas, les paramètres d'alignement sont mis à jour à l'étape 1738 et, à l'étape 1740, ils sont sauvegardés dans un fichier et/ou envoyés à un ordinateur de commande, qui peut par exemple mettre en oeuvre un système d'exploitation en temps réel comme VxWorks de Windstar Systems, Inc. ou qui peut être un ordinateur à carte unique comme l'ordinateur Mizar à carte unique s'il n'existe pas de système d'exploitation en temps réel, et la commande passe à l'étape 1742. A l'étape 1742, il est contrôlé si la qualité de l'alignement approximatif est bonne.
Si tel est le cas, un drapeau est placé à l'étape 1744 : il s'agit d'un drapeau "aligné" si un générateur analogique de balayage est utilisé, ou d'un drapeau "DSB aligné" si un générateur de balayage numérique est utilisé. A l'étape 1746, il est contrôlé si les images doivent être alignées finement. Dans le cas contraire, la commande passe à l'étape 1750 de la Figure 17D. Si la réponse est positive l'alignement des images de test et de référence est exécuté à l'étape 1748 et la commande passe ensuite à l'étape 1750 de la Figure 17D.
En se référant à la Figure 17D, des particularités sont extraites de l'image de test 1750 et mémorisées dans la mémoire locale à l'étape 1752.
Des particularités de l'image de référence sont restituées de la mémoire locale à l'étape 1754 et sont mises en concordance avec les particularités de
<Desc/Clms Page number 37>
l'image de test à l'étape 1756. A l'étape 1758, des particularités sont comparées pour trouver des défauts. Les défauts sont mémorisés à l'étape 1760, par exemple dans une mémoire locale. Une "image de défauts" est calculée à l'étape 1762, par exemple une image binaire ou une image d'échelle des gris qui représente les défauts identifiés à l'étape 1758. Des résultats de défauts sont calculés à l'étape 1766, par exemple une information statistique concernant la nature et les quantités de défauts. Les résultats de défauts sont mémorisés à l'étape 1768, par exemple dans une mémoire de masse. A l'étape 1770, un compterendu mis à jour de défauts est préparé. Des résultats et des images de défauts sont mémorisés dans la mémoire de masse à l'étape 1772 et/ou dans une mémoire à disque à l'étape 1774.
Les Figures 18A à 18H illustrent une extraction de particularités par application d'effet de seuil d'une manière cohérente avec la présente invention.
Dans cet exemple, seuls des pixels dont la valeur d'intensité est supérieure à un niveau de seuil sont considérés comme faisant partie d'une particularité. A la Figure 18A, une image 1800 d'échelle de gris contient un champ de particularités de contact, par exemple des particularités 1805 qui apparaissent "brillantes" par rapport à l'intensité de l'arrièreplan. A la Figure 18B, une observation tridimensionnelle de l'image en 1810 montre le champ de particularités, leurs intensités de pixels étant tracées dans la troisième dimension. Un plan 1815 qui passe par les particularités représente un seuil à appliquer aux intensités de pixels. La Figure 18C est un tracé le long d'une ligne qui coupe une rangée de particularités, en représentant l'intensité d'échelle des gris des pixels. Un seuil d'intensité de pixels en 1820 représente la manière dont des régions à
<Desc/Clms Page number 38>
particularités et sans particularités peuvent être directement séparées dans cette image. Des bords d'une particularité 1825 sont vus en 1830 et 1835. Le niveau du seuil affecte l'emplacement où les bords de la particularité sont définis. La Figure 18D représente les particularités de la Figure 18C après effet de seuil. La Figure 18E représente une image résultante dans laquelle les particularités sont définies par des pixels à valeur binaire. L'image résultante de la Figure 18E est combinée avec l'image d'échelle des gris de la Figure 18A, par exemple par une opération d'analyse de particularités d'image, appelées parfois dans l'art et en particulier dans ce document des blobs selon le terme anglo-saxon, ou en utilisant la topologie de particularités binaires identifiées comme masque, de manière à produire une liste de particularités d'images, ou blobs, qui définissent une image de sortie. Par exemple, l'opération d'analyse de blobs peut être réalisée par la bibliothèque d'imagerie Matrox en utilisant un ordre comme "matrox blob calculate(E,A,linked list of blob feature s)" ou, littéralement, calculer particularités d'images ou blobs de matrox (E, A, liste liée de particularités de particularités d'images ou blobs) où E et A sont des données d'entrée qui représentent les images des Figures 18E et 18A, respectivement. La Figure 18F représente l'aspect que pourraient présenter les particularités de la Figure 18D après une analyse de particularités d'images ou blobs et une assignation de numéros de particularités comme Tl à T3. La Figure 18G est une image de sortie qui représente les particularités identifiées Tl à T6. La Figure 18H représente une structure de données, produite par l'opération d'analyse de particularités d'images ou blobs, qui identifie les particularités par numéros de particularités et par propriétés de
<Desc/Clms Page number 39>
particularités, par exemple la position x, y dans l'image, la superficie et l'intensité. Les propriétés des particularités peuvent être comparées, mémorisées et analysées à volonté.
Il s'est avéré que l'application d'un effet de seuil fonctionne bien dans certaines situations, par exemple pour des contacts très sombres sur un arrièreplan gris. Mais l'application d'un effet de seuil souffre de limites, par exemple lorsque cette opération se fie à un opérateur humain pour fixer un seuil approprié et/ou lorsque le niveau de gris de la particularité concernée est semblable à celui d'un arrière-plan et que la particularité ne peut être identifiée que par des variations d'intensité aux bords des particularités. On peut éviter de se fier à un opérateur humain en utilisant un effet de seuil adaptatif, dans lequel les valeurs de seuils ne sont pas fixes mais peuvent varier sur l'image. Ceci peut être utilisé pour remédier à des différences de contraste dans une image dues à des effets comme une charge de surface du spécimen dans une image de contraste de tension, ou comme des différences d'éclairage dans une image optique. Le seuil adaptatif ou variable peut être déterminé, par exemple en utilisant un déport fixe par rapport au niveau de gris moyen local ou par rapport à un niveau d'arrière-plan local déterminé pendant l'enlèvement de l'arrièreplan. Un avantage de l'approche par seuil adaptatif consiste en ce qu'elle s'adapte à des variations de niveaux de gris dues à une charge non uniforme de l'arrière-plan isolant - un problème classique dans le cas de systèmes à faisceaux à particules chargées.
Les Figures 22A à 22C illustrent une extraction de particularités par application d'effet de seuil adaptatif d'une manière cohérente avec la présente invention. La Figure 22A représente un profil 2205
<Desc/Clms Page number 40>
d'une image de contraste de tension pour un substrat configuré comportant des orifices de contact qui apparaissent sous forme de zones sombres ou d'un contraste d'arrière-plan non uniforme ou progressif.
Le profil 2205 est un tracé de contraste d'image dans la direction x le long d'une ligne qui coupe trois orifices de contact. Le contraste d'arrière-plan non uniforme ou progressif peut résulter, par exemple, d'une charge non uniforme de matière diélectrique. Les dépressions 2210,2215 et 220 du profile 2205 représentent, respectivement, des orifices de contact.
A titre d'illustration, la Figure 22A représente aussi un seuil fixe non adaptatif 2225. Des limitations du seuil fixe peuvent être vues à partir de la représentation binaire 2230 dont le niveau varie à chaque point où le profil 2205 croise le seuil 2225, mais qui ne représente pas exactement les emplacements des orifices de contact. La Figure 22B représente un profil 2235 à seuil adaptatif créé par lissage du profil 2205. La Figure 22C représente le profil 2235 de seuil adaptatif superposé au profil 2205.
L'avantage d'un seuil adaptatif peut être vu à partir de la représentation binaire 2240 dont le niveau varie à chaque point où le profil 2205 croise le seuil 2235, et qui représente exactement les emplacements des orifices de contact.
Une mise en concordance de modèle d'image peut être utilisée en substitution à des techniques de seuil, ou en combinaison avec elles. C'est un modèle de la particularité à extraire qui est utilisé, au lieu de l'intensité d'image, pour identifier les emplacements où les particularités se trouvent. Un exemple simple de ce procédé consiste à corréler le modèle de particularité avec l'image afin de produire une image de corrélation. L'image de corrélation est traitée par effet de seuil afin d'identifier des
<Desc/Clms Page number 41>
particularités, en utilisant un seuil de niveau de corrélation au lieu d'un seuil de niveau d'intensité.
Des bords de la particularité dans l'image sont ensuite détectés en utilisant des techniques de mises en concordance de configurations. Des techniques de mise en concordance de configurations sont par exemple connues par le document de R. Haralick et al. Computer and Robot Vision, c'est-à-dire Informatique et vision robotique, Vol. II, Addison Wesley (ISBN 0-201-56943- 4) dont le contenu est incorporé ici par cette référence. Des programmes de logiciels de concordance de configurations sont commercialisés dans les Matrox Imaging Libraries, ou Bibliothèques d'imagerie de Matrox, de Matrox Limited, et dans le logiciel PatMax de la Cognex Corporation. Il est possible aussi d'utiliser une mise en concordance synthétique de modèles dans laquelle le modèle n'est pas un modèle d'image physique mais est au contraire constitué de configurations géométriques simples, par exemple des rectangles, des cercles, des anneaux, des lignes, qui peuvent se combiner pour former un modèle idéalisé, synthétique, de la particularité à mettre en concordance. Un exemple d'un modèle synthétique peut être un tore construit à l'aide d'un anneau sombre et d'un cercle brillant plus petit. La mise en concordance avec le modèle comprendrait trois étapes dans cet exemple : Trouver tous les "anneaux sombres" de l'image ; trouver tous les "cercles brillants" ; 3 trouver tous les "cercles brillants" à l'intérieur des "anneaux sombres". Selon ce procédé, une plage complète de particularités semblables à des tores peut être extraite sans qu'il soit nécessaire de connaître la relation exacte entre les parties claire et sombre de la particularité, en sachant seulement que la partie claire est à l'intérieur de la partie sombre.
<Desc/Clms Page number 42>
Les Figures 19A à 19G illustrent une extraction de particularités par mise en concordance avec le modèle, d'une manière cohérente avec la présente invention. A la Figure 19A, une image 1900 d'échelle des gris contient un domaine de particularités de contact comme des particularités 1905. Une particularité est sélectionnée comme modèle, la particularité 1910 par exemple. A la Figure 18B, une vue tridimensionnelle de l'image en 1915 représente le champ de particularités, leurs intensités de pixels étant représentées dans la troisième dimension. La Figure 19C représente un champ de particularités qui inclut une particularité 1920 à contact incomplet, ainsi qu'une particularité modèle 1925 superposée, pour corrélation. La Figure 19D est une vue de l'image de la Figure 19C prise le long de la ligne 19D-19D, représentant une corrélation de chaque particularité avec la particularité modèle 1925. Les pointes de corrélation 1930 et 1935 représentent une corrélation > 0,9. La pointe 1940 de corrélation ne montre qu'une corrélation partielle entre la particularité modèle 1925 et la particularité 1920 de contact incomplet. La Figure 19E est une image qui représente les centres de particularités pour lesquelles la corrélation avec la particularité modèle 1925 est supérieure à 0,9, comme les particularités 1945 et 1950. La zone marquée par une ligne 1955 en traits interrompus correspond à l'emplacement de la particularité 1920 de contact partiel, mais la particularité 1920 n'est pas représentée à la Figure 19E parce que sa corrélation avec la particularité modèle 1925 est inférieure à 0,9 et qu'elle est donc identifiée comme un défaut probable.
La Figure 19F représente les bords des particularités de la Figure 19E, par exemple après application d'une différentiation ou d'une autre
<Desc/Clms Page number 43>
technique d'amélioration de bords pour révéler des bords de particularités. Par exemple, un filtre de différentiation d'image ou, en d'autres termes, d'amélioration de bords peut être utilisé pour accentuer des bords dans une image. Des particularités peuvent ensuite être extraites en déterminant les maxima et les minima locaux à partir de l'image différenciée. Des limites enfermées par ces contours de maxima et de minima sont les limites de la particularité concernée et peuvent être utilisées pour construire la liste de particularités. La Figure 19G représente un processus d'extraction de particularités à partir de l'image d'origine, par exemple l'image de la Figure 19A, en utilisant l'information de centres de la Figure 19E et l'information de bords de particularités de la Figure 19F. En connaissant le centre 1960 et le bord 1965 d'une particularité, un groupage de pixels 1970 provenant de l'image de la Figure 19A, qui sont à l'intérieur de la limite du bord 1965 et sont centrés en 1960, est pris comme définissant la particularité. Le processus d'extraction de la Figure 19G est répété pour chaque particularité détectée afin de préparer un tableau ou une liste de particularités pour comparaison. Les listes peuvent être sensiblement semblables à celle qui est représentée, par exemple, à la Figure 18H.
Des techniques décrites ici se sont révélées adaptées à une automatisation de la détection de défauts dans des champs d'orifices métallisés remplis de tungstène dans un processus à 0,25 um sur une tranche semi-conductrice. Puisque la configuration est répétitive, l'oeil humain peut très facilement détecter des orifices métallisés manquants ou partiels. L'automation à l'aide d'une technique de soustraction de pixels sur une telle image conduit à une image bruyante de différence en raison de
<Desc/Clms Page number 44>
différences subtiles et non significatives entre l'arrière-plan et les bords des contacts, et amène à rendre compte d'un grand nombre de défauts de nuisance. Le taux de défauts de nuisance est typiquement tellement élevé que du personnel doit visualiser presque 100% des images, ce qui rend virtuellement inefficace le processus de détection automatique de défauts qui utilise des différences de l'art antérieur à base de pixels. En revanche, des techniques de détection qui sont basées sur des particularités et sont cohérentes avec la présente invention ont été trouvées pour identifier des traversées qui sont partielles ou manquantes, comme des orifices métallisés ou des contacts, sans exiger d'intervention humaine et avec des comptes-rendus faibles ou nuls de défauts de nuisance.
Des détails d'implantation additionnels de détection de défauts à base de particularités, cohérents avec la présente invention sont joints en annexes. L'annexe A est une liste de flux d'un algorithme. L'annexe B est une liste en pseudo-code utile pour détecter des contacts et orifices traversants métallisés défectueux. Certains blocs des annexes A et B peuvent être mis en application et exécutés en parallèle, ou un ordre inverse, sans modifier le résultat. Les annexes C, D, E, F et G, constituent un code de logiciel écrit en langage C++ utilisable pour mettre en application un système de détection de défauts à base de particularités, cohérent avec la présente invention. L'annexe C est un segment de programme principal pour traiter des contacts et exécuter un alignement, et elle appelle les segments de code des annexes D, E, F et G.
L'annexe D est un segment de code de chargement d'une image à partir d'un disque, et de lissage de celle-ci au moyen d'une convolution avec un noyau gaussien pour
<Desc/Clms Page number 45>
réduire le bruit. L'annexe E est un segment de code qui met en application un algorithme d'alignement d'image. L'annexe F est un segment de code destiné à mettre en application un sous-programme de corrélation pour l'algorithme d'alignement d'image de l'annexe E. Le segment de code de l'annexe F pourrait être remplacé, par exemple, par un sous-programme comme le logiciel PatMax commercialisé par la Cognex Corporation. L'annexe G est un exemple d'un segment de code destiné à une extraction de particularités et une mise en concordance cohérentes avec la présente invention.
Les termes utilisés ici doivent être compris selon les significations suivantes: Substrat configuré : tranche semi-conductrice ou un masque de photolithographie. Alors que des exemples de descriptions sont donnés en référence à des tranches semi-conductrices configurées, les techniques décrites peuvent également être appliquées à des particularités d'une image d'un masque de photolithographie acquise au moyen de la technologie appropriée d'imagerie, par exemple un système d'imagerie à faisceau électronique à commande appropriée de charge.
Configuré : qui porte une configuration. La configuration peut représenter n'importe quoi, y compris, sans que ceci soit limitatif, des structures initiales de diffusion de puits, des contacts, des orifices métallisés, des structures de grilles en silicium polycristallin, des interconnexions locales, des interconnexions métalliques en aluminium ou en cuivre, des plans de puissance, des pastilles d'attache et des combinaisons de ceux-ci. La configuration peut également représenter des particularités comme des tranchées damascènes doubles dans des oxydes ou d'autres matières diélectriques.
<Desc/Clms Page number 46>
Des configurations peuvent également représenter une résine photosensible comme dans une image classique ou topographique de microscope à balayage électronique.
Image : un réseau de pixels ou de données de pixels représentant un objet. Le réseau peut, sans que ceci soit limitatif, être un réseau bidimensionnel à pixels de dimensions et d'espacements uniformes où la dimension de pixel est inférieure aux particularités en cours d'imagerie, par exemple de 2 à 5 pixels transversalement à une particularité. L'espacement des pixels d'une image peut être non uniforme, par exemple lorsque l'espacement des pixels dans une direction est égal à de nombreuses fois l'espacement du pixel dans la direction orthogonale, comme les explorations linéaires décrites dans la demande de brevet des Etats Unis également en attente, N de série 09/012 277 (Bordereau de mandataire 65.0255P1) ou des segments d'explorations linéaires. Des images peuvent également être tridimensionnelles, par exemple des images tomographiques.
Image de contraste de tension : image dans laquelle le signal d'intensité, par exemple d'intensité de pixel, est une fonction de la tension ou du potentiel électrique sur la surface de l'objet en cours d'imagerie, par exemple une tranche semiconductrice configurée ou un masque configuré de photolithographie. La fonction est idéalement linéaire, mais est généralement non linéaire. La fonction est typiquement, mais non nécessairement, monotone.
Image de référence : image utilisée pour comparaison avec une image de test. Une image de référence peut être une image d'une autre microplaquette ou cellule ou bloc, soit de la même tranche, soit d'une tranche différente. Ce peut être l'image d'une microplaquette ou d'une cellule ou d'un
<Desc/Clms Page number 47>
bloc de qualité connue, par exemple une microplaquette ou cellule ou bloc dite "d'or", c'est-à-dire d'une qualité servant de norme, ou d'une qualité inconnue, par exemple si une image d'une troisième microplaquette ou cellule ou bloc doit être utilisée pour arbitrage. Son grossissement peut être le même que celui d'une image de test à laquelle elle sera comparé, ou lui être similaire, ou être quelconque. Il peut s'agir d'une image de contraste de tension ou d'un autre type d'image, par exemple une image de faisceau ionique focalisé (FIB selon les initiales du terme anglo-saxon Focussed ion beam), une image de microscope à force atomique (AFM selon les initiales du terme anglo-saxon Atomic force microscope), une image de microscope à balayage électronique (SEM selon les initiales du terme anglo-saxon Scanning electron microscope) topographique, ou une image préparée à partir d'une base de données par conception assistée par ordinateur (CAD selon les initiales du terme anglo-saxon Computer aided design). Une image de référence peut en variante être une structure de données qui contient une liste de particularités et leurs propriétés correspondantes : emplacement,dimensions, configuration, intensité, mise à la masse ou flottante, et autres propriétés comme une connectivité.
Image de test : image acquise à partir d'un échantillon physique à inspecter, par exemple une tranche semi-conductrice configurée ou un masque configuré de photolithographie pour comparaison avec une image de référence. Une image de test peut être une image d'une microplaquette ou d'une cellule ou d'un bloc. Ce peut être une image à contraste de tension ou un autre type d'image comme une image de faisceau ionique focalisé (IFB), une image de microscope à force atomique (AFM) ou une image de
<Desc/Clms Page number 48>
balayage de microscope à balayage électronique (SEM) topographique.
Extraire des particularités : une image, qui est un réseau de pixels ou des données de pixels, en une liste de particularités représentée comme structure de données, par exemple une liste liée. Des parasites de l'objet physique en cours d'inspection, qui sont représentés comme collections de pixels voisins dans une image, sont représentés après extraction par des propriétés du parasite. Des particularités peuvent être par exemple des contacts ou des orifices de contact ou des conducteurs et/ou d'autres structures physiques d'une tranche semiconductrice configurée. Des propriétés peuvent être, sans que ceci soit limitatif, des mesures comme le diamètre, la superficie, l'intensité et la position de la particularité représentée dans l'image, et d'autres mesures connues dans le domaine de l'analyse de particularités d'images ou blobs. Une liste non limitative d'exemples de propriétés qui peuvent être calculés est donnée par la Matrox Imaging Library Command Reference, Version 3.1, Manuel N 10368-MS- 0310, Matrox Electronic Systems Ltd. Une extraction peut employer des techniques à effet de seuil ou sans effet de seuil.
Mettre en concordance des particularités : ou agencer par paires des particularités extraites d'images de test de référence. Les particularités sont mémorisées ou représentées en tant que structures de données, par exemple des listes liées, qui ne listent pas nécessairement les particularités dans le même ordre, dans la liste pour l'image de test et dans la liste pour l'image de référence. L'ordre d'extraction de particularités peut varier en fonction de divers facteurs, y compris l'erreur relative de position des étages. Des particularités des images de test et de
<Desc/Clms Page number 49>
référence ne peuvent donc pas être mises en concordance par superposition de la structure de données. Une mise en concordance est donc basée sur un emplacement physique de la particularité, par exemple un emplacement de coordonnées x, y, corrigé au besoin pour un déport d'alignement d'image, par exemple en utilisant le résultat d'un algorithme d'alignement d'image. Une mise en concordance prend en compte des particularités qui sont manquantes dans une image, soit parce qu'elles sont en dehors du champ de vision, par exemple en raison d'erreurs d'étage, soit parce qu'elles sont dues à des erreurs de traitement de tranche, c'est-à-dire à des défauts.
Comparer des particularités afin d'identifier des défauts : lorsque des particularités ont été extraites, calculer une ou plusieurs propriétés de particularités dans un processus de calcul et comparer des valeurs de propriétés calculées. Des propriétés peuvent inclure, sans que ceci soit limitatif, les dimensions, la configuration, l'intensité moyenne qui est particulièrement avantageuse pour réduire le bruit dans des images à faisceau électronique limitées à un bruit de grenaille, le centre de gravité, le diamètre, la superficie et l'écart-type. Une propriété ou une combinaison de propriétés peut être comparée, et un compte-rendu de défauts est effectué si les particularités des propriétés diffèrent d'une ampleur prédéterminée. La comparaison peut être une opération numérique comme une soustraction, un rapport, une fonction plus grand que ou plus petit que, ou une autre comparaison mathématique. Combiner des propriétés peut augmenter la sensibilité de détection de défauts sans augmenter le taux de défauts de nuisance : par exemple, la somme de tous les pixels dans une particularité combine une mesure d'une superficie et d'une intensité moyenne et est
<Desc/Clms Page number 50>
particulièrement avantageuse pour détecter un défaut dont le résultat est une modification subtile de niveau de gris mais aussi, comme c'est le cas pour des contacts ou des orifices traversants, une modification de la dimension apparente de la particularité. Une autre approche consiste à calculer des statistiques sur les différences entre propriétés, par exemple une moyenne, un écart-type, et/ou une régression linéaire.
Des propriétés dont les différences sont supérieures, par exemple, à deux écarts-types de la répartition de différences font l'objet d'un compte-rendu de défauts. Un tel seuil adaptatif évite de déterminer une limite fixe de sorte que le seuil est adaptatif à l'intérieur d'une plage souhaitée de signification statistique. La moyenne et les écarts-types de différences de particularités sont eux-mêmes des mesures de densité de défaut. Si une régression linéaire est utilisée, des écarts statistiques par rapport à la régression linéaire peuvent aussi être utilisés pour mesurer une densité de défauts.
Niveau d'arrière-plan (enlèvement de l'arrièreplan): certaines images de contraste de tension ne présentent pas un contraste uniforme. L'absence d'uniformité peut provoquer de faux défauts si de simples algorithmes de soustraction de pixels sont utilisés sans enlever le niveau d'arrière-plan, c'est- à-dire sans le soustraire ou le normaliser. Des particularités d'une tranche semi-conductrice sont typiquement des conducteurs, par exemple des fils, des orifices métallisés ou des contacts, et la zone qui entoure ces particularités est typiquement diélectrique, par exemple en SI02. L'arrière-plan est la zone de l'image comprise entre des particularités et représente un diélectrique. Des parasites de charge non uniforme provoquent parfois un potentiel de surface légèrement différent et donc un niveau
<Desc/Clms Page number 51>
d'intensité d'arrière plan qui varie dans l'image.
Enlever ou normaliser le niveau d'arrière-plan améliore la robustesse de l'extraction des particularités.
Gabarit de particularités : particularité, par exemple un contact, utilisée pour aider dans une extraction de particularités. Par exemple, la théorie des filtres mis en concordance peut être utilisée pour extraire, d'une image, des particularités d'un type particulier en appliquant un filtre dont la réponse d'impulsions est la même que celle du type de particularités à extraire ou lui est semblable. Des particularités sont identifiées là où il existe, entre une particularité de l'image et le gabarit de particularité, une forte corrélation ou un maximum par différentiation dans la réponse de corrélation. Après avoir ainsi identifié une particularité comme se corrélant avec le gabarit de particularité, ses dimensions peuvent être extraites en utilisant un effet de seuil ou en calculant la dérivée seconde et en utilisant les maxima de gradients pour déterminer les dimensions. Par exemple une image d'un contact est corrélée avec une image qui contient de nombreux contacts. Les contacts sont identifiés en tant que tels en raison de la corrélation élevée avec le gabarit de particularité.
Arbitrage : une comparaison peut être exécutée entre une image de référence et une image de test, de la manière exposée ci-dessus. L'image de référence peut être celle d'une microplaquette à moindre probabilité de défaut que l'image de test : exemple une microplaquette proche du centre d'une tranche peut être utilisée comme image de référence parce que sa probabilité de défauts est moindre que pour une microplaquette proche du bord d'une tranche. La microplaquette de test est dans une zone qui risque
<Desc/Clms Page number 52>
davantage de présenter des défauts. Mais il est cependant possible que la microplaquette de référence présente des défauts. Il n'est alors généralement pas possible de déterminer sans ambiguïté l'image qui est défectueuse, et il peut falloir une troisième image pour arbitrage. Un arbitrage peut être combiné avec le processus de détection de défauts ou être exécuté en tant que processus ultérieur. Dès lors qu'un défaut est détecté par comparaison entre une image de référence et une image de test, un arbitrage est exécuté par comparaison avec une troisième image, ou avec une troisième cellule dans le cas d'une comparaison de cellule à cellule dans un mode en réseau, pour déterminer si c'est l'image de référence ou l'image de test qui souffre du défaut. Dans l'image en réseau, des particularités sont extraites et comparées aux particularités correspondantes des cellules voisines de la même image. Aucun arbitrage n'est nécessaire lorsque l'image de référence est engendrée par une base de données de conception assistée par ordinateur, par exemple.
Un exemple de fonctionnement en mode en réseau est illustré aux Figures 23A à 23D et à la Figure 24.
Le fonctionnement en mode en réseau bénéficie de la nature répétitive de structures comme les cellules de mémoire. En mode en réseau, une structure répétitive comme une cellule de mémoire est comparée à sa voisine pour trouver des défauts. Dans l'exemple des Figures 23A à 23D, l'image de test peut être une cellule voisine, par exemple une cellule adjacente. Un fonctionnement en mode en réseau peut être mis en application de nombreuses manières, par exemple en décalant d'une cellule l'image ou en utilisant un sous-programme qui met des particularités en concordance, sur la base d'une répétition de cellules comme dans le schéma logique de la Figure 24. La
<Desc/Clms Page number 53>
Figure 23 représente un exemple d'une cellule répétitive 2305 à plusieurs particularités comme des contacts et des orifices de contact. La Figure 23B représente une image dans laquelle la cellule de la Figure 23A devrait être répétée sans erreur. Des particularités semblables provenant de cellules voisines comme les cellules 2310 et 2315 peuvent être comparées pour identifier des défauts. Il manque un contact dans la cellule 2320, comme indiqué en 2325, et ceci devrait être détecté comme défaut. La Figure 23C représente l'image de configurations de cellules de la Figure 23B qui se répètent, où un contact manque à la cellule 2320. La Figure 23D représente la même image, décalée d'une cellule vers la droite, afin de faciliter une comparaison entre la cellule 2330 et la cellule 2320.
La Figure 24 est un schéma logique d'un procédé en mode en réseau pour exécuter une comparaison de cellule à cellule afin de détecter des défauts. En mode en réseau, un double comptage de défauts se produit parce que chaque cellule est impliquée dans deux comparaisons : fait, l'une avec le côté gauche et l'autre avec le côté droit. Un défaut de particularité apparaît par exemple comme particularité additionnelle dans l'une des comparaisons, et apparaît comme particularité manquante dans la comparaison suivante, l'un et l'autre pouvant faire l'objet d'un compte-rendu erroné en tant que défaut si aucun arbitrage, au sens exposé précédemment, n'est utilisé pour identifier la cellule qui présente le défaut réel. Le procédé débute à l'étape 2410. A l'étape 2420, une image de la structure répétitive en réseau est acquise, ou en variante restituée à partir de la mémoire principale ou d'une autre mémoire si elle est déjà acquise. A l'étape 2430, le bruit de l'image acquise ou restituée est réduit, par exemple par
<Desc/Clms Page number 54>
lissage. A l'étape 2440, des particularités sont extraites de l'image. A l'étape 2450, la mise en concordance de particularités de cellule à cellule est exécutée en utilisant un déport répété, égal à une cellule chaque fois. A l'étape 2460, les particularités mises en concordance sont comparées. A l'étape 2470, un arbitrage est exécuté facultativement pour éliminer un double comptage de défauts résultant du décalage de cellule effectif dans des directions alternées. A l'étape 2480, des particularités sont comparées et des comptes-rendus de défauts sont effectués. L'étape 2490 renvoie la commande à l'étape 2420 pour répéter le processus pour des images additionnelles. Le procédé se termine lorsque le traitement de toutes les image est achevé.
Des systèmes d'imagerie par faisceau électronique comme le système de la Figure 2 sont commandés par un processeur à mémoire de données. Des procédés cohérents avec la présente invention peuvent être mis en oeuvre en amenant le processeur à exécuter un code d'application, c'est-à-dire un ensemble d'instructions lisibles par un ordinateur, incorporé sous une forme quelconque de produit programme informatique. Un produit programme informatique comprend un support qui est configuré pour mémoriser ou transporter un code lisible par ordinateur, ou dans lequel un code lisible par ordinateur peut être incorporé. Certains exemples de produits programmes informatiques sont des disques compacts CD-ROM, des cartes de mémoire morte, des disques souples, des bandes magnétiques, des unités de disques d'ordinateur, des serveurs sur un réseau, et des ondes porteuses. Des fonctions de comparaison décrites ici peuvent à volonté être exécutées dans le processeur d'un système d'imagerie à faisceau électronique ou dans d'autres systèmes informatiques.
Les systèmes décrits ci-dessus ne le sont qu'à titre
<Desc/Clms Page number 55>
d'exemple. Un mode de réalisation cohérent avec l'invention peut être mis en application dans un système de faisceau de particules chargées qui inclut un type quelconque de système informatique ou d'environnement de programmation ou de traitement.
Des procédés destinés à extraire des particularités à partir d'images ne sont pas limités aux exemples décrits ici. Tous procédés appropriés connus dans l'art peuvent être utilisés de la manière adaptée. Des techniques d'extraction, d'analyse et d'identification de particularités d'image, appelées parfois aussi dans l'art des "blobs" comme déjà précisé précédemment, utiles pour mettre en application des procédés et des appareils cohérents avec la présente invention sont bien connus, et des bibliothèques d'instructions informatiques pour la mise en application de telles techniques sont commercialisées. L'exemple d'une telle bibliothèque est la Matrox Imaging Library, c'est-à-dire la Bibliothèque d'imagerie Matrox, par exemple selon sa version 3. 1, commercialisée par Matrox Electronic Systems Ltd. et possédant une fonctionnalité décrite dans le Manuel "Command Référence", de Matrox, référence N 10368-MS-0310.
En général, une extraction de particularités est utilisée pour identifier et localiser toutes les apparitions d'une particularité spécifique dans une image. Une image est explorée et seules les configurations de l'image qui sont semblables à la particularité spécifiée sont extraites. Ceci permet de séparer l'image en deux types de régions : la particularité et sans la particularité. Seules les régions à particularités doivent être traitées et analysées quant à des défauts. De plus, des propriétés des particularités, ou des propriétés comme la superficie, les dimensions, l'emplacement etc.,
<Desc/Clms Page number 56>
peuvent être calculées, analysées et comparées pour trouver des défauts. Il existe de nombreuses techniques de traitement d'image qui peuvent être utilisées pour identifier des particularités dans une image de contraste de tension, par exemple un simple effet de seuil d'image, un effet de seuil adaptatif d'image, une mise en concordance de modèle d'image, une mise en concordance avec un modèle synthétique, et une amélioration de bord comme une différentiation. En général, des techniques d'extraction de particularités sont basées sur un effet de seuil de valeurs d'intensités de pixels, une détection de bord de particularités, ou des combinaisons d'effet de seuil et de détection de bord.
Dans le cas d'un simple effet de seuil d'image, l'intensité d'échelle des gris de l'image est utilisée pour segmenter l'image en particularités et nonparticularités. Des régions de l'image dont l'intensité est la même, ou qui sont dans la même plage d'intensité, sont groupées entre elles en blobs . Chaque blob est ensuite pris pour représenter une particularité extraite de l'image. Tout le reste de l'image est considéré comme "arrière-plan" ou nonparticularité. Dès lors que la particularité a été extraite, les propriétés de la particularité peuvent être calculées, par exemple son emplacement et sa superficie, son intensité moyenne, sa somme d'intensité, etc. Ces propriétés peuvent être utilisées pour caractériser la particularité et peuvent être comparées aux propriétés d'autres particularités extraites.
Il existe un compromis entre l'exactitude de positionnement de l'étage et l'alignement d'image.
Pour mettre exactement en concordance les particularités provenant des images de test et de référence, et d'arbitrage si elle est utilisée, les
<Desc/Clms Page number 57>
images doivent en général être alignées avec une exactitude suffisante pour que l'erreur d'alignement entre des images, lorsque les images sont superposées, soit inférieure, et de préférence sensiblement inférieure, à la moitié de la distance entre particularités de l'image. Si tel n'est pas le cas, les particularités ne peuvent pas être réunies de façon fiable par paires et une apparition de certaines discordances est probable, ce qui provoque des comptes-rendus de faux défauts, c'est-à-dire des erreurs induites par le système de détection de défauts. Des techniques d'alignement à base de particularités telles qu'elles sont décrites ici relâchent en principe cette contrainte d'alignement mais peuvent néanmoins être limitées par une répétition inhérente de configurations dans des configurations d'interconnexion de circuits intégrés, ou IC. L'exactitude d'alignement requise pour un alignement à base de particularités cohérent avec l'invention est cependant moins sévère que pour une différentiation à base de pixels, où l'erreur maximale acceptable d'alignement est typiquement sensiblement inférieure, c'est-à-dire < 20%, à la dimension de particularités dans les images et de préférence inférieure à un pixel unique.
Deux solutions pratiques au problème de l'alignement peuvent être utilisées : étage exact combiné avec un alignement préalable de la zone dont - l'imagerie est effectuée, ou un étage moins onéreux et moins exact avec des algorithmes de traitement d'image pour corriger les erreurs de l'étage. Des étages exacts de chambre de vide qui utilisent des interféromètres laser en vue d'une rétroaction de position sont bien connus et sont commercialisés par des sociétés comme la Anorad Corporation de Long
Island, New York. Des logiciels de traitement d'images
<Desc/Clms Page number 58>
à sous-programmes d'alignement d'images sont également commercialisés par de multiples sources, bien que certains de ces algorithmes produisent en pratique un taux inacceptable de défauts d'alignement lorsque les images sont déportées d'une ampleur importante, c'est- à-dire > 10% du champ de vision, ou si les particularités se répètent partiellement. La Cognex Corporation est un fournisseur majeur de logiciels de reconnaissance et d'alignement de configurations, par exemple des produits "PatMax" qui sont considérés comme étant robustes et fiables. Il existe cependant un certain taux résiduel d'erreur d'alignement, typiquement < 1%. Alors que l'approche à base d'algorithmes d'alignement d'image est moins onéreuse que la solution d'un étage de précision, elle impose des servitudes de calculs résultant des algorithmes d'alignement. Dans une mise en application expérimentale qui utilise un étage dont l'exactitude est de 1 à 2 um en combinaison avec des sousprogrammes d'alignement, le taux d'erreur d'alignement se révèle approximativement égal à 3%. Les inventeurs pensent que ceci peut être amélioré en utilisant le produit PatMax de la Cognex Corporation.
L'homme de l'art comprend que ces modifications ainsi que d'autres peuvent être effectuées à l'intérieur de l'esprit du cadre de l'invention définis dans les revendications.
<Desc/Clms Page number 59>
APPENDIX A
Voltage-Contrast-Image Feature-Based Defect Detection
Copyright 0 Schlumberger Technologies, Inc (this work is unpublished) Reference & Test Run Setup 1. Receive inspection Run parameters from VxWorks (i. e., which référence and test images to compare, flags, etc.) 2. Initialize Lens Set Alignment Parameters.
Reference Acquisition 1. Load Reference (R) image from DSB/memory/disk.
2. Preprocess R Image (for alignment):
IfSmooth Image Then
Smooth R image for alignment (Apply Gaussian 3x3 Smooth N times).
If Remove Background Then
Remove Background from R (specify Max Feature Size & Min Feature
Pitch).
If Normalize Image Then
Calculate intensity histogram of R image.
Calculate mean and variance of R image (excluding High % & Low % of histogram).
3. Extract Reference Features :
IfFixed Threshold Image then
Threshold R Image between Binary Threshold Low & High Bina
Threshold. forRef Feature Image.
*Else If Adaptive Threshold Image then
Adaptively Threshold R Image for Ref Feature Image (parameters TBD).
*Else If Template Match Image Then
Template Match R Image for Ref Feature Image (Template from Setup).
4. Compute Ref Feature Image :
Segment Ref Feature Image.
Merge nearby blobs (within Min. Defect Gap pixels) in Ref Feature Image.
<Desc/Clms Page number 60>
Remove small blobs (smaller than a certain Min Defect Width).
Compute Ref Features Properties (incl. Location, area, intensity, sum of intensity) 5. *If More Feature Properties Then
Compute rest ofFeature Properties (e g., moments, principle axes) 6. Save R & Ref Feature images and Feature Properties to memory/disk.
Test Acquisition 1. Load Test (T) image from memory/disk.
2. Preprocess T Image:
IfSmooth Image Then
Smooth T image for alignment (Apply Gaussian 3x3 Smooth N times).
IfRemove Background Then *Remove Background from T (using Max Feature Size & Min Feature Pitch).
If Normalize Image Then
Calculate intensity histogram of T image.
Calculate mean and variance of T image (excluding High % & Low % of histogram).
Normalize T image (with respect to mean & variance of R image).
3. *Align R and T images:
If Not DSB Aligned Then
Calculate Coarse Alignment offset between R and T (search Stage
Alignment Error pixels).
IfCoarse AlignImage is at Adequate Then
Update Lens Set Alignment Parameters with new alignment offset.
Send Lens Set Alignment Parameters to VxWorks.
IfCoarse Align Image is Good Then
Set DSB Aligned to True.
Translate T image to align with R image.
**Crop R & T images (because of alignment & Image Margins. if specified).
IfFine Align Image Then
CalculateFine Alignment offset between R and T (search Lens Set Alignment
Error pixels).
Translate T image to align with R image.
<Desc/Clms Page number 61>
**Crop R & T images (because of alignment & Image Margins, if specified). else IfAdaptive Fine AJign Image Then
Adaptively align T image with R image (within Lens Set Alignment Error pixels).
4. Extract Test Features:
IfFixed Threshold Image then
Threshold T Image between Binary Threshold Low & High Binary
Threshold. for Test Feature Image.
*Else IfAdaptive Threshold Image then
Adaptively Threshold T Image for Test Feature Image (parameters TBD).
*Else IfTemplate Match Image Then
Template Match T Image for Test Feature Image (Template from Setup).
5. Compute Test Feature Image :
Segment Test Feature Image.
Merge nearby blobs (within Min. Defect Gap pixels) in Test Feature Image.
Remove small blobs (smaller than a certain Min. Defect Width).
Compute Test Features Properties (incl. Location, area, intensity, sum of intensity) 6. *If More Feature Properties Then
Compute rest ofFeature Properties (e. g., moments, principle axes) 7. Match Features in R & T images:
Overlay R and T Features to find Common & Missing Features
Calculate Common Feature Image
Exclude Common Features that touch edge ofimages
Calculate Missing Feature Image
Exclude Missing Features that touch edge ofimage 8. Compare R & T Feature Properties:
Calculate Property Comparison statistics 9. Compute Defect Image :
For each Blob's Property Comparison that meets Defect Criteria
Save Feature Defect info
Add to Defect Image
If*Save Defect Images Then
Save Defect Image to bulk memory.
<Desc/Clms Page number 62>
10. Compute Defect Results:
Find the Find N/Find All worst defects that meet the Defect Criteria.
For each Defect Do
IfDisplayDefectsThen
Overlay defects in red on R & T (original/normalized/smoothed?) images.
Draw cross-hair at center(or area/boundingbox ?) of Report N/Report All largest defects on R& T.
Display overlaid R& T images side-by-side.
Report the total number of blobs found, theX & Y alignment, and the
Report N/Report All worst defects' found and locations (and rest of
TBD defect properties).
If*Save Defects Then
Save Defect Results & TBD (compressed? ) images to disk
Update Run Defect Report.
If more T images go to Step 4.
11. *Update Run Defect Report.
*12. Ifmore R images go to Step 1.
13. *Save Run DefectReport (to disk).
*/** Optional steps.
<Desc/Clms Page number 63>
APPENDIX B
Example of Feature-Based Defects Detection AJgorithm using Simple Thresholding for FeatureExtraction
Copyright 0 Schlumberger Technologies, Inc (this work is unpublished) // Begin Feature-based Defect Detection Algorithm.
Find Feature Defects:
If BGSubtractFlag Then
Remove Background From Reference Image (Reflmage) // Initialize data.
Create Reference Image Mask
Create Test Image Mask
Figure img00630001

// Find Contacts/Features/B lobs in Reference Image.
If Not BGSubtractFlag & BGNormalizeFlag Then
Remove Background From Reflmage
Extract Reference Blobsfrom Reference Image:
If SimpleThresholdMethod Then
Binarize Reflmage using Min & Max Threshold
IfAdaptiveThresholdMethod Then
Binarize Reflmage usingAdaptive Threshold
Else If CorrelateFeatureMethod
Correlate FeatureTemplate in Reflmage
Save Image as Corrélation Image
Find Peaks in Correlationlmage using Template Threshold
Segment Features in Reflmage using Template around Peaks in Correlationlmage
Else If SyntheticFeatureMethod
Find All Features in Reflmage that match SyntheticFeature
Save Image as SyntheticMatchlmage
Segment Features in Reflmage above SyntheticFeature
Threshold in SyntheticMatchlmage
<Desc/Clms Page number 64>
Remove Small Blobs in Blob Image
Merge Nearby Blobs in Blob Image
Save Image as RefBloblmage
Calculate Blob List from RefBloblmage
Save Blob List as RefBlobList //Align Grayscale Images, if required.
IfAlignGrayscalelmage Then
Find Best Corrélation between Reflmage and Test/mage within Search Area
Save Translation Offsets (or Translate Testlmage) // Now find Contacts/Features/Blobs in Test Image.
Extract Blobs from Test Image
Save Image as TestBloblmage
Save Blob List as TestBIobList //Align Blob Binary Images, if required.
IfAlignBloblmage Then
Find Best Binary Corrélation between RefBloblmage and TestBloblmage within Search Area
Save Translation Offsets (or Translate Test Images)
Else IfAlignBlobList Then
Find Best Robust Alignment between Blobs in RefBlobList and TestBIobList within Search Area
Save Translation Offsets (or Translate Test Images) // Find Ref Blobs not completely in Common Region.
Mask RefBloblmage with RefMask
Save Image as RefBorderBloblmage
Reconstruct Blobs from Reflmage only in RefBorderBloblmage
Save Image as RefBorderBloblmage
Il Now find Test Blobs not completely in Common Region.
Mask TestBloblmage with TestMask
<Desc/Clms Page number 65>
Save Image as TestBorderBloblmage Reconstruct Blobs from Testlmage only in TestBorderBloblmage Save Image asTestBorderBloblmage IlAdd Test Border Blobs to Ref Border Blob Image (and vice versa).
Add Border Blobs from TestBorderBloblmage to RefBorderBloblmage Save Image as RefBorderBloblmage Add Border Blobs from RefBorderBloblmage to TestBorderBloblmage Save Image as TestBorderBloblmage // Nowfind only Ref Blobs completely in Common Region.
Remove Blobs in RefBorderBloblmage from RefBloblmage Save Image as RefWholeBloblmage // Repeatfor Test Blobs completely in Common Region.
Remove Blobs in TestBorderBloblmage from TestBloblmage Save Image as TestWholeBloblmage Il Nowfindwhich Refand Test blobs intersect (i.e., overlap) Intersect RefWholeBloblmage and translated TestWholeBloblmage.
Save Image as SeedBloblmage // Find Ref Blobs in common.
Reconstruct Blobs from RefBloblmage only in SeedBloblmage Save Image as RefCommonBloblmage // Nowfind RefBlobs not in common (i.e., missing).
Remove Blobs in RefCommonBloblmage from RefWholeBloblmage Save Image as RefLonerBloblmage // Now repeat forTest Blobs...
// Find Test Blobs in common.
Reconstruct Blobs from TestBloblmage only in translated SeedBloblmage Save Image as TestCommonBloblmage // Nowfind Test Blobs not in common (i.e., missing).
<Desc/Clms Page number 66>
Remove Blobs in TestCommonBloblmage from TestWholeBloblmage
Save Image as TestLonerBloblmage // Remove all Blobs that don't meet Feature Properties Criteria.
// NOTE: This example uses minimum blob area as the single outlier criterion, but could use shape, maximum // size, moments, or any other appropriate set ofcriteria offeature properties or combination of properties.
Il Remove small Ref Common Blobs.
Remove Blobs from RefCommonBloblmage where Blobs < MinCommonBlobArea:
Extract Blob List from RefCommonBloblmage
Select only Blobs from Blob Listwith area ≥ MinCommonBlobArea
Make Blob Image from Blob List
Save Blob Image as RefCommonBloblmage // Remove small Test Common Blobs.
Remove Blobs from TestCommonBloblmage where Blobs < MinCommonBlobArea
Save Blob Image as TestCommonBloblmage // Remove small Ref Loner Blobs.
Remove Blobs from RefLonerBloblmage where Blobs < MinLonerBlobArea
Save Blob ListAs RefLonerBlobList
Save Blob Image as RefLonerBloblmage
Il Remove small Test Loner Blobs.
Remove Blobs from TestLonerBloblmage where Blobs < MinLonerBlobArea
Save Blob ListAs TestLonerBlobList
Save Blob Image as TestLonerBloblmage
Il Now have to recalculate Common Blobs (small blobs removed).
// Now find which Ref and Test blobs intersect (i.e., overlap)
<Desc/Clms Page number 67>
Intersect RefCommonBloblmage and translated TestCommonBloblmage.
Save Image as SeedBloblmage // Find new Ref Blobs in common.
Reconstruct Blobs from RefCommonBloblmage only in SeedBloblmage
Save Image as RefCommonBloblmage
Il Recalculate Ref Common Blob Statistics.
Calculate Blob List from RefCommonBloblmage
Save Blob List as RefCommonBlobList
Il Find newTest Blobs in common.
Reconstruct Blobs from TestCommonBloblmage only in translated SeedBloblmage
Save Image as TestCommonBloblmage // Recalculate Test Common Blob Statistics.
Calculate Blob Listfrom TestCommonBloblmage
Save Blob List as TestCommonBlobList // Now match and compare Common Blobs, and then Identify Outliers.
Find Blobs in Refand Test CommonBlobList that match
Save Blob List as MatchedBlobList
Calculate MatchedBlobListAggregate Statistics:
Calculate Refand TestAverages ofArea, Mean Intensity, Sum of Intensity, etc.
Calculate Refand TestVariances ofArea, Mean Intensity, Sum of Intensity, etc.
For each Blob in MatchedBlobList Do
Calculate Outlier Statistics for corresponding blob in RefCommonBlobList:
If NormalizeStatistics Then
Normalize Ref Statistics relative toAggregate Ref
Averages
Calculate Outlier Statistics forcorresponding blob in TestCommonBlobList
<Desc/Clms Page number 68>
Compare and calculate combined Outlier Statistics
If ComputeRatios Then
Compute Ratio as Outlier Statistics
Else If ComputeRegression
Compute Variance from Least Square Fit Line as Outlier Statistic
If Outlier Statistics meets Outlier Criteria Then
Mark corresponding Blob in RefCommonBlobList as Outlier
Mark corresponding Blob in TestCommonBlobList as Outlier
Add Blobs and Statistics to OutlierBlobList
Calculate Aggregate Statistics for Outlier Blobs // Only select Outlier Blobs to be saved and retumed for analysis.
If SelectOutliersOnly Then // First, select Refblobs.
Select in RefCommonBlobList only blobs that are in OutlierBlobList
Save Blob List as RefOutlierBlobList
Reconstruct Blobs from RefCommonBlobList
Save Blob Image as RefOutlierBloblmage // Do same forTest blobs.
Figure img00680001
Select in TestCommon B lob List only blobs that are in OutlierBlobList
Save Blob List as TestOutlierBlobList
Reconstruct Blobs from TestCommonBlobList
Save Blob Image as TestOutlierBloblmage Il Save Results.
// Save image (s) memory or disk.
If SavelmagesToDisk Then
Il Prepare Ref, Test and intermediate images to be saved.
Combine Ref and Test Outlier and Loner Blob images
Save Image as Defectlmage // Prepare defect blob lists to be saved.
Combine Ref and Test LonerBlobList Save Blob List as LonerBlobList
<Desc/Clms Page number 69>
Combine Outlier and Loner Blob Lists
Save Blob List as DefectBIobList
Combine DefectBlobList and Defect Statistics
Save in DefectReport // Display Results.
If DisplayOutliers Then
Display Defect Image(s)
Printout Defect Report // Done, so retum results.
Retum DefectReport // End Feature-based Defect Detection Algorithm.
<Desc/Clms Page number 70>
APPENDIX C
Main Program Segment
Copyright # Schlumberger Technologies, Inc. (this work is unpublished) #include "gui~ip h" #include "Parameters h" #include "defines.h"
Figure img00700001

void GUI~IPinterface: ProcessContacts(MillP* insituIP) { int loadRefFlag,IoadTestFlag, align2Flag, alignlFlag,align4Flag, align7Flag, alignlIFlag,align8Flag; intdoneFlag=NO; long Defects~reported; // insituIP->init(pCallingClass);
SetMilPara(insituIP); loadRefFlag = insituIP->IoadIFAImage2Reference(CurrentFov); Pause4User# ;
Figure img00700002

loadTestFlag = insituIP->loadIFAImage2Test(CurrentFov); Pause4User# ; if((loadRefFlag=YES)&&(loadTestFlag YES { doneFlag=NO; if (doneFlag=NO)
Figure img00700003

align4Flag= insituIP->alignTestToRef 4(); Pause4UserO; if (align4Flag=YES)
Figure img00700004

/rnsituIP->pause4User("align two images"); insituIP->findDefects 1#; Pause4UserQ;
<Desc/Clms Page number 71>
if(insituIP->fovReport.largestDefectSize < saveRpt largestDefectSize) // Disable this statement if this is the first algorithm saveRpt = insituIP->fovReport; //save better result;
Figure img00710001

iinsituIP->fovReport.largestDefectSize 50)doneFlag=NO, else doneFlag=YES; if (doneFlag==NO) {
Figure img00710002

align7Flag= insituIP->alignTestToRef 7(); Pause4User(); if (align7Flag==YES)
Figure img00710003

lrnsituIP->pause4User("align two images"); insituIP->findDefectsl #; Pause4UserO; if(insituIP->fovReport.largestDefectSize < saveRpt.largestDefectSize) // Disable this statement if this is the first algorithm saveRpt = insituIP->fovReport; //save better result; if(insituIP->fovReport.largestDefectSize >50)doneFlag=NO; else doneFlag=YES; if (doneFlag==NO) {
Figure img00710004

//Pause4Userfalignl 1: "); alignl IFIag = insituIP->alignTestToRef 11Q; Pause4UserO; if (align11Flag==YES) {
Figure img00710005

//tnsituI]P->pause4User( align two images"); insituIP->findDefects 1 ; Pause4UserO; if(insituIP->fovReport.largestDefectSize < saveRpt.largestDefectSize) saveRpt = insituIP->fovReport;
<Desc/Clms Page number 72>
Figure img00720001

if(insituIP->fovReport largestDefectSize >100)doneFlag=NO; else doneFlag=YES; } if (doneFlag==NO) {
Figure img00720002

//Pause4User("aJ ign8: "); align8Flag = insituIP->alignTestToRef 8(); Pause4UserO; if (align8Flag==YES) {
Figure img00720003

/nsituIP->pause4User("align two images"); insituIP->findDefects 1#; Pause4User(); if(insituIP->fovReport.largestDefectSize < saveRpt.largestDefectSize) saveRpt = insituIP->fovReport;
Figure img00720004

ifinsitulP->fovReport.largestDefectSize >100)doneFlag=NO; else doneFlag=YES; } } if (doneFlag==NO) {
Figure img00720005

a!ign2F!ag=insituIP->aIignTestToRef~2(); Pause4User# ; if (align2Flag==YES) {
Figure img00720006

//insituIP->pause4User("aIign two images"); insituIP->findDefects 1#; Pause4User# ; if(insituIP->fovReport.largestDefectSize < saveRpt.largestDefectSize) saveRpt = insituIP->fovReport; //save better result; if(insituIP->fovReport.largestDefectSize >150)doneFlag=NO; else doneFlag=YES; }
<Desc/Clms Page number 73>
if(doneFlag=NO) {
Figure img00730001

aItgnlFlag=insituIP->alignTestToRef~10; Pause4User(); if (alignlFlag==YES)
Figure img00730002

//insituIP->pause4User( align two images"); insituIP->findDefects1(); Pause4User(); if(insituIP->fovReport.largestDefectSize < saveRpt.largestDefectSize) saveRpt = insituIP->fovReport; //save better resuit,
Figure img00730003

//if(insituIP.fovReport.largestDefectSize >50)doneFlag=NO; //else doneFlag=YES; #endif /********contact stuffhere ********/ //Now do the Contact defect detection #definePIXEL DIFFERENCE MODE 0
Figure img00730004

#de6neFEATURE~RATIO~MODE ! Paus 4UserO; insituIP->fovReport.fovNo = saveRpt.fovNo; insituIP->fovReport.largestDefectSize = saveRpt.largestDefectSize; insituIP->fovReport.imageShiftX = saveRpt.imageShiftX; insituIP->fovReport.imageShiftY = saveRpt.imageShiftY; insituIP->fovReport.alingNo = saveRpt.alingNo; long IStatus = insituIP->FindContactDefects(insituIP); if(ThumbNail) insituIP->saveDefectImageO;
<Desc/Clms Page number 74>
Figure img00740001

int num~def= insituIP->ReportKLADefectList(fp Result,MaacDefects, &Defects~reported); insituIP->DeleteDefectList(); // JJUUNN add
<Desc/Clms Page number 75>
APPENDIX D
Acquire/Load and Smooth Test Image
Copyright # Schlumberger Technologies, Inc. (this work is unpublished) #include "Stdafx. h" #include "MilIP.h" #include <milsetup.h> #include <stdlib.h> #include <string.h> #include <mil.h> #include <math.h> #include <conio.h> #include <malloc.h> #include "guijp.h"
Figure img00750001

int MiIIP::IoadIFAImage2Test(long fovNumber)//enter the number represent #i.fov { fovReport.fovNo = fovNumber, charlongFileName[256], shortFileName[48]; strcpy(longFileName, testDirectory);
Figure img00750002

sprintf(shortFileName, "#i.fov%d",fovNumber); strcat(longFileName, shortFileName); int IdFIresult; Ids image fovInfo;
Figure img00750003

if((ldFlresult = ids image and header file load(longFileName, &fovlnfo, testImageArray)) = -1) returnNO; elseif(1dFlresult 1) {
MbufPut(milTestImage,testImageArray); displayTestImageQ; else if(ldFlresult 0) //noheader
<Desc/Clms Page number 76>
# {
Figure img00760001

MbufImport(longFileName,M RAW,M LOAD,MilSystem,&milTestImage); displayTestImage# ;
MbufGet(milTestImage, testImageArray); } if(1dFlresult != 0) //Ids header read; fill in fovReport Structure fovReport.fov.idNo = fovNumber; fovReport.fov.width = fovInfo width; fovReport.fov.height = fovInfo.height; fovReport.fov.mpp = fovInfo.mpp;
Figure img00760002

fovReport.fov.dieToCenterX = fovInfo.db fov center x; fovReport.fov.dieToCenterY = fbvlnfb.db~fbv~center; } else//Read raw image file; haven't tested this mode...
{ //No Ids header read ; setdefaults in fovReport Structure fovReport.fov.idNo = fovNumber, fovReport.fov.width = ImageWidth; fovReport.fov.height = ImageHeight; fovReport.fov.mpp = 1.0; fovReport.fov.dieToCenterX = 0.0; fovReport.fov.dieToCenterY = 0.0; }
Figure img00760003

// NUmTransiate(rnilTestImage, milTestImage, 10, 10, M~DEFAULT); if(ipSetup.PreProcFlag == 1) // ContrastNormalization method 2 {
NormalizeImage(testImageArray, reflmageArray, ImageWidth, ImageHeight, ipSetup.ContrastLow, ipSetup.ContrastHigh, testImageArray);
MbufPut(milTestImage, testImageArray); displayTestImage# ; // pause4UserO;
<Desc/Clms Page number 77>
else ifipSetup PreProcFlag = 0) // contrast normalization method 1 { int norm = SLBNormalize(testImageArray, ImageWidth, ImageHeight, ipSetup.ContrastIndex); MbufPut(milTestImage, testImageArray); displayTestImage(); // pause4User# ; // Save original (un-preprocessed ref image).
MbufPut(milTestImageOriginal, testImageArray); if(ipSetup Smoothing) {
Figure img00770001

SmoothImage(&milTestImage); displayTestImage# ; returnYES;
<Desc/Clms Page number 78>
APPENDIX E
Image Alignment
Copyright 0 Schlumberger Technologies, Inc. (this work is unpublished) // Enhanced alignment algorithm. A grid of two 1-d correlations // are done and each local maximum the true 2-d correlation, using the entire //overlapping images, is performed.
// // The point with the highest correlation is taken as the correct gross //alignment. Then a narrow 2-d corr lation is performed around this point // and a fine alignment offset is determined.
// // Both Id and 2d corr lations are normalized for mean and standard deviation // which the other algoriths do not completely implement. Also performing 2-d // correlations on the entire overlappling images should eliminate misaligning // to repetitive structures.
// // Created: [date] by H.Gallarda // Cleaned: [date] by Jun Liu
Figure img00780001

int M1IP::alignTestToRef 11(void) longnoOfMatches; int BestCorrlndex; double BestCorrVal; intXOffsetStep, YOffsetStep;
POINT xy~shift, xy~quality-, intImageMargin; int XSampleStep, YSampleStep, SampleWidth, SampleHeight; double XPeak, YPeak; int XShiftError, YShiftError;
<Desc/Clms Page number 79>
int StageError; RECT bufl~rect, buf2~rect; pause4User("***** AJignment 11 *****");
Figure img00790001

displayDualImage( &milRefI mage, &milTestImage); pause4User("Ref image(L), Test image(R)"); XOffsetStep =4; YOffsetStep =4; ImageMargin = 0; XSampleStep = YSampleStep = 2; SampleWidth = SampleHeight = 0; SampleImage(reflmageArray, ImageWidth, ImageHeight,
XSampleStep, YSampleStep, buflImageArray, &SampleWidth, &SampleHeight); SampleImage(testImageArray, ImageWidth, ImageHeight,
XSampleStep, YSampleStep, buf2ImageArray, &SampleWidth, &SampleHeight);
Figure img00790002

StageError = ((ipSetup.stageAccuracyInPixel + 31) / 32) * 32; XShiftErtor= StageError/XSampleStep; YShiftError= StageError/ YSampleStep; buf2~rect.left = 0 ; buf2~rect.top = 0; buf2~rect.right = SampleWidth -1; buf2~rect.bottom = SampleHeight - 1;
Figure img00790003

bufl-rect.left = buf2Ject.Ieft + XShiftError, bufl~rect.top = buf2~rect.top + YShiftError; bufl~rect.right = buf2Ject.right - XShiftError;
<Desc/Clms Page number 80>
bufl~rect.bottom = buf2~rect bottom - YShiftError; noOfMatches= AlignWindow3( bufl ImageArray, buf2ImageArray, SampleWidth, SampleHeight, &bufl~rect, &buf2~rect, XOffsetStep, YOffsetStep, &xy~shift, &xy~quality, &BestCorrIndex, &BestCorrVal, &XPeak, &YPeak); xy~shift.x =(long) (XPeak * XSampleStep + 0.5); xy~shift.y = (long) (YPeak * YSampleStep + 0.5);
Figure img00800001

fovReport.imageShiftX = ( double )(-(xY~ shift.x )). fovReport.imageShiftY = (double)(-(xy-shift.y)); noOfMatches = 1; if(noOfMatches > ALIGN~MAX~MATCH~NUMBER) { char str[80]; sprintf(str,"too many matches : more than %d\n",ALIGN~MAX~MATCH~NUMBER);
AfxMessageBox(str); //check out the pattern match pause4User("Warning:Too many repeative structures for Alignment 11to process !"); fovReport.imageShiftX=0; fovReport.imageShiftY=0; return NO; } else if(noOfMatches ==0)
Figure img00800002

pause4User("Warning:Alignment 11 failed to align the image!"); fovReport.imageShiftX =0; fovReport .imageShift Y =0; returnNO; }
<Desc/Clms Page number 81>
fovReport.alingNo = Il; //record the alignment algo retum YES;
<Desc/Clms Page number 82>
APPENDIX F
Image Correlation
Copyright # Schlumberger Technologies, Inc. (this work is unpublished) #include <stdio.h> #include "math.h" #include "float.h" #include "IP AlignImage.h" int AlignWindow3( SLBImageType *Reflmage, SLBImageType *Testlmage, int ImageWidth, int ImageHeight,
RECT *RefWin, RECT *TestWin, int XOffsetStep, int YOffsetStep,
POINT *XYOffset, POINT *XYQuality, int *pBestCorrIndex, double *pBestCorrVal, double *pXPeak, double *pYPeak) { static double RefXProj[MAX~SEARCH~WIN~SIZE]; static double RefYProj[MAX~SEARCH~WIN~SIZE], static doubleTestXProj[MAX~SEARCH~WIN~SIZE]; static double TestYProj[MAX~SEARCH~WIN~SIZE], static double XCorr[MAX~CORR~SIZE]; static double YCorr[MAX~CORR~SIZE]; static doubleXYCorrVal; static int XMaxIndex, YMaxIndex; static doubleXMaxVal, YMaxVal; static int OffsetIndex, XOffset, YOffset; static int XOffsetMax, YOffsetMax; static int XCorrSteps, YCorrSteps; // staticint XOffsetStep, YOffsetStep; static int RefWinWidth, RefWinHeight; static int TestWinWidth, TestWinHeight;
<Desc/Clms Page number 83>
static int BestCorrlndex; static double BestCorrVal, static double CorrVal; static int XShift, YShift; static int XShiftMin, YShiftMin, XShiftMax, YShiftMax; static int BestXShift, BestYShift; static double Best2dCorrVal; static RECT MaxRefWin, MaxTestWin; // static int MaxWinWidth, MaxWinHeight; static int XOff, YOff; static int BestXOff, BestYOff; static int ImageMargin; static double Cmm, CmO, COm, COO, CpO, COp, Cpp; static double a, b, c, d, e, f, det ; static double XPeak, YPeak; ProjectWinInX(Reflmage, RefXProj, ImageWidth, ImageHeight, RefWin->left, RefWin->top, RefWin->right, RefWin->bottom); ProjectWinInY(Reflmage, RefYProj, ImageWidth, ImageHeight, RefWin->left, RefWin->top, RefWin->right, RefWin->bottom); RefWinWidth = RefWin->right - RefWin->left + 1;
RefWinHeight = RefWin->bottom - RefWin->top + 1;
TestWinWidth = TestWin->right - TestWin->left + 1;
TestWinHeight = TestWin->bottom - TestWin->top + 1;
OffsetIndex = 0; BestCorrVal = -1.0;
BestCorrlndex = 0; // XOffsetStep = 5; // YOffsetStep = 5;
<Desc/Clms Page number 84>
XOffsetMax = TestWinWidth - RefWinWidth, YOffsetMax = TestWinHeight - RefWinHeight, XCorrSteps = XOffsetStep; //5; YCorrSteps = YOffsetStep; //5; ImageMargin = 0; //100; for(YOffset = 0 ; ≤ YOffsetMax; YOffset += YOffsetStep) {
ProjectWinInX(TestImage, TestXProj, ImageWidth, ImageHeight,
TestWin->left, TestWin->top + YOffset,
TestWin->left + TestWinWidth -1,
TestWin->top + YOffset + RefWinHeight - 1); for(XOffset = 0; XOffset ≤XOffsetMax; XOffset += XOffsetStep) {
ProjectWinInY(TestImage, TestYProj, ImageWidth, ImageHeight, TestWin->left + XOffset, TestWin->top + YOffset, TestWin->left + XOffset + RefWinWidth - 1,
TestWin->top + YOffset + RefWinHeight - 1);
Figure img00840001

CorrelateArrays(RefXProj, TestXProj + XOffset, XCorr, RefWinWidth, RefWinWidth, XOffsetStep, &XMaxIndex, &XMaxVaI); CorrelateArrays(RefYProj, TestYProj, YCorr, RefWinHeight, RefWinHeight, YOffsetStep, &YMaxIndex, &YMaxVal); XShift = XMaxIndex + XOffset; YShift = YMaxIndex + YOffset; XOff= XShift + TestWin->left - RefWin->left; YOff= YShift + TestWin->top - RefWin->top;
<Desc/Clms Page number 85>
Figure img00850001

XYCorrVal = XMaxVal '' YMaxVal, //#! must use positive corrs only #if 1 // Now find largest ref and test régions to correlate to help find true match // XOff= XYOffset[OffsetIndex] x ;
Figure img00850002

Il YOff= XYOffset[OffsetIndex] y; if(XOff≥ 0)
MaxRefWin.left = 0 + ImageMargin;
MaxTestWin.left = XOff + ImageMargin ;
MaxRefWin.right = ImageWidth - 1 - XOff- ImageMargin ;
MaxTestWin. right = ImageWidth - 1 - ImageMargin ; } else {
MaxRefWin.left = -XOff+ ImageMargin; //négative, so negate MaxTestWin.left = 0 + ImageMargin;
MaxRefWin. right = ImageWidth -1 - ImageMargin;
MaxTestWin.right = ImageWidth - 1 + XOff- ImageMargin; //negate } if(YOff≥ 0) { MaxRefWin.top = 0 + ImageMargin;
MaxTestWin.top = YOff+ ImageMargin ;
MaxRefWin.bottom = ImageHeight - 1 - YOff- ImageMargin ;
MaxTestWin.bottom = ImageHeight - 1 - ImageMargin ; } else { MaxRefWin.top -YOff+ ImageMargin ; //négative, so negate
MaxTestWin. top = 0 + ImageMargin;
MaxRefWin. bottom = ImageHeight - 1 - ImageMargin;
MaxTestWin.bottom = ImageHeight -1 + YOff - ImageMargin; //negate }
<Desc/Clms Page number 86>
CorrelateWindows2(Reflmage, TestImage, ImageWidth, ImageHeight, &MaxRefWin, &MaxTestWin, XCorrSteps, YCorrSteps, 0,0, &CorrVal); #else CorrelateWindows2(Reflmage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, XCorrSteps, YCorrSteps, XShift, YShift, &CorrVal); // CorrVal = XYCorrVal; #endif #if // XYQuality[OffsetIndex].x = (int) (1000.0 * CorrVal + .5);
Figure img00860001

// XYQuality[OffsetIndex).y = (int) (1000.0 * XYCorrVal + .5); XYCorrVal = CorrVal; //!! use 2d corrélation instead #else
XYQuality[OffsetIndex].x = (int) (1000 0 * XMaxVal + 5);
XYQuality[OffsetIndex].y = (int) (1000.0 * YMaxVal + .5); #endif if(CorrVal ≥ BestCorrVal) {
BestCorrVal = CorrVal; // BestCorrIndex = OffsetIndex;
BestXOff= XOff;
BestYOff= YOff; }
OffsetIndex++; //Calculate search région forbest 2d corrélation Best2dCorrVal =-1.0; Il! BestCorrVal;
Best2dCorrVal =BestCorrVal;
BestXShift =BestXOff - (TestWin->left - RefWin->left);
BestYShift = BestYOff - (TestWin->top - RefWin->top);
<Desc/Clms Page number 87>
XShiftMin = BestXOff - XOffsetStep / 2 - (TestWin->left - RefWin->left),
XShiftMax = BestXOff+ XOffsetStep / 2 - (TestWin->left - RefWin->left);
YShiftMin = BestYOff - YOffsetStep / 2 - (TestWin->top - RefWin->top),
YShiftMax = BestYOff + YOffsetStep / 2 - (TestWin->top - RefWin->top), // Make sure that corrélations remain within test image. if(TestWin->left + XShiftMin < 0)
XShiftMin = TestWin->left; if(TestWin->top + YShiftMin < 0)
YShiftMin = TestWin->top; if(TestWin->left + XShiftMax + RefWinWidth - 1 > ImageWidth - 1)
XShiftMax = ImageWidth - RefWinWidth - TestWin->left; if(TestWin->top + YShiftMax + RefWinHeight - 1 > ImageHeight - 1)
YShiftMax = ImageHeight - RefWinHeight - TestWin->top; for(YShift = YShiftMin; YShift ≤ YShiftMax; YShift++) for(XShift = XShiftMin, XShift ≤ XShiftMax ;
XShift++){ #if // Now find largest ref and test regions to correlate to help find true match
Figure img00870001

// XOff = XYOffset[OffsetIndex].x; // YOff = XYOffset[OffsetIndex].y;
XOff= XShift + (TestWin->left - RefWin->left);
YOff= YShift + (TestWin->top - RefWin->top); if(XOff ≥ 0) {
MaxRefWin.left = ImageMargin;
MaxTestWin.left = XOff + ImageMargin;
<Desc/Clms Page number 88>
MaxRefWin.right = ImageWidth - 1 - XOff - ImageMargin;
MaxTestWin.right = ImageWidth - 1 - ImageMargin; el se { MaxRefWin.left - -XOff + ImageMargin; //négative, so negate
MaxTestWin.left = ImageMargin;
MaxRefWin. right = ImageWidth - 1 - ImageMargin;
MaxTestWin. right =ImageWidth -1 + XOff- ImageMargin ; //negate if(YOff≥ 0) {
MaxRefWin.top = 0 + ImageMargin;
MaxTestWin.top = YOff+ ImageMargin; MaxRefWin.bottom = ImageHeight -1- YOff- ImageMargin ;
MaxTestWin.bottom = ImageHeight -1 - ImageMargin; } else { MaxRefWin.top =-YOff+ ImageMargin ; //négative, so negate
MaxTestWin.top = 0 + ImageMargin; MaxRefWin.bottom = ImageHeight - 1 - ImageMargin ;
MaxTestWin. bottom = ImageHeight -1 + YOff - ImageMargin; //negate }
Figure img00880001

Correlate Windows(RefImage, TestImage, ImageWidth, ImageHeight, &MaxRefWin, &MaxTestWin, 0, 0, &CorrVal); #else
CorrelateWindows(RefImage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, XShift, YShift. &CorrVal); #endif if(CorrVal ≥ Best2dCorrVal) {
<Desc/Clms Page number 89>
Best2dCorrVal = CorrVal,
BestXShift = XShift;
BestYShift = YShift; if(BestXShift ≤ 0 Il BestYShift ≤ 0 # BestXShift+1 ≥ ImageWidth # BestYShift+1 ≥ ImageHeight) {
XPeak =0.0;
YPeak = 0.0; else
CorrelateWindows(RefImage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, BestXShift-1, BestYShift-1, &Cmm);
Figure img00890001

Correlate Windows(RefImage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, BestXShift-1, BestYShift, &CmO); CorrelateWindows(Reflmage, Testlmage, ImageWidth, ImageHeight,
RefWin, TestWin, BestXShift, BestYShift-l, &COm); CorrelateWindows(Reflmage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, BestXShift, BestYShift, &C00); CorrelateWindows(RefImage, TestImage, ImageWidth, ImageHeight,
RefWin, TestWin, BestXShift+1, BestYShift, &CpO);
Figure img00890002

CorrelateWîndows(Refimage, TestImage, ImageWidth, ImageHeight, RefWin, TestWin, BestXShift, BestYShift+1, &COp); CorrelateWindows(Reflmage, Testlmage, ImageWidth, ImageHeight,
RefWin, TestWin, BestXShift+1, BestYShift+1, &Cpp); // assume quadratic fit for corrélation surface.
// Corr(x,y) =a + bx + cy + dx* *2 + exy + fy* *2
<Desc/Clms Page number 90>
a = COO; b = (CpO - CmO) / 2.0; c = (COp - COm) / 2.0; d = (CpO + CmO - 2.0 * COO) / 2.0; f = (COp + COm - 2.0 * COO) / 2.0 ; e = (Cpp + Cmm - 2 0 * COO) / 2.0 - (d + f) / 2 0; det=4.0*d*f-e*e; XPeak = (b * (e - 2.0 * f)) / det;
Figure img00900001

YPeak = (c * (e - 2.0 * d)) / det; // Check to make sure they are within one pixel.
// If not, don't make adjustment... if(XPeak < 1.0 # XPeak > 1.0)
XPeak =0.0; if(YPeak< 1.0 Il YPeak > 1.0)
YPeak = 0.0; } // Now modify XY Offsets
XYOffset->x =BestXShift + TestWin->left - RefWin->left;
XYOffset->y = BestYShift + TestWin->top - RefWin->top;
XYQuality->x = (int) (1000.0 * Best2dCorrVal + .5);
XYQuality->y = (int) (1000.0 * BestCorrVal +.5); *pXPeak =XYOffset->x +XPeak; *pYPeak = XYOffset->y + YPeak; *pBestCorrIndex = BestCorrIndex; *pBestCorrVal = Best2dCorrVal; retum 1; }
<Desc/Clms Page number 91>
APPENDIX G
Feature Extraction and Matching
Copyright 0 Schlumberger Technologies, Inc. (this work is unpublished) #include "Stdafx.h" #include "MiIIP.h" #include <milsetup h> #include <stdlib.h> #include <string.h> #include <mil.h> #include <math.h> #include <conio.h> #include <malloc.h> #include "guijp.h" //this function detects defects for segmented //features (dark contacts, for now) //largest feature ratio is retumed as defect //if above user-specified ratio. long MiIIP::FindContactDefects(MiIIP* insituIP)
BOX1 RefMask, TestMask ;
Figure img00910001

MbufC]ear(rnilBufl Image, OL); MbufC!ear(mitBuf2Image, OL); MbufClear(milBuf3Image, OL); MbufClear( milResultImage, OL); ipSetup.m~MinFeatureArea;
Figure img00910002

ifovReport.imageShiftX ≥ 0) { RefMask.topLeftX = fovReport.imageShiftX + ipSetup.LeftMargin; RefMask.bottomRightX = ImageWidth - ipSetup.RightMargin;
<Desc/Clms Page number 92>
TestMask. topLeftX = ipSetup LeftMargin,
TestMask.bottomRightX = ImageWidth - fovReport imageShiftX ipSetup RightMargin ; } else { RefMask.topLeftX = ipSetup.LeftMargin;
RefMask.bottomRightX = ImageWidth + fovReport.imageShiftX ipSetup.RightMargin; TestMask.topLeftX = -fovReport.imageShiftX + ipSetup.LeftMargin;
TestMask.bottomRightX = ImageWidth - ipSetup.RightMargin; if(fovReport.imageShiftY ≥ 0) {
RefMask.topLeftY = fovReport.imageShiftY + ipSetup.TopMargin; RefMask.bottomRightY = ImageHeight - ipSetup.BottomMargin;
TestMask.topLeftY = ipSetup.TopMargin;
TestMask.bottomRightY = ImageHeight - fovReport.imageShiftY ipSetup.BottomMargin; } else { RefMask.topLeftY ipSetup.TopMargin; RefMask.bottomRightY = ImageHeight + fovReport.imageShiftY ipSetup.BottomMargin; TestMask.topLeftY - -fovReport.imageShiftY + ipSetup.TopMargin;
TestMask.bottomRightY = ImageHeight - ipSetup.BottomMargin; } pause4User("Let's find thedefects accordingto the alignment"); // new contact stuff... pause4User("Binarizing Test image"); display TestImage# ;
<Desc/Clms Page number 93>
// Let's try to do adaptive BG removal in Matrox MIL .
//Pyramidal smoothing ofTestImage. int PyramidLevels = 5; //!4; int MaxSmooth = 1; //!3; //User specified parametersfor contact defect detection //Thresholds forbackground removal.
//Currently onlyfinds dark-on-light features. double MinBGThreshold = 100.0;//! 100. //Images are normalized around 128. doubleMaxBGThreshold = 255.0;//!255. long MinFeatureArea = 200;//300; Il!200; long MinFeatureSize = 4; //!4; long MinFeatureGap = 2; //!2; doubleFeatureCenterMaxDelta = 20.0; //!10.0 double FeatureAreaMaxRatio = 1.00;//!1.50; double FeatureMeanMaxRatio = 0.00; Il! 1.50; double FeatureSumMaxRatio = 0.00; //!1.50; long OpenIteration =0; long CloseIteration = 0; //Get ContactProcessing Parameters from file. charpars~filename[256]; charDoubleString[256]; intrc;
Figure img00930001

MinBGThreshold = ipSetup.m~MinBGThreshold; MaxBGThreshold = ipSetup.m MaxBGThreshold; MinFeatureArea = ipSetup.m~MinFeatureArea; MinFeatureSize= ipSetup.m~MinFeatureSIze;
<Desc/Clms Page number 94>
MinFeatureGap = ipSetup.m~MinFeatureGap;
Figure img00940001

FeatureCenterMaxDelta = ipSetup.m CenterDelta; FeatureAreaMaxRatio = ipSetup m~max~area~ratio; FeatureMeanMaxRatio = ipSetup.m~MeanMaxRatio; FeatureSumMaxRatio = ipSetup.m SumMaxRatio; OpenIteration = MinFeatureSize / 2; Closelteration = MinFeatureGap / 2; //RefImage background removal and binarization //Pyramidal smoothing of RefImage.
PyramidAverage(milRefImage, milBuflImage, PyramidLevels, MaxSmooth);
Figure img00940002

MdispSelect(IVlDisplay, milBufl Image); MimArith(milBuflImage, 2, milBuflImage, M~DIV~CONST); MdispSelect(MilDisplay, milBufl Image); MimArith(milRefImage, 2, milRefImage, M~DIV~CONST); MdispSelect(MilDisplay, milRefImage);
Figure img00940003

MimArith(rnitReflmage, milBuflImage, milReflmage, M~SUB), //~ABS); MdispSelect(MilDisplay, milRefImage); MimArith(milRefImage, 128, milRefImage, M~ADD~CONST); //+M~SATURATION);
Figure img00940004

MdispSelect(NEIDisplay, milRefImage); MimBinarize(milRefImage, milRefBloblmage, M~OUT~RANGE, //M~OUT~RANGE
MinBGThreshold, MaxBGThreshold); MdispSelect(MilDisplay, milRefBlobImage); pause4User("Reference Blob Image");
Figure img00940005

MbufClear(milBuf3Image, OL);
<Desc/Clms Page number 95>
if(OpenIteration > 0)
MimErode(milRefBlobImage, milBuf3Image, OpenIteration, M~BINARY); displayBuf3Image(); if(OpenIteration> 0)
MimDilate(milBuf3Image, milRefBloblmage, Openlteration, M~BINARY); MdispSelect(MilDisplay, milRefBlobImage); pause4User("Removed small blobs");
Figure img00950001

MbufLlear(milBuf3Image, OL); if(CloseIteration > 0) NfimDilate(nùlRef8loblmage, milBuf3Image, CloseIteration, M~BINARY); displayBuf3 Image(); if(CloseIteration> 0)
MimErode(milBuf3Image, milRefBloblmage, Closelteration, M~BINARY);
MdispSelect(MiLDisplay, milRefBloblmage); pause4User("Merged nearby blobs"); //Extract all référence blobs
MdispSelect(MilDisplay, milRefBlobImage);
MblobCalculate(milRefBlobImage, milReflmage, MilRefFeatureList, MilRefBlobResult); longNumRefBlobs; MblobGetNumber(MilRefBlobResult, &NumRefBlobs); fovReport.largestDefectSize = NumRefBlobs; //Now do same for TestImage //TestImage background removal, contrast (re)normalization and binarization //Pyramidal smoothing of Reflmage.
PyramidAverage(rnilTestImage, milBuflImage, PyramidLevels, MaxSmooth);
MdispSelect(MilDisplay, milBufl Image);
MimArith(milBuflImage, 2, milBuflImage, M~DIV~CONST);
MdispSelect(MilDisplay, milBufl Image);
<Desc/Clms Page number 96>
MimArith(milTestImage, 2,milTestImage, M~DIV~CONST); MdispSelect(MilDisplay, milTestImage); MimArith(milTestImage, milBuflImage, milTestImage, M~SUB); //~ABS); MdispSelect(MilDisplay, milTestImage); MimArith(milTestImage, 128, milTestImage, M~ADD~CONST), //+M~SATURATION); MdispSelect(MilDisplay,milTestImage); if(1 # ipSetup.PreProcFlag ==1) // ContrastNormalizationmethod2 {
Figure img00960001

MbufGet(milRefImage, refImageArray); MbufGet(milTestImage, testImageArray);
NormalizeImage(testImageArray, refImageArray. ImageWidth, ImageHeight, ipSetup.ContrastLow, ipSetup.ContrastHigh, testImageArray);
MbufPut(milTestImage, testImageArray); displayTestImage# ; } MimBinarize(milTestImage, milTestBlobImage, M~OUT~RANGE, MinBGThreshold, MaxBGThreshold); MdispSelect(MilDisplay, milTestBlobImage); pause4User("Test Blob Image");
Figure img00960002

MbufCIear(rnilBuf3 Image, OL); if(OpenIteration > 0) MimErode(milTestBlobImage, milBuf3Image, OpenIteration, M~BINARY); displayBuf3Image# ; if(OpenIteration > 0)
Figure img00960003

ImDilate(milBuf3Image, milTestBlobImage, OpenIteration, M~BINARY); MdispSelect(MilDisplay, milTestBlobImage); pause4User("Removed small blobs");
Figure img00960004

MbufCIear(milBuf3Image, OL); if(C!ose!teration > 0) NEmDilate(milTestBloblmage, milBuf3Image, Closelteration, M~BINARY);
<Desc/Clms Page number 97>
displayBuf3Image# ; if(CloseIteration> 0)
MimErode(milBuf3Image, milTestBlobImage, Closelteration, M~BINARY); MdispSelect(MilDisplay, milTestBloblmage); pause4User("Merged nearbyblobs");
MdispSelect(MilDisplay, milTestBlobImage); MblobCalculate(milTestBlobImage, milTestImage, MilTestFeatureList, MilTestBlobResult); //get numberof blobs to compare longNumTestBlobs;
Figure img00970001

MblobGetNumber(NEITestBlobResult, &NumTestBlobs); fovReport.largestDefectSize =NumTestBlobs; //Make mask region in Reflmage not in common with TestImage. makeFrameImage(&milBuflImage, RefMask, (unsigned char)0, (unsigned char)255); //mask image stored in buf3
MdispSelect(MiDisplay, milBuflImage); MdispSelect(MilDisplay, milRefBlobImage);
MbufClear(milBuf2Image, OL);
Figure img00970002

MimArith(milRefBlobImage. milBuflImage, milBuflImage, M~AND); MdispSelect(MilDisplay, milBuf2Image); //Now find blobsin Reflmage not COMPLETELY in common region
MdispSelect(MiIDisplay, miRefBlobImage);
MbufClear(milRefBorderBlobImage, OL); MblobReconstruct(milRefBlobImage, milBuf2Image, milRefBorderBlobImage, M~RECONSTRUCT~FROM~SEED, M~GRAYSCALE); MdispSelect(MilDisplay. milRefBorderBlobImage); pause4User("ReferenceBorder Blob Image"); //Now do same thing forTestImage.
//Make mask region in TestImage not in common with Reflmage.
<Desc/Clms Page number 98>
makeFrameImage(&milBuflImage, TestMask, (unsigned char)O, (unsigned char)255) ; //mask image stored in buf3 MdispSelect(MilDisplay, milBufl Image); MbufClear(milBuf2Image, OL); MimArith(milTestBlobImage, milBuflImage, milBuf2Image, M~AND);
MdispSelect(MilDisplay, milBuf2Image); //Now find blobs in TestImage not COMPLETELY in common region
MdispSelect (MilDisplay, milTestBlobImage);
Figure img00980001

MblobReconstruct(milTestBIobImage, milBuflImage, milTestBorderBlobImage, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE);
MdispSelect(MilDisplay, milTestBorderBlobImage); pause4User("Test Border Blob Image"); //Now here's the part 1 missed the first time: //Add borderblobsfrom milTestBorderBlobImage to milRefBorderBlobImage (and vice versa).
MbufClear(milBuflImage, OL); MdispSelect(MilDisplay, milTestBorderBlobImage);
Figure img00980002

MimTransIate(milTestBorderBlobImage, milBuflImage, (1)* fovReport.imageShiftX, (1)*fovReport.imageShiftY, M~DEFAULT);
MdispSelect(MilDisplay, milBufl Image);
MbufClear(milBuf2Image, OL);
Figure img00980003

MblobRècbnstruct(milReBlobImage, milBufl Image, mi[Buf2Image, M~RECONSTRUCT~FROM~SEED, M~GRAYSCALE);
MdispSelect(MilDisplay, milBuf2Image); //Add TestImage border blobs to milRefBorderBlobImage.
Figure img00980004

IVGmArith(miIRefBorderBlobImage, milBuf2Image, milRefBorderBlobImage, M~OR); MdispSelect(MilDisplay, milRefBorderBlobImage); pause4User("Reference All-BorderBlob Image"); //Now remove ail borderblobsfrom Reflmage, leaving onlywhole interior blobs.
Figure img00980005

MimArith(milRetBorderBlobImage, NULL, nlBuf2Image, M~NOT);
<Desc/Clms Page number 99>
Figure img00990001

IvfimArith(milRefBlobImage, milBuf2Image, milRefWholeBlobI mage, M~AND); MdispSelect(MilDisplay, milRefWholeBloblmage); pause4User("Reference Whole Blob Image"), //Now repeat above for TestImage.
//Add border blobs from milRefBorderBlobImage to milTestBorderBlobImage (andvice versa).
MdispSelect(MilDisplay, milRefBorderBlobImage);
MbufClear(milBuflImage, OL);
Figure img00990002

llmTranslate(milRefBorderBlobImage, milBuflImage, (-1)*fovReport.imageShiftX, (-1)*fovReport.imageShiftY, M DEFAULT); MdispSelect(MilDisplay, milBuflImage); MdispSelect(MilDisplay, milTestBloblmage); MbufClear(milBuf2Image, OL);
Figure img00990003

MblobReconstruct(milTestBloblmage, milBuflImage, milBuf2Image, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE);
MdispSelect(MilDisplay, milBuf2Image); //Add Reflmage borderblobsto milTestBorderBlobImage.
Figure img00990004

llmArith(milTestBorderBlobImage, milBuf2lmage, milTestBorderBlobImage, M~OR); MdispSelect(MilDisplay, milTestBorderBlobImage); pause4User("Test All-Border Blob Image"); //Now remove all border blobs from Reflmage, leaving only whole interior blobs.
MimArith(milTestBorderBlobImage, NULL, milBuf2Image, M~NOT); MimArith(milTestBlobImage, milBuf2Image, milTestWholeBlobImage, M~AND); MdispSelect(MilDisplay, milTestWholeBloblmage); pause4User("Test Whole Blob Image"); //Now find seed image (ie where whole interior blobs intersect in ref and test images).
//Translate TestWholeImage to match RefWholelmage.
MbufClear(milBuflImage, OL);
Figure img00990005

NEmTranslate(rnilTestWholeBloblmage, milBuflImage, (1)*fovReport.imageShiftX, (1)*fovReport.imageShiftY, M DEFAULT);
<Desc/Clms Page number 100>
MdispSelect(MilDisplay, milBufl Image), //Find where blobs match (ie intersect) => SeedImage.
Figure img01000001

MmA.rith(milRefWholeBloblmage, milBufl Image, milSeedBloblmage, M~AND); MdispSelect(MilDisplay, milSeedBloblmage); pause4User("Seed Blob Image"), //Reconstruct only common blobs in ref that match in test.
Figure img01000002

MbufClear(milReommonBlobImage, OL);
MblobReconstruct(milRefBlobImage, milSeedBlobImage, milRefCommonBlobImage, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE),
MdispSelect(MilDisplay, milRefCommonBlobImage); pause4User("Reference Common Blob Image"); //Now remove all common blobs fromRefWholeImage, leavingonly loner blobs MimArith(milRefCommonBlobImage, NULL, milBuf2Image, M NOT);
Figure img01000003

llmArith(milRefWholeBlobImage, rni[Buf2lmage, milRefLonerBlobImage, M~AND); MdispSelect(MilDisplay, milRefLonerBlobImage); pause4User("Reference Loner Blob Image"); //Do same thingfortest image.
//First translate Seedlmage to matchTestWholelmage.
MbufClear(milBufl Image, OL);
Figure img01000004

MmTrarisiate(rnilSeedBlobImage, milBufl Image, (-I)*fovReport.imageShiftX, (-1)*fovReport.imageShiftY, M~DEFAULT);
MdispSelect(MilDisplay, milBuflImage); //Reconstruct only commonblobs inref that match in test.
MbufClear(milTestCommonBlobImage, OL);
MblobReconstruct(milTestBlobImage, milBuflImage, milTestCommonBlobImage, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE); MdispSelect(MilDisplay, milTestCommonBlobImage); pause4User("Test Common Blob Image");
<Desc/Clms Page number 101>
//Now remove all common blobs from RefWholeImage, leaving only loner blobs MimArith(milTestCommonBlobImage, NULL, milBuf2Image, M~NOT),
Figure img01010001

MimArith{milTestWholeBlobImage, milBuf2Image, milTestLonerBlobImage, M~AND); MdispSelect(MilDisplay, milTestLonerBlobImage); pause4User("Test Loner Blob Image"); //All done ; have all segmented images: ref and test common and loner blobs //Find Reference blob (in common) list MdispSelect(MilDisplay, milRefCommonBlobImage);
Figure img01010002

MblobCalculate(milRefCommonBlobImage, miIRefImage, MilRefF eatureList, MilRefCommonBlobResult); longNumRefCommonBlobs;
MblobGetNumber(MilRefCommonBlobResult, &NumRefCommonBlobs); fovReport.largestDefectSize=NumRefCommonBlobs; //Removeblobs smallerthanMinFeatureArea.
Figure img01010003
MbufCIear(rnitRefCommonBloblmage, OL); MblobSelect(MilRefCommonBlobResult. M~EXCLUDE, M~AREA, M~LESS, MinFeatureArea, M~NULL);
MblobFill(MilRefCommonBlobResult, milRefCommonBlobImage, M~INCLUDED~BLOBS, (long)255);
MdispSelect(MilDisplay,milRefCommonBlobImage); pause4User("ReferenceCommonBlobImage, Size-Limited");
Figure img01010004

MblobGetNumber(MilReflrommonBlobResult, &NumRefCommonBlobs); fovReport.largestDefectSize = NumRefCommonBlobs; //Find blobs in TestImage (Note: TestImage is already shifted to match Reflmage alignment) MdispSelect(MilDisplay, milTestCommonBlobImage); MblobCalculate(milTestCommonBlobImage, milTestImage, MilTestFeatureList, MilTestCommonBlobResult);
<Desc/Clms Page number 102>
//get number of blobs to compare longNumTestCommonBlobs; MblobGetNumber(MilTestCommonBlobResult, &NumTestCommonBlobs); fovReport.largestDefectSize =NumTestCommonBlobs; //Remove blobs smaller than MinFeatureArea.
MbufClear(milTestCommonBlobImage, OL);
Figure img01020001

MblobSelect(MilTestCommonBIobResult, M~EXCLUDE, M~AREA, MJLESS, MinFeatureArea, M~NULL); MblobFill(MiITestCommonBlobResult, milTestCommonBlobImage, M~INCLUDED~BLOBS, (long) 255); MdispSelect(MilDisplay, milTestCommonBloblmage); pause4User("Test Common Blob Image, Size-Limited");
Figure img01020002

MblobGetNumber(MiITestCommonBlobResult' &NumTestCommonBlobs); fovReport.largestDefectSize = NumTestCommonBlobs; //Calculate stats for Reference loner blobs; store in RefBlobImage
MdispSelect(MilDisplay, milRefLonerBlobImage); MblobCalculate(milRefLonerBIobImage, milReflmage, MilRefFeatureList, MilRefLonersBlobResult); long NumRefLonerBlobs;
Figure img01020003

MblobGetNumber(1GIRefLonersBlobResult, &NumRefLonerBlobs); fovReport.largestDefectSize= NumRefLonerBlobs; //Remove blobs smallerthanMinFeatureArea.
Figure img01020004
Mbuflear(milRefLonerBlobImage, OL); MblobSelect(NEIRefLonersB]obResult M~EXCLUDE, M~AREA, M~LESS, MinFeatureArea, M~NULL);
MblobFill(MilRefLonersBlobResult, miRefLonerBlobImage, M~INCLUDED~BLOBS, (long) 255); MdispSelect(MilDisplay, milRefLonerBlobImage); pause4User("Reference LonerBlob Image, Size-Limited");
<Desc/Clms Page number 103>
MblobGetNumber(MilRefLonersBlobResult, &NumRefLonerBlobs); fovReport.largestDefectSize = NumRefLonerBlobs; //Calculate stats for Test loner blobs; store in TestBlobImage MdispSelect(MilDisplay, milTestLonerBlobImage);
Figure img01030001

MblobCalculate(milTestLonerBIobImage, milTestImage, MilTestFeatureList, MilTestLonersBlobResult); longNumTestLonerBlobs; MblobGetNumber(MilTestLonersBlobResult, &NumTestLonerBlobs); fovReport.largestDefectSize =NumTestLonerBlobs; //Removeblobs smallerthan MinFeatureArea.
Figure img01030002
Mbuf#lear(milTestLonerBlobImage, OL); MblobSelect(MilTestLonersBlobResult, M~EXCLUDE,M~AREA,M~LESS, MinFeatureArea, M~NULL);
Figure img01030003

MblobFil](NEITestLonersBlobResult, milTestLonerBlobImage, M INCLUDED BLOBS, (long) 255);
MdispSelect(MiDispla, milTestLonerBlobImage); pause4User("Test Loner Blob Image, Size-Limited");
MblobGetNumber(MilTestLonersBlobResult, &NumTestLonerBlobs); fovReport.largestDefectSize =NumTestLonerBlobs; //Now have to recompute the common blobs, because small blobs have been removed independently.
//Translate TestWholeImage to match RefBlobImage.
MbufCIear(milBuflImage, OL);
Figure img01030004

MimTranslate(milTestCommonBlobImage, milBuflImage, (1)*fovReport.imageShiftX, (1)*fovReport.imageShiftY, M DEFAULT);
Figure img01030005

MdispSelect(IVIilDisplay, milBuflImage); //Find whereblobs match (ie intersect) => SeedImage.
MdispSelect(MiDisplay, milSeedBlobImage); MimArith(milRefCommonBlobImage, milBuflImage, milSeedBloblmage, M~AND);
<Desc/Clms Page number 104>
MdispSelect (MilDisplay, milSeedBloblmage); pause4User("New Seed Blob Image, Size-Limited"); //Reconstruct only common blobs in ref that match in new SeedBlobImage.
Figure img01040001

MbufCIear(milRefCommonBlobImage, OL);
MblobReconstruct(milRefBlobImage, milSeedBloblmage, milRefCommonBlobImage, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE);
MdispSelect(MilDisplay, milRefCommonBlobImage); pause4User("Reference Common Blob Image, Size-Limited"); //Calculate newstatson only minimum sized common blobs.
Figure img01040002
MbIobCalculate(milRefCommonBlobImage, milreflmage, MilRefF eatureList, MilRefCommonBlobResult); MblobGetNumber(MilRefCommonBlobResult, &NumRefCommonBlobs); fovReport.largestDefectSize=NumRefCommonBlobs; //FirsttranslateSeedImagetomatchTestBlobImage.
MbufClear(milBuflImage, OL);
Figure img01040003

MimTranslate(milSeedBlobImage, milBuflImage, (-1 )*fovReport.imageShiftX, (-1)*fovReport.imageShiRY, M DEFAULT); MdispSelect(MilDisplay, milBuflImage); //Reconstruct only common blobs in ref that match in new SeedBloblmage.
Figure img01040004

Mbuflrlear(milTestCommonBIobImage, OL);
MblobReconstruct(milTestBlobImage, milBufl Image, milTestCommonBlobImage, M~RECONSTRUCT~FROM~SEED,M~GRAYSCALE);
MdispSelect(MilDisplay, milTestCommonBloblmage); pause4User("Test Common Blob Image, Size-Limited"); //Calculatenewstats ononlyminimum sized common blobs.
MblobCalculate(milTestCommonBlobImage, milTestImage, MilTestFeatureList, MilTestCommonBlobResult);
MblobGetNumber(MilTestCommonBlobResult, &NumTestCommonBlobs); fovReport.largestDefectSize = NumTestCommonBlobs;
<Desc/Clms Page number 105>
//Now compare and printout blob stats int SelectOutlyersOnly = 1; double BlobStatMax = 0.0; CompareMatchedBlobs( milRefCommonBlobImage, MilRefCommonBlobResult, milTestCommonBloblmage, MilTestCommonBlobResult, fovReport.imageShiftX, fovReport.imageShiftY,
MinFeatureArea,
FeatureCenterMaxDelta,
FeatureAreaMaxRatio,
FeatureMeanMaxRatio,
FeatureSumMaxRatio,
SelectOutlyersOnly, &BlobStatMax); ifSelectOutlyersOnly) { //Display ref currently selected blobs (only outlyers ifSelectOutlyersOnly = 1).
MbufClear(milRefCommonBlobImage. OL);
Figure img01050001

MblobFiJl(MilRefCommonBlobResult. milRefCommonBlobImage, M~EXCLUDED~BLOBS, (long) 255); MdispSelect(MilDisplay, milRefCommonBlobImage); pausè4User("Reference OutlyerBlob Image, Size-Limited");
Figure img01050002

MblobGetNumber(MiRefCornmonBlobResult, &NumRefCommonBlobs); fovReport.largestDefectSize = NumRefCommonBlobs; //Display test currently selected blobs (only outlyers if SelectOutlyersOnly = 1).
MbufClear(milTestCommonBlobImage. OL);
Figure img01050003

MblobFill(MilTestCommonBIobResult, milTestCommonBloblmage, M~EXCLUDED~BLOBS, (long) 255); MdispSelect(MilDisplay, milTestCommonBloblmage); pause4User("Test OutlyerBlob Image, Size-Limited");
<Desc/Clms Page number 106>
Figure img01060001

MblobGetNumber(MilTestCommonBlobResult, &NumTestCommonBlobs); fovReport.largestDefectSize = NumTestCommonBlobs; } //Return BlobStatMax fovReport.largestDefectSize = (BlobStatMax > 0.0) ? (long) 1000 * BlobStatMax : (long) (NumRefLonerBlobs + NumTestLonerBlobs); //Done, now display results... if(displayFlag YES) { //defect review hère; showing dual images ; toggle review of original images and defects overlay //Now let's join the ref and test loners into both images...
MbufClear(milBuf2Image, OL);
Figure img01060002

MimTranslate(milTestLonerBlobImage, milBuf2Image, (1)*fovReport.imageShiftX, (1)*fovReport.imageShiftY, M~DEFAULT); MimArith(milRetLonerBIobImage, milBuf2Image, milRefLonerBloblmage, M~OR); //make blobs 0/blue
MdispSelect(MilDisplay, milRefLonerBlobImage);
Figure img01060003

MbufClear(milTestLonerBIobImage, OL); NmTranslate(milRefLonerBlobImage, milTestLonerBlobImage, (-1)*fovReport.imageShiftX, (-1)*fovReport.imageShiftY, M~DEFAULT); MdispSelect(MilDisplay. milTestLonerBlobImage); if(1 # DefectColor) {
Figure img01060004

makeDualImage(milReflmage, milTestImage, milduallmage);
<Desc/Clms Page number 107>
Figure img01070001

overlayDefectImage(miIRefImage, milRefLonerBlobImage, milBuf3Image); //Add overlays onto Reflmage fordisplay
MbufClear(miBuflImage, OL);
MimArith(milRefCommonBlobImage, NULL, milBufl Image, M~NOT); //make blobs0/blue
MimArith(milBuf3Image, milBuflImage, milBuf3Image, M~AND), MdispSelect(MilDisplay, milBuf3Image); //try this again...
Figure img01070002

over!ayDefectImage(mitBuf3 Image, rnilRefLonerB]obImage, n-àlBuf3Image); overlayDefectImage(milTestImage, milTestLonerBlobImage, milBuf2Image);
MimArith(milTestCommonBlobImage, NULL, milBuflImage, M~NOT); //make blobs 0/blue
MimArith(milBuf2Image, milBuflImage, milBuf2Image, M~AND); MdispSelect(MilDisplay, milBuf2Image); //try this again... overlayDefectImage(milBuf2Image, milT estLonerBlobImage, milBuf2Image);
Figure img01070003

makeDuaIImage(mi)Buf3 Image, milBuf2Image, milDualDefectImage); d ispl ayFal seC ol orImage(milDualDefectImage); pause4User("DisplayDual Image with Defects"); //Make defect image for Swati's review mode.
MdispSelect(MilDisplay, milRefCommonBlobImage); MimArith(milRefCommonBlobImage, milRefLonerBlobImage, milDefectImage, M~OR);
MdispSelect(MilDisplay, milDefectImage);
MbufClear(milBuf2Image, OL);
Figure img01070004

NEmTranslate(eTestCommonB]obImage, milBuf2Image, (1)*fovReport.imageShiftY, (1)*fovReport.imageShiftY, M~DEFAULT); MdispSelect(MilDisplay, milBuf2Image);
<Desc/Clms Page number 108>
MimArith(milDefectImage, milBuf2Image, milDefectImage, M~OR),
MdispSelect(MilDisplay, milDefectImage); } else {
MbufClear(milBuflImage, OL);
MbufClear(milBuf3Image, OL);
MbufClear(miBuf3Image, OL);
MimArith(milResultImage, M~NULL, milBuf2Image, M~NOT);
MimArith(miBuf2Image, milReflmage, milBuflImage, M~AND);
Figure img01080001

MimTranslate(milResultImage, milBuf3Image, (-1)*fovReport.imageShiftX, (-I)*fovReport.imageShiftY, M~DEFAULT);
MimArith(miBuf3Image, M~NULL, milBuf3Image, M~NOT); MimArith(milBuf3Image, milTestImage, milBuf3Image, M~AND); displayDualImage(&milBufl Image, &milBuf3Image); pause4User("defects review ; Ref(L), Test (R); defects : dark portion)"); } if(debugFlag YES) { while(l) (
Figure img01080002

displayDualImage(&milRefImageOriginal, &milTestImageOriginal); if( pause4User("defects review, Enter'C' to exit, Enterto continue")= 'c')break;
MbufClear(milBufl Image, OL);
MimArith(milResultImage, M~NULL, milBuf2Image, M~NOT);
MimArith(milBuf2Image, milReflmageOriginal, milBuflImage, M~AND);
MbufClear(milBuf3Image, OL);
Figure img01080003

NFmTranslate(milResultImage, milBuf3Image, (-1)*fovReport.imageShiftX, (-I)*fovReport.imageShiftY, M DEFAULT); MimArith(milBuf3Image, M~NULL, milBuf3Image, M~NOT); MimArith(milBuf3Image, milTestImageOriginal, milBuf3Image, M~AND);
<Desc/Clms Page number 109>
displayDualImage(&milBufl Image, &milBuf3Image), break ; } return YES ; }

Claims (34)

REVENDICATIONS
1. Procédé d'inspection d'un substrat configuré, caractérisé en ce qu'il comprend les étapes consistant à: a. préparer une image de référence et une image de test (610); b. extraire des particularités à partir de l'image de référence et extraire des particularités à partir de l'image de test (620); c. mettre en concordance des particularités de l'image de référence et des particularités de l'image de test (625); et d. comparer des particularités de l'image de référence et de l'image de test afin d'identifier des défauts (630).
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à: aligner l'image de test avec l'image de référence (615) avant de mettre en concordance des particularités de l'image de référence et des particularités de l'image de test.
3. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à: enregistrer des défauts identifiés lors de la comparaison de particularités de l'image de référence et de l'image de test (635).
4. Procédé selon la revendication 1, caractérisé en ce que l'image de référence est une image de contraste de tension d'un premier substrat configuré et l'image de test est une image de contraste de tension d'un deuxième substrat.
5. Procédé selon la revendication 1, caractérisé en ce que l'image de référence est une image de contraste de tension d'une première région d'un substrat
<Desc/Clms Page number 111>
configuré et l'image de test est une image de contraste de tension d'une deuxième région du même substrat configuré.
6. Procédé selon la revendication 5, caractérisé en ce que l'image de référence est une image de cellules qui se répètent d'un substrat configuré et l'image de test est une duplication de l'image de référence, décalée d'une cellule par rapport à l'image de référence.
7. Procédé selon la revendication 1, caractérisé en ce que préparer l'image de référence et l'image de test comprend les sous-étapes consistant à lisser l'image de référence et lisser l'image de test (7610B, 9610B, 9610D).
8. Procédé selon la revendication 1, caractérisé en ce que préparer l'image de référence et l'image de test comprend les sous-étapes consistant à normaliser l'image de référence et normaliser l'image de test (7610C, 9610E).
9. Procédé selon la revendication 1, caractérisé en ce que préparer l'image de référence et l'image de test comprend les sous-étapes consistant à mémoriser l'image de référence (9610A) et mémoriser de l'image de test (9610C).
10. Procédé selon la revendication 1, caractérisé en ce qu'extraire des particularités comprend les sous-étapes consistant à: extraire des particularités à partir de l'image de référence (9620A) et ensuite extraire des particularités à partir de l'image de test (9620B).
11. Procédé selon la revendication 1, caractérisé en ce que préparer une image de référence et une image de test et extraire des particularités à partir des images comprennent les étapes consistant à:
<Desc/Clms Page number 112>
mémoriser une image de référence (9610A) et extraire des particularités à partir de l'image de référence (9620A), et mémoriser une image de test (9610C) et extraire des particularités à partir d'une image de test (9620B).
12. Procédé selon la revendication 1, caractérisé en ce que l'image de test et l'image de référence comprennent des données de pixels qui incluent une information d'emplacement et d'intensité et en ce qu'extraire des particularités à partir de l'image de référence et de l'image de test comprend les sous- étapes consistant à: appliquer un effet de seuil à l'information d'intensité pour produire une image à niveau binaire qui inclut des régions de particularités et des régions sans particularités ; utiliser l'image de niveau binaire en tant que masque pour définir comme particularités les régions de l'image de test qui correspondent aux régions de particularités de l'image de niveau binaire.
13. Procédé selon la revendication 1, caractérisé en ce que l'image de test et l'image de référence comprennent des données de pixels qui incluent une information d'emplacement et d'intensité et en ce qu'extraire des particularités à partir de l'image de référence et de l'image de test comprend les sous- étapes consistant à: comparer de façon répétitive l'image de test à une particularité modèle pour produire des données de corrélation qui représentent une corrélation de particularités de l'image de test avec l'image modèle;
<Desc/Clms Page number 113>
appliquer un effet de seuil aux données de corrélation pour identifier les emplacements de particularités à l'intérieur de l'image de test ; détecter des bords de particularités aux emplacements de particularités identifiés.
14. Procédé selon la revendication 1, caractérisé en ce que comparer des particularités de l'image de référence et de l'image de test pour identifier des défauts comprend les sous-étapes consistant à: calculer des propriétés (8630A) de particularités, comparer des propriétés (8630B) de particularités calculées, et déterminer des résultats de comparaison qui satisfont à des critères prédéterminés (8630C) de défauts.
15. Procédé selon la revendication 1, caractérisé en ce que comparer des particularités de l'image de référence et de l'image de test pour identifier des défauts comprend les sous-étapes consistant à: calculer des propriétés de particularités dans l'image de référence (10-630A); calculer des propriétés de particularités dans l'image de test (10-630A); comparer des propriétés de particularités calculées dans l'image de test à des propriétés de particularités calculées dans l'image de référence (10-630B); calculer des statistiques (10-630C) de comparaison de propriétés de particularités ; déterminer des statistiques de comparaison qui satisfont à des critères prédéterminés (10-630D) de défauts.
16. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre
<Desc/Clms Page number 114>
un compte-rendu de statistiques (635) de propriétés de défauts.
17. Procédé selon la revendication 10, caractérisé en ce qu'extraire des particularités à partir de l'image de référence comprend les sous- étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de référence (13-9620A1), enlever de l'image de référence le niveau moy-en d'arrière-plan afin de produire une première image de référence modifiée (13-9620A2), appliquer un effet de seuil à la première image de référence modifiée pour produire une deuxième image de référence modifiée (13-9620A3), et identifier des particularités de la deuxième image de référence modifiée (13-9620A4).
18. Procédé selon la revendication 11, caractérisé en ce qu'extraire des particularités à partir de l'image de test comprend les sous-étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de test (14-9620A1), enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée (14-9620A2), appliquer un effet de seuil à l'image de test modifiée pour produire une deuxième image de test modifiée (14-9620A3), et identifier des particularités de la deuxième image de test modifiée (14-9620A4).
19. Procédé selon la revendication 11, caractérisé en ce qu'extraire des particularités à partir de l'image de référence comprend les sous- étapes consistant à:
<Desc/Clms Page number 115>
mettre en concordance un gabarit de particularités dans l'image de référence (15-9620A3) et identifier des particularités de l'image de référence qui concordent avec le gabarit de particularités (15-9620A4).
20. Procédé selon la revendication 11, dans caractérisé en ce qu'extraire des particularités à partir de l'image de référence comprend les sou-s- étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de référence (15-9620A1), enlever de l'image de référence le niveau moyen d'arrière-plan afin de produire une première image de référence modifiée (15-9620A2), mettre en concordance un gabarit de particularités dans la première image de référence modifiée (15-9620A3), et identifier des particularités dans la deuxième image de référence modifiée qui concordent avec le gabarit de particularités (15-9620A4).
21. Procédé selon la revendication 11, caractérisé en ce qu'extraire des particularités à partir de l'image de test comprend les sous-étapes consistant à: mettre en concordance un gabarit de particularités dans l'image de test (16-9620B3) et identifier des particularités dans l'image de test qui concordent avec le gabarit des particularités (16-9620B4).
22. Procédé selon la revendication 11, caractérisé en ce qu'extraire des particularités à partir de l'image de test comprend les sous-étapes consistant à: calculer un niveau moyen d'arrière-plan de l'image de test (16-9620B1),
<Desc/Clms Page number 116>
enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée (16-9620B2), mettre en concordance un gabarit de particularités dans la première image de test modifiée (16-9620B3), et identifier des particularités dans la deuxième image de test modifiée qui concordent avec le gabarit de particularités (16-9620B4).
23. Appareil d'inspection d'un substrat configuré caractérisé en ce qu'il comprend un système informatique ; et des instructions de commande du système informatique destinées à préparer une image de référence et une image de test (610) d'au moins un substrat configuré, extraire des particularités de l'image de référence et d'extraire des particularités de l'image de test (620), mettre en concordance des particularités de l'image de référence et les particularités de l'image de test (625); et comparer des particularités de l'image de référence et de l'image de test afin d'identifier des défauts (630).
24. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à aligner l'image de test avec l'image de référence (615) avant de mettre en concordance des particularités de l'image de référence et des particularités de l'image de test.
25. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à
<Desc/Clms Page number 117>
enregistrer des défauts identifiés lors de la comparaison de particularités de l'image de référence et de l'image de test (635).
26. Appareil selon la revendication 23, caractérisé en ce qu'il comprend en outre: un sous-système d'imagerie à faisceau électronique pour acquérir des images de contraste de tension d'un substrat configuré à utiliser comme images de test.
27. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à lisser au moins soit l'image de référence, soit l'image de test (7610B,9610B, 9610D).
28. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à normaliser au moins soit l'image de référence, soit l'image de test (7610C,9610E).
29. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à extraire en premier lieu des particularités de l'image de référence (9620A) et extraire ensuite des particularités de l'image de test(9620B).
30. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à calculer des propriétés (8630A) de particularités de l'image de référence et de l'image de test, comparer des propriétés (8630B) de particularités calculées, et déterminer des résultats de comparaison qui satisfont à des critères prédéterminés (8630C) de défauts.
<Desc/Clms Page number 118>
31. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à calculer un niveau moyen d'arrière-plan de l'image de référence (13-9620A1), enlever de l'image de référence le niveau moyen d'arrière-plan afin de produire une première image de référence modifiée (13-9620A2), appliquer un effet de seuil à la première image de référence modifiée pour produire une deuxième image de référence modifiée (13-9620A3), et identifier des particularités de la deuxième image de référence modifiée (13-9620A4).
32. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à calculer un niveau moyen d'arrière-plan de l'image de test (14-9620A1), enlever de l'image de test le niveau moyen d'arrière-plan afin de produire une première image de test modifiée (14-9620A2), appliquer un effet de seuil à l'image de test modifiée pour produire une deuxième image de test modifiée (14-9620A3), et identifier des particularités de la deuxième image de test modifiée (14-9620A4).
33. Appareil selon la revendication 23, caractérisé en ce que les instructions commandent le système informatique de manière à extraire des particularités d'une image en mettant en concordance un gabarit de particularités dans l'image et en identifiant des particularités dans l'image qui concordent avec le gabarit de particularités.
34. Produit programme informatique comprenant un support lisible par ordinateur contenant des
<Desc/Clms Page number 119>
instructions de commande d'un système informatique caractérisé en ce que ces instructions consistent à: préparer une image de référence et une image de test (610) qui représentent des configurations d'au moins un substrat configuré, extraire des particularités de l'image de référence et des particularités de l'image de test- 620), mettre en concordance des particularités de l'image de référence et des particularités de l'image de test (625), et comparer des particularités de l'image de référence et de l'image de test afin de d'identifier des défauts (630).
FR0000169A 1999-01-08 2000-01-07 Detection de defauts a base de particularites Withdrawn FR2791775A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/227,747 US6539106B1 (en) 1999-01-08 1999-01-08 Feature-based defect detection

Publications (1)

Publication Number Publication Date
FR2791775A1 true FR2791775A1 (fr) 2000-10-06

Family

ID=22854292

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0000169A Withdrawn FR2791775A1 (fr) 1999-01-08 2000-01-07 Detection de defauts a base de particularites

Country Status (6)

Country Link
US (1) US6539106B1 (fr)
JP (1) JP4695239B2 (fr)
KR (1) KR100653500B1 (fr)
DE (1) DE10000364B4 (fr)
FR (1) FR2791775A1 (fr)
TW (1) TW473772B (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3127319A1 (fr) * 2021-09-23 2023-03-24 Commissariat à l'Energie Atomique et aux Energies Alternatives Procédé de classification de défauts d’un réseau à analyser

Families Citing this family (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3415035B2 (ja) * 1998-08-07 2003-06-09 オー・エイチ・ティー株式会社 基板検査用センサプローブおよびその製造方法
JP4206192B2 (ja) * 2000-11-09 2009-01-07 株式会社日立製作所 パターン検査方法及び装置
US6252981B1 (en) * 1999-03-17 2001-06-26 Semiconductor Technologies & Instruments, Inc. System and method for selection of a reference die
US20040203138A1 (en) * 1999-04-30 2004-10-14 Caren Michael P. Polynucleotide array fabrication
JP4017285B2 (ja) * 1999-06-02 2007-12-05 松下電器産業株式会社 パターン欠陥検出方法
US6912304B1 (en) * 1999-08-02 2005-06-28 Applied Materials, Inc. Two-dimensional scatter plot technique for defect inspection
JP3907874B2 (ja) * 1999-08-02 2007-04-18 松下電器産業株式会社 欠陥検査方法
US6614924B1 (en) * 1999-08-02 2003-09-02 Applied Materials, Inc. Adaptive mask technique for defect inspection
US7796801B2 (en) * 1999-08-26 2010-09-14 Nanogeometry Research Inc. Pattern inspection apparatus and method
US7817844B2 (en) * 1999-08-26 2010-10-19 Nanogeometry Research Inc. Pattern inspection apparatus and method
US20070131877A9 (en) * 1999-11-29 2007-06-14 Takashi Hiroi Pattern inspection method and system therefor
US6771806B1 (en) * 1999-12-14 2004-08-03 Kla-Tencor Multi-pixel methods and apparatus for analysis of defect information from test structures on semiconductor devices
US6566885B1 (en) * 1999-12-14 2003-05-20 Kla-Tencor Multiple directional scans of test structures on semiconductor integrated circuits
IL133696A (en) * 1999-12-23 2006-04-10 Orbotech Ltd Cam reference inspection of multi-color and contour images
JP4218171B2 (ja) * 2000-02-29 2009-02-04 株式会社日立製作所 走査電子顕微鏡,マッチング方法、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US7655482B2 (en) * 2000-04-18 2010-02-02 Kla-Tencor Chemical mechanical polishing test structures and methods for inspecting the same
US6744913B1 (en) * 2000-04-18 2004-06-01 Semiconductor Technology & Instruments, Inc. System and method for locating image features
US7167583B1 (en) * 2000-06-28 2007-01-23 Landrex Technologies Co., Ltd. Image processing system for use with inspection systems
JP2002014057A (ja) * 2000-06-30 2002-01-18 Nidek Co Ltd 欠陥検査装置
US20020036780A1 (en) * 2000-09-27 2002-03-28 Hiroaki Nakamura Image processing apparatus
US6748110B1 (en) * 2000-11-09 2004-06-08 Cognex Technology And Investment Object and object feature detector system and method
US7109483B2 (en) * 2000-11-17 2006-09-19 Ebara Corporation Method for inspecting substrate, substrate inspecting system and electron beam apparatus
JP2002157295A (ja) * 2000-11-21 2002-05-31 Nec Microsystems Ltd 半導体回路設計装置および半導体回路設計方法
US20020085761A1 (en) * 2000-12-30 2002-07-04 Gary Cao Enhanced uniqueness for pattern recognition
JP2002230546A (ja) * 2001-01-30 2002-08-16 Fujitsu Ltd 画像処理プログラム、画像処理プログラムを記録したコンピュータ読取可能な記録媒体、画像処理方法及び画像処理装置
JP2002303586A (ja) * 2001-04-03 2002-10-18 Hitachi Ltd 欠陥検査方法及び欠陥検査装置
WO2002086804A1 (fr) * 2001-04-18 2002-10-31 Multibeam Systems, Inc. Systeme de traitement d'image pour inspection a faisceaux multiples
JP4199939B2 (ja) * 2001-04-27 2008-12-24 株式会社日立製作所 半導体検査システム
US6987875B1 (en) 2001-05-22 2006-01-17 Cognex Technology And Investment Corporation Probe mark inspection method and apparatus
JP2003004427A (ja) * 2001-06-22 2003-01-08 Hitachi Ltd 画像比較による欠陥検査方法及びその装置
US6850651B2 (en) * 2001-07-02 2005-02-01 Corel Corporation Moiré correction in images
DE10132589B4 (de) * 2001-07-05 2005-11-03 Koenig & Bauer Ag Verfahren zur qualitativen Beurteilung von Material
US7194366B2 (en) * 2001-10-19 2007-03-20 Auburn University System and method for estimating reliability of components for testing and quality optimization
JP2003149121A (ja) * 2001-11-16 2003-05-21 Seiko Instruments Inc 走査型プローブ顕微鏡
US7065237B2 (en) * 2001-12-10 2006-06-20 Canon Kabushiki Kaisha Image processing apparatus and method
KR20030053345A (ko) * 2001-12-22 2003-06-28 동부전자 주식회사 웨이퍼 검사방법
KR100486410B1 (ko) * 2002-04-29 2005-04-29 주식회사 미르기술 회로기판 검사장치용 자동티칭방법
JP2003329563A (ja) * 2002-05-16 2003-11-19 Seiko Instruments Inc 走査型プローブ顕微鏡
US20030225611A1 (en) * 2002-05-30 2003-12-04 Wilson Ethel M. Electronic source inspection process
US7283664B2 (en) * 2002-09-25 2007-10-16 Southwest Research Institute Interactive computer aided analysis of images from sensor combinations
US7395273B2 (en) * 2002-10-31 2008-07-01 General Electric Company System providing receipt inspection reporting
US7103505B2 (en) * 2002-11-12 2006-09-05 Fei Company Defect analyzer
JP2004198265A (ja) * 2002-12-18 2004-07-15 Dainippon Printing Co Ltd 加工製品の外観検査、選別方法および加工製品の外観検査、選別システム
US6934929B2 (en) * 2003-01-13 2005-08-23 Lsi Logic Corporation Method for improving OPC modeling
US7263242B2 (en) * 2003-01-23 2007-08-28 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Method for detecting repetitive surfaces in an optical mouse
US7463765B2 (en) * 2003-02-25 2008-12-09 Lamda-Lite Enterprises Incorporated System and method for detecting and reporting fabrication defects using a multi-variant image analysis
JP3948728B2 (ja) * 2003-03-17 2007-07-25 オルボテック リミテッド パターン検査装置
US7257248B2 (en) * 2003-03-27 2007-08-14 General Electric Company Non-contact measurement system and method
DE112004001024T5 (de) * 2003-06-10 2006-06-01 Ade Corp., Westwood Verfahren und System zur Klassifizierung von an einer Oberfläche eines Substrats auftretenden Defekten unter Verwendung einer grafischen Darstellung von Vielkanal-Daten
DE10331686A1 (de) * 2003-07-14 2005-02-17 Leica Microsystems Semiconductor Gmbh Verfahren zur Bewertung von aufgenommenen Bildern von Wafern
US7324704B2 (en) * 2003-09-11 2008-01-29 Primax Electronics Ltd. Method of repairing scratches in digital images
JP4351522B2 (ja) * 2003-11-28 2009-10-28 株式会社日立ハイテクノロジーズ パターン欠陥検査装置およびパターン欠陥検査方法
US7319335B2 (en) 2004-02-12 2008-01-15 Applied Materials, Inc. Configurable prober for TFT LCD array testing
US7177009B2 (en) * 2004-10-01 2007-02-13 Asml Netherlands B.V. Position determination method and lithographic apparatus
JP4242796B2 (ja) * 2004-03-12 2009-03-25 パナソニック株式会社 画像認識方法及び画像認識装置
US7634127B1 (en) * 2004-07-01 2009-12-15 Advanced Micro Devices, Inc. Efficient storage of fail data to aid in fault isolation
JP4904034B2 (ja) * 2004-09-14 2012-03-28 ケーエルエー−テンカー コーポレイション レチクル・レイアウト・データを評価するための方法、システム及び搬送媒体
JP4562126B2 (ja) 2004-09-29 2010-10-13 大日本スクリーン製造株式会社 欠陥検出装置および欠陥検出方法
US7440607B1 (en) * 2004-11-03 2008-10-21 Kla-Tencor Corporation Outlier substrate inspection
US20070134821A1 (en) * 2004-11-22 2007-06-14 Randhir Thakur Cluster tool for advanced front-end processing
US20070196011A1 (en) * 2004-11-22 2007-08-23 Cox Damon K Integrated vacuum metrology for cluster tool
JP2008521261A (ja) * 2004-11-22 2008-06-19 アプライド マテリアルズ インコーポレイテッド バッチ処理チャンバを用いた基板処理装置
CN101536011B (zh) * 2005-01-21 2013-01-09 光子动力学公司 自动缺陷修复系统
JP2006284433A (ja) * 2005-04-01 2006-10-19 Tokyo Seimitsu Co Ltd 外観検査装置及び外観検査方法
US7535238B2 (en) 2005-04-29 2009-05-19 Applied Materials, Inc. In-line electron beam test system
JP5005893B2 (ja) * 2005-06-22 2012-08-22 浜松ホトニクス株式会社 半導体不良解析装置、不良解析方法、及び不良解析プログラム
KR100909474B1 (ko) * 2005-08-10 2009-07-28 삼성전자주식회사 웨이퍼 결함지수를 사용하여 국부성 불량 모드를 갖는결함성 반도체 웨이퍼의 검출 방법들 및 이에 사용되는장비들
JP4174504B2 (ja) * 2005-08-31 2008-11-05 アドバンスド・マスク・インスペクション・テクノロジー株式会社 試料検査装置、試料検査方法及びプログラム
US7676077B2 (en) * 2005-11-18 2010-03-09 Kla-Tencor Technologies Corp. Methods and systems for utilizing design data in combination with inspection data
US7570796B2 (en) 2005-11-18 2009-08-04 Kla-Tencor Technologies Corp. Methods and systems for utilizing design data in combination with inspection data
US8041103B2 (en) * 2005-11-18 2011-10-18 Kla-Tencor Technologies Corp. Methods and systems for determining a position of inspection data in design data space
US7570800B2 (en) * 2005-12-14 2009-08-04 Kla-Tencor Technologies Corp. Methods and systems for binning defects detected on a specimen
TWI318534B (en) * 2006-03-23 2009-12-11 Novatek Microelectronics Corp Method for processing brightness of an image and related device
US7786742B2 (en) 2006-05-31 2010-08-31 Applied Materials, Inc. Prober for electronic device testing on large area substrates
DE602006005628D1 (de) * 2006-06-13 2009-04-23 Abb Oy Verfahren und Vorrichtung zur Erkennung von sich wiederholenden Mustern
JP5091430B2 (ja) * 2006-06-14 2012-12-05 ルネサスエレクトロニクス株式会社 半導体不良解析装置、不良解析方法、及び不良解析プログラム
JP4931483B2 (ja) * 2006-06-14 2012-05-16 ルネサスエレクトロニクス株式会社 半導体不良解析装置、不良解析方法、及び不良解析プログラム
JP4301261B2 (ja) * 2006-07-10 2009-07-22 株式会社日立製作所 パターンマッチング方法、及び装置
JP4982125B2 (ja) * 2006-07-11 2012-07-25 株式会社東芝 欠陥検査方法及びパターン抽出方法
JP4795883B2 (ja) * 2006-07-21 2011-10-19 株式会社日立ハイテクノロジーズ パターン検査・計測装置
JP4388045B2 (ja) * 2006-08-29 2009-12-24 株式会社東芝 パターン検査方法
JP5427609B2 (ja) * 2006-12-19 2014-02-26 ケーエルエー−テンカー・コーポレーション 検査レシピ作成システムおよびその方法
WO2008086282A2 (fr) * 2007-01-05 2008-07-17 Kla-Tencor Corporation Procédés et systèmes pour utiliser des informations électriques dans le cadre de la fabrication d'un dispositif sur une tranche afin d'accomplir une ou plusieurs fonctions liées à des défauts
US7869643B2 (en) * 2007-01-31 2011-01-11 Applied Materials South East Asia Pte. Ltd. Advanced cell-to-cell inspection
WO2008096211A2 (fr) 2007-02-08 2008-08-14 Freescale Semiconductor, Inc. Mesure de dimensions critiques de plaquettes de silicium semi-conductrices
JP5002291B2 (ja) * 2007-03-16 2012-08-15 株式会社日立ハイテクノロジーズ 解析装置、プログラム、欠陥検査装置、レビュー装置、解析システム及び解析方法
US7738093B2 (en) 2007-05-07 2010-06-15 Kla-Tencor Corp. Methods for detecting and classifying defects on a reticle
US7962863B2 (en) * 2007-05-07 2011-06-14 Kla-Tencor Corp. Computer-implemented methods, systems, and computer-readable media for determining a model for predicting printability of reticle features on a wafer
US8213704B2 (en) * 2007-05-09 2012-07-03 Kla-Tencor Corp. Methods and systems for detecting defects in a reticle design pattern
US7796804B2 (en) 2007-07-20 2010-09-14 Kla-Tencor Corp. Methods for generating a standard reference die for use in a die to standard reference die inspection and methods for inspecting a wafer
US7711514B2 (en) * 2007-08-10 2010-05-04 Kla-Tencor Technologies Corp. Computer-implemented methods, carrier media, and systems for generating a metrology sampling plan
TWI469235B (zh) * 2007-08-20 2015-01-11 Kla Tencor Corp 決定實際缺陷是潛在系統性缺陷或潛在隨機缺陷之由電腦實施之方法
US8073259B1 (en) * 2007-08-22 2011-12-06 Adobe Systems Incorporated Method and apparatus for image feature matching in automatic image stitching
JP5104291B2 (ja) * 2007-12-26 2012-12-19 富士通株式会社 画像解析プログラム、画像解析装置、および画像解析方法
US8238635B2 (en) * 2008-03-21 2012-08-07 General Electric Company Method and system for identifying defects in radiographic image data corresponding to a scanned object
US8139844B2 (en) * 2008-04-14 2012-03-20 Kla-Tencor Corp. Methods and systems for determining a defect criticality index for defects on wafers
JP4813517B2 (ja) * 2008-05-29 2011-11-09 オリンパス株式会社 画像処理装置、画像処理プログラム、画像処理方法、および電子機器
JP5114302B2 (ja) * 2008-06-12 2013-01-09 株式会社日立ハイテクノロジーズ パターン検査方法,パターン検査装置及びパターン処理装置
KR101729669B1 (ko) 2008-07-28 2017-04-24 케이엘에이-텐코어 코오포레이션 웨이퍼 상의 메모리 디바이스 영역에서 검출된 결함들을 분류하기 위한 컴퓨터-구현 방법들, 컴퓨터-판독 가능 매체, 및 시스템들
JP5287178B2 (ja) * 2008-11-27 2013-09-11 富士通セミコンダクター株式会社 欠陥レビュー装置
JP5429869B2 (ja) * 2008-12-22 2014-02-26 株式会社 Ngr パターン検査装置および方法
US8150140B2 (en) * 2008-12-22 2012-04-03 Ngr Inc. System and method for a semiconductor lithographic process control using statistical information in defect identification
WO2010092952A1 (fr) * 2009-02-10 2010-08-19 公立大学法人大阪府立大学 Dispositif de reconnaissance de motif
US8775101B2 (en) 2009-02-13 2014-07-08 Kla-Tencor Corp. Detecting defects on a wafer
US8204297B1 (en) 2009-02-27 2012-06-19 Kla-Tencor Corp. Methods and systems for classifying defects detected on a reticle
US8112241B2 (en) 2009-03-13 2012-02-07 Kla-Tencor Corp. Methods and systems for generating an inspection process for a wafer
US8068662B2 (en) * 2009-03-30 2011-11-29 Hermes Microvision, Inc. Method and system for determining a defect during charged particle beam inspection of a sample
US8318512B2 (en) * 2009-04-29 2012-11-27 Applied Materials, Inc. Automated substrate handling and film quality inspection in solar cell processing
US8644619B2 (en) * 2009-05-01 2014-02-04 Hy-Ko Products Company Key blank identification system with groove scanning
US8965103B2 (en) * 2009-07-16 2015-02-24 Olympus Corporation Image processing apparatus and image processing method
US8675950B2 (en) * 2009-07-31 2014-03-18 Olympus Corporation Image processing apparatus and image processing method
US8791998B2 (en) * 2009-07-31 2014-07-29 Olympus Corporation Image processing apparatus and method for displaying images
JP4769320B2 (ja) * 2009-09-25 2011-09-07 ルネサスエレクトロニクス株式会社 半導体装置の不良解析方法及び装置並びにそれらのプログラム
KR101711193B1 (ko) * 2010-06-04 2017-02-28 삼성전자 주식회사 웨이퍼 검사 방법 및 웨이퍼 검사 시스템
US8781781B2 (en) 2010-07-30 2014-07-15 Kla-Tencor Corp. Dynamic care areas
CN103210482B (zh) * 2010-08-09 2016-06-22 Bt成像股份有限公司 持久性特征检测
EP2630473A2 (fr) * 2010-10-19 2013-08-28 3M Innovative Properties Company Enregistrement continu de la gravité de la non-uniformité pour la détection de la variabilité dans les matières à base de toile
JP5566265B2 (ja) * 2010-11-09 2014-08-06 東京エレクトロン株式会社 基板処理装置、プログラム、コンピュータ記憶媒体及び基板の搬送方法
US9031312B2 (en) 2010-11-12 2015-05-12 3M Innovative Properties Company Rapid processing and detection of non-uniformities in web-based materials
US9170211B2 (en) 2011-03-25 2015-10-27 Kla-Tencor Corp. Design-based inspection using repeating structures
DE102011105182A1 (de) * 2011-06-17 2012-12-20 Albert-Ludwigs-Universität Freiburg Verfahren zur Bereitstellung eines Vorhersagemodells für eine Rissdetektion und Verfahren zur Rissdetektion an einer Halbleiterstruktur
KR101642897B1 (ko) * 2011-07-13 2016-07-26 주식회사 고영테크놀러지 검사방법
US8750596B2 (en) 2011-08-19 2014-06-10 Cognex Corporation System and method for identifying defects in a material
US9087367B2 (en) 2011-09-13 2015-07-21 Kla-Tencor Corp. Determining design coordinates for wafer defects
JP5948203B2 (ja) * 2011-10-12 2016-07-06 富士フイルム株式会社 内視鏡システム及びその作動方法
US9471057B2 (en) * 2011-11-09 2016-10-18 United Technologies Corporation Method and system for position control based on automated defect detection feedback
US8705839B2 (en) * 2011-11-18 2014-04-22 Sharp Laboratories Of America, Inc. Electronic devices for defect detection
TWI511084B (zh) * 2012-01-20 2015-12-01 Asml Netherlands Bv 可自組聚合物及用於微影之方法
US8831334B2 (en) 2012-01-20 2014-09-09 Kla-Tencor Corp. Segmentation for wafer inspection
US9595091B2 (en) * 2012-04-19 2017-03-14 Applied Materials Israel, Ltd. Defect classification using topographical attributes
US9858658B2 (en) * 2012-04-19 2018-01-02 Applied Materials Israel Ltd Defect classification using CAD-based context attributes
US8826200B2 (en) 2012-05-25 2014-09-02 Kla-Tencor Corp. Alteration for wafer inspection
JP5783953B2 (ja) * 2012-05-30 2015-09-24 株式会社日立ハイテクノロジーズ パターン評価装置およびパターン評価方法
US8831333B2 (en) * 2012-06-13 2014-09-09 Nanya Technology Corporation Mask pattern analysis apparatus and method for analyzing mask pattern
US20140050387A1 (en) * 2012-08-17 2014-02-20 Cognex Corporation System and Method for Machine Vision Inspection
JP5921990B2 (ja) * 2012-08-23 2016-05-24 株式会社ニューフレアテクノロジー 欠陥検出方法
US9189844B2 (en) 2012-10-15 2015-11-17 Kla-Tencor Corp. Detecting defects on a wafer using defect-specific information
US9053527B2 (en) 2013-01-02 2015-06-09 Kla-Tencor Corp. Detecting defects on a wafer
US9134254B2 (en) 2013-01-07 2015-09-15 Kla-Tencor Corp. Determining a position of inspection system output in design data space
US9311698B2 (en) 2013-01-09 2016-04-12 Kla-Tencor Corp. Detecting defects on a wafer using template image matching
JP6220521B2 (ja) 2013-01-18 2017-10-25 株式会社ニューフレアテクノロジー 検査装置
US9390491B2 (en) * 2013-01-30 2016-07-12 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for automatic quality control for assembly line processes
WO2014149197A1 (fr) 2013-02-01 2014-09-25 Kla-Tencor Corporation Détection de défauts sur une tranche utilisant des informations propres aux défauts et multi-canal
JP6047418B2 (ja) * 2013-02-18 2016-12-21 株式会社ニューフレアテクノロジー 検査方法および検査装置
JP5919212B2 (ja) * 2013-03-26 2016-05-18 富士フイルム株式会社 目視照合支援装置およびその制御方法
JP6063315B2 (ja) * 2013-03-26 2017-01-18 富士フイルム株式会社 真贋判定システム,特徴点登録装置およびその動作制御方法,ならびに照合判定装置およびその動作制御方法
US9865512B2 (en) 2013-04-08 2018-01-09 Kla-Tencor Corp. Dynamic design attributes for wafer inspection
US9310320B2 (en) 2013-04-15 2016-04-12 Kla-Tencor Corp. Based sampling and binning for yield critical defects
US10373470B2 (en) 2013-04-29 2019-08-06 Intelliview Technologies, Inc. Object detection
KR101643357B1 (ko) 2013-08-26 2016-07-27 가부시키가이샤 뉴플레어 테크놀로지 촬상 장치, 검사 장치 및 검사 방법
US20150120220A1 (en) * 2013-10-29 2015-04-30 Kla-Tencor Corporation Detecting IC Reliability Defects
WO2015143569A1 (fr) * 2014-03-28 2015-10-01 Intelliview Technologies Inc. Détection de fuite
CA2847707C (fr) 2014-03-28 2021-03-30 Intelliview Technologies Inc. Detection de fuite
JP6570010B2 (ja) * 2014-04-02 2019-09-04 ケーエルエー コーポレイション マスクのための高密度位置合わせマップを生成するための方法、システム、およびコンピュータプログラム製品
JP6499898B2 (ja) 2014-05-14 2019-04-10 株式会社ニューフレアテクノロジー 検査方法、テンプレート基板およびフォーカスオフセット方法
KR101614207B1 (ko) * 2014-05-15 2016-04-20 세메스 주식회사 획득한 영상의 특징점을 추출하는 방법 및 이를 이용하여 웨이퍼의 결함을 검출하는 방법
KR102474252B1 (ko) * 2014-06-12 2022-12-05 피디에프 솔루션즈, 인코포레이티드 충진재 셀들, 탭 셀들, 디캡 셀들, 스크라이브 라인들, 및/또는 더미 충진, 그리고 이들을 포함하는 제품 ic 칩들의 용도와는 달리 사용되는 부위들에의 ic 테스트 구조들 및/또는 전자 비임 타깃 패드들의 편의적 배치
US9816939B2 (en) * 2014-07-22 2017-11-14 Kla-Tencor Corp. Virtual inspection systems with multiple modes
US10943357B2 (en) 2014-08-19 2021-03-09 Intelliview Technologies Inc. Video based indoor leak detection
JP6486050B2 (ja) * 2014-09-29 2019-03-20 株式会社Screenホールディングス 検査装置および検査方法
US9799575B2 (en) 2015-12-16 2017-10-24 Pdf Solutions, Inc. Integrated circuit containing DOEs of NCEM-enabled fill cells
US10199283B1 (en) 2015-02-03 2019-02-05 Pdf Solutions, Inc. Method for processing a semiconductor wager using non-contact electrical measurements indicative of a resistance through a stitch, where such measurements are obtained by scanning a pad comprised of at least three parallel conductive stripes using a moving stage with beam deflection to account for motion of the stage
US9805994B1 (en) 2015-02-03 2017-10-31 Pdf Solutions, Inc. Mesh-style NCEM pads, and process for making semiconductor dies, chips, and wafers using in-line measurements from such pads
US9846934B2 (en) 2015-04-13 2017-12-19 Anchor Semiconductor Inc. Pattern weakness and strength detection and tracking during a semiconductor device fabrication process
TWI521476B (zh) * 2015-04-17 2016-02-11 銘傳大學 週期性圖案之自動光學檢測方法
US10535131B2 (en) * 2015-11-18 2020-01-14 Kla-Tencor Corporation Systems and methods for region-adaptive defect detection
KR102566134B1 (ko) * 2015-12-07 2023-08-10 삼성전자주식회사 반도체 소자의 3d 프로파일링 시스템 및 이의 동작 방법
US10978438B1 (en) 2015-12-16 2021-04-13 Pdf Solutions, Inc. IC with test structures and E-beam pads embedded within a contiguous standard cell area
US10593604B1 (en) 2015-12-16 2020-03-17 Pdf Solutions, Inc. Process for making semiconductor dies, chips, and wafers using in-line measurements obtained from DOEs of NCEM-enabled fill cells
US9929063B1 (en) 2016-04-04 2018-03-27 Pdf Solutions, Inc. Process for making an integrated circuit that includes NCEM-Enabled, tip-to-side gap-configured fill cells, with NCEM pads formed from at least three conductive stripes positioned between adjacent gates
US9627371B1 (en) 2016-04-04 2017-04-18 Pdf Solutions, Inc. Integrated circuit containing standard logic cells and library-compatible, NCEM-enabled fill cells, including at least via-open-configured, GATE-short-configured, GATECNT-short-configured, and AA-short-configured, NCEM-enabled fill cells
US9905553B1 (en) 2016-04-04 2018-02-27 Pdf Solutions, Inc. Integrated circuit containing standard logic cells and library-compatible, NCEM-enabled fill cells, including at least via-open-configured, AACNT-short-configured, GATECNT-short-configured, and metal-short-configured, NCEM-enabled fill cells
JP6666046B2 (ja) * 2016-04-25 2020-03-13 キヤノン株式会社 画像処理装置および画像処理方法
US9748128B1 (en) 2016-06-01 2017-08-29 Micron Technology, Inc. Systems and methods for wafer alignment
KR101900180B1 (ko) * 2017-01-11 2018-09-18 포항공과대학교 산학협력단 영상의 특성 추출을 위한 영상 분석 방법 및 장치
US10628935B2 (en) * 2017-01-30 2020-04-21 Zhongke Jingyuan Electron Limited Method and system for identifying defects of integrated circuits
US9748153B1 (en) 2017-03-29 2017-08-29 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second does of standard cell compatible, NCEM-enabled fill cells, with the first DOE including side-to-side short configured fill cells, and the second DOE including tip-to-side short configure
US9773774B1 (en) 2017-03-30 2017-09-26 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second DOEs of standard cell compatible, NCEM-enabled fill cells, with the first DOE including chamfer short configured fill cells, and the second DOE including corner short configured fill cells
JP2018190851A (ja) * 2017-05-09 2018-11-29 株式会社 Ngr コンタクトホールの欠陥検出方法
JP2018190323A (ja) * 2017-05-11 2018-11-29 富士通株式会社 比較プログラム、比較装置及び比較方法
US9786649B1 (en) 2017-06-27 2017-10-10 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second DOEs of standard cell compatible, NCEM-enabled fill cells, with the first DOE including via open configured fill cells, and the second DOE including stitch open configured fill cells
US9768083B1 (en) 2017-06-27 2017-09-19 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second DOEs of standard cell compatible, NCEM-enabled fill cells, with the first DOE including merged-via open configured fill cells, and the second DOE including snake open configured fill cells
US10096530B1 (en) 2017-06-28 2018-10-09 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second DOEs of standard cell compatible, NCEM-enabled fill cells, with the first DOE including merged-via open configured fill cells, and the second DOE including stitch open configured fill cells
US9865583B1 (en) 2017-06-28 2018-01-09 Pdf Solutions, Inc. Process for making and using a semiconductor wafer containing first and second DOEs of standard cell compatible, NCEM-enabled fill cells, with the first DOE including snake open configured fill cells, and the second DOE including stitch open configured fill cells
US10460434B2 (en) * 2017-08-22 2019-10-29 Applied Materials Israel Ltd. Method of defect detection and system thereof
US10572991B2 (en) * 2017-11-07 2020-02-25 Kla-Tencor Corporation System and method for aligning semiconductor device reference images and test images
US10997712B2 (en) * 2018-01-18 2021-05-04 Canon Virginia, Inc. Devices, systems, and methods for anchor-point-enabled multi-scale subfield alignment
JP7030566B2 (ja) * 2018-03-06 2022-03-07 株式会社ニューフレアテクノロジー パターン検査方法及びパターン検査装置
KR102055877B1 (ko) * 2018-05-04 2019-12-13 (주) 브릭 반복 패턴 영상의 결함 위치 파악 장치 및 방법
IL260417B (en) * 2018-07-04 2021-10-31 Tinyinspektor Ltd System and method for automatic visual inspection
JP6795562B2 (ja) * 2018-09-12 2020-12-02 ファナック株式会社 検査装置及び機械学習方法
US10832399B2 (en) * 2018-10-23 2020-11-10 International Business Machines Corporation Detection for abnormal connectivity on a product
US10801968B2 (en) * 2018-10-26 2020-10-13 Kla-Tencor Corporation Algorithm selector based on image frames
WO2020191121A1 (fr) * 2019-03-20 2020-09-24 Carl Zeiss Smt Inc. Procédé d'imagerie d'une région d'intérêt d'un échantillon à l'aide d'un microscope à rayons x tomographique, microscope, système et programme informatique
CN112115194B (zh) * 2019-06-21 2023-11-17 腾讯科技(深圳)有限公司 群体对比画像确定方法、服务器、终端、系统及存储介质
EP3931853B1 (fr) * 2019-08-16 2024-06-19 Protochips, Inc. Application automatisée de correction de dérive à un échantillon étudié sous microscope électronique
JP7541840B2 (ja) * 2020-03-17 2024-08-29 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
DE102020125929A1 (de) * 2020-05-06 2021-11-11 Taiwan Semiconductor Manufacturing Co., Ltd. Verfahren zur nicht destruktiven überprüfung parasitärer ätzabscheidungen auf zellen
US11749569B2 (en) * 2020-05-06 2023-09-05 Taiwan Semiconductor Manufacturing Company, Ltd. Method for non-destructive inspection of cell etch redeposition
CN113020428B (zh) * 2021-03-24 2022-06-28 北京理工大学 级进模的加工监控方法、装置、设备及存储介质
CN113298776B (zh) * 2021-05-21 2023-01-24 佛山职业技术学院 一种金属闭式水泵叶轮外观缺陷检测方法
US20230267596A1 (en) * 2022-02-23 2023-08-24 Nanya Technology Corporation System and non-transitory computer-readable medium for identifying cause of manufacturing defects
CN115144710B (zh) * 2022-07-11 2024-08-13 西南交通大学 一种基于二值图像特征的开关柜绝缘状态检测方法
US20240221141A1 (en) * 2022-12-28 2024-07-04 Kla Corporation Pattern segmentation for nuisance suppression
CN115876823B (zh) * 2023-01-19 2023-07-14 合肥晶合集成电路股份有限公司 薄膜缺陷的检测方法、薄膜缺陷的检测装置及检测系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3838032A1 (de) * 1987-11-09 1989-05-24 Hitachi Ltd Verfahren und einrichtung zur strukturpruefung
EP0504944B1 (fr) * 1991-03-22 1998-09-23 Nec Corporation Procédé d'analyse de fautes utilisant un faisceau d'électrons
JP3148353B2 (ja) 1991-05-30 2001-03-19 ケーエルエー・インストルメンツ・コーポレーション 電子ビーム検査方法とそのシステム
DE4222804A1 (de) * 1991-07-10 1993-04-01 Raytheon Co Einrichtung und verfahren zur automatischen visuellen pruefung elektrischer und elektronischer baueinheiten
US5495535A (en) * 1992-01-31 1996-02-27 Orbotech Ltd Method of inspecting articles
JP3730263B2 (ja) 1992-05-27 2005-12-21 ケーエルエー・インストルメンツ・コーポレーション 荷電粒子ビームを用いた自動基板検査の装置及び方法
US5401972A (en) 1993-09-02 1995-03-28 Schlumberger Technologies, Inc. Layout overlay for FIB operations
US5493116A (en) 1993-10-26 1996-02-20 Metrologix, Inc. Detection system for precision measurements and high resolution inspection of high aspect ratio structures using particle beam devices
JPH07201946A (ja) * 1993-12-28 1995-08-04 Hitachi Ltd 半導体装置等の製造方法及びその装置並びに検査方法及びその装置
JPH08287252A (ja) * 1995-04-11 1996-11-01 Matsushita Electric Ind Co Ltd ネジ穴位置認識方法
JP4657394B2 (ja) * 1997-01-13 2011-03-23 シュルンベルジェ テクノロジーズ, インコーポレイテッド ウエハにおける欠陥を検知する方法及び装置
JPH10213422A (ja) * 1997-01-29 1998-08-11 Hitachi Ltd パタ−ン検査装置
US6169816B1 (en) * 1997-05-14 2001-01-02 Applied Imaging, Inc. Identification of objects of interest using multiple illumination schemes and finding overlap of features in corresponding multiple images
JPH113920A (ja) * 1997-06-12 1999-01-06 Advantest Corp 荷電粒子線装置
US6122397A (en) * 1997-07-03 2000-09-19 Tri Path Imaging, Inc. Method and apparatus for maskless semiconductor and liquid crystal display inspection
US6072897A (en) * 1997-09-18 2000-06-06 Applied Materials, Inc. Dimension error detection in object

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3127319A1 (fr) * 2021-09-23 2023-03-24 Commissariat à l'Energie Atomique et aux Energies Alternatives Procédé de classification de défauts d’un réseau à analyser
WO2023046637A1 (fr) * 2021-09-23 2023-03-30 Commissariat à l'Energie Atomique et aux Energies Alternatives Procede de classification de defauts d'un reseau a analyser

Also Published As

Publication number Publication date
JP4695239B2 (ja) 2011-06-08
TW473772B (en) 2002-01-21
US6539106B1 (en) 2003-03-25
DE10000364B4 (de) 2013-01-31
KR20000052623A (ko) 2000-08-25
KR100653500B1 (ko) 2006-12-04
JP2000208575A (ja) 2000-07-28
DE10000364A1 (de) 2000-07-13

Similar Documents

Publication Publication Date Title
FR2791775A1 (fr) Detection de defauts a base de particularites
JP5225297B2 (ja) ウエハー上に形成されたダイに於けるアレイ領域の認識方法、ならびに係る方法の設定方法
US10853932B2 (en) Method of defect detection on a specimen and system thereof
US20240289945A1 (en) Method and system for classifying defects in wafer using wafer-defect images, based on deep learning
KR102083706B1 (ko) 반도체 검사 레시피 생성, 결함 리뷰 및 계측을 위한 적응적 샘플링
TWI672636B (zh) 對一晶圓上偵測之缺陷進行分類之方法、系統及非暫時性電腦可讀媒體
US7747062B2 (en) Methods, defect review tools, and systems for locating a defect in a defect review process
JP5624326B2 (ja) ウェーハ上に形成されたアレイ領域のための検査領域のエッジを正確に識別する方法、及び、ウェーハ上に形成されたアレイ領域に検知された欠陥をビニングする方法
TWI751306B (zh) 缺陷偵測之方法及系統
US7734082B2 (en) Defect inspection method
CN111462113B (zh) 无图形晶圆的复检方法
KR102132328B1 (ko) Cad-기반 컨텍스트 속성들을 사용하는 결함 분류
US7764826B2 (en) Method and apparatus of reviewing defects on a semiconductor device
JP2020115131A (ja) 試験片の調査の方法およびそのシステム
KR20220014805A (ko) 반도체 시편의 검사에 사용가능한 훈련 데이터의 생성
Tobin Inspection in semiconductor manufacturing
CN109154575A (zh) 结合片块及基于设计的缺陷检测
CN109075094B (zh) 用于具有噪声边界阈值的晶片检验的系统及方法
Pahwa et al. Automated void detection in TSVs from 2D X-ray scans using supervised learning with 3D X-ray scans
TW202225640A (zh) 半導體樣品的三維重建
KR20230140394A (ko) 반도체 시편의 기계 학습 기반 검사 및 그의 훈련
JP7475901B2 (ja) 試験片上の欠陥検出の方法およびそのシステム
Owada et al. Detection of Fake Images Focused on Few Local Blocks
Bose et al. Chip-Bond Process Control with Computer Vision
TW202300900A (zh) 以經呈現設計影像之設計照護區域之分段

Legal Events

Date Code Title Description
TP Transmission of property
ST Notification of lapse