Method, system, device and computer readable medium for clustering defects of wafers
By integrating R tree and DBSCAN algorithms and making algorithm improvements, the problem of poor clustering of two-dimensional shape data points in the existing technology is solved, efficient and accurate clustering results are achieved, and the business needs of rapid development are met.
Patent Information
- Application Number
- CN202311415856.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-30
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2043-10-30
Smart Images

Figure CN117454206B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of semiconductor chip technology, and in particular to a method, system, device and computer-readable medium for clustering defects of a wafer. Background Art
[0002] Density-Based Spatial Clustering of Applications with Noise, or DBSCAN for short, is an algorithm for grouping data points into clusters with similar density. It discovers clusters of arbitrary shapes by dividing points into core points, boundary points, and noise points based on density.
[0003] In the related art, the KD tree and DBSCAN algorithm are generally integrated to cluster the defects of the wafer.
[0004] However, the inventors have found that there are at least the following technical problems in the related art: Since the DBSCAN algorithm is mainly clustered based on density, distance or convexity, the clustering effect of data points with two-dimensional shapes is poor. In this way, the solution of integrating the KD tree and the DBSCAN algorithm not only has limitations in processing data points with two-dimensional shapes, but also generally can only achieve clustering based on a certain point, and the clustering efficiency is low, which cannot meet the rapidly developing business needs. Summary of the invention
[0005] One purpose of the present application is to provide a method, system, device and computer-readable medium for clustering defects of wafers, at least to solve the technical problem that the clustering efficiency in the solutions of related technologies is low and cannot meet the rapidly developing business needs.
[0006] To achieve the above objectives, some embodiments of the present application provide the following aspects:
[0007] In the first aspect, some embodiments of the present application also provide a method, system, device and computer-readable medium for clustering defects of a wafer, the method comprising: obtaining multiple defect data points corresponding to each defect of the wafer; the defect data points are used to characterize the position and size of the defect; determining the index information of the defect data points according to the R-tree; performing a scanning operation according to the R-tree and the DBSCAN algorithm to determine the bounding rectangle of each defect according to the index information and the defect data points, and cross-processing the bounding rectangle to obtain a cluster list; summarizing the cluster lists corresponding to each defect to obtain a clustering result of the defects of the wafer.
[0008] In a second aspect, some embodiments of the present application further provide a computer device, comprising: one or more processors; and a memory storing computer program instructions, wherein the computer program instructions, when executed, cause the processor to perform the method described above.
[0009] In a third aspect, some embodiments of the present application further provide a computer-readable medium having computer program instructions stored thereon, wherein the computer program instructions can be executed by a processor to implement the method as described above.
[0010] Compared with the related art, in the scheme provided by the embodiment of the present application, by obtaining multiple defect data points corresponding to each defect of the wafer, the defect data points are used to characterize the position and size of the defect; then according to the R tree, the index information of the defect data points is determined, and then the scanning operation is performed according to the R tree and the DBSCAN algorithm, so as to determine the bounding rectangle of each defect according to the index information and the defect data points, and the bounding rectangle is cross-processed to obtain a cluster list, and the cluster list corresponding to each defect is summarized to obtain the clustering result of the defects of the wafer. It can be seen that through the scheme provided by the present application, the applicant has integrated the R tree and the DBSCAN algorithm, and in the process of integration, the R tree and the DBSCAN algorithm have been improved, thereby realizing the ingenious integration of the two. In this way, the efficient query performance of the R tree and the density clustering performance of the DBSCAN algorithm are fully utilized, and the clustering between the edges of the bounding rectangles corresponding to different defects can be efficiently completed, and the defect data points of defects with two-dimensional shapes are clustered, which can not only improve the clustering efficiency, but also obtain more accurate and comprehensive clustering results. In addition, those skilled in the art know that the R-tree cannot be directly used for clustering in the related art. The applicant has made algorithmic improvements to the R-tree and DBSCAN algorithms to achieve the corresponding technical effects. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 An exemplary flow chart of a method for clustering defects of a wafer provided for some embodiments of the present application;
[0012] Figure 2 An exemplary schematic diagram of determining the distance between the edges of each defect in a method for clustering defects of a wafer provided in some embodiments of the present application;
[0013] Figure 3 An exemplary flow chart of sub-steps of step S103 in a method for clustering defects of wafers provided in some embodiments of the present application;
[0014] Figure 4An exemplary flow chart of sub-steps of step S1034 in a method for clustering defects of a wafer provided in some embodiments of the present application;
[0015] Figure 5 An exemplary flow chart of sub-steps of step S10341 in a method for clustering defects of a wafer provided in some embodiments of the present application;
[0016] Figure 6 An exemplary flowchart of sub-steps of step S10345 in a method for clustering defects of a wafer provided in some embodiments of the present application
[0017] Figure 7 An exemplary structural diagram of a computer device is provided for some embodiments of the present application. DETAILED DESCRIPTION
[0018] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0019] The following terms are used in this article.
[0020] R-tree, also known as Rtree, is a data structure used for multidimensional spatial data indexing. It supports efficient range queries and neighbor queries by dividing objects in space into non-overlapping regions.
[0021] Tolerance is a parameter used to determine whether two data points belong to the same cluster. If the distance between two points is less than or equal to the tolerance value, they are considered to belong to the same cluster.
[0022] Cluster, in English, refers to a group of similar data points. One of the goals of clustering algorithms is to divide data points into different clusters.
[0023] Depth-First Search, or DFS for short, is an algorithm used to traverse or search a tree or graph. It traverses the nodes of a tree along its depth, searching the branches of the tree as deeply as possible. When all the edges of node v have been explored or the node does not meet the conditions during the search, the search will backtrack to the starting node of the edge where node v was found. The whole process is repeated until all nodes have been visited.
[0024] min_pts, the minimum number of data points required to form a cluster.
[0025] Density reachable: Define a neighborhood with a radius of ε. For a given data point p, if the number of data points in its ε neighborhood is greater than or equal to a certain threshold, they are classified into the same cluster.
[0026] Embodiment 1
[0027] Embodiment 1 of the present application provides a method for clustering defects of a wafer, and the method may include the following steps: Figure 1 As shown:
[0028] Step S101, obtaining a plurality of defect data points corresponding to each defect of the wafer; the defect data points are used to characterize the position and size of the defect;
[0029] Step S102, determining index information of the defect data point according to the R-tree;
[0030] Step S103, performing a scanning operation according to the R-tree and DBSCAN algorithm to determine the bounding rectangle of each defect according to the index information and the defect data point, and performing cross processing on the bounding rectangle to obtain a cluster list;
[0031] Step S104: determining the clustering result of the defects according to the cluster list.
[0032] The above steps are described in detail below.
[0033] For step S101, specifically, in some examples, the defect may be a scratch, a scrape, etc., and the embodiment of the present application does not specifically limit this. The number of defects of the wafer may be multiple, for example, the number of scratches may be multiple. Furthermore, each scratch corresponds to multiple defect data points, for example, a certain scratch corresponds to 100 defect data points. Among them, the defect data points are used to characterize the position and size of the defect. In some examples, the size of the defect can be characterized by the radius of the circumscribed circle of each defect data point, and the position of the defect can be characterized by the coordinates of the center point of the circumscribed circle of each defect data point. In some examples, the defect data point can be represented by data. In addition, it can be understood that the shape of the defect can be any two-dimensional shape.
[0034] For step S102, specifically, in some embodiments of the present application, the determination of the index information of the defective data point according to the R-tree may further include: step S1021, converting the defective data point to obtain a defective data point in a preset array format; step S1022, initializing the defective data point in the preset array format according to the preset function of the R-tree to obtain the index information of the defective data point. In some examples, the preset array format may be but not limited to the NumPy array format, that is, the defective data point may be converted to a defective data point in the NumPy array format. In some other examples, the preset array format may also include an Array array format, a Pandas Data Frame array format, etc., which is not specifically limited in the embodiments of the present application. Further, in some examples, the preset function may be but not limited to the rtree_init function, which is intended to initialize the defective data point in the preset array format. Thus, in some examples, the rtree_init function of the R-tree may be called to initialize the defective data point in the NumPy array format to obtain the index information of the defective data point. The index information may be in the form of, but not limited to, an index number, for example, the index number may be represented by idx. In this step, by determining the index information of the defect data point according to the R-tree, it is beneficial to fully utilize the index advantage of the R-tree and facilitate subsequent spatial query operations.
[0035] Regarding step S103, specifically, in some examples, the scan operation can be performed through the def rtree_scan function of the R-tree and the DBSCAN algorithm, so as to determine the bounding rectangle of each defect according to the index information and the defect data point, and cross-process each bounding rectangle to obtain a cluster list, so that clustering between different defects can be completed. In this step, by integrating the R-tree and the DBSCAN algorithm, it is beneficial to cross-process the bounding rectangle area of the defect more efficiently, so as to facilitate judging whether each defect data point belongs to the same cluster list according to the edge-to-edge distance between multiple defect data points corresponding to a defect. For example, it can be as follows Figure 2As shown, in the related art, generally only the center point of the circumscribed circle of the irregular shape corresponding to each defect is found, the distance between the center points is determined, and whether the two belong to the same cluster is determined based on the distance; in the present application, since the distance between the right side of defect a and the left side of defect b is determined, whether the two belong to the same cluster is determined based on the distance between the sides. Therefore, the clustering results that were not originally counted as a cluster in the related art may be counted as a cluster through the scheme provided in the embodiment of the present application, thereby meeting the current business development needs. For another example, assuming that a scratch corresponds to multiple defect data points, if the method in the related art is used, the multiple defect data points may be divided into three parts, of which the first part is counted as cluster a, corresponding to cluster list a; the second part is counted as cluster b, corresponding to cluster list b; the third part is counted as cluster c, corresponding to cluster list c; and by adopting the scheme provided in the embodiment of the present application, it is possible to obtain the above-mentioned first part, second part and third part as a cluster, corresponding to the same cluster list.
[0036] Regarding step S104, specifically, in some examples, in short, through the cluster list, it can be determined whether the multiple defect data points corresponding to each defect belong to the same cluster. It can be understood that some multiple defect data points belonging to the same cluster belong to the same cluster; some multiple defect data points belonging to different clusters belong to different clusters. In some examples, the clustering result can be represented by a clusters list, and the cluster list of each defect can be represented by a cluster list, and the clusters list can include a collection of the cluster lists of the defects.
[0037] It can be understood that the defects often have specific shapes. In the related art, the defects are often treated as points for processing, such as clustering based on the center point coordinates of the circumscribed circle corresponding to the defects, which results in poor clustering processing of defect data points with two-dimensional shapes. Moreover, with the rapid development of business needs, in the embodiment of the present application, clustering is performed based on the edges and edges of the circumscribed rectangles corresponding to different defects, and the characteristics of the defects having specific shapes are fully considered, so that the technical problem of poor clustering effect in the scheme provided in the related art can be solved. Further, if the method provided in the related art is followed, and the edges and edges of the circumscribed rectangles corresponding to different defects are clustered on the basis of the method provided in the related art, it is necessary to first calculate the distance between the center point coordinates of the circumscribed circles corresponding to different defects, and then subtract the distance between the center point coordinates of the circumscribed circles corresponding to the different defects from the radius of the circumscribed circle of one defect and the radius of the circumscribed circle of another defect. In this way, the solution speed will be very slow, which seriously affects the clustering efficiency.
[0038] It is not difficult to find that, compared with the related art, in the scheme provided by the embodiment of the present application, by obtaining multiple defect data points corresponding to each defect of the wafer, the defect data points are used to characterize the position and size of the defect; then, according to the R-tree, the index information of the defect data points is determined, and then the scanning operation is performed according to the R-tree and the DBSCAN algorithm, so as to determine the bounding rectangle of each defect according to the index information and the defect data points, and the bounding rectangle is cross-processed to obtain a cluster list, and the cluster list corresponding to each defect is summarized to obtain the clustering result of the defects of the wafer. It can be seen that through the scheme provided by the present application, the applicant has integrated the R-tree and DBSCAN algorithms, and in the process of integration, the R-tree and DBSCAN algorithms have been improved, thereby realizing the ingenious integration of the two. In this way, the efficient query performance of the R-tree and the density clustering performance of the DBSCAN algorithm are fully utilized, and the clustering between the edges of the bounding rectangles corresponding to different defects can be efficiently completed, and the clustering processing of defect data points with two-dimensional shapes can be realized, which can not only improve the clustering efficiency, but also obtain more accurate and comprehensive clustering results. In addition, those skilled in the art know that the R-tree cannot be directly used for clustering in the related art. The applicant has made algorithmic improvements to the R-tree and DBSCAN algorithms to achieve the corresponding technical effects.
[0039] Furthermore, it should be emphasized that the solution provided in the embodiment of the present application combines the DBSCAN algorithm with the R-tree index, so that the DBSCAN algorithm is more accurate when processing data points with complex shapes, and at least has the following beneficial effects:
[0040] 1. Obtain more accurate clustering results: The traditional DBSCAN algorithm may produce deviations when processing defect data points of two-dimensional shapes, resulting in inaccurate clustering results. However, in the embodiment of the present application, by combining the R-tree index, it is possible to more accurately locate the density-reachable defect data points, thereby obtaining more accurate clustering results and effectively capturing the irregular clustering structure reflected by the defect data points.
[0041] 2. More efficient computing speed: Using traditional methods may require traversing the entire data set, which has a high computational complexity. However, in the embodiments of the present application, since the efficient query capability of the R-tree index is fully utilized, the computing efficiency can be significantly improved when processing large-scale data sets. On this basis, the query process can also be optimized to retrieve neighboring points more quickly and reduce unnecessary computing overhead, thereby making the execution efficiency of the clustering algorithm higher.
[0042] Embodiment 2
[0043] The second embodiment of the present application is a further improvement made on the basis of the first embodiment. The specific improvement is that, in the second embodiment of the present application, the scanning operation is performed according to the R-tree and DBSCAN algorithm to determine the bounding rectangle of each defect according to the index information and the defect data point, and the bounding rectangle is cross-processed to obtain a cluster list, that is, step S103 can further include the following steps: Figure 3 As shown:
[0044] Step S1031, obtaining the quantity information of the defect data points;
[0045] Step S1032, traversing the defective data points according to the quantity information to determine defective data points that have not been accessed and processed;
[0046] Step S1033, obtaining a preset tolerance threshold;
[0047] Step S1034 , determining the bounding rectangle of each defect according to the index information, the defect data points that have not been accessed and processed, and the preset tolerance threshold, and performing cross processing on the bounding rectangle to obtain a cluster list.
[0048] For step S1031, specifically, in some examples, it is assumed that the number represented by the quantity information of the defect data points is n, and n is a natural number greater than or equal to 1. For example, in practical applications, n can be 100, 126, 300, etc., which is determined according to the actual defect situation of the wafer. Further, in some examples, the statistical principles in the relevant technology can be used to obtain the quantity information of the defect data points, which is not specifically limited in the embodiments of the present application.
[0049] Regarding step S1032, specifically, in some examples, a set for recording the defect data points that have been visited and processed can be created, for example, visited=set() can be used to represent the set for recording the defect data points that have been visited and processed. In this way, each defect data point used to characterize each defect is traversed to determine whether the defect data point is a defect data point that has been visited and processed. If it is a defect data point that has been visited and processed, the corresponding defect data point that has been visited and processed can be added to the visited=set() to indicate that the corresponding defect data point has been visited and processed, and then the defect data point will not be processed again; if it is a defect data point that has not been visited and processed, a visit process is performed, and after the defect data point that has not been visited and processed is visited and processed, the defect data point is added to the visited=set(). For example, assuming that the number of defective data points is n, it can be determined whether the i-th defective data point is a defective data point that has been visited and processed. If it is determined that the i-th defective data point is a defective data point that has been visited and processed, then the i-th defective data point is added to the visited=set() to obtain visited=set(i); then the traversal can continue, for example, the traversal can be continued to determine whether the i+1-th defective data point is a defective data point that has been visited and processed, and so on, until the n defective data points are all traversed. Among them, n and i are both integers greater than or equal to 1, and i is less than or equal to n. In addition, it should be noted that, in the process of traversing the defective data points according to the quantity information, the traversal can be performed in a preset order, or in accordance with a pre-set traversal rule, and the embodiments of the present application are not limited to this.
[0050] For step S1033, specifically, in some examples, the preset tolerance threshold can be represented by Tolerance. For example, the preset tolerance threshold can be 100, 200, etc. The specific value of the preset tolerance threshold can be set by relevant staff and determined according to actual business needs. The embodiment of the present application does not impose any limitation on the specific value of the preset tolerance threshold. It should be noted that, in some examples, the specific value of the preset tolerance threshold can also be 0. In addition, it is worth noting that the order of the steps in the embodiment of the present application is only an exemplary order provided for ease of understanding. For example, in some other examples, the step of obtaining the preset tolerance threshold can be performed before the step S1032, or before the step S1031, and the embodiment of the present application does not impose any limitation on its order.
[0051] Regarding step S1034, specifically, in some examples, a clustering process can be initiated based on the defect data points that have not been accessed and processed, so as to determine the bounding rectangle of each defect according to the index information, the defect data points that have not been accessed and processed, and the preset tolerance threshold, and cross-process the bounding rectangle to obtain a cluster list.
[0052] Embodiment 3
[0053] Embodiment 3 of the present application is a further improvement on embodiment 2. The specific improvement is that, in embodiment 3 of the present application, a specific implementation method is provided for determining the bounding rectangle of each defect and performing cross processing on the bounding rectangle to obtain a cluster list.
[0054] Specifically, in some embodiments of the present application, the step S1034 may further include the following steps: Figure 4 As shown:
[0055] Step S10341, performing a depth-first search on the defective data points that have not been accessed and processed according to the index information and the preset tolerance threshold, to obtain at least one target defective data point;
[0056] Step S10342, determining a first circumscribed rectangle of the defect corresponding to the defect data point;
[0057] Step S10343, determining a second circumscribed rectangle of the defect corresponding to the target defect data point;
[0058] Step S10344, performing cross processing according to the first circumscribed rectangle and the second circumscribed rectangle to determine a target Euclidean distance;
[0059] Step S10345: Generate a cluster list corresponding to each of the defects according to the target Euclidean distance and the preset tolerance threshold.
[0060] First, it should be noted that, for ease of understanding, the present embodiment of the application takes the defective data point that has not been accessed and processed as an example for explanation. However, it should be known that in the solution provided in the embodiment of the present application, similar operations are performed for each defective data point that has not been accessed and processed.
[0061] Regarding step S10341, specifically, in some examples, the target defect data point is a density-reachable target defect data point, and the target defect data point can be used to characterize other defect data points within a preset range, except for the current defect data point that has not been accessed and processed. Further, in some examples, an empty cluster with an empty value can be created for each defect data point that has not been accessed and processed. For example, corresponding to the defect data point i that has not been accessed and processed, an empty cluster i with an empty value can be created. The empty cluster can be represented by cluster=[]. That is, assuming that the defect data point that has not been accessed and processed is defect data point i, cluster=[] corresponding to the defect data point i can be generated; assuming that the defect data point that has not been accessed and processed is defect data point i+1, cluster=[] corresponding to the defect data point i+1 can be generated.
[0062] Furthermore, in some examples, the defective data points that have not been accessed and processed can be obtained by creating a preset stack list to perform a depth-first search on the defective data points that have not been accessed and processed. In some examples, relevant staff can create the preset stack list according to actual business needs. For example, the preset stack list can be represented by stack. For example, if defective data point i has not been accessed and processed, the DBSCAN algorithm can use stack[i] to obtain the defective data point i, and then perform a depth-first search on the defective data points that have not been accessed and processed according to the index information and the preset tolerance threshold to obtain at least one target defective data point that is density-reachable.
[0063] For steps S10342 and S10343, specifically, in some examples, the first bounding rectangle corresponding to the defect and the second bounding rectangle corresponding to other defects can be determined respectively based on the defect data point and the target defect data point; wherein the number of other defects is generally multiple, and the number of corresponding second bounding rectangles is also generally multiple. That is to say, it is generally necessary to cross-process the multiple rectangles corresponding to the first bounding rectangle and the second bounding rectangle respectively.
[0064] For step S10344, specifically, in some examples, the target Euclidean distance can be used to represent the shortest Euclidean distance between the first bounding rectangle and the second bounding rectangle. In some examples, the target Euclidean distance distance can be determined by calling the distance_with_radius function to perform cross processing on the first bounding rectangle and the second bounding rectangle.
[0065] For step S10345, specifically, in some examples, if the target Euclidean distance is less than or equal to the preset tolerance threshold, that is, distance≤tolerance, then the defect data point and the target defect data point are in a neighboring relationship in position, and the corresponding target defect data point can be added to the preset stack list to continue searching for other defect data points that are in a neighboring relationship with the target defect data point based on the target defect data point; otherwise, if the target Euclidean distance is greater than the preset tolerance threshold, then the defect data point and the target defect data point are not in a neighboring relationship in position, and the corresponding target defect data point is not added to the preset stack list; in this way, all the target defect data points can be processed according to the above process; in addition, in some examples, the target defect data points corresponding to the target Euclidean distance being less than or equal to the preset tolerance threshold can be added to the empty cluster created by step S10341 until all the target defect data points are processed, thereby obtaining a cluster list corresponding to each defect.
[0066] It should be noted that the embodiment of the present application may also be an improvement made on the basis of embodiment one.
[0067] Embodiment 4
[0068] Embodiment 4 of the present application is a further improvement on embodiment 3. The specific improvement lies in that, in embodiment 4 of the present application, a specific implementation method is provided for performing a depth-first search on the defective data points that have not been accessed and processed according to the index information and the preset tolerance threshold to obtain at least one target defective data point.
[0069] Specifically, in some embodiments of the present application, the depth-first search is performed on the defective data points that have not been accessed and processed according to the index information and the preset tolerance threshold to obtain at least one target defective data point, that is, step S10341, which may further include the following steps: Figure 5 As shown:
[0070] Step S103411, determining a query range corresponding to the defect data points that have not been accessed and processed according to the preset tolerance threshold;
[0071] Step S103412: obtaining the target defect data point according to the query range and the index information.
[0072] Furthermore, in some embodiments of the present application, determining the query range corresponding to the defect data point that has not been accessed and processed according to the preset tolerance threshold may further include:
[0073] According to the defect data point, the radius of the circumscribed circle of the defect and the abscissa and ordinate of the center point of the circumscribed circle are obtained;
[0074] Subtract the radius from the horizontal axis coordinate, and then subtract the preset tolerance threshold, to obtain first data of a first side of a circumscribed rectangle of a defect corresponding to the defect data point;
[0075] Subtract the radius from the ordinate, and then subtract the preset tolerance threshold, to obtain second data of a second side of a circumscribed rectangle of a defect corresponding to the defect data point;
[0076] Add the radius to the horizontal coordinate and then add the preset tolerance threshold to obtain third data of the third side of the circumscribed rectangle of the defect corresponding to the defect data point;
[0077] Add the radius to the ordinate and then add the preset tolerance threshold to obtain fourth data of a fourth side of a circumscribed rectangle of a defect corresponding to the defect data point;
[0078] According to the first data, the second data, the third data and the third data, a query range corresponding to the defect data point that has not been accessed is determined. In this way, by performing this operation on the four directions of the top, bottom, left and right of the defect, it is convenient to calculate the target Euclidean distance between the edges of the circumscribed rectangles corresponding to other defects in the four directions of the defect.
[0079] Specifically, in some examples, assuming that the abscissa and ordinate of the center point of the circumscribed circle are x and y respectively, and the radius of the circumscribed circle of the defect is r, the first data, the second data, the third data, and the fourth data can be calculated respectively by the following formulas:
[0080] xr-tolerance;
[0081] yr-tolerance;
[0082] x+r+tolerance;
[0083] y+r+tolerance.
[0084] Furthermore, in some examples, the index information is represented by idx. The intersection function can be called to obtain the target defect data point that is reachable by density according to the query range and the index information, wherein the target defect data point can also be understood as data that is relatively close to the defect data point within the query range. In some examples, assuming that the target defect data point is represented by results, the process of obtaining the target defect data point that is reachable by density according to the query range and the index information can be expressed by the following formula: results = idx.intersection((xr-tolerance, yr-tolerance, x+r+tolerance, y+r+tolerance)).
[0085] It should be noted that the embodiments of the present application may also be improvements made on the basis of Embodiment 1 and / or Embodiment 2.
[0086] Embodiment 5
[0087] The fifth embodiment of the present application is further improved on the basis of the fourth embodiment. Specifically, in the fifth embodiment of the present application, according to the target Euclidean distance and the preset tolerance threshold, a cluster list corresponding to each defect is generated, that is, step S10345 can further include the following steps: Figure 6 As shown:
[0088] Step S103451, comparing the target Euclidean distance with the preset tolerance threshold;
[0089] Step S103452, corresponding to each of the target defect data points, obtaining a target defect data point that satisfies the target Euclidean distance less than or equal to the preset tolerance threshold;
[0090] Step S103453: generating a cluster list corresponding to each of the defects according to the target defect data points satisfying the target Euclidean distance being less than or equal to the preset tolerance threshold.
[0091] Further, in some embodiments of the present application, generating the cluster list corresponding to each of the defects based on the target defect data points that satisfy the target Euclidean distance less than or equal to the preset tolerance threshold may further include: creating a label array for each of the cluster lists, and setting an initial value of the label array; obtaining a threshold value for the minimum number of data required to form a cluster list; determining whether the number of the target defect data points in each of the cluster lists is greater than or equal to the threshold value; if it is determined that the number of the target defect data points in the cluster list is greater than or equal to the threshold value, processing the initial value of the label array, and generating a cluster list corresponding to the defect data points.
[0092] Specifically, in some examples, the np.full function can be used to create a label array, the number of labels in the label array can be the same as the number of target defect data points, and an initial value is set for each label in the label array. For example, the initial value can be -1, 1, etc., which is not specifically limited in the embodiment of the present application. For ease of understanding, it is assumed in the embodiment of the present application that the initial value of each label in the label array is set to -1, and this example is used for subsequent explanation.
[0093] Specifically, in some examples, the minimum number threshold of data required to form the cluster list can be represented by min_pts, and the specific value of the number threshold can be 2, 3, etc. Here, the specific value of the number threshold can be flexibly set by relevant staff according to actual business needs, and the embodiments of the present application do not specifically limit this.
[0094] Furthermore, in some examples, corresponding to each cluster list, it is determined whether the number of the target defect data points in each cluster list is greater than or equal to the quantity threshold; if it is determined whether the number of the target defect data points in the cluster list is greater than or equal to the quantity threshold, the initial value of the label array can be processed, for example, the initial value of the corresponding label in the label array can be incremented according to the increment rule. Finally, the label array is returned. If the values of the labels of some target defect data points are the same, it indicates that the certain target defect data points belong to the same cluster list; otherwise, they belong to different cluster lists. It is worth mentioning that if the final value of the label is the initial value, that is, -1, it means that the number of the target defect data points in the cluster list is less than the quantity threshold, and it cannot be counted as a cluster. The target defect data point generally corresponds to a relatively isolated defect.
[0095] It should be noted that the embodiments of the present application may also be improvements made on the basis of any one or more embodiments from Embodiment 1 to Embodiment 3.
[0096] Embodiment 6
[0097] Embodiment 6 of the present application provides a computer device, the structure of which is as follows: Figure 7 As shown, the device includes a memory 10 for storing computer-readable instructions and a processor 20 for executing the computer-readable instructions, wherein when the computer-readable instructions are executed by the processor, the processor is triggered to execute the method described.
[0098] The methods and / or embodiments in the embodiments of the present application may be implemented as computer software programs. For example, the embodiments of the present disclosure include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes program code for executing the method shown in the flowchart. When the computer program is executed by the processing unit, the above functions defined in the method of the present application are executed.
[0099] It should be noted that the computer-readable medium described in the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device.
[0100] In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, device, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.
[0101] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0102] The flow chart or block diagram in the accompanying drawings shows the possible architecture, function and operation of the equipment, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated system for hardware that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0103] As another aspect, the embodiments of the present application further provide a computer-readable medium, which may be included in the device described in the above embodiments; or may exist independently without being assembled into the device. The above computer-readable medium carries one or more computer-readable instructions, which may be executed by a processor to implement the steps of the methods and / or technical solutions of the above multiple embodiments of the present application.
[0104] In a typical configuration of the present application, the terminal and the equipment of the service network each include one or more processors (CPU), input / output interface, network interface and memory.
[0105] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.
[0106] Computer readable media include permanent and non-permanent, removable and non-removable media, and can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, modules of programs or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
[0107] In addition, an embodiment of the present application further provides a computer program, which is stored in a computer device, so that the computer device executes the method for controlling code execution.
[0108] It should be noted that the present application can be implemented in software and / or a combination of software and hardware, for example, can be implemented using an application specific integrated circuit (ASIC), a general purpose computer or any other similar hardware device. In certain embodiments, the software program of the present application can be executed by a processor to implement the above steps or functions. Similarly, the software program of the present application (including related data structures) can be stored in a computer-readable recording medium, for example, a RAM memory, a magnetic or optical drive or a floppy disk and similar devices. In addition, some steps or functions of the present application can be implemented using hardware, for example, as a circuit that cooperates with a processor to perform each step or function.
[0109] It is obvious to those skilled in the art that the present application is not limited to the details of the above exemplary embodiments, and that the present application can be implemented in other specific forms without departing from the spirit or basic features of the present application. Therefore, from any point of view, the embodiments should be regarded as exemplary and non-restrictive, and the scope of the present application is limited by the attached claims rather than the above description, so it is intended to include all changes that fall within the meaning and scope of the equivalent elements of the claims in the present application. Any figure mark in the claims should not be regarded as limiting the claims involved. In addition, it is obvious that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices stated in the device claim can also be implemented by one unit or device through software or hardware. The words first, second, etc. are used to indicate names, and do not indicate any particular order.
Claims
1. A method for clustering defects of wafers, characterized in that: The method comprises: Acquire a plurality of defect data points corresponding to each defect of the wafer; the defect data points are used to characterize the position and size of the defect; Determine index information of the defect data point according to the R-tree; Performing a scanning operation according to the R-tree and DBSCAN algorithm to determine the bounding rectangle of each defect according to the index information and the defect data point, and performing cross processing on the bounding rectangle to obtain a cluster list; Determining a clustering result of the defect according to the cluster list; The performing of the scanning operation according to the R-tree and DBSCAN algorithm to determine the bounding rectangle of each defect according to the index information and the defect data points, and performing cross processing on the bounding rectangle to obtain a cluster list includes: obtaining the quantity information of the defect data points; traversing the defect data points according to the quantity information to determine the defect data points that have not been accessed; obtaining a preset tolerance threshold; determining the bounding rectangle of each defect according to the index information, the defect data points that have not been accessed and the preset tolerance threshold, and performing cross processing on the bounding rectangle to obtain a cluster list; Among them, the method of determining the bounding rectangle of each defect according to the index information, the defect data points that have not been accessed and processed, and cross-processing the bounding rectangle to obtain a cluster list includes: performing a depth-first search on the defect data points that have not been accessed and processed according to the index information and the preset tolerance threshold to obtain at least one target defect data point; determining a first bounding rectangle of the defect corresponding to the defect data point; determining a second bounding rectangle of the defect corresponding to the target defect data point; cross-processing the first bounding rectangle and the second bounding rectangle to determine a target Euclidean distance; and generating a cluster list corresponding to each of the defects according to the target Euclidean distance and the preset tolerance threshold.
2. The method according to claim 1, characterized in that Determining the index information of the defect data point according to the R-tree includes: Converting the defect data points to obtain defect data points in a preset array format; According to the preset function of the R-tree, the defect data points in the preset array format are initialized to obtain index information of the defect data points.
3. The method according to claim 1, characterized in that The performing a depth-first search on the defective data points that have not been accessed and processed according to the index information and the preset tolerance threshold to obtain at least one target defective data point comprises: Determining, according to the preset tolerance threshold, a query range corresponding to the defect data points that have not been accessed and processed; The target defect data point is obtained according to the query range and the index information.
4. The method according to claim 3, characterized in that The step of determining the query range corresponding to the defect data point that has not been accessed and processed according to the preset tolerance threshold comprises: According to the defect data point, the radius of the circumscribed circle of the defect and the abscissa and ordinate of the center point of the circumscribed circle are obtained; Subtract the radius from the horizontal coordinate, and then subtract the preset tolerance threshold, to obtain first data of a first side of a circumscribed rectangle of a defect corresponding to the defect data point; Subtract the radius from the ordinate, and then subtract the preset tolerance threshold, to obtain second data of a second side of a circumscribed rectangle of a defect corresponding to the defect data point; Add the radius to the horizontal coordinate and then add the preset tolerance threshold to obtain third data of the third side of the circumscribed rectangle of the defect corresponding to the defect data point; Add the radius to the ordinate and then add the preset tolerance threshold to obtain fourth data of a fourth side of a circumscribed rectangle of a defect corresponding to the defect data point; A query range corresponding to the defective data point that has not been accessed is determined according to the first data, the second data, the third data and the third data.
5. The method according to any one of claims 1 to 4, characterized in that: The step of generating a cluster list corresponding to each of the defects according to the target Euclidean distance and the preset tolerance threshold comprises: Comparing the target Euclidean distance with the preset tolerance threshold; Corresponding to each of the target defect data points, obtaining a target defect data point satisfying the target Euclidean distance being less than or equal to the preset tolerance threshold; The cluster list corresponding to each of the defects is generated according to the target defect data points satisfying the target Euclidean distance being less than or equal to the preset tolerance threshold.
6. The method according to claim 5, characterized in that The generating the cluster list corresponding to each of the defects according to the target defect data points satisfying the target Euclidean distance being less than or equal to the preset tolerance threshold comprises: Corresponding to each of the cluster lists, a label array is created respectively, and an initial value of the label array is set; Obtaining a threshold value of the minimum amount of data required to form a cluster list; Determining whether the number of the target defect data points in each of the cluster lists is greater than or equal to the number threshold; If it is determined whether the number of the target defect data points in the cluster list is greater than or equal to the number threshold, the initial value of the label array is processed and a cluster list corresponding to the defect data points is generated.
7. A computer device, characterized in that: The device comprises: one or more processors; and A memory storing computer program instructions, which when executed cause the processor to perform the method as claimed in any one of claims 1 to 6.
8. A computer readable medium having computer program instructions stored thereon, wherein the computer program instructions can be executed by a processor to implement the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Clustering method, device and equipment for detecting defects of to-be-detected object and storage medium
CN113902711A