Blockage detection via image analysis
Through image analysis, the blockage of the substrate processing equipment parts is identified, and the problems of long and inaccurate manual inspection in the prior art are solved, and automated and accurate blockage detection and correction are realized, ensuring the cleanliness and performance of the equipment.
Patent Information
- Application Number
- CN202380064002.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-09
- Filing Date
- 2023-09-06
- Publication Date
- 2025-04-18
AI Technical Summary
When detecting blockages in substrate processing equipment parts, the manual inspection time is long, inaccurate and subjective, and conventional cleaning procedures cannot effectively solve the problems of parts cleanliness and performance.
Images of the substrate processing device parts are identified through image analysis, the adjacent angular distance and area of the holes are determined, partially blocked holes are identified, and related correction actions are performed based on this.
Automatic and accurate blockage detection is realized, avoiding the time and subjectivity of manual inspection, and ensuring that the cleanliness and performance data of the substrate processing equipment parts meet the threshold.
Smart Images

Figure CN119856198A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to image analysis, and more particularly, to occlusion detection via image analysis. Background Art
[0002] Manufacturing equipment includes different parts used to produce products. For example, substrate processing equipment includes parts used to produce substrates. The quality and cleanliness of the parts will affect the performance data of the product. Summary of the invention
[0003] The following is a simplified summary of the present disclosure to provide a basic understanding of some aspects of the present disclosure. This summary is not a broad overview of the present disclosure. It is neither intended to identify the key or important elements of the present disclosure, nor is it intended to describe any scope of the specific embodiments of the present disclosure or any scope of the claims. Its sole purpose is to present some concepts of the present disclosure in a simplified form as a prelude to a more detailed description presented later.
[0004] In one aspect of the present disclosure, a method includes identifying an image of a substrate processing equipment part that forms a plurality of holes. The method also includes determining, by a processing device, corresponding adjacent angular distances for each of the plurality of holes and corresponding areas for each of the plurality of holes based on the image. The method also includes identifying, by the processing device, a first subset of at least partially blocked holes based on at least one of the corresponding adjacent angular distances or the corresponding areas for each of the plurality of holes. A corrective action associated with the substrate processing equipment part is performed based on the first subset of at least partially blocked holes.
[0005] In another aspect of the present disclosure, a non-transitory computer-readable storage medium stores instructions that, when executed, cause a processing device to perform operations. The operations include identifying an image of a substrate processing equipment part that forms a plurality of holes. The operations also include determining, based on the image, a corresponding adjacent angular distance for each of the plurality of holes and a corresponding area for each of the plurality of holes. The operations also include identifying a first subset of at least partially blocked holes based on at least one of the corresponding adjacent angular distances or the corresponding area for each of the plurality of holes. A corrective action associated with the substrate processing equipment part is performed based on the first subset of at least partially blocked holes.
[0006] In another aspect of the present disclosure, a system includes a memory and a processing device coupled to the memory. The processing device is used to identify an image of a substrate processing equipment part that forms a plurality of holes. The processing device is also used to determine a corresponding adjacent angular distance for each of the plurality of holes and a corresponding area for each of the plurality of holes based on the image. The processing device is also used to identify a first subset of the plurality of holes that are at least partially blocked based on at least one of the corresponding adjacent angular distance or the corresponding area for each of the plurality of holes. A corrective action associated with the substrate processing equipment part is performed based on the first subset of the plurality of holes that are at least partially blocked. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The present disclosure is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings.
[0008] Figure 1 is a block diagram illustrating an exemplary system architecture according to certain implementations.
[0009] Figure 2 A dataset generator for creating a dataset for a machine learning model according to certain embodiments is shown.
[0010] Figure 3 is a block diagram illustrating determining prediction data according to certain embodiments.
[0011] Figure 4A An image capture device according to certain embodiments is shown.
[0012] Figure 4B -C shows an image of parts of a substrate processing apparatus according to certain embodiments.
[0013] Figure 4D -F shows the outline of a hole from an image of a substrate processing equipment part according to certain embodiments.
[0014] Figure 4G A map of nearest neighbor holes of a substrate processing equipment component is shown in accordance with certain embodiments.
[0015] Figure 4H A mapped hole spiral of a substrate processing equipment component is shown in accordance with certain embodiments.
[0016] Figure 5A -D is a flow chart of a method associated with occlusion detection via image analysis according to certain embodiments.
[0017] Figure 6 is a block diagram illustrating a computer system according to certain embodiments. DETAILED DESCRIPTION
[0018] Techniques for clogging detection via image analysis are described herein (eg, showerhead clogging detection from backlight images using image analysis).
[0019] Manufacturing equipment includes different parts used to produce products. For example, substrate processing equipment includes parts used to produce substrates. Some parts, such as showerheads, pedestals, etc., form holes (e.g., channels from the upper surface to the lower surface) to provide fluids (e.g., gas, liquid, plasma) to various parts of the substrate processing system. The quality and cleanliness of the parts will affect the performance data of the product. For example, a complete or partial blockage of the hole of a part may result in the production of substrates with performance data that does not meet the threshold (e.g., the production of bad wafers).
[0020] In some conventional systems, parts are manually inspected in an attempt to determine if the parts meet quality and cleanliness requirements to produce substrates with performance data that meets thresholds. Manual inspection can take a significant amount of time, is dependent on the user performing the inspection, and can be inaccurate.
[0021] In some conventional systems, parts are cleaned at set intervals in an attempt to produce substrates that meet threshold performance data. Over time, parts become dirty, damaged, worn, have foreign matter stuck in holes, etc., all of which cannot be solved by conventional cleaning procedures at set intervals. This can result in substrates that do not meet threshold performance data, equipment damage, reduced yields, production interruptions, etc.
[0022] The devices, systems, and methods disclosed herein provide blockage detection via image analysis.
[0023] The processing device identifies an image of a substrate processing equipment part that forms a hole. In some examples, the substrate processing equipment part is a shower head having an upper surface and a lower surface, and the upper surface and the lower surface are substantially planar and substantially parallel to each other. The hole (e.g., the channel) can be formed from the upper surface to the lower surface. The hole (e.g., the central axis of the channel) can be at a certain angle (e.g., 2-8 degrees) to the upper surface and / or the lower surface. An image of one surface (e.g., the upper surface) can be captured while light is provided to the opposite surface (e.g., the lower surface), thereby providing light (e.g., a backlight image) through an unblocked hole.
[0024] In some embodiments, the processing device determines the corresponding adjacent angular distances of each of the holes and the corresponding areas of each of the holes based on the image.
[0025] The processing device identifies a first subset of at least partial blockages of the apertures based on at least one of corresponding adjacent angular distances or corresponding areas of each of the apertures. A corrective action associated with a substrate processing equipment part is performed based on the first subset of at least partial blockages of the apertures.
[0026] Various aspects of the present disclosure result in technical advantages. The present disclosure avoids the time, inaccuracy and subjectivity of conventional manual inspection. The present disclosure produces substrates that meet thresholds, avoids equipment damage, increases yields, avoids production interruptions, etc.
[0027] Although some embodiments of the present disclosure describe blockage detection, the present disclosure may be applied to detection of partial blockages, worn parts, foreign matter, parts whose cleanliness does not meet a threshold cleanliness, and / or the like.
[0028] Figure 1 1 is a block diagram illustrating an exemplary system 100 (exemplary system architecture) according to certain embodiments. System 100 includes client devices 120, manufacturing equipment 124, sensors 126, metrology equipment 128, prediction server 112, and data storage 140. In some embodiments, prediction server 112 is part of prediction system 110. In some embodiments, prediction system 110 also includes server machines 170 and 180.
[0029] In some embodiments, one or more of the client device 120, the manufacturing equipment 124, the sensor 126, the metering device 128, the prediction server 112, the data store 140, the server machine 170, and / or the server machine 180 are coupled to each other via a network 130 for generating prediction data 160 to perform congestion detection. In some embodiments, the network 130 is a public network that provides the client device 120 with access to the prediction server 112, the data store 140, and other publicly available computing devices. In some embodiments, the network 130 is a private network that provides the client device 120 with access to the manufacturing equipment 124, the sensor 126, the metering device 128, the data store 140, and other privately available computing devices. In some embodiments, network 130 includes one or more Wide Area Networks (WAN), Local Area Networks (LAN), wired networks (e.g., Ethernet), wireless networks (e.g., 802.11 networks or Wi-Fi networks), cellular networks (e.g., Long Term Evolution (LTE) networks), routers, hubs, switches, server computers, cloud computing networks, and / or combinations thereof.
[0030] In some embodiments, the client device 120 includes a computing device, such as a personal computer (PC), a laptop computer, a mobile phone, a smart phone, a tablet computer, a netbook computer, etc. In some embodiments, the client device 120 includes a corrective action component 122. In some embodiments, the corrective action component 122 may also be included in the prediction system 110 (e.g., a machine learning processing system). In some embodiments, the corrective action component 122 may alternatively be included in the prediction system 110 (e.g., not included in the client device 120). The client device 120 includes an operating system that allows a user to merge, generate, view or edit data, provide guidance to the prediction system 110 (e.g., a machine learning processing system), etc. One or more.
[0031] In some embodiments, the corrective action component 122 receives user input (e.g., via a graphical user interface (GUI) displayed via the client device 120), receives sensor data 142 from sensors, receives performance data 152 from the metering device 128, and the like. In some embodiments, the corrective action component 122 sends the data (e.g., user input, sensor data 142, performance data 152, and the like) to the prediction system 110, receives prediction data 160 from the prediction system 110, determines a corrective action based on the prediction data 160, and causes the corrective action to be implemented. In some embodiments, the corrective action component 122 stores the data (e.g., user input, sensor data 142, performance data 152, and the like) in the data store 140, and the prediction server 112 retrieves the data from the data store 140. In some embodiments, the prediction server 112 stores the output of the trained machine learning model 190 (e.g., prediction data 160) in the data store 140, and the client device 120 retrieves the output from the data store 140. In some implementations, corrective action component 122 receives an indication of a corrective action from prediction system 110 (eg, based on prediction data 160 ) and causes performance of the corrective action.
[0032] In some embodiments, the prediction data 160 is associated with a corrective action. In some embodiments, the corrective action is associated with one or more of cleaning substrate processing equipment parts, repairing substrate processing equipment parts, replacing substrate processing equipment parts, computational process control (CPC), statistical process control (SPC) (e.g., SPC is compared with a 3-sigma graph, etc.), advanced process control (APC), model-based process control, preventive operation maintenance, design optimization, manufacturing parameter update, feedback control, machine learning modification, or the like. In some embodiments, the corrective action includes providing an alarm (e.g., if the prediction data 160 indicates a predicted abnormality, such as an abnormality of a substrate processing equipment part or a product, an alarm is provided not to use the substrate processing equipment part or the manufacturing equipment 124). In some embodiments, the corrective action includes providing feedback control (e.g., cleaning, repairing and / or replacing a substrate processing equipment part in response to the prediction data 160 indicating a predicted abnormality). In some embodiments, the corrective action includes providing machine learning (e.g., causing modification of a substrate processing equipment part based on the prediction data 160).
[0033] In some embodiments, the prediction server 112, the server machine 170, and the server machine 180 each include one or more computing devices, such as a rack server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, a graphics processing unit (GPU), an accelerator application-specific integrated circuit (ASIC) (e.g., a tensor processing unit (TPU)), etc.
[0034] The prediction server 112 includes a prediction component 114. In some embodiments, the prediction component 114 receives sensor data 142 (e.g., received from the client device 120, retrieved from the data store 140), and generates prediction data 160 associated with jam detection. In some embodiments, the prediction component 114 uses one or more trained machine learning models 190 to determine the prediction data 160 for jam detection. In some embodiments, the trained machine learning models 190 are trained using historical sensor data 144 and historical performance data 154.
[0035] In some embodiments, the prediction system 110 (e.g., prediction server 112, prediction component 114) generates prediction data 160 using supervised machine learning (e.g., supervised data sets, historical sensor data 144 labeled with historical performance data 154, etc.). In some embodiments, the prediction system 110 generates prediction data 160 using semi-supervised learning (e.g., semi-supervised data sets, performance data 152 is a prediction percentage, etc.). In some embodiments, the prediction system 110 generates prediction data 160 using unsupervised machine learning (e.g., unsupervised data sets, clustering, clustering based on historical sensor data 144, etc.).
[0036] In some embodiments, the manufacturing equipment 124 (e.g., a cluster tool) is part of a substrate processing system (e.g., an integrated processing system). The manufacturing equipment 124 includes a controller, a housing system (e.g., a substrate carrier, a front opening unified pod (FOUP), an automatic learning FOUP, a processing set housing system, a substrate housing system, a box, etc.), a side storage pod (SSP), an aligner device (e.g., an aligner chamber), a factory interface (e.g., an equipment front end module (EFEM)), a load lock, a transfer chamber, one or more processing chambers, a robot arm (e.g., disposed in a transfer chamber, disposed in a front interface, etc.), and / or one or more of the like. The housing system, SSP, and load lock are mounted on the factory interface, and the robot arm disposed in the factory interface is used to transfer contents (e.g., substrates, processing set rings, carriers, verification wafers, etc.) between the housing system, SSP, load lock, and the factory interface. The aligner device is disposed in the factory interface to align the contents. The load lock and the process chamber are mounted to the transfer chamber, and a robot arm disposed in the transfer chamber is used to transfer contents (e.g., substrates, process kit rings, carriers, verification wafers, etc.) between the load lock, the process chamber, and the transfer chamber. In some embodiments, the manufacturing equipment 124 includes components of a substrate processing system. In some embodiments, the sensor data 142 includes parameters of processes (e.g., etching, heating, cooling, conveying, processing, flowing, etc.) performed by the components of the manufacturing equipment 124. In some embodiments, the substrate processing equipment parts are components of the processing chamber (e.g., showerheads, pedestals, etc.).
[0037] In some embodiments, the sensor 126 provides sensor data 142 (e.g., sensor values, such as historical sensor values and current sensor values) associated with the manufacturing equipment 124. In some embodiments, the sensor 126 includes one or more of an imaging sensor (e.g., a camera, an imaging device, etc.), a pressure sensor, a temperature sensor, a flow rate sensor, a spectral sensor, and / or the like. In some embodiments, the sensor data 142 is used for equipment health and / or product health (e.g., product quality). In some embodiments, the sensor data 142 is received over a period of time.
[0038] In some embodiments, the sensor 126 provides sensor data 142, such as image data, leak rate, temperature, pressure, flow rate (e.g., gas flow), pumping efficiency, spacing (SP), High Frequency Radio Frequency (HFRF), current, power, voltage, and / or values of one or more of the like.
[0039] In some embodiments, the sensor data 142 (e.g., historical sensor data 144, current sensor data 146, etc.) is processed (e.g., by the client device 120 and / or the prediction server 112). In some embodiments, the processing of the sensor data 142 includes generating features. In some embodiments, the features are patterns in the sensor data 142 (e.g., slope, width, height, peak, etc.) or combinations of values from the sensor data 142 (e.g., power derived from voltage and current, etc.). In some embodiments, the sensor data 142 includes features that the prediction component 114 uses to obtain the prediction data 160.
[0040] In some embodiments, the metrology device 128 (e.g., an imaging device, a spectral device, an ellipsometry device, etc.) is used to determine metrology data (e.g., inspection data, image data, spectral data, ellipsometry data, material composition, optical or structural data, etc.) corresponding to a substrate produced by the manufacturing device 124 (e.g., a substrate processing device). In some examples, the metrology device 128 is used to inspect portions (e.g., layers) of the substrate after the manufacturing device 124 processes the substrate. In some embodiments, the metrology device 128 performs scanning acoustic microscopy (SAM), ultrasonic inspection, x-ray inspection, and / or computed tomography (CT) inspection. In some examples, after the manufacturing device 124 deposits one or more layers on the substrate, the metrology device 128 is used to determine the quality of the processed substrate (e.g., the thickness of the layer, the uniformity of the layer, the interlayer spacing of the layer, and / or the like). In some embodiments, the metrology device 128 includes an imaging device (e.g., a SAM device, an ultrasonic device, an x-ray device, a CT device, and / or the like). In some implementations, performance data 152 includes metering data from metering devices 128 .
[0041] In some embodiments, data store 140 is a memory (e.g., random access memory), a drive (e.g., a hard drive, a flash drive), a database system, or another type of component or device capable of storing data. In some embodiments, data store 140 includes multiple storage components (e.g., multiple drives or multiple databases) across multiple computing devices (e.g., multiple server computers). In some embodiments, data store 140 stores one or more of sensor data 142, performance data 152, and / or prediction data 160.
[0042] The sensor data 142 includes historical sensor data 144 and current sensor data 146. In some embodiments, the sensor data 142 may include one or more of image data, pressure data, pressure ranges, temperature data, temperature ranges, flow rate data, power data, comparison parameters for comparing inspection data to threshold data, threshold data, cooling rate data, cooling rate ranges, and / or the like. In some embodiments, at least a portion of the sensor data 142 is from the sensor 126.
[0043] The performance data 152 includes historical performance data 154 and current performance data 156. The performance data 152 may include a hole map corresponding to a substrate processing equipment part (e.g., where holes are located or predicted to be located on the substrate processing equipment part). In some examples, the performance data 152 indicates whether the substrate is properly designed, properly manufactured, and / or properly functioning. In some embodiments, at least a portion of the performance data 152 is associated with the quality of substrates produced by the manufacturing equipment 124. In some embodiments, at least a portion of the performance data 152 is based on metrology data from the metrology equipment 128 (e.g., the historical performance data 154 includes metrology data indicating properly processed substrates, characteristic data of the substrates, yields, etc.). In some embodiments, at least a portion of the performance data 152 is based on inspection of the substrate (e.g., current performance data 156 based on actual inspection). In some embodiments, the performance data 152 includes an indication of an absolute value (e.g., the inspection data of the bonding interface indicates a deviation from the threshold data-a calculated value, the deformation value deviates from the threshold deformation value-a calculated value) or a relative value (e.g., the inspection data of the bonding interface indicates a deviation from the threshold data by 5%, the deformation deviates from the threshold deformation by 5%). In some embodiments, the performance data 152 indicates a threshold amount of error met (e.g., at least 5% error in production, at least 5% error in flow, at least 5% error in deformation, specification limit).
[0044] In some embodiments, the client device 120 provides performance data 152 (e.g., product data). In some examples, the client device 120 provides (e.g., based on user input) performance data 152 indicating anomalies in a product (e.g., defective products). In some embodiments, the performance data 152 includes the amount of normal or abnormal products that have been produced (e.g., 98% normal products). In some embodiments, the performance data 152 indicates the amount of products being produced that are predicted to be normal or abnormal. In some embodiments, the performance data 152 includes one or more of a yield of a previous batch of products, an average yield, a predicted yield, a predicted amount of defective or non-defective products, or the like. In some examples, in response to a first batch of products having a yield of 98% (e.g., 98% of the products are normal and 2% are abnormal), the client device 120 provides performance data 152 indicating that an upcoming batch of products will have a yield of 98%.
[0045] In some embodiments, the historical data includes one or more of the historical sensor data 144 and / or the historical performance data 154 (e.g., used to train at least a portion of the machine learning model 190). The current data includes one or more of the current sensor data 146 and / or the current performance data 156 (e.g., to be input into at least a portion of the trained machine learning model 190 after the model 190 is trained using the historical data). In some embodiments, the current data is used to retrain the trained machine learning model 190.
[0046] In some embodiments, the prediction data 160 is used to perform corrective operations on substrate processing equipment parts.
[0047] Performing metrology on products to identify substrate processing equipment parts that do not meet a threshold quality, incorrectly produced parts (e.g., bonded sheet metal structures) is costly in terms of time used, metrology equipment 128 used, energy consumption, bandwidth used to send metrology data, processor overhead for processing metrology data, etc. By providing sensor data 142 to the model 190 and receiving prediction data 160 from the model 190, the system 100 has a technical advantage of avoiding the expensive process of using the metrology equipment 128 and discarding the substrate.
[0048] Performing manufacturing processes with substrate processing equipment parts that result in defective products is costly in terms of time, energy, products, substrate processing equipment parts, manufacturing equipment 124, costs of identifying substrate processing equipment parts that result in defective products, cleaning substrate processing equipment parts, repairing substrate processing equipment parts, replacing substrate processing equipment parts, discarding old parts, etc. By providing sensor data 142 to the model 190, receiving prediction data 160 from the model 190, and causing corrective actions based on the prediction data 160, the system 100 has a technical advantage of avoiding the costs of producing, identifying, and discarding defective substrates.
[0049] In some embodiments, the prediction system 110 also includes a server machine 170 and a server machine 180. The server machine 170 includes a data set generator 172, which is capable of generating a data set (e.g., a set of data inputs and a set of target outputs) to train, validate and / or test the machine learning model 190. The data set generator 172 has the functions of data collection, compilation, reduction and / or segmentation to convert the data into a form for machine learning. In some embodiments (e.g., for small data sets), partitioning (e.g., explicit segmentation) for post-training validation is not used. Repeated cross-validation (e.g., 5-fold cross-validation, leave-one-out-cross-validation) can be used during training, where a given data set is actually repeatedly segmented into different training and validation sets during training. A model (e.g., the best model, the model with the highest accuracy, etc.) is selected from the model vectors on the automatically separated combined subsets. In some embodiments, the data set generator 172 may explicitly split the historical data (e.g., historical sensor data 144 and corresponding historical performance data 154) into a training set (e.g., 60 percent of the historical data), a validation set (e.g., 20 percent of the historical data), and a test set (e.g., 20 percent of the historical data). Figure 2 and Figure 5A Some operations of the dataset generator 172 are described in detail. In some embodiments, the prediction system 110 (e.g., via the prediction component 114) generates multiple sets of features (e.g., training features). In some examples, the first set of features corresponds to a first set of sensor data corresponding to each dataset (e.g., training set, validation set, and test set) (e.g., from a first set of sensors, a first combination of values from the first set of sensors, a first pattern in values from the first set of sensors), and the second set of features corresponds to a second set of sensor data corresponding to each dataset (e.g., from a second set of sensors different from the first set of sensors, a second combination of values different from the first combination, a second pattern different from the first pattern).
[0050] The server machine 180 includes a training engine 182, a validation engine 184, a selection engine 185, and / or a test engine 186. In some embodiments, an engine (e.g., a training engine 182, a validation engine 184, a selection engine 185, and a test engine 186) refers to hardware (e.g., a circuit system, a dedicated logic, a programmable logic, a microcode, a processing device, etc.), software (such as instructions running on a processing device, a general-purpose computer system, or a dedicated machine), firmware, microcode, or a combination thereof. The training engine 182 is capable of training a machine learning model 190 using one or more sets of features associated with a training set from the data set generator 172. In some embodiments, the training engine 182 generates a plurality of trained machine learning models 190, wherein each trained machine learning model 190 corresponds to a different set of parameters (e.g., sensor data 142) and corresponding responses (e.g., performance data 152) of the training set. In some embodiments, multiple models are trained on the same parameters with different objectives in order to model multiple effects. In some examples, a first trained machine learning model is trained using sensor data 142 from all sensors 126 (e.g., sensors 1-5), a second trained machine learning model is trained using a first subset of the sensor data (e.g., from sensors 1, 2, and 4), and a third trained machine learning model is trained using a second subset of sensor data that partially overlaps with the first subset of features (e.g., from sensors 1, 3, 4, and 5).
[0051] The validation engine 184 can validate the trained machine learning models 190 using a corresponding set of features of a validation set from the dataset generator 172. For example, a first trained machine learning model 190 trained using a first set of features of the training set is validated using a first set of features of the validation set. The validation engine 184 determines the accuracy of each trained machine learning model 190 based on the corresponding set of features of the validation set. The validation engine 184 evaluates and marks (e.g., to be discarded) trained machine learning models 190 with an accuracy that does not meet a threshold accuracy. In some embodiments, the selection engine 185 can select one or more trained machine learning models 190 with an accuracy that meets a threshold accuracy. In some embodiments, the selection engine 185 can select a trained machine learning model 190 with the highest accuracy of the trained machine learning models 190.
[0052] The testing engine 186 can test the trained machine learning model 190 using the corresponding set of features of the test set from the dataset generator 172. For example, the first trained machine learning model 190 trained using the first set of features of the training set is tested using the first set of features of the test set. The testing engine 186 determines the trained machine learning model 190 with the highest accuracy among all the trained machine learning models based on the test set.
[0053] In some embodiments, the machine learning model 190 (e.g., for classification) refers to a model artifact created by the training engine 182 using a training set including data inputs and corresponding target outputs (e.g., correctly classifying the condition or ordinal level of the corresponding training input). Patterns in the data set that map the data inputs to the target outputs (correct classification or level) can be found, and mappings that capture these patterns are provided to the machine learning model 190. In some embodiments, the machine learning model 190 uses one or more of Gaussian Process Regression (GPR), Gaussian Process Classification (GPC), Bayesian Neural Network, Neural Network Gaussian Process, Deep Belief Network, Gaussian Mixture Model, or other probabilistic learning methods. Non-probabilistic methods can also be used, including one or more of Support Vector Machine (SVM), Radial Basis Function (RBF), clustering, Nearest Neighbor algorithm (k-NN), linear regression, random forest, neural network (e.g., artificial neural network), etc. In some embodiments, the machine learning model 190 is a multivariate analysis (MVA) regression model.
[0054] The prediction component 114 provides the current sensor data 146 to the trained machine learning model 190 (e.g., as an input) and runs the trained machine learning model 190 (e.g., runs the input to obtain one or more outputs). The prediction component 114 can determine (e.g., extract) prediction data 160 from the trained machine learning model 190, and determine (e.g., extract) uncertainty data indicating a confidence level that the prediction data 160 corresponds to the current performance data 156. In some embodiments, the prediction component 114 or the corrective action component 122 uses the uncertainty data (e.g., an uncertainty function or an acquisition function derived from the uncertainty function) to determine whether to use the prediction data 160 to perform a corrective action or whether to further train the model 190.
[0055] For purposes of illustration and not limitation, aspects of the present disclosure describe using historical data (i.e., prior data, historical sensor data 144, and historical performance data 154) to train one or more machine learning models 190, and providing current sensor data 146 to one or more trained probabilistic machine learning models 190 to determine predicted data 160. In other embodiments, heuristic models or rule-based models are used to determine predicted data 160 (e.g., without using trained machine learning models). In other embodiments, non-probabilistic machine learning models may be used. Prediction component 114 monitors historical sensor data 144 and historical performance data 154. In some embodiments, with respect to Figure 2 Any information described by data input 210 is monitored or otherwise used in a heuristic or rule-based model.
[0056] In some implementations, the functionality of client device 120, prediction server 112, server machine 170, and server machine 180 are provided by a smaller number of machines. For example, in some implementations, server machines 170 and 180 are integrated into a single machine, while in some other implementations, server machine 170, server machine 180, and prediction server 112 are integrated into a single machine. In some implementations, client device 120 and prediction server 112 are integrated into a single machine.
[0057] In general, functions described in one embodiment as being performed by client device 120, prediction server 112, server machine 170, and server machine 180 may also be performed on prediction server 112 in other embodiments, if appropriate. In addition, functions attributed to a particular component may be performed by different or multiple components operating together. For example, in some embodiments, prediction server 112 determines a corrective action based on prediction data 160. In another example, client device 120 determines prediction data 160 based on data received from a trained machine learning model.
[0058] In addition, the functionality of a particular component may be performed by different or multiple components operating together. In some embodiments, one or more of the prediction server 112, server machine 170, or server machine 180 is accessed as a service provided to other systems or devices via an appropriate application programming interface (API).
[0059] In some embodiments, a "user" is represented as a single individual. However, other embodiments of the present disclosure encompass a "user" that is an entity controlled by multiple users and / or automation sources. In some examples, a group of individual users united as a group of managers is considered a "user."
[0060] Although embodiments of the present disclosure are discussed in terms of determining predictive data 160 for blockage detection of substrate processing equipment parts in a manufacturing facility (e.g., a substrate processing facility), in some embodiments, the present disclosure may also be applied to quality detection in general. In general, embodiments may be applied to determining the quality of a part based on different types of data.
[0061] Figure 2 The invention illustrates the creation of a machine learning model (e.g., Figure 1 A data set generator 272 (e.g., Figure 1 In some embodiments, the dataset generator 272 is Figure 1 The server machine 170 is part of Figure 2 The dataset generated by the dataset generator 272 can be used to train a machine learning model (e.g., see Figure 5C ) to cause the execution of corrective actions (see, for example, Figure 5D ).
[0062] Data set generator 272 (e.g., Figure 1 The dataset generator 172) creates a dataset for use in a machine learning model (e.g., Figure 1 The dataset generator 272 uses the historical sensor data 244 (e.g., Figure 1 Historical sensor data 144) and historical performance data 254 (e.g., Figure 1 The historical performance data 154) is used to create a data set. Figure 2 The system 200 shows a data set generator 272, a data input 210, and a target output 220 (eg, target data).
[0063] In some embodiments, the dataset generator 272 generates a dataset (e.g., a training set, a validation set, a test set) that includes one or more data inputs 210 (e.g., training inputs, validation inputs, test inputs) and one or more target outputs 220 corresponding to the data inputs 210. The dataset also includes mapping data that maps the data inputs 210 to the target outputs 220. The data inputs 210 are also referred to as “features,” “attributes,” or “information.” In some embodiments, the dataset generator 272 provides the dataset to the training engine 182, the validation engine 184, or the testing engine 186, where the dataset is used to train, validate, or test the machine learning model 190. Figure 5A Some embodiments of generating a training set are further described.
[0064] In some embodiments, the data set generator 272 generates data inputs 210 and target outputs 220. In some embodiments, the data inputs 210 include one or more sets of historical sensor data 244. In some embodiments, the historical sensor data 244 includes one or more of sensor data from one or more types of sensors, combinations of sensor data from one or more types of sensors, patterns of sensor data from one or more types of sensors, and / or the like.
[0065] In some embodiments, the dataset generator 272 generates a first data input corresponding to the first historical sensor dataset 244A to train, validate, or test a first machine learning model, and the dataset generator 272 generates a second data input corresponding to the second historical sensor dataset 244B to train, validate, or test a second machine learning model.
[0066] In some embodiments, the data set generator 272 discretizes (e.g., segments) one or more of the data input 210 or the target output 220 (e.g., for a classification algorithm for a regression problem). The discretization of the data input 210 or the target output 220 (e.g., segmentation via a sliding window) converts the continuous values of the variable into discrete values. In some embodiments, the discrete values of the data input 210 indicate discrete historical sensor data 244 to obtain the target output 220 (e.g., discrete historical performance data 254).
[0067] The data input 210 and target output 220 for training, validating, or testing a machine learning model include information for a specific facility (e.g., a specific substrate manufacturing facility). In some examples, the historical sensor data 244 and the historical performance data 254 are for the same manufacturing facility.
[0068] In some embodiments, the information used to train the machine learning model is from a particular type of manufacturing equipment 124 at a manufacturing facility having particular characteristics, and allows the trained machine learning model to determine results for a particular group of manufacturing equipment 124 based on input of current parameters (e.g., current sensor data 146) associated with one or more components that share the particular set of characteristics. In some embodiments, the information used to train the machine learning model is for components from two or more manufacturing facilities, and allows the trained machine learning model to determine results for components based on input from one manufacturing facility.
[0069] In some embodiments, after a data set is generated and the machine learning model 190 is trained, validated, or tested using the data set, the machine learning model 190 is further trained, validated, or tested (e.g., Figure 1's current performance data 156) or adjusted (e.g., adjusting weights associated with input data to a machine learning model, such as connection weights in a neural network).
[0070] Figure 3 is a diagram illustrating a method for generating prediction data 360 (e.g., Figure 1 160) of the prediction data 160). The system 300 is used to train a machine learning model (e.g., Figure 1 Model 190) is used to determine prediction data 360 for jam detection (e.g., for corrective action execution).
[0071] At block 310, the system 300 (e.g., Figure 1 The prediction system 110) uses historical data (e.g., Figure 1 The historical sensor data 344 and the historical performance data 354 of the model 190 perform data segmentation (e.g., via Figure 1 The system 300 generates multiple sets of features for each of the training set, validation set, and test set. In some examples, if the historical data includes data from 20 sensors (e.g., Figure 1 For example, if the first set of features for a training set is sensors 1-10, the second set of features is sensors 11-20, the training set is products 1-60, the validation set is products 61-80, and the test set is products 81-100, then the first set of features for the training set would be the parameters from sensors 1-10 for products 1-60.
[0072] At block 312, system 300 performs model training using training set 302 (e.g., via Figure 11-60) to produce a first trained machine learning model, and a second trained machine learning model is produced using a second set of features in the training set (e.g., sensor data from sensors 1-20 for products 1-60). In some embodiments, the first trained machine learning model and the second trained machine learning model are combined to produce a third trained machine learning model (e.g., which, in some embodiments, is itself a better predictor than the first or second trained machine learning model). In some embodiments, the sets of features used in the compared models overlap (e.g., the first set of features is sensor data from sensors 1-15, and the second set of features is sensor data from sensors 5-20). In some embodiments, hundreds of models are produced, including models and model combinations with various feature arrangements.
[0073] At block 314, system 300 performs model validation using validation set 304 (e.g., via Figure 1 Validation engine 184 of the validation set 304). The system 300 validates each trained model using a corresponding set of features of the validation set 304. For example, the system 300 validates a first trained machine learning model using a first set of features in the validation set (e.g., parameters from sensors 1-10 for products 61-80), and validates a second trained machine learning model using a second set of features in the validation set (e.g., parameters from sensors 11-20 for products 61-80). In some embodiments, the system 300 validates hundreds of models generated in box 312 (e.g., models with various feature arrangements, combinations of models, etc.). At box 314, the system 300 determines the accuracy of each of the one or more trained models (e.g., via model validation), and determines whether one or more of the trained models have an accuracy that satisfies a threshold accuracy. In response to determining that none of the trained models have an accuracy that satisfies the threshold accuracy, the process returns to box 312, where the system 300 performs model training using a different set of features from the training set. In response to determining that one or more of the trained models have an accuracy that satisfies a threshold accuracy, flow continues to block 316. The system 300 discards trained machine learning models that have an accuracy (e.g., based on a validation set) below the threshold accuracy.
[0074] At block 316, the system 300 performs model selection (eg, via Figure 1The system 300 selects the model 308 of the selected model 304 to determine which of the one or more trained models that meet the threshold accuracy has the highest accuracy (e.g., the selected model 308 based on the verification of block 314). In response to determining that the two or more trained models that meet the threshold accuracy have the same accuracy, the process returns to block 312, where the system 300 performs model training using a further refined training set corresponding to the further refined multiple groups of features to determine the trained model with the highest accuracy.
[0075] At block 318, system 300 performs model testing using test set 306 (eg, via Figure 1 306 ). The system 300 tests the first trained machine learning model using a first set of features in the test set (e.g., sensor data from sensors 1-10 for products 81-100) to determine that the first trained machine learning model meets the threshold accuracy (e.g., based on the first set of features of the test set 306). In response to the accuracy of the selected model 308 not meeting the threshold accuracy (e.g., the selected model 308 is overfit to the training set 302 and / or the validation set 304 and is not applicable to other data sets such as the test set 306), the process continues to block 312, where the system 300 performs model training (e.g., retraining) using a different training set corresponding to a different set of features (e.g., sensor data from a different sensor). In response to determining that the selected model 308 has an accuracy that meets the threshold accuracy based on the test set 306, the process continues to block 320. In at least block 312 , the model learns patterns in the historical data to make predictions, and in block 318 , the system 300 applies the model to the remaining data (eg, the test set 306 ) to test the predictions.
[0076] At block 320, the system 300 receives current sensor data 346 (eg, Figure 1 146 ), and determining (eg, extracting) prediction data 360 for jam detection from the trained model (eg, Figure 1 In some embodiments, the current sensor data 346 corresponds to the same type of features in the historical sensor data 344. In some embodiments, the current sensor data 346 corresponds to the same type of features as a subset of the types of features in the historical sensor data 344 used to train the selected model 308.
[0077] In some embodiments, current data is received. In some embodiments, the current data includes current performance data 356 (e.g., Figure 1Current performance data 156) and / or current sensor data 346. In some embodiments, from a metering device (e.g., Figure 1 At least a portion of the current data is received via a metering device 128 of a device 128 or via user input. In some embodiments, the model 308 is retrained based on the current data. In some embodiments, a new model is trained based on the current performance data 356 and the current sensor data 346.
[0078] In some embodiments, one or more of blocks 310-320 occur in various orders and / or with other operations not presented and described herein. In some embodiments, one or more of blocks 310-320 are not performed. For example, in some embodiments, one or more of the data segmentation of block 310, the model validation of block 314, the model selection of block 316, and / or the model testing of block 318 are not performed.
[0079] Figure 4A An image capture device 400 (eg, configured to provide backlit images of parts of a substrate processing apparatus) is shown in accordance with certain embodiments.
[0080] The image capture device may include a housing 410 including walls (e.g., side walls, upper walls, bottom walls) at least partially surrounding an interior volume. The housing (e.g., upper wall) may form an opening 412. A light emitting device 414 may be disposed in the interior volume of the housing 410. A spacer 416 may be disposed on or integral with the light emitting device 414. A substrate processing equipment part 420 forming an aperture 422 may be disposed on the spacer 416.
[0081] The substrate processing equipment part 420 may be a showerhead, a pedestal, etc. In some embodiments, the substrate processing equipment part 420 is cylindrical (e.g., a circular perimeter). In some embodiments, the hole 422 is perpendicular to the upper surface and / or the lower surface of the substrate processing equipment part 420 (e.g., 90 degrees). In some embodiments, the hole 422 is substantially perpendicular to the upper surface and / or the lower surface of the substrate processing equipment part 420 (e.g., 90-95 degrees, 90-100 degrees, 95-100 degrees, etc.). In some embodiments, the hole 422 is not perpendicular to the upper surface and / or the lower surface of the substrate processing equipment part 420 (e.g., 91-120 degrees, 91-135 degrees, 91-179 degrees, etc.). In some embodiments, the hole 422 is a straight channel from the upper surface to the lower surface of the substrate processing equipment part 420. In some embodiments, the hole 422 allows light to be projected through the substrate processing equipment part 420.
[0082] A sensor 418 (e.g., an imaging device, a camera, etc.) may be disposed on the housing 410 above the opening 412. The sensor 418 may capture sensor data (e.g., image data, images, videos) of the substrate processing equipment part 420 when the light emitting device 414 emits light. The sensor data may include an image of light passing through one or more apertures 422 (e.g., through apertures that are at least partially unblocked). A component (e.g., a diffuser) may be disposed between the sensor 418 and the substrate processing equipment part 420.
[0083] Image capture device 400 may be a darkroom fixture (e.g., housing 410, which, once closed, does not allow ambient light to enter) with a pre-installed camera (e.g., sensor 418). Sensor 418 may capture high-resolution digital images by passing constrained light (e.g., from light emitting device 414) through a diffuser.
[0084] Figure 4B and Figure 4C 4 shows an image of a substrate processing device part 420 according to some embodiments. In some embodiments, the substrate processing device part 420 forms holes 422 in a spiral arrangement, such as Figure 4B and Figure 4C In some embodiments, the substrate processing equipment parts 420 form holes arranged in one or more other patterns (eg, non-spiral patterns).
[0085] The processing device may receive the image 430A (eg, a raw input image, sensor data from the sensor 418). For example, the processing device may read the input image in an image processing algorithm. The processing device may process Figure 4B The image 430A is produced Figure 4C The processed image 430B is obtained by processing the image 430A. The processing device may mask the relevant area of the image 430A (e.g., the area of the hole 422) to enhance the showerhead hole and limit (e.g., eliminate) background errors in the processed image 430B. The processing device may resize the image 430A to a predetermined size to remove the scale factor to generate the processed image 430B. The processed image 430B may highlight the features of interest (e.g., light passing through the hole 422).
[0086] refer to Figure 4D The processing device may further perform contour detection (eg, apply a contour detection algorithm) to detect the projection of each illumination hole (eg, hole 422) and locate the image foreground to generate processed image 430C from processed image 430B or from image 430A.
[0087] To find the different features of the contours, the processing device may calculate the centroid and area of each contour. To locate each hole 422 of the substrate processing equipment part 420 (e.g., showerhead), the processing device may derive the associated x and y coordinates. The processing device may calculate the centroid of the substrate processing equipment part 420 (e.g., showerhead) based on the identified centroid distribution of the holes 422.
[0088] Figure 4E A magnified view of the processed image 430C is shown showing individual hole 422 contour detection by the transformation.
[0089] Figure 4F An enlarged view of the processed image 430C is shown, which shows the radial distance (r) and angular distance (θ) of the hole 422 from the neighboring holes of the hole 422 (e.g., four neighboring holes). The processing device may determine the center of mass of the entire substrate processing equipment part (e.g., a showerhead) as a reference, and may convert the Cartesian coordinate system into polar coordinates (radius (r), angle (θ)). The processing device may apply radial magnification to the radial distance of each hole 422 to clearly separate the clockwise and counterclockwise spirals (e.g., Fermat patterns). The processing device may determine the nearest neighboring holes (e.g., determine the four nearest neighboring holes). The processing device may determine the nearest neighboring holes by using a k-dimensional tree (KDTree) (e.g., a space partitioning data structure for organizing points in k-dimensional space, a binary space partitioning tree) or a cKDTree (e.g., a KDTree implemented in C++ and / or encapsulated in Cython). The processing device may calculate the radial distance and angular distance of each point from the identified neighboring holes. The processing device may use the nearest neighbor distance to connect each hole 422 to the resident helix of the hole 422 (e.g., clockwise or counterclockwise) and associate each hole 422 with the resident helix of the hole 422. The processing device may label the hole sequence with identification coordinates (e.g., R1-1, R1-2, R2-849, R2-848, where R1 is the first helix and R2 is the second helix).
[0090] Figure 4G A graph 440 is shown starting from the center of all connected nearest neighbor holes that fall into similar curves for the clockwise spiral 442 and counterclockwise spiral 444 configurations that form the holes 422. The x-axis is the radial angle (eg, θ) and the y-axis is the radius.
[0091] Figure 4H A graph 450 is shown of holes 422 of a substrate processing equipment part 420. The x-axis is the distance from the center in the y-direction, and the y-axis is the distance from the center in the x-direction. The graph 450 shows the x distance from the center of each hole 422 and the y distance from the center.
[0092] In some embodiments, for each hole 422, processing logic compares the adjacent angular distances to the median distance in this spiral to identify completely blocked (e.g., missing) holes or valid (e.g., present) holes. Processing logic can apply a threshold to the area of each hole to identify partially blocked holes and generate a blockage status report. Based on the blockage status results, processing logic can cause additional cleaning cycles, longer cleaning cycle times, maintenance, repairs, replacements, etc. The area and status of each hole 422 over cleaning time can indicate the effectiveness of cleaning.
[0093] In some embodiments, processing logic may receive flow data (eg, associated with fluid flowing through the substrate processing equipment part 420) to determine whether the substrate processing equipment part 420 meets a threshold (eg, is properly cleaned).
[0094] FIG. 5A to FIG. 5D is a flow chart of methods 500A-D associated with blockage detection via image analysis according to certain embodiments. In some embodiments, methods 500A-D are performed by processing logic, which includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, processing device, etc.), software (e.g., instructions running on a processing device, a general purpose computer system, or a dedicated machine), firmware, microcode, or a combination thereof. In some embodiments, methods 500A-D are performed at least in part by prediction system 110. In some embodiments, method 500A is performed at least in part by prediction system 110 (e.g., Figure 1 The server machine 170 and the data set generator 172, Figure 2 In some embodiments, the prediction system 110 uses method 500A to generate a data set for training, validating, or testing at least one of the machine learning models. In some embodiments, method 500B is performed by a client device 120 or a prediction system 110 (e.g., a corrective action component 122). In some embodiments, method 500C is performed by a server machine 180 (e.g., a training engine 182, etc.). In some embodiments, method 500D is performed by a prediction server 112 (e.g., a prediction component 114). In some embodiments, method 500D is performed by a client device 120 (e.g., a corrective action component 122). In some embodiments, a non-transitory storage medium stores instructions that, when executed by a processing device (e.g., a processing device of the prediction system 110, a server machine 180, a prediction server 112, a client device 120, etc.), causes the processing device to perform one or more of methods 500A-D.
[0095] For simplicity of description, methods 500A-D are depicted and described as a series of operations. However, operations according to the present disclosure may occur in various orders and / or simultaneously, and with other operations not presented and described herein. In addition, in some embodiments, not all of the operations shown are performed to implement methods 500A-D according to the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that methods 500A-D may alternatively be represented as a series of interrelated states via state diagrams or events.
[0096] Figure 5A is a method for generating a data set for a machine learning model to generate prediction data (e.g., Figure 1 Flowchart of method 500A for obtaining prediction data 160).
[0097] refer to Figure 5A In some implementations, at block 502 , the processing logic implementing method 500A initializes the training set T to an empty set.
[0098] At block 504, processing logic generates a first data input (eg, a first training input, a first validation input) comprising sensor data (eg, Figure 1 Historical sensor data 144, Figure 2 In some embodiments, the first data input includes a first set of features for the sensor data type, and the second data input includes a second set of features for the sensor data type (e.g., Figure 2 described).
[0099] At block 506, processing logic generates a first target output for one or more data inputs (e.g., a first data input). In some implementations, the first target output is historical performance data (e.g., Figure 1 Historical performance data154, Figure 2 Historical performance data 254).
[0100] Processing logic optionally generates mapping data indicating an input / output mapping at block 508. An input / output mapping (or mapping data) refers to data inputs (e.g., one or more of the data inputs described herein), target outputs of the data inputs (e.g., where the target output identifies historical performance data 154), and associations between the data inputs and the target outputs.
[0101] At block 510 , processing logic adds the mapping data generated at block 508 to data set T.
[0102] At block 512, processing logic branches based on whether the dataset T is sufficient for training, validating, and / or testing at least one of the machine learning models 190 (e.g., the uncertainty of the trained machine learning model satisfies a threshold uncertainty). If so, execution proceeds to block 514, otherwise, execution continues back to block 504. It should be noted that in some embodiments, the sufficiency of the dataset T is determined simply based on the number of input / output mappings in the dataset, while in some other embodiments, the sufficiency of the dataset T is determined based on one or more other criteria (e.g., a measure of diversity, accuracy, etc. of the data examples) in addition to or in lieu of the number of input / output mappings.
[0103] At block 514, processing logic provides a dataset T (e.g., to a server machine 180) to train, validate, and / or test the machine learning model 190. In some embodiments, the dataset T is a training set and is provided to a training engine 182 of a server machine 180 to perform training. In some embodiments, the dataset T is a validation set and is provided to a validation engine 184 of a server machine 180 to perform validation. In some embodiments, the dataset T is a test set and is provided to a testing engine 186 of a server machine 180 to perform testing. In the case of a neural network, for example, the input values of a given input / output mapping (e.g., numerical values associated with the data input 210) are input to the neural network, and the output values of the input / output mapping (e.g., numerical values associated with the target output 220) are stored in the output nodes of the neural network. Next, the connection weights in the neural network are adjusted according to a learning algorithm (e.g., back propagation, etc.), and the process is repeated for other input / output mappings in the dataset T.
[0104] After block 514, the machine learning model (e.g., machine learning module 190) may be at least one of trained using the training engine 182 of the server machine 180, validated using the validation engine 184 of the server machine 180, or tested using the testing engine 186 of the server machine 180. The trained machine learning model is implemented by the prediction component 114 (of the prediction server 112) to generate prediction data (e.g., prediction data 160) for jam detection to cause corrective action to be performed.
[0105] Figure 5B is a method 500B associated with blockage detection via image analysis according to certain embodiments. In some embodiments, the method 500B is performed before and after cleaning of substrate processing equipment parts.
[0106] At block 520 of method 500B, processing logic identifies an image (eg, a backlight image) of a substrate processing equipment part that forms an aperture. Figure 4A The substrate processing equipment parts 420) may be a shower head, a base, etc.
[0107] In some embodiments, processing logic receives data from an image capture device (e.g., Figure 4A The image capture device 400 may receive an image. The image capture device may provide light via a substrate processing equipment component. Light passing through unblocked holes may be shown in the image. Each unblocked hole may be associated with a shape of light having a corresponding area. Partially blocked holes are associated with an area that is less than the area of less blocked holes (e.g., unblocked holes).
[0108] In some embodiments, an image of a first surface of a substrate processing equipment part is captured while providing light to a second surface of the substrate processing equipment part that is opposite (e.g., and substantially parallel) to the first surface. The light passes through at least a subset of the apertures of the substrate processing equipment part.
[0109] In some embodiments, processing logic masks areas in the image to enhance visibility of holes formed by substrate processing equipment parts and reduce background errors. In some embodiments, processing logic resizes the image to a predetermined size to remove a scale factor.
[0110] In some embodiments, processing logic applies a threshold pixel value to an image. In some embodiments, the pixel format of the image is a byte image, where pixel values are numbers stored as 8-bit integers, giving a range of possible values from 0 to 255, where 0 is black and 255 is white. Processing logic may convert all pixel values above the threshold pixel value (e.g., 200) to white (e.g., a pixel value of 255), and may convert all pixel values below the threshold pixel value (e.g., 200) to black (e.g., a pixel value of 0). This may remove gray pixel values from the image.
[0111] In some embodiments, the processing logic performs contour detection to detect the projection of each hole and locate the image foreground. The processing logic may determine the corresponding centroid and corresponding area of each hole. The processing logic may determine the corresponding Cartesian coordinates of each hole. The processing logic may determine the part centroid of the substrate processing equipment part based on the corresponding centroid of each hole. The processing logic may convert the corresponding Cartesian coordinate of each hole to the corresponding polar coordinate based on the part centroid. The processing logic may apply radial magnification of the corresponding radial distance of the corresponding polar coordinate of each hole to separate the clockwise hole spiral and the counterclockwise hole spiral.
[0112] At block 522 , processing logic determines a corresponding adjacent angular distance for each aperture and a corresponding area for each aperture based on the image.
[0113] At block 524 , processing logic identifies a first subset of holes that are at least partially blocked (eg, based on at least one of a corresponding adjacent angular distance or a corresponding area of each hole).
[0114] In some embodiments, to identify a first subset of holes, processing logic identifies corresponding neighboring holes and corresponding polar coordinates for each hole, associates each hole with a corresponding hole spiral using a corresponding nearest neighbor distance, and compares the corresponding neighbor angular distance for each hole to a threshold neighbor angular distance to identify blocked holes (e.g., if the distance between particular neighboring holes is greater than the median distance between the neighboring holes, then the hole is likely blocked between the particular neighboring holes).
[0115] In some embodiments, to identify the first subset of wells, processing logic compares the corresponding area of each of the plurality of wells to a threshold area (eg, 50%, 60%, 70%, etc.) to identify partially blocked wells.
[0116] In some embodiments, processing logic may use a machine learning model to determine a threshold area (e.g., see Figure 5C -D).
[0117] At block 526, in response to at least a subset of the pores being at least partially blocked, the flow continues to block 528. At block 526, in response to at least a subset of the pores not being at least partially blocked, the flow ends.
[0118] At block 528, processing logic causes corrective action associated with the substrate processing equipment part to be performed based on at least a subset of the at least partial blockage of the apertures, and flow returns to block 520. The corrective action may include providing an alarm, causing a cleaning action, causing a repair action, causing a replacement, determining an expected end of life of the substrate processing equipment part, and the like.
[0119] Blocks 520-528 may be repeated until the apertures are not at least partially blocked. In some embodiments, processing logic may predict the end of life of a substrate processing equipment part based on the number of corrective actions (e.g., cleaning cycles) until the substrate processing equipment part does not have any apertures that are at least partially blocked.
[0120] In some embodiments, instead of or in addition to identifying a subset of the holes that are at least partially blocked, processing logic determines that foreign matter is blocked in one or more holes, determines that one or more holes have been enlarged, etc.
[0121] Figure 5C is a method used to train machine learning models (e.g. Figure 1 A method for determining prediction data for blockage detection via image analysis (e.g., Figure 1 prediction data 160).
[0122] refer to Figure 5C At block 540 of method 500C, processing logic identifies historical sensor data (e.g., Figure 1 Historical sensor data 144, historical input sensor data).
[0123] At block 542, processing logic identifies historical performance data (e.g., Figure 1 At least a portion of the historical sensor data and the historical performance data may be associated with a new substrate processing equipment part (eg, for benchmarking).
[0124] At box 544, processing logic trains the machine learning model using the data input including the historical sensor data and the target output including the historical performance data to produce a trained machine learning model.
[0125] In some embodiments, the historical sensor data of block 540 includes historical images of historical substrate processing equipment parts, and the historical performance data of block 542 corresponds to historical substrate processing equipment parts. The historical performance data may be associated with substrate quality, such as metrology data of substrates, substrate yield, substrate defects, etc. The historical performance data may be associated with the quality of substrate processing equipment parts, such as flow test data (e.g., gas flowing through holes of substrate processing equipment parts), metrology data of substrate processing equipment parts, failure time of substrate processing equipment parts, etc. At block 544, a machine learning model may be trained using data inputs including historical images and target outputs including historical performance data to generate a machine learning model configured to generate a machine learning model based on images (e.g., Figure 5B The trained machine learning model is used to identify the threshold area. Figure 5B At box 524, the processing logic may use the threshold area identified by the trained machine learning model to identify a hole that is at least partially blocked (e.g., comparing the area of the hole determined at box 522 to the threshold area determined via the trained machine learning model).
[0126] In some embodiments, the historical sensor data of block 540 includes historical images of historical substrate processing equipment parts, and the historical performance data of block 542 includes historical hole maps corresponding to the historical substrate processing equipment parts. At block 544, a machine learning model may be trained using the data input including the historical images and the target output including the historical hole maps to produce a trained machine learning model to generate a target performance data based on images (e.g., Figure 5BIn response to the predicted performance data satisfying a first threshold, the processing logic may cause a corrective action (e.g., cleaning, repairing, or replacing the substrate processing equipment part). In response to the predicted performance data satisfying a second threshold, the processing logic may cause the substrate processing equipment part to be used in the substrate processing system.
[0127] Figure 5D is a method 500D for using a trained machine learning model (e.g., Figure 1 Model 190) performs blockage detection so that corrective action can be taken.
[0128] refer to Figure 5D At block 560 of method 500D, processing logic identifies the sensor data. In some embodiments, the sensor data of block 540 includes an image of a substrate processing equipment component.
[0129] At block 562, processing logic provides the sensor data as data input to a trained machine learning model (e.g., via Figure 5C 544 for training).
[0130] At block 564 , processing logic receives output associated with the prediction data from the trained machine learning model.
[0131] At block 566 , processing logic causes corrective action to be performed based on the predicted data.
[0132] In some embodiments, the sensor data is an image of a substrate processing equipment part, and the trained machine learning model of block 562 is trained using data inputs including historical images of substrate processing equipment parts and target outputs including historical performance data (e.g., substrate quality using historical substrate processing equipment parts). The predicted data of block 564 may be associated with a threshold area. In some embodiments, at block 566, processing logic Figure 5B The hole area of block 522 is compared with a threshold area to Figure 5B At block 524 of the present invention, an at least partially blocked hole is identified to subsequently cause corrective action (e.g., see Figure 5B 528) to clean, repair, or replace substrate processing equipment parts (eg, so that the hole area meets the threshold area).
[0133] In some embodiments, the sensor data is an image of a substrate processing equipment part, and the trained machine learning model of block 562 is trained using data inputs including historical images of the substrate processing equipment part and target outputs including historical performance data, including historical hole maps corresponding to historical substrate processing equipment parts. The prediction data of block 564 may be compared to a prediction model based on the image (e.g., Figure 5B In response to the predicted performance data satisfying a first threshold, the processing logic may cause a corrective action (e.g., cleaning, repairing, or replacing the substrate processing equipment part). In response to the predicted performance data satisfying a second threshold, the processing logic may cause the substrate processing equipment part to be used in a substrate processing system.
[0134] Figure 6 is a block diagram illustrating a computer system 600 according to some implementations. In some implementations, the computer system 600 is one or more of the client device 120, the prediction system 110, the server machine 170, the server machine 180, the prediction server 112, or the image capture device 400.
[0135] In some embodiments, the computer system 600 is connected (e.g., via a network, such as a local area network (LAN), an intranet, an extranet, or the Internet) to other computer systems. In some embodiments, the computer system 600 operates as a server or client computer in a client-server environment, or as a peer-to-peer computer in a peer-to-peer or distributed network environment. In some embodiments, the computer system 600 is provided by any device of a personal computer (PC), a tablet PC, a set-top box (Set-Top Box, STB), a personal digital assistant (Personal Digital Assistant, PDA), a cellular phone, a network device, a server, a network router, a switch or a bridge, or a group of instructions (sequentially or otherwise) that can be executed to specify the action to be performed by the device. In addition, the term "computer" should include any computer collection that executes a group (or multiple groups) of instructions to perform any one or more methods described herein, either individually or jointly.
[0136] In another aspect, the computer system 600 includes a processing device 602, a volatile memory 604 (e.g., a random access memory (RAM)), a non-volatile memory 606 (e.g., a read-only memory (ROM) or an electrically erasable programmable ROM (EEPROM)), and a data storage device 616, which communicate with each other via a bus 608.
[0137] In some embodiments, the processing device 602 is provided by one or more processors, such as a general-purpose processor (e.g., a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a microprocessor that implements other types of instruction sets, or a microprocessor that implements a combination of various types of instruction sets) or a special-purpose processor (e.g., an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).
[0138] In some embodiments, the computer system 600 also includes a network interface device 622 (e.g., coupled to the network 674). In some embodiments, the computer system 600 also includes a video display unit 610 (e.g., LCD), an alphanumeric input device 612 (e.g., keyboard), a cursor control device 614 (e.g., mouse), and a signal generating device 620.
[0139] In some embodiments, the data storage device 616 includes a non-transitory computer-readable storage medium 624 having stored thereon instructions 626 encoding any one or more of the methods or functions described herein, including encoding Figure 1 Components (e.g., corrective action component 122, prediction component 114, etc.) and instructions for implementing the methods described herein (e.g., one or more of methods 500A-D).
[0140] In some implementations, during execution of the instructions 626 by the computer system 600, the instructions 626 also reside completely or partially within the volatile memory 604 and / or within the processing device 602, and thus, in some implementations, the volatile memory 604 and the processing device 602 also constitute machine-readable storage media.
[0141] Although the computer-readable storage medium 624 is shown as a single medium in the illustrative example, the term "computer-readable storage medium" shall include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store one or more sets of executable instructions. The term "computer-readable storage medium" shall also include any tangible medium that can store or encode a set of instructions for execution by a computer, the set of instructions causing the computer to perform any one or more of the methods described herein. The term "computer-readable storage medium" shall include, but is not limited to, solid-state memories, optical media, and magnetic media.
[0142] In some embodiments, the methods, components, and features described herein are implemented by discrete hardware components, or integrated into the functionality of other hardware components (such as ASICs, FPGAs, DSPs, or similar devices). In some embodiments, the methods, components, and features are implemented by firmware modules or functional circuits within a hardware device. In some embodiments, the methods, components, and features are implemented in any combination of hardware devices and computer program components or in a computer program.
[0143] Unless otherwise specifically stated, terms such as "identify," "determine," "mask," "resize," "execute," "convert," "apply," "associate," "compare," "train," "cause," "receive," "provide," "obtain," "update," or the like refer to actions and processes performed or implemented by a computer system that manipulate data represented as physical (electronic) quantities within computer system buffers and memories and convert the data into other data similarly represented as physical quantities within computer system memories or buffers or other such information storage, transmission, or display devices. In some embodiments, the terms "first," "second," "third," "fourth," etc., as used herein, are intended to refer to labels that distinguish between different elements and do not have ordinal meanings according to their numerical names.
[0144] The examples described herein also relate to apparatus for performing the methods described herein. In some embodiments, the apparatus is specially constructed to perform the methods described herein, or comprises a general-purpose computer system selectively programmed by a computer program stored in the computer system. Such a computer program is stored in a computer-readable tangible storage medium.
[0145] The methods and illustrative examples described herein are not inherently related to any particular computer or other device. In some embodiments, various general purpose systems are used according to the teachings described herein. In some embodiments, more specialized devices are constructed to perform the methods described herein and / or each of their respective functions, routines, subroutines, or operations. Examples of structures for various these systems are set forth in the description above.
[0146] The above description is intended to be illustrative, not limiting. Although the present disclosure has been described with reference to specific illustrative examples and embodiments, it will be appreciated that the present disclosure is not limited to the examples and embodiments described. The scope of the present disclosure should be determined with reference to the claims and the full scope of equivalents to which the claims are entitled.
Claims
1. A method comprising: identifying an image of a substrate processing equipment part forming a plurality of apertures; determining, by a processing device, a corresponding adjacent angular distance of each of the plurality of holes and a corresponding area of each of the plurality of holes based on the image; as well as A first subset of the plurality of holes that are at least partially blocked is identified by the processing device based on at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of holes, wherein a corrective action associated with the substrate processing equipment part is performed based on the first subset of the plurality of holes that are at least partially blocked.
2. The method of claim 1 , wherein the image of the first surface of the substrate processing equipment part is captured while providing light to a second surface of the substrate processing equipment part opposite the first surface, wherein the light passes through at least a second subset of the plurality of apertures.
3. The method according to claim 1, further comprising: masking areas in the image to enhance visibility of the plurality of holes formed by the substrate processing equipment parts and reduce background errors; as well as The image is resized to a predetermined size to remove the scale factor.
4. The method according to claim 1, further comprising: performing contour detection to detect a projection of each of the plurality of holes and locate an image foreground; determining a corresponding centroid and the corresponding area for each of the plurality of holes; determining corresponding Cartesian coordinates for each of the plurality of holes; determining a part centroid of the substrate processing equipment part based on the corresponding centroid of each of the plurality of holes; converting the corresponding Cartesian coordinates of each of the plurality of holes into corresponding polar coordinates based on the part centroid; as well as A radial enlargement of the corresponding radial distance of the corresponding polar coordinate of each of the plurality of holes is applied to separate a clockwise hole spiral and a counterclockwise hole spiral.
5. The method of claim 1 , wherein said identifying said first subset of said plurality of holes that are at least partially blocked comprises: identifying corresponding neighboring holes and corresponding polar coordinates for each of the plurality of holes; associating each of the plurality of holes with a corresponding hole spiral using a corresponding nearest neighbor distance; as well as The corresponding adjacent angular distance for each of the plurality of apertures is compared to a threshold adjacent angular distance to identify a blocked aperture.
6. The method of claim 1 , wherein said identifying said first subset of said plurality of holes that are at least partially blocked comprises: The corresponding area of each of the plurality of pores is compared to a threshold area to identify partially blocked pores.
7. The method according to claim 6, further comprising: Identify historical images of historical substrate processing equipment parts; identifying historical performance data corresponding to historical substrate processing equipment parts; as well as A machine learning model is trained using data inputs comprising the historical images and target outputs comprising the historical performance data to produce a trained machine learning model configured to identify the threshold area.
8. The method according to claim 7, further comprising: Identify historical images of historical substrate processing equipment parts; identifying a historical hole map corresponding to the historical substrate processing equipment part; as well as A machine learning model is trained using data inputs comprising the historical images and target outputs comprising the historical hole maps to produce a trained machine learning model configured to predict performance data based on the images.
9. A non-transitory computer-readable storage medium storing instructions that, when executed, cause a processing device to perform operations comprising: identifying an image of a substrate processing equipment part forming a plurality of apertures; determining, based on the image, a corresponding adjacent angular distance for each of the plurality of apertures and a corresponding area for each of the plurality of apertures; as well as A first subset of the plurality of apertures that are at least partially blocked is identified based on at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of apertures, wherein a corrective action associated with the substrate processing equipment part is to be performed based on the first subset of the plurality of apertures that are at least partially blocked.
10. The non-transitory computer-readable storage medium of claim 9, wherein the image of the first surface of the substrate processing equipment part is captured while providing light to a second surface of the substrate processing equipment part opposite the first surface, wherein the light passes through at least a second subset of the plurality of apertures.
11. The non-transitory computer-readable storage medium of claim 9, the operations further comprising: masking areas in the image to enhance visibility of the plurality of holes formed by the substrate processing equipment parts and reduce background errors; as well as The image is resized to a predetermined size to remove the scale factor.
12. The non-transitory computer-readable storage medium of claim 9, the operations further comprising: performing contour detection to detect a projection of each of the plurality of holes and locate an image foreground; determining a corresponding centroid and the corresponding area for each of the plurality of holes; determining corresponding Cartesian coordinates for each of the plurality of holes; determining a part centroid of the substrate processing equipment part based on the corresponding centroid of each of the plurality of holes; converting the corresponding Cartesian coordinates of each of the plurality of holes into corresponding polar coordinates based on the part centroid; as well as A radial enlargement of the corresponding radial distance of the corresponding polar coordinate of each of the plurality of holes is applied to separate a clockwise hole spiral and a counterclockwise hole spiral.
13. The non-transitory computer-readable storage medium of claim 9, wherein identifying the first subset of the plurality of holes that are at least partially blocked comprises: identifying corresponding neighboring holes and corresponding polar coordinates for each of the plurality of holes; associating each of the plurality of holes with a corresponding hole spiral using a corresponding nearest neighbor distance; as well as The corresponding adjacent angular distance for each of the plurality of apertures is compared to a threshold adjacent angular distance to identify a blocked aperture.
14. The non-transitory computer-readable storage medium of claim 9, wherein identifying the first subset of the plurality of holes that are at least partially blocked comprises: The corresponding area of each of the plurality of pores is compared to a threshold area to identify partially blocked pores.
15. The non-transitory computer-readable storage medium of claim 14, the operations further comprising: Identify historical images of historical substrate processing equipment parts; identifying historical performance data corresponding to historical substrate processing equipment parts; as well as A machine learning model is trained using data inputs comprising the historical images and target outputs comprising the historical performance data to produce a trained machine learning model configured to identify the threshold area.
16. The non-transitory computer-readable storage medium of claim 15, the operations further comprising: Identify historical images of historical substrate processing equipment parts; identifying a historical hole map corresponding to the historical substrate processing equipment part; as well as A machine learning model is trained using data inputs comprising the historical images and target outputs comprising the historical hole maps to produce a trained machine learning model configured to predict performance data based on the images.
17. A system comprising: Memory; as well as a processing device coupled to the memory, the processing device being configured to: identifying an image of a substrate processing equipment part forming a plurality of apertures; determining, based on the image, a corresponding adjacent angular distance for each of the plurality of apertures and a corresponding area for each of the plurality of apertures; as well as A first subset of the plurality of apertures that are at least partially blocked is identified based on at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of apertures, wherein a corrective action associated with the substrate processing equipment part is to be performed based on the first subset of the plurality of apertures that are at least partially blocked.
18. The system of claim 17, wherein the image of the first surface of the substrate processing equipment part is captured while providing light to a second surface of the substrate processing equipment part opposite the first surface, wherein the light passes through at least a second subset of the plurality of apertures.
19. The system according to claim 17, wherein the processing device is further configured to: masking areas in the image to enhance visibility of the plurality of holes formed by the substrate processing equipment parts and reduce background errors; and The image is resized to a predetermined size to remove the scale factor.
20. The system of claim 17, wherein the processing device is further configured to: performing contour detection to detect a projection of each of the plurality of holes and locate an image foreground; determining a corresponding centroid and the corresponding area for each of the plurality of holes; determining corresponding Cartesian coordinates for each of the plurality of holes; determining a part centroid of the substrate processing equipment part based on the corresponding centroid of each of the plurality of holes; converting the corresponding Cartesian coordinates of each of the plurality of holes into corresponding polar coordinates based on the part centroid; as well as A radial enlargement of the corresponding radial distance of the corresponding polar coordinate of each of the plurality of holes is applied to separate a clockwise hole spiral and a counterclockwise hole spiral.