<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A PCB Defect Detection Algorithm with Improved Faster R-CNN</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Junhao Niu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jin Huang</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lili Cui</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benxin Zhang</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aijun Zhu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Guangxi Key Laboratory of Automatic Detecting Technology and Instruments</institution>
          ,
          <addr-line>Guangxi, Guilin, 541004</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Art and Design Guilin University of Electronic Technology</institution>
          ,
          <addr-line>Guangxi, Guilin, 541004</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>School of Electronic Engineering and Automation Guilin University of Electronic Technology</institution>
          ,
          <addr-line>Guangxi, Guilin, 541004</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
      </contrib-group>
      <fpage>283</fpage>
      <lpage>292</lpage>
      <abstract>
        <p>The paper proposes an improved printed circuit board (PCB) defect detection algorithm based on the original faster region convolutional neural networks (Faster R-CNN) for the problems of low average accuracy mean value, poor detection of tiny defect targets and high leakage rate in PCB tiny defect detection. Firstly, a genetic algorithm is added to the K-means++ clustering algorithm to generate the initial anchor that match the data set in this paper. The standard convolution in the Resnet50 network is then replaced by a depth-separable convolution as the backbone network to reduce the number of computational parameters, and the multilayer depth features are extracted and fed into the improved feature pyramid network to train the model, effectively combining the geometric detail information in the bottom layer and the semantic contour information in the top layer to provide material for subsequent classification and localization. The experimental results show that the average accuracy of this algorithm is 95.6% and the detection speed is 0.125s, which is 9.2% higher than the current mainstream tiny object detection algorithm and has better detection accuracy for tiny defect object.</p>
      </abstract>
      <kwd-group>
        <kwd>1 printed circuit board defect detection</kwd>
        <kwd>K-means++ clustering</kwd>
        <kwd>genetic algorithm</kwd>
        <kwd>anchor box</kwd>
        <kwd>Faster R-CNN</kwd>
        <kwd>Resnet50</kwd>
        <kwd>depth separable convolution</kwd>
        <kwd>feature pyramid network</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        As an indispensable part of electronic products, the quality of PCB directly determines whether the
electronic products can work normally, and the quality is closely related to each link of production.
With the continuous development of hardware level, PCB design is developing towards the direction
of multi-layer, table-pasting and densification. In addition, PCB production is composed of multiple
links. For example, the production process of a single panel includes cutting, drilling, copper deposition,
etching, resistance welding, hot air leveling, character and electrical measurement [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Problems in any
of the above links may cause the final product to fail to work normally and thus increase production
costs. An effective way to ensure the quality of PCB is to add PCB defect detection in the production
process. Compared with electrical testing, it has the advantage of non-contact nondestructive testing,
which can better protect PCB and avoid damage in the production process. So the research of PCB
defect detection algorithm is very necessary.
      </p>
      <p>
        According to whether the PCB is mounted or not, PCB defect detection is divided into PCB bare
board detection and PCB component detection. Reference [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] applies the multi-scale and pyramid
structure of deep convolutional network itself to the construction of feature pyramid, so as to detect the
tiny defects in PCB bare board. In reference [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], it is proposed that the improved YOLOv4 can locate
and identify components on the circuit board, which can realize the identification of device leakage,
device wrong installation, device offset, device skew and device polarity reverse installation. At present,
the research on PCB bare board defect detection is divided into two directions: automatic optical
detection and machine vision defect detection based on deep learning. Automatic optical testing is
affected by the changes of testing environment, circuit board types, personnel experience and other
factors, so it is not robust to various PCB defects, and the cost of labor is too large. All kinds of PCB
on the market have different line spacing rules and small line width. Automatic optical detection is
difficult to detect such complex and diverse PCB, and the false detection rate and missed detection rate
are still too high. The machine vision defect detection based on deep learning can not only save the cost
of labor input, but also greatly reduce the false detection rate and missed detection rate.
      </p>
      <p>
        With the rapid development of convolutional neural networks in recent years, some excellent PCB
defect detection algorithms based on deep learning have emerged. Reference [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] proposed a redesigned
clustering method based on YOLOv3 and added attention mechanism to improve the detection speed
of the algorithm. Reference [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] proposed a new anchor based on YOLOv4 redesigned clustering method
to improve the detection speed to 37.09FPS. However, since most PCB defects are small defects, in
order to improve the detection accuracy of small defects, this paper proposes a combination of
Kmeans++ clustering algorithm and genetic algorithm to generate an initial anchor suitable for small
targets, and combines the improved Faster R-CNN detection algorithm to detect PCB defects. This
paper chooses to study the defects of PCB bare board, and the detected defects include 6 common types,
which are: missing hole, mouse bite, open, short, spur, and spurious copper.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Design of improved K-means++ clustering algorithm</title>
      <p>
        The anchor of the traditional Faster R-CNN method is designed manually to detect large targets such
as pedestrians, vehicles and tools in PASCAL VOC2007 data set [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which is not suitable for the
detection of small defect targets in this paper, and the robustness of manual design through experience
is poor. Therefore, it is necessary to design an algorithm to cluster to get the anchor suitable for
microdefect target detection, and select the size of the anchor suitable for the data set as the training parameter,
so that the network can learn faster and get a better detector. This can reduce the difficulty of network
fine-tuning anchor and improve the final recognition accuracy and speed.
      </p>
      <p>Therefore, this paper proposes to use genetic algorithm to optimize the anchor obtained by k-means
++ algorithm. The idea is to firstly use K-means++ algorithm to select a more appropriate initial
clustering center and then use k-means algorithm to get the clustering results. Finally, the final
clustering results are optimized by genetic algorithm. The core of the algorithm and the three problems
to be solved are how to select the initial cluster center, which distance formula between samples to
select, and how to optimize the final result of the genetic algorithm. The following three parts are
elaborated respectively.
2.1.</p>
    </sec>
    <sec id="sec-3">
      <title>Select the appropriate initial cluster center</title>
      <p>
        Since the selection of the first clustering center of the standard k-means algorithm is randomly
selected from all training samples, it is easy to finally select the size of the anchor that does not match
the data set in this paper [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Moreover, the number of iterations and the final clustering effect of the
algorithm are closely related to the selection of the initial clustering center. In order to get a better
anchor, this paper uses K-means++ algorithm to select the initial cluster centers one by one, and the
number of categories is K. According to the final generated five feature layers and three different
proportions of anchor, we assign each feature layer in turn, so K is chosen as 15 here. Although
Kmeans++ algorithm increases the time to select the initial cluster center, it greatly speeds up the overall
convergence speed and can avoid the selection of inappropriate anchor. On the whole, it improves the
performance of the clustering algorithm. The selected initial cluster center is shown in Figure 1.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Distance between samples was calculated</title>
      <p>The standard K-means algorithm uses Euclidean distance to calculate the distance between the
training sample and the cluster center, in which the larger anchor will produce more errors than the
smaller anchor. The defect detection problem studied in this paper requires the anchor to be as close as
possible to the ground truth box size. Therefore, this paper uses the distance calculation as formula (1)
and (2), where B represents the training sample and C represents the cluster center. The larger the
intersection ratio, the smaller the distance, and the more likely they are to belong to the same class. It
can describe the relationship between training samples and clustering centers more accurately. So as to
improve the quality of the final anchor.</p>
      <p>(,  ) = 1 − (, )</p>
    </sec>
    <sec id="sec-5">
      <title>Genetic algorithm</title>
      <p>
        Genetic algorithm draws on the idea of biological evolution and introduces the concept of survival
of the fittest into the clustering algorithm to optimize the clustering result. The characteristics of data
set optimization, flexible probabilistic search and parallel computing in genetic algorithm just fill in the
deficiencies of K-means algorithm [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The clustering center obtained by k-means algorithm is sent to
the genetic algorithm, and the algorithm process is as follows:
1. The width and height data of 15 anchors were coded to get chromosomes.
2. The coincidence degree of ground truth box and anchor is defined as fitness function. The closer
the size of anchor is to the size of ground truth box, the better its fitness will be. The mass of the
anchor from the reaction.
3. The mutation probability was set as 90%, the number of iterations was set as 1000, and the
fitness threshold was 0.25.
4. Application propagation and mutation generate the next generation population, and if the fitness
of the next generation is greater than that of the previous generation, the next generation will be
updated.
5. If the suboptimal solution is equal to the last optimal solution or reaches the number of iterations,
the algorithm ends.
      </p>
      <p>Figure 2 shows the final clustering results.</p>
    </sec>
    <sec id="sec-6">
      <title>3. Design of improved Faster R-CNN algorithm</title>
      <p>
        In a nutshell, the object detection task is to input an image into the network and output an image
containing the object bounding box and the category label score. With the iteration of the algorithm and
people's pursuit of speed and accuracy, the target detection algorithm has gradually developed into
onestage target detection algorithm and two-stage target detection algorithm. Relatively successful
onestage target detection algorithms include SSD[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and YOLO[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] series, which have the advantage of
fast detection speed but poor detection effect on dense and small targets. However, the defects on the
circuit board in this paper belong to dense and small targets, so we do not consider this algorithm.
Twostage target detection algorithms with good results include R-CNN[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], Fast R-CNN[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Faster
RCNN[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Mask R-CNN[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], etc., which have the advantage of high detection accuracy. Because PCB
defect detection in industry needs to accurately detect all kinds of small PCB defects, this paper adopts
the Faster R-CNN algorithm in the two-stage detection algorithm as the basis to improve the detection
of PCB small defect targets. The process of Faster R-CNN algorithm is described below before the
improvement.
3.1.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Faster R-CNN algorithm</title>
      <p>3:</p>
      <p>The overall process of Faster R-CNN algorithm is as follows, and its framework is shown in Figure
1. Firstly, the shortest side of the input image is scaled to 600 according to the original aspect ratio.</p>
      <p>At this time, the other side is automatically scaled according to the original aspect ratio. In this
way, the image is not distorted and the original information in the image is retained.
2. The scaled image is input into the main feature extraction network, and the feature map is
obtained after a series of convolution operations.
3. The feature map is input to generate the suggestion box network, in which the feature map is
processed by sliding window, and the suggestion box and the probability of having or not having
a target are obtained by category prediction and position prediction.
4. The feature map and the suggestion box are input into the ROI Pooling layer. Due to the different
dimensions of the suggestion box, the size of the local feature map generated after mapping to
the feature map is also inconsistent, which affects the unified management of data by the code.
Therefore, the Pooling operation is carried out in the ROI Pooling layer to solve the above
problems. The size of this series of local feature maps is adjusted to the same size and then
spliced onto the same channel.
5. This series of local feature maps are flattened and then input into the classifier for prediction
and the regressor for prediction. The prediction bounding box and the confidence score are
obtained.</p>
    </sec>
    <sec id="sec-8">
      <title>Improved feature extraction network</title>
      <p>
        Feature extraction in object detection task is to extract the details of the image, such as color, contour,
texture and edge information. Using these features as the input of the detection algorithm can reduce
the overhead of the algorithm in time and space. Many excellent feature extraction networks have been
derived by improving and stacking modules such as convolutional layer, fully connected layer,
activation function and pooling layer. In 1998, LeNet excellent performance in the visual task of
handwritten digit recognition drew people's attention to the power of convolution [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In 2013, ZFNet
explained how the convolutional neural network works and demonstrated the functions of the
intermediate feature layer and the operation process of the classifier by using the visualization
technology [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This network is also the feature extraction network used by the traditional Faster
RCNN. In 2014, VGGNet uniformly adopted a convolution kernel size of 3×3 in order to simplify the
selection of hyper parameters in the convolution layer, which simplified the design of the model and
the number of network parameters and deepened the depth of the convolutional neural network, but at
this time, the network depth was up to 19 layers [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In 2015, ResNet was proposed to solve the
problem of gradient disappearance caused by network layer stacking, so that the network layer number
can be deep [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In this paper, ResNet50 is selected as the basis of the backbone feature extraction
network and the idea of deep separable convolution is introduced [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. We call the improved feature
extraction network DS-Resnet50.
      </p>
      <p>As shown in Figure 4, Depthwise Convolution and Pointwise Convolution divide Depthwise
Convolution into two stages. The former uses three single-channel convolution pairs to carry out
twodimensional convolution with step size of 1 and padding of 1 to extract spatial information in the
direction of length and width of a single feature layer. Based on the output of Depthwise Convolution,
the latter uses N three-channel 1×1 Convolution to perform 3D Convolution with step size of 1 and
padding of 0 to make up for the lost cross-channel channel information of the former. Therefore, the
number of parameters and the calculation amount are the sum of the two, as shown in Equations (3) and
(4).
 = 9 ∗  ∗  + 3 ∗  ∗</p>
      <p>The formula of parameter number and calculation amount of standard convolution is (5), as shown
in (6).</p>
      <p>=  ∗  ∗</p>
      <p>By comparing the number of parameters and calculation amount of the above two operations, it can
be seen that when the number of channels N in the feature extraction network is large, the depth
separable convolution can effectively concentrate the training model and reduce the redundancy of the
algorithm compared with the standard convolution.
(3)
(4)
(5)
(6)</p>
      <p>We input images with holes missing defects that need to be detected into the improved feature
extraction network. Five feature layers of different sizes are the inherent multi-scale pyramid structure
of deep convolutional network, and the extracted features can be seen by using visualization technology
on different feature layers. In Figure 5, we can clearly see that the features of defects are clearly
distinguished, which provides help for subsequent defect detection. However, in the operation process
of the trunk feature extraction network, the small target details of the bottom feature layer are gradually
replaced by the whole information through the pooling layer, which makes our PCB defect detection
task more difficult. Therefore, we improve it in Section 3.3.</p>
    </sec>
    <sec id="sec-9">
      <title>Improved multi-scale feature fusion</title>
      <p>The results obtained by observing the same object at different distances belong to multi-scale, and
the feature layers in each stage of deep learning field are called multi-scale. Because PCB defects vary
in size, we use characteristic pyramid network to accurately detect PCB defects of various sizes.</p>
      <p>
        Feature pyramid network integrates feature maps from different layers in horizontal and vertical
dimensions [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], as shown in Figure 6, which is mainly used to solve the shortcomings of PCB defect
detection algorithm when dealing with multi-scale changes. In Faster R-CNN, detection is based on the
last feature layer. An obvious defect of this approach is that it is not friendly to detect small targets,
because the underlying feature map has high resolution, small receptive field and strong representation
ability of geometric details, which is helpful to the localization function of target detection task.
However, the high-level feature map has low resolution, large receptive field and strong representation
ability of semantic contour information, which is helpful to the classification function of object
detection task. If only the last layer is used for detection, it obviously does not make full use of the
underlying geometric details, resulting in unsatisfactory detection effect of small objects.
      </p>
      <p>The bottom-up path is the sequential execution process of the algorithm, and the feature map
generated by DS ResNet50 network is divided into four pyramid levels C2, C3, C4, C5 according to its
size. Due to the high resolution and a large number of parameters. Conv1 is not considered to be
included in the pyramid level because its large memory footprint affects the real-time performance of
the algorithm.</p>
      <p>The top-down path is performed by enlarging the smaller feature map to the same width and height
as the neighboring feature map by a 2 times up-sampling operation. Lateral linkage refers to the idea of
residual network, and the feature map obtained by up-sampling in the previous layer is added to the
feature map obtained by correcting the number of channels in the current layer. We fuse the fusion
information from the top layer based on the bottom layer C2. The final multi-scale feature layers P1,
P2, P3, P4 and P5 are formed by effectively combining the bottom level geometric detail information
and the top-level semantic contour information. Finally, the generated multi-scale feature layers are
input into the ROI Pooling layer to generate a series of local feature maps with the same size of 7×7.
After flattening, a vector is obtained, and the final detection map is obtained through classifiers and
regressors.</p>
    </sec>
    <sec id="sec-10">
      <title>4. Experiment and Analysis</title>
    </sec>
    <sec id="sec-11">
      <title>4.1. Experimental environment</title>
      <p>Considering the maturity of the deep learning framework and the ability of the environment to
schedule hardware resources, this program is programmed in Python language, the experimental
platform is Pycharm, PyTorch1.7.1 is used as the deep learning framework, and the running
environment is configured as Ubuntu16.04 and CUDA10.0.130, Cudnn7.6.5, Quadro P5000 GPU,
16GB of video memory. The CPU is Intel Xeon CPU E5-2699.
4.2.</p>
    </sec>
    <sec id="sec-12">
      <title>The experimental data</title>
      <p>
        The PCB DATA SET used in this paper is from Peking University [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. After data enhancement
processing, a total of 10668 images were generated in the data set, which contained six kinds of PCB
bare board defects, namely missing hole, mouse bite, open, short, spur, and spurious copper.
4.3.
      </p>
      <p>
        Model training
15 anchor boxes were obtained by using the improved K-means++ clustering algorithm in this paper
on the real box data in the PCB DATA SET. Its size, respectively [
        <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
        ]、[
        <xref ref-type="bibr" rid="ref13 ref14">14,13</xref>
        ]、[
        <xref ref-type="bibr" rid="ref14 ref18">14,18</xref>
        ]、[
        <xref ref-type="bibr" rid="ref19 ref19">19,19</xref>
        ]、
[
        <xref ref-type="bibr" rid="ref13">27,13</xref>
        ] 、 [
        <xref ref-type="bibr" rid="ref16">16,25</xref>
        ] 、 [
        <xref ref-type="bibr" rid="ref19">27,19</xref>
        ] 、 [22,24] 、 [
        <xref ref-type="bibr" rid="ref16">16,37</xref>
        ] 、 [23,31] 、 [
        <xref ref-type="bibr" rid="ref19">40,19</xref>
        ] 、 [30,28] 、 [23,44] 、 [36,36] 、
[47,53]. Figure 7 shows the final generated 15 anchor, each color corresponds to a feature layer, and
each color has three anchors with different proportions to adapt to detection targets with different aspect
ratios.
      </p>
      <p>The hyper parameter initialization Settings in this article's code are shown in Table 1.
of samples that were predicted to be negative but actually were positive. FPS is the number of images
transmitted per second, and F1 is the average of P and R.
4.5.</p>
    </sec>
    <sec id="sec-13">
      <title>Results analysis</title>
      <p>Experiment 1 is to verify the detection effect of anchor obtained by the improved K-means++
clustering algorithm in PCB defect detection algorithm. We compared the detection speed and accuracy
of anchor obtained by different clustering algorithms in the same detection algorithm and the same data
set, as shown in Table 2.</p>
      <sec id="sec-13-1">
        <title>Different clustering methods are used to check the speed and accuracy</title>
      </sec>
      <sec id="sec-13-2">
        <title>Model</title>
      </sec>
      <sec id="sec-13-3">
        <title>Faster-RCNN</title>
      </sec>
      <sec id="sec-13-4">
        <title>Faster-RCNN</title>
      </sec>
      <sec id="sec-13-5">
        <title>My Model</title>
      </sec>
      <sec id="sec-13-6">
        <title>My Model</title>
      </sec>
      <sec id="sec-13-7">
        <title>Clustering method</title>
      </sec>
      <sec id="sec-13-8">
        <title>Standard clustering</title>
      </sec>
      <sec id="sec-13-9">
        <title>My clustering</title>
      </sec>
      <sec id="sec-13-10">
        <title>Standard clustering</title>
      </sec>
      <sec id="sec-13-11">
        <title>My clustering</title>
        <p>mAP/%
86.4%
90.7%
91.8%
95.6%</p>
      </sec>
      <sec id="sec-13-12">
        <title>Time/s</title>
        <p>From the data in bold in Table 2, it can be seen that the clustering method in this paper and the
improved detection algorithm have been used to improve the accuracy and speed. The detection
accuracy was improved by 9.2%, and the detection speed was improved by 0.064s. This is due to the
design of suitable anchor and the improvement of detection algorithm.</p>
        <p>In Experiment 2, the traditional Faster R-CNN algorithm was compared with the proposed algorithm
in the same PCB DATA SET and the same hardware conditions by using the single variable comparison
method. Figure 8 shows the detection result diagram of the traditional Faster R⁃CNN algorithm. It can
be seen that 2 ⁃ defects were missed in the notch diagram, 1 ⁃ in the open circuit diagram, 1 ⁃ in the
short circuit diagram and 3 ⁃ in the residual copper diagram. It can be seen that the original Faster
R⁃CNN algorithm did not have a good detection effect on minor defect targets and could not accurately
detect the defect positions in the diagram.</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>5. Acknowledgements</title>
      <p>I would like to thank the National Natural Science Foundation of Guilin University of Electronic
Technology (11901137) and Guangxi Young Teachers' Basic Scientific Research Ability Improvement
(2019KY0232) and Graduate Education Innovation Program of Guilin University of Electronic
Technology (2019YCXS093) for the financial support. I would like to thank the members of Guangxi
Key Laboratory of Automatic Detection Technology and Instruments for their help. Finally, I would
like to thank Aleksandr Ometov for providing the writing template.
6. References</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Jifeng</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>Research and implementation of PCB surface defect detection technology based on deep neural network, Master's thesis</article-title>
          , Foshan Institute of Science and Technology, Guangdong, China,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Runwei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Linhui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Guangpeng</surname>
          </string-name>
          .
          <article-title>"TDD-net: a tiny defect detection network for printed circuit boards</article-title>
          .
          <source>" CAAI Transactions on Intelligence Technology</source>
          (
          <year>2019</year>
          ):
          <fpage>110</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Li</given-names>
            <surname>Xie</surname>
          </string-name>
          , Xiaofang Yuan,
          <string-name>
            <given-names>Baixin</given-names>
            <surname>Yin</surname>
          </string-name>
          .
          <article-title>"Defect detection of circuit board components based on improved YOLOv4 network." Measurement and control technology (</article-title>
          <year>2022</year>
          ):
          <fpage>19</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Wen</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Xiaochun</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Haolei</given-names>
            <surname>Yan</surname>
          </string-name>
          .
          <article-title>"PCB defect detection based on improved YOLOv3." Electro optic and Control (</article-title>
          <year>2022</year>
          ):
          <fpage>106</fpage>
          -
          <lpage>111</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Xianyu</given-names>
            <surname>Zhu</surname>
          </string-name>
          , Jie Xiong,
          <string-name>
            <given-names>Ningsha</given-names>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>"Research on Defect detection method of PCB Bare Board based on improved YOLOv4." Industrial control computer (</article-title>
          <year>2021</year>
          ):
          <fpage>39</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Girshick</surname>
          </string-name>
          . "
          <string-name>
            <surname>Faster</surname>
            <given-names>R-CNN</given-names>
          </string-name>
          :
          <article-title>Towards Real-Time Object Detection with Region Proposal Networks."</article-title>
          <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>
          (
          <year>2017</year>
          ):
          <fpage>1137</fpage>
          -
          <lpage>1149</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Yuxia</given-names>
            <surname>Lai</surname>
          </string-name>
          , Jianping Liu,
          <string-name>
            <given-names>Guoxing</given-names>
            <surname>Yang</surname>
          </string-name>
          .
          <article-title>"K-means clustering analysis based on genetic algorithm." Computer Engineering (</article-title>
          <year>2008</year>
          ):
          <fpage>200</fpage>
          -
          <lpage>202</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Yongliang</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Hao</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <article-title>"Research on K-means clustering improvement based on genetic algorithm." Computer and Digital Engineering (</article-title>
          <year>2020</year>
          ):
          <fpage>1831</fpage>
          -
          <lpage>1834</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>W.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Anguelov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Erhan</surname>
          </string-name>
          .
          <article-title>"SSD: Single shot multi box detector." European conference on computer vision (</article-title>
          <year>2016</year>
          ):
          <fpage>21</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Girshick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Donahue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Darrell</surname>
          </string-name>
          .
          <article-title>"You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition (</article-title>
          <year>2016</year>
          ):
          <fpage>779</fpage>
          -
          <lpage>788</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Redmon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Divvala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Girshick</surname>
          </string-name>
          .
          <article-title>"Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition (</article-title>
          <year>2014</year>
          ):
          <fpage>580</fpage>
          -
          <lpage>587</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>R.</given-names>
            <surname>Girshick</surname>
          </string-name>
          . "
          <string-name>
            <surname>Fast R-CNN</surname>
          </string-name>
          .
          <article-title>"</article-title>
          <source>Proceedings of the IEEE international conference on computer vision</source>
          (
          <year>2015</year>
          ):
          <fpage>1440</fpage>
          -
          <lpage>1448</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>K.</given-names>
            <surname>He</surname>
          </string-name>
          , G. Gkioxari,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dollár. "Mask R-CNN</surname>
          </string-name>
          .
          <article-title>"</article-title>
          <source>Proceedings of the IEEE international conference on computer vision</source>
          (
          <year>2017</year>
          ):
          <fpage>2961</fpage>
          -
          <lpage>2969</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Y. L</surname>
          </string-name>
          , L. B,
          <string-name>
            <surname>Y. B.</surname>
          </string-name>
          "
          <article-title>Gradient-based learning applied to document recognition." Proceedings of the IEEE (</article-title>
          <year>1998</year>
          ):
          <fpage>2278</fpage>
          -
          <lpage>2324</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>M.D. Zeiler</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Fergus</surname>
          </string-name>
          .
          <article-title>"Visualizing and understanding convolutional networks</article-title>
          .
          <source>" European conference on computer vision</source>
          (
          <year>2014</year>
          ):
          <fpage>818</fpage>
          -
          <lpage>833</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>K.</given-names>
            <surname>Simonyan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zisserman</surname>
          </string-name>
          .
          <article-title>"Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv (</article-title>
          <year>2014</year>
          ):
          <fpage>1409</fpage>
          -
          <lpage>1556</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>K.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ren</surname>
          </string-name>
          .
          <article-title>"Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition (</article-title>
          <year>2016</year>
          ):
          <fpage>770</fpage>
          -
          <lpage>778</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>F.</given-names>
            <surname>Chollet</surname>
          </string-name>
          .
          <article-title>"Deep learning with depthwise separable convolutions." Proceedings of the IEEE conference on computer vision and pattern recognition (</article-title>
          <year>2017</year>
          ):
          <fpage>1251</fpage>
          -
          <lpage>1258</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>T.Y.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dollár</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Girshick</surname>
          </string-name>
          .
          <article-title>"Feature pyramid networks for object detection." Proceedings of the IEEE conference on computer vision and pattern recognition (</article-title>
          <year>2017</year>
          ):
          <fpage>2117</fpage>
          -
          <lpage>2125</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>