WO2020004815A1 - 데이터의 어노말리 감지 방법 - Google Patents

데이터의 어노말리 감지 방법 Download PDF

Info

Publication number
WO2020004815A1
WO2020004815A1 PCT/KR2019/006164 KR2019006164W WO2020004815A1 WO 2020004815 A1 WO2020004815 A1 WO 2020004815A1 KR 2019006164 W KR2019006164 W KR 2019006164W WO 2020004815 A1 WO2020004815 A1 WO 2020004815A1
Authority
WO
WIPO (PCT)
Prior art keywords
image data
class
anomaly
network function
scoring value
Prior art date
Application number
PCT/KR2019/006164
Other languages
English (en)
French (fr)
Inventor
송기영
강형신
Original Assignee
주식회사 수아랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 수아랩 filed Critical 주식회사 수아랩
Publication of WO2020004815A1 publication Critical patent/WO2020004815A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the present invention relates to artificial intelligence data processing, and more particularly, to a method for determining whether anomaly exists in image data using an artificial neural network.
  • a neural network may be used to implement a method for determining a state of high accuracy image data.
  • Republic of Korea Patent KR1847874B1 discloses an image recognition method using a neural network.
  • the present disclosure has been made in response to the above-described background, and an object thereof is to provide a method for anomaly determination of image data.
  • An object of the present disclosure is to provide information on whether anomaly of image data exists through an anomaly determination method of image data.
  • the anomaly determination method of the image data may include: receiving image data by a pre-learned network function; Classifying the image data using the pre-learned network function; Obtaining a scoring value for each class for classifying the image data output from the pre-learned network function; And determining whether anomaly exists in the image data based on the scoring value for each class.
  • the anomaly determination method of the image data determining whether anomaly exists in the image data based on the scoring value for each class, comparing the magnitude of each scoring value for each class ; And determining whether anomaly exists in the image data based on the comparison result.
  • determining whether anomaly exists in the image data based on the scoring value for each class comprises: obtaining a variance of the scoring value; And determining whether anomaly exists in the image data based on the dispersion.
  • determining whether anomaly exists in the image data based on the scoring value for each class comprises: number of classes whose scoring value is greater than or equal to a first threshold value; Determining; And determining that no anomaly exists in the image data when the number of classes whose scoring value is greater than or equal to a first threshold is less than or equal to a first predetermined number.
  • determining whether anomaly exists in the image data based on the scoring value for each class comprises: number of classes whose scoring value is greater than or equal to a second threshold value; Determining; And determining that anomaly exists in the image data when the number of classes whose scoring value is greater than or equal to a second threshold value is greater than or equal to a second predetermined number, wherein the second threshold value is less than or equal to a first threshold value; Can be.
  • the method may further include displaying, on the image data, a portion in which the anomaly exists in the image data. .
  • classifying the image data using the pre-learned network function may include classifying each portion of the image data to segment the image data. It may include.
  • classifying each portion of the image data and segmenting the image data may include classifying the image data into respective classes for each pixel and segmenting the image data. It may include.
  • acquiring a class-specific scoring value for classifying the image data output from the pre-learned network function may be performed for each pixel of the image data, respectively.
  • Obtaining a scoring value for each class of may include.
  • the image data may comprise one or more components classified into each class.
  • a computing device for anomaly determination of data includes one or more processors; And a memory storing instructions executable in the processor; Wherein the processor is configured to input image data into a pre-learned network function, classify the image data using the pre-learned network function, and classify the image data output from the pre-learned network function.
  • a scoring value for each class may be obtained, and it may be determined whether anomaly exists in the image data based on the scoring value for each class.
  • a computer readable storing medium comprising a plurality of instructions executed by one or more processors of an anomaly determination device of image data according to an embodiment of the present disclosure for realizing the above problem.
  • the computer program stored in the is disclosed.
  • the computer program comprises: instructions for a pre-learned network function to receive image data; Classifying the image data using the pre-learned network function; Obtaining a scoring value for each class for classifying the image data output from the pre-learned network function; And determining whether anomaly exists in the image data based on the scoring value for each class.
  • the present disclosure can provide a method for determining anomaly of image data.
  • FIG. 1 is a block diagram illustrating a computing device for performing a method of determining anomaly of image data according to an exemplary embodiment of the present disclosure.
  • FIG. 2 is a schematic diagram illustrating a convolutional neural network according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram schematically illustrating classifying image data through a network function and obtaining a scoring value for each class for classifying image data according to an exemplary embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating an example of normal image data according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating an example of image data in which anomaly exists according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram illustrating an anomaly portion of image data in which anomaly exists, according to an embodiment of the present disclosure.
  • FIG. 7A is a diagram schematically illustrating a scoring value for each class when no anomaly exists in image data according to an embodiment of the present disclosure.
  • FIG. 7B is a diagram schematically illustrating a scoring value for each class when anomaly exists in image data according to an embodiment of the present disclosure.
  • FIG. 8 is a block diagram illustrating a means for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • FIG. 9 is a block diagram illustrating a module for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • FIG. 10 is a block diagram illustrating logic for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • FIG. 11 is a block diagram illustrating a circuit for implementing a method of determining anomaly of image data according to an embodiment of the present disclosure.
  • FIG. 12 is a block diagram of a computing device according to an embodiment of the present disclosure.
  • a component may be, but is not limited to being, a process running on a processor, a processor, an object, a thread of execution, a program, and / or a computer.
  • an application running on a computing device and the computing device can be a component.
  • One or more components can reside within a processor and / or thread of execution.
  • One component can be localized within one computer.
  • One component may be distributed between two or more computers.
  • these components can execute from various computer readable media having various data structures stored thereon.
  • the components may, for example, via a network such as the Internet and other systems via signals with one or more data packets (e.g., data and / or signals from one component interacting with other components in a local system, distributed system). Data transmitted) may be communicated via local and / or remote processes.
  • a network such as the Internet and other systems via signals with one or more data packets (e.g., data and / or signals from one component interacting with other components in a local system, distributed system). Data transmitted) may be communicated via local and / or remote processes.
  • FIG. 1 is a block diagram illustrating a computing device for performing a method of determining anomaly of image data according to an exemplary embodiment of the present disclosure.
  • the configuration of the computing device 100 shown in FIG. 1 is merely an example for simplicity.
  • the computing device 100 may include other components for performing the computing environment of the computing device 100.
  • the computing device 100 may include a processor 110, a memory 120, a communication module 130, and a camera module 140.
  • the processor 110 may include one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. and a processor for data analysis and deep learning.
  • the processor 110 may read a computer program stored in the memory 120 to perform a method for anomaly determination of image data according to an embodiment of the present disclosure.
  • the processor 110 may perform calculation for learning a neural network.
  • the processor 110 may process neural networks such as processing input data for learning in deep learning (DN), extracting features from the input data, calculating errors, and weighting neural networks using backpropagation. Can perform calculations for learning.
  • DN deep learning
  • At least one of the CPU, GPGPU, and TPU of the processor 110 may handle the learning of the network function.
  • the CPU and GPGPU can handle the learning of network functions and data classification using network functions.
  • the processor of the plurality of computing devices may be used together to process the learning of the network function and the data classification using the network function.
  • the computer program executed in the computing device according to an embodiment of the present disclosure may be a CPU, a GPGPU, or a TPU executable program.
  • the computing device 100 may distribute and process network functions using at least one of a CPU, a GPGPU, and a TPU. In addition, in an embodiment of the present disclosure, the computing device 100 may distribute and process network functions along with other computing devices.
  • an image processed using a network function may include an image stored in a storage medium of the computing device 100, an image captured by the camera module 140 of the computing device 100, and / or a communication module ( 130 may be an image transmitted from another computing device such as an image database.
  • an image processed using a network function may be an image stored in a computer-readable storage medium (eg, but may not include, but not limited to, flash memory).
  • the computing device 100 may receive an image file stored in a computer readable storage medium through an input / output interface (not shown).
  • the computing device 100 may receive image data and classify the image data using a pre-learned network function. In an embodiment of the present disclosure, the computing device 100 may determine whether anomaly exists in the image data based on a class-specific scoring value for classifying the image data output from the function of the pre-learned network.
  • the computing device may determine the image as normal data.
  • the computing device may determine the image as abnormal data in which anomaly exists when the image cannot be determined by any classification based on the scoring value for each class.
  • the computing device may determine that the pixel is normal data based on the class-based scoring value when it is possible to determine the pixel as one of the classifications.
  • the computing device may determine that the anomaly exists as abnormal data when the corresponding pixel cannot be determined by any classification based on the scoring value for each class.
  • the computing device since the computing device performed image segmentation training using the normal data as the training data, when the computing device can classify the input data based on the scoring value, the corresponding input data is the normal data. Can be. However, if the computing device cannot classify the input data based on the scoring value, then the input data may contain new patterns that the computing device did not learn, and new patterns that the computing device did not learn would be anomaly. There is a possibility. Therefore, the computing device may classify input data that cannot be classified through the learned model as abnormal data including anomalies.
  • the computing device may determine a corresponding pixel as two or more classifications based on the scoring value for each class, the corresponding pixel may be determined as normal data including an edge in which two or more components exist. .
  • the computing device determines whether anomaly exists in the image data based on each of the scoring values for each class, thereby determining whether anomaly exists in the image data based on the scoring value for each class.
  • the scoring value is a value representing a value corresponding to the probability that the corresponding part belongs to a specific class.
  • the target portion of the scoring value may include the entire image received by the computing device, each pixel of the image received by the computing device, and the like. It is possible to determine whether anomalies exist by comparing magnitude values corresponding to the probabilities of each of the scoring values for each class indicated by the values corresponding to the probabilities.
  • the computing device obtains a variance of scoring values for each class, and determines whether there is anomaly in the image data based on the variance value, thereby determining the image data based on the scoring value for each class. It can be determined whether or not air anomaly exists.
  • the variance of scoring values for each class indicated by a value corresponding to the probability may be obtained.
  • the variance of X The expected value of is minus the square of the expected value of X. That is, the variance of X Is to be. If the variance of the scoring values is large, it means that the scoring values for each class are distributed unevenly. A large variance of scoring values means that the scoring value for one class is overwhelmingly higher than the scoring values of other classes.
  • the computing device may classify the image data into any one classification through a pre-learned network. If the scoring value of one class has an overwhelmingly large value, the corresponding data may be determined as normal data in which no anomalies exist. If the variance of the scoring values is small, it means that the scoring values for each class are evenly distributed. A small variance of scoring values means that the scoring value of one class is not overwhelmingly greater than the scoring value of any other class. If there is no class having an overwhelming scoring value, the computing device cannot classify the image data into any one class through the pre-learned network, and thus the data may be determined to be abnormal data in which anomaly exists.
  • the computing device may determine that the anomaly is normal image data when the variance value obtained based on the scoring distribution is greater than or equal to a predetermined threshold value.
  • the computing device may determine that anomaly exists as abnormal image data when the variance value obtained based on the scoring distribution is equal to or less than a predetermined threshold value.
  • a computing device determines a number of classes whose scoring value is greater than or equal to a first threshold value, and if the number of classes whose scoring value is greater than or equal to a first threshold value is less than or equal to a first predetermined number; By determining that there is no anomaly, it may be determined whether anomaly exists in the image data based on the scoring value for each class. Detailed description thereof will be described later with reference to FIG. 7A.
  • the computing device determines the number of classes whose scoring value is greater than or equal to a second threshold value, and if the number of classes whose scoring value is greater than or equal to a second threshold value is greater than or equal to a second predetermined number, By determining that anomaly exists, it may be determined whether anomaly exists in the image data based on the scoring value for each class. Detailed description thereof will be described later with reference to FIG. 7B.
  • the computing device may determine whether anomaly exists in the input data using another pre-learned other network function (second network function).
  • Another network function may be a network function that takes as input a scoring value for each class that is an output of a pre-learned network function.
  • the other network function may be a network function connected in series with a dictionary network function.
  • serial may mean that at least a part of the output of the dictionary network function may be an input of another network function, or a part of the dictionary network function may overlap with another network function.
  • Another network function is a network function trained by inputting a scoring value for each class, which is an output of a pre-learned network function of the present disclosure, and a network learning pattern of a scoring value for each class of normal data and a scoring value for each class of abnormal data. It can be a function. That is, the other network function may be a network function learned by a supervised learning method using both the abnormal data and the scoring values for the normal data as the training data.
  • the computing device may obtain a class-specific scoring value for classifying the image data in the first network function (ie, the network function for performing image segmentation in one embodiment of the present disclosure).
  • the second network function of the computing device receives a scoring value for each class from the first network function to determine whether anomaly exists. can do.
  • the number of output nodes of the first network function may be greater than or equal to the number of classes.
  • the number of input nodes of the second network function may be greater than or equal to the number of output nodes of the first network function.
  • the remaining nodes that do not match the output nodes of the first network function among the number of input nodes of the second network function may be set to null values.
  • the second network function may include a kind of network function for determining whether anomaly exists in the input data based on a scoring value for each class, for example, a convolutional neural network (CNN). , Multi-layer perceptrons (MLPs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), Q networks, U networks , Siamese network, and the like, but the present disclosure is not limited thereto.
  • MLPs Multi-layer perceptrons
  • RNNs recurrent neural networks
  • RBMs restricted boltzmann machines
  • DNNs deep belief networks
  • Q networks U networks
  • Siamese network Siamese network
  • the computing device may display a portion in which the anomaly exists in the image data in the image data when anomaly exists in the image data.
  • a portion displaying anomaly on the image data may be the entirety of the image data, or may be a portion of a pixel unit of the image data.
  • the memory 120 may store a computer program for performing an anomaly determination method of image data according to an embodiment of the present disclosure, and the stored computer program may be read and driven by the processor 110.
  • the communication module 130 may transmit / receive data for performing an anomaly determination method of the image data according to an exemplary embodiment of the present disclosure and the like with another computing device, a server, and the like.
  • the communication module 130 may transmit / receive data necessary for the embodiment of the present disclosure, such as image data, to another computing device, a server, and the like.
  • the communication module 130 may receive training image data from a training image database.
  • the communication module 130 may enable communication between a plurality of computing devices so that learning of network functions is distributed in each of the plurality of computing devices.
  • the communication module 130 may enable communication between a plurality of computing devices to enable distributed processing of data classification using a network function.
  • the camera module 140 may photograph the inspection object to generate image data in order to perform the anomaly determination method of the image data according to an embodiment of the present disclosure.
  • computing device 100 may include one or more camera modules 140.
  • FIG. 2 is a schematic diagram illustrating a convolutional neural network according to an embodiment of the present disclosure.
  • a deep neural network may refer to a neural network including a plurality of hidden layers in addition to an input layer and an output layer.
  • Deep neural networks can be used to identify potential structures in your data. In other words, you can identify potential structures of photos, text, video, voice, and music (e.g., what objects are in the picture, what the content and emotions of the text are, and what the content and emotions of the voice are).
  • Deep neural networks include convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), and deep belief networks (DBNs). , Q network, U network, Siamese network and the like.
  • the convolutional neural network shown in FIG. 2 is a type of deep neural network and includes a neural network including a convolutional layer.
  • Convolutional neural networks are a type of multilayer perceptorns designed to use minimal preprocessing.
  • a CNN may consist of one or several convolutional layers and artificial neural network layers associated with them. The CNN may further utilize weights and pooling layers. This structure allows CNNs to take full advantage of the two-dimensional input data.
  • Convolutional neural networks can be used to recognize objects in an image. Convolutional neural networks can process image data by representing them in a matrix with dimensions.
  • each of R, G, and B colors may be represented by a two-dimensional (for example, two-dimensional image) matrix. That is, the color value of each pixel of the image data may be a component of the matrix, and the size of the matrix may be equal to the size of the image. Therefore, the image data can be represented by three two-dimensional matrices (three-dimensional data array).
  • a convolutional process (input and output of a convolutional layer) may be performed by moving a convolutional filter and multiplying the convolutional filter with matrix components at each position of an image.
  • the convolutional filter may be composed of an n * n type matrix.
  • Convolutional filters can generally consist of a fixed type of filter that is smaller than the total number of pixels in the image. That is, when an m * m image is input to a convolutional layer (for example, a convolutional layer having a convolutional filter size of n * n), a matrix representing n * n pixels including each pixel of the image
  • This convolutional filter can be a component product (i.e., the product of each component of the matrix).
  • the component matching the convolutional filter may be extracted from the image by the product of the convolutional filter.
  • a 3 * 3 convolutional filter for extracting up and down linear components from an image may be constructed as [[0,1,0], [0,1,0], [0,1,0]] Can be.
  • vertical linear components matching the convolutional filter may be extracted from the image and output.
  • the convolutional layer may apply a convolutional filter to each matrix (ie, R, G, and B colors for R, G, and B coded images) for each channel representing the image.
  • the convolutional layer may apply a convolutional filter to the input image to extract a feature that matches the convolutional filter from the input image.
  • the filter value of the convolutional filter ie, the value of each component of the matrix
  • the subsampling layer is connected to the output of the convolutional layer, which simplifies the output of the convolutional layer, thereby reducing memory usage and calculation amount. For example, if you input the output of a convolutional layer into a pooling layer that has a 2 * 2 max pooling filter, the image is compressed by outputting the maximum value included in each patch for every 2 * 2 patch in each pixel of the image. Can be.
  • the above-mentioned pooling may be a method of outputting a minimum value in a patch or an average value of patches, and any pooling method may be included in the present disclosure.
  • the convolutional neural network may include one or more convolutional layers and subsampling layers.
  • the convolutional neural network may extract a feature from an image by repeatedly performing a convolutional process and a subsampling process (eg, the aforementioned max pooling). Through an iterative convolutional process and a subsampling process, the neural network can extract the global features of the image.
  • the output of the convolutional layer or subsampling layer may be input to a fully connected layer.
  • a fully connected layer is a layer where all neurons in one layer and all neurons in a neighboring layer are connected.
  • the full connected layer may refer to a structure in which all nodes of each layer are connected to all nodes of another layer in the neural network.
  • the neural network may include a deconvolutional neural network (DCNN) to perform segmentation of image data.
  • the deconvolutional neural network performs an operation similar to calculating the convolutional neural network in the reverse direction.
  • the deconvolutional neural network may output a feature extracted from the convolutional neural network as a feature map associated with the original data.
  • FIG. 3 is a diagram schematically illustrating classifying image data through a network function and obtaining a scoring value for each class for classifying image data according to an exemplary embodiment of the present disclosure.
  • the pre-learned network function 320 of the present disclosure may be learned in at least one manner of supervised learning, unsupervised learning, and semi supervised learning. Learning of network functions is intended to minimize errors in the output.
  • the training data is repeatedly input to the network function.
  • the weight of each node of the network function can be updated by back-propagating the error of the network function from the output layer of the network function to the input layer.
  • the pre-learned network function 320 of the present disclosure may be a teacher-learned network function using only labeled normal data as learning data.
  • the labeled training data may be a label directly to a component of normal data by the user.
  • an image processing algorithm technique may be used when a user directly labels a component of normal data.
  • the image processing algorithm may include canny edge detection, Harris corner detection, and the like, but the present disclosure is not limited thereto. With Canny Edge Detection, the computing device blurs the image to remove noise, detects edges using mask edges, removes non-maximum values, and divides the size by double thresholds to connect the edges. By this, the edge can be extracted.
  • Image processing algorithms can be used to extract edges of constant pixel thickness from normal data.
  • the labeling may be a method in which a user selects an area based on an edge of a constant pixel thickness extracted from normal data.
  • the image may be separated into various parts by extracting the edge of the image through canny edge detection. Part of the separated image can be labeled with trees, walks, sky, etc.
  • the labeled training data may be labeled with components of normal data.
  • the labeled training data may be labeled with components of normal data using another artificial neural network.
  • the training data may be labeled with the entire area of the image.
  • the labeled training data can be input to the network function, and the error can be calculated by comparing the label of the training data with the classification that is the output of the network function.
  • the calculated error can be backpropagated in the direction of the input layer in the output layer that is reverse in the network function.
  • the connection weight of each node of each layer may be updated according to the backpropagation backpropagated from the output layer toward the input layer.
  • the connection weight of each node to be updated may be determined according to a learning rate. Computation of network functions on input data and backpropagation of errors can constitute a learning cycle.
  • the learning rate may be applied differently according to the number of repetitions of the learning cycle of the network function.
  • Image segmentation may include image processing that separates a portion of the image from other portions based on, for example, pixels, edges, colors, etc. extracted from the image.
  • the classification that is the output of the network function may be pixel by pixel image segmentation. Scoring values may be obtained in pixel units of an image, and image data may be classified by segmenting based on each pixel scoring value.
  • Image segmentation may refer to image processing that separates a part of an image from another part.
  • the method of determining anomaly of image data of the present disclosure may be performed by one or more processors 110 of the computing device 100.
  • One or more processors 110 of computing device 100 of the present disclosure may perform a computational process of network function 320 of the present disclosure. All computational processes (ie, pre-learning of network functions, scoring by class, classifying image data, etc.) of the anomaly determination method of the image data of the present disclosure may be performed by a processor of the computing device 100. That is, the expression processing data in the network function 320 may mean a process in which the processor 110 of the computing device 100 processes the data by executing a network function.
  • the computing device 100 may input image data to the network function 320. In the anomaly determination method of the image data of the present disclosure, the computing device 100 may output a result based on an anomaly calculation result of the image data calculated by the network function 320.
  • the network function 320 of the present disclosure can be used for classification of data.
  • the network functions of the present disclosure can be used for Anomaly Detection.
  • the anomaly data may refer to abnormal data that deviates from a normal pattern of data.
  • the data may have an atypical pattern.
  • Anomaly data may refer to data that deviates from this atypical pattern.
  • data about the image of a product in a production process may have an atypical pattern of normal product.
  • the anomaly data may be data that deviates from the atypical pattern (ie, an image of a defective product, etc.).
  • the description of the normal data, the atypical pattern, and the anomaly data of the present disclosure is merely an example and the present disclosure is not limited thereto.
  • the image data 310 received by the pre-learned network function 320 is an image that is an object of anomaly determination.
  • anomaly data may be abnormal data that deviates from a normal pattern of data.
  • the image data 310 received by the pre-learned network function 320 may be normal data having a normal pattern.
  • the image data 310 received by the pre-learned network function 320 may be abnormal data that deviates from the normal pattern.
  • the image data 310 received by the pre-learned network function 320 may be an image of a product to be inspected.
  • the image data received by the pre-learned network function 320 may include one or more components classified into each class.
  • the image data input to the network function 320 may be an image of a product to be inspected.
  • the image data input to the network function 320 may be an image including a plurality of components, such as a PCB, a hole, copper, and a conductor, which may be classified into respective classes.
  • a PCB printed circuit board
  • a hole, copper, and a conductor which may be classified into respective classes.
  • the description of the above-described class and the product to be inspected is merely an example, and the present disclosure is not limited thereto.
  • the pre-learned network function 320 calculates the received image data as a network function and outputs a class-specific scoring value 330 for each pixel.
  • the class may mean each component of the received image data.
  • the output value may represent a scoring value corresponding to a class such as a PCB substrate, holes, copper, and conductive lines for each pixel.
  • the foregoing class is exemplary only and the present disclosure is not limited thereto.
  • the pre-learned network function 320 may classify the image data based on the scoring value of the class for each pixel.
  • the scoring value of the class may be to classify which component each pixel corresponds to. If there is an overwhelmingly high class in the class of the pixel, the pixel may be classified into a class having an overwhelmingly high scoring value.
  • Each pixel can be segmented based on the result value classified by class. By combining the pixels of the same classification, you can separate them so that they are distinguished from other pixel parts of the image. Image segmentation may also include a process of visualizing and displaying a part of the image data separated from the other part in the image data.
  • the pixel may be classified as copper.
  • the image segmentation process which combines the pixels classified as copper, separates them from other parts of the image, such as PCBs, holes, and conductors.
  • the copper portion of the separated image data can be visualized and displayed.
  • the pre-learned network function 320 may obtain a scoring value for each class and then determine anomaly based on the score. Anomaly can be determined according to whether the scoring value for each class is appropriate to classify as a specific class. Based on the distribution of scoring values for each class, it is determined whether it is appropriate to classify it into a specific class. Anomalies can be determined based on whether they are appropriate to classify into a particular class. If it is unclear to classify a specific class according to the distribution of scoring values for each class, it can be determined as anomaly. Normal cases can be determined to classify specific classes according to the distribution of scoring values for each class. Since the pre-learned network function is trained only with labeled normal data, the normal data can be classified clearly.
  • abnormal data there are differences between abnormal data and normal data. Based on the difference from the normal data, the scoring value of each class is different from the scoring value of the normal data.
  • the scoring value of the normal data is overwhelmingly high when the scoring value of one class is compared with the scoring value of another class, or there is no class having a similar scoring value.
  • the abnormal data may not have an overwhelming value when the scoring value of one class is compared with the scoring value of another class.
  • the abnormal data may have similar values to scoring values of a plurality of classes, unlike learning data of a pre-learned network function.
  • the abnormal data may have a small variance value of classes, unlike the learning data of a pre-learned network function.
  • the computing device may determine anomaly based on the scoring value of the class.
  • the computing device may extract location information of the anomaly portion through image segmentation.
  • the computing device may go through the process of identifying the location of the anomaly data from another portion of the image.
  • the image segmentation may also include a process of identifying the location of the anomaly data and visualizing and displaying a part of the image separated from the other part.
  • FIG. 4 is a diagram illustrating an example of normal image data according to an embodiment of the present disclosure.
  • the training data of the dictionary network function of one embodiment of the present disclosure may be labeled normal data.
  • labeling may be the labeling of the component of the normal data directly by the user.
  • labeling may be a labeling component of normal data using another artificial neural network.
  • the training data may be labeled with the PC board 400, the hole 410, the copper wire 420, the element 430, and the like.
  • the components are examples only and the present disclosure is not limited thereto.
  • a scoring value as shown in FIG. 7A is obtained.
  • the scoring value of a class is output on the normal image data, the scoring value of one class is overwhelmingly higher than the scoring value of another class.
  • the scoring value as shown in FIG. 7A may be extracted.
  • a class having a scoring value greater than the first threshold value 712 may correspond to the hole 410.
  • the class having a scoring value smaller than the first threshold value 712 may be the plate 400, the copper wire 420, and the device 430. Since the scoring value of the pixel value of the portion corresponding to the hole 410 has an overwhelmingly high value when one class is compared with another class, the pre-learned network function may be determined as normal image data.
  • FIG. 5 is a diagram illustrating an example of image data in which anomaly exists according to an embodiment of the present disclosure.
  • a scoring value as shown in FIG. 7B is obtained.
  • the scoring value of a class is output to image data in which anomalies exist, the scoring value of one class does not have an overwhelmingly larger value than the scoring value of another class, or the scoring values of a plurality of classes have similar values.
  • the scoring value for each class of the pixel of the portion corresponding to the hole 510 is output, the scoring value as shown in FIG. 7B may be extracted.
  • a scoring value in which a plurality of classes have similar values may be output.
  • the pre-learned network function may be determined as image data including anomaly because there is no class having one overwhelming scoring value.
  • FIG. 6 is a diagram illustrating an anomaly portion of image data in which anomaly exists, according to an embodiment of the present disclosure.
  • the pre-learned network function may determine whether anomalies exist in the image data received by the network function based on the scoring value. Anomaly may be displayed on an image result value that is output by segmenting an image and segmenting the pixel in which the anomaly exists.
  • FIG. 7A is a diagram schematically illustrating a scoring value for each class when no anomaly exists in image data according to an embodiment of the present disclosure.
  • FIG. 7B is a diagram schematically illustrating a scoring value for each class when anomaly exists in image data according to an embodiment of the present disclosure.
  • the computing device determines the number of classes whose scoring value is greater than or equal to a first threshold value, and wherein the image when the number of classes whose scoring value is greater than or equal to a first threshold value is less than or equal to a first predetermined number.
  • the scoring distribution for each class may be represented as a distribution as shown in FIG. 7A.
  • the network function outputs a scoring distribution for each class of the pixels of the hole 410 of FIG. 4, the distribution of FIG. 7A may appear.
  • a scoring value having a value corresponding to the largest probability may be the hole 410, and a scoring value having a value corresponding to another small probability may be the PCB plate 400 and the copper wire 420 element 430.
  • the network function may determine the image data received by the network function as image data having a normal pattern.
  • the network function may determine the image data received by the network function as normal image data that does not include anomaly. As a result of pixel-by-pixel segmentation of FIG. 4, an edge may be included in one pixel.
  • both the hole 410 and the PCB plate 400 may be included.
  • the scoring value greater than the first threshold value 712 in FIG. 7A may be two holes and a PCB plate. If the number of scoring values greater than the first threshold value is two, the first predetermined number is two or less, so that the network function determines that the image data received by the network function is normal image data that does not include anomaly having a normal pattern. can do.
  • a computing device determines a number of classes whose scoring value is greater than or equal to a second threshold value, and wherein the image when the number of classes whose scoring value is greater than or equal to a second threshold value is greater than or equal to a second predetermined number
  • the second threshold value may be equal to or less than a first threshold value. If the image data input to the network function is abnormal image data including anomaly, the scoring distribution for each class may be represented as a distribution as shown in FIG. 7B. When the network function outputs a scoring distribution for each class of the pixels of the hole 510 of FIG. 5, the distribution of FIG.
  • the deviation of the magnitude of the scoring value for each pixel for the corresponding pixel may be small.
  • the second threshold 722 may be less than or equal to the first threshold 712.
  • the second predetermined number may be two or more. Since the number of classes greater than or equal to the second threshold value 722 is equal to or greater than 2, which is a second predetermined number, the network function may determine that the image data received by the network function is abnormal image data that does not include anomaly having an abnormal pattern. .
  • FIG. 8 is a block diagram illustrating a means for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • a method for determining anomaly of image data may be implemented by the following means.
  • a method for determining anomaly of image data includes: means 810 for receiving a pre-trained network function from the image data; Means (820) for classifying the image data using the pre-learned network function; Means (830) for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function; And means 840 for determining whether anomaly exists in the image data based on the scoring value for each class.
  • the means for determining whether anomaly exists in the image data based on the scoring value for each class includes: comparing the magnitude of each scoring value for each class; Means for; And means for determining whether anomaly exists in the image data based on the comparison result.
  • the means for determining whether anomaly exists in the image data based on the scoring value for each class comprises: means for obtaining a variance of the scoring value; And means for determining whether anomaly exists in the image data based on the variance value.
  • the means for determining whether anomaly exists in the image data based on the scoring value for each class is based on a class of which the scoring value is equal to or greater than a first threshold value.
  • the means for determining whether anomaly exists in the image data based on the scoring value for each class is based on a class of which the scoring value is greater than or equal to a second threshold value.
  • the method may further include means for displaying, in the image data, a portion where the anomaly exists in the image data when anomaly exists in the image data. have.
  • the means for classifying the image data using the pre-learned network function comprises: classifying each portion of the image data to segment the image data. Means may further comprise.
  • the means for segmenting each portion of the image data to segment the image data comprises: classifying the image data into segments for each pixel and segmenting the image data. It may include a means for.
  • the means for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function comprises for each pixel of the image data: Means for obtaining a scoring value for each class.
  • the image data may comprise one or more components classified into each class.
  • FIG. 9 is a block diagram illustrating a module for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • a method of determining anomaly of image data may be implemented by the following module.
  • a method for determining anomaly of image data may include: a module 910 for receiving a pre-learned network function from the image data; A module 920 for classifying the image data using the pre-learned network function; A module 930 for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function; And a module 940 for determining whether anomaly exists in the image data based on the scoring value for each class.
  • a module for determining whether anomaly exists in the image data based on the scoring value for each class is further configured to compare the magnitude of each scoring value for each class. Module for; And a module for determining whether anomaly exists in the image data based on the comparison result.
  • the module for determining whether anomaly exists in the image data based on the scoring value for each class comprises: a module for obtaining a variance of the scoring value; And a module for determining whether anomaly exists in the image data based on the dispersion value.
  • the module for determining whether anomaly exists in the image data based on the scoring value for each class is further configured to determine whether the scoring value is equal to or greater than a first threshold value.
  • the module for determining whether anomaly exists in the image data based on the scoring value for each class further includes: determining that the scoring value is equal to or greater than a second threshold value.
  • the method may further include a module for displaying a portion of the image data in the image data when the anomaly exists in the image data. have.
  • the module for classifying the image data using the pre-learned network function may be configured to classify each part of the image data to segment the image data.
  • the module may further include.
  • the module for classifying the respective portions of the image data and segmenting the image data may include classifying the image data into respective classes for each pixel and segmenting the image data. It may include a module for.
  • the module for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function may be provided for each pixel of the image data. It may include a module for obtaining a scoring value for each class.
  • the image data may comprise one or more components classified into each class.
  • FIG. 10 is a block diagram illustrating logic for implementing a method for determining anomaly of image data according to an embodiment of the present disclosure.
  • a method for determining anomaly of image data may be implemented by the following logic.
  • a method for determining anomaly of image data may include: logic 1010 for a pre-learned network function to receive image data; Logic 1020 for classifying the image data using the pre-learned network function; Logic 1030 for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function; And logic 1040 for determining whether anomaly exists in the image data based on the scoring value for each class.
  • logic for determining whether anomaly exists in the image data based on the scoring value for each class is based on comparing the magnitude of each scoring value for each class.
  • logic for determining whether anomaly exists in the image data based on the scoring value for each class comprises: logic for obtaining a variance of the scoring value; And logic for determining whether anomaly exists in the image data based on the dispersion value.
  • logic for determining whether anomaly exists in the image data based on the scoring value for each class is based on a class of which the scoring value is equal to or greater than a first threshold value.
  • logic for determining whether anomaly exists in the image data based on the scoring value for each class is based on a class of which the scoring value is greater than or equal to a second threshold value.
  • the method may further include logic for displaying in the image data the portion where the anomaly exists in the image data. have.
  • logic for classifying the image data using the pre-learned network function is configured to classify each portion of the image data to segment the image data. It may further include logic.
  • logic for classifying each portion of the image data and segmenting the image data may include classifying the image data into respective classes for each pixel and segmenting the image data. It may include logic for.
  • logic for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function is performed for each pixel of the image data. It may include logic for obtaining a scoring value for each class.
  • the image data may comprise one or more components classified into each class.
  • FIG. 11 is a block diagram illustrating a circuit for implementing a method of determining anomaly of image data according to an embodiment of the present disclosure.
  • a method for determining anomaly of image data may be implemented by the following circuit.
  • a method for determining anomaly of image data includes: a circuit 1210 for receiving a pre-learned network function from the image data; Circuitry 1220 for classifying the image data using the pre-learned network function; A circuit 1230 for obtaining a scoring value for each class for classifying the image data output from the pre-learned network function; And a circuit 1240 for determining whether anomaly exists in the image data based on the scoring value for each class.
  • a circuit for determining whether anomaly exists in the image data based on the scoring value for each class is further configured to compare the magnitude of each scoring value for each class. Circuit for; And a circuit for determining whether anomaly exists in the image data based on the comparison result.
  • the circuit for determining whether anomaly exists in the image data based on the scoring value for each class comprises: a circuit for obtaining a variance of the scoring value; And a circuit for determining whether anomaly exists in the image data based on the dispersion value.
  • the circuit for determining whether anomaly exists in the image data based on the scoring value for each class is further configured to determine whether the scoring value is equal to or greater than a first threshold value. Circuitry for determining number; And circuitry for determining that no anomaly exists in the image data when the number of classes whose scoring value is greater than or equal to a first threshold is less than or equal to a first predetermined number.
  • the circuit for determining whether anomaly exists in the image data based on the scoring value for each class includes: determining that the scoring value is equal to or greater than a second threshold value. Circuitry for determining number; And circuitry for determining that anomaly exists in the image data when the number of classes whose scoring value is greater than or equal to a second threshold value is greater than or equal to a second predetermined number, wherein the second threshold value is a first threshold value; It may be:
  • the method may further include a circuit for displaying a portion of the image data in the image data when the anomaly exists in the image data. have.
  • the circuit for classifying the image data using the pre-learned network function is configured to classify each portion of the image data to segment the image data.
  • the circuit may further include.
  • a circuit for segmenting each portion of the image data to segment the image data may be further configured to segment the image data into classes for each pixel. It may include a circuit for.
  • circuitry for obtaining a class-specific scoring value for classifying the image data output from the pre-learned network function is provided for each pixel of the image data. It may include a circuit for obtaining a scoring value for each class.
  • the image data may comprise one or more components classified into each class.
  • FIG. 12 is a block diagram of a computing device according to an embodiment of the present disclosure.
  • FIG. 12 shows a brief general schematic of an example computing environment in which embodiments of the present disclosure may be implemented.
  • program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • methods of the present disclosure may include uniprocessor or multiprocessor computer systems, minicomputers, mainframe computers as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, And other computer system configurations, including one or more associated devices, which may operate in conjunction with one or more associated devices.
  • Computers typically include a variety of computer readable media. Any medium accessible by a computer can be a computer readable medium.
  • Computer readable media includes volatile and nonvolatile media, transitory and non-transitory media, removable and non-removable media.
  • Computer readable media may comprise computer readable storage media and computer readable transmission media.
  • Computer-readable storage media are volatile and nonvolatile media, temporary and non-transitory media, removable and non-removable implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Media.
  • Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROMs, digital video disks or other optical disk storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, Or any other medium that can be accessed by a computer and used to store desired information.
  • Computer-readable transmission media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and the like. Includes all information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed to encode information in the signal.
  • computer readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, or other wireless media. Combinations of any of the above should also be included within the scope of computer readable transmission media.
  • System bus 1108 connects system components, including but not limited to system memory 1106, to processing unit 1104.
  • Processing unit 1104 may be any of a variety of commercial processors. Dual processor and other multiprocessor architectures may also be used as the processing unit 1104.
  • the system bus 1108 may be any of several types of bus structures that may be further interconnected to a memory bus, a peripheral bus, and a local bus using any of a variety of commercial bus architectures.
  • System memory 1106 includes read only memory (ROM) 1110 and random access memory (RAM) 1112.
  • ROM read only memory
  • RAM random access memory
  • the basic input / output system (BIOS) is stored in nonvolatile memory 1110, such as ROM, EPROM, EEPROM, etc., and the BIOS provides a basic aid for transferring information between components in the computer 1102, such as during startup. Contains routines.
  • RAM 1112 may also include fast RAM, such as static RAM, for caching data.
  • Computer 1102 also includes an internal hard disk drive (HDD) 1114 (eg, EIDE, SATA) —the internal hard disk drive 1114 may also be configured for external use within a suitable chassis (not shown).
  • HDD hard disk drive
  • FDD magnetic floppy disk drive
  • optical disk drive 1120 eg, CD-ROM Disk 1122 for reading from or writing to or reading from other high capacity optical media such as DVD.
  • the hard disk drive 1114, the magnetic disk drive 1116, and the optical disk drive 1120 are connected to the system bus 1108 by the hard disk drive interface 1124, the magnetic disk drive interface 1126, and the optical drive interface 1128, respectively.
  • the interface 1124 for external drive implementation includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
  • drives and their associated computer readable media provide nonvolatile storage of data, data structures, computer executable instructions, and the like.
  • drives and media correspond to storing any data in a suitable digital format.
  • computer readable media refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, those skilled in the art will appreciate zip drives, magnetic cassettes, flash memory cards, cartridges, and the like.
  • Other types of media readable by the computer, etc. may also be used in the exemplary operating environment and it will be appreciated that any such media may include computer executable instructions for performing the methods of the present disclosure.
  • Program modules may be stored in the drive and RAM 1112, including operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or a portion of the operating system, applications, modules and / or data may also be cached in RAM 1112. It will be appreciated that the present disclosure may be implemented in various commercially available operating systems or combinations of operating systems.
  • a user may enter commands and information into the computer 1102 via one or more wired / wireless input devices, such as a keyboard 1138 and a mouse 1140.
  • Other input devices may include a microphone, IR remote control, joystick, game pad, stylus pen, touch screen, and the like.
  • input device interface 1142 which is connected to the system bus 1108, but the parallel port, IEEE 1394 serial port, game port, USB port, IR interface, Etc. can be connected by other interfaces.
  • a monitor 1144 or other type of display device is also connected to the system bus 1108 via an interface such as a video adapter 1146.
  • the computer generally includes other peripheral output devices (not shown) such as speakers, printers, and the like.
  • Computer 1102 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer (s) 1148, via wired and / or wireless communications.
  • Remote computer (s) 1148 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and typically is associated with computer 1102. Although many or all of the components described above are included, for simplicity, only memory storage 1150 is shown.
  • the logical connections shown include wired / wireless connections to a local area network (LAN) 1152 and / or a larger network, such as a telecommunications network (WAN) 1154.
  • LAN and WAN networking environments are commonplace in offices and businesses, facilitating enterprise-wide computer networks such as intranets, all of which may be connected to worldwide computer networks, such as the Internet.
  • the computer 1102 When used in a LAN networking environment, the computer 1102 is connected to the local network 1152 via a wired and / or wireless communication network interface or adapter 1156. Adapter 1156 may facilitate wired or wireless communication to LAN 1152, which also includes a wireless access point installed therein for communicating with wireless adapter 1156.
  • the computer 1102 When used in a WAN networking environment, the computer 1102 may include a modem 1158, connect to a communication computing device on the WAN 1154, or establish communications over the WAN 1154, such as over the Internet. Other means.
  • the modem 1158 which may be an internal or external and wired or wireless device, is connected to the system bus 1108 via the serial port interface 1142.
  • program modules or portions thereof described with respect to computer 1102 may be stored in remote memory / storage device 1150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
  • Computer 1102 is associated with any wireless device or entity disposed and operating in wireless communication, such as a printer, scanner, desktop and / or portable computer, portable data assistant, communications satellite, wireless detectable tag. Communicate with any equipment or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technology. Thus, the communication can be a predefined structure as in a conventional network or simply an ad hoc communication between at least two devices.
  • Wi-Fi Wireless Fidelity
  • Wi-Fi is a wireless technology such as a cell phone that allows such a device, for example, a computer, to transmit and receive data indoors and outdoors, i.
  • Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, high-speed wireless connections.
  • Wi-Fi may be used to connect computers to each other, to the Internet, and to a wired network (using IEEE 802.3 or Ethernet).
  • Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz wireless bands, for example, at 11 Mbps (802.11a) or 54 Mbps (802.11b) data rates, or in products that include both bands (dual band). have.
  • data, instructions, instructions, information, signals, bits, symbols, and chips may include voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields. Or particles, or any combination thereof.
  • the various embodiments presented herein may be embodied in a method, apparatus, or article of manufacture using standard programming and / or engineering techniques.
  • article of manufacture includes a computer program, carrier, or media accessible from any computer-readable device.
  • computer-readable media may include magnetic storage devices (eg, hard disks, floppy disks, magnetic strips, etc.), optical discs (eg, CDs, DVDs, etc.), smart cards, and flash memory. Devices, such as, but not limited to, EEPROM, cards, sticks, key drives, and the like.
  • various storage media presented herein include one or more devices and / or other machine-readable media for storing information.
  • the present disclosure can be used to determine whether anomaly exists in image data utilized in the field of detecting and analyzing an image using a computing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법이 개시된다. 상기 방법은 사전 학습된 네트워크 함수가 이미지 데이터를 수신하는 단계; 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 단계; 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 단계; 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계를 포함한다.

Description

데이터의 어노말리 감지 방법
본 발명은 인공지능 데이터 처리에 관한 것으로, 보다 구체적으로 인공 신경망을 이용하여 이미지 데이터의 어노말리 존재 여부를 판단하는 방법에 관한 것이다.
공정에서 검사 목표인 타겟 들이 이미지화 되어 결함 여부가 검사된다. 반면, 이미지 데이터를 사람이 검측 하고 분석하는 것에는 한계가 있다. 정확도가 높은 이미지 데이터의 상태 판단 방법이 당업계에서 요구된다. 정확도가 높은 이미지 데이터의 상태 판단 방법을 구현하기 위해 신경망 네트워크(neural network)가 이용될 수 있다.
인공 신경망을 통한 어노말리 감지 방법 및 장치가 산업계에 도입되었다. 정상 데이터의 확보는 용이하나 어노말리를 포함하는, 비정상 데이터의 확보는 용이하지 않은 것이 일반적이다. 인공 신경망의 학습을 위한 어노말리를 포함하는, 비정상 데이터의 요구량을 감소시키기 위한 솔루션에 대한 수요가 당업계에 존재한다.
대한민국 등록 특허 KR1847874B1은 신경망을 이용한 이미지 인식 방법을 개시한다.
본 개시는 전술 한 배경기술에 대응하여 안출 된 것으로, 이미지 데이터의 어노말리 판단 방법을 제공하는 것을 목적으로 한다.
본 개시는 이미지 데이터의 어노말리 판단 방법을 통해 이미지 데이터의 어노말리의 존재 여부에 대한 정보를 제공하는 것을 목적으로 한다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법이 개시된다. 상기 이미지 데이터의 어노말리 판단 방법은, 사전 학습된 네트워크 함수가 이미지 데이터를 수신하는 단계; 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 단계; 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 단계; 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는, 상기 클래스 별 스코어링 값 각각의 크기를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는, 상기 스코어링 값의 분산을 구하는 단계; 및 상기 분산에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는, 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하는 단계; 및 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는, 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하는 단계; 및 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하는 단계를 포함할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하는 단계를 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 단계는, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하는 단계는, 상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 단계는, 상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하는 단계를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 데이터의 어노말리 판단을 위한 컴퓨팅 장치가 개시된다. 상기 컴퓨팅 장치는, 하나 이상의 프로세서; 및 상기 프로세서에서 실행가능한 명령들을 저장하는 메모리; 를 포함하고, 상기 프로세서는, 사전 학습된 네트워크 함수에 이미지 데이터를 입력하고, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하고, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하고, 그리고 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 장치의 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하는, 컴퓨터 판독가능 저장 매체(computer readable storing medium)에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은: 사전 학습된 네트워크 함수가 이미지 데이터를 수신하는 명령; 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 명령; 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 명령; 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 명령을 포함할 수 있다.
본 개시는 이미지 데이터의 어노말리를 판단하는 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따라 컨벌루셔널 뉴럴 네트워크(convolutional neural network)를 나타낸 개략도이다.
도 3은 본 개시의 일 실시예에 따라 네트워크 함수를 통해 이미지 데이터를 분류하고, 이미지 데이터를 분류하기 위한 클래스 별로 스코어링 값을 획득하는 것을 개략적으로 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따라 정상 이미지 데이터의 예시를 나타낸 도면이다.
도 5는 본 개시의 일 실시예에 따라 어노말리가 존재하는 이미지 데이터의 예시를 나타낸 도면이다.
도 6은 본 개시의 일 실시예에 따라 어노말리가 존재하는 이미지 데이터의 어노말리 부분을 표시한 도면이다.
도 7a는 본 개시의 일 실시예에 따라 이미지 데이터에 어노말리가 존재하지 않는 경우 클래스 별 스코어링 값을 개략적으로 도시한 도면이다.
도 7b는 본 개시의 일 실시예에 따라 이미지 데이터에 어노말리가 존재하는 경우 클래스 별 스코어링 값을 개략적으로 도시한 도면이다.
도 8는 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 수단을 도시한 블록 구성도이다.
도 9은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 모듈을 도시한 블록 구성도이다.
도 10은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 로직을 도시한 블록 구성도이다.
도 11은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 회로를 도시한 블록 구성도이다.
도 12는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도(block diagram)이다.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의 미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시 적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시 적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지 식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예 들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
도 1은 본 개시의 일 실시예에 따른 이미지 데이터의 어노말리를 판단하는 방법을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
도 1에 도시된 컴퓨팅 장치(100)의 구성은 간략화 하여 나타낸 예시일 뿐이다. 본 개시의 일 실시예에서 컴퓨팅 장치(100)는 컴퓨팅 장치(100)의 컴퓨팅 환경을 수행하기 위한 다른 구성들이 포함될 수 있다.
컴퓨팅 장치(100)는 프로세서(110), 메모리(120), 통신 모듈(130), 카메라 모듈(140)을 포함할 수 있다.
프로세서(110)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장 치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 딥러닝을 위한 프로세서를 포함할 수 있다. 프로세서(110)는 메모리(120)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 이미지 데이터의 어노말리 판단 방법을 수행할 수 있다. 본 개시의 일실시예에 따라 프로세서(110)는 신경망의 학습을 위한 계산을 수행할 수 있다. 프로세서(110)는 딥러닝(DN: deep learning)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피쳐(feature) 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중 치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다. 프로세서(110)의 CPU, GPGPU, 및 TPU 중 적어도 하나가 네트워크 함수의 학습을 처리할 수 있다. 예를 들어, CPU 와 GPGPU가 함께 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에서 복수의 컴퓨팅 장치의 프로세서를 함께 사용하여 네트워크 함수의 학습, 네트워크 함수를 이용한 데이 터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.
본 개시의 일 실시예에서 컴퓨팅 장치(100)는 CPU, GPGPU, 및 TPU 중 적어도 하나를 이용하여 네트워크 함수를 분산하여 처리할 수 있다. 또한 본 개시의 일 실시예에서 컴퓨팅 장치(100)는 다른 컴퓨팅 장치와 함께 네트워크 함수를 분산하여 처리할 수 있다.
본 개시의 일 실시예에서 네트워크 함수를 이용하여 처리되는 이미지는 컴퓨팅 장치(100)의 저장 매체에 저장된 이미지, 컴퓨팅 장치(100)의 카메라 모듈(140)에 의하여 촬영된 이미지 및/또는 통신 모듈(130)에 의하여 이미지 데이터 베이스 등 다른 컴퓨팅 장치로부터 전송된 이미지 일 수 있다. 또한 본 개시의 일 실시예에서 네트워크 함수를 이용하여 처리되는 이미지는 컴퓨터 판독가능 저장 매체(예를 들어, 플래시 메모리 등을 포함할 수 있으나 본 개시는 이에 제한되지 않음)에 저장된 이미지일 수 있다. 컴퓨팅 장치(100)는 입출력 인터페이스(미도시)를 통해 컴퓨터 판독가능 저장 매체에 저장된 이미지 파일을 입력 받을 수 있다.
본 개시의 일 실시예에서 컴퓨팅 장치(100)는 이미지 데이터를 수신하고, 사전 학습된 네트워크 함수를 이용하여 이미지 데이터를 분류할 수 있다. 본 개시의 일 실시예에서 컴퓨팅 장치(100)는 사전 학습된 네트워크를 함수에서 출력되는 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값에 기초하여 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다.
본 개시의 일 실시예에서 컴퓨팅 장치는 상기 클래스 별 스코어링 값에 기초하여 해당 이미지를 어느 하나의 분류로 판별할 수 있는 경우 해당 이미지를 정상데이터로 판단할 수 있다. 컴퓨팅 장치는 상기 클래스 별 스코어링 값에 기초하여 해당 이미지를 어느 하나의 분류로 판별할 수 없는 경우 해당 이미지를 어노말리가 존재하는 비정상 데이터로 판단할 수 있다. 컴퓨팅 장치는 상기 클래스 별 스코어링 값에 기초하여 해당 픽셀을 어느 하나의 분류로 판별할 수 있는 경우 정상데이터로 판단할 수 있다. 컴퓨팅 장치는 상기 클래스 별 스코어링 값에 기초하여 해당 픽셀을 어느 하나의 분류로 판별할 수 없는 경우 어노말리가 존재하는 비정상 데이터로 판단할 수 있다. 즉, 본 개시의 일 실시예에서 컴퓨팅 장치는 정상 데이터를 훈련 데이터로 하여 이미지 세그먼테이션 훈련을 수행하였으므로, 컴퓨팅 장치가 입력 데이터를 스코어링 값에 기초하여 분류할 수 있는 경우, 해당 입력 데이터는 정상 데이터일 수 있다. 그러나, 컴퓨팅 장치가 입력 데이터를 스코어링 값에 기초하여 분류할 수 없는 경우, 해당 입력 데이터는 컴퓨팅 장치가 학습하지 않은 새로운 패턴을 포함할 가능성이 있으며, 컴퓨팅 장치가 학습하지 않은 새로운 패턴은 어노말리에 해당할 가능성이 있다. 그러므로, 컴퓨팅 장치는 학습된 모델을 통하여 분류할 수 없는 입력 데이터는 어노말리를 포함하는 비정상 데이터로 분류할 수 있다.
본 개시의 일 실시예에서 컴퓨팅 장치는 상기 클래스 별 스코어링 값에 기초하여 해당 픽셀을 두개 이상의 분류로 판별할 수 있는 경우 해당 픽셀은 두개 이상의 컴포넌트가 존재하는 엣지를 포함하는 정상데이터로 판단할 수 있다.
본 개시의 일 실시예에서 컴퓨팅 장치는 상기 클래스 별 스코어링 값 각각에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 상기 스코어링 값은 해당 부분이 특정 클래스에 속할 확률에 대응하는 값을 나타내는 값이다. 상기 스코어링 값의 대상이 되는 부분은 컴퓨팅 장치가 수신한 이미지 전체, 컴퓨팅 장치가 수신한 이미지의 픽셀 각각 등을 포함할 수 있다. 확률에 대응하는 값으로 표시된 클래스 별 스코어링 값 각각의 확률에 대응하는 크기 값을 비교하여 어노말리가 존재하는지 여부를 판단할 수 있다. 클래스 별 확률에 대응하는 크기 값 중 사전결정된 일정 임계 값 보다 큰 값이 한 개만 존재하는 경우에 어노말리가 존재하지 않는 정상 패턴을 가지는 정상 이미지 데이터를 수신한 것으로 판단할 수 있다. 클래스 별 확률에 대응하는 크기 값 중 사전결정된 일정 임계 값 보다 큰 값이 한 개 이상 존재하는 경우에 어노말리가 존재하는 정상 패턴을 벗어난 비정상 이미지 데이터를 수신한 것으로 판단할 수 있다.
본 개시의 다른 실시예에서 컴퓨팅 장치는 클래스 별 스코어링 값 들의 분산을 구하고, 그리고 상기 분산 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 확률에 대응하는 값으로 표시된 클래스 별 스코어링 값들의 분산을 구할 수 있다. X의 분산은
Figure PCTKR2019006164-appb-img-000001
의 기댓값에서 X의 기댓값의 제곱을 뺀 것이다. 즉, X의 분산
Figure PCTKR2019006164-appb-img-000002
Figure PCTKR2019006164-appb-img-000003
이다. 스코어링 값들의 분산이 크면 클래스별 스코어링 값들이 고르지 않게 분포되어 있다는 것을 의미한다. 스코어링 값들의 분산이 크다는 것은, 특정 클래스에 대한 스코어링 값이 다른 클래스들의 스코어링 값보다 압도적으로 높다는 것을 의미한다. 하나의 클래스의 스코어링 값이 압도적으로 큰 값을 가지면 컴퓨팅 장치가 사전 학습된 네트워크를 통해 이미지 데이터를 어느 하나의 분류로 분류할 수 있다. 하나의 클래스의 스코어링 값이 압도적으로 큰 값을 가지면 해당 데이터는 어노말리가 존재하지 않는 정상 데이터로 판단될 수 있다. 스코어링 값들의 분산이 작으면 클래스별 스코어링 값들이 고르게 분포되어 있다는 것을 의미한다. 스코어링 값들의 분산이 작으면 하나의 클래스의 스코어링 값이 다른 어느 클래스의 스코어링 값보다 압도적으로 크지 않다는 것을 의미한다. 압도적인 스코어링 값을 가지는 클래스가 없으면 컴퓨팅 장치가 사전 학습된 네트워크를 통해 이미지 데이터를 어느 하나의 분류로 분류할 수 없어, 해당 데이터는 어노말리가 존재하는 비정상 데이터로 판단될 수 있다. 컴퓨팅 장치는 상기 스코어링 분포에 기초하여 구한 분산 값이 사전결정된 임계 값 이상이면 어노말리가 존재하지 않는 정상 이미지 데이터로 판단할 수 있다. 컴퓨팅 장치는 상기 스코어링 분포에 기초하여 구한 분산 값이 사전결정된 임계 값 이하이면 어노말리가 존재하는 비정상 이미지 데이터로 판단할 수 있다.
본 개시의 다른 실시예에서 컴퓨팅 장치는 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하고, 그리고 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 이에 대한 자세한 설명은 도 7a를 참조하여 후술한다.
본 개시의 다른 실시예에서 컴퓨팅 장치는 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하고, 그리고 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 이에 대한 자세한 설명은 도 7b를 참조하여 후술한다.
본 개시의 다른 실시예에서 컴퓨팅 장치는 다른 사전 학습된 다른 네트워크 함수(제 2 네트워크 함수)를 이용하여 입력 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 다른 네트워크 함수는 사전 학습된 네트워크 함수의 출력인 클래스 별 스코어링 값을 입력으로 하는 네트워크 함수일 수 있다. 다른 네트워크 함수는 사전 네트워크 함수와 직렬로 연결된 네트워크 함수일 수 있다. 여기서 직렬은 사전 네트워크 함수의 출력의 적어도 일부가 다른 네트워크 함수의 입력이 되거나, 사전 네트워크 함수의 일부가 다른 네트워크 함수와 중첩될 수 있음을 의미할 수 있다. 다른 네트워크 함수는 본 개시의 사전 학습된 네트워크 함수의 출력인 클래스 별 스코어링 값을 입력으로 하여 훈련된 네트워크 함수로서, 정상 데이터의 클래스 별 스코어링 값 및 비정상 데이터의 클래스 별 스코어링 값의 패턴을 학습한 네트워크 함수일 수 있다. 즉, 다른 네트워크 함수는 비정상 데이터와 정상 데이터에 대한 스코어링 값 모두를 학습 데이터로 사용하여 지도 학습 방법으로 학습된 네트워크 함수일 수 있다. 컴퓨팅 장치는 제 1 네트워크 함수(즉, 본 개시의 일 실시예의 이미지 세그먼테이션을 수행하기 위한 네트워크 함수)에서 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득할 수 있다. 컴퓨팅 장치의 제 2 네트워크 함수(즉, 본 개시의 다른 일 실시예의 데이터의 어노말리 여부를 판단하기 위한 네트워크 함수)는 제 1 네트워크 함수로부터 클래스 별 스코어링 값을 입력 받아 어노말리가 존재하는지 여부를 판단할 수 있다. 제 1 네트워크 함수의 출력 노드의 개수는 클래스의 개수보다 크거나 같을 수 있다. 제 2 네트워크 함수의 입력 노드의 개수는 제 1 네트워크 함수의 출력 노드의 개수보다 크거나 같을 수 있다. 제 2 네트워크 함수의 입력 노드의 개수 중 제 1 네트워크 함수의 출력 노드와 매칭되지 않는 나머지 노드는 널(NULL)값으로 설정 할 수 있다. 제 2 네트워크 함수는 클래스 별 스코어링 값에 기초하여 입력 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 종류의 네트워크 함수를 포함할 수 있으며 예를 들어, 컨벌루셔널 뉴럴 네트워크(CNN: convolutional neural network), 다층 퍼셉트론(MLP: multi layer perceptrons), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크 등을 포함할 수 있으나, 본 개시는 이에 제한되지 않는다. 제 1 네트워크 함수와 제 2 네트워크 함수가 직렬 연결된 경우, 둘 이상의 직렬 연결된 네트워크 함수들이 하나의 네트워크 함수를 구성할 수 있다.
컴퓨팅 장치는 어노말리가 존재하는지 여부에 대해 판단을 한 후, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시할 수 있다. 상기 이미지 데이터에 어노말리를 표시하는 부분은 이미지 데이터의 전체 일 수 있고, 이미지 데이터의 픽셀 단위의 일 부분일 수 있다.
메모리(120)는 본 개시의 일 실시예에 따른 이미지 데이터의 어노말리 판단 방법을 수행하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서(110)에 의하여 판독되어 구동될 수 있다.
통신 모듈(130)은 본 개시의 일 실시예에 따른 이미지 데이터의 어노말리 판단 방법을 수행하기 위한 데이터 등을 다른 컴퓨팅 장치, 서버 등과 송수신할 수 있다. 통신 모듈(130)은 이미지 데이터 등 본 개시의 실시예에 필요한 데이터들을 다른 컴퓨팅 장치, 서버 등과 송수신 할 수 있다. 예를 들어, 통신 모듈(130)은 학습 이미지 데이터베이스 등에서 학습 이미지 데이터를 수신할 수 있다. 또한, 통신 모듈(130)은 복수의 컴퓨팅 장치 사이의 통신을 가능하게 하여 복수의 컴퓨팅 장치 각각에서 네트워크 함수의 학습이 분산 수행되도록 할 수 있다. 통신 모듈(130)은 복수의 컴퓨팅 장치 사이의 통신을 가능하게 하여 네트워크 함수를 사용한 데이터 분류를 분산 처리할 수 있도록 할 수 있다.
카메라 모듈(140)은 본 개시의 일 실시예에 따른 이미지 데이터의 어노말리 판단 방법을 수행하기 위하여 검사 대상물을 촬영하여 이미지 데이터를 생성하도록 할 수 있다. 본 개시의 일 실시예에서 컴퓨팅 장치(100)는 하나 이상의 카메라 모듈(140)을 포함할 수 있다.
도 2는 본 개시의 일 실시예에 따라 컨벌루셔널 뉴럴 네트워크(convolutional neural network)를 나타낸 개략도이다.
본 명세서에 걸쳐, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 신경망을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크 (CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크 등을 포함할 수 있다.
도2에 도시된 컨벌루셔널 뉴럴 네트워크는 딥 뉴럴 네트워크의 일종으로서, 컨벌루셔널 레이어를 포함하는 신경망을 포함한다. 컨벌루셔널 뉴럴 네트워크는 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptorns)의 한 종류이다. CNN은 하나 또는 여러 개의 컨벌루셔널 레이어와 이와 결합된 인공 신경망 계층들로 구성될 수 있다. CNN은 가중치와 풀링 레이어(pooling layer)들을 추가로 활용할 수 있다. 이러한 구조 덕분에 CNN은 2 차원 구조의 입력 데이터를 충분히 활용할 수 있다. 컨벌루셔널 뉴럴 네트워크는 이미지에서 오브젝트를 인식하기 위하여 사용될 수 있다. 컨벌루셔널 뉴럴 네트워크는 이미지 데이터를 차원을 가진 행렬로 나타내어 처리할 수 있다. 예를 들어 RGB(red-green-blue)로 인코딩 된 이미지 데이터의 경우, R, G, B 색상별로 각각 2차원(예를 들어, 2 차원 이미지 인 경우) 행렬로 나타내 질 수 있다. 즉, 이미지 데이터의 각 픽셀의 색상 값이 행렬의 성분이 될 수 있으며 행렬의 크기는 이미지의 크기와 같을 수 있다. 따라서 이미지 데이터는 3개의 2차원 행렬로(3차원의 데이터 어레이)로 나타내질 수 있다.
컨벌루셔널 뉴럴 네트워크에서 컨벌루셔널 필터를 이동해가며 컨벌루셔널 필터와 이미지의 각 위치에서의 행렬 성분끼리 곱하는 것으로 컨벌루셔널 과정(컨벌루셔널 레이어의 입출력)을 수행할 수 있다. 컨벌루셔널 필터는 n*n 형태의 행렬로 구성될 수 있다. 컨벌루셔널 필터는 일반적으로 이미지의 전체 픽셀의 수보다 작은 고정된 형태의 필터로 구성될 수 있다. 즉, m*m 이미지를 컨벌루셔널 레이어(예를 들어, 컨벌루셔널 필터의 사이즈가 n*n인 컨벌루셔널 레이어)입력시키는 경우, 이미지의 각 픽셀을 포함하는 n*n 픽셀을 나타내는 행렬이 컨벌루셔널 필터와 성분 곱 (즉, 행렬의 각 성분끼리의 곱) 될 수 있다. 컨벌루셔널 필터와의 곱에 의하여 이 미지에서 컨벌루셔널 필터와 매칭되는 성분이 추출될 수 있다. 예를 들어, 이미지에서 상하 직선 성분을 추출하기 위한 3*3 컨벌루셔널 필터는 [[0,1,0], [0,1,0], [0,1,0]] 와 같이 구성될 수 있다. 이미지에서 상하 직선 성분을 추출하기 위한 3*3 컨벌루셔널 필터가 입력 이미지에 적용되면 이미지에서 컨벌루셔널 필터와 매칭되는 상하 직선 성분이 추출되어 출력될 수 있다. 컨벌루셔널 레이어는 이미지를 나타낸 각각의 채널에 대한 각각의 행렬(즉, R, G, B 코딩 이미지의 경우, R, G, B 색상)에 컨벌루셔널 필터를 적용할 수 있다. 컨벌루셔널 레이어는 입력 이미지에 컨벌루셔널 필터를 적용하여 입력 이미지에서 컨벌루셔널 필터와 매칭되는 피쳐를 추출할 수 있다. 컨벌루셔널 필터의 필터 값(즉, 행렬의 각 성분의 값)은 컨벌루셔널 뉴럴 네트워크의 학습 과정에서 역전파에 의하여 업데이트 될 수 있다.
컨벌루셔널 레이어의 출력에는 서브샘플링 레이어가 연결되어 컨벌루셔널 레이어의 출력을 단순화하여 메모리 사용량과 연산량을 줄일 수 있다. 예를 들어, 2*2 맥스 풀링 필터를 가지는 풀링 레이어에 컨벌루셔널 레이어의 출력을 입력시키는 경우, 이미지의 각 픽셀에서 2*2 패치마다 각 패치에 포함되는 최대값을 출력하여 이미지를 압축할 수 있다. 전술한 풀링은 패치에서 최소값을 출력하거나, 패치의 평균값을 출력하는 방식일 수도 있으며 임의의 풀링 방식이 본 개시에 포함될 수 있다.
컨벌루셔널 뉴럴 네트워크는 하나 이상의 컨벌루셔널 레이어, 서브 샘플링 레이어를 포함할 수 있다. 컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 과정과 서브샘플링 과정(예를 들어, 전술한 맥스 풀링 등)을 반복적으로 수행하여 이미지에서 피쳐를 추출할 수 있다. 반복적인 컨벌루션널 과정과 서브샘플링 과정을 통해 뉴럴 네트워크는 이미지의 글로벌 피쳐를 추출할 수 있다.
컨벌루셔널 레이어 또는 서브샘플링 레이어의 출력은 풀 커넥티드 레이어(fully connected layer)에 입력될 수 있다. 풀 커넥티드 레이어는 하나의 레이어에 있는 모든 뉴런과 이웃한 레이어에 있는 모든 뉴런이 연결되는 레이어이다. 풀 커넥티드 레이어는 뉴럴 네트워크에서 각 레이어의 모든 노드가 다른 레이어의 모든 노드에 연결된 구조를 의미할 수 있다.
본 개시의 일 실시예에서 이미지 데이터의 세그먼테이션(segmentation)을 수행하기 위하여 뉴럴 네트워크는 디컨벌루셔널 뉴럴 네트워크(DCNN: deconvolutional neural network)를 포함할 수 있다. 디컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크를 역방향으로 계산 시킨 것과 유사한 동작을 수행한다. 디컨벌루셔널 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크에서 추출된 피쳐를 원본 데이터와 관련된 피쳐맵으로 출력할 수 있다. 컨벌루셔널 뉴럴 네트워크에 대한 구체적인 구성에 관한 설명은 본 출원에서 전체가 참조로서 통합되는 미국 등록 특허 US9870768에서 보다 구체적으로 논의된다.
도 3은 본 개시의 일 실시예에 따라 네트워크 함수를 통해 이미지 데이터를 분류하고, 이미지 데이터를 분류하기 위한 클래스 별로 스코어링 값을 획득하는 것을 개략적으로 도시한 도면이다.
본 개시의 사전 학습된 네트워크 함수(320)는 교사 학습(supervised learning), 비 교사 학습(unsupervised learning) 및 반교사학습(semi supervised learning) 중 적어도 하나의 방식으로 학습될 수 있다. 네트워크 함수의 학습은 출력의 오류를 최소화하기 위한 것이다. 네트워크 함수의 학습에서 반복적으로 학습 데이터를 네트워크 함수에 입력시킨다. 네트워크 함수의 학습에서 학습 데이터에 대한 네트워크 함수의 출력과 타겟의 에러를 계산한다. 네트워크 함수의 학습에서 에러를 줄이기 위한 방향으로 네트워크 함수의 에러를 네트워크 함수의 출력 레이어에서부터 입력 레이어 방향으로 역전파하여 네트워크 함수의 각 노드의 가중치를 업데이트 할 수 있다.
구체적으로 본 개시의 사전 학습된 네트워크 함수(320)는 라벨링 된(labeled) 정상 데이터만을 학습 데이터로 사용하여 교사 학습된 네트워크 함수일 수 있다. 라벨링 된 학습 데이터는 사용자가 직접 정상 데이터의 컴포넌트에 라벨링 한 것일 수 있다. 본 개시의 일 실시예에 따라 사용자가 직접 정상 데이터의 컴포넌트에 라벨링 함에 있어 영상처리 알고리즘 기법을 사용할 수 있다. 영상처리 알고리즘은 캐니 엣지 디텍션(canny edge detection), 해리스 코너 디텍션(harris corner detection)등을 포함할 수 있으나, 본개시는 이에 제한되지 않는다. 캐니 엣지 디텍션을 통해 컴퓨팅 장치는 영상을 블러링(blurring) 처리하여 노이즈를 제거하고, 마스크 엣지를 이용하여 엣지를 검출하고, Non-Maximum Value를 제거하고, Double Threshold로 크기를 구분하여 엣지를 연결함으로써 엣지를 추출할 수 있다. 영상처리 알고리즘 기법을 사용하여 일정한 픽셀 두께의 엣지를 정상 데이터에서 추출할 수 있다. 라벨링은 정상 데이터에서 추출한 일정한 픽셀 두께의 엣지를 기초로 사용자가 영역을 선택하는 방식일 수 있다. 예를 들어, 캐니 엣지 디텍션을 통해 영상의 엣지가 추출됨으로써 여러 부분으로 영상이 분리될 수 있다. 분리된 영상의 일 부분은 나무, 도보, 하늘 등으로 라벨링 될 수 있다. 라벨링 된 학습 데이터는 정상 데이터의 컴포넌트에 라벨링이 된 것일 수도 있다. 라벨링 된 학습 데이터는 다른 인공 신경망을 이용하여 정상 데이터의 컴포넌트에 라벨링 한 것일 수도 있다. 학습 데이터는 이미지의 전 영역이 라벨링 된 것일 수 있다. 라벨링 된 학습 데이터를 네트워크 함수에 입력하고, 네트워크 함수의 출력인 분류와 학습 데이터의 라벨을 비교하여 오차를 계산할 수 있다. 계산된 오차는 네트워크 함수에서 역방향인 출력 레이어에서 입력 레이어 방향으로 역전파 될 수 있다. 출력 레이어에서 입력 레이어 방향으로 역전파 된 역전파에 따라 각 레이어의 각 노드들의 연결 가중치가 업데이트 될 수 있다. 업데이트 되는 각 노드의 연결 가중치는 학습률(learing rate)에 따라 변화량이 결정될 수 있다. 입력 데이터에 대한 네트워크 함수의 계산과 에러의 역전파는 학습 사이클을 구성할 수 있다. 학습률은 네트워크 함수의 학습 사이클의 반복 횟수에 따라 상이하게 적용될 수 있다. 예를 들어, 네트워크 함수의 학습 초기에는 높은 학습률을 사용하여 네트워크 함수가 빠르게 일정 수준의 성능을 확보하도록 하여 효율성을 높일 수 있다. 예를 들어, 네트워크 함수의 학습 후기에는 낮은 학습률을 사용하여 정확도를 높일 수 있다. 이미지 세그먼테이션은 예를 들어, 이미지에서 추출된 픽셀, 엣지, 색상 등에 기초하여 이미지의 일부를 다른 일부와 구분되도록 분리하는 이미지 프로세싱을 포함할 수 있다. 네트워크 함수의 출력인 분류는 픽셀 바이 픽셀 이미지 세그멘테이션 일 수 있다. 이미지의 픽셀 단위로 스코어링 값을 획득하고, 각 픽셀 스코어링 값에 기초하여 이미지 세그멘테이션을 하여 이미지 데이터를 분류할 수 있다. 이미지 세그멘테이션은 이미지의 일부를 다른 일부와 구분되도록 분리하는 이미지 프로세싱을 의미할 수 있다.
본 개시의 이미지 데이터의 어노말리를 판단하는 방법은 컴퓨팅 장치(100)의 하나 이상의 프로세서(110)에 의하여 수행될 수 있다. 본 개시의 컴퓨팅 장치(100)의 하나 이상의 프로세서(110)는 본 개시의 네트워크 함수(320)의 연산 프로세스를 수행할 수 있다. 본 개시의 이미지 데이터의 어노말리 판단 방법의 모든 연산 프로세스(즉, 네트워크 함수의 사전 학습, 클래스 별 스코어링 획득, 이미지 데이터 분류 등)은 컴퓨팅 장치(100)의 프로세서에 의하여 수행될 수 있다. 즉, 네트워크 함수(320)에서 데이터를 처리한다는 표현은 컴퓨팅 장치(100)의 프로세서(110)가 네트워크 함수를 실행하여 데이터를 처리하는 과정을 의미할 수 있다.
본 개시의 이미지 데이터의 어노말리 판단 방법에서 컴퓨팅 장치(100)는 네트워크 함수(320)에 이미지 데이터를 입력할 수 있다. 본 개시의 이미지 데이터의 어노말리 판단 방법에서 컴퓨팅 장치(100)는 네트워크 함수(320)에서 계산한 이미지 데이터의 어노말리 계산 결과에 기초하여 결과를 출력할 수 있다.
본 개시의 네트워크 함수(320)는 데이터의 분류를 위해 사용될 수 있다. 예를 들어, 본 개시의 네트워크 함수는 어노말리 디텍션(Anomaly Detection)에 사용될 수 있다.
어노말리 데이터는 데이터의 정상 패턴에서 벗어나는 비정상 데이터를 의미할 수 있다. 데이터는 비정형 패턴을 가질 수 있다. 어노말리 데이터는 이러한 비정형 패턴에서 벗어나는 데이터를 의미할 수 있다. 예를 들어, 생산 공정에서 생산 제품의 이미지에 관한 데이터는 정상 제품이라는 비정형 패턴을 가질 수 있다. 어노말리 데이터는 비정형 패턴에서 벗어난 데이터(즉, 예를 들어 불량 제품의 이미지 등)일 수 있다. 본 개시의 정상 데이터, 비정형 패턴, 어노말리 데이터에 관한 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
사전 학습된 네트워크 함수(320)가 수신한 이미지 데이터(310)는 어노말리(anomaly)의 판단의 대상이 되는 이미지이다. 본 개시에서 어노말리 데이터는 데이터의 정상 패턴에서 벗어나는 비정상 데이터 일 수 있다. 사전 학습된 네트워크 함수(320)가 수신한 이미지 데이터(310)는 정상 패턴을 가지는 정상 데이터일 수도 있다. 사전 학습된 네트워크 함수(320)가 수신한 이미지 데이터(310)는 정상 패턴에서 벗어나는 비정상 데이터일 수도 있다. 사전 학습된 네트워크 함수(320)가 수신한 이미지 데이터(310)는 검사 대상이 되는 제품의 이미지 일 수 있다.
사전 학습된 네트워크 함수(320)가 수신한 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트를 포함할 수 있다. 네트워크 함수(320)에 입력되는 이미지 데이터는 검사 대상이 되는 제품의 이미지 일 수 있다. 네트워크 함수(320)에 입력되는 이미지 데이터는 각각의 클래스로 분류될 수 있는 피씨비(PCB)기판, 홀(hole), 구리, 도선 등의 복수의 컴포넌트를 포함하는 이미지 일 수 있다. 전술한 클래스 및 검사 대상이 되는 제품의 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
사전 학습된 네트워크 함수(320)는 수신된 이미지 데이터를 네트워크 함수로 연산하여 픽셀 별로 클래스 별 스코어링 값(330)을 출력한다. 상기 클래스는 수신된 이미지 데이터의 각각의 컴포넌트를 의미할 수 있다. 출력 값은 픽셀 별로 피씨비 기판, 홀, 구리, 도선 등 클래스에 해당하는 스코어링 값을 나타낼 수 있다. 전술한 클래스는 예시일 뿐 본 개시는 이에 제한되지 않는다.
사전 학습된 네트워크 함수(320)는 픽셀 별로 클래스의 스코어링 값에 기초하여 이미지 데이터의 분류를 수행할 수 있다. 클래스의 스코어링 값은 각 픽셀이 어떤 컴포넌트에 해당하는지 분류하는 것일 수 있다. 해당 픽셀의 클래스 중 스코어링 값이 압도적으로 높은 클래스가 있으면, 해당 픽셀은 압도적으로 높은 스코어링 값을 가지는 클래스로 분류할 수 있다. 각각의 픽셀이 클래스 별로 분류된 결과 값을 기초로 이미지를 세그멘테이션 할 수 있다. 같은 분류에 해당하는 픽셀을 합치면 이미지의 다른 픽셀 부분과 구분되도록 분리할 수 있다. 이미지 세그먼트화는 이미지 데이터에서 다른 일부와 구분된 이미지 데이터의 일부를 시각화 하여 표시하는 과정 또한 포함될 수 있다. 픽셀의 클래스 중 구리에 해당하는 클래스의 스코어링 값이 다른 클래스인 피씨비, 홀, 도선의 스코어링 값 보다 압도적으로 큰 값이 출력되면 해당 픽셀은 구리로 분류할 수 있다. 구리로 분류되는 픽셀들을 합치는 이미지 세그멘테이션 과정을 거치면 이미지의 다른 부분인 피씨비, 홀, 도선 등의 부분과 분리할 수 있다. 분리한 부분인 이미지 데이터의 구리 부분을 시각화 하여 나타낼 수 있다.
사전 학습된 네트워크 함수(320)는 클래스 별 스코어링 값을 획득한 후 이에 기초하여 어노말리를 판단할 수 있다. 클래스 별 스코어링 값이 특정 클래스로 분류하기에 적절한지 여부에 따라 어노말리를 판단할 수 있다. 클래스 별 스코어링 값의 분포에 따라 특정 클래스로 분류하기에 적절한지 여부가 판단된다. 특정 클래스로 분류하기에 적절한지 여부에 기초하여 어노말리를 판단할 수 있다. 클래스 별 스코어링 값의 분포에 따라 특정 클래스로 분류하기에 불명확한 경우는 어노말리로 판단할 수 있다. 클래스 별 스코어링 값의 분포에 따라 특정 클래스로 분류하기에 명확한 경우는 노말로 판단할 수 있다. 사전 학습된 네트워크 함수는 라벨링 된 정상 데이터만으로 학습되었기 때문에 정상 데이터는 명확하게 분류를 할 수 있다. 그러나 비정상 데이터는 정상 데이터와는 다른 차이점이 존재한다. 정상 데이터와는 다른 차이점에 기초하여 클래스 별 스코어링 값이 정상 데이터의 스코어링 값과 다른 값이 나오게 된다. 정상 데이터의 스코어링 값은 하나의 클래스의 스코어링 값이 다른 클래스의 스코어링 값과 비교했을 때 압도적으로 큰 값이 나오거나 비슷한 스코어링 값을 가지는 클래스가 존재하지 않는다. 비정상 데이터는 사전 학습된 네트워크 함수의 학습 데이터와 달리 하나의 클래스의 스코어링 값이 다른 클래스의 스코어링 값과 비교하여 압도적인 값을 가지고 있지 않을 수 있다. 비정상 데이터는 사전 학습된 네트워크 함수의 학습 데이터와 달리 복수의 클래스의 스코어링 값이 비슷한 값을 가질 수 있다. 비정상데이터는 사전 학습된 네트워크 함수의 학습 데이터와 달리 클래스들의 분산 값이 작게 나올 수 있다. 컴퓨팅 장치는 클래스의 스코어링 값에 기초하여 어노말리를 판단할 수 있다. 컴퓨팅 장치는 이미지 세그멘테이션을 통해 어노말리 부분의 위치 정보를 추출할 수 있다. 컴퓨팅 장치는 이미지의 다른 부분으로부터 어노말리 데이터의 위치를 식별하는 과정을 거칠 수 있다. 이미지 세그멘테이션을 통해 어노말리 데이터의 위치를 식별하고 다른 일부와 구분된 이미지의 일부를 시각화하여 표시하는 과정 또한 포함할 수 있다.
도 4는 본 개시의 일 실시예에 따라 정상 이미지 데이터의 예시를 나타낸 도면이다.
본 개시의 일 실시예의 사전 네트워크 함수의 학습 데이터는 라벨링 된 정상데이터 일 수 있다. 상기와 같은 라벨링은 사용자가 직접 정상 데이터의 컴포넌트에 라벨링 한 것일 수 있다. 상기와 같은 라벨링은 다른 인공 신경망을 이용하여 정상 데이터의 컴포넌트에 라벨링 한 것일 수 있다. 학습 데이터는 각각의 컴포넌트에 피씨비 판(400), 홀(410), 구리선(420), 소자(430) 등으로 라벨링 한 것일 수 있다. 컴포넌트는 예시일 뿐 본 개시는 이에 제한되지 않는다.
본 개시의 일 실시예에 따라 정상 이미지 데이터를 사전 학습된 네트워크 함수가 수신하여 픽셀별로 클래스의 스코어링 값을 출력하면 도 7a와 같은 스코어링 값이 나온다. 정상 이미지 데이터에 대하여 클래스의 스코어링 값을 출력하면 하나의 클래스의 스코어링 값이 다른 클래스의 스코어링 값보다 압도적으로 높은 값이 나오게 된다. 홀(410)에 해당하는 부분의 픽셀에 대한 클래스 별 스코어링 값을 출력하게 되면, 도 7a와 같은 스코어링 값이 추출될 수 있다. 제 1 임계 값(712)보다 큰 스코어링 값을 가지는 클래스가 홀(410)에 해당할 수 있다. 제 1 임계 값(712)보다 작은 스코어링 값을 가지는 클래스가 판(400), 구리선(420), 소자(430) 일 수 있다. 홀(410)에 해당하는 부분의 픽셀 값의 스코어링 값은 하나의 클래스가 다른 클래스와 비교하였을 때 압도적으로 높은 값을 가지므로 사전 학습된 네트워크 함수가 정상 이미지 데이터로 판단할 수 있다.
도 5는 본 개시의 일 실시예에 따라 어노말리가 존재하는 이미지 데이터의 예시를 나타낸 도면이다.
본 개시의 일 실시예에 따라 어노말리가 존재하는 이미지 데이터를 사전 학습된 네트워크 함수가 수신하여 픽셀별로 클래스의 스코어링 값을 출력하면 도 7b와 같은 스코어링 값이 나온다. 어노말리가 존재하는 이미지 데이터에 대하여 클래스의 스코어링 값을 출력하면 하나의 클래스의 스코어링 값이 다른 클래스의 스코어링 값보다 압도적으로 큰 값을 가지지 않거나 복수의 클래스의 스코어링 값이 비슷한 값을 가지게 된다. 홀(510)에 해당하는 부분의 픽셀에 대한 클래스 별 스코어링 값을 출력하게 되면, 도 7b와 같은 스코어링 값이 추출될 수 있다. 제 2 임계 값(722)보다 큰 스코어링 값을 가지는 클래스가 복수 개 일 수 있다. 복수의 클래스가 비슷한 값을 가지는 스코어링 값이 출력될 수 있다. 사전 학습된 네트워크 함수는 하나의 압도적인 스코어링 값을 가지는 클래스가 없어 어노말리를 포함하는 이미지 데이터로 판단할 수 있다.
도 6은 본 개시의 일 실시예에 따라 어노말리가 존재하는 이미지 데이터의 어노말리 부분을 표시한 도면이다.
사전 학습된 네트워크 함수는 스코어링 값에 기초하여 네트워크 함수가 수신한 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 어노말리가 존재하는 픽셀에 대하여 이미지 세그먼트화를 하여 이미지의 다른 일부와 구분되도록 분리하여 출력되는 이미지 결과값에 어노말리를 표시할 수 있다.
도 7a는 본 개시의 일 실시예에 따라 이미지 데이터에 어노말리가 존재하지 않는 경우 클래스 별 스코어링 값을 개략적으로 도시한 도면이다.
도 7b는 본 개시의 일 실시예에 따라 이미지 데이터에 어노말리가 존재하는 경우 클래스 별 스코어링 값을 개략적으로 도시한 도면이다.
본 개시의 또 다른 일 실시예에서 컴퓨팅 장치는 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하고, 그리고 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있다. 네트워크 함수에 입력된 이미지 데이터가 정상 이미지 데이터인 경우 클래스 별 스코어링 분포가 도 7a와 같은 분포로 나타날 수 있다. 도 4의 홀(410) 부분의 픽셀에 대해 클래스 별 스코어링 분포를 네트워크 함수가 출력하면 도 7a의 분포가 나타날 수 있다. 가장 큰 확률에 대응하는 값을 가지는 스코어링 값이 홀(410), 다른 작은 확률에 대응하는 값을 가지는 스코어링 값이 피씨비 판(400), 구리선(420) 소자(430)가 될 수 있다. 제 1 사전결정된 수가 1일 때, 도 7a에서 제 1 임계 값(712)보다 큰 스코어링 값이 한 개일 수 있다. 따라서, 네트워크 함수는 제 1 사전결정된 수가 1 일 때, 네트워크 함수가 수신한 이미지 데이터를 정상 패턴을 가지는 이미지 데이터로 판단할 수 있다. 네트워크 함수는 제 1 사전결정된 수가 1 일 때, 네트워크 함수가 수신한 이미지 데이터를 어노말리를 포함하지 않는 정상 이미지 데이터로 판단할 수 있다. 도 4의 픽셀 별 세그멘테이션의 결과 한 픽셀 내에 엣지가 포함될 수 있다. 예를 들어, 세그멘테이션의 결과 한 픽셀 내에 엣지가 포함되어 있어, 홀(410)과 피씨비 판(400)이 모두 포함될 수 있다. 제 1 사전결정된 수가 2일 때, 한 픽셀 내에 엣지가 포함되어 있다면, 도 7a에서 제 1 임계 값(712)보다 큰 스코어링 값이 홀과 피씨비 판 2개일 수 있다. 제 1 임계 값 보다 큰 스코어링 값의 개수가 2개이면, 제 1 사전결정된 수인 2 이하이므로, 네트워크 함수가 수신한 이미지 데이터는 정상 패턴을 가지는 어노말리를 포함하지 않는 정상 이미지 데이터로 네트워크 함수가 판단할 수 있다.
본 개시의 또 다른 일 실시예에서 컴퓨팅 장치는 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하고, 그리고 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단함으로써 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다. 네트워크 함수에 입력된 이미지 데이터가 어노말리를 포함하는 비정상 이미지 데이터인 경우 클래스 별 스코어링 분포가 도 7b와 같은 분포로 나타날 수 있다. 도 5의 홀(510) 부분의 픽셀에 대해 클래스 별 스코어링 분포를 네트워크 함수가 출력하면 도 7b의 분포가 나타날 수 있다. 해당 픽셀에 대한 클래스 별 스코어링 값의 크기의 편차가 작게 나올 수 있다. 제 2 임계 값(722)은 제 1 임계 값(712) 이하일 수 있다. 제 2 사전결정된 수는 2 이상일 수 있다. 제 2 임계 값(722) 이상인 클래스의 수가 제 2 사전결정된 수인 2이상에 해당하므로 네트워크 함수가 수신한 이미지 데이터는 비정상 패턴을 가지는 어노말리를 포함하지 않는 비정상 이미지 데이터로 네트워크 함수가 판단 할 수 있다.
도 8은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 수단을 도시한 블록 구성도이다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법은 다음과 같은 수단에 의해 구현될 수 있다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법은, 사전 학습된 네트워크 함수가 이미지 데이터를 수신하기 위한 수단(810); 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 수단(820); 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 수단(830); 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단(840)에 의하여 구현될 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단은, 상기 클래스 별 스코어링 값 각각의 크기를 비교하기 위한 수단; 및 상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단은, 상기 스코어링 값의 분산을 구하기 위한 수단; 및 상기 분산 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단은, 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하기 위한 수단; 및 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하기 위한 수단을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 수단은, 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하기 위한 수단; 및 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하기 위한 수단을 포함할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하기 위한 수단을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 수단은, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 수단을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 수단은, 상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하기 위한 수단을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 수단은, 상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하기 위한 수단을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함할 수 있다.
도 9는 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 모듈을 도시한 블록 구성도이다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법은 다음과 같은 모듈에 의해 구현될 수 있다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법은, 사전 학습된 네트워크 함수가 이미지 데이터를 수신하기 위한 모듈(910); 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 모듈(920); 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 모듈(930); 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈(940)에 의하여 구현될 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈은, 상기 클래스 별 스코어링 값 각각의 크기를 비교하기 위한 모듈; 및 상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈은, 상기 스코어링 값의 분산을 구하기 위한 모듈; 및 상기 분산 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈은, 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하기 위한 모듈; 및 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하기 위한 모듈을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 모듈은, 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하기 위한 모듈; 및 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하기 위한 모듈을 포함할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하기 위한 모듈을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 모듈은, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 모듈을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 모듈은, 상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하기 위한 모듈을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 모듈은, 상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하기 위한 모듈을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함할 수 있다.
도 10은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 로직을 도시한 블록 구성도이다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법은 다음과 같은 로직에 의해 구현될 수 있다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법은, 사전 학습된 네트워크 함수가 이미지 데이터를 수신하기 위한 로직(1010); 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 로직(1020); 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 로직(1030); 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직(1040)에 의하여 구현될 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직은, 상기 클래스 별 스코어링 값 각각의 크기를 비교하기 위한 로직; 및 상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직은, 상기 스코어링 값의 분산을 구하기 위한 로직; 및 상기 분산 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직은, 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하기 위한 로직; 및 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하기 위한 로직을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 로직은, 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하기 위한 로직; 및 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하기 위한 로직을 포함할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하기 위한 로직을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 로직은, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 로직을 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 로직은, 상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하기 위한 로직을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 로직은, 상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하기 위한 로직을 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함할 수 있다.
도 11은 본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법을 구현하기 위한 회로를 도시한 블록 구성도이다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리를 판단하는 방법은 다음과 같은 회로에 의해 구현될 수 있다.
본 개시의 일 실시예에 따라 이미지 데이터의 어노말리 판단 방법은, 사전 학습된 네트워크 함수가 이미지 데이터를 수신하기 위한 회로(1210); 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 회로(1220); 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 회로(1230); 및 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로(1240)에 의하여 구현될 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로는, 상기 클래스 별 스코어링 값 각각의 크기를 비교하기 위한 회로; 및 상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로를 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로는, 상기 스코어링 값의 분산을 구하기 위한 회로; 및 상기 분산 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로는, 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하기 위한 회로; 및 상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하기 위한 회로를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하기 위한 회로는, 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하기 위한 회로; 및 상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하기 위한 회로를 포함할 수 있고, 상기 제 2 임계 값은 제 1 임계 값 이하일 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하기 위한 회로를 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하기 위한 회로는, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 회로를 더 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하기 위한 회로는, 상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하기 위한 회로를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하기 위한 회로는, 상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하기 위한 회로를 포함할 수 있다.
이미지 데이터의 어노말리 판단 방법의 대안적인 실시예에서, 상기 이미지 데이터는, 각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함할 수 있다.
도 12는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도(block diagram)이다.
도 12는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.
본 개시가 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 개시가 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있다. 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.
컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)-이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a, b, g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5 GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
상기와 같은 발명의 실시를 위한 최선의 형태에서 관련 내용을 기술하였다.
본 개시는 컴퓨팅 장치를 이용하여 이미지를 검측 및 분석하는 분야에서 활용되는 이미지 데이터의 어노말리 존재 여부 판단에 사용될 수 있다.

Claims (12)

  1. 이미지 데이터의 어노말리 판단 방법으로서,
    사전 학습된 네트워크 함수가 이미지 데이터를 수신하는 단계;
    상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 단계;
    상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 단계; 및
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  2. 제 1 항에 있어서,
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는,
    상기 클래스 별 스코어링 값 각각의 크기를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  3. 제 1 항에 있어서,
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는,
    상기 스코어링 값의 분산을 구하는 단계; 및
    상기 분산에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  4. 제 1 항에 있어서,
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는,
    상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수를 판단하는 단계; 및
    상기 스코어링 값이 제 1 임계 값 이상인 클래스의 수가 제 1 사전결정된 수 이하인 경우 상기 이미지 데이터에 어노말리가 존재하지 않는 것으로 판단하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  5. 제 1 항에 있어서,
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 단계는,
    상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수를 판단하는 단계; 및
    상기 스코어링 값이 제 2 임계 값 이상인 클래스의 수가 제 2 사전결정된 수 이상인 경우 상기 이미지 데이터에 어노말리가 존재하는 것으로 판단하는 단계;
    를 포함하고,
    상기 제 2 임계 값은 제 1 임계 값 이하인,
    이미지 데이터의 어노말리 판단 방법.
  6. 제 1 항에 있어서,
    상기 이미지 데이터에 어노말리가 존재하는 경우, 상기 이미지 데이터에서 상기 어노말리가 존재하는 부분을 상기 이미지 데이터에 표시하는 단계;
    를 더 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  7. 제 1 항에 있어서,
    상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 단계는,
    상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  8. 제 7 항에 있어서,
    상기 이미지 데이터의 각 부분을 분류하여 상기 이미지 데이터를 세그먼트화 하는 단계는,
    상기 이미지 데이터를 각 픽셀 별로 각각의 클래스로 분류하여 세그먼트화 하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  9. 제 1 항에 있어서,
    상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 단계는,
    상기 이미지 데이터의 각각의 픽셀에 대하여 각각의 클래스 별 스코어링 값을 획득하는 단계;
    를 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  10. 제 1 항에 있어서,
    상기 이미지 데이터는,
    각각의 클래스로 분류되는 하나 이상의 컴포넌트들을 포함하는,
    이미지 데이터의 어노말리 판단 방법.
  11. 데이터의 어노말리 판단을 위한 컴퓨팅 장치로서,
    하나 이상의 프로세서; 및
    상기 프로세서에서 실행가능한 명령들을 저장하는 메모리;
    를 포함하고,
    상기 프로세서는,
    사전 학습된 네트워크 함수에 이미지 데이터를 입력하고,
    상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하고,
    상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하고, 그리고
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는,
    데이터의 어노말리 판단을 위한 컴퓨팅 장치.
  12. 이미지 데이터의 어노말리 판단 장치의 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하는, 컴퓨터 판독가능 저장 매체(computer readable storing medium)에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은:
    사전 학습된 네트워크 함수가 이미지 데이터를 수신하는 명령;
    상기 사전 학습된 네트워크 함수를 이용하여 상기 이미지 데이터를 분류하는 명령;
    상기 사전 학습된 네트워크 함수에서 출력되는 상기 이미지 데이터를 분류하기 위한 클래스 별 스코어링 값을 획득하는 명령; 및
    상기 클래스 별 스코어링 값에 기초하여 상기 이미지 데이터에 어노말리가 존재하는지 여부를 판단하는 명령;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
PCT/KR2019/006164 2018-06-25 2019-05-23 데이터의 어노말리 감지 방법 WO2020004815A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180072755A KR102078133B1 (ko) 2018-06-25 2018-06-25 데이터의 어노말리 감지 방법
KR10-2018-0072755 2018-06-25

Publications (1)

Publication Number Publication Date
WO2020004815A1 true WO2020004815A1 (ko) 2020-01-02

Family

ID=68987217

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/006164 WO2020004815A1 (ko) 2018-06-25 2019-05-23 데이터의 어노말리 감지 방법

Country Status (2)

Country Link
KR (1) KR102078133B1 (ko)
WO (1) WO2020004815A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115591229A (zh) * 2022-10-31 2023-01-13 北京京航计算通讯研究所(Cn) 一种分布式网络对战训练的校验方法和系统
FR3126253A1 (fr) 2021-08-20 2023-02-24 Visionairy Procédé pour normaliser la variabilité d’une image, application de ce procédé à la détection d’anomalie et système d’inspection visuelle implémentant cette détection

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102427690B1 (ko) * 2020-08-05 2022-08-01 라온피플 주식회사 딥러닝 기반 클래스 분류 장치 및 방법
KR102255998B1 (ko) * 2020-09-29 2021-05-25 주식회사 에스아이에이 피해 감지 방법
KR20230116549A (ko) * 2022-01-28 2023-08-04 삼성전자주식회사 이미지를 분류하는 서버 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0777496A (ja) * 1992-10-22 1995-03-20 Advanced Interconnection Technol Inc 自動光学検査のためのシステムおよび方法
KR101557421B1 (ko) * 2014-03-20 2015-10-13 기산전자 주식회사 화폐 식별 방법 및 장치
KR20160103398A (ko) * 2015-02-24 2016-09-01 삼성전자주식회사 이미지의 품질 측정 방법 및 장치
JP6288221B2 (ja) * 2016-02-19 2018-03-07 トヨタ自動車株式会社 深層畳み込みニューラルネットワークによるレイヤベースの物体検出の強化
KR20180025135A (ko) * 2016-08-30 2018-03-08 숭실대학교산학협력단 단일 이미지를 사용한 내벽 구조 검출 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0777496A (ja) * 1992-10-22 1995-03-20 Advanced Interconnection Technol Inc 自動光学検査のためのシステムおよび方法
KR101557421B1 (ko) * 2014-03-20 2015-10-13 기산전자 주식회사 화폐 식별 방법 및 장치
KR20160103398A (ko) * 2015-02-24 2016-09-01 삼성전자주식회사 이미지의 품질 측정 방법 및 장치
JP6288221B2 (ja) * 2016-02-19 2018-03-07 トヨタ自動車株式会社 深層畳み込みニューラルネットワークによるレイヤベースの物体検出の強化
KR20180025135A (ko) * 2016-08-30 2018-03-08 숭실대학교산학협력단 단일 이미지를 사용한 내벽 구조 검출 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3126253A1 (fr) 2021-08-20 2023-02-24 Visionairy Procédé pour normaliser la variabilité d’une image, application de ce procédé à la détection d’anomalie et système d’inspection visuelle implémentant cette détection
CN115591229A (zh) * 2022-10-31 2023-01-13 北京京航计算通讯研究所(Cn) 一种分布式网络对战训练的校验方法和系统

Also Published As

Publication number Publication date
KR102078133B1 (ko) 2020-02-17
KR20200010629A (ko) 2020-01-31

Similar Documents

Publication Publication Date Title
WO2020004815A1 (ko) 데이터의 어노말리 감지 방법
WO2019074195A1 (ko) 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램
WO2017213398A1 (en) Learning model for salient facial region detection
WO2020005049A1 (ko) 인공 신경망의 학습 방법
WO2019027208A1 (ko) 인공 신경망의 훈련 방법
WO2019164232A1 (ko) 전자 장치, 이의 영상 처리 방법 및 컴퓨터 판독가능 기록 매체
WO2021107610A1 (en) Method and system for generating a tri-map for image matting
WO2020153623A1 (ko) 결함 검사 장치
WO2022005091A1 (ko) 골 연령 판독 방법 및 장치
WO2019039757A1 (ko) 훈련 데이터를 생성하는 방법, 장치 및 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램
WO2020222391A1 (en) System and method for invertible wavelet layer for neural networks
WO2022265292A1 (ko) 비정상 데이터 검출 방법 및 장치
KR20190041961A (ko) 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램
Choi et al. Content recapture detection based on convolutional neural networks
WO2024080791A1 (ko) 데이터셋을 생성하기 위한 방법
WO2022075678A2 (ko) 의사 정상 데이터를 이용한 자가 감독 학습 기반의 차량 이상징후 탐지 장치 및 방법
KR20200019919A (ko) 데이터의 어노말리 감지 방법
WO2022186594A1 (ko) 의료 영상 기반의 병변 분석 방법
WO2021251691A1 (ko) 앵커-프리 rpn 기반의 물체 검출 방법
WO2021071258A1 (ko) 인공지능 기반의 휴대용 보안영상 학습장치 및 방법
WO2023224457A1 (ko) 깊이 맵의 특징점을 획득하기 위한 방법
WO2020251172A1 (ko) 데이터 생성 방법
WO2024096683A1 (ko) 가상 객체의 폐색을 구현하기 위한 방법
WO2023182796A1 (ko) 제품 이미지를 기반으로 불량 제품을 감지하는 인공 지능 장치 및 그 방법
WO2022164133A1 (ko) 의료 영상의 병변 평가 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19826096

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19826096

Country of ref document: EP

Kind code of ref document: A1