<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    ojapps
   </journal-id>
   <journal-title-group>
    <journal-title>
     Open Journal of Applied Sciences
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    2165-3917
   </issn>
   <issn publication-format="print">
    2165-3925
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/ojapps.2025.153046
   </article-id>
   <article-id pub-id-type="publisher-id">
    ojapps-141407
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Biomedical 
     </subject>
     <subject>
       Life Sciences, Chemistry 
     </subject>
     <subject>
       Materials Science, Computer Science 
     </subject>
     <subject>
       Communications, Engineering, Physics 
     </subject>
     <subject>
       Mathematics
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Unsupervised Anomaly Detection Algorithm Based on Bidirectional Knowledge Distillation Network
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Hao
      </surname>
      <given-names>
       Zhong
      </given-names>
     </name>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Shuai
      </surname>
      <given-names>
       Kang
      </given-names>
     </name>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Ao
      </surname>
      <given-names>
       Xiong
      </given-names>
     </name>
    </contrib>
   </contrib-group> 
   <aff id="affnull">
    <addr-line>
     aCollege of Railway Transportation, Hunan University of Technology, Zhuzhou, China
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     10
    </day> 
    <month>
     03
    </month>
    <year>
     2025
    </year>
   </pub-date> 
   <volume>
    15
   </volume> 
   <issue>
    03
   </issue>
   <fpage>
    715
   </fpage>
   <lpage>
    730
   </lpage>
   <history>
    <date date-type="received">
     <day>
      4,
     </day>
     <month>
      March
     </month>
     <year>
      2025
     </year>
    </date>
    <date date-type="published">
     <day>
      18,
     </day>
     <month>
      March
     </month>
     <year>
      2025
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      18,
     </day>
     <month>
      March
     </month>
     <year>
      2025
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    Industrial appearance anomaly detection (AD) focuses on accurately identifying and locating abnormal regions in images. However, due to issues such as scarce abnormal samples, complex abnormal manifestations, and difficult abnormal annotation, the detection accuracy is limited. To solve these problems, based on the knowledge distillation framework, this paper proposes an unsupervised anomaly detection algorithm—Bidirectional knowledge distillation AD (BKD). This algorithm combines the advantages of forward and reverse distillation, enabling efficient anomaly detection. Experimental results have shown that the proposed method outperforms the state-of-the-art AD methods by 3% - 8% in AUC on the MVTec benchmarks.
   </abstract>
   <kwd-group> 
    <kwd>
     Anomaly Detection
    </kwd> 
    <kwd>
      Knowledge Distillation
    </kwd> 
    <kwd>
      Unsupervised Learning
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <p>Modern industrial products, such as aircraft wings and semiconductor wafers, are widely used in social infrastructure. Their quality directly impacts production stability and safety. Industrial anomaly detection technology is a core component of quality assurance. Its importance is increasingly recognized. Traditional manual screening methods are inefficient, costly, and difficult to scale. Recently, unsupervised anomaly detection techniques have emerged, requiring only normal samples for model training. This approach improves detection accuracy while significantly reducing the cost of collecting and annotating anomaly samples.</p>
   <p>Unsupervised anomaly detection algorithms <xref ref-type="bibr" rid="scirp.141407-1">
     [1]
    </xref> identify and localize anomalies without prior knowledge. Among them, based on deep learning methods <xref ref-type="bibr" rid="scirp.141407-2">
     [2]
    </xref> have achieved significant progress in anomaly detection tasks. However, their high computational resource demands are often hard to meet in practice. Methods based on One-Class Classification <xref ref-type="bibr" rid="scirp.141407-3">
     [3]
    </xref>-<xref ref-type="bibr" rid="scirp.141407-5">
     [5]
    </xref> have lower computational costs. Thus, they are widely used in image-level anomaly detection. OCSVM (One-Class Support Vector Machine) <xref ref-type="bibr" rid="scirp.141407-3">
     [3]
    </xref> and Deep SVDD (Deep Support Vector Data Description) <xref ref-type="bibr" rid="scirp.141407-5">
     [5]
    </xref> are two typical approaches. These methods train feature extraction networks to map data into feature spaces. They construct hyperplanes or spheres in the feature space. Data outside these boundaries are classified as anomalies, while data inside are considered normal. Methods based on Feature embedding <xref ref-type="bibr" rid="scirp.141407-6">
     [6]
    </xref>-<xref ref-type="bibr" rid="scirp.141407-8">
     [8]
    </xref> use networks to extract high-dimensional features from normal samples, analyze the feature space, and minimize intra-class distances. Patchcore <xref ref-type="bibr" rid="scirp.141407-6">
     [6]
    </xref> extracts feature through a pre-trained network to build a feature memory bank, which is compressed using a greedy coreset mechanism. Anomaly scores are obtained by measuring distances between test image patch features and the memory bank. Padim <xref ref-type="bibr" rid="scirp.141407-7">
     [7]
    </xref> leverages a pre-trained CNN to extract multi-scale features, constructs parametric Gaussian distributions, and detects anomalies using Mahalanobis distance to measure deviations from normal feature distributions. SPADE <xref ref-type="bibr" rid="scirp.141407-8">
     [8]
    </xref> integrates the KNN algorithm with a multi-scale feature pyramid, storing normal sample features in a feature library. During testing, it retrieves k-nearest neighbors from the library to compute anomaly scores. However, finding suitable feature spaces and decision boundaries remains challenging in complex datasets.</p>
   <p>To address this challenge, researchers resort to knowledge distillation (KD) <xref ref-type="bibr" rid="scirp.141407-9">
     [9]
    </xref> to transfer the representational capacity of large pre-trained networks to lightweight student networks, while leveraging the discrepancies between teacher and student representations for anomaly detection. The Student-Teacher (S-T) paradigm <xref ref-type="bibr" rid="scirp.141407-10">
     [10]
    </xref> achieves exceptional speed-accuracy trade-offs, enabling efficient inference without compromising performance, thus becoming a cornerstone of unsupervised anomaly detection (AD). US <xref ref-type="bibr" rid="scirp.141407-11">
     [11]
    </xref> pioneered the integration of KD into unsupervised AD frameworks. Subsequent innovations include MKD <xref ref-type="bibr" rid="scirp.141407-12">
     [12]
    </xref> and STPM <xref ref-type="bibr" rid="scirp.141407-13">
     [13]
    </xref>, which mitigate student network over-generalization through multi-scale feature alignment and structurally asymmetric architectures. Similarly, RD <xref ref-type="bibr" rid="scirp.141407-14">
     [14]
    </xref> introduced an inverse distillation framework, where the teacher and student roles are assigned to encoder and decoder modules, respectively.</p>
   <p>These KD-based methods exclusively train student networks on normal data, premised on the hypothesis that student networks fail to replicate the teacher’s representational capacity for anomalous regions. Consequently, they maintain high feature consistency on normal samples but exhibit pronounced discrepancies in anomalies. However, CNNs’ inherent inductive biases and data consistency constraints may lead student networks to unintentionally learn anomalous feature patterns in practice, contradicting the foundational assumption. Current approaches thus tackle over-generalization from two perspectives: architectural design and knowledge disentanglement.</p>
   <p>1) From the perspective of network architecture, forward distillation <xref ref-type="bibr" rid="scirp.141407-11">
     [11]
    </xref> directly mimics the output of the teacher network in <xref ref-type="fig" rid="fig1(a)">
     Figure 1(a)
    </xref>. Although simple, this approach often leads to over-generalization in the student network, making it difficult to exclude abnormal interference. Reverse distillation <xref ref-type="bibr" rid="scirp.141407-14">
     [14]
    </xref> recovers features from the embeddings of the teacher network in <xref ref-type="fig" rid="fig1(b)">
     Figure 1(b)
    </xref>. It leverages asymmetry to differentiate the information capacity between the teacher and student networks. The OCBE module provides compact feature representations, reducing inter-modal feature similarity and thereby preventing over-generalization. However, due to capacity differences and the direction of abnormal information transmission, reverse distillation may introduce pseudo abnormal features, causing the normal features of the student network to deviate from those of the teacher network.</p>
   <fig id="fig1" position="float">
    <label>Figure 1</label>
    <caption>
     <title>Figure 1. (a) Forward distillation structure. (b) Reverse distillation structure. (c) Our proposed bidirectional distillation method.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId14.jpeg?20250321115052" />
   </fig>
   <p>2) From the perspective of content information, some methods improve the basic S-T network by extracting content from both normal and abnormal data. Memory Knowledge Distillation (MemKD) <xref ref-type="bibr" rid="scirp.141407-15">
     [15]
    </xref> addresses the “normal forgetting” problem. It uses a memory bank to guide the student to generate normal features with teacher features, indirectly amplifying feature differences in abnormal regions. Decouple Distillation (DMDD) <xref ref-type="bibr" rid="scirp.141407-16">
     [16]
    </xref> introduces anomaly synthesis into the Knowledge Distillation (KD) paradigm, explicitly distinguishing between student and teacher features in abnormal regions. However, in this paradigm, the student network merely imitates the current teacher network without fully considering the diversity of samples. This defect leads to a single form of knowledge representation, and the learned knowledge lacks flexibility. As a result, when facing actual abnormal scenarios, especially those with rotation or complex backgrounds, its performance is unsatisfactory.</p>
   <p>To solve these problems, we make the following improvements:</p>
   <p>1) In structure, we combine the advantages of forward and reverse distillation to construct a bidirectional distillation network, as <xref ref-type="fig" rid="fig1(c)">
     Figure 1(c)
    </xref>. Forward distillation is used to detect region-level abnormalities, and reverse distillation is used to detect pixel-level abnormalities. The bidirectional design effectively avoids the wrong injection of pseudo abnormal features.</p>
   <p>2) In content, we propose an information alignment distillation method based on few sample registration. By aligning normal features for distillation, we can fully utilize the diversity of the teacher network and prevent the student network from overgeneralizing. Meanwhile, we combine the memory module to alleviate the “normal forgetting” problem. In summary, through comprehensive detection at the regional (coarse) and pixel (fine) levels, our approach overcomes the limitations of existing KD solutions.</p>
  </sec><sec id="s2">
   <title>2. Our Approach</title>
   <p>We constructed a bidirectional knowledge distillation network (BKD) for unsupervised anomaly detection (AD), and its architecture is shown in <xref ref-type="fig" rid="fig2">
     Figure 2
    </xref>.</p>
   <fig id="fig2" position="float">
    <label>Figure 2</label>
    <caption>
     <title>Figure 2. The structure of bidirectional distillation network.</title>
    </caption>
    <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId15.jpeg?20250321115053" />
   </fig>
   <p>During training, only normal images are fed into the model. In contrast, the test set contains both normal images and abnormal images unseen during training. The training objective of the unsupervised AD model is to enable it to detect and locate abnormal regions during inference.</p>
   <sec id="s2_1">
    <title>2.1. Framework Overview</title>
    <p>The network mainly consists of three modules: the shared teacher encoder, the feature bottleneck, and the student decoder.</p>
    <p>The proposed framework operates through two core stages, as illustrated in <xref ref-type="fig" rid="fig2">
      Figure 2
     </xref>. The forward distillation stage (yellow arrows) is executed within the shared teacher encoder, where knowledge propagation and hierarchical feature learning are achieved by jointly optimizing the fusion module and deformable convolution network (DCN) <xref ref-type="bibr" rid="scirp.141407-17">
      [17]
     </xref> <xref ref-type="bibr" rid="scirp.141407-18">
      [18]
     </xref>. In contrast, the reverse distillation stage (blue arrows) facilitates inverse performance optimization via coordinated training of the feature bottleneck module and the student decoder. Notably, the encoder utilizes a pre-trained model with frozen parameters, while all other modules dynamically update their parameters throughout the training process. The subsequent sections elaborate on the implementation mechanisms of these dual-stage distillation paradigms, followed by a comprehensive description of the loss function design and the anomaly localization methodology.</p>
   </sec>
   <sec id="s2_2">
    <title>2.2. Forward Distillation</title>
    <p>
     <xref ref-type="bibr" rid="scirp.141407-"></xref>Forward distillation is carried out in the multi-teacher encoding part. Inspired by the way humans detect anomalies in images, a simple and effective strategy is to compare the samples to be detected with normal samples to find differences. Therefore, we randomly select a pair of images 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            I 
          </mi> 
          <mrow> 
           <mi>
             q 
           </mi> 
           <mi>
             u 
           </mi> 
           <mi>
             e 
           </mi> 
           <mi>
             r 
           </mi> 
           <mi>
             y 
           </mi> 
          </mrow> 
         </msub> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            I 
          </mi> 
          <mrow> 
           <mi>
             s 
           </mi> 
           <mi>
             u 
           </mi> 
           <mi>
             p 
           </mi> 
           <mi>
             p 
           </mi> 
           <mi>
             o 
           </mi> 
           <mi>
             r 
           </mi> 
           <mi>
             t 
           </mi> 
          </mrow> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> from the given training set of normal samples in the same category, serving as the query set and the support set respectively, with the number of the support set denoted by k-shot.</p>
    <p>During training, the teacher encoder uses the first four stages of WideResNet50 pretrained on ImageNet as the teacher network. First, a query—support image pair is input. The support set is randomly drawn from normal samples and undergoes data augmentation through translation, rotation, scale transformation, etc. Subsequently, these two groups of data are input into the teacher network sharing the same network weights.</p>
    <p>We extract the features of the query set and the support set through the shared teacher network. Since the weights of the teacher network are frozen during training, its semantic information is consistent, only differing in spatial distribution. Based on this, we propose an information alignment distillation method under few shot registration to achieve semantic consistency between the support set and the query set. During testing, the semantics of normal regions are easy to align, while those of abnormal regions have large alignment errors. We can use this characteristic to locate abnormal regions. This design not only provides constraints on abnormal regions for subsequent distillation but also effectively suppresses the over generalization of the student network. The feature alignment network involves two key steps: feature fusion and feature alignment, which occur as indicated by the yellow lines in <xref ref-type="fig" rid="fig2">
      Figure 2
     </xref>.</p>
    <p>In the feature fusion part, the feature maps from the query set and the support set at the same level are collected, denoted as 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          Q 
        </mi> 
        <mi>
          L 
        </mi> 
       </msup> 
      </mrow> 
     </math> and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mi>
          S 
        </mi> 
        <mi>
          k 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> respectively. Here, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        L 
      </mi> 
     </math> represents the feature maps generated by the encoder at different stages, and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        k 
      </mi> 
     </math> is the number of samples in the support set. The fusion operation of the feature maps is as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mi>
          F 
        </mi> 
        <mrow> 
         <mi>
           o 
         </mi> 
         <mi>
           f 
         </mi> 
         <mi>
           f 
         </mi> 
         <mi>
           s 
         </mi> 
         <mi>
           e 
         </mi> 
         <mi>
           t 
         </mi> 
        </mrow> 
        <mi>
          L 
        </mi> 
       </msubsup> 
       <mo>
         = 
       </mo> 
       <mi>
         f 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mrow> 
          <mo>
            [ 
          </mo> 
          <mrow> 
           <msup> 
            <mi>
              Q 
            </mi> 
            <mi>
              L 
            </mi> 
           </msup> 
           <mo>
             , 
           </mo> 
           <msubsup> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
            <mi>
              L 
            </mi> 
           </msubsup> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mtext>
         Conv 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mtext>
           Concat 
         </mtext> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <msup> 
            <mi>
              Q 
            </mi> 
            <mi>
              L 
            </mi> 
           </msup> 
           <mo>
             , 
           </mo> 
           <msubsup> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
            <mi>
              L 
            </mi> 
           </msubsup> 
           <mtext>
             ​ 
           </mtext> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mi>
           W 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         , 
       </mo> 
       <mi>
         L 
       </mi> 
       <mo>
         ∈ 
       </mo> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <mn>
           1 
         </mn> 
         <mo>
           : 
         </mo> 
         <mn>
           3 
         </mn> 
        </mrow> 
        <mo>
          ] 
        </mo> 
       </mrow> 
      </mrow> 
     </math> (1)</p>
    <p>In the formula, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <mo>
           ⋅ 
         </mo> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋅ 
         </mo> 
        </mrow> 
        <mo>
          ] 
        </mo> 
       </mrow> 
      </mrow> 
     </math> represents the concatenation operation of feature maps, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        f 
      </mi> 
     </math> represents the convolution operation, and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        W 
      </mi> 
     </math> is the weight of the convolution kernel. The objective of the fusion stage is to obtain a deviation feature map containing offset information. This feature map is helpful for identifying and locating the deviations between features in subsequent processing.</p>
    <p>In the design of the feature alignment network, STN <xref ref-type="bibr" rid="scirp.141407-19">
      [19]
     </xref> is often the core module. Yet, it has limitations in handling image edges and local details, and CNN also struggles with geometric transformations. In this study, DCN <xref ref-type="bibr" rid="scirp.141407-17">
      [17]
     </xref> <xref ref-type="bibr" rid="scirp.141407-18">
      [18]
     </xref> is used to replace STN. DCN introduces learnable offset parameters, which can dynamically adjust the positions of convolutional kernels to achieve adaptive feature alignment. This overcomes the limitations of traditional convolution, improves the ability to model geometric transformations, and enhances the accuracy and robustness of feature alignment.</p>
    <p>More precisely, In this study, the support set 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mi>
          S 
        </mi> 
        <mi>
          k 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> is regarded as the dataset to be registered, and the query set 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          Q 
        </mi> 
        <mi>
          L 
        </mi> 
       </msup> 
      </mrow> 
     </math> is taken as the reference dataset. The aim is to precisely align the features between the support set and the query set.</p>
    <p>To achieve this goal, a modulated deformable convolution module is adopted and applied to each shot in the support set. Assume that the deformable convolutional kernel has 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        m 
      </mi> 
     </math> sampling positions, and its weights and offsets are obtained through pre-learning. The 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        m 
      </mi> 
     </math>-th position is represented as 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ω 
        </mi> 
        <mi>
          m 
        </mi> 
       </msub> 
      </mrow> 
     </math>, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          { 
        </mo> 
        <mrow> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mo>
             − 
           </mo> 
           <mn>
             1 
           </mn> 
           <mo>
             , 
           </mo> 
           <mo>
             − 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mo>
             − 
           </mo> 
           <mn>
             1 
           </mn> 
           <mo>
             , 
           </mo> 
           <mn>
             0 
           </mn> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋯ 
         </mo> 
         <mo>
           , 
         </mo> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mn>
             1 
           </mn> 
           <mo>
             , 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          } 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. For a 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mn>
         3 
       </mn> 
       <mo>
         × 
       </mo> 
       <mn>
         3 
       </mn> 
      </mrow> 
     </math> convolutional kernel, the total number of sampling points is defined as 9.</p>
    <p>Based on this, the aligned feature 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mover accent="true"> 
         <mi>
           S 
         </mi> 
         <mo>
           ˜ 
         </mo> 
        </mover> 
        <mi>
          k 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> at position 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          p 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
      </mrow> 
     </math> in the feature map of layer 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        L 
      </mi> 
     </math> can be calculated by the following formula:</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"> <mrow> 
       <msubsup> 
        <mover accent="true"> 
         <mi>
           S 
         </mi> 
         <mo>
           ˜ 
         </mo> 
        </mover> 
        <mi>
          k 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
       <mo>
         = 
       </mo> 
       <mtext>
         DConv 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msubsup> 
          <mi>
            S 
          </mi> 
          <mi>
            k 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
         <mo>
           , 
         </mo> 
         <mi>
           Δ 
         </mi> 
         <msubsup> 
          <mi>
            p 
          </mi> 
          <mi>
            m 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mstyle displaystyle="true"> 
        <munderover> 
         <mo>
           ∑ 
         </mo> 
         <mrow> 
          <mi>
            m 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mrow> 
          <mtext>
            kernel 
          </mtext> 
         </mrow> 
        </munderover> 
        <mrow> 
         <msub> 
          <mi>
            ω 
          </mi> 
          <mi>
            m 
          </mi> 
         </msub> 
         <mo>
           ⋅ 
         </mo> 
         <mrow> 
          <mo>
            [ 
          </mo> 
          <mrow> 
           <msubsup> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
            <mi>
              L 
            </mi> 
           </msubsup> 
           <mo>
             ⊗ 
           </mo> 
           <mrow> 
            <mo>
              ( 
            </mo> 
            <mrow> 
             <msub> 
              <mi>
                p 
              </mi> 
              <mn>
                0 
              </mn> 
             </msub> 
             <mo>
               + 
             </mo> 
             <msub> 
              <mi>
                p 
              </mi> 
              <mi>
                m 
              </mi> 
             </msub> 
             <mo>
               + 
             </mo> 
             <mi>
               Δ 
             </mi> 
             <msubsup> 
              <mi>
                p 
              </mi> 
              <mi>
                m 
              </mi> 
              <mi>
                L 
              </mi> 
             </msubsup> 
            </mrow> 
            <mo>
              ) 
            </mo> 
           </mrow> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
         <mo>
           ⋅ 
         </mo> 
         <mi>
           Δ 
         </mi> 
         <msubsup> 
          <mi>
            m 
          </mi> 
          <mi>
            m 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
        </mrow> 
       </mstyle> 
      </mrow> 
     </math> (2)</p>
    <p>Among them, The symbol 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mo>
        ⊗ 
      </mo> 
     </math> represents the convolution operation between the convolutional kernel and the feature map. 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          m 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> is the modulation factor, which is predicted together with 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> by DCNv1 <xref ref-type="bibr" rid="scirp.141407-17">
      [17]
     </xref>. 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> represents the learnable offset of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        m 
      </mi> 
     </math>-th sampling point in layer 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        L 
      </mi> 
     </math>, which is obtained by activating the feature map 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mi>
          F 
        </mi> 
        <mrow> 
         <mi>
           o 
         </mi> 
         <mi>
           f 
         </mi> 
         <mi>
           f 
         </mi> 
         <mi>
           s 
         </mi> 
         <mi>
           e 
         </mi> 
         <mi>
           t 
         </mi> 
        </mrow> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math>, that is,</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
       <mo>
         = 
       </mo> 
       <mtext>
         softmax 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msubsup> 
          <mi>
            F 
          </mi> 
          <mrow> 
           <mi>
             o 
           </mi> 
           <mi>
             f 
           </mi> 
           <mi>
             f 
           </mi> 
           <mi>
             s 
           </mi> 
           <mi>
             e 
           </mi> 
           <mi>
             t 
           </mi> 
          </mrow> 
          <mi>
            L 
          </mi> 
         </msubsup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         , 
       </mo> 
       <mtext> 
       </mtext> 
       <mi>
         L 
       </mi> 
       <mo>
         ∈ 
       </mo> 
       <mrow> 
        <mo>
          [ 
        </mo> 
        <mrow> 
         <mn>
           1 
         </mn> 
         <mo>
           : 
         </mo> 
         <mn>
           3 
         </mn> 
        </mrow> 
        <mo>
          ] 
        </mo> 
       </mrow> 
      </mrow> 
     </math> (3)</p>
    <p>For simplicity, only the learnable offset 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> is considered, and the modulation factor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          m 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> is ignored. Since the position 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            p 
          </mi> 
          <mn>
            0 
          </mn> 
         </msub> 
         <mo>
           + 
         </mo> 
         <msub> 
          <mi>
            p 
          </mi> 
          <mi>
            m 
          </mi> 
         </msub> 
         <mo>
           + 
         </mo> 
         <mi>
           Δ 
         </mi> 
         <msubsup> 
          <mi>
            p 
          </mi> 
          <mi>
            m 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> in the offset calculation may be a decimal, bilinear interpolation is used to obtain the actual offset.</p>
    <p>In the alignment task, to tackle complex motion and large parallax, models with a large effective receptive field are found to perform better. Two improvements are proposed:</p>
    <p>First, construct an 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        L 
      </mi> 
     </math>-level pyramid using three downsampling layers of the backbone network to capture long range dependencies and address large parallax.</p>
    <p>Second, adopt a cascaded refinement strategy. In layer 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        L 
      </mi> 
     </math>, combine the ×2 upsampled offsets and features from the previous layer to predict the current layer offsets and features. The specific formulas are as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Δ 
       </mi> 
       <msubsup> 
        <mi>
          p 
        </mi> 
        <mi>
          m 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
       <mo>
         = 
       </mo> 
       <mi>
         f 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mrow> 
          <mo>
            [ 
          </mo> 
          <mrow> 
           <msup> 
            <mi>
              Q 
            </mi> 
            <mi>
              L 
            </mi> 
           </msup> 
           <mo>
             , 
           </mo> 
           <msubsup> 
            <mi>
              S 
            </mi> 
            <mi>
              k 
            </mi> 
            <mi>
              L 
            </mi> 
           </msubsup> 
          </mrow> 
          <mo>
            ] 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         ⊙ 
       </mo> 
       <msup> 
        <mrow> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             Δ 
           </mi> 
           <msubsup> 
            <mi>
              p 
            </mi> 
            <mi>
              m 
            </mi> 
            <mrow> 
             <mi>
               L 
             </mi> 
             <mo>
               + 
             </mo> 
             <mn>
               1 
             </mn> 
            </mrow> 
           </msubsup> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mrow> 
         <mo>
           ↑ 
         </mo> 
         <mn>
           2 
         </mn> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> (4)</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mover accent="true"> 
         <mi>
           S 
         </mi> 
         <mo>
           ˜ 
         </mo> 
        </mover> 
        <mi>
          k 
        </mi> 
        <mi>
          L 
        </mi> 
       </msubsup> 
       <mo>
         = 
       </mo> 
       <mtext>
         DConv 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msubsup> 
          <mi>
            S 
          </mi> 
          <mi>
            k 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
         <mo>
           , 
         </mo> 
         <mi>
           Δ 
         </mi> 
         <msubsup> 
          <mi>
            p 
          </mi> 
          <mi>
            m 
          </mi> 
          <mi>
            L 
          </mi> 
         </msubsup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> (5)</p>
    <p>Here, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mrow> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mo>
            ⋅ 
          </mo> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mrow> 
         <mo>
           ↑ 
         </mo> 
         <mi>
           s 
         </mi> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> represents the upsampling scale factor 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        s 
      </mi> 
     </math>, and ×2 upsampling is achieved through bilinear interpolation in this case. DConv is the deformable convolution operation defined in Equation (2). subsequent offsets are cascaded to further refine the aligned features (as shown in the part of the green lines in the <xref ref-type="fig" rid="fig1">
      Figure 1
     </xref>).</p>
   </sec>
   <sec id="s2_3">
    <title>2.3. Reverse Distillation</title>
    <p>As shown in the figure, reverse distillation consists of the feature bottleneck module and the student decoder module. The bottleneck module modulates the feature space using the memory-guided mechanism and fuses features with the OCBE (Orthogonal Channel Bottleneck Embedding) method. The student decoder recovers the features embedded in the bottleneck during training.</p>
    <p>To increase the feature differences in abnormal modalities between the student and teacher networks, this study integrates a memory guided module into reverse distillation. The structure of the module is shown in <xref ref-type="fig" rid="fig3">
      Figure 3
     </xref>.</p>
    <fig id="fig3" position="float">
     <label>Figure 3</label>
     <caption>
      <title>Figure 3. The structure of memory module.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId90.jpeg?20250321115055" />
    </fig>
    <p>Define the vector space as 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ℝ 
      </mi> 
     </math> and introduce a memory matrix 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         M 
       </mi> 
       <mo>
         ∈ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <mi>
           I 
         </mi> 
         <mo>
           × 
         </mo> 
         <mi>
           N 
         </mi> 
        </mrow> 
       </msup> 
      </mrow> 
     </math>. Here, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        I 
      </mi> 
     </math> is the number of row vectors in 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        M 
      </mi> 
     </math>. Each row vector is a memory unit, and its dimension is the same as that of the latent feature vector 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        z 
      </mi> 
     </math> output by the encoder.</p>
    <p>The memory processing module generates the attention coefficient 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ω 
      </mi> 
     </math> by calculating the similarity between the query vector 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        z 
      </mi> 
     </math> and each memory unit. The calculation formula is as follows:</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ω 
        </mi> 
        <mi>
          i 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mtext>
         Softmax 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           d 
         </mi> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mi>
             z 
           </mi> 
           <mo>
             , 
           </mo> 
           <msub> 
            <mi>
              m 
            </mi> 
            <mi>
              i 
            </mi> 
           </msub> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> (6)</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         d 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           z 
         </mi> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            m 
          </mi> 
          <mi>
            i 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mi>
           z 
         </mi> 
         <msubsup> 
          <mi>
            m 
          </mi> 
          <mi>
            i 
          </mi> 
          <mtext>
            T 
          </mtext> 
         </msubsup> 
        </mrow> 
        <mrow> 
         <mrow> 
          <mo>
            ‖ 
          </mo> 
          <mi>
            z 
          </mi> 
          <mo>
            ‖ 
          </mo> 
         </mrow> 
         <mo>
           ⋅ 
         </mo> 
         <mrow> 
          <mo>
            ‖ 
          </mo> 
          <mrow> 
           <msub> 
            <mi>
              m 
            </mi> 
            <mi>
              i 
            </mi> 
           </msub> 
          </mrow> 
          <mo>
            ‖ 
          </mo> 
         </mrow> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (7)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         z 
       </mi> 
       <mo>
         ∈ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <mn>
           1 
         </mn> 
         <mo>
           × 
         </mo> 
         <mi>
           N 
         </mi> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> is the query vector, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          m 
        </mi> 
        <mi>
          i 
        </mi> 
       </msub> 
       <mo>
         ∈ 
       </mo> 
       <msup> 
        <mi>
          ℝ 
        </mi> 
        <mrow> 
         <mn>
           1 
         </mn> 
         <mo>
           × 
         </mo> 
         <mi>
           N 
         </mi> 
        </mrow> 
       </msup> 
      </mrow> 
     </math> is the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        i 
      </mi> 
     </math>-th row vector of the memory matrix 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        M 
      </mi> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         d 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           z 
         </mi> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            m 
          </mi> 
          <mi>
            i 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> represents the cosine similarity between them, and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mo> 
       </mo> 
       <msub> 
        <mi>
          ω 
        </mi> 
        <mi>
          i 
        </mi> 
       </msub> 
      </mrow> 
     </math> is the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        i 
      </mi> 
     </math>-th element of the attention coefficient 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ω 
      </mi> 
     </math>.During the training process, only normal samples are used to update the memory matrix 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        M 
      </mi> 
     </math>.</p>
    <p>To avoid the small and dense attention coefficient 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ω 
      </mi> 
     </math> interfering with the reconstruction of the features of abnormal samples, a sparsification strategy is adopted to eliminate insignificant attention coefficients, which are finally obtained after activation. The specific calculation formulas are as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <msup> 
         <mi>
           ω 
         </mi> 
         <mo>
           ′ 
         </mo> 
        </msup> 
        <mi>
          i 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          { 
        </mo> 
        <mrow> 
         <mtable> 
          <mtr> 
           <mtd> 
            <mrow> 
             <msub> 
              <mi>
                ω 
              </mi> 
              <mi>
                i 
              </mi> 
             </msub> 
            </mrow> 
           </mtd> 
           <mtd> 
            <mrow> 
             <msub> 
              <mi>
                ω 
              </mi> 
              <mi>
                i 
              </mi> 
             </msub> 
             <mo>
               &gt; 
             </mo> 
             <mi>
               ξ 
             </mi> 
            </mrow> 
           </mtd> 
          </mtr> 
          <mtr> 
           <mtd> 
            <mrow> 
             <mn>
               0 
             </mn> 
             <mo>
               , 
             </mo> 
            </mrow> 
           </mtd> 
           <mtd> 
            <mrow> 
             <mtext>
               otherwise 
             </mtext> 
            </mrow> 
           </mtd> 
          </mtr> 
         </mtable> 
        </mrow> 
       </mrow> 
      </mrow> 
     </math> (8)</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <msup> 
         <mi>
           ω 
         </mi> 
         <mo>
           ′ 
         </mo> 
        </msup> 
        <mi>
          i 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mtext>
           Relu 
         </mtext> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <msub> 
            <mi>
              ω 
            </mi> 
            <mi>
              i 
            </mi> 
           </msub> 
           <mo>
             − 
           </mo> 
           <mi>
             ξ 
           </mi> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
         <mo>
           ⋅ 
         </mo> 
         <msub> 
          <mi>
            ω 
          </mi> 
          <mi>
            i 
          </mi> 
         </msub> 
        </mrow> 
        <mrow> 
         <mrow> 
          <mo>
            | 
          </mo> 
          <mrow> 
           <msub> 
            <mi>
              ω 
            </mi> 
            <mi>
              i 
            </mi> 
           </msub> 
           <mo>
             − 
           </mo> 
           <mi>
             ξ 
           </mi> 
          </mrow> 
          <mo>
            | 
          </mo> 
         </mrow> 
         <mo>
           + 
         </mo> 
         <mi>
           δ 
         </mi> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (9)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         ξ 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         0.002 
       </mn> 
      </mrow> 
     </math>, and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         δ 
       </mi> 
       <mo>
         = 
       </mo> 
       <msup> 
        <mrow> 
         <mn>
           10 
         </mn> 
        </mrow> 
        <mrow> 
         <mo>
           − 
         </mo> 
         <mn>
           12 
         </mn> 
        </mrow> 
       </msup> 
      </mrow> 
     </math>. Finally, multiply the sparsely processed attention coefficient 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        ω 
      </mi> 
     </math> by the memory matrix to obtain the new latent feature 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <msup> 
       <mi>
         z 
       </mi> 
       <mo>
         ′ 
       </mo> 
      </msup> 
     </math>. The formula is as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          z 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mo>
         = 
       </mo> 
       <msup> 
        <mi>
          ω 
        </mi> 
        <mo>
          ′ 
        </mo> 
       </msup> 
       <mi>
         M 
       </mi> 
       <mo>
         = 
       </mo> 
       <mstyle displaystyle="true"> 
        <munderover> 
         <mo>
           ∑ 
         </mo> 
         <mi>
           i 
         </mi> 
         <mi>
           N 
         </mi> 
        </munderover> 
        <mrow> 
         <msub> 
          <msup> 
           <mi>
             ω 
           </mi> 
           <mo>
             ′ 
           </mo> 
          </msup> 
          <mi>
            i 
          </mi> 
         </msub> 
         <msub> 
          <mi>
            m 
          </mi> 
          <mi>
            i 
          </mi> 
         </msub> 
        </mrow> 
       </mstyle> 
      </mrow> 
     </math> (10)</p>
    <p>Subsequently, a One-Class Bottleneck Embedding (OCBE) module is employed to collect feature information, and its structure is shown in <xref ref-type="fig" rid="fig4">
      Figure 4
     </xref>. Before single-stage embedding, OCBE enhances feature diversity with the aid of a Multi-Scale Feature Fusion (MFF) block. First, the module uses a convolutional layer to downsample the shallow layer features. Then, batch normalization and ReLU activation are performed on the downsampled features to align the connected feature representations. Subsequently, a convolutional layer is used for feature dimensionality reduction. Finally, after batch normalization and ReLU activation, a compact feature representation is generated and transmitted to the decoder.</p>
    <fig id="fig4" position="float">
     <label>Figure 4</label>
     <caption>
      <title>Figure 4. The structure of OCBE.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId143.jpeg?20250321115055" />
    </fig>
    <p>During training, the OCBE module and the decoder are optimized collaboratively to improve the accuracy and robustness of feature representations.</p>
   </sec>
   <sec id="s2_4">
    <title>2.4. Loss Function and Anomaly Graph Calculation</title>
    <p>During the training stage, the loss value is calculated based on the loss constraints of features from multiple intermediate layers to simulate the generalization representation of the teacher network for normal samples. The formula for the total loss is:</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          L 
        </mi> 
        <mrow> 
         <mi>
           t 
         </mi> 
         <mi>
           o 
         </mi> 
         <mi>
           t 
         </mi> 
         <mi>
           a 
         </mi> 
         <mi>
           l 
         </mi> 
        </mrow> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          1 
        </mn> 
       </msup> 
       <mo>
         + 
       </mo> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          2 
        </mn> 
       </msup> 
       <mo>
         + 
       </mo> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          3 
        </mn> 
       </msup> 
      </mrow> 
     </math> (11)</p>
    <p>Here, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          1 
        </mn> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          2 
        </mn> 
       </msup> 
      </mrow> 
     </math> and 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mn>
          3 
        </mn> 
       </msup> 
      </mrow> 
     </math> correspond to the output features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          Q 
        </mi> 
        <mn>
          1 
        </mn> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          Q 
        </mi> 
        <mn>
          2 
        </mn> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          Q 
        </mi> 
        <mn>
          3 
        </mn> 
       </msup> 
      </mrow> 
     </math> of the query set and the distillation output features 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          M 
        </mi> 
        <mn>
          1 
        </mn> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          M 
        </mi> 
        <mn>
          2 
        </mn> 
       </msup> 
      </mrow> 
     </math>, 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          M 
        </mi> 
        <mn>
          3 
        </mn> 
       </msup> 
      </mrow> 
     </math> respectively. The distillation output feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          M 
        </mi> 
        <mi>
          i 
        </mi> 
       </msup> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           ∈ 
         </mo> 
         <mn>
           1 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           2 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           3 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> consists of the output feature 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mover accent="true"> 
         <mi>
           S 
         </mi> 
         <mo>
           ˜ 
         </mo> 
        </mover> 
        <mi>
          i 
        </mi> 
       </msup> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           ∈ 
         </mo> 
         <mn>
           1 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           2 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           3 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> of the support set after modulation and alignment and the feature 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msup> 
        <mi>
          D 
        </mi> 
        <mi>
          i 
        </mi> 
       </msup> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           ∈ 
         </mo> 
         <mn>
           1 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           2 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           3 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> output by the student decoder. The loss of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        i 
      </mi> 
     </math>-th layer is:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mi>
          i 
        </mi> 
       </msup> 
       <mo>
         = 
       </mo> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <mi>
         s 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msup> 
          <mi>
            Q 
          </mi> 
          <mi>
            i 
          </mi> 
         </msup> 
         <mo>
           , 
         </mo> 
         <msup> 
          <mi>
            D 
          </mi> 
          <mi>
            i 
          </mi> 
         </msup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         + 
       </mo> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <mi>
         s 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msup> 
          <mi>
            Q 
          </mi> 
          <mi>
            i 
          </mi> 
         </msup> 
         <mo>
           , 
         </mo> 
         <msup> 
          <mover accent="true"> 
           <mi>
             S 
           </mi> 
           <mo>
             ˜ 
           </mo> 
          </mover> 
          <mi>
            i 
          </mi> 
         </msup> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> (12)</p>
    <p>Each loss term 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         L 
       </mi> 
       <mi>
         o 
       </mi> 
       <mi>
         s 
       </mi> 
       <msup> 
        <mi>
          s 
        </mi> 
        <mi>
          i 
        </mi> 
       </msup> 
      </mrow> 
     </math> is composed of a value loss ( 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          L 
        </mi> 
        <mrow> 
         <mi>
           v 
         </mi> 
         <mi>
           a 
         </mi> 
         <mi>
           l 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>) and a direction loss ( 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          L 
        </mi> 
        <mrow> 
         <mi>
           d 
         </mi> 
         <mi>
           i 
         </mi> 
         <mi>
           r 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math>).</p>
    <p>During the testing stage, the anomaly map ( 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        Ω 
      </mi> 
     </math>) is obtained through calculation, with a size of 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         w 
       </mi> 
       <mo>
         × 
       </mo> 
       <mi>
         h 
       </mi> 
      </mrow> 
     </math>. The pixel point 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           j 
         </mi> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> in the input feature map represents the feature value at the position 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           j 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. The calculation formula for the anomaly map is:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         Ω 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mi>
          x 
        </mi> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mstyle displaystyle="true"> 
        <msubsup> 
         <mo>
           ∏ 
         </mo> 
         <mrow> 
          <mi>
            n 
          </mi> 
          <mo>
            = 
          </mo> 
          <mn>
            1 
          </mn> 
         </mrow> 
         <mn>
           3 
         </mn> 
        </msubsup> 
        <mrow> 
         <mtext>
           Upsameple 
         </mtext> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <msubsup> 
            <mi>
              Ω 
            </mi> 
            <mrow> 
             <mi>
               i 
             </mi> 
             <mo>
               , 
             </mo> 
             <mi>
               j 
             </mi> 
            </mrow> 
            <mi>
              n 
            </mi> 
           </msubsup> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
       </mstyle> 
      </mrow> 
     </math> (13)</p>
    <p>where 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msubsup> 
        <mi>
          Ω 
        </mi> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           j 
         </mi> 
        </mrow> 
        <mi>
          n 
        </mi> 
       </msubsup> 
      </mrow> 
     </math> represents the degree to which the pixel point at the position 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           i 
         </mi> 
         <mo>
           , 
         </mo> 
         <mi>
           j 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> in the output feature map of the 
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>
        n 
      </mi> 
     </math>-th convolutional layer deviates from the normal data flow. Finally, the anomaly maps from three different layers are upsampled to a unified size and then multiplied for fusion to generate a comprehensive anomaly detection result.</p>
   </sec>
  </sec><sec id="s3">
   <title>3. Experimentation</title>
   <sec id="s3_1">
    <title>3.1. Experimental Environment and Dataset</title>
    <p>Our evaluation employs two widely-recognized anomaly detection (AD) benchmarks derived from real industrial scenarios, both designed for defect identification tasks.</p>
   </sec>
   <sec id="s3_2">
    <title>3.2. Experimental Setting and Evaluation Criteria</title>
    <p>In this study, the resolutions of all images in the MVTec AD <xref ref-type="bibr" rid="scirp.141407-20">
      [20]
     </xref> dataset were adjusted to ensure consistent input. The experiments followed the common procedures in the field of anomaly detection, performing anomaly detection and localization tasks on the data category by category. To optimize memory usage, the size of the memory cache item was set to 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         M 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         200 
       </mn> 
      </mrow> 
     </math>. In terms of the optimization strategy, the Adam optimizer was selected, with hyperparameters 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         β 
       </mi> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mn>
           0.5 
         </mn> 
         <mo>
           , 
         </mo> 
         <mn>
           0.999 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> and an initial learning rate of 0.005. The model was trained for 200 epochs with a batch size of 16.</p>
    <p>For industrial image anomaly detection, it’s necessary not only to identify anomalies but also to localize and segment abnormal regions. To comprehensively evaluate the performance of the algorithm, we adopt the following evaluation metrics:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mtext>
         ImageAUC 
       </mtext> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mtext>
           rank 
         </mtext> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mtext>
             Output 
           </mtext> 
           <mo>
             ∩ 
           </mo> 
           <mtext>
             Label 
           </mtext> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mrow> 
         <msub> 
          <mi>
            D 
          </mi> 
          <mi>
            n 
          </mi> 
         </msub> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (14)</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mtext>
         PixelAUC 
       </mtext> 
       <mo>
         = 
       </mo> 
       <mtext>
         Precision 
       </mtext> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mtext>
           TP 
         </mtext> 
        </mrow> 
        <mrow> 
         <mtext>
           TP 
         </mtext> 
         <mo>
           + 
         </mo> 
         <mtext>
           FP 
         </mtext> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (15)</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mtext>
         Recall 
       </mtext> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mtext>
           TP 
         </mtext> 
        </mrow> 
        <mrow> 
         <mtext>
           TP 
         </mtext> 
         <mo>
           + 
         </mo> 
         <mtext>
           FN 
         </mtext> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (16)</p>
    <p>
     <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mtext>
         F1-Score 
       </mtext> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mrow> 
         <mn>
           2 
         </mn> 
         <mtext>
           Precision 
         </mtext> 
         <mo>
           × 
         </mo> 
         <mtext>
           Recall 
         </mtext> 
        </mrow> 
        <mrow> 
         <mtext>
           Precision 
         </mtext> 
         <mo>
           + 
         </mo> 
         <mtext>
           Recall 
         </mtext> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (17)</p>
   </sec>
   <sec id="s3_3">
    <title>3.3. Experimental Results and Analysis</title>
    <p>To evaluate the effectiveness of the algorithm in this paper, the US <xref ref-type="bibr" rid="scirp.141407-11">
      [11]
     </xref> and MKD <xref ref-type="bibr" rid="scirp.141407-12">
      [12]
     </xref> method based on distillation, and the DiffNet <xref ref-type="bibr" rid="scirp.141407-22">
      [22]
     </xref> method based on few shot registration are selected as comparative experiments.</p>
    <p>According to the AUC index in <xref ref-type="table" rid="table1">
      Table 1
     </xref>, the BKD (Bidirectional Distillation) algorithm has significant advantages over the MKD and US methods.</p>
    <table-wrap id="table1">
     <label>
      <xref ref-type="table" rid="table1">
       Table 1
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141407-"></xref>Table 1. Comparison of training results of different models in terms of AUC at image-level/pixel-level on the MVTec dataset.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="23.29%" colspan="2"><p style="text-align:center">Image Size</p></td> 
       <td class="custom-bottom-td acenter" width="39.21%" colspan="3"><p style="text-align:center">128</p></td> 
       <td class="custom-bottom-td acenter" width="37.49%" colspan="3"><p style="text-align:center">256</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td custom-top-td acenter" width="23.29%" colspan="2"><p style="text-align:center">Category/Method</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="11.19%"><p style="text-align:center">US <xref ref-type="bibr" rid="scirp.141407-11">
          [11]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="12.94%"><p style="text-align:center">MKD <xref ref-type="bibr" rid="scirp.141407-12">
          [12]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="15.08%"><p style="text-align:center">BKD (ours)</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.78%"><p style="text-align:center">US <xref ref-type="bibr" rid="scirp.141407-11">
          [11]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="12.27%"><p style="text-align:center">MKD <xref ref-type="bibr" rid="scirp.141407-12">
          [12]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="14.44%"><p style="text-align:center">BKD (ours)</p></td> 
      </tr> 
      <tr> 
       <td rowspan="6" class="custom-top-td tbtextacenter" width="5.82%"><p style="text-align:center">Textures</p></td> 
       <td class="custom-top-td acenter" width="17.47%"><p style="text-align:center">Carpet</p></td> 
       <td class="custom-top-td acenter" width="11.19%"><p style="text-align:center">-/87.4</p></td> 
       <td class="custom-top-td acenter" width="12.94%"><p style="text-align:center">95.7/-</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">95.7/94.8</p></td> 
       <td class="custom-top-td acenter" width="10.78%"><p style="text-align:center">-/89.9</p></td> 
       <td class="custom-top-td acenter" width="12.27%"><p style="text-align:center">97.9/-</p></td> 
       <td class="custom-top-td acenter" width="14.44%"><p style="text-align:center">97.6/95.9</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Grid</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/95.0</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">92.8/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.7/92.7</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/96.2</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">93.7/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.3/96.8</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Leather</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/94.5</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">96.9/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.8/98.4</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/95.5</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">97.6/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">97.3/99.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Carpet tile</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/93.2</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">90.0/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">93.2/90.8</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/94.6</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">92.4/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">96.4/95.1</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Grid wood</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/89.3</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">85.8/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">92.6/89.0</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/91.1</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">90.5/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">94.9/95.1</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="17.47%"><p style="text-align:center">Average</p></td> 
       <td class="custom-bottom-td acenter" width="11.19%"><p style="text-align:center">-/91.9</p></td> 
       <td class="custom-bottom-td acenter" width="12.94%"><p style="text-align:center">92.2/-</p></td> 
       <td class="custom-bottom-td acenter" width="15.08%"><p style="text-align:center">95.0/93.1</p></td> 
       <td class="custom-bottom-td acenter" width="10.78%"><p style="text-align:center">-/93.5</p></td> 
       <td class="custom-bottom-td acenter" width="12.27%"><p style="text-align:center">94.4/-</p></td> 
       <td class="custom-bottom-td acenter" width="14.44%"><p style="text-align:center">96.9/94.2</p></td> 
      </tr> 
      <tr> 
       <td rowspan="11" class="custom-top-td tbtextacenter" width="5.82%"><p style="text-align:center">Objectes</p></td> 
       <td class="custom-top-td acenter" width="17.47%"><p style="text-align:center">Bottle</p></td> 
       <td class="custom-top-td acenter" width="11.19%"><p style="text-align:center">-/92.3</p></td> 
       <td class="custom-top-td acenter" width="12.94%"><p style="text-align:center">96.3/-</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">97.8/95.1</p></td> 
       <td class="custom-top-td acenter" width="10.78%"><p style="text-align:center">-/93.1</p></td> 
       <td class="custom-top-td acenter" width="12.27%"><p style="text-align:center">98.4/-</p></td> 
       <td class="custom-top-td acenter" width="14.44%"><p style="text-align:center">98.0/97.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Cable</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/81.6</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">92.5/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.8/91.3</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/86.8</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">97.2/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">96.8/90.5</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Capsule</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/95.5</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">95.9/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.4/87.6</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/96.8</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">99.0/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.8/94.7</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Hazelnut</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/93.3</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">96.6/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">98.3/90.9</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/96.5</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">99.0/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.8/94.5</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Metal nut</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/92.0</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">95.4/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">95.9/89.0</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/94.2</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">98.1/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">96.9/92.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Pill</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/95.3</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">92.6/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.9/92.0</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/96.1</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">96.5/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.0/96.3</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Screw</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/92.1</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">96.0/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">97.8/94.6</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/94.2</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">98.9/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.6/98.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Toothbrush</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/92.3</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">96.1/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">98.0/86.6</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/93.0</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">97.8/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">99.0/93.3</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Transistor</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/60.6</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">90.6/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">95.5/86.0</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/66.6</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">94.0/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">92.1/68.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="17.47%"><p style="text-align:center">Zipper</p></td> 
       <td class="acenter" width="11.19%"><p style="text-align:center">-/94.4</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">93.9/-</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">93.0/91.6</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">-/95.1</p></td> 
       <td class="acenter" width="12.27%"><p style="text-align:center">96.5/-</p></td> 
       <td class="acenter" width="14.44%"><p style="text-align:center">98.1/95.1</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td acenter" width="17.47%"><p style="text-align:center">Average</p></td> 
       <td class="custom-bottom-td acenter" width="11.19%"><p style="text-align:center">-/88.9</p></td> 
       <td class="custom-bottom-td acenter" width="12.94%"><p style="text-align:center">94.6/-</p></td> 
       <td class="custom-bottom-td acenter" width="15.08%"><p style="text-align:center">96.6/90.4</p></td> 
       <td class="custom-bottom-td acenter" width="10.78%"><p style="text-align:center">-/91.2</p></td> 
       <td class="custom-bottom-td acenter" width="12.27%"><p style="text-align:center">97.5/-</p></td> 
       <td class="custom-bottom-td acenter" width="14.44%"><p style="text-align:center">97.5/91.8</p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="23.29%" colspan="2"><p style="text-align:center">Total average</p></td> 
       <td class="custom-top-td acenter" width="11.19%"><p style="text-align:center">-/90.4</p></td> 
       <td class="custom-top-td acenter" width="12.94%"><p style="text-align:center">93.5/-</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">95.8/91.8</p></td> 
       <td class="custom-top-td acenter" width="10.78%"><p style="text-align:center">-/92.4</p></td> 
       <td class="custom-top-td acenter" width="12.27%"><p style="text-align:center">96.0/-</p></td> 
       <td class="custom-top-td acenter" width="14.44%"><p style="text-align:center">97.2/93.0</p></td> 
      </tr> 
     </table>
    </table-wrap>
    <fig id="fig5" position="float">
     <label>Figure 5</label>
     <caption>
      <title>Figure 5. The result of our method on the MVTec dataset.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId208.jpeg?20250321115057" />
    </fig>
    <p>Compared with other methods, our method improves the pixel-level and image-level AUROC indices at resolutions of 128 and 256. At high resolutions, the average indices perform well. Notably, at low resolutions, the image-level scores are more prominent. This is due to the fact that our method utilizes bidirectional knowledge distillation, giving full play to the advantages of anomaly detection. The experimental results are presented in <xref ref-type="fig" rid="fig5">
      Figure 5
     </xref>.</p>
    <p>Meanwhile, to verify the effectiveness of the method using few shot support set registration, the DiffNet <xref ref-type="bibr" rid="scirp.141407-22">
      [22]
     </xref> method based on few shot registration is selected for comparative experiments. The MVTec dataset is used for the F1-Score index test. One target category is selected, and support sets of different sizes are used for testing. The experimental results are shown in the following <xref ref-type="table" rid="table2">
      Table 2
     </xref>. Compared with DiffNe <xref ref-type="bibr" rid="scirp.141407-22">
      [22]
     </xref>, the F1-Score index of BKD on the MVTec dataset has increased by 3.2%, 4.1%, and 3.8% respectively.</p>
    <table-wrap id="table2">
     <label>
      <xref ref-type="table" rid="table2">
       Table 2
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141407-"></xref>Table 2. Comparison of results under different supported sets in terms of F1-Score on the MVTec dataset.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td rowspan="2" class="acenter" width="22.85%"><p style="text-align:center">Category</p></td> 
       <td class="custom-bottom-td acenter" width="28.02%" colspan="2"><p style="text-align:center">k = 2</p></td> 
       <td class="custom-bottom-td acenter" width="28.02%" colspan="2"><p style="text-align:center">k = 4</p></td> 
       <td class="custom-bottom-td acenter" width="28.01%" colspan="2"><p style="text-align:center">k = 8</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td custom-top-td acenter" width="15.08%"><p style="text-align:center">DiffNet+<xref ref-type="bibr" rid="scirp.141407-22">
          [22]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="12.94%"><p style="text-align:center">BKD(ours)</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="15.08%"><p style="text-align:center">DiffNet+<xref ref-type="bibr" rid="scirp.141407-22">
          [22]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="12.94%"><p style="text-align:center">BKD(ours)</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="15.08%"><p style="text-align:center">DiffNet+<xref ref-type="bibr" rid="scirp.141407-22">
          [22]
         </xref></p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="12.92%"><p style="text-align:center">BKD(ours)</p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="22.85%"><p style="text-align:center">Carpet</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">56.3</p></td> 
       <td class="custom-top-td acenter" width="12.94%"><p style="text-align:center">61.4</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">59.0</p></td> 
       <td class="custom-top-td acenter" width="12.94%"><p style="text-align:center">68.9</p></td> 
       <td class="custom-top-td acenter" width="15.08%"><p style="text-align:center">69.5</p></td> 
       <td class="custom-top-td acenter" width="12.92%"><p style="text-align:center">69.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Carpet tile</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">59.8</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">58.5</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">63.9</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">60.6</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">66.3</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">67.8</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Grid wood</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">40.9</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">55.7</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">50.9</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">60.2</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">69.0</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">66.3</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Toothbrush</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">54.0</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">74.8</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">54.8</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">79.3</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">54.5</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">83.8</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Transistor</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">96.6</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">80.3</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">98.2</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">68.0</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">98.0</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">81.2</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Zipper</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">48.8</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">68.9</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">49.9</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">70.4</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">52.5</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">74.5</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="22.85%"><p style="text-align:center">Average</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">59.4</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">66.6</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">62.8</p></td> 
       <td class="acenter" width="12.94%"><p style="text-align:center">67.9</p></td> 
       <td class="acenter" width="15.08%"><p style="text-align:center">68.3</p></td> 
       <td class="acenter" width="12.92%"><p style="text-align:center">72.1</p></td> 
      </tr> 
     </table>
    </table-wrap>
    <p>In cross-dataset benchmarking across MVTec AD and MPDD, we compared the proposed algorithm with state-of-the-art methods, using average F1-Score as the evaluation metric. <xref ref-type="table" rid="table3">
      Table 3
     </xref> demonstrate that the synergistic optimization strategy combining few-shot registration and bidirectional distillation achieves remarkable robustness in complex industrial defect detection scenarios, particularly maintaining stable classification boundaries under high-noise and multi-scale deformation conditions.</p>
    <table-wrap id="table3">
     <label>
      <xref ref-type="table" rid="table3">
       Table 3
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141407-"></xref>Table 3. Results of MVTec and MPDD dataset under the average F1-score index (k = 2).</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="21.56%"><p style="text-align:center">Dataset</p></td> 
       <td class="custom-bottom-td acenter" width="19.60%"><p style="text-align:center">US <xref ref-type="bibr" rid="scirp.141407-11">
          [11]
         </xref></p></td> 
       <td class="custom-bottom-td acenter" width="19.61%"><p style="text-align:center">MKD <xref ref-type="bibr" rid="scirp.141407-12">
          [12]
         </xref></p></td> 
       <td class="custom-bottom-td acenter" width="19.61%"><p style="text-align:center">DiffNet <xref ref-type="bibr" rid="scirp.141407-22">
          [22]
         </xref></p></td> 
       <td class="custom-bottom-td acenter" width="19.61%"><p style="text-align:center">BKD (ours)</p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="21.56%"><p style="text-align:center">MVTec <xref ref-type="bibr" rid="scirp.141407-20">
          [20]
         </xref></p></td> 
       <td class="custom-top-td acenter" width="19.60%"><p style="text-align:center">66.4</p></td> 
       <td class="custom-top-td acenter" width="19.61%"><p style="text-align:center">73.6</p></td> 
       <td class="custom-top-td acenter" width="19.61%"><p style="text-align:center">80.6</p></td> 
       <td class="custom-top-td acenter" width="19.61%"><p style="text-align:center">87.4</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="21.56%"><p style="text-align:center">MPDD <xref ref-type="bibr" rid="scirp.141407-21">
          [21]
         </xref></p></td> 
       <td class="acenter" width="19.60%"><p style="text-align:center">50.6</p></td> 
       <td class="acenter" width="19.61%"><p style="text-align:center">57.7</p></td> 
       <td class="acenter" width="19.61%"><p style="text-align:center">59.4</p></td> 
       <td class="acenter" width="19.61%"><p style="text-align:center">62.8</p></td> 
      </tr> 
     </table>
    </table-wrap>
   </sec>
   <sec id="s3_4">
    <title>3.4. Ablation Experiment</title>
    <p>In this section, an ablation study of anomaly detection and localization is carried out on the MVTEC dataset.</p>
    <p>As shown in <xref ref-type="table" rid="table4">
      Table 4
     </xref>, the “Augment” module refers to support-set augmentation, the “Memory” module is the memory module, and the “DCN” is the feature alignment network. For all categories within the dataset, the macro average AUC values are presented. The methods highlighted in bold demonstrate the best performance.</p>
    <p>The results in the table clearly indicate that these modules significantly enhance the detection metrics.</p>
    <table-wrap id="table4">
     <label>
      <xref ref-type="table" rid="table4">
       Table 4
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141407-"></xref>Table 4. Ablation studies of anomaly detection.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td rowspan="2" class="acenter" width="38.80%" colspan="3"><p style="text-align:center">Category</p></td> 
       <td class="custom-bottom-td acenter" width="61.20%" colspan="6"><p style="text-align:center">MVTec <xref ref-type="bibr" rid="scirp.141407-20">
          [20]
         </xref></p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td custom-top-td acenter" width="30.59%" colspan="3"><p style="text-align:center">image</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="30.61%" colspan="3"><p style="text-align:center">pixel</p></td> 
      </tr> 
      <tr> 
       <td class="custom-bottom-td custom-top-td acenter" width="14.00%"><p style="text-align:center">Augment</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="14.02%"><p style="text-align:center">Memory</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.78%"><p style="text-align:center">DCN</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.19%"><p style="text-align:center">k = 2</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.20%"><p style="text-align:center">k = 4</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.20%"><p style="text-align:center">k = 8</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.20%"><p style="text-align:center">k = 2</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.20%"><p style="text-align:center">k = 4</p></td> 
       <td class="custom-bottom-td custom-top-td acenter" width="10.20%"><p style="text-align:center">k = 8</p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="14.00%"><p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="14.02%"><p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="10.78%"><p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="10.19%"><p style="text-align:center">75.0</p></td> 
       <td class="custom-top-td acenter" width="10.20%"><p style="text-align:center">77.8</p></td> 
       <td class="custom-top-td acenter" width="10.20%"><p style="text-align:center">79.1</p></td> 
       <td class="custom-top-td acenter" width="10.20%"><p style="text-align:center">89.0</p></td> 
       <td class="custom-top-td acenter" width="10.20%"><p style="text-align:center">91.2</p></td> 
       <td class="custom-top-td acenter" width="10.20%"><p style="text-align:center">94.5</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="14.00%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="14.02%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="10.19%"><p style="text-align:center">79.2</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">83.4</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">88.2</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">92.4</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">95.6</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">97.6</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="14.00%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="14.02%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="10.19%"><p style="text-align:center">80.3</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">82.4</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">86.0</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">91.2</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">94.5</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">97.0</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="14.00%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="14.02%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.19%"><p style="text-align:center">79.1</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">83.3</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">83.7</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">90.8</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">93.8</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">96.3</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="14.00%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="14.02%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center"></p></td> 
       <td class="acenter" width="10.19%"><p style="text-align:center">82.4</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">86.7</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">87.8</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">94.7</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">95.6</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">97.1</p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="14.00%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="14.02%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.78%"><p style="text-align:center">√</p></td> 
       <td class="acenter" width="10.19%"><p style="text-align:center">84.5</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">88.3</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">90.0</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">94.6</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">95.4</p></td> 
       <td class="acenter" width="10.20%"><p style="text-align:center">97.9</p></td> 
      </tr> 
     </table>
    </table-wrap>
    <p>A qualitative analysis from the perspective of the feature space was conducted for the memory module. As shown in <xref ref-type="fig" rid="fig6">
      Figure 6
     </xref>, by visualizing the feature maps of the student network, it can be observed that the introduction of the memory module helps to increase the feature distance between anomalies, enabling better anomaly responses.</p>
    <fig id="fig6" position="float">
     <label>Figure 6</label>
     <caption>
      <title><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId212.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId213.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId214.jpeg?20250321115058" /></p>(a) (b) (c)Figure 6. Test results comparison. (a) Original image and mask. (b) Memory module is not configured. (c) Configure the memory module.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="" />
    </fig>
    <fig id="fig6" position="float">
     <label>Figure 6</label>
     <caption>
      <title><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId212.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId213.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId214.jpeg?20250321115058" /></p>(a) (b) (c)Figure 6. Test results comparison. (a) Original image and mask. (b) Memory module is not configured. (c) Configure the memory module.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId209.jpeg?20250321115058" />
    </fig>
    <fig id="fig6" position="float">
     <label>Figure 6</label>
     <caption>
      <title><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId212.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId213.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId214.jpeg?20250321115058" /></p>(a) (b) (c)Figure 6. Test results comparison. (a) Original image and mask. (b) Memory module is not configured. (c) Configure the memory module.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId210.jpeg?20250321115058" />
    </fig>
    <fig id="fig6" position="float">
     <label>Figure 6</label>
     <caption>
      <title><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId212.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId213.jpeg?20250321115058" /></p><p class="imgGroupCss_v"><img class=" imgMarkCss lazy" data-original="https://html.scirp.org/file/2313054-rId214.jpeg?20250321115058" /></p>(a) (b) (c)Figure 6. Test results comparison. (a) Original image and mask. (b) Memory module is not configured. (c) Configure the memory module.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId211.jpeg?20250321115058" />
    </fig>
    <p>Additionally, an ablation study was performed on the data augmentation aspect for different transformation versions (when k = 2, T stands for shift, and R stands for rotation). <xref ref-type="table" rid="table5">
      Table 5
     </xref> shows the macro average AUC values under various data augmentation methods. The best performing methods are shown in bold.</p>
    <table-wrap id="table5">
     <label>
      <xref ref-type="table" rid="table5">
       Table 5
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.141407-"></xref>Table 5. Ablation studies of different transformation.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="10.99%"><p style="text-align:center">Data</p></td> 
       <td class="custom-bottom-td acenter" width="9.21%"><p style="text-align:center">No DCN</p></td> 
       <td class="custom-bottom-td acenter" width="7.15%"><p style="text-align:center">T</p></td> 
       <td class="custom-bottom-td acenter" width="7.16%"><p style="text-align:center">R</p></td> 
       <td class="custom-bottom-td acenter" width="7.16%"><p style="text-align:center">Scale</p></td> 
       <td class="custom-bottom-td acenter" width="9.16%"><p style="text-align:center">Shear</p></td> 
       <td class="custom-bottom-td acenter" width="9.17%"><p style="text-align:center">R + scale</p></td> 
       <td class="custom-bottom-td acenter" width="9.17%"><p style="text-align:center">T + scale</p></td> 
       <td class="custom-bottom-td acenter" width="9.17%"><p style="text-align:center">T + R</p></td> 
       <td class="custom-bottom-td acenter" width="12.73%"><p style="text-align:center">T + R + scale</p></td> 
       <td class="custom-bottom-td acenter" width="8.92%"><p style="text-align:center">Affine</p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="10.99%"><p style="text-align:center">MVTec</p></td> 
       <td class="custom-top-td acenter" width="9.21%"><p style="text-align:center">82.8</p></td> 
       <td class="custom-top-td acenter" width="7.15%"><p style="text-align:center">83.2</p></td> 
       <td class="custom-top-td acenter" width="7.16%"><p style="text-align:center">85.5</p></td> 
       <td class="custom-top-td acenter" width="7.16%"><p style="text-align:center">84.2</p></td> 
       <td class="custom-top-td acenter" width="9.16%"><p style="text-align:center">83.8</p></td> 
       <td class="custom-top-td acenter" width="9.17%"><p style="text-align:center">85.9</p></td> 
       <td class="custom-top-td acenter" width="9.17%"><p style="text-align:center">84.8</p></td> 
       <td class="custom-top-td acenter" width="9.17%"><p style="text-align:center">84.0</p></td> 
       <td class="custom-top-td acenter" width="12.73%"><p style="text-align:center">84.3</p></td> 
       <td class="custom-top-td acenter" width="8.92%"><p style="text-align:center">84.6</p></td> 
      </tr> 
     </table>
    </table-wrap>
    <p>Additionally, under unified conditions (MVTec dataset, 256 × 256 resolution, RTX 4070 Ti GPU, WideResNet50 backbone), As is shown in <xref ref-type="fig" rid="fig7">
      Figure 7
     </xref>, BKD achieves the highest F1-Score (87.5%) with 21.3 M parameters and 42.8 ms latency, DiffNet maintains efficiency with 15.4 M parameters and 32.1 ms, while US performs the worst (66.4%), and MKD sits in between with 13.5 M parameters and 40.5 ms. In industrial inspection scenarios, BKD significantly improves detection performance at an acceptable inference time cost, making it suitable for applications sensitive to missed detection rates.</p>
    <fig id="fig7" position="float">
     <label>Figure 7</label>
     <caption>
      <title>Figure 7. The structure of OCBE.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/2313054-rId215.jpeg?20250321115058" />
    </fig>
   </sec>
  </sec><sec id="s4">
   <title>4. Conclusion</title>
   <p>This study focuses on industrial visual anomaly detection, using anomaly image datasets as the research object. Based on the theory of unsupervised knowledge distillation, it makes improvements from two aspects: network structure and memory information, aiming to enhance the performance and efficiency of anomaly detection. By optimizing the network architecture design and establishing relevant theoretical models, a bidirectional distillation network architecture is proposed. This algorithm reduces misjudgments caused by pseudo anomalies and alleviates the “normalcy forgetting” problem. Extensive experiments on public datasets have verified that it has significantly improved in terms of both accuracy and speed, providing new ideas and references for industrial anomaly detection. However, the study has limitations. For example, the adaptability of the algorithm to multiple scenarios in actual industrial settings has not been fully verified. Future research will focus on exploring more challenging multi-scenario anomaly detection algorithms to validate and optimize the method proposed in this paper further and unlock its potential in a wider range of industrial applications.</p>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.141407-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Tao, X., Gong, X., Zhang, X., Yan, S. and Adak, C. (2022) Deep Learning for Unsupervised Anomaly Localization in Industrial Images: A Survey. IEEE Transactions on Instrumentation and Measurement, 71, 1-21. &gt;https://doi.org/10.1109/tim.2022.3196436 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Chalapathy, R., Khoa, N.L.D. and Chawla, S. (2020). Robust Deep Learning Methods for Anomaly Detection. Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery&amp;Data Mining, California, 6-10 July 2020, 3507-3508. &gt;https://doi.org/10.1145/3394486.3406704 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Erfani, S.M., Rajasegarar, S., Karunasekera, S. and Leckie, C. (2016) High-Dimensional and Large-Scale Anomaly Detection Using a Linear One-Class SVM with Deep Learning. Pattern Recognition, 58, 121-134. &gt;https://doi.org/10.1016/j.patcog.2016.03.028 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Ruff, L., Vandermeulen, R., Goernitz, N., Deecke, L., Siddiqui, S.A., Binder, A. and Kloft, M. (2018) Deep One-Class Classification. 2018 International Conference on Machine Learning, Stockholm, 10-15 July 2018, 4393-4402.
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Zhou, Y., Liang, X., Zhang, W., Zhang, L. and Song, X. (2021) Vae-Based Deep SVDD for Anomaly Detection. Neurocomputing, 453, 131-140. &gt;https://doi.org/10.1016/j.neucom.2021.04.089 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Yi, J. and Yoon, S. (2021) Patch SVDD: Patch-Level SVDD for Anomaly Detection and Segmentation. In: Lecture Notes in Computer Science, Springer, 375-390. &gt;https://doi.org/10.1007/978-3-030-69544-6_23 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Defard, T., Setkov, A., Loesch, A. and Audigier, R. (2021) Padim: A Patch Distribution Modeling Framework for Anomaly Detection and Localization. In: Lecture Notes in Computer Science, Springer, 475-489. &gt;https://doi.org/10.1007/978-3-030-68799-1_35 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref8">
    <label>8</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Cohen, N. and Hoshen, Y. (2020) Sub-Image Anomaly Detection with Deep Pyramid Correspondences. &gt;https://arxiv.org/pdf/2005.02357 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref9">
    <label>9</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Chebotar, Y. and Waters, A. (2016) Distilling Knowledge from Ensembles of Neural Networks for Speech Recognition. Inter Speech 2016, San Francisco, 8-12 September 2016, 3439-3443. &gt;https://doi.org/10.21437/interspeech.2016-1190 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref10">
    <label>10</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Chen, P., Liu, S., Zhao, H. and Jia, J. (2021) Distilling Knowledge via Knowledge Review. 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, 20-25 June 2021, 5006-5015. &gt;https://doi.org/10.1109/cvpr46437.2021.00497 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref11">
    <label>11</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Bergmann, P., Fauser, M., Sattlegger, D. and Steger, C. (2020) Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Seattle, 13-19 June 2020, 4182-4191. &gt;https://doi.org/10.1109/cvpr42600.2020.00424 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref12">
    <label>12</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Salehi, M., Sadjadi, N., Baselizadeh, S., Rohban, M.H. and Rabiee, H.R. (2021) Multiresolution Knowledge Distillation for Anomaly Detection. 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, 20-25 June 2021, 14897-14907. &gt;https://doi.org/10.1109/cvpr46437.2021.01466 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref13">
    <label>13</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Yamada, S. and Hotta, K. (2021) Reconstruction Student with Attention for Student-Teacher Pyramid Matching. &gt;https://arxiv.org/pdf/2111.15376 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref14">
    <label>14</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Deng, H. and Li, X. (2022) Anomaly Detection via Reverse Distillation from One-Class Embedding. 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), New Orleans, 18-24 June 2022, 9727-9736. &gt;https://doi.org/10.1109/cvpr52688.2022.00951 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref15">
    <label>15</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Gu, Z., Liu, L., Chen, X., Yi, R., Zhang, J., Wang, Y., et al. (2023) Remembering Normality: Memory-Guided Knowledge Distillation for Unsupervised Anomaly Detection. 2023 IEEE/CVF International Conference on Computer Vision (ICCV), Paris, 1-6 October 2023, 16355-16363. &gt;https://doi.org/10.1109/iccv51070.2023.01503 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref16">
    <label>16</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Liu, X., Wang, J., Leng, B. and Zhang, S. (2024) Dual-Modeling Decouple Distillation for Unsupervised Anomaly Detection. Proceedings of the 32nd ACM International Conference on Multimedia, Melbourne, 28 October-1 November 2024, 5035-5044. &gt;https://doi.org/10.1145/3664647.3681669 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref17">
    <label>17</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Cao, W. and Chen, X. (2019) Deformable Convolutional Networks Tracker. DEStech Transactions on Computer Science and Engineering, 2475-8841. &gt;https://doi.org/10.12783/dtcse/iteee2019/28747 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref18">
    <label>18</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Zhu, X., Hu, H., Lin, S. and Dai, J. (2019) Deformable ConvNets V2: More Deformable, Better Results. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Long Beach, 15-20 June 2019, 9300-9308. &gt;https://doi.org/10.1109/cvpr.2019.00953 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref19">
    <label>19</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Batagelj, V., Doreian, P., et al. (2014) Understanding Large Temporal Networks and Spatial Networks. Wiley.
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref20">
    <label>20</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Bergmann, P., Fauser, M., Sattlegger, D. and Steger, C. (2019) Mvtec AD—A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Long Beach, 15-20 June 2019, 9584-9592. &gt;https://doi.org/10.1109/cvpr.2019.00982 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref21">
    <label>21</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Jezek, S., Jonak, M., Burget, R., Dvorak, P. and Skotak, M. (2021) Deep Learning-Based Defect Detection of Metal Parts: Evaluating Current Methods in Complex Conditions. 2021 13th International Congress on Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), Brno, 25-27 October 2021, 66-71. &gt;https://doi.org/10.1109/icumt54235.2021.9631567 
    </mixed-citation>
   </ref>
   <ref id="scirp.141407-ref22">
    <label>22</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Rudolph, M., Wandt, B. and Rosenhahn, B. (2021) Same but Different: Semi-Supervised Defect Detection with Normalizing Flows. 2021 IEEE Winter Conference on Applications of Computer Vision (WACV), Waikoloa, 3-8 January 2021, 1906-1915. &gt;https://doi.org/10.1109/wacv48630.2021.00195
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>