Method and system for quality control
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- FEI CO
- Filing Date
- 2024-01-10
- Publication Date
- 2026-08-04
AI Technical Summary
[0006] Additional features and advantages of this disclosure will be set forth in the following description, and some features and advantages will be apparent from the description or may be learned by practice of the disclosure. The features and advantages of this disclosure can be realized and obtained by means of the instruments and combinations disclosed herein. These and other features of the disclosure will become more fully apparent from the following description and the appended claims, or may be learned by practice of the disclosure as set forth below.
Smart Images

Figure CN122514765A_ABST
Abstract
Description
Technical Field
[0001] Various examples generally involve microscope components, instruments, systems, and methods for quality control, and specifically involve performing quality checks on samples based on spectral sample data obtained from the microscope system. Summary of the Invention
[0002] In some respects, the techniques described herein relate to a method for quality control, which is performed by an electronic processing device and includes: receiving a spectrum collected from a sample; inputting the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class; and indicating whether the spectrum is a member of the class based on the output from the trained autoencoder.
[0003] In some aspects, the technology described herein relates to a system comprising: a source; a detector for acquiring spectral data in response to irradiating a sample with the source; and an electronic processor configured to execute computer-readable instructions stored in a non-transitory medium to: receive a spectrum acquired from the sample by the detector; input the spectrum to an autoencoder trained with a plurality of training spectra belonging to a class; and indicate whether the spectrum is a member of a class based on the output from the trained autoencoder.
[0004] In some respects, the techniques described herein relate to a non-transitory computer-readable storage medium comprising executable instructions, wherein the executable instructions cause an electronic processor to: receive a spectrum collected from a sample; input the spectrum to an autoencoder trained with a plurality of training spectra belonging to a class; and indicate whether the spectrum is a member of the class based on the output from the trained autoencoder.
[0005] The purpose of this summary is to introduce, in a simplified form, the selection of concepts further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an indication of the scope of the claimed subject matter.
[0006] Additional features and advantages of this disclosure will be set forth in the following description, and some features and advantages will be apparent from the description or may be learned by practice of the disclosure. The features and advantages of this disclosure can be realized and obtained by means of the instruments and combinations disclosed herein. These and other features of the disclosure will become more fully apparent from the following description and the appended claims, or may be learned by practice of the disclosure as set forth below. Attached Figure Description
[0007] The foregoing aspects and many accompanying advantages of this disclosure will become more readily understood when taken in conjunction with the accompanying drawings and the following detailed description.
[0008] Figure 1 This is a block diagram illustrating an example scientific instrument based on some implementation schemes.
[0009] Figure 2 It is a block diagram of an example computing device configured to perform at least some scientific instrument-supported operations according to various implementation schemes.
[0010] Figure 3 This is an example based on some implementation schemes. Figure 1 A block diagram of an automatic encoder used in scientific instruments.
[0011] Figure 4 This is an example based on some implementation schemes. Figure 3 A block diagram of the neural network used in the autoencoder.
[0012] Figure 5 The text describes training using the OCC method according to some implementation schemes. Figure 3 Example potential space for autoencoders.
[0013] Figure 6 This is a graph showing examples of spectral data according to some implementation schemes.
[0014] Figure 7A and Figure 7B This is a flowchart of a method for providing QC inspection of a sample according to one or more embodiments of this disclosure.
[0015] Figure 8 It is a method for training according to one or more embodiments of this disclosure. Figure 7A and Figure 7B The flowchart of the method using the QC model.
[0016] Figure 9 This is a block diagram illustrating an example of determining whether a sample is a member of a class based on a reconstruction error construction technique according to one or more embodiments of this disclosure.
[0017] Figure 10 This is a block diagram illustrating an example of determining whether a sample is a member of a class based on a potential parameter space comparison technique according to one or more embodiments of this disclosure.
[0018] While this technology is susceptible to various modifications and alternatives, specific embodiments have been illustrated by examples in the accompanying drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the specific forms disclosed. Rather, the invention is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. Detailed Implementation
[0019] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art. In case of any conflict, this document (containing the definitions) shall prevail. While similar or equivalent methods and systems to those described herein may be used to practice or test this disclosure, exemplary methods and systems are described below. All publications, patent applications, patents, and other references mentioned herein are incorporated herein by reference in their entirety. The systems, methods, and examples disclosed herein are merely illustrative and not limiting.
[0020] As used herein, the term “or” is intended to mean inclusive “or” rather than exclusive “or.” That is, unless otherwise specified or clearly apparent from the context, “X uses A or B” is intended to mean any natural inclusive permutation. That is, if X uses A, X uses B, or X uses both A and B, then “X uses A or B” is satisfied in any of the foregoing examples. Furthermore, unless otherwise specified or clearly apparent from the context that a singular form is involved, the article “a” as used in this specification and figures should generally be interpreted as meaning “one or more”.
[0021] Furthermore, unless otherwise specified, the numbers used to express quantities, components, distances, or other measures in the specification and claims should be understood to be modified by the term "about". The terms "about", "approximately", and "substantially", or their equivalents, indicate a quantity or condition that is close to still performing the desired function or achieving the desired result. For example, the terms "approximately", "about", and "substantially" may refer to a quantity or condition that deviates from the specified quantity or condition by less than 10%, or less than 5%, or less than 1%, or less than 0.1%, or less than 0.01%.
[0022] The reference to “an embodiment” or “implementation” in this document means that a particular feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment of this disclosure. The phrase “according to an embodiment” appearing throughout the specification does not necessarily refer to the same embodiment, nor is it necessarily a separate or alternative embodiment that is mutually exclusive with other embodiments. The same applies to the term “specific implementation”.
[0023] This disclosure is described with reference to the accompanying drawings, wherein the same reference numerals are used throughout to refer to the same elements. In the following description, numerous specific details are set forth for purposes of explanation in order to better understand this disclosure. However, it will be apparent, however, that the systems and methods of this disclosure can be practiced without one or more of these specific details. In other instances, well-known structures and apparatuses are shown in block diagram form to facilitate the description of the systems and methods of this disclosure. There is no specific requirement that a system, method, or technique related to microscope image analysis includes all the details characterized herein to obtain some of the benefits according to this disclosure. Therefore, the specific examples characterized herein are intended as illustrative applications of the described techniques and alternatives may also be employed.
[0024] The systems and methods described herein generally relate to quality control (QC) checks on scientific data (such as spectral data) generated using spectral modes. More specifically, the described systems and methods provide QC models that can be used to perform QC checks on provided sample data. That is, based on the spectral data obtained from the sample, the QC model automatically determines whether the sample meets one or more quality control parameters and accepts or rejects the sample based on that determination. In some applications, the QC model may receive spectral data (e.g., the singular form of spectral data) as input. As described herein, the QC model may include one or more (e.g., multiple) neural networks for processing the input data.
[0025] In some applications, QC checks can be referenced below. Figure 1 The scientific instrument 100 described implements this. Various integrated spectral modes are available for acquiring spectral data. QC checks may need to be performed on the acquired spectral data. However, these QC checks typically require a knowledgeable spectroscopist (e.g., a user of the scientific instrument) to create a QC model. For example, a QC model can be generated using selective peaks (or the absence of peaks) in the spectrum, and the generated QC model can be used to identify quality problems in the sample. For example, the QC model may receive one or more outputs or parameters from one or more instruments, such as, for example, ultraviolet (UV) absorbance, Fourier transform infrared (FTIR), optical emission spectroscopy (OES), etc. In some cases, spectral data from both good and bad samples are used to create these models. While these models provide good QC control, they have some problems and drawbacks. For example, creating this type of model requires a knowledgeable spectroscopist and a large amount of data including data representing both "good" and "bad" samples. Furthermore, if no new quality defects exist in the original dataset, a model trained using both good and bad samples may miss such defects.
[0026] To address these and other issues, this paper employs a QC model based on autoencoders. A QC model may consist of only one autoencoder. The autoencoder can be a vectorized autoencoder, a variational autoencoder (VAE) (such as a deep neural network variational autoencoder), a sparse autoencoder, a denoising autoencoder, a contracting autoencoder (CAE), a convolutional autoencoder, a recursive autoencoder, a regularized autoencoder, a sequence-to-sequence autoencoder, etc. The autoencoder can be trained using a single-class classifier (OCC) approach, where the autoencoder is trained with the positive class (e.g., representing a set of "good" data samples) instead of the negative class (e.g., representing a set of "bad" data samples). In other words, the autoencoder is trained with the training spectra belonging to the class (e.g., positive data) instead of the spectra not belonging to the class (e.g., negative data). In some examples, the autoencoder is trained only with the training spectra belonging to the class. Through training, the autoencoder learns the spectral features of these good data samples and parameterizes these features into the parameters or coefficients of the autoencoder. The trained autoencoder is used to process spectra acquired from scientific instruments (e.g., from the detectors of scientific instruments). The output of the trained autoencoder is used to generate an indication of whether a spectrum is a member of a class. Thus, the QC model can decide whether a new sample passes a quality check, such as, for example, whether the new sample belongs to the class of good samples.
[0027] In some applications, the raw spectrum may be preprocessed before being processed by the trained autoencoder. This preprocessing may include noise reduction (such as background subtraction), normalizing the spectrum to a maximum value of 1, and / or binning the spectrum. An input vector for the QC model can be generated from the preprocessed spectrum. In some applications, similar preprocessing is performed on the training spectrum used to train the autoencoder.
[0028] A class can represent a spectrum that meets quality control parameters. Quality control parameters may include one or more of the following: sample identity, composition, or purity. A sample's quality control parameters are reflected in the characteristics or properties of its spectral data. Therefore, by analyzing its spectral data, it can be determined whether a sample meets the quality control parameters. In some examples, quality control parameters relate to the synthetic material and / or manufacturing (micrometer / nanometer) structure that meets applicable specifications. For example, some quality control parameters (inspections) may relate to pharmaceutical manufacturing, food production, battery manufacturing, etc.
[0029] Unlike binary and multi-class classification problems, where classes are assumed to be known and fixed during both training and inference, OCC methods generally require data from only one class (e.g., a known class, a normal class, or a "good" class) to be available during training, and the trained model identifies data from the known class during testing while rejecting data from other classes (e.g., an unknown class or anomaly class). Training autoencoders with OCC methods is advantageous because only positive data is required, not negative data. The smaller training data size reduces training time. Furthermore, high-quality negative data can be difficult to obtain compared to positive data. Therefore, the lack of need for negative data alleviates the burden on the user, who might otherwise need to train the autoencoder for every type of new sample.
[0030] Training data includes training spectra belonging to a class. In some implementations, each training spectrum covers the spectral space but not the selective peaks of the spectrum. In one example, the data points for each training spectrum correspond to a range of frequencies or wavenumbers at uniform intervals. In another example, the entire spectrum acquired via a detector of a scientific instrument is used to generate the training spectrum. By training using only selective peaks, the trained QC model can be more resistant to noise. Furthermore, this reduces the complexity and requirements for obtaining training data. The training spectra can cover the entire spectral space (e.g., the full spectrum) or can be reduced from a fully collected spectrum to a predetermined space.
[0031] Because a QC model can be trained to determine only whether a new sample falls within a quality group, the model is not necessarily tuned to a quality defect and can therefore automatically remove previously unseen defects. Creating a QC model using the OCC method can be automated, reducing QC model creation time. For example, a spectroscopist can provide spectral data samples that meet specific thresholds (“good” samples), which the QC inspection system uses to train a QC model using the OCC method. The QC model can then be used to automatically process sample data in real time during production. In one example, a user of a scientific instrument can obtain training spectra by measuring high-quality (or good) samples or samples that meet quality control parameters with the instrument, and use the training data to train an autoencoder (or QC model). In this way, the autoencoder can be adapted to the characteristics of a particular scientific instrument (e.g., the specific noise characteristics of a particular scientific instrument). In some examples, the user can further train the QC model using stored training spectra and / or simulated training spectra.
[0032] An autoencoder consists of an encoder and a decoder. The encoder receives an input vector representing the spectrum and maps it to one or more variables in a latent space (i.e., a latent space vector). The decoder generates an output vector representing the reconstructed spectrum based on one or more variables in the latent space. In one example, the autoencoder outputs the reconstructed spectrum. In another example, the autoencoder outputs a latent space vector.
[0033] Each of the encoder and decoder can be a corresponding neural network. The neural networks of the encoder and decoder can have the same structure, but can have an inverted topology. The neural network can have layers of processing elements. The layers of processing elements in the encoder map the input spectrum to variables in a latent space. The latent space has a reduced dimension compared to the dimension of the input vector. In one example, the latent space can be a 2D space. The mirror layer of the decoder's processing elements then reconstructs the variables in the latent space into a reconstructed spectrum. The number of layers included in the neural network can vary depending on the instrument used to generate the spectrum.
[0034] When trained with training spectra, the trained autoencoder captures the inherent structure of data for a given known class. As a result, samples from unknown classes may lead to larger reconstruction errors than data belonging to known classes. In some examples, the reconstruction error is calculated by comparing the input vector representing the original spectrum input to the autoencoder with the output vector representing the reconstructed spectrum output from the autoencoder. The QC model determines whether a sample spectrum belongs to a class by comparing the corresponding reconstruction error to an error threshold. By comparing the reconstruction error to the error threshold, spectral data from known classes can be identified, while data belonging to unknown classes can be rejected. For example, when the reconstruction error of a spectrum is below the error threshold, the spectrum is a member of the class; when the reconstruction error is not below the error threshold, the spectrum is not a member of the class. In one example, the error threshold may be predefined. In another example, the threshold error is defined or adjusted by the user of the scientific instrument. For example, the user can adjust the threshold error during or after training the QC model (or autoencoder). Sample spectra identified as members of a class can be saved or used as training spectra.
[0035] In various implementations, instead of determining whether a spectrum belongs to a class based on reconstruction errors of the QC model, the determination can be based on a latent space vector (e.g., based on a comparison of latent space parameters or a difference in latent space representations). For example, instead of an output vector or in addition to an output vector, the QC model can output a latent space vector (e.g., variables in the latent space). The latent space vector can be compared with a reference latent space vector generated from spectra belonging to the class (such as training data). The reference latent space vectors can be clustered, and the distance between the latent space vector of the sample of interest and the cluster can be calculated. In various implementations, a sample spectrum can be identified as a member of a class in response to a distance below a distance threshold. In some examples, a sample spectrum can be identified as a member of a class in response to its latent space vector being contained within a cluster. In some examples, the QC check can be performed using only the encoder of a trained autoencoder, and the decision on whether a sample spectrum belongs to a class can be made based on the encoder's output (i.e., the latent space vector).
[0036] In some examples, the autoencoder is a deep neural network variational autoencoder (VAE) trained using the OCC method. In some examples, the VAE receives an array of inputs (input vectors) and uses internal logic to compress them into a smaller number of values, then expands these values back into a complete array of numbers. Using a classifier, the VAE can be trained to understand classes (e.g., datasets) and then determine whether a given data sample resembles a member of a class or can be classified as a member of a class.
[0037] In some examples, each spectrum from the training spectra (e.g., representing “good” data samples) can be represented as an input vector with 1024 values. These input vectors are used to train the encoder / decoder of the VAE. The encoder reduces the 1024 values of the input vector to a reduced number of values, such as 2 values at the latent space or bottleneck. The trained VAE can be used to measure new test samples (test spectral data) by encoding / decoding new spectral data. The reconstruction error is calculated based on the VAE output. In various other specific implementations, the difference between the latent space representation of the new test sample and the latent space representation of the training data can be calculated. The test sample is considered good if the reconstruction error or the difference between the latent space representations is within an error threshold established by the “good” sample training dataset. The test sample is considered bad if the reconstruction error or the difference between the latent space representations is outside the error threshold. For further insight, the trained VAE can also be used to project the test spectral data from the test samples into the latent space, and a plot of the variables from the training spectra and / or the spectra of the test samples can be generated. Example scientific instruments
[0038] Figure 1 This is a block diagram illustrating a scientific instrument 100 (e.g., a Fourier transform infrared (“FTIR” system) according to some embodiments. In some embodiments, light is generated by a source 110. Common sources are heated silicon carbide elements, tungsten halogen lamps, and other heat sources. Other infrared sources may include Nernst emitters (operating at 2000°C) or plasma sources (Energetics-Hamamatsu) (operating at 10000°C–12000°C). In some embodiments, the light is optically coupled to an interferometer 112 (such as a Michelson interferometer, which includes mirrors scanning under the control of a controller 150).
[0039] In some embodiments, light from interferometer 112 is directed to sample 114 (e.g., positioned within sample compartment 115), and light emitted from sample 114 is detected by detector 118 in spectral form. In some embodiments, detector 118 is a mercury cadmium telluride (MCT) detector. In some embodiments, detector 118 is an indium antimonide (InSb) detector. In some embodiments, detector 118 is an indium arsenide (InAs) detector.
[0040] In some embodiments, the optical filter 116 filters the light from the sample 114 before it is received by the detector 118. In some cases, the filter 116 is placed in front of the detector 118. In some cases, the filter 116 is positioned near the focal point. In some cases, the filter 116 is positioned within the collimated beam.
[0041] In some embodiments, detector 118 and optical filter 116 are temperature-stable, such as by means of a cooler for detector 118. In some embodiments, depending on the application, the cooler is a thermoelectric cooler (TEC) or liquid nitrogen (LN2) and is controlled by controller 150 to stabilize the temperature of detector 118 and filter 116.
[0042] The controller 150 includes at least a processing device (e.g., an electronic processor) and a storage device (e.g., a non-transitory memory) for storing computer-readable instructions. By executing the computer-readable instructions in the processing device, the scientific instrument 100 is configured to perform the methods disclosed herein. Specifically, the scientific instrument 100 may be configured to control light delivered to the sample 114 by operating source 110 and / or interferometer 112. The scientific instrument 100 may be configured to collect one or more spectra of the light emitted from the sample 114 via detector 118. The scientific instrument 100 may be configured to analyze the spectra and output indications, images, and other information related to the sample 114 based on the detected signals. For example, the controller 150 may be configured to perform quality control checks using an autoencoder-based QC model. Examples of the controller 150 are provided in... Figure 2 The controller 150 is shown as a computing device. In some embodiments, the QC model may be implemented in a remote computing device communicatively connected to the controller 150. Spectral data may be transmitted to the remote computing device, and output from the QC model may be transmitted back to the controller 150.
[0043] Scientific instrument 100 is provided as an example device in which the QC model and training techniques described herein can be used to compare spectra or images and to determine whether sample data are outliers or members of a group; however, QC models and training techniques can be employed in any instrument or apparatus used to collect and classify information related to data samples. Other example scientific instruments that can be used to employ the described systems and methods include Raman instruments, ultraviolet (UV) absorbance instruments, spark optical emission spectroscopy (OES) instruments, laser-induced breakdown spectroscopy (LIBS) instruments, and the like. Example computing device
[0044] Figure 2 This is a block diagram of an example computing device 200 configured to perform at least some of the scientific instrument-supporting operations described herein, according to various embodiments. For example, in some embodiments, the computing device 200 implements a controller 150 (see...). Figure 1 At least some of the operations.
[0045] Figure 2The computing device 200 is illustrated as having multiple components, but any one or more of these components may be omitted or repeated depending on their suitability for the application and setup. In some embodiments, some or all of the components included in the computing device 200 may be attached to one or more motherboards and packaged in a housing. In some embodiments, some of these components may be manufactured onto a single system-on-a-chip (SoC) (e.g., the SoC may include one or more processing devices 202 and one or more storage devices 204). Additionally, in various embodiments, the computing device 200 may not include... Figure 2 One or more of the illustrated components may be included, but may include interface circuitry for coupling to the one or more components using any suitable interface, such as a Universal Serial Bus (USB) interface, a High Definition Multimedia Interface (HDMI) interface, a Controller Area Network (CAN) interface, a Serial Peripheral Interface (SPI) interface, an Ethernet interface, a wireless interface, or any other suitable interface. For example, computing device 200 may not include display device 210, but may include display device interface circuitry (e.g., connectors and driver circuitry) capable of coupling to an external display device 210.
[0046] Computing device 200 includes electronic processing device 202 (e.g., one or more processing devices, electronic processors, etc.). As used herein, the term "electronic processing device" means any device or part of a device that processes electronic data from registers and / or memory to convert that electronic data into other electronic data that can be stored in registers and / or memory. In various embodiments, electronic processing device 202 may include one or more digital signal processors (DSPs), application-specific integrated circuits (ASICs), central processing units (CPUs), graphics processing units (GPUs), server processors, or any other suitable processing devices.
[0047] Computing device 200 also includes storage device 204 (e.g., one or more storage devices). In various embodiments, storage device 204 may include one or more memory devices, such as random access memory (RAM) devices (e.g., static RAM (SRAM) devices, magnetic RAM (MRAM) devices, dynamic RAM (DRAM) devices, resistive RAM (RRAM) devices, and / or conductive bridged RAM (CBRAM) devices), hard disk drive-based memory devices, solid-state memory devices, network drives, cloud drives, or any combination of memory devices. In some embodiments, storage device 204 may include memory sharing a die with processing device 202. In such embodiments, the memory may be used as cache memory and may include, for example, embedded DRAM or spin-transfer torque magnetic random access memory (STT-MRAM). In some embodiments, storage device 204 may include a non-transitory computer-readable medium having instructions thereon that, when executed by one or more processing devices (e.g., electronic processing device 202), cause computing device 200 to perform any suitable method or portions of such methods disclosed herein.
[0048] The computing device 200 also includes an interface device 206 (e.g., one or more interface devices 206). In various embodiments, the interface device 206 may include one or more communication chips, connectors, and / or other hardware and software to manage communication between the computing device 200 and other computing devices. For example, the interface device 206 may include circuitry for managing wireless communication used to transmit data to and from the computing device 200. The term "wireless" and its derivatives can be used to describe circuits, devices, systems, methods, techniques, communication channels, etc., that can transmit data via modulated electromagnetic radiation through a non-solid medium. This term does not imply that the associated device does not contain any wires, although in some embodiments it may not contain any wires. The circuitry included in interface device 206 for managing wireless communications can implement any of a number of wireless standards or protocols, including but not limited to Institute of Electrical and Electronics Engineers (IEEE) standards, including Wi-Fi (IEEE 802.11 series), IEEE 802.16, the Long Term Evolution (LTE) project, and any amendments, updates, and / or revisions (e.g., Advanced LTE project, Ultra Mobile Broadband (UMB) project (also known as “3GPP2”), etc.). In some embodiments, the circuitry included in interface device 206 for managing wireless communications may operate according to Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Evolved HSPA (E-HSPA), or LTE networks. In some embodiments, the circuitry included in interface device 206 for managing wireless communications may operate according to Enhanced Data GSM Evolution (EDGE), GSM EDGE Radio Access Network (GERAN), Universal Terrestrial Radio Access Network (UTRAN), or Evolved UTRAN (E-UTRAN). In some embodiments, the circuitry included in interface device 206 for managing wireless communications may operate according to Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Telecommunications (DECT), Evolved Data Optimization (EV-DO) and its derivatives, as well as any other wireless protocol designated as 3G, 4G, 5G, and higher. In some embodiments, interface device 206 may include one or more antennas (e.g., one or more antenna arrays) configured to receive and / or transmit wireless signals.
[0049] In some embodiments, interface device 206 may include circuitry for managing wired communications, such as electrical communication protocols, optical communication protocols, or any other suitable communication protocol. For example, interface device 206 may include circuitry for supporting communications based on Ethernet technology. In some embodiments, interface device 206 may support both wireless and wired communications, and / or may support multiple wired communication protocols and / or multiple wireless communication protocols. For example, a first set of circuitry for interface device 206 may be dedicated to short-range wireless communications, such as Wi-Fi or Bluetooth, and a second set of circuitry for interface device 206 may be dedicated to long-range wireless communications, such as Global Positioning System (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, etc. In some other embodiments, a first set of circuitry for interface device 206 may be dedicated to wireless communications, and a second set of circuitry for interface device 206 may be dedicated to wired communications.
[0050] The computing device 200 may also include a battery / power circuit 208. In various embodiments, the battery / power circuit 208 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 200 to an energy source separate from the computing device 200 (e.g., coupled to an AC line power supply).
[0051] The computing device 200 may also include a display device 210 (e.g., one or more separate display devices). In various embodiments, the display device 210 may include any visual indicator, such as a head-up display, a computer monitor, a projector, a touch screen display, a liquid crystal display (LCD), a light-emitting diode display, or a flat panel display.
[0052] The computing device 200 may also include additional input / output (I / O) devices 212. In various embodiments, I / O devices 212 may include one or more data / signal transmission interfaces, audio I / O devices (e.g., microphones or microphone arrays, speakers, headphones, earphones, alarms, etc.), audio codecs, video codecs, printers, sensors (e.g., thermocouples or other temperature sensors, humidity sensors, pressure sensors, vibration sensors, etc.), image capture devices (e.g., one or more cameras), human-machine interface devices (e.g., keyboards, cursor control devices such as mice, styluses, trackballs, or touchpads), etc.
[0053] Depending on the specific implementation of scientific instrument 100 and / or instrument components (such as computing device 200), various components of interface device 206 and / or I / O device 212 may be configured to output suitable control signals for various components of scientific instrument 100, receive suitable control / telemetry signals from various components of scientific instrument 100, and receive measurement streams from various detectors of scientific instrument 100. In some examples, interface device 206 and / or I / O device 212 includes one or more analog-to-digital converters (ADCs) for converting received analog signals into a digital form suitable for operations performed by processing device 202 and / or storage device 204. In some additional examples, interface device 206 and / or I / O device 212 includes one or more digital-to-analog converters (DACs) for converting digital signals provided by processing device 202 and / or storage device 204 into an analog form suitable for transmission to corresponding components of scientific instrument 100. In some industrial applications of the Scientific Instrument 100, the various spectral modes integrated therein are used for quality control, for example, to determine whether synthesized materials and / or manufactured (micrometer / nanometer) structures meet applicable specifications. Automatic encoder
[0054] Figure 3 This is a block diagram illustrating an autoencoder 300 (i.e., a QC model) for performing QC checks on provided sample data according to some embodiments. In some examples, the autoencoder 300 is implemented using a computing device 200 appropriately coupled to relevant components of the scientific instrument 100 (e.g., as described above). In some examples, the autoencoder is implemented in a controller 150 of the scientific instrument 100. The autoencoder 300 includes an encoder 310 and a decoder 320. In various embodiments, each of the encoder 310 and the decoder 320 includes a corresponding neural network. In various embodiments, the encoder 310 and the decoder 320 together form a neural network.
[0055] Here, a neural network (NN) can be a nonlinear trainable circuit comprising multiple processing elements (PEs), also referred to as "neurons," "artificial neurons," or "NN nodes." In some implementations, the neural network can be implemented as a dedicated circuit, where different PEs are implemented as corresponding configurable sub-circuits connected by physical links forming a corresponding physical network. In some other implementations, the neural network can be computer-simulated or processor-simulated, in which case one or more electronic processors (e.g., Figure 2 202 in the NN is programmed to perform signal processing similar to that of the corresponding dedicated circuit. In some specific implementations, NN is a convolutional neural network (CNN) or a locally connected network.
[0056] Each PE of a neural network typically has connections to one or more other PEs. Multiple connections between PEs (physical or computer simulated) define the topology of the neural network. In some topologies, PEs are grouped into layers. Different layers may have different types of PEs, which are configured to perform different corresponding kinds of transformations on their inputs. Signals travel from the first PE layer (commonly referred to as the input layer) to the last PE layer (commonly referred to as the output layer). In some topologies, the neural network has one or more intermediate PE layers (commonly referred to as hidden layers) located between the input and output PE layers. Exemplary PE operations scale, sum, and bias incoming signals and use an activation function to produce an output signal, which is a static non - linear function of the biased sum. The resulting PE output can become one of the outputs in the neural network's output or be transmitted via corresponding connections to one or more other PEs. The respective weights and / or biases applied by an individual PE can be changed (e.g., optimized) during a training (learning) mode of operation and are typically fixed (i.e., constant) during a testing (working) mode of operation. In some examples, training a neural network auto - encoder model includes: tracking the error or loss of the training and test sets, and stopping training when the loss of the test set reaches a predetermined level, stops decreasing in subsequent training epochs, or a combination thereof.
[0057] The input to the NN encoder 310 is a K - dimensional (KD) vector 302. The configuration of the NN encoder 310 includes a set of weights and biases, denoted as θ. In some examples, the output of the NN encoder 310 is a k - dimensional (kD) vector 312, where k < K. The kD vector 312 is also referred to as a latent space vector or a hidden representation. The kD space corresponding to the vector 312 is called the latent space. Thereafter, the transformation performed by the NN encoder 310 is denoted as , where z and x represent the corresponding kD and KD vectors respectively. In the case of the variational auto - encoder 300, the latent space is stochastic (the NN encoder 310 outputs parameters to as a probability density). In some examples, the probability density is a Gaussian probability density. In such examples, the NN encoder 310 maps the input vector 302 to the mean and variance in the latent space. The NN decoder 320 then operates to sample from the latent distribution to perform the decoding operation. The input to the NN decoder 320 is the kD vector 312. The configuration of the NN decoder 320 includes a set of weights and biases, denoted as ϕ. The output of the NN decoder 320 is the KD vector 322. Thereafter, the transformation performed by the NN decoder 320 is denoted as . In various additional embodiments, other encoder / decoder architectures of the auto - encoder 300 are similarly used. Some of such additional embodiments in such additional embodiments use principal component analysis (PCA) to go from such larger k dimensions to smaller dimensions.
[0058] Since k is less than K, the NN encoder 310 performs dimensionality reduction. In machine learning, "dimensionality reduction" is the process of reducing the number of features describing data. The number of features is typically reduced through selection (keeping only some existing features) or extraction (creating a reduced number of new features based on old features). Dimensionality reduction can be used in many applications that rely on low-dimensional data. Dimensionality reduction can also be interpreted as data compression, where the encoder 310 compresses data from the initial space to the latent space, and the decoder 320 decompresses the data. Depending on the initial data distribution, the dimension of the latent space, and the encoder definition, data compression can be lossy, meaning that some information is lost during the encoding process and cannot be fully recovered through decoding. For example, due to information loss, the output vector 322 is often different from the input vector 302. The measure of information loss is the reconstructed log-likelihood. This metric measures how effectively the NN decoder 320 learns to reconstruct the input vector given the corresponding latent representation 312 of the input vector 302. The reconstruction error used to determine whether a sample spectrum belongs to a class can be determined based on the difference between the original spectrum and the output of the autoencoder.
[0059] During training (learning) the operating mode, two sets of weights and biases θ and ϕ for the autoencoder 300 are determined based on a loss function. In some examples, the loss function for the variational autoencoder 300 is constructed using negative log-likelihood with a regularization term. In some examples, when the autoencoder 300 is not a variational autoencoder, the loss function is mean squared error or mean absolute error. In some examples, the total loss function is... Decomposed into individual input vectors x i loss function The sum is as follows: (1) Where the function Represented as: (2) The first term represents vector x in the form of the expected negative log-likelihood E. i The reconstruction loss; and the second term is the encoder distribution. and potential spatial distribution The regularization term in the form of the weighted Kullback-Leibler (KL) divergence (D) between them, where It is a positive weighting factor. In some examples, the weighting factor is... =1. The first term of the loss function expressed by equation (2) "encourages" the decoder 320 to learn how well to reconstruct the data. When the decoder's output vector 322 fails to reconstruct the input vector 302 well, it means, in statistical terms, that the decoder 320 parameterizes a likelihood distribution that does not have much probability quality for the real data. According to the loss function expressed by equations (1)-(2), poor reconstruction will result in higher costs. The KL divergence between the latent posterior distribution and the (Gaussian) prior keeps the latent space regularized by forcing its distribution to approximate a Gaussian distribution. For example, when the encoder 310 outputs a latent representation z that differs from a standard normal Gaussian distribution, the loss function expressed by equations (1)-(2) imposes a corresponding penalty. Without the regularization term, the encoder 310 could give representations in different regions of the latent space for each input vector. However, the regularization term has the effect of keeping representations of "similar" input vectors close together in the latent space.
[0060] In some examples, during the training operation mode, the autoencoder 300 operates on the training set {x} i The appropriate gradient descent method is used to train the encoder 310 with respect to the parameters θ and decoder 320 to approximately minimize the loss function. For example, regarding step size In stochastic gradient descent, the encoder parameters θ are updated recursively and iteratively based on the gradient of the loss function, as follows: (3) The decoder parameter ϕ is updated in a similar manner. The iteration stops when the convergence criterion is met. The parameters θ and ϕ are then fixed for use in the test (working) operation mode of the autoencoder 300.
[0061] In some examples, vectors 302, 312, and 322 represent a single mode of scientific instrument 100. A mode may include FTIR or Raman spectroscopy. Input vector 302 may represent a single spectrum obtained from the corresponding spectral mode of scientific instrument 100. In further specific examples, the output of another single detector used in the corresponding spectral mode of scientific instrument 100 is similarly used to obtain input vector 302. In some examples, the dimension of the latent space is k=2, which makes the latent space relatively straightforward for user / operator viewing and inspection. In other examples, other dimension values k are similarly used.
[0062] In various implementations, the dimension value k of the latent space can be determined during training. For example, the latent space vector 312 can be a compressed representation of key features of the input vector 302. In some examples, the dimension value k can be set to a sufficiently large value to allow the autoencoder 300 to capture enough features of the input vector 302 so that the autoencoder 300 can accurately reconstruct the output vector 322. In various implementations, the dimension value k can be set to a sufficiently small value to allow the autoencoder 300 to avoid capturing noise in the representation of the input vector 302, thereby avoiding overfitting the autoencoder 300 to the training data (which may lead to poor generalization of the autoencoder 300 to new data). In various implementations, techniques such as grid search, random search, and / or Bayesian optimization can be used to find the optimal size of the dimension value k.
[0063] Figure 4 This is a block diagram illustrating an example neural network 400 used in an NN encoder 310 according to one embodiment. The neural network 400 has (N+2) layers 4100-410 N+1 Where N is a positive integer. Layer 4100 is the input layer. The next N layers are 4101-410. N It's a hidden layer. Layer 410 N+1 This is the output layer. In some specific examples, the number N is in the range of 1 to 4. In various examples, the neural network 400 implements the NN encoder 310 ( Figure 3 In various specific implementations, the NN decoder 320 ( Figure 3 The NN encoder 310 and NN decoder 320 can be a mirror representation of the neural network 400. For example, the architecture of the NN decoder 320 can generally reflect the architecture of the neural network 400, but in reverse order. In other examples, the NN encoder 310 and NN decoder 320 may have asymmetric architectures.
[0064] The i-th layer 410 of neural network 400 i With M i There are PE 402, where i = 0, 1, …, N+1. In various examples, the number M0 of PE 402 in the input layer 4100 corresponds to the input vector (e.g., Figure 3 The size of the vector 302). For some specific examples above, the number M0 is in the range of 500 to 5000. Output layer 410 N+1 The number M of PE 402 in N+1 This corresponds to the dimension of the latent space. In some examples, the autoencoder 300 may have a 2D latent space. In other examples, a latent space with other dimensions may be used. For example, as previously described, the encoder output layer 410... N+1The latent space can have any dimension smaller than that of the input layer 4100, suitable for capturing important features of the input vector. For hidden layers 4101-410... N For each of them, the corresponding number M i Typically, the numbers M0 and M N+1 Within the range between. In some examples, for two adjacent hidden layers 410 i and 410 i+1 The corresponding number of PE 402 satisfies the following inequality: M i ≥ M i+1 .like Figure 4 As shown, in some examples, the neural network has the following parameters: N=2, M0=7, M1=5, M2=3, and M3=2. In other examples, the neural network 400 has the following parameters: N=3, M0=512, M1=125, M2=50, M3=25, and M4=4. In various specific implementations, the parameters of the neural network 400 include, for example, the dimension of the input layer 410, the number of hidden layers N, the dimension of each hidden layer, and / or the encoder output layer 410. N+1 The dimensions (corresponding to the latent space) can be set to other values. For example, these parameters can be set based on the training dataset during training.
[0065] In various examples, the PEs 402 of the input layer 4100 are configured to receive corresponding components of the input vector. For example, each PE may receive a data point from the spectrum. Each PE in the PEs 402 of the subsequent layer 410 is directly connected to receive the corresponding input from each PE in the PEs 402 of the preceding layer 410. In some examples, the various PEs 402 operate using the Modified Linear Unit (ReLU) activation function. In other examples, other suitable activation functions may also be used (e.g., sigmoid function, leaky ReLU function, tanh function, SoftPlus function, exponential linear unit function, swish function, etc.).
[0066] In some examples, the neural network used in NN decoder 320 has an inverted topology, but in other respects it is similar to neural network 400. The inverted topology can be achieved by taking... Figure 4 The neural network 400 is shown as a mirror image for visualization. In this inverted topology, layer 410... N+1 Layer 4100 is configured to receive the corresponding input vector 312 from the latent space as an input layer operation. Layer 4100 is configured to output the output vector 322 as an output layer operation. Another way to visualize the neural network used in the NN decoder 320 is to observe neural network 400, such as... Figure 4 As shown, the signal flows in opposite directions (e.g., from layer 410). N+1Go to floor 4100.
[0067] Figure 5 The autoencoder 300 (trained using the OCC method as described above) is depicted. Figure 3 Example 2D latent space 500, where the training spectra belong to a class. For example, the training spectra are converted into input vectors and fed to the trained QC model. The latent space vector is output from the trained QC model and added to latent space 500. Latent space 500 represents a grouping of “good” samples. The x-axis and y-axis each correspond to a variable in the latent space. In one example, a spectroscopist can provide the training spectra (e.g., the spectral data samples they consider “good”) to be used with variables (such as... Figure 3 The latent space is filled with vector 312, which forms clusters representing samples that satisfy the quality control parameters. The provided training spectra are projected onto multiple variables in a lower-dimensional space (such as latent space 500). In latent space 500, if the corresponding variable of the sample spectrum in the latent space is outside the corresponding cluster defined by the training spectra belonging to a particular class, it can be determined that the sample spectrum does not belong to the class. In another example, if the difference between the sample spectrum and the spectrum reconstructed from the trained autoencoder is large, it can be determined that the sample spectrum does not belong to the class.
[0068] Figure 6 Figure 600 shows the spectrum 602 collected from the sample and input into the trained autoencoder. Spectrum 604 is the reconstructed spectrum generated by the trained autoencoder. As discussed herein, in various specific implementations, the autoencoder is trained to accurately reconstruct the input spectrum belonging to a known class. Therefore, in some examples, the difference between the input spectrum 602 and the reconstructed spectrum 604 (e.g., a large reconstruction error) may indicate that the input spectrum 602 does not belong to a known class. Figure 6 In the example, the reconstructed spectrum 604 has less noise compared to the original spectrum 602 (measured by instrument 100). However, because the difference between spectrum 602 and spectrum 604 (e.g., reconstruction error) is relatively large, spectrum 602 may be rejected by the QC model because it does not belong to a known class. Example process
[0069] Figure 7A and Figure 7B This is a flowchart of Example Process 700. Example Process 700 generally illustrates in more detail how the QC model can be used to perform QC checks on sample data. For clarity, the following description is in... Figures 1 to 6 The example procedure 700 is generally described in the context of the above. For example, the example procedure 700 may be derived from the above description of... Figure 2The example computing device 200 described is implemented using components. However, it will be understood that process 700 can be performed, for example, by any other suitable system, environment, software and hardware, or a combination of system, environment, software and hardware. In some embodiments, various operations of process 700 can be run in parallel, in combination, cyclically, or in any order.
[0070] At box 702, computing device 200 determines whether a trained QC model exists. For example, processing device 202 determines whether a trained QC model exists in storage device 204. In response to determining that no trained QC model exists ("No" at decision box 702), computing device 200 trains the QC model at box 704. Computing device 200 trains the QC model at box 704 and loads the trained QC model at box 706. In various specific embodiments, computing device 200 trains the QC model according to the techniques previously described. (See also...) Figure 8 Describe additional details associated with training the QC model.
[0071] In response to determining the existence of a trained QC model ("Yes" at decision box 702), the computing device loads the trained QC model at box 706. For example, processing device 202 may load the trained QC model from storage device 204. At box 708, computing device 200 selects a sample. The sample may be a sample of interest, such as sample 114. At box 710, computing device 200 acquires the spectrum associated with the selected sample. For example, computing device 200 may command scientific instrument 100 to generate the spectrum of sample 114. It should be understood that in some embodiments, computing device 200 may receive the desired spectrum without commanding or controlling scientific instrument 100 or other devices to generate the spectrum. For example, computing device 200 may select and retrieve previously generated spectra from a data storage location or system for processing.
[0072] At box 712, computing device 200 optionally preprocesses the acquired spectrum from 710. Preprocessing may include removing noise from the acquired spectrum. Noise may include background noise. In various embodiments, scientific instrument 100 is an FTIR spectrometer, and computing device 200 preprocesses the generated spectrum to reduce or eliminate spectral contributions from atmospheric noise, instrument noise, and / or other sources unrelated to sample 114. For example, computing device 200 may instruct scientific instrument 100 to collect background spectra without sample 114 in place (or such background spectra may be obtained from a data storage location). Computing device 200 may subtract the background spectrum from the generated spectrum. In various embodiments, computing device 200 may subtract the background spectrum from the generated spectrum according to direct subtraction techniques, multiplicative scattering correction (MSC), continuum removal, derivative spectroscopy, wavelet transform, spectral fitting, adaptive filtering, PCA-based correction, baseline correction, etc. In various embodiments, computing device 200 may perform additional noise reduction techniques (such as smoothing or filtering techniques that reduce noise while preserving important spectral features). Suitable techniques for performing preprocessing are described in U.S. Patent No. 7,471,390 and International Publication No. 2020 / 176698, the contents of which are expressly incorporated herein by reference.
[0073] At box 714, computing device 200 converts the preprocessed spectrum into an input vector for the QC model. For example, computing device 200 may normalize the values of the preprocessed spectrum to a common scale (e.g., normalized to...). or (values between). In various specific implementations, the computing device can normalize the spectrum according to the following equation (4), where It is a normalized spectrum. It is the original spectrum. It is the maximum value of the original spectrum, and It is the minimum value of the original spectrum. (4)
[0074] The computing device 200 may optionally apply dimensionality reduction techniques, such as PCA (or similar techniques), to the preprocessed spectrum to reduce the number of input features while preserving variance. The computing device 200 may bin the spectrum into ranges and assign values to each bin (e.g., based on the mean, sum, median, etc., of the values within each bin). The computing device 200 may then transform the binned values into an input vector.
[0075] At box 716, computing device 200 provides an input vector to a trained QC model. In various embodiments, the trained QC model generates an output vector (e.g., as previously described). In some examples, the trained QC model outputs a latent space vector (e.g., as previously described). At box 718, computing device 200 determines an error in the output vector. In various embodiments, the error may be a reconstruction error, which computing device 200 may determine according to any of the techniques previously described. Alternatively or additionally, the error may be a comparison of the latent space vector with a reference latent space including the latent space vectors of the training data (e.g., as previously described). Figure 5 (As described). It should be understood that any error technique can be used to classify samples, and in some embodiments, two techniques and the results of each technique can be combined or compared to determine the final classification.
[0076] In various implementations using latent space vectors as error techniques, computing device 200 determines the distance between the latent space vectors and a reference latent space. For example, the latent space vectors of the training data can be clustered, and computing device 200 calculates the distance between the clusters (e.g., the cluster centers) and the latent space vectors. In various implementations, the error can be distance. In some examples, computing device 200 determines whether a latent space vector is within a cluster, and the error indicates whether the latent space vector is within a cluster. In various implementations, computing device 200 clusters the latent space vectors of the training data according to techniques such as K-means clustering, hierarchical clustering, density-based spatial clustering with noisy applications (DBSCAN), Gaussian mixture models (GMM), spectral clustering, etc.
[0077] At decision box 720, computing device 200 determines whether the error is less than a threshold. In various implementations using reconstruction error techniques, the error can be the reconstruction error, and the threshold is a reconstruction error threshold. For example, the reconstruction error threshold can be predefined. In various implementations, the reconstruction error threshold can be the same as the reconstruction error threshold used during training. In some examples using latent space error techniques, the error can be the distance between the latent space vector and the cluster, and the threshold can be the distance value. In various implementations, the error can indicate whether the latent space vector is within a cluster (in such implementations, the error is below the threshold when the latent space vector is within a cluster).
[0078] In response to a determination error less than a threshold ("Yes" at decision box 720), computing device 200 determines at box 722 that the selected sample belongs to a class. As previously described, the class can be a known class. At box 724, computing device 200 optionally saves the data to the training data. For example, computing device 200 saves the latent space vector to the training data. From box 724, process 700 proceeds to decision box 726.
[0079] Returning to decision box 720, in response to the computing device 200 determining that the error is not less than a threshold ("No" at decision box 720), the computing device 200 determines at box 728 that the selected sample does not belong to a class. For example, the computing device 200 may determine that the selected sample belongs to an unknown class. At box 730, the computing device 200 may optionally save the data associated with the selected sample for failure analysis. At decision box 726, the computing device 200 determines whether data acquisition is complete. In various specific implementations, data acquisition may be complete when there are no more samples of interest to process. In response to the computing device 200 determining that data acquisition is not complete ("No" at decision box 726), process 700 proceeds to box 708, and the computing device 200 selects the next sample. In response to the computing device 200 determining that data acquisition is complete ("Yes" at decision box 726), process 700 proceeds to box 732, where the computing device 200 displays the results. For example, the processing device 202 displays on the display device 210 whether each selected sample belongs to a class, errors of each sample, etc.
[0080] Figure 8 This is a flowchart of Example Process 800. Example Process 800 generally illustrates in more detail how the QC model can be trained. For clarity, the following description is in... Figures 1 to 6 The example procedure 800 is generally described in the context of the above. For example, the example procedure 800 may be described by the above regarding Figure 2 The example computing device 200 described is a component implementation. However, it will be understood that process 800 can be performed, for example, by any other suitable system, environment, software and hardware, or a combination of system, environment, software and hardware. In some embodiments, various operations of process 800 can be run in parallel, in combination, cyclically, or in any order.
[0081] At decision box 802, computing device 200 determines whether training data exists. For example, processing device 202 may determine whether training data exists in storage device 204. Training data may include, for example, input vectors generated from samples considered "good". In various specific implementations, this may be based on previous references. Figure 7A and Figure 7BThe described technique is used to generate the input vector. In response to determining that training data exists ("Yes" at decision box 802), computing device 200 loads the training data at box 804, and process 800 proceeds to box 806. In response to determining that training data does not exist ("No" at decision box 802), computing device 200 selects a reference sample at box 808. Each reference sample may be considered "good". At box 810, computing device 200 obtains a reference spectrum from the reference sample (e.g., according to the previously described technique). At box 812, computing device 200 preprocesses the reference spectrum and generates training data by converting the preprocessed reference spectrum of each reference sample into an input vector for the QC model.
[0082] From box 812, process 800 proceeds to box 806. At box 806, computing device 200 trains the QC model. For example, computing device 200 trains the QC model according to any of the techniques described previously. In various specific implementations, computing device 200 sets the training parameters by determining the number of epochs (e.g., the number of times the loop traverses the entire training dataset) and the batch size. Computing device 200 may divide the training data into batches and run each batch of data through the QC model. For example, computing device 200 feeds each input vector of a batch to the QC model to generate an output vector. Computing device 200 may compute the reconstruction error between each corresponding input vector and output vector pair. After the loss is computed, computing device 200 works backward from the output layer of the QC model to the input layer of the QC model, computes the gradient of the loss function with respect to the weights and / or biases at each layer in the QC model. Computing device 200 computes the gradient of the loss function with respect to each parameter of the QC model (e.g., each weight and / or bias). At the end of each batch, computing device 200 applies an optimization algorithm to update the parameters of the QC model based on the calculated gradients. In various specific implementations, the optimization algorithm may be stochastic gradient descent (SGD), Nesterov accelerated gradient (NAG), Adagrad, RMSprop, Adam (adaptive momentum estimation), AdaDelta, Adamamax, etc.
[0083] At the end of each epoch, computing device 200 determines whether the loss has converged to below a threshold. In response to determining that the loss has converged to below the threshold, computing device 200 may determine that the QC model has been trained. At decision box 814, computing device 200 determines whether the QC model has been trained after looping through a set number of epochs of training data. In response to determining that the QC model has not been trained ("No" at decision box 814), computing device 200 acquires or loads additional training data at box 816, and process 700 returns to box 806. In response to determining that the QC model has been trained ("Yes" at decision box 814), in some examples, computing device 200 may use the training data and the trained QC model at 818 to generate a reference latent space vector. For example, computing device 200 feeds each input vector from the training data to the trained QC model, generates an associated latent space vector, and saves the associated latent space vector to the reference latent space as a reference latent space vector (e.g., as previously referenced). Figure 5 (As described). At box 820, computing device 200 indicates that the trained QC model is ready.
[0084] Figure 9 This is a block diagram 900 illustrating an example of determining whether a sample is a member of a class based on a reconstruction error construction technique (e.g., as previously described). In various specific implementations, a spectrum associated with the selected sample can be acquired (box 902). The spectrum can be preprocessed, and an input vector can be generated from the preprocessed spectrum (box 904). The input vector is fed to a trained QC model or autoencoder (box 906), which generates an output vector (box 908). The reconstruction error is calculated as the difference between the input vector and the output vector. The reconstruction error is compared to an error threshold (box 910). A decision can be made based on the reconstruction error regarding whether the spectrum belongs to or does not belong to a class (box 912). For example, in response to a reconstruction error below the error threshold, the spectrum may belong to a class. In response to a reconstruction error not below the error threshold, the spectrum may not belong to a class.
[0085] Figure 10This is a block diagram 1000 illustrating an example of determining whether a sample is a member of a class based on a latent parameter space comparison technique (e.g., as previously described). In various specific implementations, a spectrum associated with the selected sample can be acquired (box 1002). The spectrum can be preprocessed, and an input vector can be generated from the preprocessed spectrum (box 1004). The input vector is fed to a trained QC model or autoencoder (box 1006), which generates an output vector (box 1008). The latent space vector generated when the trained QC model computes the output vector is compared with a latent space vector from the training data (box 1010). A decision about whether the spectrum belongs to or does not belong to a class can be made based on the latent space parameter comparison. For example, in response to the latent space vector being within a distance in the latent space (or being contained within the latent space), the spectrum may belong to a class. In response to the latent space vector not being within a distance in the latent space (or not being contained within the latent space), the spectrum may not belong to a class.
[0086] Figures 9 to 10 Preprocessing boxes 904 and 1004 are shown as separate from QC models 906 and 1006. In some examples, the preprocessing step may be integrated with the QC model or may be part of the QC model.
[0087] It should be understood that the above description is intended to be illustrative and not restrictive. Many specific implementations and applications beyond the examples provided will become apparent upon reading the above description. The scope should not be determined by reference to the above description, but rather by reference to the appended claims and the full scope of their equivalents. Future developments in the art discussed herein are anticipated and intended, and the disclosed systems and methods will be incorporated into these future examples. In conclusion, it should be understood that this application is capable of modifications and variations.
[0088] All terms used in the claims are intended to be given their broadest reasonable interpretation and their ordinary meaning as understood by one of ordinary skill in the art as described herein, unless expressly indicated otherwise herein. Specifically, the use of singular articles such as “a,” “the,” “the,” etc., should be understood to enumerate one or more of the indicated elements, unless the claims enumerate an express limitation to the contrary.
[0089] An abstract is provided to allow the reader to quickly determine the nature of the technical disclosure. It should be understood that it will not be used to interpret or limit the scope or meaning of the claims. Furthermore, in the foregoing detailed description, it can be seen that various features are grouped together in various examples for the purpose of simplification. The method of this disclosure should not be construed as reflecting an intention that the claimed subject matter contains more features than expressly recited in each claim. Rather, as reflected in the following claims, the subject matter of the invention lies in fewer features than all of the individual disclosed examples. Therefore, the following claims are hereby incorporated into the detailed description, wherein each claim, in itself, is a separately claimed subject matter.
[0090] Unless otherwise expressly stated, each value and range should be interpreted as approximate, as if preceded by the words “about” or “approximate”.
[0091] Although the elements in the following method claims (if any) are described in a particular order with corresponding markings, these elements are not necessarily intended to be limited to being implemented in said particular order unless the description of the claims otherwise implies a particular order for implementing some or all of these elements.
[0092] Unless otherwise specified herein, the use of ordinal adjectives such as “first,” “second,” “third,” etc., to refer to one of a plurality of similar objects merely indicates that they refer to different instances of such similar objects and is not intended to imply that the similar objects referred to in this way must be in a corresponding order or sequence in time, space, hierarchy, or any other way.
[0093] Unless otherwise stated herein, the conjunction “if” can also be interpreted, in addition to its usual meaning, as meaning “when”, “at”, “in response to determination”, or “in response to detection”, depending on the specific context. For example, the phrase “if determination” or “if detection [the condition]” can be interpreted as meaning “when determination”, “in response to determination”, “when [the condition or event] is detected”, or “in response to detection [the condition or event]”.
[0094] For the purposes of this specification, the terms “coupled” and “connected” refer to any manner known in the art or hereafter developed in which energy or force is permitted to be transferred between two or more elements, and the insertion of one or more additional elements is contemplated, though not required. Conversely, the terms “directly coupled”, “directly connected,” etc., imply the absence of such additional elements.
[0095] The functionality of the various elements shown in the accompanying figures, including any functional blocks labeled “processor” and / or “controller,” can be provided by the use of dedicated hardware and hardware capable of executing software in association with appropriate software. When provided by a processor, the functionality can be provided by a single dedicated processor, a single shared processor, or multiple separate processors, some of which may be shared. Furthermore, the explicit use of the terms “processor” or “controller” should not be construed as exclusively referring to hardware capable of executing software, but may implicitly include, but is not limited to, digital signal processor (DSP) hardware, network processors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), read-only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage devices. Other conventional and / or custom hardware may also be included. Similarly, any switches shown in the figures are conceptual only. Their functionality can be performed by the operation of program logic, by dedicated logic, by the interaction of program control and dedicated logic, or even manually, as can be understood more specifically from the context; the specific technology may be chosen by the implementer.
[0096] As used herein, the term "circuit" may refer to one or more or all of the following: (a) a hardware circuit implementation only (such as an implementation only in analog and / or digital circuitry); (b) a combination of hardware circuitry and software, such as (if applicable): (i) a combination of analog and / or digital hardware circuitry with software / firmware, and (ii) any portion of a hardware processor with software (including digital signal processors), software, and memory, which work together to enable a device such as a mobile phone or server to perform various functions; and (c) hardware circuitry and / or a processor, such as a microprocessor or a portion thereof, which requires software (e.g., firmware) to operate, but may be absent when the software is not required to operate. This definition of circuitry applies to all uses of the term in this application, including in any claim. As another example, as used herein, the term circuitry also covers a hardware circuitry or processor (or multiple processors) or a portion thereof and its accompanying software and / or firmware. The term "circuit" also covers (for example, and if applicable to certain claim elements) baseband integrated circuits or processor integrated circuits for mobile devices or similar integrated circuits in servers, cellular network devices or other computing or networking devices.
[0097] Those skilled in the art will understand that any block diagram herein represents a conceptual diagram of an illustrative circuit embodying the principles of this disclosure. Similarly, it will be appreciated that any flowchart, diagram, state transition diagram, pseudocode, etc., represents various processes that can be substantially represented in a computer-readable medium and therefore executed by a computer or processor, whether or not such computer or processor is explicitly shown.
[0098] In the diagrams, the direction of the arrows generally illustrates the flow of information (such as data or instructions). The direction of the arrows does not imply that information is not being sent in the opposite direction. For example, when information is transmitted from a first element to a second element, the arrow may point from the first element to the second element. However, the second element may transmit a request for data to the first element, and / or may transmit an acknowledgment of receipt of information to the first element. Furthermore, although the figures illustrate multiple components and / or steps, any one or more of these components and / or steps may be omitted or repeated depending on their suitability for the application and setup.
[0099] The following clauses provide various embodiments of the implementation schemes disclosed herein:
[0100] Clause 1. A method for quality control, the method being performed by an electronic processing device and comprising: receiving a spectrum collected from a sample; inputting the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class; and indicating whether the spectrum is a member of the class based on the output from the trained autoencoder.
[0101] Clause 2. The method according to Clause 1, wherein the autoencoder is trained only with a training spectrum belonging to the class.
[0102] Clause 3. The method described in Clause 1, wherein the autoencoder is not trained using a spectrum that does not belong to the class.
[0103] Clause 4. The method according to any one of Clauses 1 to 3, wherein the class represents a spectrum that satisfies the quality control parameters.
[0104] Clause 5. The method according to Clause 4, wherein one or more of the plurality of training spectra are obtained from one or more samples that satisfy the quality control parameters.
[0105] Clause 6. The method according to any one of Clauses 1 to 5, wherein each of the plurality of training spectra consists of data points corresponding to a range of frequencies at uniform intervals.
[0106] Clause 7. The method according to any one of Clauses 1 to 6, wherein indicating whether the spectrum is a member of the class based on the output from a trained autoencoder comprises: calculating a reconstruction error based on the output from the trained autoencoder, and indicating whether the spectrum is a member of the class by comparing the reconstruction error with an error threshold.
[0107] Clause 8. The method according to Clause 7, wherein indicating whether the spectrum is a member of the class by comparing the reconstruction error with the error threshold comprises: indicating that the spectrum is a member of the class when the reconstruction error is below the error threshold, and indicating that the spectrum is not a member of the class when the reconstruction error is not below the error threshold.
[0108] Clause 9. The method according to Clause 7, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder receives the spectrum, and the decoder generates a reconstructed spectrum based on the output from the encoder.
[0109] Clause 10. The method according to Clause 9, wherein the autoencoder outputs the reconstructed spectrum, and wherein calculating the reconstruction error based on the output from the trained autoencoder includes calculating the reconstruction error by comparing the spectrum input to the autoencoder with the reconstructed spectrum.
[0110] Clause 11. The method according to Clause 1, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder maps the spectrum to a latent space vector in a latent space, and the decoder generates a reconstructed spectrum based on the latent space vector.
[0111] Clause 12. The method according to Clause 11, wherein the autoencoder outputs the latent space vector, wherein an indication of whether the spectrum is a member of the class is based on the latent space vector.
[0112] Clause 13. The method according to Clause 12, the method further comprising indicating that the spectrum is a member of the class in response to the latent spatial vector being within a distance of a reference cluster, wherein the reference cluster is formed by latent spatial vectors generated based on the plurality of trained spectra.
[0113] Clause 14. The method according to Clause 7, wherein the error threshold is predefined.
[0114] Clause 15. The method according to Clause 7, the method further comprising determining the error threshold during training of the autoencoder.
[0115] Clause 16. The method according to Clause 1, wherein indicating whether the spectrum is a member of the class based on the output from the trained autoencoder includes displaying the indication to the user.
[0116] Clause 17. The method according to Clause 1, wherein inputting the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class comprises: preprocessing the spectrum, and inputting the preprocessed spectrum into the autoencoder.
[0117] Clause 18. The method according to Clause 17, wherein the preprocessing includes removing noise from the spectrum.
[0118] Clause 19. The method according to Clause 17, wherein the preprocessing includes normalizing the spectrum.
[0119] Clause 20. A system comprising: a source; a detector for acquiring spectral data in response to irradiating a sample with the source; and an electronic processor configured to execute computer-readable instructions stored in a non-transitory medium to: receive a spectrum acquired from the sample by the detector; input the spectrum to an autoencoder trained with a plurality of training spectra belonging to a class; and indicate whether the spectrum is a member of the class based on the output from the trained autoencoder.
[0120] Clause 21. The system according to Clause 20, wherein the electronic processor is further configured to: receive a training spectrum belonging to the class, and train the autoencoder with only the training spectrum before receiving the spectrum acquired by the detector from the sample.
[0121] Clause 22. The system according to Clause 20, wherein the autoencoder is not trained with a spectrum that does not belong to the class described.
[0122] Clause 23. The system according to any one of Clauses 20 to 22, wherein the class represents a spectrum that satisfies the quality control parameters.
[0123] Clause 24. The system according to Clause 21, wherein the electronic processor is further configured to generate the training spectrum by acquiring spectral data from one or more samples that meet quality control parameters.
[0124] Clause 25. The system according to any one of Clauses 20 to 24, wherein each of the plurality of training spectra consists of data points corresponding to a range of frequencies at uniform intervals.
[0125] Clause 26. The system according to any one of Clauses 20 to 25, wherein the electronic processor is configured to execute the instructions to indicate whether the spectrum is a member of the class based on the output from a trained autoencoder by: calculating a reconstruction error based on the output from the trained autoencoder; and indicating whether the spectrum is a member of the class by comparing the reconstruction error with an error threshold.
[0126] Clause 27. The system according to Clause 26, wherein indicating whether the spectrum is a member of the class by comparing the reconstruction error with the error threshold comprises: indicating that the spectrum is a member of the class when the reconstruction error is below the error threshold, and indicating that the spectrum is not a member of the class when the reconstruction error is not below the error threshold.
[0127] Clause 28. The system of Clause 26, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder receives the spectrum, and the decoder generates a reconstructed spectrum based on the output from the encoder.
[0128] Clause 29. The system of Clause 28, wherein the autoencoder outputs the reconstructed spectrum, and wherein calculating the reconstruction error based on the output from the trained autoencoder includes calculating the reconstruction error by comparing the spectrum input to the autoencoder with the reconstructed spectrum.
[0129] Clause 30. The system of Clause 20, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder maps the spectrum to a latent space vector in a latent space, and the decoder generates a reconstructed spectrum based on the latent space vector.
[0130] Clause 31. The system of Clause 30, wherein the autoencoder outputs the latent spatial vector, wherein an indication of whether the spectrum is a member of the class is based on the latent spatial vector.
[0131] Clause 32. The system of Clause 31, wherein the electronic processor is configured to execute the instructions to indicate that the spectrum is a member of the class in response to the latent spatial vector being within a distance of a reference cluster, wherein the reference cluster is formed by latent spatial vectors generated based on the plurality of trained spectra.
[0132] Clause 33. The system according to Clause 20, the system further comprising a display, wherein the electronic processor is configured to execute the instructions to indicate on the display whether the spectrum is a member of the class.
[0133] Clause 34. The system according to Clause 26, wherein the electronic processor is configured to execute the instructions to determine the error threshold during training of the autoencoder.
[0134] Clause 35. The system of Clause 20, wherein the electronic processor is configured to execute the instructions to indicate whether the spectrum is a member of the class based on the output from the trained autoencoder by displaying the indication to a user.
[0135] Clause 36. The system of Clause 20, wherein the electronic processor is configured to execute the instructions to input the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class by: preprocessing the spectrum, and inputting the preprocessed spectrum into the autoencoder.
[0136] Clause 37. The system according to Clause 36, wherein the preprocessing includes removing noise from the spectrum.
[0137] Clause 38. The system according to Clause 36, wherein the preprocessing includes normalizing the spectrum.
[0138] Clause 39. A non-transitory computer-readable storage medium including executable instructions, wherein the executable instructions cause an electronic processor to: receive a spectrum collected from a sample; input the spectrum to an autoencoder trained with a plurality of training spectra belonging to a class; and indicate whether the spectrum is a member of the class based on the output from the trained autoencoder.
[0139] Clause 40. The non-transitory computer-readable medium as described in Clause 39, wherein the autoencoder is trained only with a training spectrum belonging to the class described.
[0140] Clause 41. A non-transitory computer-readable medium as described in Clause 39, wherein the autoencoder is not trained with a spectrum that does not belong to the class described.
[0141] Clause 42. A non-transitory computer-readable medium according to any one of Clauses 39 to 41, wherein the class represents a spectrum that satisfies quality control parameters.
[0142] Clause 43. The non-transitory computer-readable medium according to Clause 42, wherein one or more of the plurality of training spectra are obtained from one or more samples that satisfy the quality control parameters.
[0143] Clause 44. A non-transitory computer-readable medium according to any one of Clauses 39 to 43, wherein each of the plurality of training spectra consists of data points corresponding to a range of frequencies at uniform intervals.
[0144] Clause 45. A non-transitory computer-readable medium according to any one of Clauses 39 to 44, wherein the executable instructions cause the electronic processor to indicate whether the spectrum is a member of the class based on the output from a trained autoencoder by: calculating a reconstruction error based on the output from the trained autoencoder; and indicating whether the spectrum is a member of the class by comparing the reconstruction error with an error threshold.
[0145] Clause 46. The non-transitory computer-readable medium according to Clause 45, wherein indicating whether the spectrum is a member of the class by comparing the reconstruction error with the error threshold comprises: indicating that the spectrum is a member of the class when the reconstruction error is below the error threshold, and indicating that the spectrum is not a member of the class when the reconstruction error is not below the error threshold.
[0146] Clause 47. The non-transitory computer-readable medium according to Clause 45, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder receives the spectrum, and the decoder generates a reconstructed spectrum based on the output from the encoder.
[0147] Clause 48. The non-transitory computer-readable medium of Clause 47, wherein the autoencoder outputs the reconstructed spectrum, and wherein calculating the reconstruction error based on the output from the trained autoencoder comprises calculating the reconstruction error by comparing the spectrum input to the autoencoder with the reconstructed spectrum.
[0148] Clause 49. The non-transitory computer-readable medium according to Clause 39, wherein the autoencoder includes an encoder and a decoder, and wherein the encoder maps the spectrum to a latent space vector in a latent space, and the decoder generates a reconstructed spectrum based on the latent space vector.
[0149] Clause 50. The non-transitory computer-readable medium pursuant to Clause 49, wherein the autoencoder outputs the latent spatial vector, wherein an indication of whether the spectrum is a member of the class is based on the latent spatial vector.
[0150] Clause 51. The non-transitory computer-readable medium according to Clause 50, wherein the executable instructions cause the electronic processor to indicate that the spectrum is a member of the class in response to the latent spatial vector being within a distance of a reference cluster, wherein the reference cluster is formed by latent spatial vectors generated based on the plurality of trained spectra.
[0151] Clause 52. The non-transitory computer-readable medium as described in Clause 45, wherein the error threshold is predefined.
[0152] Clause 53. The non-transitory computer-readable medium as described in Clause 45, wherein the executable instructions cause the electronic processor to determine the error threshold during training of the autoencoder.
[0153] Clause 54. The non-transitory computer-readable medium pursuant to Clause 39, wherein the executable instructions cause the electronic processor to indicate whether the spectrum is a member of the class based on the output from a trained autoencoder by displaying the indication to a user.
[0154] Clause 55. The non-transitory computer-readable medium according to Clause 39, wherein the executable instructions cause the electronic processor to input the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class by: preprocessing the spectrum, and inputting the preprocessed spectrum into the autoencoder.
[0155] Clause 56. The non-transitory computer-readable medium as described in Clause 55, wherein the preprocessing includes removing noise from the spectrum.
[0156] Clause 57. The non-transitory computer-readable medium as described in Clause 55, wherein the preprocessing includes normalizing the spectrum.
Claims
1. A method for quality control, the method being performed by an electronic processing device and comprising: Receive the spectrum collected from the sample; The spectrum is input into an autoencoder trained with multiple training spectra belonging to the class; as well as The output from the trained autoencoder is used to indicate whether the spectrum is a member of the class.
2. The method of claim 1, wherein the autoencoder is trained only using a training spectrum belonging to the class.
3. The method of claim 1, wherein the autoencoder is not trained using a spectrum that does not belong to the class.
4. The method according to any one of claims 1 to 3, wherein the class represents a spectrum that satisfies the quality control parameters.
5. The method of claim 4, wherein one or more of the plurality of training spectra are obtained from one or more samples that satisfy the quality control parameters.
6. The method according to any one of claims 1 to 5, wherein each of the plurality of training spectra consists of data points corresponding to a range of frequencies at uniform intervals.
7. The method of any one of claims 1 to 6, wherein indicating whether the spectrum is a member of the class based on the output from the trained autoencoder comprises: The reconstruction error is calculated based on the output from the trained autoencoder, and whether the spectrum is a member of the class is indicated by comparing the reconstruction error with an error threshold.
8. The method of claim 6, wherein the autoencoder comprises an encoder and a decoder, and wherein the encoder receives the spectrum, and the decoder generates a reconstructed spectrum based on the output from the encoder.
9. The method of claim 8, wherein the autoencoder outputs the reconstructed spectrum, and wherein calculating the reconstruction error based on the output from the trained autoencoder comprises calculating the reconstruction error by comparing the spectrum input to the autoencoder with the reconstructed spectrum.
10. The method of claim 1, wherein the autoencoder comprises an encoder and a decoder, and wherein the encoder maps the spectrum to a latent space vector in a latent space, and the decoder generates a reconstructed spectrum based on the latent space vector.
11. The method of claim 10, wherein the autoencoder outputs the latent space vector, wherein an indication of whether the spectrum is a member of the class is based on the latent space vector.
12. The method of claim 11, further comprising indicating that the spectrum is a member of the class in response to the latent spatial vector being within a distance of a reference cluster, wherein the reference cluster is formed by latent spatial vectors generated based on the plurality of trained spectra.
13. The method of claim 1, wherein inputting the spectrum into an autoencoder trained with a plurality of training spectra belonging to a class comprises: The spectrum is preprocessed, and the preprocessed spectrum is input into the automatic encoder.
14. The method of claim 13, wherein the preprocessing includes removing noise from the spectrum.
15. The method of claim 13, wherein the preprocessing includes normalizing the spectrum.
16. A system comprising: source; A detector for acquiring spectral data in response to irradiating a sample with the source; and An electronic processor, configured to execute computer-readable instructions stored in a non-transitory medium, to: Receive the spectrum acquired from the sample by the detector. The spectrum is input into an autoencoder trained with multiple training spectra belonging to the class, and The output from the trained autoencoder is used to indicate whether the spectrum is a member of the class.
17. The system of claim 16, wherein the electronic processor is further configured to: receive a training spectrum belonging to the class, and train the autoencoder with only the training spectrum before receiving the spectrum acquired by the detector from the sample.
18. The system of claim 16, wherein the autoencoder is not trained using a spectrum that does not belong to the class.
19. The system of claim 17, wherein the electronic processor is further configured to generate the training spectrum by acquiring spectral data from one or more samples that meet quality control parameters.
20. The system according to any one of claims 16 to 19, wherein each of the plurality of training spectra consists of data points corresponding to a range of frequencies at uniform intervals.
21. A non-transitory computer-readable storage medium including executable instructions, wherein the executable instructions cause an electronic processor to: Receive the spectrum collected from the sample; The spectrum is input into an autoencoder trained with multiple training spectra belonging to the class; and The output from the trained autoencoder is used to indicate whether the spectrum is a member of the class.