<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gregory Malyshev</string-name>
          <email>gsmalyshev@okbm.nnov.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vyacheslav Andreev</string-name>
          <email>vyach.andreev@mail.ru</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Olga Andreeva</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oleg Chistyakov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>JSC «Afrikantov OKBM»</institution>
          ,
          <addr-line>Burnakovsky passage 15, Nizhny Novgorod, 603074</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Nizhny Novgorod state technical university n.a. R.E. Alekseev»</institution>
          ,
          <addr-line>Minina 24, Nizhny Novgorod, 603950</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The possibility and expediency of using variational autoencoders when expanding training datasets of neural networks for cases when the training set consists of several dozen samples is tested. Investigations are carried out on the example of images of «crack»-type defects. Brief information on the theory of variational autoencoders is given. Practical recommendations are given for constructing training sets of variational autoencoders. It is shown that deviation from the suggested recommendations will most likely not allow generating realistic images for the case of a small dataset. For the case of a dataset of eighty images, the distribution of «crack»type defects in the hidden space after training the variational autoencoder is demonstrated. Examples of images with defects sampled from different parts of the distribution of latent factors are given. For the case of images of cracks, the continuity of the hidden space is demonstrated, when one image is sufficiently smoothly transformed into another on the way through the space of hidden features. A method for obtaining superimposed images based on the use of variational autoencoders is proposed. This method seems to be promising, since it allows automating the process of obtaining superimposed images. Examples of generated cracked superimposed images are shown. neural networks, variational autoencoders, hidden factor space, generative models, defects ORCID: 0000-0002-8147-988X (G. Malyshev); 0000-0002-7557-352X (V. Andreev); 0000-0001-9581-3028 (O. Andreeva); 0000-00026515-9691 (O. Chistyakov); 0000-0002-2152-5346 (D. Sveshnikov);</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        An important task facing the specialists of most manufacturing enterprises is a visual inspection of
the surface of products for defects. In order to improve the quality of control of samples and reduce the
time of inspection of samples, it is proposed to use a convolutional neural network [
        <xref ref-type="bibr" rid="ref1 ref2">1-2</xref>
        ], which will
make it possible to classify defects on products. One of the main problems that researchers face when
training neural networks is the small number of images with defects on which the network will be
trained. The emergence of generative adversarial networks [
        <xref ref-type="bibr" rid="ref3 ref4 ref5 ref6">3-6</xref>
        ] and variational autoencoders [
        <xref ref-type="bibr" rid="ref10 ref7 ref8 ref9">7-10</xref>
        ]
naturally leads to the idea of using generator data to expand the training dataset. The purpose of this
article is to test the possibility and feasibility of using variational autoencoders to expand small training
sets.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. The concept of a variational autoencoder</title>
      <p>An autoencoder is a device that consists of two parts - an encoder and a decoder. The task of the
encoder is to downsize input data such as images. For example, we have a black and white image that
EMAIL
(O. Andreeva);</p>
      <p>2021 Copyright for this paper by its authors.
consists of D pixels. Consider this image as a vector in D - dimensional space. The encoder's task is to
map a D-dimensional vector into a vector of a lower dimension d. The d-dimensional space of vectors
itself is called hidden (latent) or the space of hidden factors. The resulting d-dimensional vector contains
information about the most characteristic features of the original images. The task of the decoder is to
map the hidden vector into an image that is as close as possible to the original one. Neural networks act
as an encoder and decoder.</p>
      <p>
        The main idea of variational autoencoders [
        <xref ref-type="bibr" rid="ref10 ref7 ref8 ref9">7-10</xref>
        ] is that the coordinates of the vectors of the hidden
space are considered as continuous random variables with their own mean and variance, and the encoder
network generates not the hidden vectors themselves, but the parameters of their distributions, that is,
the mean and variance [
        <xref ref-type="bibr" rid="ref11 ref12">11-12</xref>
        ]. Thus, the encoder network must have outputs: d outputs are the
mathematical expectations of the latent vector components, the remaining outputs are the standard
deviations of the components. The decoder network will have d inputs. The distribution of the hidden
space points obtained after training the autoencoder should be close to the normal distribution with a
zero mean value vector.
      </p>
      <p>
        Taking into account the research results presented in the sources [
        <xref ref-type="bibr" rid="ref13 ref7 ref8">7-8, 13</xref>
        ], we can conclude that
training images that carry some essential feature (for example, a smile on a person's face) should not
differ significantly. For example, if there is a need to construct a hidden vector [
        <xref ref-type="bibr" rid="ref7 ref8">7-8</xref>
        ] encoding a smile
on a human face, then the autoencoder needs to present a set of images of smiling faces that are
photographed from a close angle and occupy a fixed location in the photograph. Moreover, no matter
what emotions of a person are captured in a photograph, all these images have the same abstract features
- nose, eyes, mouth, ears. And these abstract features should not be significantly displaced relative to
each other in the photographs from the training set. Otherwise, in the process of training, a certain
cluster of hidden space can be allocated, which encodes minor features [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], for example, a background
texture. At the same time, an important feature will be "suppressed": instead of identifying an essential
feature, the network in the learning process will be "distracted" by processing unnecessary information.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Attempting to smoothly sample cracked images in the case of a small training set</title>
      <p>As an example, we will consider images of "crack" -type defects. The set consists of 80 black and
white images. Examples of some of them are shown in Figure 1. On these images, three essential
features can be identified: broken lines (a sign of the crack itself), the surface texture of the product, as
well as sharp transitions (product boundaries). For simplicity of visualization, we will consider a
twodimensional hidden space. The challenge is to try to construct latent vectors that encode these essential
features. In the process of solving the problem, we will establish how suitable the prepared training set
is for training a variational autoencoder.</p>
      <p>
        The variational autoencoder was based on the architecture proposed in the source [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The training
was carried out for 100 epochs, the size of the minibatch was 10. The RMSprop method was chosen as
the optimization method [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. When training the network using Keras library functions, the initial
learning rate was set to 2 103 . The rest of the parameters of the RMSprop algorithm, as well as the
initial values of the weights and thresholds, were left by default.
      </p>
      <p>The representation of the distribution of "crack" -type defects in the hidden space after training is
shown in Figure 2.</p>
      <p>The dots in the figure show the coordinates of the 1  xi  ,2  xi  vectors of the mathematical
expectation obtained for the images xi from the training set. It can be noted that the obtained distribution
really, in the first approximation, resembles a normal distribution with zero expectation. In the resulting
distribution, it is difficult to identify areas encoding one of the three essential features. First of all, it is
important to find the hidden vectors encoding the broken lines. On the Figure 2 it is possible to estimate
the area from which the hidden vectors will be selected: to generate artificial images, values from the
segment [-15; 15] must be fed to the first input neuron of the decoder, and on the second input neuron
the values from the segment [-10; 10] should be chosen. We will move in increments of 0.1 for each
segment. Examples of the images obtained are shown in Figure 3.</p>
      <p>It is clearly seen that in the learning process, it was possible to effectively encode only one essential
feature - abrupt transitions, that is, product boundaries (Figure 1). In addition, an area of hidden space
has been identified that encodes cracks in the images. The images in Figure 3 well demonstrate the
continuity of the hidden space, when one image is rather smoothly transformed into another on the way
through the space of hidden features.</p>
      <p>However, all the cracks that can be discerned in the generated images are only a small part of the
dataset. It is interesting to note that the cracks in Figure 3 are almost always double, that is, one crack
stretches along the other. Perhaps this very structure of defects was understood by the autoencoder as
an essential feature. That is, during the training process, the autoencoder was unable to identify a certain
universal feature inherent in all cracks in the training set: neural networks "looped" only on a few cracks
from the dataset and revealed essential signs of these cracks.</p>
      <p>An explanation for this effect was given earlier: when constructing a hidden vector encoding some
essential feature, training images carrying this feature should not differ significantly. That is, the
training package was initially prepared incorrectly. From the samples shown in Figure 1, it is clearly
seen that all broken lines in the images have different orientations, geometrical sizes and structures. In
addition, abstract features cannot be identified for cracks (such are, for example, lips on a person's face),
so the requirement that abstract features should not be significantly displaced relative to each other in
photographs from the training set loses its correctness.</p>
      <p>Figure 3 below shows examples of fractured images sampled from different parts of the latent factor
distribution.</p>
      <p>The above example showed that the use of a small number of significantly different images, most
likely, will not allow significantly expanding the training set using a variational autoencoder, since there
are great difficulties in constructing a hidden vector that determines the geometry of the fractures.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Image overlay method</title>
      <p>It is important to observe the requirement of close proximity of essential features on images from
the training set only in cases where there is a small training set, and at the same time it is required to
obtain smooth transitions between the generated images. A small set (of the order of a hundred images)
of significantly different images can be used to obtain superimposed images, when the generated image
is an overlay of several cracked images.</p>
      <p>
        The variational autoencoder in the learning process will construct hidden vectors that encode
essential features for different groups of images (for example, for faces and numbers). The more the
groups of images differ, the further the indicated vectors will be spaced apart in the hidden space. To
obtain a superimposed image, vectors from distant clusters are summed, the resulting vector is fed to
the decoder [
        <xref ref-type="bibr" rid="ref1 ref2">1-2</xref>
        ].
      </p>
      <p>
        The main idea behind obtaining superimposed images is that essential features must be selected for
each image separately. As a result, scattered clusters will be obtained in the hidden space, in which the
essential features of each image are encoded (the number of clusters will be equal to the initial number
of images). To do this, you need to prepare many copies (at least five hundred) for each image. In the
case of ordinary autoencoders, such a technique would be completely useless. For a variational
autoencoder, the situation is different: the hidden vectors arriving at the input of the decoder in the
learning process are sampled using a "trick" (this is an established term) of reparametrization [
        <xref ref-type="bibr" rid="ref16 ref7">7, 16</xref>
        ].
The peculiarity of this trick lies in the fact that at each training iteration, new coordinates of the hidden
vector will arrive at the input of the decoder, even if the same image is supplied to the input of the
encoder.
      </p>
      <p>Let us illustrate the proposed technique (Figure 4, Figure 5).</p>
      <p>We will restrict ourselves to only three images shown in Figure 4. We will generate an image on
which these defects will be combined (two defects of the "crack" type and a defect of the "pore" type).
Let's create 500 copies for each of the defects. The architecture of the encoder and decoder was left the
same, the dimension of the hidden space is equal to two. Inside the minibatch should be presented
samples of those images that we want to combine. The training took place over 20 epochs.</p>
      <p>The cracks in the generated image (Figure 5) look clearer than they are now, since there were twice
as many cracks in the training set of images. The realism of the image can be increased by increasing
the dimension of the hidden space. At the next stage of the study, it is necessary to use the obtained
overlay images to expand the training dataset intended for training neural networks that perform
classification tasks. Comparison of the percentage of correctly recognized images for the cases when
the network was trained on the original and extended sets, allows to evaluate the efficiency of using the
generated images in the process of training the network.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], a similar problem was solved to quantify the accumulation of damage in metal structures
during cyclic loading using a cellular automaton and a neural network that performs the classification
task. Within the proposed procedure, images were generated by applying the developed rules of
behavior of the cellular automaton. Each iteration of the cellular automaton simulated a load cycle of a
metal structure from 1 to N. The cell value on the N + 1 cycle was determined by the state of its
neighbors from the Moore neighborhood on the N-cycle. The images generated in this way were used
to form the training set of the convolutional neural network presented in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The best result in the
study was 86.43%. Analysis of the obtained neural network classifier in the work’s results suggests that
the use of additional images can increase the classification accuracy by 8%. The results of the study
[
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ] allow us to expect a similar effect (increasing the accuracy of the classifier), when the
convolutional network with the similar structure is used and trained on a sample of images,
supplemented with an autoencoder.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. References</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>E.</given-names>
            <surname>Arkhangelskaya</surname>
          </string-name>
          ,
          <article-title>Deep Learning. Immersion in the world of neural networks</article-title>
          ,
          <source>SPb. Peter, St. Peterburg</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Scholle</surname>
          </string-name>
          , Deep Learning in Python. SPb. Peter, St. Peterburg,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>I.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pouget-Abadie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mirza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Warde-Farley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ozair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Courville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          , Generative adversarial nets,
          <source>Advances in Neural Information Processing Systems</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>144</lpage>
          . doi:
          <volume>10</volume>
          .1145/3422622.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>I. Goodfellow</surname>
          </string-name>
          ,
          <article-title>Nips 2016 tutorial: Generative adversarial networks</article-title>
          ,
          <source>arXiv preprint arXiv:1701.00160</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nowozin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cseke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tomioka</surname>
          </string-name>
          , f-GAN:
          <article-title>Training Generative Neural Samplers using Variational Divergence Minimization</article-title>
          ,
          <source>in: Proceedings of the 30th International Conference on Neural Information Processing System</source>
          ,
          <source>NIPS'16</source>
          , Curran Associates Inc.,
          <string-name>
            <surname>Red</surname>
            <given-names>Hook</given-names>
          </string-name>
          , NY,
          <year>2016</year>
          , pp.
          <fpage>271</fpage>
          -
          <lpage>279</lpage>
          . doi:
          <volume>10</volume>
          .5555/3157096.3157127.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Radford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Metz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chintala</surname>
          </string-name>
          ,
          <article-title>Unsupervised representation learning with deep convolutional generative adversarial networks</article-title>
          .
          <source>Machine Learning</source>
          ,
          <source>arXiv preprint arXiv:1511.06434</source>
          ,
          <year>2015</year>
          . URL: https://arxiv.org/abs/1511.06434
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.P.</given-names>
            <surname>Kingma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Welling</surname>
          </string-name>
          ,
          <string-name>
            <surname>Auto-Encoding Variational</surname>
          </string-name>
          Bayes,
          <source>in: Proceedings of the 2nd International Conference on Learning Representations (ICLR)</source>
          ,
          <source>ICLR</source>
          <year>2014</year>
          ,
          <article-title>Banff</article-title>
          ,
          <string-name>
            <surname>AB</surname>
          </string-name>
          , Canada, arXiv:
          <fpage>1312</fpage>
          .
          <fpage>6114</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Doersch</surname>
          </string-name>
          .
          <article-title>Tutorial on variational autoencoders</article-title>
          .
          <source>arXiv:1606.05908</source>
          ,
          <year>2016</year>
          . 3.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P.</given-names>
            <surname>Goyal Nonparametric Variational</surname>
          </string-name>
          Auto-Encoders
          <source>for Hierarchical Representation Learning in: IEEE International Conference on Computer Vision</source>
          (ICCV),
          <year>2017</year>
          , pp.
          <fpage>5104</fpage>
          -
          <lpage>5112</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICCV.
          <year>2017</year>
          .
          <volume>545</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zichao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Salakhutdinov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. P.</given-names>
            <surname>Xing</surname>
          </string-name>
          , On Unifying Deep Generative Models,
          <source>in: Proceedings of the 6th International Conference on Learning Representations, ICLR</source>
          <year>2018</year>
          , Vancouver Convention Center, Vancouver, BC, Canada,
          <year>2018</year>
          . arXiv:
          <volume>1706</volume>
          .
          <fpage>00550</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>D. J. C.</surname>
          </string-name>
          <article-title>A MacKay, Practical Bayesian Framework for Backpropagation Networks</article-title>
          , Neural
          <string-name>
            <surname>Computation</surname>
          </string-name>
          (
          <year>1992</year>
          ),
          <fpage>448</fpage>
          -
          <lpage>472</lpage>
          . doi:
          <volume>10</volume>
          .1162/neco.
          <year>1992</year>
          .
          <volume>4</volume>
          .3.448.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>R. M. Neal</surname>
          </string-name>
          ,
          <article-title>Bayesian Learning for Neural Networks</article-title>
          , Secaucus, NJ, USA: Springer, New York, NY,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Metzen</surname>
          </string-name>
          , Variational Autoencoder in TensorFlow,
          <year>2015</year>
          . URL: https://jmetzen:github:io/2015-11-27/vae:html.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Kingma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Salimans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Duan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dhariwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schulman</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Sutskever</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Abbeel</surname>
          </string-name>
          , Variational Lossy Autoencoder,
          <source>in: Proceedings of the 5th International Conference on Learning Representations, ICLR</source>
          <year>2017</year>
          ,
          <article-title>Palais des Congrès Neptune</article-title>
          , Toulon, France,
          <year>2017</year>
          . arXiv:
          <volume>1611</volume>
          .
          <fpage>02731</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Keras</given-names>
            <surname>Variational</surname>
          </string-name>
          <string-name>
            <surname>AutoEncoder</surname>
          </string-name>
          ,
          <year>2020</year>
          . URL: https://keras.io/examples/generative/vae/.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L.</given-names>
            <surname>Chongxuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tianlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Bo</surname>
          </string-name>
          ,
          <article-title>Max-margin deep generative models</article-title>
          , in: C.
          <string-name>
            <surname>Cortes</surname>
            ,
            <given-names>D. D.</given-names>
          </string-name>
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sugiyama</surname>
          </string-name>
          , R. Garnett (Eds.),
          <source>Proceedings of the 28th International Conference on Neural Information Processing Systems - Volume</source>
          <volume>2</volume>
          ,
          <string-name>
            <surname>of</surname>
            <given-names>NIPS</given-names>
          </string-name>
          '15, MIT Press, Cambridge MA United States, Montreal Canada,
          <year>2015</year>
          , pp.
          <fpage>1837</fpage>
          -
          <lpage>1845</lpage>
          . URL: https://dl.acm.org/doi/10.5555/2969442.2969445.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.V.</given-names>
            <surname>Gonchar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.V.</given-names>
            <surname>Andreeva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.S.</given-names>
            <surname>Anosov</surname>
          </string-name>
          ,
          <article-title>Study of fatigue failure of construction steels by using modern methods of digital processing of microstructural images</article-title>
          ,
          <source>Materials Today: Proceedings of International Conference on Modern Trends in Manufacturing Technologies and Equipment</source>
          <year>2020</year>
          (
          <article-title>ICMTMTE 2020)</article-title>
          , volume
          <volume>38</volume>
          , part 4,
          <year>2021</year>
          , pp.
          <fpage>1701</fpage>
          -
          <lpage>1705</lpage>
          . URL: https://doi.org/10.1016/j.matpr.
          <year>2020</year>
          .
          <volume>08</volume>
          .226.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>O.V.</given-names>
            <surname>Andreeva</surname>
          </string-name>
          ,
          <article-title>Model and algorithms for damage assessment microstructures metal surfaces and alloys by images</article-title>
          , NSTU,
          <string-name>
            <surname>Nizhny</surname>
            <given-names>Novgorod</given-names>
          </string-name>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>