Printed Circuit Board Assembly Defect Detection
By converting two-dimensional grayscale images into color images and analyzing color fluctuations using convolutional neural networks, the accuracy and speed problems of PCBA detection in the prior art are solved, and fast and accurate defect recognition is achieved.
Patent Information
- Application Number
- JP2023500397
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-07-08
- Filing Date
- 2021-06-24
- Publication Date
- 2025-02-04
- Estimated Expiration
- 2041-06-24
AI Technical Summary
In the prior art, when detecting printed circuit board components (PCBAs), two-dimensional X-ray inspection has a high misjudgment rate, and the three-dimensional inspection takes too long to effectively identify all defects.
By capturing multiple two-dimensional grayscale images and converting them into color images, analyzing color fluctuations in color images is used to quickly identify defects and reduce the need for offline three-dimensional inspections.
It improves the accuracy and speed of defect detection, is suitable for manufacturing processes, reduces detection time and reduces the rate of misjudgment.
Smart Images

Figure 0007626568000001 
Figure 0007626568000002 
Figure 0007626568000003
Abstract
Description
[Background technology]
[0001] During the assembly of a printed circuit board, defects may form, especially head-in-pillow defects. As known to those skilled in the art, a head-in-pillow defect is an incomplete coalescence of a solder joint between a ball grid array (BGA), chip scale package (CSP), or package-on-package (PoP) and a printed solder paste. Therefore, inspection of a printed circuit board assembly (PCBA) is routinely performed by manufacturers to detect and identify defects in the PCBA. Traditionally, the inspection of a PCBA involves the use of an automated x-ray inspection machine (AXI). The AXI typically captures two-dimensional (2-d) grayscale images of the interconnects and analyzes them using a simple linear regression model. If a defect is identified using the linear regression model and the 2-d image, a second offline inspection is performed using a 3-d x-ray image to confirm the presence of the defect. In the second offline inspection, the PCBA is rotated to obtain a 3-d x-ray image. However, the second offline inspection process is relatively slow and can take many hours to perform. Moreover, the initial inspection using 2D X-ray images may have a high false positive rate and cause unnecessary delays in performing a second, offline inspection process, which may also be time-consuming, at least not suitable for manufacturing, and may not identify all defects. Summary of the Invention
[0002] Aspects of the disclosure may include methods, computer program products, and systems. One example of a method includes acquiring a plurality of two-dimensional grayscale images of a portion of a printed circuit board assembly. Each of the two-dimensional grayscale images corresponds to one of a plurality of parallel planes intersecting the portion of the printed circuit board assembly at a respective different location. The method further includes converting the plurality of two-dimensional grayscale images to a color image. Each of the plurality of two-dimensional grayscale images corresponds to a respective color channel of the color image and is used as an input thereto. The method further includes analyzing the color image to detect color variations indicative of defects, and outputting an alert indicative of the defects in response to detecting the color variations.
[0003] It being understood that the drawings depict example embodiments only and are therefore not limiting in scope, example embodiments will be described with additional specificity and detail through the use of the accompanying drawings in which: [Brief description of the drawings]
[0004] [Figure 1A] 1 is a block diagram illustrating an embodiment of an exemplary printed circuit board assembly defect detection system. [Figure 1B] 1 is a block diagram illustrating an embodiment of an exemplary printed circuit board assembly defect detection system. [Figure 1C] 1 is a block diagram illustrating an embodiment of an exemplary printed circuit board assembly defect detection system. [Diagram 2] FIG. 2 is a side view of an exemplary portion of a printed circuit board assembly. [Diagram 3] 1 shows a color image composited with an exemplary X-ray grayscale image. [Figure 4] FIG. 1 illustrates one embodiment of an exemplary neural network. [Diagram 5] FIG. 1 is a block diagram illustrating one embodiment of an exemplary computing device. [Figure 6]1 is a flow chart illustrating one embodiment of an exemplary method for detecting defects in a printed circuit board assembly. [Figure 7] 1 illustrates an embodiment of a cloud computing environment. [Figure 8] FIG. 2 illustrates one embodiment of an abstraction model layer.
[0005] According to common practice, the various illustrated features are not drawn to scale, but are drawn to emphasize particular features relevant to the exemplary embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] In the following detailed description, reference is made to the accompanying drawings which form a part hereof, in which specific exemplary embodiments are shown by way of illustration. It will be understood, however, that other embodiments may be utilized and that logical, mechanical, and electrical changes may be made. Furthermore, the methods illustrated in the drawings and specification should not be construed as limiting the order in which individual steps may be performed. Accordingly, the following detailed description is not to be taken in a limiting sense.
[0007] The embodiments described herein provide improvements in the detection of defects in printed circuit board assemblies (PCBAs). In particular, the embodiments described herein can improve both the amount of time required to inspect a PCBA and the accuracy of defect detection relative to conventional systems through analysis of color images generated from two-dimensional grayscale images, as described in more detail below. Thus, the embodiments described herein are well suited for use in a manufacturing setting and provide improvements over the current state of the art in PCBA inspection systems and technology.
[0008] FIG. 1A is a high-level block diagram illustrating one embodiment of an exemplary system 100 for detecting defects in PCBAs. The system 100 includes an x-ray machine 102 and a defect detection device 104 coupled to the x-ray machine 102 via a link 106. The link 106 can be implemented using wired, wireless, optical, or any other suitable medium or combination thereof for a communication channel or link. For example, in some embodiments, the defect detection device 104 is collocated with the x-ray machine 102 and coupled to the x-ray machine 102 using a cable or wireless link. In other embodiments, the defect detection device 104 is located remotely from the x-ray machine 102 and coupled to the x-ray machine 102 via a network. Thus, in such embodiments, the link 106 includes a network that can be implemented using any number of any suitable physical and / or logical communication topologies. The network can include one or more private or public computing networks. For example, the network can include a private network associated with the workload (e.g., a network having a firewall that blocks unauthorized external access). Alternatively or additionally, the network can comprise a public network, such as the Internet. The network may thus form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet, or a combination thereof. The network may include one or more servers, networks, or databases, and may transfer data between the x-ray device 102 and the defect detection device 104 using one or more communication protocols.
[0009] It will be understood that the embodiment depicted in FIG. 1A is provided by way of example only, and that the system 100 may be implemented differently in other embodiments. For example, in FIG. 1A, the defect detection device 104 is configured to implement the color image analyzer 108 and the color image generator 110, which will be described in more detail below. However, in other embodiments, such as depicted in FIG. 1B, the X-ray device 102 may be configured to implement the color image generator 110, and the defect detection device 104 implements the color image analyzer 108. Furthermore, in other embodiments, such as depicted in FIG. 1C, the X-ray device 102 is configured to implement both the color image generator 110 and the color image analyzer 108. Thus, in such embodiments, the X-ray device 102 and the defect detection device 104 are implemented as a single device sharing a common housing. That is, a single device may perform the functionality of the X-ray device 102 (e.g., capturing X-ray images) and the functionality of the defect detection device 104. However, it is understood that in such embodiments, although contained within a single device housing, separate components may be configured to perform each of the functionality described herein (e.g., capturing x-ray images, generating color images, and analyzing color images).
[0010] The x-ray device 102 is configured to capture multiple two-dimensional grayscale images of a portion of the PCBA, similar to two-dimensional grayscale images captured by a conventional automated x-ray inspection (AXI) machine. Each two-dimensional grayscale image corresponds to one of multiple parallel planes intersecting the portion of the PCBA at a respective different location. Accordingly, the two-dimensional grayscale images are also referred to herein as image slices. For example, FIG. 2 is a diagram illustrating multiple parallel planes intersecting a cross section of a portion of the PCBA. In particular, for purposes of illustration, FIG. 2 depicts a single solder interconnect of a ball grid array. However, it should be understood that each image slice may include multiple such interconnects.
[0011] The example of FIG. 2 includes a portion of ball grid array 201, solder balls 205, solder paste 207, pads 209, and printed circuit board 211. X-ray device 102 is configured to capture a respective two-dimensional grayscale image at each of planes 203-1, 203-2, and 203-N, where N is the total number of planes. In this example, there are three distinct parallel planes that intersect the PCBA at which X-ray device 102 captures images. However, in other embodiments, two or more planes can be used. In this example, the image at plane 203-1 is also referred to as a package slice image, the image at plane 203-2 is also referred to as a mid-ball slice image, and the image at plane 203-N is also referred to as a pad slice image. Example package slice images, mid-ball slice images, and pad slice images are depicted as images 320-1, 320-2, and 320-N, respectively.
[0012] In this example, the X-ray device 102 provides images 320-1, 320-2, and 320-N to the defect detection device 104 via the link 106. The defect detection device 104 is configured to implement a color image generator 110 and a color image analyzer 108. The color image generator 110 uses the images 320-1, 320-2, and 320-N to generate a color image. In particular, the color image generator 110 is configured to use one of each of the images 320-1, 320-2, and 320-N as inputs to respective color channels of the color image 324 shown in FIG. 3. For example, in the embodiment shown in FIG. 3, the image 320-1 is input to the red channel 322-1, the image 320-2 is input to the green channel 322-2, and the image 320-N is input to the blue channel 322-N. Thus, the color image 324 uses or implements a red-green-blue (RGB) color space in this example. That is, color image 324 is an RGB color image. However, while the examples discussed herein are described with respect to an RGB color image, it will be understood that other color spaces (also called color codes or color models) can be used in other embodiments. For example, in some embodiments, a cyan-magenta-yellow-black (CMYK) color space is used. In such embodiments, four grayscale images are acquired by x-ray device 102, and each grayscale image is used as a respective input for a corresponding color channel of the resulting CMYK color image.
[0013] The color image analyzer 108 is configured to identify defects, such as the exemplary defect 326, based on an analysis of the color image 324. In particular, the color image analyzer 108 implements machine learning techniques to identify defects in the color image 324. The machine learning techniques may include algorithms or models generated by performing supervised, unsupervised, or semi-supervised learning on a data set and then applying the generated algorithm or model to identify defects, such as the head-in-pillow defects described above. However, it is understood that the types of defects that may be identified through the techniques discussed herein are not limited to head-in-pillow defects. For example, the color image analyzer 108 may also be configured to analyze the color image 324 to identify one or more of first level packaging defects (e.g., C4 flip chip bumps), second level solder joint defects, void levels, solder print quality, general interconnect formation defects, underfill defects (e.g., interface peel / adhesion defects), and the like.
[0014] In some embodiments, the color image analyzer 108 is implemented using a convolutional neural network (CNN). Convolutional neural networks are a class of deep feed-forward artificial neural networks that have been successfully applied to the analysis of visual images. Convolutional neural networks are composed of artificial or neuron-like structures with learnable weights and biases. Each neuron receives several inputs and performs a dot product. The architecture of a convolutional neural network is usually composed of a stack of layers that operate to receive an input (e.g., a single vector) and transform it through a series of hidden layers. Each hidden layer is composed of a set of neurons, each neuron has learnable weights and biases, each neuron can be fully connected with all neurons in the previous layer, and neurons in a single layer can function independently without shared connections. The last layer is a fully connected output layer, which represents the class score in a classification setting. This can be any real value, or a real-valued target (e.g., in the case of regression). An example illustrating a possible architecture of a convolutional neural network that can be used in accordance with the exemplary embodiments described herein is shown in FIG. 4.
[0015] FIG. 4 illustrates an example neural network 400 that may be used to analyze generated color images of a printed circuit board assembly to detect defects, as described herein. The example neural network 400 may be further communicatively linked to one or more user devices or one or more other neural networks, or a combination thereof. In an embodiment, the neural network 400 may be a classifier type neural network. The neural network 400 may be part of a larger neural network (e.g., may be a subunit of a larger neural network). For example, the neural network 400 may be nested within a single larger neural network, may be connected to several other neural networks, or may be connected to several other neural networks as part of an overall collective neural network. It is understood that the neural network 400 is provided by way of example only, and that in other embodiments, the neural network may be implemented differently. Additionally, although convolutional neural networks are discussed herein, the embodiments described herein are not limited to convolutional neural networks and may be implemented using other types of neural networks, such as recurrent neural networks (RNNs), deep convolutional inverse graphic networks (DCIGNs), etc., to analyze the generated color images.
[0016] Inputs 401-1 through 401-m represent inputs (e.g., generated color images) to neural network 400. In this embodiment, inputs 401-1 through 401-m do not represent different inputs. Rather, 401-1 through 401-m represent the same input sent to each first layer neuron (neurons 402-1 through 402-m) of neural network 400. It will be further understood that in some embodiments, each input 401-1 through 401-m represents a subset of the same generated color image, as determined by an input window that slides along the generated color image. In some embodiments, the number of inputs 401-1 through 401-m (i.e., the number represented by m) may be equal to (and thus determined by) the number of first layer neurons in the network. In other embodiments, neural network 400 may incorporate one or more bias neurons in the first layer, in which case the number of inputs 401-1 through 401-m may be equal to the number of first layer neurons in the network minus the number of first layer bias neurons. In some embodiments, a single input (e.g., input 401-1) may be input to the neural network. In such embodiments, the first layer of the neural network may be composed of a single neuron and may propagate the input to neurons in the second layer.
[0017] In this example, neural network 400 is comprised of eight layers of neurons (referred to as layers 402, 404, 406, 408, 410, 412, 414, and 416, which correspond to nodes 402-1 through 402-m, nodes 404-1 through 404-n, nodes 406-1 through 406-y, nodes 408-1 through 408-x, nodes 410-1 through 410-z, 412-1 through 412-o, 414-1 through 414-p, and 416-1 through 416-t, respectively, as shown). In some embodiments, neural network 400 may have more or fewer layers. Each of these eight layers may be comprised of the same number of neurons as the other layers, more neurons than any other layer, or fewer neurons than any other layer, or more neurons than some layers, or fewer neurons than other layers. In this embodiment, layer 416 is treated as an output layer. Layer 416 outputs the probability that a target event occurs and in this example includes two neurons (neurons 416-1 and 416-t). In other embodiments, layer 416 may include more than one neuron or only one neuron. In this figure, no bias neuron is shown in neural network 400. However, in some embodiments, each layer of neural network 400 may include one or more bias neurons.
[0018] Each of the layers 402-416 may be configured with an activation function. The activation function utilized may be, for example, a Rectified Linear Unit (ReLU) function, a SoftPlus function, a Soft Step function, or others. Each layer may use the same activation function, but may transform the input or output of the layer independently or depending on the activation function. Each layer may be configured for a specific function. For example, in the example of FIG. 4, layer 402 is an input layer. Layer 404 is a convolution kernel layer configured to process input data. Layer 406 is a pooling layer configured to simplify the input data and remove unnecessary features.
[0019] Layer 408 may be a "dropout" layer, which may remove some neurons from processing to process the input of the previous layer (here, the input). This may help to average the data and prevent over-specialization of the neural network to one data set or several sets of similar data. Dropout layers may also help to prepare data for "dense" layers. For example, layer 410 may be a dense layer. In this example, the dense layer may process and reduce the dimensionality of the feature vectors (e.g., the vector parts of inputs 401-1 through 401-m) to remove data that does not contribute to the prediction. As a further example, layer 412 may be a "batch normalization" layer. Batch normalization may be used to normalize the output of a batch normalization layer to accelerate learning in the neural network. Layer 414 may be either a dropout layer, a hidden layer, or a batch normalization layer. Note that these layers are examples. In other embodiments, any of the layers 402-414 may be a dropout layer, a hidden layer, or a batch normalization layer, including embodiments having more or fewer layers than illustrated here.
[0020] For example, in some embodiments, the neural network 400 may include multiple convolution kernel layers, each followed by a pooling layer and a dropout layer at the beginning of the CNN. Additionally, at the end of such an embodiment of the CNN, there are two or more fully connected layers with one or more dropout layers in between. The dropout layers help prevent overfitting and can be combined with other techniques, such as adjusting the motion and learning rate during the training phase, to make the performance of the neural network more stable. In some embodiments, the neural network 400 may be trained using stochastic gradient descent on the generated training images.
[0021] Layer 416 is an output layer. In this embodiment, layer 416 includes two neurons 416-1 and 416-t that generate outputs 418 and 420. Outputs 418 and 420 represent complementary probabilities that an event of interest occurs or does not occur. That is, outputs 418 and 420 represent the probability that a defect is present in the generated image. For example, output 418 may represent the probability that a defect is present, and output 420 may represent the probability that a defect is not present. In some embodiments, outputs 418 and 420 may each be between 0.0 and 1.0 and may add up to 1.0. In such an embodiment, a probability of 1.0 may represent the absolute certainty of the prediction (e.g., if output 418 is 1.0, the predicted probability that a defect is present will be 100%, while if output 420 is 1.0, the predicted probability that a defect is not present will be 100%). Although two output neurons 416-1 and 416-t are depicted in this example, it will be understood that layer 416 may include other numbers of output neurons in other embodiments. For example, in some embodiments, a single output neuron 416 is used to output one of outputs 418 or 420. Additionally, in some embodiments, the output of output layer 416 is used by color image analyzer 108 to annotate input generated color image 324 with indications of detected defects 326.
[0022] By generating a color image from the grayscale image slices taken by the x-ray device 102, the color image contains color variations that can be detected by the color image analyzer 108 using a neural network such as a CNN. The CNN can be trained to correlate the detected color variations with defects in the PCBA. Thus, this novel technique for analyzing PCBAs provides a relatively quick pass / fail decision for the PCBA without the need for a separate offline inspection. For example, the embodiments described herein can analyze an image of the PCBA to make a decision measured in seconds, as opposed to an hour or more for conventional techniques involving separate offline inspection. Furthermore, the techniques described herein can achieve sufficient accuracy or percentage rates for use in manufacturing processes. Thus, the techniques and systems described herein can be deployed in manufacturing processes to improve detection speed and accuracy.
[0023] Figure 5 is a block diagram illustrating one embodiment of an exemplary computing device 500. The computing device 500 may be used to implement the defect detection device 104 or the x-ray device 102, or both. The components of the computing device 500 shown in Figure 5 include one or more processors 502, memory 504, a storage interface 516, an input / output ("I / O") device interface 512, and a network interface 518, all of which are directly or indirectly coupled for communication between the components via a memory bus 506, an I / O bus 508, a bus interface unit ("IF") 509, and an I / O bus interface unit 510.
[0024] In the embodiment shown in FIG. 5, the computing device 500 includes one or more general-purpose programmable central processing units (CPUs) 502A and 502B, generally referred to herein as processors 502. In some embodiments, the computing device 500 includes multiple processors. However, in other embodiments, the computing device 500 is a single CPU system. Each processor 502 executes instructions stored in memory 504. Furthermore, while the embodiments are described with respect to a central processing unit chip, it will be understood that the embodiments described herein may also be applied to computing systems that utilize digital signal processor (DSP) or graphic processing unit (GPU) chips, or both, in addition to or instead of a CPU chip. Furthermore, in some embodiments, the processor 502 may be implemented using a neural processing unit (NPU) chip, such as the IBM TrueNorth chip. However, the use of a neural processing unit to implement a neural network is not required. Thus, references herein to a processor or processing unit may refer to a CPU chip, a GPU chip, a DSP, or an NPU chip, or a combination thereof.
[0025] In some embodiments, the memory 504 includes a random access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs. For example, the memory 504 stores color image generator instructions 540 and color image analyzer instructions 542. When executed by a processor, such as the processor 502, the color image generator instructions 540 cause the processor 502 to perform the functions and calculations described above with respect to generating a color image by inputting grayscale X-ray image slices into respective color channels of the resulting color image. Furthermore, when executed by a processor, such as the processor 502, the color image analyzer instructions 542 cause the processor 502 to perform image analysis, as described above, on the generated color image. Thus, the color image analyzer instructions 542 can cause the computing device 500 to implement at least a portion of a convolutional neural network configured to analyze a color image.
[0026] Further, the color image analyzer instructions 542 can be configured to cause the processor 502 to output commands to the display system 524 to display the analysis results, such as annotated color images or other audio or visual output, to show identified defects in the printed circuit board assembly on the display device 526, as described above.
[0027] In some embodiments, memory 504 represents the entire virtual memory of computing device 500 and may also include virtual memory of other computing devices coupled to computing device 500 via a network. In some embodiments, memory 504 is a single monolithic entity, while in other embodiments, memory 504 includes a hierarchy of caches and other memory devices. For example, memory 504 may exist in multiple levels of caches, which may be further divided by function, such that one cache holds instructions and another cache holds non-instruction data used by the processor. Memory 504 may be further distributed and associated with different processing units or sets of processing units, for example, as known in any of a variety of so-called non-uniform memory access (NUMA) computer architectures. Thus, while color image generator instructions 540 and color image analyzer instructions 542 are stored on the same memory 504 in the example shown in FIG. 5 for illustrative purposes, it will be understood that other embodiments may be implemented differently. For example, color image generator instructions 540 or color image analyzer instructions 542, or a combination thereof, may be distributed across multiple physical media.
[0028] The computing device 500 of the embodiment shown in FIG. 5 also includes a bus interface unit 509 for handling communication between the processor 502, the memory 504, the display system 524, and an I / O bus interface unit 510. The I / O bus interface unit 510 is coupled to an I / O bus 508 for transferring data to and from various I / O units. In particular, the I / O bus interface unit 510 can communicate with a number of I / O interface units 512, 516, and 518, also known as I / O processors (IOPs) or I / O adapters (IOAs), via the I / O bus 508. The display system 524 includes a display controller, a display memory, or both. The display controller can provide video, still images, audio, or a combination thereof to the display device 526. The display memory may be a dedicated memory for buffering video data. The display system 524 is coupled to a display device 526. In some embodiments, the display device 526 also includes one or more speakers for rendering sound. Alternatively, one or more speakers for rendering audio may be coupled to the I / O interface unit. In alternative embodiments, one or more functions provided by the display system 524 are incorporated in an integrated circuit that also includes the processor 502. Additionally, in some embodiments, one or more functions provided by the bus interface unit 509 are incorporated in an integrated circuit that also includes the processor 502.
[0029] The I / O interface unit supports communication with various storage and I / O devices. For example, the I / O device interface unit 512 supports attachment of one or more user I / O devices 520, which may include user output devices and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device). A user can manipulate the user input devices 520 using a user interface to provide input data and commands to the user I / O devices 520. Additionally, a user can receive output data via the user output devices. For example, a user interface can be presented via the user I / O devices 520, such as displayed on a display device or played through speakers.
[0030] The storage interface 516 supports attachment of one or more storage devices 528, such as flash memory. The contents of the memory 504, or any portion thereof, can be stored in and retrieved from the storage device 528 as needed. The network interface 518 provides one or more communication paths from the computing device 500 to other digital and computing devices. For example, in some embodiments, the generated color image can be transmitted via the network interface 518 to another system configured to perform color image analysis. Furthermore, in some embodiments, the network interface 518 can be configured to receive a two-dimensional grayscale image from an x-ray device. Alternatively, the two-dimensional grayscale image, the generated color image, or an analysis alert or result, or a combination thereof, can be communicated via a different interface, such as the I / O device interface 512, rather than the network interface 518.
[0031] 5 depicts a particular bus structure providing direct communication paths between processor 502, memory 504, bus interface unit 509, display system 524, and I / O bus interface unit 510, in alternative embodiments, computer device 500 includes different buses or communication paths that may be arranged in any of a variety of configurations, such as hierarchical, star, or web configurations, point-to-point links in multiple hierarchical buses, parallel and redundant paths, or other suitable types of configurations. Additionally, while I / O bus interface unit 510 and I / O bus 508 are depicted as single respective units, computer device 500 may include multiple I / O bus interface units 510 or multiple I / O buses 508, or combinations thereof, in other embodiments. Although multiple I / O interface units are depicted isolating I / O bus 508 from the various communication paths operative to the various I / O devices, in other embodiments some or all of the I / O devices are directly connected to one or more system I / O buses.
[0032] As mentioned above, in some embodiments, one or more of the components and data illustrated in Figure 5 include instructions or statements that execute on the processor 502 or that are interpreted by instructions or statements that execute on the processor 502 to perform functions as described herein. In other embodiments, one or more of the components illustrated in Figure 5 are implemented in hardware via semiconductor devices, chips, logic gates, circuits, circuit cards, or other physical hardware devices or combinations thereof in place of or in addition to a processor-based system. Additionally, in other embodiments, some of the components illustrated in Figure 5 can be omitted or other components or combinations thereof can be included.
[0033] 6 is a flow chart illustrating an embodiment of an exemplary method 600 for detecting defects in a printed circuit board assembly. Method 600 may be performed by an x-ray device, such as x-ray device 102, or a defect detection device, such as defect detection device 104, or a combination thereof. Thus, one or more of the operations described with respect to method 600 may be performed by one of the x-ray device or defect detection devices. In some embodiments, portions of method 600 are performed by an x-ray device and portions of method 600 are performed by a separate defect detection device. In other embodiments, all operations of method 600 are performed by a single device. Method 600 may be performed by a processor, such as processor 502 of computing device 500, executing instructions, such as color image generator instructions 540 or color image analyzer instructions 542, or a combination thereof.
[0034] At 602, a plurality of two-dimensional grayscale images of a portion of the printed circuit board assembly are acquired. Each of the two-dimensional grayscale images corresponds to one of a plurality of parallel planes that intersect the portion of the printed circuit board assembly at a respective different location, as described above. In some embodiments, acquiring the plurality of two-dimensional grayscale images includes receiving the plurality of two-dimensional grayscale images from an x-ray device configured to capture an x-ray image of the printed circuit board assembly. In other embodiments, acquiring the plurality of two-dimensional grayscale images includes capturing the two-dimensional grayscale images with an x-ray device. Suitable x-ray devices for capturing two-dimensional image slices of the printed circuit board assembly are known to those skilled in the art.
[0035] At 604, the plurality of two-dimensional grayscale images are converted to a color image. In particular, each of the two-dimensional grayscale images is applied to or input to a respective color channel of the color image. For example, in some embodiments, the color image is a red-green-blue (RGB) color image. Thus, in such embodiments, the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of the red channel, blue channel, or green channel of the RGB color image.
[0036] However, as noted above, the embodiments described herein are not limited to using images in an RGB color space. For example, in other embodiments, the color image is a cyan-yellow-magenta-black (CMYK) color image. Thus, in such embodiments, the plurality of two-dimensional grayscale images includes four two-dimensional grayscale images, each of the four two-dimensional grayscale images corresponding to a respective one of the cyan, yellow, magenta, and black channels of the CMYK color image. As noted above, in some embodiments, the x-ray device is further configured to generate a color image. In other embodiments, the x-ray device provides the plurality of two-dimensional grayscale images to a separate device that generates a color image from the two-dimensional grayscale images.
[0037] At 606, the color image is analyzed to detect color variations indicative of defects. For example, in some embodiments, the color variations may indicate defects in solder ball connections of a ball grid array. However, the embodiments described herein are not limited to defects in solder ball connections of a ball grid array. For example, the color image may be analyzed to identify defects in connections of smaller chip scale packages. Furthermore, defects that may be identified by detecting color variations in the color image may include one or more of head-in-pillow defects, first level packaging defects, second level solder joint defects, void defects, solder print quality, underfill defects, and the like. Furthermore, as described above, the analysis may be performed by a neural network, such as a convolutional neural network, configured to detect color variations indicative of defects. At 607, it is determined whether a defect has been identified based on the analysis of the color image.
[0038] At 608, in response to identifying the defects based on the detection of the color variation, an alert is output indicating the identified defects. In some embodiments, the alert may include an annotated color image indicating the location of the defects corresponding to the location of the identified color variation. In other embodiments, the alert may be an audible alert or other displayed alert. Further, in some embodiments, the alert may include a recommendation for a three-dimensional x-ray analysis. However, such a recommendation for a three-dimensional x-ray analysis is not required. Further, in some embodiments, the alert is provided upon detection of a single defect even if analysis of the entire color image has not been completed. In other embodiments, the alert is output after analysis of the entire image is completed. Thus, in some such embodiments, the alert may include a report of the total number of identified / detected defects.
[0039] If no defects are identified at 607, a notification is output indicating that no defects were identified at 610. For example, in some embodiments, the notification indicates that the printed circuit board assembly can proceed to the next stage in the manufacturing process.
[0040] The present invention may be a system, method or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer readable storage medium having stored thereon computer readable program instructions for causing a processor to carry out aspects of the present invention.
[0041] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. The computer-readable storage medium may be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROM, DVD, memory sticks, floppy disks, punch cards or ridges in grooves or other mechanically encoded devices that record instructions, and suitable combinations thereof. As used herein, a computer-readable storage device should not be construed as a transitory signal per se, such as an electric signal transmitted over a wire, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a wave guide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or a radio wave.
[0042] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer device / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computer device / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computer device / processing device for storage.
[0043] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language and similar programming languages. The computer readable program instructions may be executed entirely on the user's computer as a stand-alone software package, or partially on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuitry, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer readable program instructions by utilizing state information of the computer readable program instructions to customize the electronic circuitry for carrying out aspects of the present invention.
[0044] Embodiments of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present invention. Each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer readable program instructions.
[0045] The computer readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executed by the processor of such computer or other programmable data processing apparatus create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. The computer readable program instructions may further be stored on a computer readable storage medium capable of instructing a computer, programmable data processing apparatus or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium having instructions stored thereon constitutes an article of manufacture including instructions for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0046] Also, computer-readable program instructions may be loaded into a computer, other programmable device, or other apparatus and a sequence of operational steps executed on the computer, other programmable device, or other apparatus to generate a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other apparatus perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.
[0047] The flowcharts and block diagrams in the drawings of the present disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specific logical function. In some other implementations, the functions shown in the blocks may be executed in a different order from the order shown in the figures. For example, two blocks shown in succession may actually be executed substantially simultaneously, or in a partially or fully overlapping manner in time, or in reverse order depending on the functions involved. It should be noted that each block in the block diagram and / or flowchart, and combinations of multiple blocks in the block diagram and / or flowchart, may be executed by a dedicated hardware-based system that performs a specific function or operation, or executes a combination of dedicated hardware and computer instructions.
[0048] Additionally, as discussed above, the functionality of the defect detection device can be implemented remotely from the x-ray device, such as in a cloud computing environment. In some such embodiments, the system can learn and refine the model using images collected from multiple different PCBA manufacturers. However, while this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.
[0049] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0050] The characteristics are as follows:
[0051] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider.
[0052] Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin- and thick-client platforms (e.g., cell phones, laptops, PDAs).
[0053] Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Different physical and virtual resources are dynamically allocated and reallocated depending on demand. Consumers generally have no control or knowledge of the exact location of the resources provided to them, so there is a sense of location independence, although consumers may be able to determine location at a higher level of abstraction (e.g. country, state, data center).
[0054] Rapid elasticity: Computing capacity can be provisioned quickly and elastically, in some cases automatically, to scale out immediately and to be released quickly to scale in immediately. To the consumer, the computing capacity available for provisioning often appears unlimited and can be purchased at any time and in any quantity.
[0055] Metered Services: Cloud systems leverage metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services utilized.
[0056] The service model is as follows:
[0057] Software as a Service (SaaS): The functionality offered to the consumer is the availability of a provider's applications running on a cloud infrastructure that can be accessed from a variety of client devices through a thin-client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application functions, except for limited user-specific application configuration settings.
[0058] Platform as a Service (PaaS): The capability offered to the consumer is to deploy applications that the consumer creates or acquires using programming languages and tools supported by the provider onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of the hosting environment.
[0059] Infrastructure as a Service (IaaS): The facility offered to the consumer is the provision of processors, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, and deployed applications, and in some cases has partial control over some network components (e.g., the host firewall).
[0060] The deployment model is as follows:
[0061] Private Cloud: The cloud infrastructure is dedicated to a specific organization. It can be managed by that organization or a third party and can exist on-premise or off-premise.
[0062] Community Cloud: The cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance). The cloud infrastructure can be managed by the organizations or a third party and can exist on-premise or off-premise.
[0063] Public cloud: The cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0064] Hybrid Cloud: This cloud infrastructure combines two or more cloud models (private, community or public), each of which retains its inherent semantics but is bound together by standards or specific technologies that enable data and application portability (e.g. cloud bursting for load balancing between clouds).
[0065] A cloud computing environment is a service-oriented environment with an emphasis on statelessness, low coupling, modularity and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0066] An exemplary cloud computing environment 50 is shown in FIG. 7. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, to which local computing devices used by cloud consumers (e.g., PDA or cell phone 54A, desktop computer 54B, laptop computer 54C, or automobile computer system 54N, or combinations thereof, etc.) can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as, for example, a private, community, public, or hybrid cloud, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platform, or software, or combinations thereof, as a service, for which the cloud consumer does not need to maintain resources on the local computing device. It should be understood that the types of computing devices 54A-N shown in FIG. 7 are merely exemplary, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of electronic device over any type of network or network addressable connection (e.g., using a web browser), or both.
[0067] A set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 7) is now illustrated in FIG. 8. It should be understood in advance that the components, layers, and functions illustrated in FIG. 8 are merely exemplary, and the embodiments of the present invention are not limited thereto. As illustrated, the following layers and corresponding functions are provided:
[0068] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, reduced instruction set computer (RISC) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0069] The virtualization layer 70 provides an abstraction layer from which the following virtual entities can be provided, for example: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0070] By way of example, the management layer 80 may provide the following functions: Resource provisioning 81 allows dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 allows cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. By way of example, these resources may include application software licenses. Security allows for identification and verification of cloud consumers and tasks as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 allows for allocation and management of cloud computing resources such that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 allows for pre-arranging and procurement of anticipated future needs for cloud computing resources according to SLAs.
[0071] The workload layer 90 provides examples of functionality available to a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and PCBA defect detection using color images generated from 2D grayscale x-ray images 96.
[0072] <Example of embodiment> Example 1 includes a method. The method includes acquiring a plurality of two-dimensional grayscale images of a portion of a printed circuit board assembly, each of the two-dimensional grayscale images corresponding to one of a plurality of parallel planes intersecting the portion of the printed circuit board assembly at a respective different location. The method further includes converting the plurality of two-dimensional grayscale images into a color image, each of the plurality of two-dimensional grayscale images corresponding to a respective color channel of the color image and used as an input thereto. The method further includes analyzing the color images to detect color variations indicative of defects, and outputting an alert indicative of the defects in response to detecting the color variations.
[0073] Example 2 includes the method of Example 1, wherein the color image is a Red-Green-Blue (RGB) color image, and the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of a red channel, a blue channel, or a green channel of the RGB color image.
[0074] Example 3 includes the method of any of Examples 1-2, wherein analyzing the color image to detect color variations indicative of defects includes analyzing the color image to detect defects in solder ball connections of a ball grid array.
[0075] Example 4 includes the method of any of examples 1 or 3, including: the color image is a cyan-yellow-magenta-black (CMYK) color image; and the plurality of two-dimensional grayscale images includes four two-dimensional grayscale images, each of the four two-dimensional grayscale images corresponding to a respective one of the cyan channel, the yellow channel, the magenta channel, and the black channel of the CMYK color image.
[0076] Example 5 includes the method of any of Examples 1-4, wherein acquiring the plurality of two-dimensional grayscale images includes receiving the plurality of two-dimensional grayscale images from a device configured to capture an x-ray image of the printed circuit board assembly.
[0077] Example 6 includes the method of any of Examples 1-4, wherein capturing the plurality of two-dimensional grayscale images includes capturing the plurality of two-dimensional grayscale images with an x-ray device configured to capture an x-ray image of the printed circuit board, and converting the plurality of two-dimensional grayscale images to a color image includes converting the plurality of two-dimensional images to a color image with an x-ray device configured to capture the plurality of two-dimensional grayscale images.
[0078] Example 7 includes the method of any of examples 1-6, wherein analyzing the color image includes processing the color image with a convolutional neural network to detect color variations indicative of defects.
[0079] Example 8 includes an apparatus including an interface communicatively coupled to an x-ray device configured to capture two-dimensional grayscale images of a printed circuit board assembly, and a processor communicatively coupled to the interface. The processor is configured to analyze a color image generated from a plurality of two-dimensional grayscale images captured by the x-ray device to identify color variations indicative of defects in the printed circuit board assembly. The color image is generated by inputting each of the plurality of two-dimensional grayscale images into a respective color channel of the color image. The processor is further configured to output an alert indicative of the defect in response to identifying the color variations.
[0080] Example 9 includes the apparatus of example 8, wherein the processor is further configured to generate a color image from the plurality of two-dimensional grayscale images.
[0081] Example 10 includes the apparatus of example 8, wherein the interface is configured to receive a color image from an X-ray device.
[0082] Example 11 includes the apparatus of any of Examples 8-10, wherein the processor is further configured to analyze the color image to detect color variations indicative of defects in the solder ball connections of the ball grid array.
[0083] Example 12 includes the device of any of Examples 8-11, wherein the color image is a red-green-blue (RGB) color image, and the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of the red channel, the blue channel, or the green channel of the RGB color image.
[0084] Example 13 includes the apparatus of any of examples 8-12, wherein the processor is configured to implement a convolutional neural network configured to analyze the color image to identify color variations indicative of defects.
[0085] Example 14 includes a system including an x-ray device configured to capture a plurality of two-dimensional grayscale images of a printed circuit board assembly, each of the two-dimensional grayscale images corresponding to one of a plurality of parallel planes intersecting a portion of the printed circuit board assembly at a respective different location, and further includes a defect detection device including a processor configured to analyze a color image generated from the plurality of two-dimensional grayscale images captured by the x-ray device to identify color variations indicative of defects in the printed circuit board assembly, each of the plurality of two-dimensional grayscale images corresponding to a respective color channel of the color image, and output an alert indicative of the defect in response to identifying the color variations.
[0086] Example 15 includes the system of example 14, wherein the x-ray device further includes a processor configured to generate a color image by inputting each of the plurality of two-dimensional grayscale images into a corresponding respective color channel of a color image.
[0087] Example 16 includes the system of any of Examples 14-15, wherein the color image is a red-green-blue (RGB) color image, and the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of the red channel, the blue channel, or the green channel of the RGB color image.
[0088] Example 17 includes the system of any of Examples 14-16, wherein the processor in the defect detection device is further configured to analyze the color image to detect color variations indicative of defects in the solder ball connections of the ball grid array.
[0089] Example 18 includes the system of any of Examples 14-17, wherein the processor in the defect detection device is configured to implement a convolutional neural network configured to analyze the color images to identify color variations indicative of defects.
[0090] Example 19 includes the system of any of Examples 14-18, wherein the x-ray device and the defect detection device share a common housing.
[0091] Example 20 includes a computer program product including a computer readable storage medium having a computer readable program stored thereon that, when executed by a processor, causes the processor to generate a color image from a plurality of two-dimensional grayscale images by inputting each of the plurality of two-dimensional grayscale images into a corresponding color channel of a color image, where each two-dimensional grayscale image corresponds to one of a plurality of parallel planes that intersect a portion of the printed circuit board assembly at a respective different location; analyze the color image to detect color variations indicative of defects in the printed circuit board assembly; and, in response to detecting the color variations, output an alert indicative of the defects.
[0092] Example 21 includes the computer program product of example 20, wherein the computer readable program is further configured to cause the processor to detect color variations indicative of defects in solder ball connections of the ball grid array.
[0093] Example 22 includes the computer program product of any of Examples 20-21, wherein the computer readable program implements a convolutional neural network configured to analyze the color image to identify color variations indicative of defects.
[0094] Example 23 includes the computer program product of any of Examples 20-22, wherein the color image is a red-green-blue (RGB) color image, and the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of the red channel, the blue channel, or the green channel of the RGB color image.
[0095] Example 24 includes the computer product of any of Examples 20-23, wherein the computer readable program is further configured to cause the processor to output a warning including an annotated color image indicating the location of the defect.
[0096] Example 25 includes the computer program product of any of Examples 20-24, wherein the color variation indicates one of head-in-pillow defects, first level packaging defects, second level solder joint defects, void defects, solder print quality, and underfill defects.
[0097] Although specific embodiments have been illustrated and described herein, it will be understood by those skilled in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. It is therefore manifestly intended that this invention be limited only by the claims and the equivalents thereof.
Claims
1. acquiring a plurality of two-dimensional grayscale images of a portion of a printed circuit board assembly, each two-dimensional grayscale image corresponding to one of a plurality of parallel planes intersecting the portion of the printed circuit board assembly at a respective different location; converting the plurality of two-dimensional grayscale images into a color image, each of the plurality of two-dimensional grayscale images corresponding to a respective color channel of the color image being used as an input thereto; analyzing the color image to detect color variations indicative of defects; and in response to detecting the color variation, outputting a warning indicative of the defect.
2. the color image is a red-green-blue (RGB) color image, 2. The method of claim 1 , wherein the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of a red channel, a blue channel, or a green channel of the RGB color image.
3. 2. The method of claim 1, wherein analyzing the color image to detect color variations indicative of defects comprises analyzing the color image to detect defects in solder ball connections of a ball grid array.
4. the color image is a cyan, yellow, magenta, and black (CMYK) color image, 2. The method of claim 1 , wherein the plurality of two-dimensional grayscale images includes four two-dimensional grayscale images, each of the four two-dimensional grayscale images corresponding to a respective one of a cyan channel, a yellow channel, a magenta channel, and a black channel of the CMYK color image.
5. 10. The method of claim 1, wherein acquiring the plurality of two-dimensional grayscale images comprises receiving the plurality of two-dimensional grayscale images from a device configured to capture an x-ray image of the printed circuit board assembly.
6. acquiring the plurality of two-dimensional grayscale images includes capturing the plurality of two-dimensional grayscale images with an x-ray device configured to capture x-ray images of the printed circuit board assembly; 2. The method of claim 1, wherein converting the plurality of two-dimensional grayscale images to the color image comprises converting the plurality of two-dimensional grayscale images to the color image with the x-ray device configured to capture the plurality of two-dimensional grayscale images.
7. 2. The method of claim 1, wherein analyzing the color image comprises processing the color image with a convolutional neural network to detect the color variations indicative of defects.
8. an interface communicatively coupled to an x-ray device configured to capture a two-dimensional grayscale image of the printed circuit board assembly; a processor communicatively coupled to the interface, the processor comprising: analyzing a color image generated from a plurality of two-dimensional grayscale images captured by the x-ray device to identify color variations indicative of defects in the printed circuit board assembly, the color image being generated by inputting each of the plurality of two-dimensional grayscale images into a respective color channel of the color image; In response to identifying the color variation, outputting a warning indicative of the defect; and An apparatus configured to:
9. The apparatus of claim 8 , wherein the processor is further configured to generate the color image from the plurality of two-dimensional grayscale images.
10. The apparatus of claim 8 , wherein the interface is configured to receive the color image from the X-ray device.
11. 9. The apparatus of claim 8, wherein the processor is further configured to analyze the color image to detect color variations indicative of defects in ball grid array solder ball connections.
12. The color image is a Red Green Blue (RGB) color image.
9. The apparatus of claim 8, wherein the plurality of two-dimensional grayscale images comprises three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of a red channel, a blue channel, or a green channel of the RGB color image.
13. 10. The apparatus of claim 8, wherein the processor is configured to implement a convolutional neural network configured to analyze the color image to identify the color variations indicative of defects.
14. an x-ray device configured to capture a plurality of two-dimensional grayscale images of the printed circuit board assembly, each of the two-dimensional grayscale images corresponding to one of a plurality of parallel planes intersecting a portion of the printed circuit board assembly at a respective different location; and a defect detection apparatus including a processor, the processor comprising: analyzing a color image generated from a plurality of two-dimensional grayscale images captured by the x-ray device to identify color variations indicative of defects in the printed circuit board assembly, each of the plurality of two-dimensional grayscale images corresponding to a respective color channel of the color image; In response to identifying the color variation, outputting a warning indicative of the defect; and A system configured to:
15. 15. The system of claim 14, wherein the x-ray device further comprises a processor configured to generate the color image by inputting each of the plurality of two-dimensional grayscale images into a corresponding respective color channel of the color image.
16. the color image is a red-green-blue (RGB) color image, 15. The system of claim 14, wherein the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of a red channel, a blue channel, or a green channel of the RGB color image.
17. 15. The system of claim 14, wherein the processor in the defect detection device is further configured to analyze the color image to detect color variations indicative of defects in ball grid array solder ball connections.
18. 15. The system of claim 14, wherein the processor in the defect detection device is configured to implement a convolutional neural network configured to analyze the color image to identify the color variations indicative of defects.
19. The system of claim 14 , wherein the x-ray device and the defect detection device share a common housing.
20. A computer-readable storage medium having a computer-readable program stored thereon, the computer-readable program, when executed by a processor, causing the processor to: generating a color image from a plurality of two-dimensional grayscale images by inputting each of the two-dimensional grayscale images into a corresponding color channel of a color image, each two-dimensional grayscale image corresponding to one of a plurality of parallel planes that intersect a portion of a printed circuit board assembly at a different location; analyzing the color image to detect color variations indicative of defects in the printed circuit board assembly; In response to detecting the color variation, outputting a warning indicative of the defect; A computer-readable storage medium for causing a computer to perform the above steps.
21. 21. The computer readable storage medium of claim 20, wherein the computer readable program is further configured to cause the processor to detect color variations indicative of defects in ball grid array solder ball connections.
22. 21. The computer readable storage medium of claim 20, wherein the computer readable program implements a convolutional neural network configured to analyze the color image to identify the color variations indicative of defects.
23. the color image is a red-green-blue (RGB) color image, 21. The computer-readable storage medium of claim 20, wherein the plurality of two-dimensional grayscale images includes three two-dimensional grayscale images, each of the three two-dimensional grayscale images corresponding to a respective one of a red channel, a blue channel, or a green channel of the RGB color image.
24. 21. The computer readable storage medium of claim 20, wherein the computer readable program is further configured to cause the processor to output a warning comprising an annotated color image indicating a location of the defect.
25. 21. The computer-readable storage medium of claim 20, wherein the color variation is indicative of one of a head-in-pillow defect, a first level packaging defect, a second level solder joint defect, a void defect, a solder print quality, and an underfill defect.
Citation Information
Patent Citations
Method and apparatus for inspecting soldering
JP1991068845A
X-ray inspection device, x-ray inspection method, x-ray inspection program, and x-ray inspection system
JP2011191085A
System and methods for the detection of irregularities in objects based on an image of the object
US7903864B1