Clogging detection using image analysis
Image analysis of substrate processing equipment components detects clogging through angular distance and area analysis, enabling timely corrective actions and improving production efficiency by using machine learning models.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- APPLIED MATERIALS INC
- Filing Date
- 2023-09-06
- Publication Date
- 2026-04-20
Smart Images

Figure 0007848404000001 
Figure 0007848404000002 
Figure 0007848404000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to image analysis, and more particularly to clogging detection by image analysis.
Background Art
[0002] Production equipment includes various components used to manufacture products. For example, substrate processing equipment includes components used to manufacture substrates. The quality and cleanliness of the components affect the performance data of the products.
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 of the invention is not an extensive overview of the present disclosure. It is not intended to identify key or critical elements of the present disclosure, nor to define 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 the more detailed description that will be presented later.
[0004] In one aspect of the present disclosure, a method includes identifying an image of a substrate processing equipment component that forms a plurality of holes. The method further includes determining, by a processing device, based on the image, a corresponding adjacent angular distance of each of the plurality of holes and a corresponding area of each of the plurality of holes. The method further includes identifying, by the processing device, a first subset of the plurality of holes that are at least partially clogged, based on at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of holes. A corrective measure associated with the substrate processing equipment component can be executed based on the first subset of the plurality of holes that are at least partially clogged.
[0005] In another aspect of the present disclosure, a non-temporary computer-readable storage medium, when executed, stores instructions causing a processing device to perform an action. This action includes identifying an image of a substrate processing equipment component that forms a plurality of holes. This action further includes determining, based on the image, the corresponding adjacent angular distance of each of the plurality of holes and the corresponding area of each of the plurality of holes. This action further includes identifying a first subset of the plurality of holes that are at least partially clogged, based on at least one of the corresponding adjacent angular distance of each of the plurality of holes or the corresponding area. A corrective action related to the substrate processing equipment component may be performed based on the first subset of the plurality of holes that are at least partially clogged.
[0006] In another aspect of this disclosure, the system includes a memory and a processing device coupled to the memory. The processing device can identify an image of a substrate processing equipment component that forms a plurality of holes. The processing device can further determine, based on the image, the corresponding adjacent angular distance of each of the plurality of holes and the corresponding area of each of the plurality of holes. The processing device can further identify a first subset of the plurality of holes that are at least partially clogged based on at least one of the corresponding adjacent angular distance of each of the plurality of holes or the corresponding area. Corrective actions related to the substrate processing equipment component may be performed based on the first subset of the plurality of holes that are at least partially clogged.
[0007] This disclosure is shown in the figures of the attached drawings as examples, not as limitations. [Brief explanation of the drawing]
[0008] [Figure 1] This block diagram shows an exemplary system configuration according to a specific embodiment. [Figure 2] This figure shows a dataset generator for creating a dataset for a machine learning model, according to a specific embodiment. [Figure 3] This block diagram shows how to determine predictive data according to a specific embodiment. [Figure 4A] This figure shows an image capture device according to a specific embodiment. [Figure 4B-4C] This figure shows an image of a substrate processing equipment component according to a specific embodiment. [Figure 4D-4F] This figure shows the hole contour from an image of a substrate processing equipment component according to a specific embodiment. [Figure 4G] This figure shows the mapping of nearest-nearest holes in a substrate processing equipment component according to a specific embodiment. [Figure 4H] This figure shows the mapping of hole helices in a substrate processing equipment component according to a specific embodiment. [Figures 5A-5D] This is a flowchart illustrating a method related to blockage detection by image analysis according to a specific embodiment. [Figure 6] This is a block diagram showing a computer system according to a specific embodiment. [Modes for carrying out the invention]
[0009] Techniques relating to blockage detection using image analysis (for example, showerhead blockage detection from backlight images using image analysis) are described herein.
[0010] Production equipment includes various components used to manufacture products. For example, substrate processing equipment includes components used to manufacture substrates. Several components, such as showerheads and susceptors, form holes (e.g., channels from top to bottom) to supply fluid (e.g., gas, liquid, plasma) to a part of the substrate processing system. The quality and cleanliness of these components affect the performance data of the product. For example, if the holes in a component are completely or partially clogged, substrates with performance data that do not meet the threshold may be manufactured (e.g., defective wafers are manufactured).
[0011] Some conventional systems attempt to manufacture circuit boards with performance data that meets thresholds by manually inspecting components to determine if they meet quality and cleanliness standards. Manual inspection is time-consuming, relies on the user performing the inspection, and can be inaccurate.
[0012] In some conventional systems, components undergo cleaning procedures at set intervals to ensure that they produce boards with performance data that meets a threshold. Over time, components become dirty, damaged, worn, and clogged with foreign matter, which cannot be resolved by conventional cleaning procedures at set intervals. This leads to the production of boards with performance data that does not meet the threshold, equipment damage, reduced throughput, manufacturing interruptions, etc.
[0013] The devices, systems, and methods disclosed herein provide blockage detection by image analysis.
[0014] The processing device identifies an image of a substrate processing equipment component that forms holes. In some examples, the substrate processing equipment component is a showerhead having a top and bottom surface, which is substantially planar and substantially parallel to each other. Holes (e.g., channels) may be formed from the top surface to the bottom surface. The holes (e.g., the central axis of the channels) may be oblique (e.g., at an angle of 2 to 8 degrees) relative to the top and / or bottom surfaces. An image (e.g., a backlit image) of one surface (e.g., the top surface) may be captured while light is supplied to the opposite surface (e.g., the bottom surface) so that light is supplied through the unclogging holes.
[0015] In some embodiments, the processing device determines, based on the image, the corresponding adjacent angular distance of each hole and the corresponding area of each hole.
[0016] The processing device identifies a first subset of holes that are at least partially clogged based on at least one of the corresponding adjacent angular distances or corresponding areas of each hole. Based on this first subset of holes that are at least partially clogged, corrective actions related to the substrate processing equipment components will be taken.
[0017] The aspects of this disclosure offer technical advantages. This disclosure avoids the time, inaccuracies, and subjectivity associated with conventional manual inspection. This disclosure enables the manufacture of substrates that meet thresholds, avoids equipment damage, improves throughput, avoids manufacturing interruptions, and more.
[0018] While some embodiments of this disclosure describe blockage detection, this disclosure can be applied to the detection of partial blockages, worn components, foreign matter, components having a cleanliness level that does not meet a threshold cleanliness level, and so on.
[0019] Figure 1 is a block diagram showing an exemplary system 100 (exemplary system configuration) according to a particular embodiment. System 100 includes a client device 120, production equipment 124, sensors 126, measuring equipment 128, a prediction server 112, and a data store 140. In some embodiments, the prediction server 112 is part of the prediction system 110. In some embodiments, the prediction system 110 further includes server machines 170 and 180.
[0020] In some embodiments, one or more of client device 120, production equipment 124, sensor 126, measurement device 128, prediction server 112, data store 140, server machine 170, and / or server machine 180 are coupled to each other via network 130 to generate prediction data 160 for performing clogging detection. In some embodiments, network 130 is a public network that provides client device 120 access to prediction server 112, data store 140, and other publicly available computing devices. In some embodiments, network 130 is a private network that provides client device 120 access to production equipment 124, sensor 126, measurement device 128, data store 140, and other privately available computing devices. In some embodiments, network 130 includes one or more wide area networks (WANs), local area networks (LANs), wired networks (e.g., Ethernet networks), 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.
[0021] In some embodiments, the client device 120 includes computing devices such as personal computers (PCs), laptops, mobile phones, smartphones, tablet computers, netbook computers, 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 is alternatively included in the prediction system 110 (e.g., instead of being included in the client device 120). The client device 120 includes an operating system that enables the user to perform one or more of the following: integrating, generating, analyzing, or editing data, or giving instructions to the prediction system (e.g., a machine learning processing system).
[0022] In some embodiments, the corrective action component 122 receives user input (e.g., via a graphical user interface (GUI) presented via the client device 120), receives sensor data 142 from sensors, receives performance data 152 from the measuring device 128, and so on. In some embodiments, the corrective action component 122 transmits data (e.g., user input, sensor data 142, performance data 152, etc.) 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 data (e.g., user input, sensor data 142, performance data 1542, etc.) 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 embodiments, the corrective action component 122 receives an instruction for a corrective action (e.g., based on the prediction data 160) from the prediction system 110 and causes the corrective action to be executed.
[0023] In some embodiments, the predictive data 160 relates to corrective actions. In some embodiments, the corrective action relates to one or more of the following: cleaning the substrate processing equipment component, repairing the substrate processing equipment component, replacing the substrate processing equipment component, computational process control (CPC), statistical process control (SPC) (e.g., SPC for comparison with a 3-sigma graph, etc.), advanced process control (APC), model-based process control, proactive functional maintenance, design optimization, updating production parameters, feedback control, machine learning correction, etc. In some embodiments, the corrective action includes providing a warning (e.g., a warning not to use the substrate processing equipment component or production equipment 124 if the predictive data 160 indicates a predicted anomaly, such as an anomaly in the substrate processing equipment component or product). In some embodiments, the corrective action includes performing feedback control (e.g., cleaning, repairing, and / or replacing the substrate processing equipment component in response to the predictive data 160 indicating a predicted anomaly). In some embodiments, the corrective action includes providing machine learning (e.g., causing the substrate processing equipment component to correct itself based on the predictive data 160).
[0024] In some embodiments, the prediction server 112, server machine 170, and server machine 180 each include one or more computing devices such as rack-mount servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, desktop computers, graphics processing units (GPUs), and application-specific integrated circuits (ASICs) (e.g., tensor processing units (TPUs)).
[0025] The prediction server 112 includes a prediction component 114. In some embodiments, the prediction component 114 receives sensor data 142 (e.g., received from a client device 120 and retrieved from a data store 140) and generates prediction data 160 related to blockage detection. In some embodiments, the prediction component 114 uses one or more trained machine learning models 190 to determine the prediction data 160 for blockage detection. In some embodiments, the trained machine learning models 190 are trained using historical sensor data 144 and historical performance data 154.
[0026] 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 dataset, 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 dataset, performance data 152 being prediction percentages, etc.). In some embodiments, the prediction system 110 generates prediction data 160 using unsupervised machine learning (e.g., unsupervised dataset, clustering, clustering based on historical sensor data 144, etc.).
[0027] In some embodiments, the production equipment 124 (e.g., a cluster tool) is part of a substrate processing system (e.g., an integrated processing system). The production equipment 124 includes one or more of the following: a controller, an enclosure system (e.g., a substrate carrier, a front-opening unified pod (FOUP), an auto-teach FOUP, a process kit enclosure system, a substrate enclosure system, a cassette, etc.), a side storage pod (SSP), an aligner device (e.g., an aligner chamber), a factory interface (e.g., an equipment front module (EFEM)), a load lock, a transfer chamber, one or more processing chambers, a robotic arm (e.g., one disposed in the transfer chamber, one disposed in the front interface, etc.). The enclosure system, SSP, and load lock are mounted to the factory interface, and the robotic arm disposed in the factory interface can transfer contents (e.g., substrates, process kit rings, carriers, verification wafers, etc.) between the enclosure system, SSP, load lock, and factory interface. An aligner device is positioned at the factory interface to align the content. A load lock and processing chamber are mounted in the transfer chamber, and a robotic arm positioned in the transfer chamber can transfer the content (e.g., substrates, process kit rings, carriers, verification wafers, etc.) between the load lock, processing chamber, and transfer chamber. In some embodiments, the production equipment 124 includes components of the substrate processing system. In some embodiments, sensor data 142 includes parameters of processes (e.g., etching, heating, cooling, transfer, processing, flow, etc.) performed by the components of the production equipment 124. In some embodiments, the substrate processing equipment components are components of the processing chamber (e.g., shower heads, susceptors, etc.).
[0028] In some embodiments, the sensor 126 provides sensor data 142 related to the production equipment 124 (e.g., sensor values such as past and current sensor values). In some embodiments, the sensor 126 includes one or more of the following: imaging sensors (e.g., cameras, imaging devices, etc.), pressure sensors, temperature sensors, flow sensors, spectroscopic sensors, etc. 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.
[0029] In some embodiments, the sensor 126 provides sensor data 142 such as image data, leakage rate, temperature, pressure, flow rate (e.g., gas flow rate), pump efficiency, interval (SP), high-frequency radio frequency (HFRF), current, power, voltage, and one or more other values.
[0030] In some embodiments, sensor data 142 (e.g., past sensor data 144, current sensor data 146, etc.) is processed (e.g., by a client device 120 and / or by a prediction server 112). In some embodiments, processing of sensor data 142 includes generating features. In some embodiments, features are patterns of sensor data 142 (e.g., gradient, width, height, peak, etc.) or combinations of values from sensor data 142 (e.g., power derived from voltage and current, etc.). In some embodiments, sensor data 142 includes features used by a prediction component 114 to obtain prediction data 160.
[0031] In some embodiments, measuring instruments 128 (e.g., imaging instruments, spectrometers, ellipsometry instruments, etc.) are used to determine measurement data (e.g., inspection data, image data, spectroscopic data, ellipsometry data, material composition, optical, or structural data, etc.) corresponding to substrates manufactured by production equipment 124 (e.g., substrate processing equipment). In some examples, after production equipment 124 has processed the substrate, measuring instruments 128 are used to inspect a portion of the substrate (e.g., a layer). In some embodiments, measuring instruments 128 perform scanning ultrasound microscopy (SAM), ultrasound, X-ray inspection, and / or computed tomography (CT) inspection. In some examples, after production equipment 124 has deposited one or more layers on the substrate, measuring instruments 128 are used to determine the quality of the processed substrate (e.g., layer thickness, layer uniformity, interlayer spacing, etc.). In some embodiments, measuring instruments 128 include imaging devices (e.g., SAM equipment, ultrasound equipment, X-ray equipment, CT equipment, etc.). In some embodiments, the performance data 152 includes measurement data from the measuring instrument 128.
[0032] In some embodiments, the datastore 140 is 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, the datastore 140 includes a number of storage components (e.g., a number of drives or a number of databases) spanning a number of computing devices (e.g., a number of server computers). In some embodiments, the datastore 140 stores one or more of sensor data 142, performance data 152, and / or prediction data 160.
[0033] Sensor data 142 includes past sensor data 144 and current sensor data 146. In some embodiments, sensor data 142 may include one or more of the following: image data, pressure data, pressure range, temperature data, temperature range, flow rate data, power data, comparison parameters for comparing inspection data with threshold data, threshold data, cooling rate data, cooling rate range, etc. In some embodiments, at least a portion of sensor data 142 is from sensor 126.
[0034] Performance data 152 includes historical performance data 154 and current performance data 156. Performance data 152 may include hole maps corresponding to substrate processing equipment components (e.g., where holes are located in substrate processing equipment components, where holes are expected to be located in substrate processing equipment components). In some examples, performance data 152 indicates whether the substrate is properly designed, properly manufactured, and / or properly functioning. In some embodiments, at least a portion of performance data 152 relates to the quality of the substrate manufactured by the production equipment 124. In some embodiments, at least a portion of performance data 152 is based on measurement data from the measuring equipment 128 (e.g., historical performance data 154 includes measurement data indicating a properly processed substrate, substrate characteristic data, yield, etc.). In some embodiments, at least a portion of performance data 152 is based on substrate inspection (e.g., current performance data 156 based on actual inspection). In some embodiments, the performance data 152 includes an indication of absolute values (e.g., indicating that the inspection data of the joint interface is only a calculated value below the threshold data, or that the deformation is only a calculated value below the threshold deformation value) or relative values (e.g., indicating that the inspection data of the joint interface is only 5% below the threshold data, or that the deformation is only 5% below the threshold deformation value). In some embodiments, the performance data 152 indicates that a threshold amount of error is met (e.g., at least 5% error in manufacturing, at least 5% error in flow rate, at least 5% error in deformation, specification limit).
[0035] In some embodiments, the client device 120 provides performance data 152 (e.g., product data). In some examples, the client device 120 provides performance data 152 indicating product anomalies (e.g., defective products) (e.g., based on user input). In some embodiments, the performance data 152 includes the quantity of manufactured products that were normal or abnormal (e.g., 98% normal products). In some embodiments, the performance data 152 indicates the quantity of manufactured products that are expected to be normal or abnormal. In some embodiments, the performance data 152 includes one or more of the following: yield of a previous batch of products, average yield, predicted yield, predicted quantity of defective or non-defective products, etc. In some examples, in response to the yield of a first batch of products being 98% (e.g., 98% of products were normal and 2% were abnormal), the client device 120 provides performance data 152 indicating that the upcoming batch of products may have a 98% yield.
[0036] In some embodiments, the historical data includes one or more of the historical sensor data 144 and / or historical performance data 154 (e.g., at least a portion for training the machine learning model 190). The current data includes one or more of the current sensor data 146 and / or current performance data 156 (e.g., at least a portion that is input to the trained machine learning model 190 after the model 190 has been trained using the historical data). In some embodiments, the current data is used to retrain the trained machine learning model 190.
[0037] In some embodiments, the predictive data 160 may be used to trigger the execution of corrective actions on substrate processing equipment components.
[0038] Performing measurements on a product to determine substrate processing equipment components that do not meet threshold quality, and components that are manufactured incorrectly (e.g., bonded metal plate structures), is costly in terms of the time used, the measuring equipment 128 used, the energy consumed, the bandwidth used to transmit the measurement data, and the processor overhead for processing the measurement data. By providing sensor data 142 to Model 190 and receiving predictive data 160 from Model 190, System 100 has the technical advantage of avoiding the costly process of using measuring equipment 128 and discarding the substrate.
[0039] Executing a production process using substrate processing equipment components that result in defective products incurs costs in terms of time, energy, products, substrate processing equipment components, and production equipment 124. The cost of identifying substrate processing equipment components leads to the cleaning of defective products and substrate processing equipment components, the repair of substrate processing equipment components, the replacement of substrate processing equipment components, and the disposal of old components. By providing sensor data 142 to model 190, receiving predictive data 160 from model 190, and triggering corrective actions based on the predictive data 160, system 100 has the technical advantage of avoiding the costs of manufacturing, identifying, and disposing of defective substrates.
[0040] In some embodiments, the prediction system 110 further includes server machines 170 and 180. Server machine 170 includes a dataset generator 172 that can generate datasets (e.g., a set of data inputs and a set of target outputs) for training, validating, and / or testing a machine learning model 190. The dataset generator 172 has the functions of collecting, compiling, reducing, and / or splitting data to make the data into a form for machine learning. In some embodiments (e.g., with small datasets), splitting for post-training validation (e.g., explicit splitting) is not used. Iterative cross-validation (e.g., 5-fold cross-validation, skip-one cross-validation) may be used during training, so that a given dataset is actually split repeatedly into different training and validation sets during training. The model (e.g., the best model, the model with the highest accuracy, etc.) is selected from a vector of models on an automatically separated combinatorial subset. In some embodiments, the dataset generator 172 can explicitly split 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). In this embodiment, some operations of the dataset generator 172 are described below in detail with respect to Figures 2 and 5A. In some embodiments, the prediction system 110 generates a number of sets of features (e.g., training features) (e.g., via prediction components 114).In some examples, the first set of features corresponds to the first set of sensor data types corresponding to each of the datasets (e.g., a training set, a validation set, and a test set) (e.g., a first set of sensors, a first combination of values from the first set of sensors, and a first pattern in the values from the first set of sensors), and the second set of features corresponds to the second set of sensor data types corresponding to each of the datasets (e.g., a second set of sensors different from the first set of sensors, a second combination of values different from the first combination, and a second pattern different from the first pattern).
[0041] 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, the engines (e.g., training engine 182, validation engine 184, selection engine 185, and test engine 186) refer to hardware (e.g., circuits, dedicated logic, programmable logic, microcode, processing devices, etc.), software (e.g., instructions executed on processing devices, general-purpose computer systems, or dedicated machines), firmware, microcode, or a combination thereof. The training engine 182 can train a machine learning model 190 using one or more sets of features related to the training set from the dataset generator 172. In some embodiments, the training engine 182 generates a number of trained machine learning models 190, each trained machine learning model 190 corresponding to a distinct set of parameters from the training set (e.g., sensor data 142) and a corresponding response (e.g., performance data 152). In some embodiments, the number of models are trained with the same parameters but distinct targets for the purpose of modeling a number of effects. In some examples, a first trained machine learning model was trained using sensor data 142 from all 126 sensors (e.g., sensors 1-5), a second trained machine learning model was trained using a first subset of sensor data (e.g., from sensors 1, 2, and 4), and a third trained machine learning model was trained using a second subset of sensor data (e.g., from sensors 1, 3, 4, and 5) that partially overlapped with the first subset of features.
[0042] The validation engine 184 can validate the trained machine learning models 190 using a corresponding set of features from the validation set of the dataset generator 172. For example, a first trained machine learning model 190 trained using a first set of features from the training set is validated using a first set of features from the validation set. The validation engine 184 determines the accuracy of each trained machine learning model 190 based on the corresponding set of features from the validation set. The validation engine 184 evaluates and flags trained machine learning models 190 that have an accuracy that does not meet a threshold accuracy (e.g., to be discarded). In some embodiments, the selection engine 185 can select one or more trained machine learning models 190 that have an accuracy that meets a threshold accuracy. In some embodiments, the selection engine 185 can select the trained machine learning model 190 that has the highest accuracy among the trained machine learning models 190.
[0043] The test engine 186 can test the trained machine learning models 190 using the corresponding set of features from the test set generated by the dataset generator 172. For example, a first trained machine learning model 190 trained using a first set of features from the training set is tested using a first set of features from the test set. Based on the test set, the test engine 186 determines which trained machine learning model 190 has the highest accuracy among all the trained machine learning models.
[0044] In some embodiments, the machine learning model 190 (e.g., used for classification) refers to the model artifact created by the training engine 182 using a training set that includes data inputs and corresponding target outputs (e.g., correctly classifying a condition or ordinal level for each training input). Patterns in the dataset that map data inputs to target outputs (correct classifications or levels) may be found, and the machine learning model 190 is provided with mappings that capture these patterns. In some embodiments, the machine learning model 190 uses one or more of the following: Gaussian process regression (GPR), Gaussian process classification (GPC), Bayesian neural networks, neural network Gaussian processes, deep belief networks, Gaussian mixture models, or other probabilistic learning methods. Non-probabilistic methods may also be used, including one or more of the following: support vector machines (SVM), radial basis functions (RBF), clustering, nearest neighbor algorithm (k-NN), linear regression, random forest, neural networks (e.g., artificial neural networks), etc. In some embodiments, the machine learning model 190 is a multivariate analysis (MVA) regression model.
[0045] The prediction component 114 provides the current sensor data 146 (e.g., as input) to the trained machine learning model 190 and runs the trained machine learning model 190 (e.g., to obtain one or more outputs for the input). The prediction component 114 may determine (e.g., extract) prediction data 160 from the trained machine learning model 190 and determine (e.g., extract) uncertainty data indicating the level of confidence 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 uncertainty data (e.g., an uncertainty function, or an acquisition function derived from the uncertainty function) to determine whether the prediction data 160 should be used to perform a corrective action or whether the model 190 should be further trained.
[0046] For illustrative purposes only, rather than limiting them, aspects of this disclosure describe training one or more machine learning models 190 using historical data (i.e., previous data, historical sensor data 144, and historical performance data 154) and providing current sensor data 146 to one or more trained probabilistic machine learning models 190 to determine predictive data 160. In other embodiments, a heuristic model or rule-based model is used to determine the predictive data 160 (e.g., without using a trained machine learning model). In other embodiments, a non-probabilistic machine learning model may be used. The predictive component 114 monitors the historical sensor data 144 and historical performance data 154. In some embodiments, any of the information described with respect to the data input 210 in Figure 2 is monitored by or otherwise used by the heuristic model or rule-based model.
[0047] In some embodiments, the functions of client device 120, prediction server 112, server machine 170, and server machine 180 are provided by fewer machines. For example, in some embodiments, server machines 170 and 180 are integrated into a single machine, while in some other embodiments, server machine 170, server machine 180, and prediction server 112 are integrated into a single machine. In some embodiments, client device 120 and prediction server 112 are integrated into a single machine.
[0048] In general, functions described in one embodiment as being performed by the client device 120, prediction server 112, server machine 170, and server machine 180 may also be performed by the prediction server 112 in other embodiments, where appropriate. In addition, functions attributed to a particular component may be performed by various or numerous components working together. For example, in some embodiments, the prediction server 112 determines corrective actions based on prediction data 160. In another example, the client device 120 determines the prediction data 160 based on data received from a trained machine learning model.
[0049] In addition, the functionality of a particular component may be performed by various or numerous components working together. In some embodiments, one or more of the prediction server 112, server machine 170, or server machine 180 are accessed as services provided to other systems or devices through a suitable application programming interface (API).
[0050] In some embodiments, “User” is represented as a single individual. However, other embodiments of this disclosure include “User” as an entity controlled by multiple users and / or automated sources. In some examples, a set of individual users, federated as a group of administrators, can be considered “User”.
[0051] Embodiments of this disclosure relate to determining predictive data 160 for detecting jams in substrate processing equipment components in production equipment (e.g., substrate processing equipment), but in some embodiments, this disclosure can also be applied in general to quality detection. Embodiments can generally be applied to determining the quality of components based on different types of data.
[0052] Figure 2 shows a dataset generator 272 (e.g., dataset generator 172 in Figure 1) for creating a dataset for a machine learning model (e.g., model 190 in Figure 1) according to a particular embodiment. In some embodiments, the dataset generator 272 is part of the server machine 170 in Figure 1. The dataset generated by the dataset generator 272 in Figure 2 can be used to train a machine learning model (see, for example, Figure 5C) and to trigger the execution of corrective actions (see, for example, Figure 5D).
[0053] The dataset generator 272 (e.g., the dataset generator 172 in Figure 1) creates a dataset for a machine learning model (e.g., the model 190 in Figure 1). The dataset generator 272 creates the dataset using historical sensor data 244 (e.g., historical sensor data 144 in Figure 1) and historical performance data 254 (e.g., historical performance data 154 in Figure 1). The system 200 in Figure 2 shows the dataset generator 272, data input 210, and target output 220 (e.g., target data).
[0054] In some embodiments, the dataset generator 272 generates a dataset (e.g., a training set, a validation set, a test set) containing one or more data inputs 210 (e.g., a training input, a validation input, a test input) and one or more target outputs 220 corresponding to the data inputs 210. The dataset further includes mapping data that maps the data inputs 210 to the target outputs 220. The data inputs 210 are also called “features,” “attributes,” or “information.” In some embodiments, the dataset generator 272 provides the dataset to a training engine 182, a validation engine 184, or a test engine 186, and the dataset is used to train, validate, or test a machine learning model 190. Several embodiments of generating a training set are described further with reference to Figure 5A.
[0055] In some embodiments, the dataset generator 272 generates a data input 210 and a target output 220. In some embodiments, the data input 210 includes one or more sets of historical sensor data 244. In some embodiments, the historical sensor data 244 includes one or more of the following: sensor data from one or more types of sensors, combinations of sensor data from one or more types of sensors, patterns from sensor data from one or more types of sensors, and so on.
[0056] In some embodiments, the dataset generator 272 generates a first data input corresponding to a first set of historical sensor data 244A for training, validating, or testing a first machine learning model, and the dataset generator 272 generates a second data input corresponding to a second set of historical sensor data 244B for training, validating, or testing a second machine learning model.
[0057] In some embodiments, the dataset generator 272 discretizes (e.g., segments) one or more of the data inputs 210 or target outputs 220 (e.g., for use in a classification algorithm for a regression problem). Discretizing the data inputs 210 or target outputs 220 (e.g., segmentation by a sliding window) converts continuous values of a variable into discrete values. In some embodiments, the discrete values of the data inputs 210 represent discrete historical sensor data 244 for obtaining the target outputs 220 (e.g., discrete historical performance data 254).
[0058] The data inputs 210 and target outputs 220 for training, validating, or testing a machine learning model contain information for a specific piece of equipment (e.g., for a specific circuit board production piece of equipment). In some examples, the historical sensor data 244 and historical performance data 254 are for the same production piece of equipment.
[0059] In some embodiments, the information used to train the machine learning model is from a specific type of production equipment 124 of production facilities having specific characteristics, enabling the trained machine learning model to determine the results of a particular group of production equipment 124 based on inputs of current parameters (e.g., current sensor data 146) related to one or more components that share characteristics of a particular group. In some embodiments, the information used to train the machine learning model is for components from two or more production facilities, enabling the trained machine learning model to determine the results of a component based on inputs from one production facility.
[0060] In some embodiments, after generating a dataset and using the dataset to train, validate, or test the machine learning model 190, the machine learning model 190 is further trained, validated, or tested (e.g., current performance data 156 in Figure 1) or tuned (e.g., tune weights related to the input data of the machine learning model 190, such as connection weights in a neural network).
[0061] Figure 3 is a block diagram showing a system 300 for generating predictive data 360 (e.g., predictive data 160 in Figure 1) according to a particular embodiment. The system 300 is used to determine the predictive data 360 via a trained machine learning model (e.g., model 190 in Figure 1) for blockage detection (e.g., for taking corrective action).
[0062] In block 310, system 300 (e.g., prediction system 110 in Figure 1) performs data partitioning of historical data (e.g., historical sensor data 344 and historical performance data 354 for model 190 in Figure 1) (e.g., via the dataset generator 172 of server machine 170 in Figure 1) to generate a training set 302, a validation set 304, and a test set 306. In some examples, the training set is 60% of the historical data, the validation set is 20% of the historical data, and the test set is 20% of the historical data. 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 features derived from 20 sensors (e.g., sensor 126 in Figure 1) and 100 products (e.g., each product corresponding to sensor data from the 20 sensors), then the first set of features 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. In this example, the first set of features in the training set would be the parameters from sensors 1-10 for products 1-60.
[0063] In block 312, system 300 performs model training using training set 302 (e.g., via training engine 182 in Figure 1). In some embodiments, system 300 trains multiple models using multiple sets of features from training set 302 (e.g., a first set of features from training set 302, a second set of features from training set 302, etc.). For example, system 300 trains machine learning models to produce a first trained machine learning model using a first set of features in the training set (e.g., sensor data from sensors 1-10 of products 1-60) and a second trained machine learning model using a second set of features in the training set (e.g., sensor data from sensors 11-20 of products 1-60). In some embodiments, the first and second trained machine learning models are combined to produce a third trained machine learning model (e.g., it is, in some embodiments, a better predictor than the first or second trained machine learning model on its own). In some embodiments, the sets of features used when comparing models overlap (for example, 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 generated, including models with various rearrangements of features and combinations of models.
[0064] In block 314, system 300 performs model validation using validation set 304 (e.g., via validation engine 184 in Figure 1). System 300 validates each of the trained models using the corresponding sets of features in validation set 304. For example, 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 of 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 of products 61-80). In some embodiments, system 300 validates hundreds of models generated in block 312 (e.g., models with various arrangements of features, combinations of models, etc.). In block 314, system 300 determines the accuracy of each of one or more trained models (e.g., via model validation) and determines whether one or more of the trained models have an accuracy that meets a threshold accuracy. In response to the decision that none of the trained models have the precision to meet the threshold, the flow returns to block 312, where system 300 trains models using different sets of features from the training set. In response to the decision that one or more of the trained models have the precision to meet the threshold, the flow proceeds to block 316. System 300 discards trained machine learning models with precision below the threshold (for example, based on the validation set).
[0065] In block 316, system 300 performs model selection (e.g., via selection engine 185 in Figure 1) to determine which of the one or more trained models that satisfy the threshold precision has the highest precision (e.g., selected model 308 based on validation in block 314). In response to the determination that two or more of the trained models that satisfy the threshold precision have the same precision, the flow returns to block 312, where system 300 performs model training using a more refined training set corresponding to a more refined set of features to determine the trained model with the highest precision.
[0066] In block 318, system 300 performs model testing using test set 306 to test selected model 308 (e.g., via test engine 186 in Figure 1). System 300 tests a first trained machine learning model using a first set of features in the test set (e.g., sensor data from sensors 1-10 of products 81-100) and determines that the first trained machine learning model meets threshold precision (e.g., based on the first set of features in test set 306). In response that the precision of selected model 308 does not meet threshold precision (e.g., selected model 308 is overfitted to training set 302 and / or validation set 304 and is not applicable to other datasets such as test set 306), the flow proceeds to block 312, where system 300 performs model training (e.g., retraining) using different training sets corresponding to different sets of features (e.g., sensor data from different sensors). In response to the decision that the selected model 308 has accuracy that meets the threshold accuracy based on the test set 306, the flow proceeds to block 320. At least in block 312, the model learns patterns from past data to make predictions, and in block 318, the system 300 applies the model to the remaining data (e.g., test set 306) to test the predictions.
[0067] In block 320, the system 300 uses a trained model (e.g., selected model 308) to receive current sensor data 346 (e.g., current sensor data 146 in Figure 1), determine (e.g., extract) predictive data 360 (e.g., predictive data 160 in Figure 1) for blockage detection from the trained model, and perform corrective actions. In some embodiments, the current sensor data 346 corresponds to the same type of feature in past sensor data 344. In some embodiments, the current sensor data 346 corresponds to the same type of feature as a subset of the type of feature in past sensor data 344 used to train the selected model 308.
[0068] In some embodiments, current data is received. In some embodiments, the current data includes current performance data 356 (e.g., current performance data 156 in Figure 1) and / or current sensor data 346. In some embodiments, at least a portion of the current data is received from a measuring instrument (e.g., measuring instrument 128 in Figure 1) or via user input. In some embodiments, model 308 is retrained based on the current data. In some embodiments, the new model is trained based on the current performance data 356 and current sensor data 346.
[0069] In some embodiments, one or more of blocks 310-320 are performed in various orders and / or in conjunction 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 partitioning in block 310, model validation in block 314, model selection in block 316, and / or model testing in block 318 are not performed.
[0070] Figure 4A shows an image capture device 400 according to a specific embodiment (for example, configured to provide a backlit image of a substrate processing equipment component).
[0071] The image capture device may include a housing 410 which includes walls (e.g., side walls, top wall, bottom wall) that at least partially enclose the internal volume. The housing (e.g., top wall) may form an opening 412. A light-emitting device 414 may be disposed in the internal volume of the housing 410. A spacer 416 may be disposed on or integrated with the light-emitting device 414. A substrate processing equipment component 420 which forms a hole 422 may be disposed on the spacer 416.
[0072] The substrate processing equipment component 420 may be a showerhead, a susceptor, etc. In some embodiments, the substrate processing equipment component 420 is cylindrical (e.g., circular outer circumference). In some embodiments, the hole 422 is perpendicular (e.g., 90 degrees) to the top and / or bottom surface of the substrate processing equipment component 420. In some embodiments, the hole 422 is substantially perpendicular (e.g., 90-95 degrees, 90-100 degrees, 95-100 degrees, etc.) to the top and / or bottom surface of the substrate processing equipment component 420. In some embodiments, the hole 422 is not perpendicular to the top and / or bottom surface of the substrate processing equipment component 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 top to the bottom surface of the substrate processing equipment component 420. In some embodiments, the hole 422 allows light to be projected through the substrate processing equipment component 420.
[0073] A sensor 418 (e.g., an imaging device, camera, etc.) may be disposed on the housing 410 above the opening 412. The sensor 418 can capture sensor data (e.g., image data, images, video) of the substrate processing equipment component 420 while the light-emitting device 414 is emitting light. The sensor data may include images of light passing through one or more of the holes 422 (e.g., through holes that are at least partially not blocked). Components (e.g., a diffuser sheet) may be disposed between the sensor 418 and the substrate processing equipment component 420.
[0074] The image acquisition device 400 may be a darkroom apparatus (e.g., a housing 410 that, when closed, blocks out external light) in which a pre-installed camera (e.g., a sensor 418) is installed. The sensor 418 can acquire a high-resolution digital image by passing constrained light (e.g., from a light-emitting device 414) through a diffuser sheet.
[0075] Figures 4B to 4C illustrate the image processing of a substrate processing equipment component 420 according to a specific embodiment. In some embodiments, the substrate processing equipment component 420 forms holes 422 arranged in a spiral pattern, such as those shown in Figures 4B to 4C. In some embodiments, the substrate processing equipment component 420 forms holes 422 arranged in one or more other patterns (e.g., non-spiral patterns).
[0076] The processing device can receive image 430A (e.g., the original input image, sensor data from sensor 418). For example, the processing device can read the input image using an image processing algorithm. The processing device can process image 430A in Figure 4B to generate the processed image 430B in Figure 4C. The processing device can mask relevant areas (e.g., the area of hole 422) from image 430A to highlight the showerhead holes and limit (e.g., remove) the background error of the processed image 430B. The processing device can resize image 430A to a predetermined size to remove the scale factor, thereby generating the processed image 430B. The processed image 430B can highlight features of interest (e.g., light passing through hole 422).
[0077] Referring to Figure 4D, the processing device can further perform contour detection (e.g., by applying a contour detection algorithm) to detect the projection of each illuminated hole (e.g., hole 422), pinpoint the location of the image foreground, thereby generating a processed image 430C from processed image 430B or image 430A.
[0078] To find different features of a contour, the processing device can calculate the centroid and area of each contour. To pinpoint the location of each hole 422 in a substrate processing equipment component 420 (e.g., a shower head), the processing device can derive the associated x and y coordinates. Based on the centroid distribution of the identified holes 422, the processing device can calculate the centroid of the substrate processing equipment component 420 (e.g., a shower head).
[0079] Figure 4E shows a magnified view of the processed image 430C, which illustrates the contour detection of individual holes 422 by the transformation.
[0080] Figure 4F shows a magnified view 430C of the processed image showing the radial distance (r) and angular distance (theta) of hole 422 and its neighborhoods (e.g., four neighborhoods). The processing device can be determined relative to the centroid of a complete substrate processing equipment component (e.g., a shower head) and can convert the Cartesian coordinate system to polar coordinates (radius (r), angle (theta)). The processing device can apply radial scaling to the radial distance of each hole 422 to clearly separate clockwise and counterclockwise helices (e.g., Fermat patterns). The processing device can determine the nearest neighbors (e.g., four nearest neighbors). The processing device can determine the nearest neighbors by using a k-dimensional tree (KDTree) (e.g., a spatial partitioning data structure for organizing points in k-dimensional space, a binary spatial partitioning tree) or a cKDTree (e.g., a KDTree implemented in C++, and / or a KDTree wrapped in Cython). The processing device can calculate the radial and angular distances of each point with recognized neighbors. The processing device can use the nearest neighbor distance to connect and associate each hole 422 with the helical to which the hole 422 belongs (e.g., clockwise or counterclockwise). The processing device can tag the sequence of holes as identification coordinates (e.g., R1-1, R1-2, R2-849, R2-848, where R1 is the first helical and R2 is the second helical).
[0081] Figure 4G shows graph 440, where the centers of all connected nearest holes fall into similar curves that form the configuration of the right-handed spiral 442 and left-handed spiral 444 of hole 422. The x-axis is the radial angle (e.g., theta), and the y-axis is the radius.
[0082] Figure 4H shows a graph 450 of the holes 422 in the substrate processing equipment component 420. The x-axis represents the distance from the center in the y-direction, and the y-axis represents the distance from the center in the x-direction. Graph 450 shows the x-distance from the center and the y-distance from the center for each hole 422.
[0083] In some embodiments, for each hole 422, the processing logic compares the adjacent angular distance to the midpoint distance of its helix to identify a completely clogged (e.g., missing) hole or an active (e.g., present) hole. The processing logic can apply a threshold to the area of each hole to identify partially clogged holes and generate a clogged state report. Based on the clogged state results, the processing logic can trigger additional cleaning cycles, longer cleaning cycle times, maintenance, repair, replacement, etc. The area and state of each hole 422 during cleaning can indicate the effectiveness of the cleaning.
[0084] In some embodiments, the processing logic can receive flow data (e.g., related to the flow of fluid through the substrate processing equipment component 420) and determine whether the substrate processing equipment component 420 meets a threshold (e.g., has been properly cleaned).
[0085] Figures 5A to 5D are flowcharts of methods 500A to 500D related to image analysis-based blockage detection according to specific embodiments. In some embodiments, methods 500A to 500D are executed by processing logic including hardware (e.g., circuits, dedicated logic, programmable logic, microcode, processing devices, etc.), software (e.g., instructions executed on processing devices, general-purpose computer systems, or dedicated machines), firmware, microcode, or a combination thereof. In some embodiments, methods 500A to 500D are executed at least partially by a prediction system 110. In some embodiments, method 500A is executed at least partially by the prediction system 110 (e.g., server machine 170 and dataset generator 172 in Figure 1, dataset generator 272 in Figure 2). In some embodiments, the prediction system 110 uses method 500A to generate datasets for training, validating, or testing at least one of a machine learning model. In some embodiments, method 500B is executed by a client device 120 or a prediction system 110 (e.g., a corrective action component 122). In some embodiments, method 500C is executed by a server machine 180 (e.g., a training engine 182, etc.). In some embodiments, method 500D is executed by a prediction server 112 (e.g., a prediction component 114). In some embodiments, method 500D is executed by a client device 120 (e.g., a corrective action component 122). In some embodiments, a non-temporary storage medium stores instructions, and when the instructions are executed by a processing device (e.g., a prediction system 110, a server machine 180, a prediction server 112, a client device 120, etc.), the processing device executes one or more of methods 500A to 500D.
[0086] For the sake of simplicity, methods 500A to 500D are illustrated and described as a series of operations. However, the operations according to this disclosure may be performed in various orders and / or simultaneously with other operations not presented and described herein. Furthermore, in some embodiments, not all illustrated operations are necessarily performed to carry out methods 500A to 500D according to the subject matter of this disclosure. In addition, those skilled in the art will understand and recognize that methods 500A to 500D may, alternatively, be represented as a series of interrelated states via a state diagram or events.
[0087] Figure 5A is a flowchart of Method 500A for generating a dataset for a machine learning model to generate predictive data (e.g., predictive data 160 in Figure 1) according to a specific embodiment.
[0088] Referring to Figure 5A, in some embodiments, in block 502, the processing logic that implements method 500A initializes the training set T to an empty set.
[0089] In block 504, the processing logic generates a first data input (e.g., a first training input, a first validation input) containing sensor data (e.g., past sensor data 144 in Figure 1, past sensor data 244 in Figure 2, etc.). In some embodiments, the first data input includes a first set of features relating to the type of sensor data, and the second data input includes a second set of features relating to the type of sensor data (e.g., as described with respect to Figure 2).
[0090] In block 506, the processing logic generates a first target output for one or more of the data inputs (e.g., a first data input). In some embodiments, the first target output is historical performance data (e.g., historical performance data 154 in Figure 1, historical performance data 254 in Figure 2).
[0091] In block 508, the processing logic optionally generates mapping data that indicates input / output mappings. The input / output mapping (or mapping data) refers to a data input (e.g., one or more of the data inputs described herein), a target output for a data input (e.g., if the target output identifies historical performance data 154), and the relationship between the data input and the target output.
[0092] In block 510, the processing logic adds the mapping data generated in block 508 to the dataset T.
[0093] In block 512, the processing logic branches based on whether the dataset T is sufficient for at least one of training, validation, and / or testing of the machine learning model 190 (e.g., whether the uncertainty of the trained machine learning model satisfies a threshold uncertainty). If so, execution proceeds to block 514; otherwise, execution returns to block 504. Note that in some embodiments, the sufficiency of dataset T is determined simply based on the number of input / output mappings in the dataset, while in some other embodiments, the sufficiency of dataset T is determined based on one or more other criteria (e.g., a measure of data example diversity, precision, etc.) in addition to, or instead of, the number of input / output mappings.
[0094] In block 514, the processing logic provides the dataset T (e.g., to the server machine 180) to train, validate, and / or test the machine learning model 190. In some embodiments, dataset T is a training set and is provided to the training engine 182 of the server machine 180 to perform training. In some embodiments, dataset T is a validation set and is provided to the validation engine 184 of the server machine 180 to perform validation. In some embodiments, dataset T is a test set and is provided to the test engine 186 of the server machine 180 to perform testing. For a neural network, for example, input values of a given input / output mapping (e.g., numerical values related to data input 210) are input to the neural network, and output values of the input / output mapping (e.g., numerical values related to target output 220) are stored in the output nodes of the neural network. The connection weights of the neural network are then adjusted according to a learning algorithm (e.g., backpropagation), and this procedure is repeated for other input / output mappings in dataset T.
[0095] After block 514, the machine learning model (e.g., machine learning model 190) may be trained using the training engine 182 of server machine 180, validated using the validation engine 184 of server machine 180, or tested using the test engine 186 of server machine 180. The trained machine learning model is then executed by the prediction component 114 (of prediction server 112) to generate prediction data (e.g., prediction data 160) for block detection to trigger the execution of corrective actions.
[0096] Figure 5B shows a method 500B related to image analysis-based blockage detection according to a specific embodiment. In some embodiments, method 500B is performed before or after cleaning of substrate processing equipment components.
[0097] In block 520 of method 500B, the processing logic identifies an image (e.g., a backlight image) of a substrate processing equipment component that will form a hole. The substrate processing equipment component (e.g., substrate processing equipment component 420 in Figure 4A) may be a showerhead, a susceptor, etc.
[0098] In some embodiments, the processing logic receives an image from an image capture device (e.g., image capture device 400 in Figure 4A). The image capture device can supply light through substrate processing equipment components. Light passing through unclogging holes can be shown in the image. Each unclogging hole may correspond to the shape of the light having a corresponding area. Partially clogging holes correspond to an area smaller than that of less clogging holes (e.g., unclogging holes).
[0099] In some embodiments, an image of the first surface of a substrate processing equipment component is captured while light is supplied toward a second surface of the substrate processing equipment component that is opposite to the first surface (for example, and substantially parallel to the first surface). The light passes through at least a subset of holes in the substrate processing equipment component.
[0100] In some embodiments, the processing logic masks areas from the image to improve the visibility of holes formed by substrate processing equipment components and reduce background errors. In some embodiments, the processing logic resizes the image to a predetermined size to remove the scaling factor.
[0101] In some embodiments, the processing logic applies a threshold pixel value to the image. In some embodiments, the pixel format of the image is a byte image, and the pixel value is a numerical value stored as an 8-bit integer giving a range of possible values from 0 to 255, where 0 is black and 255 is white. The processing logic can convert all pixel values above the threshold pixel value (e.g., 200) to white (e.g., a pixel value of 255) and all pixel values below the threshold pixel value (e.g., 200) to black (e.g., a pixel value of 0). This allows gray pixel values to be removed from the image.
[0102] In some embodiments, the processing logic performs contour detection to detect the projection of each hole and pinpoint the location of the image foreground. The processing logic can determine the corresponding centroid and area of each hole. The processing logic can determine the corresponding Cartesian coordinates of each hole. Based on the corresponding centroid of each hole, the processing logic can determine the component centroid of the substrate processing equipment component. Based on the component centroid, the processing logic can convert the corresponding Cartesian coordinates of each hole to the corresponding polar coordinates. The processing logic can separate right-handed and left-handed hole helices by applying radial scaling of the corresponding radial distance of the corresponding polar coordinates of each hole.
[0103] In block 522, the processing logic determines the corresponding adjacent angular distance and the corresponding area of each hole based on the image.
[0104] In block 524, the processing logic identifies a first subset of holes that are at least partially clogged (for example, based on at least one of the corresponding adjacent angular distances or corresponding areas of each hole).
[0105] In some embodiments, to identify a first subset of holes, the processing logic identifies the corresponding hole neighbor and corresponding polar coordinate for each hole, associates each hole with the corresponding hole helix using the corresponding nearest neighbor distance, and identifies clogged holes by comparing the corresponding adjacent angular distance for each hole with a threshold adjacent angular distance (for example, a hole may be clogged between certain adjacent holes if the distance between certain adjacent holes is greater than the median distance between adjacent holes).
[0106] In some embodiments, to identify a first subset of holes, the processing logic compares the corresponding area of each of the multiple holes with a threshold area (e.g., 50%, 60%, 70%, etc.) to identify partially clogged holes.
[0107] In some embodiments, the processing logic can use a machine learning model to determine the threshold area (see, for example, Figures 5C-5D).
[0108] In block 526, in response that at least a subset of the holes are at least partially clogged, the flow proceeds to block 528. In block 526, in response that at least a subset of the holes are not at least partially clogged, the flow terminates.
[0109] In block 528, the processing logic causes the board processing equipment component to perform corrective actions based on at least a subset of the holes that are at least partially clogged, and the flow returns to block 520. The corrective actions may include providing a warning, triggering a cleaning action, triggering a repair action, triggering a replacement, determining the expected end of life of the board processing equipment component, and so on.
[0110] Blocks 520-528 may be repeated until the holes are no longer at least partially logged. In some embodiments, the processing logic can predict the end of the lifespan of the substrate processing equipment component based on the number of corrective actions (e.g., cleaning cycles) until there are no more holes that are at least partially clogged in the substrate processing equipment component.
[0111] In some embodiments, instead of identifying a subset of holes that are at least partially clogged, or in addition to that, the processing logic determines that a foreign object is lodged in one or more holes, determines that one or more holes are enlarged, and so on.
[0112] Figure 5C shows a method for training a machine learning model (e.g., model 190 in Figure 1) to determine predictive data (e.g., predictive data 160 in Figure 1) for blockage detection using image analysis.
[0113] Referring to Figure 5C, in block 540 of method 500C, the processing logic identifies past sensor data (for example, past sensor data 144 in Figure 1, past input sensor data).
[0114] In block 542, the processing logic identifies historical performance data (e.g., historical performance data 154 in Figure 1, historical output performance data). At least a portion of the historical sensor data and historical performance data may be associated with new substrate processing equipment components (e.g., used for benchmarking).
[0115] In block 544, the processing logic uses a data input containing historical sensor data and a target output containing historical performance data to train a machine learning model and generate a trained machine learning model.
[0116] In some embodiments, the historical sensor data in block 540 includes historical images of past board processing equipment components, and the historical performance data in block 542 corresponds to past board processing equipment components. The historical performance data may be associated with board quality, such as board measurement data, board throughput, and board defects. The historical performance data may be associated with the quality of board processing equipment components, such as flow test data (e.g., flowing gas through holes in the board processing equipment component), measurement data of the board processing equipment component, and failure time of the board processing equipment component. In block 544, a machine learning model can be trained using a data input including historical images and a target output including historical performance data to generate a trained machine learning model configured to identify threshold areas based on images (e.g., images in block 520 in Figure 5B). In block 524 in Figure 5B, the processing logic can use the threshold areas identified via the trained machine learning model to identify holes that are at least partially clogged (e.g., comparing the area of the holes determined in block 522 with the threshold area determined via the trained machine learning model).
[0117] In some embodiments, the historical sensor data in block 540 includes historical images of past board processing equipment components, and the historical performance data in block 542 includes historical hole maps corresponding to past board processing equipment components. In block 544, a machine learning model can be trained using a data input including historical images and a target output including historical hole maps to produce a trained machine learning model configured to predict performance data (e.g., performance data of a board processing equipment component) based on images (e.g., images in block 520 in Figure 5B). In response to the predicted performance data meeting a first threshold, the processing logic can trigger corrective action (e.g., cleaning, repairing, or replacing the board processing equipment component). In response to the predicted performance data meeting a second threshold, the processing logic can allow the board processing equipment component to be used in the board processing system.
[0118] Figure 5D shows a method 500D for triggering the execution of corrective action using a trained machine learning model for blockage detection (e.g., Model 190 in Figure 1).
[0119] Referring to Figure 5D, in block 560 of method 500D, the processing logic identifies sensor data. In some embodiments, the sensor data in block 540 includes images of substrate processing equipment components.
[0120] In block 562, the processing logic provides sensor data as data input to a trained machine learning model (e.g., trained via block 544 in Figure 5C).
[0121] In block 564, the processing logic receives output related to the prediction data from the trained machine learning model.
[0122] In block 566, the processing logic triggers the execution of corrective actions based on predictive data.
[0123] In some embodiments, the sensor data is an image of a substrate processing equipment component, and the trained machine learning model in block 562 is trained using a data input containing historical images of the substrate processing equipment component and a target output containing historical performance data (e.g., substrate quality using the substrate processing equipment component in the past). The predictive data in block 564 may be associated with a threshold area. In some embodiments, in block 566, the processing logic compares the hole area in block 522 of Figure 5B with a threshold area to identify holes that are at least partially clogged in block 524 of Figure 5B, and then triggers corrective action (e.g., to make the hole area satisfy the threshold area) to clean, repair, or replace the substrate processing equipment component (see, for example, block 528 of Figure 5B).
[0124] In some embodiments, the sensor data is an image of a substrate processing equipment component, and the trained machine learning model in block 562 is trained using a data input containing historical images of the substrate processing equipment component and a target output containing historical performance data, including historical hole maps corresponding to the past substrate processing equipment component. The prediction data in block 564 may be associated with prediction performance data (e.g., performance data of the substrate processing equipment component) based on an image (e.g., the image in block 520 in Figure 5B). In response to the prediction performance data meeting a first threshold, the processing logic may trigger corrective action (e.g., cleaning, repairing, or replacing the substrate processing equipment component). In response to the prediction performance data meeting a second threshold, the processing logic may allow the substrate processing equipment component to be used in the substrate processing system.
[0125] Figure 6 is a block diagram showing a computer system 600 according to a particular embodiment. In some embodiments, the computer system 600 is one or more of the following: a client device 120, a prediction system 110, a server machine 170, a server machine 180, a prediction server 112, or an image acquisition device 400.
[0126] In some embodiments, the computer system 600 is connected to other computer systems (for example, via a network such as a local area network (LAN), intranet, extranet, or the Internet). In some embodiments, the computer system 600 operates as a server or client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. In some embodiments, the computer system 600 is provided by a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, web appliance, server, network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) specifying actions to be performed by such device. Furthermore, the term “computer” includes any set of computers that individually or collectively execute one or more of the methods described herein.
[0127] In a further embodiment, the computer system 600 includes a processing device 602, a volatile memory 604 (e.g., random access memory (RAM)), a non-volatile memory 606 (e.g., read-only memory (ROM) or electrically erasable programmable ROM (EEPROM)), and a data storage device 616, which communicate with each other via a bus 608.
[0128] In some embodiments, the processing device 602 is provided by one or more processors, such as a general-purpose processor (e.g., a composite instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIM) microprocessor, a microprocessor that implements other types of instruction sets, or a microprocessor that implements a combination of instruction set types) or a dedicated processor (e.g., an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or a network processor).
[0129] In some embodiments, the computer system 600 further includes a network interface device 622 (e.g., coupled to a network 674). In some embodiments, the computer system 600 further includes a video display unit 610 (e.g., an LCD), an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), and a signal generation device 620.
[0130] In some embodiments, the data storage device 616 includes a non-temporary computer-readable storage medium 624 that stores instructions 626 that encode any one or more of the methods or functions described herein, including instructions for encoding the components of Figure 1 (e.g., corrective action component 122, predictive component 114, etc.) and instructions for carrying out the methods described herein (e.g., one or more of methods 500A to 500D).
[0131] In some embodiments, instruction 626 also resides entirely or partially in volatile memory 604 and / or processing device 602 during execution by computer system 600, and therefore, in some embodiments, volatile memory 604 and processing device 602 also constitute a machine-readable storage medium.
[0132] Although computer-readable storage medium 624 is shown as a single medium in the exemplary examples, the term “computer-readable storage medium” includes a single medium or a number of mediums (e.g., centralized or distributed databases, and / or associated caches and servers) that store one or more sets of executable instructions. The term “computer-readable storage medium” also includes any tangible medium that can store or encode a set of instructions for execution by a computer, causing a computer to execute any one or more of the methods described herein. The term “computer-readable storage medium” includes, but is not limited to, solid memory, optical media, and magnetic media.
[0133] In some embodiments, the methods, components, and features described herein are implemented by separate 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 by any combination of hardware devices and computer program components, or by a computer program.
[0134] Unless otherwise specified, terms such as “identify,” “determine,” “mask,” “resize,” “execute,” “convert,” “apply,” “associate,” “compare,” “train,” “cause,” “receive,” “provide,” “get,” and “update” refer to actions and processes performed or carried out by a computer system that manipulate data represented as physical (electronic) quantities in computer system registers and memory and convert it into other data similarly represented as physical quantities in computer system memory or registers, or other such information storage, transmission, or display devices. In some embodiments, terms such as “first,” “second,” “third,” and “fourth” as used herein are meant as labels to distinguish different elements and do not have an orderly meaning based on their numerical representation.
[0135] The examples described herein also relate to apparatus for carrying out the methods described herein. In some embodiments, the apparatus includes a general-purpose computer system that is either specifically constructed for carrying out the methods described herein or selectively programmed by a computer program stored in the computer system. Such a computer program is stored in a computer-readable tangible storage medium.
[0136] 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 in accordance with the teachings described herein. In some embodiments, more specialized devices are constructed to perform the methods and / or each of their individual functions, routines, subroutines, or operations described herein. Examples of the construction of various such systems are described above.
[0137] The above description is illustrative and not limiting. While this disclosure has been described with reference to certain exemplary examples and embodiments, it should be recognized that this disclosure is not limited to the examples and embodiments described. The scope of this disclosure should be determined with reference to the following claims, along with the entire scope of equivalents to which the claims are granted.
Claims
1. A processing device based on images of a substrate processing equipment component that forms multiple holes determines the clockwise and counterclockwise hole spirals of the multiple holes, The processing device identifies a first subset of the plurality of holes in at least one of the right-handed or left-handed hole spirals that is at least partially clogged. Equipped with, The corrective measures relating to the substrate processing equipment component may be performed based on the first subset of the plurality of holes that are at least partially clogged. method.
2. The further comprising determining at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of holes, Identifying the first subset of the plurality of holes that are at least partially clogged is further based on at least one of the adjacent angular distance or the corresponding area of each of the plurality of holes. The method according to claim 1.
3. While light is being supplied toward the second surface of the substrate processing equipment component located opposite the first surface, the image of the first surface of the substrate processing equipment component is captured. The light passes through at least a second subset of the plurality of holes, The method according to claim 1.
4. The area of the aforementioned image may be masked in order to improve the visibility of the plurality of holes formed by the substrate processing equipment component and to reduce background errors. The aforementioned image can be resized to a predetermined size in order to remove the scale factor. The method according to claim 1.
5. To detect the projection of each of the aforementioned multiple holes and determine the location of the image foreground, contour detection is performed. Determining the corresponding centroid and area of each of the aforementioned multiple holes, Determining the corresponding Cartesian coordinates of each of the aforementioned multiple holes, Based on the corresponding centroid of each of the plurality of holes, the centroid of the component of the substrate processing equipment is determined, Based on the center of gravity of the component, the corresponding Cartesian coordinates of each of the multiple holes are converted to corresponding polar coordinates. In order to separate the right-handed hole spiral and the left-handed hole spiral, radial expansion of the corresponding radial distance of the corresponding polar coordinates of each of the plurality of holes is applied, Further including, The method according to claim 1.
6. Identifying the first subset of the plurality of holes that are at least partially clogged is Identifying the vicinity of each of the plurality of holes and the corresponding polar coordinates, Each of the aforementioned multiple holes is associated with the right-handed or left-handed hole spiral using the corresponding nearest neighbor distance, The process involves comparing the corresponding adjacent angular distance of each of multiple holes with a threshold adjacent angular distance to identify clogged holes, and including, The method according to claim 1.
7. Identifying the first subset of the plurality of holes that are at least partially clogged includes comparing the corresponding area of each of the plurality of holes with a threshold area to identify the partially clogged holes, The aforementioned method, Identifying past images of past circuit board processing equipment components, Identifying past performance data corresponding to past circuit board processing equipment components, The process involves training a machine learning model using the aforementioned past image data input and the aforementioned past performance data target output, and generating a trained machine learning model configured to identify the threshold area. Furthermore, The method according to claim 1.
8. Identifying past images of past circuit board processing equipment components, Identifying past hole maps corresponding to the aforementioned past circuit board processing equipment components, The process involves training a machine learning model using a data input including the aforementioned past images and a target output including the aforementioned past hole map, thereby generating a trained machine learning model configured to predict performance data based on the images. It further includes, Corrective actions are based further on the aforementioned performance data. The method according to claim 1.
9. A non-temporary computer-readable storage medium for storing instructions, wherein when the instructions are executed, Based on images of substrate processing equipment parts that form multiple holes, the clockwise and counterclockwise hole spirals are determined, Identifying a first subset of the plurality of holes in at least one of the right-handed or left-handed hole spirals that is at least partially clogged, The processing device is made to perform an action that includes the following: The corrective measures relating to the substrate processing equipment component may be performed based on the first subset of the plurality of holes that are at least partially clogged. Non-temporary computer-readable storage medium.
10. The operation further comprises determining at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of holes, Identifying the first subset of the plurality of holes that are at least partially clogged is further based on at least one of the adjacent angular distance or the corresponding area of each of the plurality of holes. The non-temporary computer-readable storage medium according to claim 9.
11. While light is being supplied toward the second surface of the substrate processing equipment component located opposite the first surface, the image of the first surface of the substrate processing equipment component is captured. The light passes through at least a second subset of the plurality of holes, The non-temporary computer-readable storage medium according to claim 9.
12. The area of the aforementioned image may be masked in order to improve the visibility of the plurality of holes formed by the substrate processing equipment component and to reduce background errors. The aforementioned image can be resized to a predetermined size in order to remove the scale factor. The non-temporary computer-readable storage medium according to claim 9.
13. The aforementioned operation, To detect the projection of each of the aforementioned multiple holes and determine the location of the image foreground, contour detection is performed. Contour detection is performed to detect the projection of each of the multiple holes and to determine the location of the image foreground, Determining the corresponding centroid and corresponding area of each of the plurality of holes, Determining the corresponding Cartesian coordinates of each of the aforementioned multiple holes, Based on the corresponding centroid of each of the plurality of holes, the centroid of the component of the substrate processing equipment is determined, Based on the center of gravity of the component, the corresponding Cartesian coordinates of each of the multiple holes are converted to corresponding polar coordinates. In order to separate the right-handed hole spiral and the left-handed hole spiral, radial expansion of the corresponding radial distance of the corresponding polar coordinates of each of the plurality of holes is applied, Further including, The non-temporary computer-readable storage medium according to claim 9.
14. Identifying the first subset of the plurality of holes that are at least partially clogged is Identifying the vicinity of each of the plurality of holes and the corresponding polar coordinates, Each of the aforementioned multiple holes is associated with the right-handed or left-handed hole spiral using the corresponding nearest neighbor distance, The process involves comparing the corresponding adjacent angular distance of each of multiple holes with a threshold adjacent angular distance to identify clogged holes, and including, The non-temporary computer-readable storage medium according to claim 9.
15. Memory and A processing device coupled to the memory, The aforementioned processing device Based on images of substrate processing equipment parts that form multiple holes, the clockwise and counterclockwise hole spirals are determined, Identifying a first subset of the plurality of holes in at least one of the right-handed or left-handed hole spirals that is at least partially clogged, A processing device for performing this task, Includes, The corrective measures relating to the substrate processing equipment component may be performed based on the first subset of the plurality of holes that are at least partially clogged. system.
16. The processing device further determines at least one of the corresponding adjacent angular distances or the corresponding areas of each of the plurality of holes, Identifying the first subset of the plurality of holes that are at least partially clogged is further based on at least one of the adjacent angular distance or the corresponding area of each of the plurality of holes. The system according to claim 15.
17. While light is being supplied toward the second surface of the substrate processing equipment component located opposite the first surface, the image of the first surface of the substrate processing equipment component is captured. The light passes through at least a second subset of the plurality of holes, The system according to claim 15.
18. The area of the aforementioned image may be masked in order to improve the visibility of the plurality of holes formed by the substrate processing equipment component and to reduce background errors. The aforementioned image can be resized to a predetermined size in order to remove the scale factor. The system according to claim 15.
19. The aforementioned processing device The projection of each of the aforementioned multiple holes is detected, and contour detection is performed to determine the location of the image foreground. Determining the corresponding centroid and corresponding area of each of the plurality of holes, Determining the corresponding Cartesian coordinates of each of the aforementioned multiple holes, Based on the corresponding centroid of each of the plurality of holes, the centroid of the component of the substrate processing equipment is determined, Based on the center of gravity of the component, the corresponding Cartesian coordinates of each of the multiple holes are converted to corresponding polar coordinates. In order to separate the right-handed hole spiral and the left-handed hole spiral, radial expansion of the corresponding radial distance of the corresponding polar coordinates of each of the plurality of holes is applied, The system according to claim 15, further comprising the following steps.
20. To identify the first subset of the plurality of holes that are at least partially clogged, The processing device is Identifying the vicinity of each of the plurality of holes and the corresponding polar coordinates, Each of the aforementioned multiple holes is associated with the right-handed or left-handed hole spiral using the corresponding nearest neighbor distance, The process involves comparing the corresponding adjacent angular distance of each of multiple holes with a threshold adjacent angular distance to identify clogged holes, and To do The system according to claim 15.
Citation Information
Patent Citations
Deivce and method for inspecting clogging
JP1993002633A
Apparatus and method for providing a uniform flow of gas
JP2019514208A
Method for learning tire performance prediction model, method for predicting tire performance, system and program
JP2021195038A
Chemical vapor deposition tools to prevent or suppress arcing
JP2021533273A
Systems, Methods, and Apparatus for Locating and Drilling Closed Holes of a Turbine Component
US20150190890A1