Semiconductor spray header hole detection method and device and medium

By combining green LED light sources and high-resolution industrial cameras with computer vision and machine learning technology, the automatic detection and classification of semiconductor spray head holes is achieved, solving the problem of time-consuming, labor-intensive and low accuracy in the existing technology, and improving the Accuracy and efficiency of detection.

CN119090819APending Publication Date: 2024-12-06JIANGSU KAIWEITESI SEMICON TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411099293.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-12
Publication Date
2024-12-06

AI Technical Summary

Technical Problem

The hole detection of existing semiconductor spray heads mainly relies on manual inspection, which is time-consuming and labor-intensive, and it is impossible to accurately determine whether the hole is blocked, resulting in low accuracy, high error rate and low yield rate.

Method used

Using green LED light sources and high-resolution industrial cameras combined with computer vision and machine learning technology, through image preprocessing, feature extraction and support vector machine classification model, automatic detection and classification of semiconductor spray head holes is realized, and the location of the holes is determined. Dimensions and defect status.

Benefits of technology

It improves the accuracy and efficiency of detection, can accurately judge the status of the spray head holes, reduces the manual error rate, and improves the yield rate of production.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119090819A_ABST
    Figure CN119090819A_ABST
Patent Text Reader

Abstract

The invention discloses a semiconductor spray header hole detection method and device and a medium, and the method comprises the steps: placing a semiconductor spray header on a green LED light source workbench, obtaining a surface image of the semiconductor spray header, carrying out the preprocessing of image data, calculating the geometric feature data and texture feature data of each hole region, constructing the feature vector of each hole, and carrying out the calculation of the feature vector of each hole; establishing a supervised learning classification model based on a support vector machine (SVM), training a classifier by using a historical sample, inputting the feature vector data of each hole into the trained classifier to obtain a defect probability, and determining whether the spray header is qualified or not according to a preset probability threshold; according to the invention, by using computer vision data analysis and machine learning data processing technologies, automatic detection and classification of the surface defects of the spray header are realized, accurate data judgment analysis and recording can be carried out on the hole data of the spray header, and the detection accuracy and efficiency are greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of data analysis and processing, and in particular relates to a semiconductor shower head hole detection method, device and medium. Background Art

[0002] In the semiconductor manufacturing process, the PVD (Physical Vapor Deposition) process is a technology used to deposit thin films on semiconductor wafers. The shower head is an important component in the PVD equipment, which is responsible for evenly distributing the reaction gas to the wafer surface to achieve uniform deposition of the thin film. The quality control and aperture qualification rate of the gas shower head are crucial to the uniformity of film formation.

[0003] In the semiconductor PVD manufacturing process, there are many holes on the surface of the semiconductor shower head product for uniform gas diffusion. The uniform ventilation of the holes determines the yield rate of production. Therefore, whether the holes of the product are blocked is an important indicator for testing whether the product quality is qualified.

[0004] Traditional technologies rely on manual inspection, which is time-consuming and labor-intensive. There is also no way to ensure whether the holes of the sprinkler head are blocked. Manual judgment has poor accuracy, high error rate and low yield rate. Summary of the invention

[0005] In view of the defects existing in the above-mentioned prior art, the present invention provides a semiconductor shower head hole detection method, device and medium, the method comprising the following steps: placing the semiconductor shower head on a green LED light source workbench, the workbench provides uniform backlighting, and arranging a high-resolution industrial camera above the semiconductor shower head, the camera is connected to a hole detection control system, and the camera photographs the semiconductor shower head based on a determined scanning path to obtain a surface image of the semiconductor shower head.

[0006] The surface image of the sprinkler head is preprocessed, including image correction, enhancement and grayscale, eliminating uneven illumination and lens distortion, identifying the edge contour of the sprinkler head surface, and segmenting the edge contour into independent hole areas, using morphological operations to remove noise and refine the hole boundaries.

[0007] The area, perimeter and roundness geometric features of each hole region are calculated, and the texture features of the holes are extracted, including gray-level co-occurrence matrix, Gabor filter response and local binary pattern (LBP) features. The feature vector of each hole is constructed based on the geometric features and texture features.

[0008] A supervised learning classification model based on support vector machine (SVM) was established, and the classifier was trained using historical samples to identify normal holes and defective holes.

[0009] The feature vector is input into a trained classifier to obtain the defect probability of each hole, and whether the semiconductor shower head is qualified is determined according to a preset probability threshold, and the position, size, and defect status data of each hole are recorded.

[0010] The method further includes pre-setting a feature point with a special mark on the surface of the shower head as a reference point, and the camera determines the coordinates of the reference point and sends them to the hole detection control system.

[0011] The original image sequence of the surface of the shower head is obtained by the camera, and the coordinates of the holes on the surface of the shower head are obtained based on image segmentation and connected domain analysis algorithms, and sent to the control system.

[0012] The hole detection control system constructs a hole distribution matrix based on the hole coordinates, wherein each element in the matrix indicates whether there is a hole at the corresponding position, 1 indicates existence, and 0 indicates non-existence, and the optimal path search algorithm A* algorithm is used based on the reference point coordinates and the hole distribution matrix to determine a scanning path that can cover all hole areas.

[0013] The camera takes pictures of the holes on the surface of the sprinkler head based on a determined scanning path. By making full use of the reference point information on the surface of the sprinkler head and the two-dimensional hole distribution matrix, the algorithm is combined to plan the optimal scanning path that can fully cover all hole areas, which not only improves the detection efficiency, but also ensures the integrity and accuracy of the detection.

[0014] The method further includes: adding the starting point (x_start, y_start) to an open list Open List, the evaluation function of the starting point f(x_start, y_start) = h(x_start, y_start), adding the starting point to a closed list ClosedList, wherein the open list Open List contains nodes to be expanded, and the Closed List contains nodes that have been explored, wherein (x_start, y_start) represents the coordinates of the starting position, f represents the evaluation function, and h represents the heuristic function; selecting a node with the smallest evaluation function f(x, y) from the OpenList as the current node (x_current, y_current), and moving the current node (x_current, y_current) from the Open List to the Closed List; obtaining the neighboring node set neighbors = [(x+1, y), (x-1, y), (x, y+1), (x, y-1)] of the current node, and for each neighboring node (x_neighbor, y_neighbor), calculating the actual cost function from the starting point to the neighboring node:

[0015] g(x_neighbor,y_neighbor)=g(x_current,y_current)

[0016] +distance((x_current,y_current),(x_neighbor,y_neighbor)).

[0017] Among them, g(x_current,y_current) represents the actual cost from the starting point to the current node (x_current,y_current), and distance((x_current,y_current),(x_neighbor,y_neighbor)) represents the actual distance or cost from the current node to the adjacent node (x_neighbor,y_neighbor).

[0018] Calculate the heuristic function from the adjacent node to the end point:

[0019] h(x_neighbor,y_neighbor)=|(x_neighbor-x_end)|+|(y_neighbor-y_end)|.

[0020] Among them, (x_neighbor, y_neighbor) is the coordinate of the neighboring node to be evaluated, and (x_end, y_end) is the coordinate of the end point.

[0021] Calculate the total evaluation function of the adjacent node:

[0022] f(x_neighbor,y_neighbor)=g(x_neighbor,y_neighbor)+

[0023] h(x_neighbor,y_neighbor).

[0024] If the adjacent node is not in the Closed List and the Open List, add it to the Open List. If the adjacent node is not in the Closed List and is already in the Open List, but the calculated f(x_neighbor, y_neighbor) value is less than the current estimated cost of the current node, update the information of the current node in the Open List.

[0025] If the corresponding position of the adjacent node in the hole distribution matrix is ​​1, the number of covered holes is updated m=m+1, where m is an integer variable used to record the number of holes that have been covered during the search process.

[0026] If the Open List is empty and the number of covered holes m is equal to the total number of holes, the path calculation is terminated; starting from the end node, trace back based on the pointer from the current node to its parent node in the Closed List until returning to the starting point, and save the coordinates (x, y) of the nodes passed along the way into the path sequence.

[0027] The coordinate points (x, y) in the path sequence are traversed, and the determined target path is converted into the motion coordinates and control instructions of the camera.

[0028] Among them, the edge contour of the surface of the shower head is identified based on the Canny edge detection algorithm, and the Canny edge detection algorithm is used for image data processing; it includes: using a Gaussian filter to smooth the image to reduce the influence of noise on edge detection, calculating the gradient amplitude and direction of the image to determine the edge pixels, suppressing the pixels with gradient amplitude lower than the low threshold based on the double threshold method, retaining the pixels with gradient amplitude higher than the high threshold, performing hysteresis connection on the pixels with gradient amplitude between the high threshold and the low threshold, determining whether to retain, performing non-maximum suppression, retaining the pixels with the local maximum gradient amplitude, and removing edge detail pixels.

[0029] According to the gradient amplitude and direction information of the edge pixels, the edge features of the sprinkler head surface are extracted, the edge contour is extracted using Hough transform, and the geometric shape of the sprinkler head is identified. The extracted edge contour is smoothed to remove local noise and jitter. Among them, Hough transform is a shape detection algorithm used to detect geometric shapes in images.

[0030] The length, curvature, and connectivity of each edge are calculated, and then the edges are classified and clustered to identify the edge contour of the sprinkler head surface. The geometric properties of the edge contour, including area and angle, are obtained to provide a basis for regional segmentation.

[0031] Among them, the region segmentation uses the connected domain analysis method to segment the edge contour into independent hole areas, including binarizing the results of Canny edge detection, setting the edge pixels to 1 and other pixels to 0, identifying independent edge areas in the image based on the connected domain analysis method, and marking and numbering each connected domain area.

[0032] Opening and closing operations are used for each connected domain area to remove noise and refine the boundaries. Valid hole areas are screened out based on the area and shape characteristics of the area, and noise and irrelevant areas are excluded.

[0033] Among them, the calculation formula for the area of ​​the hole region is to use the edge tracking algorithm to obtain the coordinate point set of the outer boundary of the hole {(x1,y1),(x2,y2),...,(xn,yn)}, where xi represents the horizontal coordinate of the i-th coordinate point, yi represents the vertical coordinate of the i-th coordinate point, and i=1,2,...,n.

[0034] Based on Green's formula, the area enclosed by the closed curve is calculated using the following formula:

[0035] A = 1 / 2*∑(xi*yi+1-xi+1*yi).

[0036] Where (xi,yi) represents the set of boundary coordinate points {(x1,y1),(x2,y2),...,(xn,yn)}, i ranges from 1 to n-1, the last point (xn,yn) is connected to the first point (x1,y1) to form a closed curve; n represents the nth natural number.

[0037] The perimeter of each hole area is calculated by initializing the freeman chain code list;

[0038] freeman_code=[0], sets the direction code of the first coordinate point to 0, indicating right; freeman is used to describe the relative direction of each point, and freeman_code is used to store the direction code of each point.

[0039] Traverse the boundary coordinate point set and calculate the direction change between two adjacent coordinate points: calculate the change dx and dy in the x and y directions between the current coordinate point (xi, yi) and the previous coordinate point (xi-1, yi-1), and add the corresponding direction code to the freeman_code list according to the values ​​of dx and dy.

[0040] If dx=0,dy=1, the direction is encoded as 2 (upward), if dx=-1,dy=1, the direction is encoded as 3 (upper left), if dx=-1,dy=0, the direction is encoded as 4 (left), if dx=-1,dy=-1, the direction is encoded as 5 (lower left), if dx=0,dy=-1, the direction is encoded as 6 (downward), if dx=1,dy=-1, the direction is encoded as 7 (lower right), if dx=1,dy=0, the direction is encoded as 0 (right), if dx=1,dy=1, the direction is encoded as 1 (upper right).

[0041] Traverse the freeman_code list, calculate the absolute value of the difference between two adjacent codes, and take the modulo 2 to get the perimeter of the hole based on the following formula:

[0042] P=sum(abs(freeman_code[i]-freeman_code[i-1])%2for iin range(1,len(freeman_code))).

[0043] Among them, P represents the calculated circumference value, abs(freeman_code[i]-freeman_code[i-1]) means calculating the absolute value of the difference between two adjacent freeman chain codes, %2 means taking the modulo operation on the absolute value of the difference, and sum(...for iin range(1,len(freeman_code))) means traversing the freeman_code list, starting from the second element to the last element of the list.

[0044] The roundness value is calculated based on the area and circumference of the hole: C = (4*π*A) / (P^2).

[0045] Among them, C represents the roundness value, ranging from 0 to 1. When C is equal to 1, it indicates a perfect circle, and when C is less than 1, it indicates an incomplete circle; π represents the pi; A represents the area enclosed by the closed curve calculated based on Green's formula, and P represents the circumference of the hole.

[0046] The method of constructing the feature vector of the hole uses the principal component analysis (PCA) method to reduce the dimension of the geometric features and texture features of the hole to obtain the feature vector of each hole, including: for n hole areas, the geometric features of the n holes, including area, perimeter and roundness, are combined into a feature matrix to construct an n*3 geometric feature matrix X_geo=[[A_1,P_1,C_1],[A_2,P_2,C_2],...,[A_n,P_n ,C_n]], where A_1, A_2, A_n represent the area of ​​the hole; P_1, P_2, P_n represent the circumference of the hole; C_1, C_2, C_n represent the roundness of the hole; based on the gray level co-occurrence matrix and Gabor filter response, the texture feature matrix X_tex=[[f_1],[f_2],...,[f_n]] of each hole area is extracted, where f_1, [f_2], [f_n] represent the texture features of the hole.

[0047] Combine the geometric features and texture features to get the complete feature vector F_i of each hole.

[0048] [X_geo,X_tex].

[0049] The method of using historical samples to train a classifier to identify normal holes and defective holes further includes collecting historical sample data, including geometric feature matrices and texture feature matrices of normal holes and defective holes.

[0050] Label the defect status of each sample, where 0 represents normal and 1 represents defect, forming a label vector y.

[0051] The geometric feature matrix and the texture feature matrix are fused at the feature level to obtain the fused feature matrix. The train_test_split function is used to divide the data set into a training set and a test set. The training set is used to train the SVM classifier, and the test set is used to evaluate the classification performance.

[0052] The support vector machine classifier is trained based on the C-SVC algorithm, and the penalty parameter and gamma parameter are optimized using grid search and cross validation, where gamma represents the degree of mutual influence between samples. The final SVM classifier clf is obtained by training with the optimized parameters.

[0053] The feature vector F_i of each hole is input into the trained SVM classifier clf to obtain the defect probability of each hole. The preset probability threshold is used to determine whether each hole is a defect. If the defect probability is greater than or equal to the probability threshold, the hole is a defect. If the defect probability is less than the probability threshold, the hole is normal, and the position, size, and defect status data of each hole are recorded.

[0054] The present invention places a semiconductor shower head on a green LED light source workbench, obtains its surface image, pre-processes the image, calculates the geometric features and texture features of each hole area, constructs the feature vector of each hole, establishes a supervised learning classification model based on a support vector machine (SVM), trains the classifier using historical samples, inputs the feature vector of each hole into the trained classifier, obtains its defect probability, and determines whether the shower head is qualified based on a preset probability threshold. The present invention realizes fully automatic detection and classification of shower head surface defects by using computer vision and machine learning technology, and can accurately judge, analyze and record the hole data of the shower head, greatly improving the accuracy and efficiency of detection. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] By reading the detailed description below with reference to the accompanying drawings, the above and other purposes, features and advantages of the exemplary embodiments of the present disclosure will become readily understood. In the accompanying drawings, several embodiments of the present disclosure are shown in an exemplary and non-limiting manner, and the same or corresponding reference numerals represent the same or corresponding parts, wherein:

[0056] Figure 1 The flowchart is a method for detecting holes in a semiconductor shower head according to an embodiment of the present invention.

[0057] Figure 2 Shown is a photographed surface image of the shower head.

[0058] Figure 3 This is a partial enlarged view of the sprinkler head inspection outline.

[0059] Figure 4 This is the sprinkler head detection profile status diagram. DETAILED DESCRIPTION

[0060] In order to make the purpose, technical scheme and advantages of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0061] The terms used in the embodiments of the present invention are only for the purpose of describing specific embodiments, and are not intended to limit the present invention. The singular forms "a", "said" and "the" used in the embodiments of the present invention and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings, and "multiple" generally includes at least two.

[0062] It should be understood that although the terms first, second, third, etc. may be used to describe ... in the embodiments of the present invention, these ... should not be limited to these terms. These terms are only used to distinguish .... For example, without departing from the scope of the embodiments of the present invention, the first ... may also be referred to as the second ..., and similarly, the second ... may also be referred to as the first ....

[0063] It should be understood that the term "and / or" used in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the associated objects before and after are in an "or" relationship.

[0064] As used herein, the words "if" and "if" may be interpreted as "at the time of" or "when" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrases "if it is determined" or "if (stated condition or event) is detected" may be interpreted as "when it is determined" or "in response to determining" or "when detecting (stated condition or event)" or "in response to detecting (stated condition or event)", depending on the context.

[0065] It should also be noted that the term "includes", "comprising" or any other variation thereof is intended to cover non-exclusive inclusion, so that a commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprising a ..." do not exclude the existence of other identical elements in the commodity or device including the elements.

[0066] Existing semiconductor shower head inspection technology is mostly done manually, which is time-consuming and laborious. There is no better way to ensure whether the holes of the shower head are blocked. The accuracy of manual judgment is poor, the error rate is high, and the yield rate is low. Therefore, an effective method is needed to accurately judge, analyze and record the hole data of the shower head, improve the accuracy and efficiency of the inspection, and solve the problems of the existing technology that the quality cannot be accurately controlled, the inspection standards are not unified, the accuracy rate is low and the efficiency is low.

[0067] like Figure 1 As shown, the present invention discloses a semiconductor shower head hole detection method, the method comprising: placing a semiconductor shower head on a green LED light source workbench, the workbench provides uniform backlighting, arranging a high-resolution industrial camera above the semiconductor shower head, the camera is connected to a hole detection control system, and the camera photographs the semiconductor shower head based on a determined scanning path to obtain a surface image of the semiconductor shower head.

[0068] In one embodiment, the semiconductor shower head is a circular porous device, and a green tabletop light source for detecting the holes of the shower head is set on the workbench. When working, the green tabletop light source is turned on and the green tabletop light source will illuminate the area within the diameter range of the shower head to achieve full coverage of the shower head.

[0069] The semiconductor shower head is placed on a green LED light source workbench, which can provide uniform backlighting for subsequent observation and analysis of shower head surface details. A high-resolution industrial camera is set above the shower head. The camera is connected to the entire hole detection control system and can capture the surface image of the shower head according to the determined scanning path. In this way, high-quality image data of the shower head surface is obtained, providing a good foundation for image processing and analysis. Figure 2 Shown is a photograph of the sprinkler head surface.

[0070] In one embodiment, determining the scanning path further comprises: presetting feature points with special marks on the surface of the shower head as reference points, and determining the coordinates of the reference points by the camera and sending them to the hole detection control system.

[0071] The original image sequence of the surface of the shower head is obtained by the camera, and the coordinates of the holes on the surface of the shower head are obtained based on image segmentation and connected domain analysis algorithms, and sent to the control system.

[0072] The hole detection control system constructs a hole distribution matrix based on the hole coordinates, wherein each element in the matrix indicates whether there is a hole at the corresponding position, 1 indicates existence, and 0 indicates non-existence, and the optimal path search algorithm A* algorithm is used based on the reference point coordinates and the hole distribution matrix to determine a scanning path that can cover all hole areas.

[0073] The camera photographs the holes on the surface of the shower head based on the determined scanning path.

[0074] Based on the above processing flow, the camera can fully scan the surface of the sprinkler head and obtain the location information of all holes, providing a reliable data basis for subsequent defect analysis and judgment. The key technologies include feature point recognition, image segmentation, hole coordinate extraction, and path planning optimization based on image information. The whole process realizes the comprehensive scanning and data collection of the sprinkler head surface.

[0075] In one embodiment, determining the scanning path further includes: adding the starting point (x_start, y_start) to an open list Open List, the evaluation function of the starting point f(x_start, y_start) = h(x_start, y_start), adding the starting point to a closed list Closed List, wherein the Open List contains nodes to be expanded, and the Closed List contains nodes that have been explored, wherein (x_start, y_start) represents the coordinates of the starting position, f represents the evaluation function, and h represents the heuristic function; selecting the node with the smallest evaluation function f(x, y) from the Open List as the current node (x_current, y_current), and moving the current node (x_current, y_current) from the Open List to the Closed List.

[0076] Get the neighboring node set of the current node neighbors = [(x+1, y), (x-1, y), (x, y+1), (x, y-1)], and for each neighboring node (x_neighbor, y_neighbor), calculate the actual cost function from the starting point to the neighboring node:

[0077] g(x_neighbor,y_neighbor)=g(x_current,y_current)

[0078] +distance((x_current,y_current),(x_neighbor,y_neighbor))

[0079] Among them, g(x_current,y_current) represents the actual cost from the starting point to the current node (x_current,y_current), and distance((x_current,y_current),(x_neighbor,y_neighbor)) represents the actual distance or cost from the current node to the adjacent node (x_neighbor,y_neighbor).

[0080] Calculate the heuristic function from the adjacent node to the end point:

[0081] h(x_neighbor,y_neighbor)=|(x_neighbor-x_end)|+|(y_neighbor-y_end)|

[0082] Among them, (x_neighbor, y_neighbor) is the coordinate of the neighboring node to be evaluated.

[0083] (x_end,y_end) are the coordinates of the end point;

[0084] Calculate the total evaluation function of the adjacent node:

[0085] f(x_neighbor,y_neighbor)=g(x_neighbor,y_neighbor)+

[0086] h(x_neighbor,y_neighbor).

[0087] If the adjacent node is not in the Closed List and the Open List, add it to the Open List. If the adjacent node is not in the Closed List and is already in the Open List, but the calculated f(x_neighbor, y_neighbor) value is less than the current estimated cost of the current node, update the information of the current node in the Open List.

[0088] If the corresponding position of the adjacent node in the hole distribution matrix is ​​1, the number of covered holes is updated m=m+1, where m is an integer variable used to record the number of holes that have been covered during the search process.

[0089] If the Open List is empty and the number of covered holes m is equal to the total number of holes, the path calculation is terminated; starting from the end node, trace back based on the pointer from the current node to its parent node in the Closed List until returning to the starting point, and save the coordinates (x, y) of the nodes passed along the way into the path sequence.

[0090] The coordinate points (x, y) in the path sequence are traversed, and the determined target path is converted into the motion coordinates and control instructions of the camera.

[0091] The scanning path is determined based on the A* algorithm, which makes full use of the hole distribution matrix information to ensure that the optimal scanning path covering all holes can be found.

[0092] The surface image of the sprinkler head is preprocessed, including image correction, enhancement and grayscale, eliminating uneven illumination and lens distortion, identifying the edge contour of the sprinkler head surface, and segmenting the edge contour into independent hole areas, using morphological operations to remove noise and refine the hole boundaries.

[0093] Through the above image preprocessing steps, problems such as uneven lighting and lens distortion can be effectively eliminated, the hole information on the surface of the sprinkler head can be highlighted, and accurate and reliable input data can be provided for the subsequent path planning algorithm. The entire preprocessing process can be implemented using various functions in the OpenCV library.

[0094] In one embodiment, the edge contour of the shower head surface is identified based on the Canny edge detection algorithm, wherein the Canny edge detection algorithm is used for image data processing, and further includes: using a Gaussian filter to smooth the image to reduce the impact of noise on edge detection, calculating the gradient amplitude and direction of the image to determine edge pixels, suppressing pixels with gradient amplitudes lower than a low threshold based on a double threshold method, retaining pixels with gradient amplitudes higher than a high threshold, performing hysteresis connection on pixels with gradient amplitudes between a high threshold and a low threshold to determine whether to retain, performing non-maximum suppression, retaining pixels with local maximum gradient amplitudes, and removing edge detail pixels; extracting edge features of the shower head surface based on the gradient amplitude and direction information of the edge pixels, extracting the edge contour using Hough transform, and identifying the geometric shape of the shower head, and smoothing the extracted edge contour to remove local noise and jitter, wherein the Hough transform is an algorithm for detecting shapes, which is used to detect geometric shapes in images.

[0095] The length, curvature, and connectivity of each edge are calculated, and then the edges are classified and clustered to identify the edge contour of the sprinkler head surface. The geometric properties of the edge contour, including area and angle, are obtained to provide a basis for regional segmentation.

[0096] In one embodiment, the region segmentation uses a connected domain analysis method to segment the edge contour into independent hole regions, including binarizing the results of Canny edge detection, setting edge pixels to 1 and other pixels to 0, identifying independent edge regions in the image based on the connected domain analysis method, and marking and numbering each connected domain region.

[0097] Opening and closing operations are used for each connected domain area to remove noise and refine the boundaries. Valid hole areas are screened out based on the area and shape characteristics of the area, and noise and irrelevant areas are excluded.

[0098] The area, perimeter and roundness geometric features of each hole region are calculated, and the texture features of the holes are extracted, including gray-level co-occurrence matrix, Gabor filter response and local binary pattern (LBP) features. The feature vector of each hole is constructed based on the geometric features and texture features.

[0099] In a certain embodiment, the calculation formula for the area of ​​the hole region is to use an edge tracking algorithm to obtain a set of coordinate points of the outer boundary of the hole {(x1, y1), (x2, y2), ..., (xn, yn)}, where xi represents the horizontal coordinate of the i-th coordinate point, yi represents the vertical coordinate of the i-th coordinate point, and i = 1, 2, ..., n.

[0100] Based on Green's formula, the area enclosed by the closed curve is calculated using the following formula:

[0101] A = 1 / 2*∑(xi*yi+1-xi+1*yi).

[0102] Where (xi,yi) represents the set of boundary coordinate points {(x1,y1),(x2,y2),...,(xn,yn)}, i ranges from 1 to n-1, the last point (xn,yn) is connected to the first point (x1,y1) to form a closed curve; n represents the nth natural number.

[0103] The perimeter of each hole area is calculated by initializing the freeman chain code list;

[0104] freeman_code=[0], sets the direction code of the first coordinate point to 0, indicating right; freeman is used to describe the relative direction of each point, and freeman_code is used to store the direction code of each point.

[0105] Traverse the boundary coordinate point set and calculate the direction change between two adjacent coordinate points: calculate the change dx and dy in the x and y directions between the current coordinate point (xi, yi) and the previous coordinate point (xi-1, yi-1), and add the corresponding direction code to the freeman_code list according to the values ​​of dx and dy.

[0106] If dx=0,dy=1, the direction is encoded as 2 (upward), if dx=-1,dy=1, the direction is encoded as 3 (upper left), if dx=-1,dy=0, the direction is encoded as 4 (left), if dx=-1,dy=-1, the direction is encoded as 5 (lower left), if dx=0,dy=-1, the direction is encoded as 6 (downward), if dx=1,dy=-1, the direction is encoded as 7 (lower right), if dx=1,dy=0, the direction is encoded as 0 (right), if dx=1,dy=1, the direction is encoded as 1 (upper right).

[0107] Traverse the freeman_code list, calculate the absolute value of the difference between two adjacent codes, and take the modulo 2 to get the perimeter of the hole based on the following formula:

[0108] P=sum(abs(freeman_code[i]-freeman_code[i-1])%2for iin range(1,len(freeman_code))).

[0109] Where P represents the calculated circumference value, abs(freeman_code[i]-freeman_code[i-1]) represents calculating the absolute value of the difference between two adjacent freeman chain codes, %2 represents performing a modulo operation on the absolute value of the difference, and sum(...for iin range(1,len(freeman_code))) represents traversing the freeman_code list, starting from the second element and continuing to the last element of the list;

[0110] The roundness value is calculated based on the area and circumference of the hole: C = (4*π*A) / (P^2).

[0111] Among them, C represents the roundness value, ranging from 0 to 1. When C is equal to 1, it indicates a perfect circle, and when C is less than 1, it indicates an incomplete circle; π represents the pi; A represents the area enclosed by the closed curve calculated based on Green's formula, and P represents the circumference of the hole.

[0112] In one embodiment, a feature vector of a hole is constructed, and a principal component analysis (PCA) method is used to reduce the dimension of the geometric features and texture features of the hole to obtain a feature vector of each hole, including: for n hole regions, the geometric features of the n holes, including area, perimeter and roundness, are combined into a feature matrix to construct an n*3 geometric feature matrix X_geo=[[A_1,P_1,C_1],[A_2,P_2,C_2],...,[A_n,P_ n,C_n]], where A_1, A_2, A_n represent the area of ​​the hole; P_1, P_2, P_n represent the circumference of the hole; C_1, C_2, C_n represent the roundness of the hole; based on the gray level co-occurrence matrix and Gabor filter response, the texture feature matrix X_tex=[[f_1],[f_2],...,[f_n]] of each hole area is extracted, where f_1, [f_2], [f_n] represent the texture features of the hole.

[0113] Combine the geometric features and texture features to get the complete feature vector F_i of each hole.

[0114] [X_geo,X_tex].

[0115] A supervised learning classification model based on support vector machine (SVM) is established, and a classifier is trained using historical samples to identify normal holes and defective holes. The feature vector is input into the trained classifier to obtain the defect probability of each hole, and whether the semiconductor shower head is qualified is determined according to a preset probability threshold, and the position, size, and defect status data of each hole are recorded.

[0116] Based on the supervised learning method of SVM, the classification model is trained using historical samples, which can effectively identify normal holes and defective holes. By setting a suitable probability threshold, the quality status of the entire sprinkler head can be automatically judged, providing data support for subsequent quality control. At the same time, recording the location, size and defect status of each hole is also helpful for analyzing the defects of the sprinkler head.

[0117] like Figure 3 , Figure 4 The following are partial enlarged images of the sprinkler head detection profile and the sprinkler head detection profile status image. If each hole is a complete green circle and the green light penetrates completely, the sprinkler head hole is judged to be qualified. If the green light source partially passes through the sprinkler head hole, the obtained circle is an irregular shape, and the sprinkler head hole is judged to be unqualified. If the green light source cannot pass through at all, the corresponding area will be displayed as a black area, which does not meet the complete circle hole standard, and the sprinkler head hole is judged to be unqualified.

[0118] In one embodiment, the method of using historical samples to train a classifier to identify normal holes and defective holes includes: collecting historical sample data, including geometric feature matrices and texture feature matrices of normal holes and defective holes.

[0119] Label the defect status of each sample, where 0 represents normal and 1 represents defect, forming a label vector y.

[0120] The geometric feature matrix and the texture feature matrix are fused at the feature level to obtain the fused feature matrix. The train_test_split function is used to divide the data set into a training set and a test set. The training set is used to train the SVM classifier, and the test set is used to evaluate the classification performance.

[0121] The support vector machine classifier is trained based on the C-SVC algorithm, and the penalty parameter and gamma parameter are optimized using grid search and cross validation, where gamma represents the degree of mutual influence between samples. The final SVM classifier clf is obtained by training with the optimized parameters.

[0122] The feature vector F_i of each hole is input into the trained SVM classifier clf to obtain the defect probability of each hole. The preset probability threshold is used to determine whether each hole is a defect. If the defect probability is greater than or equal to the probability threshold, the hole is a defect. If the defect probability is less than the probability threshold, the hole is normal, and the position, size, and defect status data of each hole are recorded.

[0123] The present invention places a semiconductor shower head on a green LED light source workbench, obtains its surface image, pre-processes the image, calculates the geometric features and texture features of each hole area, constructs the feature vector of each hole, establishes a supervised learning classification model based on a support vector machine (SVM), trains the classifier using historical samples, inputs the feature vector of each hole into the trained classifier, obtains its defect probability, and determines whether the shower head is qualified based on a preset probability threshold. The present invention realizes fully automatic detection and classification of shower head surface defects by using computer vision and machine learning technology, and can accurately judge, analyze and record the hole data of the shower head, greatly improving the accuracy and efficiency of detection.

[0124] It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage 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 disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The 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, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.

[0125] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.

[0126] Computer program code for performing the operations of the present disclosure 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 cases involving 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., through the Internet using an Internet service provider).

[0127] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. 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 hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0128] The units involved in the embodiments described in the present disclosure may be implemented by software or hardware, wherein the name of a unit does not, in some cases, limit the unit itself.

[0129] The above introduces the preferred embodiments of the present invention, which is intended to make the spirit of the present invention clearer and easier to understand, but is not intended to limit the present invention. All modifications, substitutions, and improvements made within the spirit and principles of the present invention should be included in the scope of protection outlined by the claims attached to the present invention.

Claims

1. A semiconductor shower head hole detection method, comprising: The semiconductor shower head is placed on a green LED light source workbench, the workbench provides uniform backlight illumination, a high-resolution industrial camera is arranged above the semiconductor shower head, the camera is connected to a hole detection control system, and the camera photographs the semiconductor shower head based on a determined scanning path to obtain a surface image of the semiconductor shower head; Preprocessing the surface image of the sprinkler head, including image correction, enhancement and grayscale, eliminating uneven illumination and lens distortion, identifying the edge contour of the sprinkler head surface, and segmenting the edge contour into independent hole areas, using morphological operations to remove noise and refine the hole boundaries; Calculate the area, perimeter and roundness geometric features of each hole area, extract the texture features of the hole, including gray-level co-occurrence matrix, Gabor filter response and local binary pattern LBP features, and construct the feature vector of each hole based on the geometric features and texture features; A supervised learning classification model based on support vector machine (SVM) was established, and the classifier was trained using historical samples to identify normal holes and defective holes. The feature vector is input into a trained classifier to obtain the defect probability of each hole, and whether the semiconductor shower head is qualified is determined according to a preset probability threshold, and the position, size, and defect status data of each hole are recorded.

2. A semiconductor shower head hole detection method as claimed in claim 1, characterized in that: The surface of the sprinkler head is pre-set with a characteristic point with a special mark as a reference point, and the coordinates of the reference point are determined by the camera and sent to the hole detection control system; Acquire the original image sequence of the surface of the sprinkler head through the camera, acquire the coordinates of the holes on the surface of the sprinkler head based on the image segmentation and connected domain analysis algorithm, and send them to the control system; The hole detection control system constructs a hole distribution matrix based on the hole coordinates, wherein each element in the matrix indicates whether a hole exists at the corresponding position, 1 indicates existence, and 0 indicates non-existence, and uses the optimal path search algorithm A* algorithm based on the reference point coordinates and the hole distribution matrix to determine a scanning path that can cover all hole areas; The camera photographs the holes on the surface of the shower head based on the determined scanning path.

3. A semiconductor shower head hole detection method as claimed in claim 2, characterized in that: The scanning path includes: adding the starting point (x_start, y_start) to an open list Open List, the evaluation function of the starting point f(x_start, y_start) = h(x_start, y_start), adding the starting point to a closed list Closed List, wherein the open list OpenList contains nodes to be expanded, and the Closed List contains nodes that have been explored, wherein (x_start, y_start) represents the coordinates of the starting position, f represents the evaluation function, and h represents the heuristic function; selecting a node with the smallest evaluation function f(x, y) from the Open List as the current node (x_current, y_current), and moving the current node (x_current, y_current) from the Open List to the Closed List; Get the neighboring node set of the current node neighbors = [(x+1, y), (x-1, y), (x, y+1), (x, y-1)], and for each neighboring node (x_neighbor, y_neighbor), calculate the actual cost function from the starting point to the neighboring node: g(x_neighbor,y_neighbor)=g(x_current,y_current)+distance((x_current,y_current),(x_neighbor,y_neighbor)); Among them, g(x_current,y_current) represents the distance from the starting point to the current node (x_current, distance((x_current,y_current),(x_neighbor,y_neighbor)) represents the actual distance or cost from the current node to the neighboring node (x_neighbor,y_neighbor); Calculate the heuristic function from the adjacent node to the end point: h(x_neighbor,y_neighbor)=|(x_neighbor-x_end)|+|(y_neighbor-y_end)|; Among them, (x_neighbor, y_neighbor) is the coordinate of the neighboring node to be evaluated, and (x_end, y_end) is the coordinate of the end point; Calculate the total evaluation function of the adjacent node: f(x_neighbor,y_neighbor)=g(x_neighbor,y_neighbor)+h(x_neighbor,y_neighbor); If the neighboring node is not in the Closed List and the Open List, add it to the Open List. If the neighboring node is not in the Closed List and is already in the Open List, but the calculated f(x_neighbor, y_neighbor) value is less than the current estimated cost of the current node, update the information of the current node in the Open List. If the corresponding position of the adjacent node in the hole distribution matrix is ​​1, then the number of covered holes is updated to m = m + 1, where m is an integer variable used to record the number of holes that have been covered during the search process; If the Open List is empty and the number of covered holes m is equal to the total number of holes, the path calculation is terminated; starting from the end node, based on the pointer from the current node to its parent node in the Closed List, the path is traced back until it returns to the starting point, and the coordinates (x, y) of the nodes passed along the way are saved in the path sequence; The coordinate points (x, y) in the path sequence are traversed, and the determined target path is converted into the motion coordinates and control instructions of the camera.

4. A semiconductor shower head hole detection method as claimed in claim 1, characterized in that: The edge contour of the shower head surface is identified based on the Canny edge detection algorithm, wherein the Canny edge detection algorithm is used for image data processing, including using a Gaussian filter to smooth the image to reduce the influence of noise on edge detection, calculating the gradient amplitude and direction of the image to determine edge pixels, suppressing pixels with a gradient amplitude lower than a low threshold based on a double threshold method, retaining pixels with a gradient amplitude higher than a high threshold, performing a hysteresis connection on pixels with a gradient amplitude between a high threshold and a low threshold to determine whether to retain them, performing non-maximum suppression, retaining pixels with a local maximum gradient amplitude, and removing edge detail pixels; According to the gradient amplitude and direction information of edge pixels, the edge features of the sprinkler head surface are extracted, the edge contour is extracted using Hough transform, and the geometric shape of the sprinkler head is identified. The extracted edge contour is smoothed to remove local noise and jitter. Hough transform is a shape detection algorithm used to detect geometric shapes in images. The length, curvature, and connectivity of each edge are calculated, and then the edges are classified and clustered to identify the edge contour of the sprinkler head surface. The geometric properties of the edge contour, including area and angle, are obtained to provide a basis for regional segmentation.

5. A semiconductor shower head hole detection method as claimed in claim 4, characterized in that: The region segmentation uses a connected domain analysis method to segment the edge contour into independent hole regions, including binarizing the result of Canny edge detection, setting edge pixels to 1 and other pixels to 0, identifying independent edge regions in the image based on the connected domain analysis method, and marking and numbering each connected domain region; Opening and closing operations are used for each connected domain area to remove noise and refine the boundaries. Valid hole areas are screened out based on the area and shape characteristics of the area, and noise and irrelevant areas are excluded.

6. A semiconductor shower head hole detection method as claimed in claim 1, characterized in that: The area of ​​the hole region is calculated by using an edge tracking algorithm to obtain a set of coordinate points of the outer boundary of the hole {(x1, y1), (x2, y2), ..., (xn, yn)}, where xi represents the abscissa of the i-th coordinate point, yi represents the ordinate of the i-th coordinate point, and i = 1, 2, ..., n; Based on Green's formula, the area enclosed by the closed curve is calculated using the following formula: A = 1 / 2*∑(xi*yi+1-xi+1*yi); Where (xi,yi) represents the boundary coordinate point set {(x1,y1),(x2,y2),...,(xn,yn)}, i ranges from 1 to n-1, and the last point (xn,yn) is connected with the first point (x1,y1) to form a closed curve; n represents the nth natural number; initialize the freeman chain code list, freeman_code=[0], set the direction code of the first coordinate point to 0, indicating right; freeman is used to describe the relative direction of each point, and freeman_code is used to store the direction code of each point; Traverse the boundary coordinate point set and calculate the direction change between two adjacent coordinate points; Calculate the changes dx and dy in the x and y directions between the current coordinate point (xi, yi) and the previous coordinate point (xi-1, yi-1), and add the corresponding direction code to the freeman_code list according to the values ​​of dx and dy; If dx=0,dy=1, the direction is coded as 2 (upward), if dx=-1,dy=1, the direction is coded as 3 (upper left), if dx=-1,dy=0, the direction is coded as 4 (left), if dx=-1,dy=-1, the direction is coded as 5 (lower left), if dx=0,dy=-1, the direction is coded as 6 (downward), if dx=1,dy=-1, the direction is coded as 7 (lower right), if dx=1,dy=0, the direction is coded as 0 (right), if dx=1,dy=1, the direction is coded as 1 (upper right); Traverse the freeman_code list, calculate the absolute value of the difference between two adjacent codes, and take the modulo 2 to get the perimeter of the hole based on the following formula: P=sum(abs(freeman_code[i]-freeman_code[i-1])%2for iin range(1, len(freeman_code)); Where P represents the calculated circumference value, abs(freeman_code[i]-freeman_code[i-1]) represents calculating the absolute value of the difference between two adjacent freeman chain codes, %2 represents performing a modulo operation on the absolute value of the difference, and sum(...for iin range(1,len(freeman_code))) represents traversing the freeman_code list, starting from the second element and continuing to the last element of the list; The roundness value is calculated based on the area and perimeter of the hole: C = (4*π*A) / (P^2); Among them, C represents the roundness value, ranging from 0 to 1. When C is equal to 1, it indicates a perfect circle, and when C is less than 1, it indicates an incomplete circle; π represents the pi; A represents the area enclosed by the closed curve calculated based on Green's formula, and P represents the circumference of the hole.

7. A semiconductor shower head hole detection method as claimed in claim 1, characterized in that: The characteristic vector of the hole adopts the principal component analysis PCA method to reduce the dimension of the geometric features and texture features of the hole to obtain the characteristic vector of each hole, including: for n hole areas, the geometric features of the n holes, including area, perimeter and roundness, are combined into a characteristic matrix to construct an n*3 geometric feature matrix X_geo=[[A_1,P_1,C_1],[A_2,P_2,C_2],...,[A_n,P_n,C_n]], wherein A_1, A_2, A_n represent the area of ​​the hole; P_1, P_2, P_n represent the perimeter of the hole; C_1, C_2, C_n represent the roundness of the hole; and extract the texture feature matrix X_tex=[[f_1],[f_2],...,[A_n,P_n,C_n]] of each hole area based on the gray level co-occurrence matrix and the Gabor filter response. [f_n]], where f_1, [f_2], [f_n] represent the texture features of the holes; The geometric features and texture features are spliced ​​together to obtain the complete feature vector F_i = [X_geo, X_tex] of each hole.

8. A semiconductor shower head hole detection method as claimed in claim 1, characterized in that: The method of using historical samples to train a classifier to identify normal holes and defective holes includes: collecting historical sample data, including geometric feature matrices and texture feature matrices of normal holes and defective holes; Label the defect status of each sample, where 0 represents normal and 1 represents defect, forming a label vector y; The geometric feature matrix and the texture feature matrix are fused at the feature level to obtain the fused feature matrix. The train_test_split function is used to divide the data set into a training set and a test set. The training set is used to train the SVM classifier, and the test set is used to evaluate the classification performance. The support vector machine classifier is trained based on the C-SVC algorithm. The penalty parameter and gamma parameter are optimized using grid search and cross-validation. Gamma represents the degree of mutual influence between samples. The final SVM classifier clf is obtained by training with the optimized parameters. The feature vector F_i of each hole is input into the trained SVM classifier clf to obtain the defect probability of each hole. The preset probability threshold is used to determine whether each hole is a defect. If the defect probability is greater than or equal to the probability threshold, the hole is a defect. If the defect probability is less than the probability threshold, the hole is normal, and the position, size, and defect status data of each hole are recorded.

9. A semiconductor shower head hole detection device, comprising: at least one processor; as well as At least one memory including computer program code, wherein the at least one memory and the computer program code are configured to implement a semiconductor shower head hole detection method according to any one of claims 1 to 8 when executed by a processor.

10. A computer-readable storage medium, comprising: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the semiconductor shower head hole detection method according to any one of claims 1 to 8 is implemented.

Citation Information

Cited By

  • Visual inspection method and device for surface defects of rotary body micro-group hole part

    CN120870142A

  • Industrial product quality detection method and system based on machine vision

    CN121353263A