Changes

Jump to: navigation, search
m
no edit summary
|-
|1.0.0
|March June 2021
|First public release
|}
==Building the dataset==
===Defects generation and acquisitionGenerating real defects===Of course, defect detection on assembled PCB's is a matter that is strictly related to the core business of DAVE Embedded Systems. AlsoAs manufacturer of electronic boards, PCB assembling is an industrial process under the full control of the company itself. This For the case under consideration, this was a great help for creating a because it allowed the creation of an initial dataset of defected boardsin a controlled fashion. As detailed in the rest of the section, our DAVE Embedded Systems' assembly line was configured purposely to generate deliberately a relatively high rate of defects in a controlled fashion on a limited numbers of boardsdevoted for this purpose.
For this first attemptSpecifically, 5 panels were prepared, each one containing 4 PCBs of the same type and with same template project i.e. the same bill of materials (BOM) for the [https://www.dave.eu/en/solutions/system-on-modules/diva-som ''DIVA SoM'']. In this case, it was decided to mount components only on ''top'' side of the PCB. Furthermore, in order to reduce complexity and simplify the problem for this test, anomalies generation is restricted to 2 contacts SMD passive components i.e. resistors, capacitors, and inductors. The table below reports all plausible anomalies that can be generated by editing the standard template project containing all the positions of the components for the pick-and-place (P&P) machine, decreasing or increasing the quantity of solder deposited by the screen printer on the panel or that can be generated directly by the operator.
{| class="wikitable" style="text-align:center; margin: auto;"
It uses two NNs, specifically two CNNs in the most recent approaches, which are locked in a competition game:
* A generator, which is fed a vector of random numbers i.e. the latent vector and outputs synthesized data i.e. the generated images.
* A discriminator, which is fed a batch of data, in this case a batch of images, and outputs a prediction of it being from the training set or from the generated set, basically learning a binary classification problem. In other words, the generator creates fake data and the discriminator attempts to distinguish these fakes samples from the real ones.
It must be specified that GANs in practice are quite complex and training can be a very challenging task making the generation from scratch of high resolution quality images a non trivial problem. This indeed severely limits the usefulness and the applicability of classic GANs architectures for many kind of practical applications. Fortunately, this issue can be addressed by employing a particular typology of networks developed by NVIDIA and named as proGANs which are characterized by a progressive growing architecture.
This approach leads to a series of advantages:
*The incremental learning process greatly stabilizes training and reduces the chance of mode collapse, since the networks gradually learn a much simple piece of the overall problem.
*The low-to-high resolution trend forces the progressively grown networks to focus on high-level structure first and fill in the details later, resulting in an improvement of the quality of the final images.
*Increasing the network size gradually is more computationally efficient w.r.t. the classic approach of using all the layers from the start (fewer layers are faster to train because there are fewer parameters).
==Results validation==
In the two figures groups of images below there are shown , some examples taken from the generated sets of ''missing'' and ''tombstoning'' classesare shown. For each imagegroup, from left to right, there are displayed samples you can see:* Samples of 512×512 and 256×256 resolution ''full'' typology and further .* Further on the right, from top to bottom, 256×256 ''upper'' and ''lower'' soldering region typology.
{| style="background:transparent; color:black" border="0" align="center" cellpadding="10px" cellspacing="0px" height="550" valign="bottom"
|}
The synthesized images can be effectively used to train a an SMC defects classification model for a future ML-based PCB-AVI application, only if they have a similar probability distribution function with respect to the original ones. In particular, it is interesting to verify if there is a clear separation in the data. To this end, it is possible to employ the t-distributed stochastic neighbor embedding (t-SNE), which is a ML algorithm for visualization based on Stochastic Neighbor Embedding (SNE) algorithm. Since the way this algorithm operates is computationally expensive, it is highly recommended to use another dimensionality reduction technique before applying t-SNE algorithm, in order to reduce the number of dimensions to a reasonable amount. For this purpose, it is possible to employ an autoencoder (AE).
{| style="background:transparent; color:black" border="0" align="center" cellpadding="10px" cellspacing="0px" height="550" valign="bottom"
|}
The two soldering regions are the most important parts concerning the generated images and, by using the methodology proposed in the previous section, they can be easily extracted and evaluated as well with the t-SNE algorithmby using the methodology proposed in the previous section. Since As the two of them soldering regions associated with the same image are also correlated for the same image, clearly even strongly correlated for ''tombstoning'' class samples, they must be concurrently compressed by the AE. Therefore, a dual-stream autoencoder, with two input/output layers, is required.
{| style="background:transparent; color:black" border="0" align="center" cellpadding="10px" cellspacing="0px" height="550" valign="bottom"
The values obtained by applying the t-SNE algorithm on the compressed data are displayed in several 3D plots reported below respectively for ''missing'' and ''tombstoning'' synthesized images. Interestingly, the 4 plots related to full typology do not show a separation in the data between ''fakes'' (red dots) and ''reals'' (blue dots), sign that the generated images do not differ too much from the original ones, which were used to train the proGANs.
The two figures to the utmost right report the plots showing the results of t-SNE on the compressed data, obtained from the dual stream encoder for ''missing'' and ''tombstoning'' synthesized images. In the first case, for ''missing'' class, there is actually no separation between fakes and real of ''upper'' and ''lower'' region sides, a good sign that the generated images are no not very different from the original ones. This is quite understandable since the two regions look alike. The situation is visibly different in the plot for the ''tombstoning class'', where two distinct clouds of dots can be seen, confirming a well defined separation between the data related to the ''upper'' and ''lower'' typologies. It is also possible to see that fakes and reals dots, belonging to the same soldering region, are very close to each other, while dots belonging to a different soldering region are distant in the plot, confirming once again that the image generation with the proGAN was successful.
{| style="background:transparent; color:black" border="0" align="center" cellpadding="10px" cellspacing="0px" height="550" valign="bottom"
* Ishaan Gulrajani, Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin, Aaron Courville, [https://arxiv.org/abs/1704.00028 ''Improved Training of Wasserstein GANs''], December 2017.
*[https://shop.ipc.org/IPC-A-610E-English-D ''IPC-A-610E: Acceptability of Electronic Assemblies''], a standard developed by IPC, April 2010.
*Alejandro Betancourt, [https://www.industryweek.com/technology-and-iiot/digital-tools/article/21122846/making-ai-work-with-small-data Making AI Work with Small Data], February 12, 2020
dave_user
207
edits

Navigation menu