WO2020251172A1 - 데이터 생성 방법 - Google Patents

데이터 생성 방법 Download PDF

Info

Publication number
WO2020251172A1
WO2020251172A1 PCT/KR2020/006149 KR2020006149W WO2020251172A1 WO 2020251172 A1 WO2020251172 A1 WO 2020251172A1 KR 2020006149 W KR2020006149 W KR 2020006149W WO 2020251172 A1 WO2020251172 A1 WO 2020251172A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
training data
computer
data
computer program
Prior art date
Application number
PCT/KR2020/006149
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
Priority claimed from KR1020190067995A external-priority patent/KR102076075B1/ko
Priority claimed from KR1020200012948A external-priority patent/KR20200141376A/ko
Application filed by 주식회사 수아랩 filed Critical 주식회사 수아랩
Publication of WO2020251172A1 publication Critical patent/WO2020251172A1/ko

Links

Images

Classifications

    • 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
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments

Definitions

  • the present invention relates to a data generation method, and more specifically, to a learning data generation method.
  • the number of data corresponding to a defective semiconductor may be less than the number of data corresponding to a normal semiconductor corresponding to a semiconductor without defects.
  • the accuracy of the network function model according to the result may be degraded.
  • Korean Patent Publication No. 2016-0012537 discloses a neural network learning method and apparatus, and a data processing apparatus.
  • the present disclosure has been devised in response to the above-described background technology, and an object of the present disclosure is to provide a data generation method.
  • a computer program stored in a computer-readable storage medium for realizing the above-described task, wherein the computer program selects an object included in the image based on the image included in the first learning data. Identifying; Transforming an image based on at least a portion of the object; And generating second learning data including the transformed image.
  • the operation of identifying an object included in the image based on the image included in the first training data includes in the image It may include an operation of identifying the object of interest.
  • the object of interest may comprise a labeled object.
  • the object of interest may include anomaly data.
  • the operation of identifying an object included in the image based on the image included in the first training data includes in the image It may include an operation of creating a segmentation on the created object.
  • the operation of transforming an image based on at least a portion of the object includes cropping the image to include at least a portion of the object. It may include an operation of (cropping).
  • the operation of cropping the image to include at least a portion of the object comprises: the first portion included in the object is It may include an operation of cropping the image to be included in the pinged image.
  • the operation of cropping the image to include at least a portion of the object comprises: a first portion included in the object and the cropping It may include an operation of cropping the image so that the second portion of the pinged image overlaps.
  • the second portion may be included in a region within a predetermined range at the center of the cropped image.
  • the operation of transforming an image based on at least a portion of the object may include transforming a portion of the image excluding at least a portion of the object. May include actions.
  • the operation of transforming an image based on at least a portion of the object is an operation of applying masking on a portion excluding at least a portion of the object. It may include.
  • the method includes: generating a training data set including the first training data and the second training data; And training a model including one or more network functions based on the training data set to identify an object included in an image input to the model.
  • a method for generating learning data for realizing the above-described task, comprising: identifying an object included in the image based on an image included in the first training data; Transforming an image based on at least a portion of the object; And generating second training data including the transformed image.
  • a server for providing a method of generating learning data according to an embodiment of the present disclosure for realizing the above-described task comprising: a processor including at least one core; And a memory, wherein the processor identifies an object included in the image based on the image included in the first training data, transforms the image based on at least a portion of the object, and converts the transformed image. Second learning data to be included may be generated.
  • the present disclosure may provide a method of generating data.
  • FIG. 1 is a diagram illustrating a block diagram of a computing device that performs an operation for providing a method of generating learning data according to an embodiment of the present disclosure.
  • FIGS. 2A, 2B, and 2C are diagrams illustrating an example of a method of generating learning data according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of a method of generating learning data according to an embodiment of the present disclosure.
  • FIG. 4 is a flowchart of a method of generating learning data according to an embodiment of the present disclosure.
  • FIG. 5 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, a process executed on a processor, a processor, an object, an execution thread, a program, and/or a computer.
  • an application running on a computing device and a computing device may be components.
  • One or more components may reside within a processor and/or thread of execution.
  • a component can be localized on a single computer.
  • a component can be distributed between two or more computers.
  • these components can execute from a variety of computer readable media having various data structures stored therein.
  • Components can be, for example, via a signal with one or more data packets (e.g., data from one component interacting with another component in a local system, a distributed system, and/or a signal through another system and a network such as the Internet. Depending on the data being transmitted), it may communicate via local and/or remote processes.
  • data packets e.g., data from one component interacting with another component in a local system, a distributed system, and/or a signal through another system and a network such as the Internet.
  • it may communicate via local and/or remote processes.
  • the server may include other components for executing the server environment of the server.
  • the server may include any type of device.
  • the server is a digital device, and may be a digital device equipped with a processor, such as a laptop computer, a notebook computer, a desktop computer, a web pad, and a mobile phone, and equipped with a computing power having a memory.
  • the server may be a web server that processes services.
  • the types of servers described above are only examples, and the present disclosure is not limited thereto.
  • FIG. 1 is a diagram illustrating a block diagram of a computing device that performs an operation for providing a method of generating learning data according to an embodiment of the present disclosure.
  • the computing device 100 for providing a method of generating learning data may include a network unit 110, a processor 120, and a memory 130.
  • the network unit 110 may transmit/receive an image, first training data, second training data, and the like according to an exemplary embodiment of the present disclosure.
  • the processor 120 may be composed of one or more cores, and a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) may include a processor for generating training data.
  • the processor 120 may provide a method of generating learning data according to an embodiment of the present disclosure by reading a computer program stored in the memory 130. According to an embodiment of the present disclosure, the processor 120 may perform calculations to provide a method of generating training data.
  • the memory 130 may store a computer program for providing a method of generating learning data according to an exemplary embodiment of the present disclosure, and the stored computer program may be read and driven by the processor 120.
  • the memory 130 may store a program for the operation of the processor 120 and may temporarily or permanently store input/output data or events.
  • the memory 130 may store display and sound data.
  • the memory 130 is a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory), and RAM.
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • PROM Program Programmable Read-Only Memory
  • magnetic memory magnetic It may include at least one type of storage medium among a disk and an optical disk.
  • the processor 120 may perform data augmentation to generate new training data based on the first training data.
  • the first training data may be training data that is a basis for generating new training data.
  • the processor 120 may generate second training data based on the first training data.
  • the processor 120 may perform data aggregation on a class lacking training data in a training data set for training a neural network model including one or more network functions.
  • Training data for training the neural network model may include training data for each of two or more classes.
  • the neural network model may be a model for classifying data.
  • Class imbalance may mean a case where there is a bias in the ratio of learning data corresponding to each class.
  • a neural network model trained on training data with class imbalance may have a problem of outputting a result toward a classification with a high proportion in the training data. For example, in the disease learning data set, if 1% of the training data has a positive label and the remaining 99% of the training data has a negative label, it is a class imbalance. For example, in an entity classification data set, if 0.48 percent of the training data has an A entity label and the remaining 0.52 percent of the training data has a B entity label, it does not correspond to class imbalance.
  • the method of generating learning data according to the present disclosure is to resolve class imbalances when there is a class imbalance.
  • Training data for some of the training data sets including training data for each of two or more classes may be insufficient.
  • training data for some classes is insufficient, it may be difficult to accurately perform training for classes lacking training data.
  • the processor 120 may perform data aggregation on classes lacking training data.
  • the processor 120 may perform data aggregation on the basis of training data belonging to a class lacking training data.
  • the processor 120 additionally adds learning data belonging to a class having a relatively insufficient number by performing data aggregation on a learning data set including learning data of a plurality of classes, a class including a relatively insufficient learning data. Can be generated.
  • the processor 120 may perform defect inspection on a product in a production process.
  • a training data set including training data based on a defective product and training data on a product without defect may be required.
  • the number of defective training data may be less than the number of non-defective training data.
  • the number of training data based on a product without defects i.e., normal data
  • training data based on a defective product i.e.
  • the number of anomaly data may be less than the number necessary for training a neural network model.
  • the specific description of the generated learning data and its class is only an example, and the present disclosure is not limited thereto.
  • the processor 120 may generate second training data based on the first training data.
  • the processor 120 may generate second training data by performing data aggregation based on the first training data.
  • the processor 120 may generate second training data by transforming the first training data.
  • the transformation of the first training data is performed by inverting at least a portion of the first image included in the first training data, randomly cutting, masking, or scaling. Or, it may include a method such as changing saturation or brightness, adding noise, or rotating. Specific description of the above-described modification is only an example, and the present disclosure is not limited thereto.
  • the processor 120 may train a neural network model based on a training data set including the first training data and the second training data.
  • FIGS. 2A, 2B and 2C are diagrams illustrating an example of a method of generating learning data according to an embodiment of the present disclosure.
  • the images shown in FIGS. 2A, 2B and 2C are only examples for explaining a method of generating training data, and the present disclosure may include arbitrary training data and arbitrary images.
  • 2A is a schematic diagram illustrating a method of cropping a first image 300 included in first training data.
  • the first training data may include input data that may be input to the neural network model and a label indicating the attribute of the input data, and the input data may be composed of, for example, an image.
  • the processor 120 may identify the object 301 from the first image 300 included in the first training data.
  • the first image 300 may be an image input to a neural network model for training a neural network model.
  • the first image 300 may be an image of training data corresponding to a class lacking training data.
  • the first image 300 may be an image photographing a defective product.
  • the first image 300 may be an image of a product including an anomaly (eg, defect).
  • the detailed description of the image included in the above-described first learning data is only an example, and the present disclosure is not limited thereto.
  • the processor 120 may identify the object 301 included in the first image 300.
  • the processor 120 may generate new training data by transforming the first image 300 based on the object 301.
  • the object 301 may include an object of interest.
  • the object of interest may be an area including specific information to be acquired from the first image 300. For example, when detecting whether there is a defect through the first image 300, specific information may be anomaly data, and the object of interest may be an anomaly area.
  • the object of interest may be an area to be calculated using a neural network model in the first image 300 or an area to be acquired by calculating using a neural network model.
  • the object of interest may include a labeled object.
  • a label according to an embodiment of the present disclosure may be, for example, a segmentation label.
  • the segmentation label may be a display of a partial region included in the first image 300 to be distinguished from other regions of the image.
  • the segmentation label may be a label for displaying location information on the object 301 included in the first image 300 of the first training data.
  • the labeled object may be a display to distinguish the object 301 included in the first image 300 from other areas of the image.
  • the labeled object may be displayed so that pixels in a region included in the object and pixels in a region not included in the object are distinguished.
  • the labeled object is an anomaly area with respect to the anomaly area in the first image 300. It may be marked to be distinguished from other areas except for.
  • the specific description of the above-described labeled object is only an example, and the present disclosure is not limited thereto.
  • the label according to another embodiment of the present disclosure may be a classification label.
  • the classification label may indicate information on which class the first image 300 belongs.
  • the classification label may be displayed as to whether or not specific information that the user wants to acquire from the image is included in the first image 300.
  • the product when performing defect inspection on a product obtained in a product process, the product may be classified as normal or anomaly.
  • An image including anomaly data may be labeled for anomaly information.
  • An image that does not include anomalous data and includes only normal data may be labeled for normal information.
  • the specific description of the above-described labeled object is only an example, and the present disclosure is not limited thereto.
  • the object of interest may include anomaly data.
  • the object 301 included in the first image 300 of the first training data may include anomaly data included in the first image 300 of the first training data.
  • the anomaly data may mean data deviating from a normal pattern of data.
  • Data may have an unstructured pattern, and anomalous data may mean data deviating from such an unstructured pattern.
  • data about the image of a product in the production process may have an atypical pattern of normal products, and the anomaly data may be data that deviates from the irregular pattern of normal products (i.e., images of defective products, etc.). have.
  • the description of the normal data, the atypical pattern, and the anomaly data of the present disclosure are only examples, and the present disclosure is not limited thereto.
  • the first training data may be training data including a first image 300 of a defective product.
  • the first training data may include a first image 300 that is an input of a neural network model and a label that can be compared with an output of the neural network model.
  • the label of the first training data may be a label based on the object 301 included in the first image 300 input to the neural network model.
  • the label of the first training data may be a label for anomaly data included in the first image 300 input to the neural network model.
  • the processor 120 may identify a label for the anomaly data of the first image 300 included in the first training data.
  • the processor 120 may identify the object 301 included in the first image 300 included in the first training data.
  • the processor 120 may identify the object 301 included in the first image 300 based on a label for the anomaly data of the first image 300.
  • the processor 120 may perform segmentation on the object 301 based on the label for the anomaly data of the first image 300.
  • a label matching the first image 300 included in the first training data may be a segmentation label.
  • the processor 120 may perform segmentation on the object 301 by identifying a segmentation label that is a label matching the first image 300.
  • Segmentation of the object 301 included in the first image 300 may refer to a process of separating a part of the image so as to be distinguished from other parts of the image.
  • Image segmentation may include, for example, separating a partial region of an image to be distinguished from other partial regions based on an edge, color, etc. extracted from the image.
  • image segmentation may be a process of extracting position information of an anomaly portion from an image and identifying the position of an anomaly data from another portion of the image.
  • image segmentation may also include a process of visualizing and displaying a part of an image that is separated from another part.
  • a label matching the first image 300 included in the first training data may be a classification label.
  • the processor 120 may receive segmentation information on the object 301 that is the basis of the classification label from another computing device.
  • the processor 120 may receive or receive segmentation of an anomaly object by transmitting training data including anomaly data to a user through the network unit 110 or through an interface unit (not shown). .
  • the processor 120 may transform the first image 300 based on at least a part of the object 301.
  • the processor 120 may generate a second image by transforming the first image 300.
  • the processor 120 may generate second training data including the second image based on the first training data including the first image 300.
  • the operation of modifying the first image 300 based on at least a part of the object 301 by the processor 120 includes the first image 300 to include at least a part of the object 301. It may include an operation of cropping the image 300.
  • the processor 120 may crop the first image 300 to generate the second images 310, 311, and 313.
  • the processor 120 may crop the first image 300 to a predetermined size. I can.
  • the size of the cropped first image 300 may be a predetermined size.
  • the processor 120 may crop the first image 300 to a predetermined size in order to calculate the first image 300 based on the neural network model.
  • the size of an image input to the neural network model may be related to an amount of computation in a network function included in the neural network model. Accordingly, the processor 120 may crop the first image 300 so that the input of the neural network has the same size. Cropping may mean cutting a region excluding at least a portion of the image so as to include at least a portion of the first image 300.
  • the processor 120 may crop the first image 300.
  • the first image 300 may be cropped to include only an area excluding the anomaly data, and the second image does not include the anomaly data. May not.
  • the defective portion of the semiconductor may have a very small size in the image. Therefore, when data aggregation of a semiconductor defect image is performed through general random cropping without any other constraints, there is a high probability that data aggregation is performed so as not to include a defective part.
  • the anomaly region of the semiconductor is very small, the anomaly region is skewed to the left of the first image, and is cropped to include only the right region of the first image, the second image It may not contain any areas.
  • cropping since cropping is performed according to an embodiment of the present disclosure, since cropping is performed to include at least a part of a defective portion, efficient data aggregation may be performed.
  • the processor 120 may generate the second image by transforming the first image 300 so that at least a portion of the object 301 is included.
  • the processor 120 may perform cropping of the first image 300 so that at least a portion of the object 301 is included.
  • the processor 120 may perform cropping of the first image 300 so that at least a portion of the anomaly data is included.
  • the processor 120 may crop the first image 300 so that the first portion 321 included in the object 301 is included in the second images 310, 311, and 313 which are cropped images.
  • the first part 321 may be at least one area of the object 301 included in the first image 300.
  • the first part 321 may be a randomly determined area of the object 301.
  • the size of the first portion 321 may be, for example, an area corresponding to one pixel or an area corresponding to larger pixels.
  • the processor 120 may crop the first image 300 such that the second images 310, 311, and 313 include an area corresponding to at least one pixel included in the object 301. .
  • the detailed description of the above-described cropping is only an example, and the present disclosure is not limited thereto.
  • the processor 120 crops the first image 300 so that the first portion 321 included in the object 301 and the second portion 323, 325, 327 of the cropped image overlap. You can ping.
  • the processor 120 provides the first part 321 of the first image 300 and the second part 323, 325, 327 of the second image 310, 311, and 313 that are cropped images to overlap each other.
  • the image 300 can be cropped.
  • the second images 310, 311, and 313 may be generated based on the cut line shown in FIG. 2A.
  • 2C is a diagram illustrating the cropped second images 310, 311, and 313 by way of example.
  • the first image 300 is cropped so that the first portion 321 of the first image 300 and the second portions 323, 325, and 327 of the second image 310 overlap, and the second image 310, 311, 313) can be created.
  • the size of the first part 321 of the first image 300 and the size of the second part 323, 325, 327 of the second image 310 may be the same or different.
  • the second portion of the second image 310 may be cropped so that the first portion 321 is included in an area corresponding to 323, 325, and 327.
  • 2B is an exemplary diagram for describing a method of determining the second portions 323, 325, and 327 of the second images 310, 311, and 313.
  • the second portions 323, 325, and 327 may be included in a region 320 within a predetermined range from the center of the second images 310, 311, and 313 that are cropped images.
  • the area 320 indicated by a solid line in the second images 310, 311, and 313 illustrated in FIG. 2B may be an area excluding a buffer area in which the second portions 323, 325, and 327 should not be located.
  • the second portions 323, 325, and 327 may be included in areas other than the buffer areas of the second images 310, 311, and 313 that are cropped images.
  • the buffer area may be an area corresponding to an area of 20 percent from the outside of the second images 310, 311, and 313. In FIG.
  • the area 320 in which the second portions 323, 325, and 327 should be included is illustrated in a rectangular shape, but the present invention is not limited thereto and may have other shapes.
  • the detailed description of the above-described buffer area is only an example, and the present disclosure is not limited thereto.
  • the second images 310, 311, and 313 may contain only a small portion of anomalous data. If only a small portion of the anomaly data is included, it may be difficult to use it as an anomaly learning data.
  • the first part 321 is determined as the leftmost area of the object 301 included in the first image 300 and the second part is determined as the rightmost area of the second image 310
  • the second image 310 may include only a small portion of the anomaly data.
  • the second portions 323, 325, and 327 may be determined in consideration of the buffer area so that the second image 310 includes meaningful anomaly data that can be used as the anomaly learning data.
  • the first image 300 is cropped so that the first part 220 and the second part 323, 325, and 327 overlap to generate a second image 310 included in the second training data, which is new training data. I can.
  • the operation of the processor 120 transforming an image based on at least a portion of the object may include an operation of the processor 120 modifying a portion of the image excluding at least a portion of the object.
  • I can.
  • FIG. 3. 3 is a diagram illustrating an example of a method of generating learning data according to an embodiment of the present disclosure.
  • the processor 120 may apply masking to portions other than at least a portion of the object 301.
  • the masking may be an area designated to be excluded from calculation when the neural network model is calculated.
  • the processor 120 may generate second training data by generating a third image 400 with masking applied to a portion excluding at least a portion of the object 301.
  • the processor 120 may calculate the second image by excluding the masked portion.
  • the portion covered with masking is a portion marked in black in the image 400.
  • the processor 120 may apply masking to all portions except for the object 301.
  • the processor 120 may apply masking to at least a portion except for the object 301.
  • the processor 120 may apply masking to at least a portion of a portion other than the first portion 321 included in the object 301.
  • Detailed description of the above-described masking is only an example, and the present disclosure is not limited thereto.
  • the processor 120 may generate second training data including the transformed image.
  • the processor 120 may generate second training data by generating a cropped image to include at least a part of the object of interest based on the first training data.
  • the processor 120 may generate the second training data by generating a masked image to exclude at least a part of the object of interest based on the first training data.
  • the processor 120 may generate a training data set including the first training data and the second training data.
  • the processor 120 may perform data aggregation based on the first training data included in the existing training data set.
  • the processor 120 may generate a new training data set including first training data included in the existing training data set and second training data generated through data aggregation.
  • the processor 120 may train a model including one or more network functions to identify an object included in an image input to the model based on the training data set.
  • the training data set may include first training data and second training data.
  • Each of the two or more training data included in the training data set may include an image of a product to be inspected for defects and information labeled whether there is a defect based on the product image.
  • the second training data when the second training data is generated based on a first image and a label included in the first training data, the second training data may include a second image and a label modified from the first image.
  • the processor 120 inputs training data to the input node of the neural network model in order to learn and generate the neural network model, and based on the defect data calculated and output from the output layer of the neural network model and a label included in the training data. You can adjust the weight of the neural network model.
  • the processor 120 propagates from the output layer included in one or more network functions of the neural network model to the input layer through one or more hidden layers based on the error, thereby updating the weight set for each link to train the neural network model. I can.
  • FIG. 4 is a flowchart of a method of generating learning data according to an embodiment of the present disclosure.
  • the computing device 100 may perform data aggregation based on first training data for a class lacking training data.
  • the computing device 100 may identify (610) an object included in the image based on the image included in the first training data.
  • the computing device 100 may identify an object of interest included in the image.
  • the object of interest may include a labeled object.
  • a label according to an embodiment of the present disclosure may be a segmentation label.
  • the segmentation label may be a display of a partial region included in the image to be distinguished from other regions of the image.
  • the label according to another embodiment of the present disclosure may be a classification label.
  • the classification label may indicate information on which class the image belongs.
  • the classification label may indicate whether the image contains specific information that the user wants to acquire from the image.
  • the object of interest may include anomaly data.
  • the anomalous data may mean anomaly data deviating from a normal pattern of data.
  • Data may have an atypical pattern, and anomaly data may mean data that deviates from this atypical pattern.
  • the computing device 100 may perform segmentation on an object included in an image.
  • the computing device 100 may transform 620 an image based on at least a portion of the object.
  • the computing device 100 may crop the image to include at least a portion of the object.
  • the computing device 100 may crop the image so that the first portion included in the object is included in the cropped image.
  • the computing device 100 may crop the image so that the first portion included in the object and the second portion of the cropped image overlap.
  • the second portion may be a portion included in an area within a predetermined range from the center of the cropped image.
  • the computing device 100 may transform a portion of the image excluding at least a portion of the object.
  • the computing device 100 may apply masking to portions excluding at least a portion of the object.
  • the computing device 100 may generate 630 second learning data including the transformed image.
  • the computing device 100 may generate a training data set including the first training data and the second training data.
  • the computing device 100 may train a model including one or more network functions to identify an object included in an image input to the model based on the training data set.
  • FIG. 5 is a block diagram of a computing device according to an embodiment of the present disclosure.
  • FIG. 5 shows a simplified and general schematic diagram of an exemplary 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.
  • the method of the present disclosure is not limited to single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable household appliances, and the like (each of which It will be appreciated that it may be implemented with other computer system configurations, including one or more associated devices).
  • the described embodiments of the present disclosure may also be practiced in a distributed computing environment where certain tasks are performed by remote processing devices that are connected through a communication network.
  • program modules may be located in both local and remote memory storage devices.
  • Computers typically include a variety of computer-readable media. Any medium accessible by the computer may be a computer-readable medium.
  • Computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, and removable and non-removable media.
  • Computer-readable media may include computer-readable storage media and computer-readable transmission media.
  • Computer-readable storage media include volatile and nonvolatile media, transitory and non-transitory media, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. Includes the medium.
  • Computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage device, or other magnetic storage device, Or any other medium that can be accessed by a computer and used to store desired information.
  • Computer-readable transmission media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as other transport mechanism, and includes all information delivery media. do.
  • modulated data signal refers to a signal in which one or more of the characteristics of the signal is set or changed to encode information in the signal.
  • computer-readable transmission media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above-described media are also intended to be included within the scope of computer-readable transmission media.
  • System bus 1108 couples system components, including but not limited to, system memory 1106 to processing device 1104.
  • the processing unit 1104 may be any of a variety of commercially available processors. Dual processors and other multiprocessor architectures may also be used as processing unit 1104.
  • the system bus 1108 may be any of several types of bus structures that may be additionally 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.
  • the basic input/output system (BIOS) is stored in non-volatile memory 1110 such as ROM, EPROM, EEPROM, etc. This BIOS is a basic input/output system that helps transfer information between components in the computer 1102, such as during startup. Includes routines.
  • RAM 1112 may also include high speed RAM such as static RAM for caching data.
  • the computer 1102 also includes an internal hard disk drive (HDD) 1114 (e.g., EIDE, SATA)-this internal hard disk drive 1114 can 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 e.g., CD-ROM For reading the disk 1122 or reading from or writing to other high-capacity optical media such as DVD.
  • the hard disk drive 1114, magnetic disk drive 1116, and optical disk drive 1120 are each connected to the system bus 1108 by a hard disk drive interface 1124, a magnetic disk drive interface 1126, and an optical drive interface 1128. ) Can be connected.
  • the interface 1124 for implementing an external drive includes at least one or both of USB (Universal Serial Bus) and IEEE 1394 interface technologies.
  • drives and their associated computer readable media provide non-volatile storage of data, data structures, computer executable instructions, and the like.
  • drives and media correspond to storing any data in a suitable digital format.
  • the description of the computer-readable medium above refers to a removable optical medium such as a HDD, a removable magnetic disk, and a CD or DVD, those skilled in the art may use a zip drive, a magnetic cassette, a flash memory card, a cartridge, etc. It will be appreciated that other types of media readable by a computer, such as the like, may also be used in the exemplary operating environment and that any such media may contain computer executable instructions for performing the methods of the present disclosure.
  • a number of program modules including the operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136, may be stored in the drive and RAM 1112. All or part 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 on a number of commercially available operating systems or combinations of operating systems.
  • a user may input commands and information to the computer 1102 through one or more wired/wireless input devices, for example, a pointing device 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.
  • These and other input devices are often connected to the processing unit 1104 through the 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, It can be connected by other interfaces such as etc.
  • a monitor 1144 or other type of display device is also connected to the system bus 1108 through an interface such as a video adapter 1146.
  • the computer generally includes other peripheral output devices (not shown) such as speakers, printers, etc.
  • 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 communication.
  • the remote computer(s) 1148 may be a workstation, a computing device computer, a router, a personal computer, a portable computer, a microprocessor-based entertainment device, a peer device, or other common network node, and is generally connected to the computer 1102. Although it includes many or all of the components described for simplicity, only memory storage device 1150 is shown.
  • the logical connections shown include wired/wireless connections to a local area network (LAN) 1152 and/or to a larger network, eg, a wide area network (WAN) 1154.
  • LAN and WAN networking environments are common in offices and companies, and facilitate an enterprise-wide computer network such as an intranet, all of which can be connected to a worldwide computer network, for example 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 to communicate with wireless adapter 1156.
  • the computer 1102 When used in a WAN networking environment, the computer 1102 may include a modem 1158, connected to a communications computing device on the WAN 1154, or through the Internet, to establish communications over the WAN 1154. Have other means.
  • the modem 1158 which may be an internal or external and a wired or wireless device, is connected to the system bus 1108 through a serial port interface 1142.
  • program modules described for the computer 1102 or portions thereof may be stored in the remote memory/storage device 1150. It will be appreciated that the network connections shown are exemplary and other means of establishing communication links between computers may be used.
  • Computer 1102 is associated with any wireless device or entity deployed and operated in wireless communication, e.g., a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communication satellite, wireless detectable tag. It operates to communicate with any device or place and phone. This includes at least Wi-Fi and Bluetooth wireless technologies. Thus, the communication may be a predefined structure as in a conventional network or may simply be ad hoc communication between at least two devices.
  • wireless communication e.g., a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communication satellite, wireless detectable tag. It operates to communicate with any device or place and phone. This includes at least Wi-Fi and Bluetooth wireless technologies.
  • the communication may be a predefined structure as in a conventional network or may simply be 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 devices, for example computers, to transmit and receive data indoors and outdoors, ie anywhere within the coverage area of a base station.
  • Wi-Fi networks use a wireless technology called IEEE 802.11 (a,b,g, etc.) to provide a secure, reliable and high-speed wireless connection.
  • Wi-Fi can 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 radio 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.
  • a person of ordinary skill in the art of the present disclosure includes various exemplary logical blocks, modules, processors, means, circuits and algorithm steps described in connection with the embodiments disclosed herein, electronic hardware, (convenience). For the sake of clarity, it will be appreciated that it may be implemented by various forms of program or design code or a combination of both (referred to herein as "software"). To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. A person of ordinary skill in the art of the present disclosure may implement the described functions in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
  • the various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques.
  • article of manufacture includes a computer program or media accessible from any computer-readable device.
  • computer-readable media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CD, DVD, etc.), smart cards, and flash memory. Devices (eg, EEPROM, card, stick, key drive, etc.), but is not limited to these.
  • the various storage media presented herein include one or more devices and/or other machine-readable media for storing information.
  • the present invention can be used in a database server, a database management computing device, and the like.

Landscapes

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

Abstract

컴퓨터 판독가능 저장 매체에 저장되는 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨팅 장치의 하나 이상의 프로세서에서 실행되는 경우 학습 데이터 생성 방법을 제공하기 위한 동작들을 수행하도록 하며 상기 동작들은, 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작; 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작; 및 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작을 포함할 수 있다.

Description

데이터 생성 방법
본 발명은 데이터 생성 방법에 관한 것으로, 보다 구체적으로 학습 데이터 생성 방법에 관한 것이다.
기계 학습을 통하여 데이터의 분류를 수행하기 위하여, 기계 학습을 위한 학습 데이터 확보가 선행되어야 한다.
학습 데이터를 구성하는데 있어, 데이터의 클래스 별 불균형이 나타나는 문제가 있다. 예컨대, 반도체 공정에서 결함 반도체에 해당하는 데이터의 수는 결함이 없는 반도체에 해당하는 정상 반도체에 해당하는 데이터의 수 보다 적을 수 있다. 이러한 클래스의 불균형이 있는, 한쪽 클래스에 치우친 데이터의 집합을 통해 학습을 수행할 경우, 그 결과에 따른 네트워크 함수 모델의 정확도는 떨어질 수 있다.
이에 따라, 학습 데이터를 구성하는데 있어, 데이터의 불균형 문제를 해결하기 위한 당업계의 요구가 존재한다.
대한민국 공개 특허 제2016-0012537호는 신경망 학습 방법 및 장치, 데이터 처리 장치를 개시한다.
본 개시는 전술한 배경기술에 대응하여 안출 된 것으로, 데이터 생성 방법을 제공하는 것을 목적으로 한다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작; 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작; 및 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은, 상기 이미지에 포함된 관심 객체를 식별하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 관심 객체는 라벨링된 객체를 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 관심 객체는 어노말리 데이터를 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은, 상기 이미지에 포함된 객체에 관한 세그먼테이션(segmentation)을 생성하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑(cropping)하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은, 상기 객체에 포함된 제 1 부분이 상기 크롭핑된 이미지에 포함되도록 상기 이미지를 크롭핑하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은, 상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함될 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌우는 동작을 포함할 수 있다.
학습 데이터 생성을 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성하는 동작; 및 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시키는 동작을 더 포함할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 학습 데이터 생성 방법으로서, 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 단계; 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 단계; 및 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 단계를 포함할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 서버로서, 하나 이상의 코어를 포함하는 프로세서; 및 메모리를 포함하고, 상기 프로세서는, 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하고, 상기 객체의 적어도 일부에 기초하여 이미지를 변형하고, 그리고 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다.
본 개시는 데이터 생성 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따라 학습 데이터 생성 방법을 제공하기 위한 동작을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
도 2a, 2b, 2c는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 순서도이다.
도 5는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시 적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시 적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
본 개시의 일 실시예에서 서버는 서버의 서버 환경을 수행하기 위한 다른 구성들이 포함될 수도 있다. 서버는 임의의 형태의 장치는 모두 포함할 수 있다. 서버는 디지털 기기로서, 랩탑 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 웹 패드, 이동 전화기와 같이 프로세서를 탑재하고 메모리를 구비한 연산 능력을 갖춘 디지털 기기일 수 있다. 서버는 서비스를 처리하는 웹 서버일 수 있다. 전술한 서버의 종류는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
도 1은 본 개시의 일 실시예에 따라 학습 데이터 생성 방법을 제공하기 위한 동작을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 컴퓨팅 장치(100)는 네트워크부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다.
네트워크부(110)는 본 개시의 일 실시예에 따른 이미지, 제 1 학습 데이터, 제 2 학습 데이터 등을 다른 컴퓨팅 장치, 서버 등과 송수신할 수 있다.
프로세서(120)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 학습 데이터 생성을 수행하기 위한 프로세서를 포함할 수 있다. 프로세서(120)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공할 수 있다. 본 개시의 일 실시예에 따라 프로세서(120)는 학습 데이터 생성 방법을 제공하기 위한 계산을 수행할 수 있다.
메모리(130)는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법을 제공하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서(120)에 의하여 판독되어 구동될 수 있다.
본 개시의 실시예들에 따른 메모리(130)는 프로세서(120)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들 또는 이벤트들을 임시 또는 영구 저장할 수도 있다. 상기 메모리(130)는 디스플레이 및 음향에 관한 데이터를 저장할 수 있다. 메모리(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
프로세서(120)는 제 1 학습 데이터에 기초하여 새로운 학습 데이터를 생성하는 데이터 어그멘테이션(augmentation)을 수행할 수 있다. 제 1 학습 데이터는 새로운 학습 데이터 생성의 기초가 되는 학습 데이터일 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 제 2 학습 데이터를 생성할 수 있다.
프로세서(120)는 하나 이상의 네트워크 함수를 포함하는 뉴럴 네트워크 모델을 학습하기 위한 학습 데이터 세트에서 학습 데이터가 부족한 클래스에 대하여 데이터 어그멘테이션을 수행할 수 있다. 뉴럴 네트워크 모델을 학습하기 위한 학습 데이터는 둘 이상의 클래스 각각에 대한 학습 데이터를 포함할 수 있다. 뉴럴 네트워크 모델은 데이터를 분류하기 위한 모델일 수 있다.
클래스 불균형은 각각의 클래스에 해당하는 학습 데이터의 비율에 편향이 있는 경우를 의미할 수 있다. 클래스 불균형이 있는 학습 데이터로 훈련된 뉴럴 네트워크 모델은 학습 데이터 내 비율이 높은 분류 쪽으로 결과를 출력하는 문제가 있을 수 있다. 예를 들어, 질병 학습 데이터 세트에서 1 퍼센트의 학습 데이터가 긍정 라벨을 가지고, 나머지 99 퍼센트의 학습 데이터가 부정 라벨을 가지는 경우 클래스 불균형에 해당한다. 예를 들어, 개체 분류 데이터 세트에서 0.48 퍼센트의 학습 데이터가 A 개체 라벨을 가지고, 나머지 0.52 퍼센트의 학습 데이터가 B 개체 라벨을 가지는 경우는 클래스 불균형에 해당하지 않는다. 본 개시에 따른 학습 데이터 생성 방법은 클래스 불균형이 있을 경우 이를 해소하기 위함이다.
둘 이상의 클래스 각각에 대한 학습 데이터를 포함하는 학습 데이터 세트 중 일부 클래스에 대한 학습 데이터가 부족할 수 있다. 일부 클래스에 대한 학습 데이터가 부족한 상태에서 뉴럴 네트워크 모델에 대한 학습을 수행하는 경우, 학습 데이터가 부족한 클래스에 대해서는 정확한 학습 수행이 어려울 수 있다. 프로세서(120)는 학습 데이터 세트에 포함된 모든 클래스에 대하여 정확한 학습을 수행하기 위하여, 학습 데이터가 부족한 클래스에 대하여 데이터 어그멘테이션을 수행할 수 있다.
프로세서(120)는 학습 데이터가 부족한 클래스에 속하는 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 프로세서(120)는 복수의 클래스의 학습 데이터를 포함하는 학습 데이터 세트에 대해서, 상대적으로 부족한 학습 데이터를 포함하는 클래스에 대하여 데이터 어그멘테이션을 수행함으로써, 상대적으로 수가 부족한 클래스에 속하는 학습 데이터를 추가적으로 생성할 수 있다.
예를 들어, 프로세서(120)는 생산 공정에서 제품에 대한 결함 검사를 수행할 수 있다. 프로세서(120)가 제품에 대한 결함 검사를 수행하기 위한 뉴럴 네트워크 모델을 학습하기 위해서는, 결함이 있는 제품에 기초한 학습 데이터 및 결함이 없는 제품에 대한 학습 데이터를 포함하는 학습 데이터 세트가 필요할 수 있다. 결함이 있는 학습 데이터의 수가 결함이 없는 학습 데이터의 수 보다 적을 수 있다. 예를 들어, 결함이 없는 제품에 기초한 학습 데이터(즉, 정상 데이터(normal data))의 개수는 뉴럴 네트워크 모델의 학습을 위해 필요한 충분한 개수일 수 있고, 결함이 있는 제품에 기초한 학습 데이터(즉, 어노말리 데이터(anomaly data))의 개수는 뉴럴 네트워크 모델의 학습을 위해 필요한 개수보다 적을 수 있다. 생성되는 학습 데이터 및 그 클래스의 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 제 1 학습 데이터에 기초하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터를 변형(transformation)하여 제 2 학습 데이터를 생성할 수 있다. 예를 들어, 제 1 학습 데이터의 변형은, 제 1 학습 데이터에 포함된 제 1 이미지의 적어도 일 부분을 반전, 랜덤(random)하게 자르거나, 마스킹(masking)을 씌우거나, 스케일링(scaling)을 하거나, 채도 또는 명도를 변경하거나, 노이즈를 더하거나, 회전하는 등의 방법을 포함할 수 있다. 전술한 변형에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 제 1 학습 데이터 및 제 2 학습 데이터를 포함하는 학습 데이터 세트에 기초하여 뉴럴 네트워크 모델을 학습시킬 수 있다.
이하에서는 제 1 학습 데이터를 변형하는 방법에 관하여 구체적으로 설명한다. 이하에서는 제 1 학습 데이터를 변형하는 방법에 관하여 도 2a, 2b 및 2c를 참조하여 설명한다. 도 2a, 2b 및 2c는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다. 도 2a, 2b 및 2c에 도시된 이미지는 학습 데이터 생성 방법을 설명하기 위한 예시일 뿐이며 본 개시는 임의의 학습 데이터 및 임의의 이미지를 포함할 수 있다.
도 2a는 제 1 학습 데이터에 포함된 제 1 이미지(300)를 크롭핑하는 방법을 도시하기 위한 개략도이다.
본 예시에서 제 1 학습 데이터는 뉴럴 네트워크 모델에 입력될 수 있는 입력 데이터와 상기 입력 데이터의 속성을 나타내는 라벨을 포함할 수 있으며, 입력 데이터는 예를 들어, 이미지로 구성될 수 있다.
프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)에서 객체(301)를 식별할 수 있다. 제 1 이미지(300)는 뉴럴 네트워크 모델의 학습을 위하여 뉴럴 네트워크 모델에 입력되는 이미지일 수 있다. 제 1 이미지(300)는 학습 데이터가 부족한 클래스에 해당하는 학습 데이터의 이미지일 수 있다. 전술한 예시에서, 제 1 이미지(300)는 결함이 있는 제품을 촬영한 이미지일 수 있다. 전술한 예시에서, 제 1 이미지(300)는 어노말리(예를 들어, 불량 등)를 포함하는 제품을 촬영한 이미지일 수 있다. 전술한 제 1 학습 데이터에 포함된 이미지에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 객체(301)에 기초하여 제 1 이미지(300)를 변환하여 새로운 학습 데이터를 생성할 수 있다.
객체(301)는 관심 객체를 포함할 수 있다. 관심 객체는 제 1 이미지(300)에서 획득하고자 하는 특정 정보를 포함하고 있는 영역일 수 있다. 예를 들어, 제 1 이미지(300)를 통해 불량 여부를 검출하는 경우 특정 정보는 어노말리 데이터일 수 있으며, 관심 객체는 어노말리 영역일 수 있다. 관심 객체는 제 1 이미지(300)에서 뉴럴 네트워크 모델을 이용하여 연산하려고 하는 영역이거나 또는 뉴럴 네트워크 모델을 이용하여 연산하여 획득하고자 하는 영역일 수 있다.
관심 객체는 라벨링된(labeled) 객체를 포함할 수 있다.
본 개시의 일 실시예에 따른 라벨은 예를 들어 세그먼테이션 라벨일 수 있다. 세그먼테이션 라벨은 제 1 이미지(300)에 포함된 일부 영역을 이미지의 다른 영역과 구별되도록 표시한 것일 수 있다. 세그먼테이션 라벨은, 제 1 학습 데이터의 제 1 이미지(300)에 포함된 객체(301)에 대한 위치 정보를 표시하기 위한 라벨일 수 있다. 라벨링된 객체는 제 1 이미지(300)에 포함된 객체(301)를 이미지의 다른 영역과 구별되도록 표시된 것일 수 있다. 라벨링된 객체는 객체에 포함된 영역의 픽셀과 객체에 포함되지 않은 영역의 픽셀이 구별되도록 표시된 것일 수 있다. 예를 들어, 객체(301)가 어노말리 영역(예를 들어, 촬영된 이미지에서 불량이 식별되는 부분 등)일 경우, 라벨링된 객체는 제 1 이미지(300)에서 어노말리 영역에 관하여 어노말리 영역을 제외한 다른 영역과 구별되도록 표시한 것일 수 있다. 전술한 라벨링된 객체에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
본 개시의 다른 일 실시예에 따른 라벨은 분류 라벨일 수 있다. 분류 라벨은 제 1 이미지(300)가 어떤 클래스에 속하는지에 대한 정보를 표시한 것일 수 있다. 분류 라벨은 제 1 이미지(300)에 사용자가 이미지에서 획득하고자 하는 특정 정보가 포함되어 있는지 여부에 관하여 표시한 것일 수 있다. 예를 들어, 제품 공정에서 획득된 제품의 결함 검사를 수행할 경우, 해당 제품은 정상 또는 어노말리로 분류될 수 있다. 제품 공정에서 획득한 제품의 이미지에 대한 결함 검사를 하는 경우, 정상 및 어노말리 각각에 대한 클래스가 있을 수 있다. 어노말리 데이터를 포함하는 이미지는 어노말리 정보에 대한 라벨링이 될 수 있다. 어노말리 데이터를 포함하지 않고, 정상 데이터만을 포함하는 이미지는 정상 정보에 대한 라벨링이 될 수 있다. 전술한 라벨링된 객체에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
관심 객체는 어노말리 데이터를 포함할 수 있다. 제 1 학습 데이터의 제 1 이미지(300)에 포함된 객체(301)는 제 1 학습 데이터의 제 1 이미지(300)에 포함된 어노말리 데이터를 포함할 수 있다.
어노말리 데이터는 데이터의 정상 패턴에서 벗어난 데이터를 의미할 수 있다. 데이터는 비정형 패턴을 가질 수 있으며 어노말리 데이터는 이러한 비정형 패턴에서 벗어난 데이터를 의미할 수 있다. 예를 들어, 생산 공정에서 제품의 이미지에 관한 데이터는 정상 제품이라는 비정형 패턴을 가질 수 있으며, 어노말리 데이터는 정상 제품이라는 비정형 패턴에서 벗어난 데이터(즉, 예를 들어 불량 제품의 이미지 등)일 수 있다. 본 개시의 정상 데이터, 비정형 패턴, 어노말리 데이터에 관한 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
전술한 예시에서, 제 1 학습 데이터는 결함이 있는 제품에 대한 제 1 이미지(300)를 포함하는 학습 데이터일 수 있다. 제 1 학습 데이터는 뉴럴 네트워크 모델의 입력이 되는 제 1 이미지(300) 및 상기 뉴럴 네트워크 모델의 출력과 비교될 수 있는 라벨을 포함할 수 있다. 상기 제 1 학습 데이터의 라벨은, 뉴럴 네트워크 모델에 입력되는 제 1 이미지(300)에 포함된 객체(301)에 기초한 라벨일 수 있다. 상기 제 1 학습 데이터의 라벨은, 뉴럴 네트워크 모델에 입력되는 제 1 이미지(300)에 포함된 어노말리 데이터에 대한 라벨일 수 있다. 전술한 제 1 학습 데이터에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)의 어노말리 데이터에 대한 라벨을 식별할 수 있다.
프로세서(120)는 제 1 학습 데이터에 포함된 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 제 1 이미지(300)의 어노말리 데이터에 대한 라벨에 기초하여 제 1 이미지(300)에 포함된 객체(301)를 식별할 수 있다. 프로세서(120)는 제 1 이미지(300)의 어노말리 데이터에 대한 라벨에 기초하여 객체(301)에 관한 세그먼테이션을 수행할 수 있다.
본 개시의 일 실시예에 따라 제 1 학습 데이터에 포함된 제 1 이미지(300)에 매칭되는 라벨은 세그먼테이션 라벨일 수 있다. 프로세서(120)는 제 1 이미지(300)에 매칭되는 라벨인 세그먼테이션 라벨을 식별함으로써, 객체(301)에 관한 세그먼테이션을 수행할 수 있다. 제 1 이미지(300)에 포함된 객체(301)에 대한 세그먼테이션은 이미지의 일부를 상기 이미지의 다른 일부와 구분되도록 분리하는 과정을 의미할 수 있다. 이미지 세그먼테이션은 예를 들어, 이미지에서 추출된 엣지, 색상 등에 기초하여 이미지의 일부 영역을 다른 일부 영역과 구별되도록 분리하는 과정을 포함할 수 있다. 또한, 이미지 세그먼테이션은 이미지에서 어노말리 부분의 위치 정보를 추출하여 이미지의 다른 부분으로부터 어노말리 데이터의 위치를 식별하는 과정일 수 있다. 또한 이미지 세그먼테이션은 다른 일부와 구분된 이미지의 일부를 시각화 하여 표시하는 과정 또한 포함할 수 있다.
본 개시의 다른 일 실시예에 따라 제 1 학습 데이터에 포함된 제 1 이미지(300)에 매칭되는 라벨은 분류 라벨일 수 있다. 프로세서(120)는 제 1 이미지(300)에 매칭되는 라벨이 분류 라벨인 경우, 다른 컴퓨팅 장치로부터 상기 분류 라벨의 기초가 되는 객체(301)에 대한 세그먼테이션 정보를 수신할 수 있다.
예를 들어, 어노말리 데이터와 정상 데이터 각각에 대한 분류 라벨을 포함하는 학습 데이터 중 어노말리 데이터로 분류된 데이터들에 대한 데이터 어그멘테이션이 필요할 수 있다. 프로세서(120)는 어노말리 데이터를 포함하는 학습 데이터들을 사용자에게 네트워크부(110)를 통해 전송하거나 또는 인터페이스부(미도시)를 통해 제공하여 어노말리 객체에 대한 세그먼테이션을 수신하거나 또는 입력 받을 수 있다.
프로세서(120)는 객체(301)의 적어도 일부에 기초하여 제 1 이미지(300)를 변형할 수 있다. 프로세서(120)는 제 1 이미지(300)를 변형하여 제 2 이미지를 생성할 수 있다. 프로세서(120)는 제 1 이미지(300)를 포함하는 제 1 학습 데이터에 기초하여 제 2 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다.
본 개시의 일 실시예에 따라 프로세서(120)가 상기 객체(301)의 적어도 일부에 기초하여 제 1 이미지(300)를 변형하는 동작은, 상기 객체(301)의 적어도 일부를 포함하도록 상기 제 1 이미지(300)를 크롭핑(cropping)하는 동작을 포함할 수 있다. 프로세서(120)는 제 1 이미지(300)를 크롭핑하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.프로세서(120)는 사전결정된 크기로 제 1 이미지(300)를 크롭핑할 수 있다. 크롭핑된 제 1 이미지(300)의 크기는 사전 결정된 크기일 수 있다. 프로세서(120)는 뉴럴 네트워크 모델에 기초하여 제 1 이미지(300)를 연산하기 위하여 사전결정된 크기로 제 1 이미지(300)를 크롭핑할 수 있다. 뉴럴 네트워크 모델에 입력되는 이미지의 크기는 뉴럴 네트워크 모델에 포함된 네트워크 함수에서의 연산량과 관계될 수 있다. 따라서, 프로세서(120)는 뉴럴 네트워크의 입력이 동일한 크기를 가지도록 제 1 이미지(300)를 크롭핑할 수 있다. 크롭핑은 제 1 이미지(300)의 적어도 일부만을 포함하도록 이미지의 적어도 일부를 제외한 영역을 자르는 것을 의미할 수 있다.
어노말리 데이터에 관한 학습 데이터의 데이터 어그멘테이션을 수행하기 위하여, 프로세서(120)는 제 1 이미지(300)를 크롭핑할 수 있다. 어노말리 데이터를 포함하는 제 1 이미지(300)를 다른 제약 조건 없이 랜덤 크롭핑을 하는 경우, 어노말리 데이터를 제외한 영역만을 포함하도록 크롭핑이 될 수 있고, 제 2 이미지는 어노말리 데이터를 포함하지 않을 수도 있다. 특히, 예를 들어 반도체에 대한 결함 검사를 수행하는 경우 반도체의 결함 부분은 이미지에서 매우 작은 크기일 수 있다. 따라서, 다른 제약 조건 없이 일반적인 랜덤 크롭핑을 통해 반도체 결함 이미지의 데이터 어그멘테이션을 수행하는 경우, 결함 부분을 포함하지 않도록 데이터 어그멘테이션이 수행될 확률이 높다. 예를 들어, 반도체의 어노말리 영역이 매우 작은 크기이고, 어노말리 영역이 제 1 이미지의 왼쪽에 치우쳐져 있고, 제 1 이미지의 오른쪽 영역만을 포함하도록 크롭핑이 된 경우, 제 2 이미지는 어노말리 영역을 전혀 포함하고 있지 않을 수 있다. 본 개시의 실시예에 따라 크롭핑을 수행하는 경우, 결함 부분의 적어도 일부가 포함되도록 크롭핑을 수행하므로 효율적인 데이터 어그멘테이션이 수행될 수 있다.
프로세서(120)는 객체(301)의 적어도 일 부분이 포함되도록 제 1 이미지(300)를 변형하여 제 2 이미지를 생성할 수 있다. 프로세서(120)는 객체(301)의 적어도 일 부분이 포함되도록 제 1 이미지(300)의 크롭핑을 수행할 수 있다. 프로세서(120)는 어노말리 데이터의 적어도 일 부분이 포함되도록 제 1 이미지(300)의 크롭핑을 수행할 수 있다.
프로세서(120)는 객체(301)에 포함된 제 1 부분(321)이 크롭핑된 이미지인 제 2 이미지(310, 311, 313)에 포함되도록 제 1 이미지(300)를 크롭핑할 수 있다. 제 1 부분(321)은 제 1 이미지(300)에 포함된 객체(301)의 적어도 일 영역일 수 있다. 제 1 부분(321)은 객체(301)에서 랜덤으로 결정된 영역일 수 있다. 제 1 부분(321)의 크기는 예를 들어, 1개의 픽셀에 해당하는 영역일 수도 있고, 더 큰 픽셀들에 해당하는 영역일 수도 있다. 예를 들어, 프로세서(120)는 제 2 이미지(310, 311, 313)가 객체(301)에 포함된 적어도 1개 픽셀에 해당하는 영역을 포함하도록 제 1 이미지(300)를 크롭핑할 수 있다. 전술한 크롭핑에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 객체(301)에 포함된 제 1 부분(321)과 상기 크롭핑된 이미지의 제 2 부분(323, 325, 327)이 오버랩(overlap)되도록 상기 제 1 이미지(300)를 크롭핑할 수 있다. 프로세서(120)는 제 1 이미지(300)의 제 1 부분(321)과 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑할 수 있다. 도 2a에 도시된 절개선에 기초하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.
도 2c는 크롭핑된 제 2 이미지(310, 311, 313)를 예시적으로 도시한 도면이다.
제 1 이미지(300)의 제 1 부분(321)과 제 2 이미지(310)의 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑하여 제 2 이미지(310, 311, 313)를 생성할 수 있다.
제 1 이미지(300)의 제 1 부분(321)의 크기와 제 2 이미지(310)의 제 2 부분(323, 325, 327)의 크기는 동일할 수도 있고, 또는 상이할 수도 있다. 제 1 이미지(300)의 제 1 부분(321)의 크기보다 제 2 이미지(310)의 제 2 부분(323, 325, 327)의 크기가 큰 경우, 제 2 이미지(310)의 제 2 부분(323, 325, 327)에 해당하는 영역에 제 1 부분(321)이 포함되도록 제 1 이미지(300)를 크롭핑할 수 있다.
도 2b는 제 2 이미지(310, 311, 313)의 제 2 부분(323,325,327)을 결정하는 방법에 관하여 설명하기 위한 예시적인 도면이다.
제 2 부분(323,325,327)은 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 중심에서 사전결정된 범위 안의 영역(320)내에 포함될 수 있다. 도 2b에 도시된 제 2 이미지(310, 311, 313) 내의 실선으로 표시한 영역(320)은 제 2 부분(323,325,327)이 위치하면 안되는 버퍼 영역을 제외한 영역일 수 있다. 제 2 부분(323,325,327)은 크롭핑된 이미지인 제 2 이미지(310, 311, 313)의 버퍼 영역을 제외한 영역에 포함될 수 있다. 예를 들어, 버퍼 영역은 제 2 이미지(310, 311, 313)의 외각에서부터 20 퍼센트 면적에 해당하는 영역일 수 있다. 도 2b에서는 제 2 부분(323,325,327)이 포함되어야 하는 영역(320)을 사각형의 모양으로 도시하였으나, 본 발명은 이에 제한되는 것은 아니고, 다른 모양일 수도 있다. 전술한 버퍼 영역에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
버퍼 영역이 없이 제 2 부분(323, 325, 327)이 결정되는 경우, 제 2 이미지(310, 311, 313)에는 어노말리 데이터가 극히 일부만 포함되어 있을 수 있다. 어노말리 데이터가 극히 일부만 포함되는 경우, 어노말리 학습 데이터로 사용하기 어려울 수 있다. 예를 들어, 제 1 부분(321)이 제 1 이미지(300)에 포함된 객체(301)의 가장 왼쪽 영역으로 결정되고, 제 2 부분이 제 2 이미지(310)의 가장 오른쪽 영역으로 결정된 경우, 제 2 이미지(310)에는 어노말리 데이터가 극히 일부만 포함되어 있을 수 있다. 따라서, 본 개시는 어노말리 학습 데이터로 사용할 수 있을 정도의 유의미한 어노말리 데이터를 제 2 이미지(310)가 포함하도록, 버퍼 영역을 고려하여 제 2 부분(323, 325, 327)을 결정할 수 있다.
제 1 부분(220)과 제 2 부분(323, 325, 327)이 오버랩 되도록 제 1 이미지(300)를 크롭핑하여 새로운 학습 데이터인 제 2 학습 데이터에 포함되는 제 2 이미지(310)를 생성할 수 있다.
본 개시의 일 실시예에 따라 프로세서(120)가 상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은, 프로세서(120)가 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작을 포함할 수 있다. 이하에서는 도 3을 참조하여 설명한다. 도 3은 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 예시를 도시한 도면이다.
프로세서(120)는 객체(301)의 적어도 일부를 제외한 부분에 마스킹을 씌울 수 있다. 마스킹은 뉴럴 네트워크 모델의 연산 시 연산에서 제외되도록 지정된 영역일 수 있다. 프로세서(120)는 객체(301)의 적어도 일부를 제외한 부분에 마스킹을 씌운 제 3 이미지(400)를 생성하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 3 이미지(400)를 뉴럴 네트워크 모델을 이용하여 연산하는 경우, 제 2 이미지에서 마스킹을 씌운 부분을 제외하고 연산할 수 있다. 도 3에서 마스킹을 씌운 부분은 이미지(400)에서 검정색으로 표시한 부분이다. 예를 들어, 도 3에 도시된 예시와 같이, 프로세서(120)는 객체(301)를 제외한 모든 부분에 마스킹을 씌울 수 있다. 예를 들어, 프로세서(120)는 객체(301)를 제외한 적어도 일 부분에 마스킹을 씌울 수 있다. 예를 들어, 프로세서(120)는 객체(301)에 포함된 제 1 부분(321)을 제외한 부분 중 적어도 일부에 마스킹을 씌울 수 있다. 전술한 마스킹에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 관심 객체의 적어도 일부를 포함하도록 크롭핑한 이미지를 생성하여 제 2 학습 데이터를 생성할 수 있다. 프로세서(120)는 제 1 학습 데이터에 기초하여 관심 객체의 적어도 일부를 제외하도록 마스킹을 씌운 이미지를 생성하여 제 2 학습 데이터를 생성할 수 있다.
프로세서(120)는 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성할 수 있다. 프로세서(120)는 기존 학습 데이터 세트에 포함된 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 프로세서(120)는 기존 학습 데이터 세트에 포함되어 있던 제 1 학습 데이터 및 데이터 어그멘테이션을 통해 생성한 제 2 학습 데이터를 포함하는 새로운 학습 데이터 세트를 생성할 수 있다.
프로세서(120)는 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시킬 수 있다.
본 개시의 일 실시예에 따라, 학습 데이터 세트는 제 1 학습 데이터 및 제 2 학습 데이터를 포함할 수 있다. 학습 데이터 세트에 포함된 둘 이상의 학습 데이터 각각은 결함 검사 대상 제품 이미지 및 상기 제품 이미지에 기초한 결함 여부가 라벨링된 정보를 포함할 수 있다. 예를 들어, 제 1 학습 데이터에 포함된 제 1 이미지 및 라벨에 기초하여 제 2 학습 데이터를 생성한 경우, 제 2 학습 데이터는 제 1 이미지를 변형한 제 2 이미지 및 라벨을 포함할 수 있다.
프로세서(120)는 뉴럴 네트워크 모델을 학습하여 생성하기 위하여 학습 데이터를 뉴럴 네트워크 모델의 입력 노드에 입력시키고, 뉴럴 네트워크 모델의 출력 레이어에서 연산하여 출력한 결함 여부 데이터과 학습 데이터에 포함된 라벨에 기초하여 뉴럴 네트워크 모델의 가중치를 조정할 수 있다. 프로세서(120)는 오차에 기초하여 뉴럴 네트워크 모델의 하나 이상의 네트워크 함수에 포함된 출력 레이어로부터 하나 이상의 히든 레이어를 거쳐 입력 레이어로 전파함으로써, 각각의 링크에 설정된 가중치를 업데이트하여 뉴럴 네트워크 모델을 학습시킬 수 있다.
도 4는 본 개시의 일 실시예에 따른 학습 데이터 생성 방법의 순서도이다.
컴퓨팅 장치(100)는 학습 데이터가 부족한 클래스에 대한 제 1 학습 데이터에 기초하여 데이터 어그멘테이션을 수행할 수 있다. 컴퓨팅 장치(100)는 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별(610)할 수 있다.
컴퓨팅 장치(100)는 상기 이미지에 포함된 관심 객체를 식별할 수 있다.
관심 객체는 라벨링된 객체를 포함할 수 있다.
본 개시의 일 실시예에 따른 라벨은 세그먼테이션 라벨일 수 있다. 세그먼테이션 라벨은 이미지에 포함된 일부 영역을 이미지의 다른 영역과 구별되도록 표시한 것일 수 있다.
본 개시의 다른 일 실시예에 따른 라벨은 분류 라벨일 수 있다. 분류 라벨은 이미지가 어떤 클래스에 속하는지에 대한 정보를 표시한 것일 수 있다. 분류 라벨은 이미지에 사용자가 이미지에서 획득하고자 하는 특정 정보가 포함되어 있는지 여부에 관하여 표시한 것일 수 있다.
관심 객체는 어노말리 데이터를 포함할 수 있다. 어노말리 데이터는 데이터의 정상 패턴에서 벗어나는 어노말리 데이터를 의미할 수 있다. 데이터는 비정형 패턴을 가질 수 있으며 어노말리 데이터는 이러한 비정형 패턴에서 벗어나는 데이터를 의미할 수 있다.
컴퓨팅 장치(100)는 이미지에 포함된 객체에 관한 세그먼테이션을 수행할 수 있다.
컴퓨팅 장치(100)는 상기 객체의 적어도 일부에 기초하여 이미지를 변형(620)할 수 있다.
컴퓨팅 장치(100)는 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑할 수 있다. 컴퓨팅 장치(100)는 객체에 포함된 제 1 부분이 상기 크롭핑된 이미지에 포함되도록 상기 이미지를 크롭핑할 수 있다. 컴퓨팅 장치(100)는 상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩되도록 상기 이미지를 크롭핑할 수 있다.
제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함된 부분일 수 있다.
컴퓨팅 장치(100)는 상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형할 수 있다. 컴퓨팅 장치(100)는 상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌울 수 있다.
컴퓨팅 장치(100)는 상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성(630)할 수 있다.
컴퓨팅 장치(100)는 상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성할 수 있다.
컴퓨팅 장치(100)는 상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시킬 수 있다.
도 5는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.
도 5는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.
본 개시가 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 개시가 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드 헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있다. 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
컴퓨터 판독가능 전송 매체는 통상적으로 기타 전송 메커니즘(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 (14)

  1. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치의 하나 이상의 프로세서에서 실행되는 경우 학습 데이터 생성 방법을 제공하기 위한 동작들을 수행하도록 하며 상기 동작들은,
    제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작;
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작; 및
    상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  2. 제 1 항에 있어서,
    상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은,
    상기 이미지에 포함된 관심 객체를 식별하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  3. 제 2 항에 있어서,
    상기 관심 객체는 라벨링된 객체를 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  4. 제 2 항에 있어서,
    상기 관심 객체는 어노말리 데이터를 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  5. 제 1 항에 있어서,
    상기 제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 동작은,
    상기 이미지에 포함된 객체에 관한 세그먼테이션(segmentation)을 수행하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  6. 제 1 항에 있어서,
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은,
    상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑(cropping)하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  7. 제 6 항에 있어서,
    상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은,
    상기 객체에 포함된 제 1 부분이 상기 크롭핑된 이미지에 포함되도록 상기 이미지를 크롭핑하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  8. 제 6 항에 있어서,
    상기 객체의 적어도 일부를 포함하도록 상기 이미지를 크롭핑하는 동작은,
    상기 객체에 포함된 제 1 부분과 상기 크롭핑된 이미지의 제 2 부분이 오버랩(overlap)되도록 상기 이미지를 크롭핑하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  9. 제 8 항에 있어서,
    상기 제 2 부분은, 상기 크롭핑된 이미지의 중심에서 사전결정된 범위 안의 영역에 포함된,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  10. 제 1 항에 있어서,
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은,
    상기 객체의 적어도 일부를 제외한 이미지의 부분을 변형하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  11. 제 1 항에 있어서,
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 동작은,
    상기 객체의 적어도 일부를 제외한 부분에 마스킹을 씌우는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  12. 제 1 항에 있어서,
    상기 제 1 학습 데이터 및 상기 제 2 학습 데이터를 포함하는 학습 데이터 세트를 생성하는 동작; 및
    상기 학습 데이터 세트에 기초하여 하나 이상의 네트워크 함수를 포함하는 모델이 상기 모델에 입력된 이미지에 포함된 객체를 식별하도록 학습시키는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  13. 학습 데이터 생성 방법으로서,
    제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하는 단계;
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하는 단계; 및
    상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는 단계;
    를 포함하는,
    학습 데이터 생성 방법.
  14. 학습 데이터 생성 방법을 제공하기 위한 서버로서,
    하나 이상의 코어를 포함하는 프로세서; 및
    메모리;
    를 포함하고,
    상기 프로세서는,
    제 1 학습 데이터에 포함된 이미지에 기초하여 상기 이미지에 포함된 객체를 식별하고,
    상기 객체의 적어도 일부에 기초하여 이미지를 변형하고, 그리고
    상기 변형된 이미지를 포함하는 제 2 학습 데이터를 생성하는,
    학습 데이터 생성 방법을 제공하기 위한 서버.
PCT/KR2020/006149 2019-06-10 2020-05-11 데이터 생성 방법 WO2020251172A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2019-0067995 2019-06-10
KR1020190067995A KR102076075B1 (ko) 2019-06-10 2019-06-10 데이터 생성 방법
KR10-2020-0012948 2019-06-10
KR1020200012948A KR20200141376A (ko) 2020-02-04 2020-02-04 데이터 생성 방법

Publications (1)

Publication Number Publication Date
WO2020251172A1 true WO2020251172A1 (ko) 2020-12-17

Family

ID=73782276

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/006149 WO2020251172A1 (ko) 2019-06-10 2020-05-11 데이터 생성 방법

Country Status (1)

Country Link
WO (1) WO2020251172A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101879735B1 (ko) * 2017-03-15 2018-07-18 (주)넥셀 자동적인 학습데이터 생성 방법 및 장치와 이를 이용하는 자가 학습 장치 및 방법
JP2019015654A (ja) * 2017-07-10 2019-01-31 ファナック株式会社 機械学習装置、検査装置及び機械学習方法
US20190130218A1 (en) * 2017-11-01 2019-05-02 Salesforce.Com, Inc. Training a neural network using augmented training datasets
KR102076075B1 (ko) * 2019-06-10 2020-02-10 주식회사 수아랩 데이터 생성 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101879735B1 (ko) * 2017-03-15 2018-07-18 (주)넥셀 자동적인 학습데이터 생성 방법 및 장치와 이를 이용하는 자가 학습 장치 및 방법
JP2019015654A (ja) * 2017-07-10 2019-01-31 ファナック株式会社 機械学習装置、検査装置及び機械学習方法
US20190130218A1 (en) * 2017-11-01 2019-05-02 Salesforce.Com, Inc. Training a neural network using augmented training datasets
KR102076075B1 (ko) * 2019-06-10 2020-02-10 주식회사 수아랩 데이터 생성 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DWIBEDL DEBIDATTA ET AL.: "Cut, Paste and Learn: Surprisingly Easy Synthesis for Instance Detection", PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV, 22 October 2017 (2017-10-22), pages 1310 - 1319, XP033282989, DOI: 10.1109/ICCV.2017.146 *
KIM, HUI EIM ET AL.: "Domain-Specific Data Augmentation for On-Road Object Detection Based on a Deep Neural Network", 2017 IEEE INTELLIGENT VEHICLES SYMPOSIUM (IV, 11 June 2017 (2017-06-11), Redondo Beach, CA , USA, pages 103 - 108, XP033133740, DOI: 10.1109/IVS.2017.7995705 *
RATNER, ALEXANDER J. ET AL.: "Learning to Compose Domain-Specific Transformations for Data Augmentation", 31ST CONFERENCE ON NEURAL INFORMATION PROCESSING SYSTEMS (NIPS 2017, 2017, Long Beach, CA , USA, pages 1 - 11, XP080818752 *

Similar Documents

Publication Publication Date Title
WO2019074195A1 (ko) 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램
WO2017213400A1 (en) Malware detection by exploiting malware re-composition variations
WO2020004815A1 (ko) 데이터의 어노말리 감지 방법
WO2021107610A1 (en) Method and system for generating a tri-map for image matting
WO2016171341A1 (ko) 클라우드 기반 병리 분석 시스템 및 방법
WO2020005049A1 (ko) 인공 신경망의 학습 방법
WO2019039757A1 (ko) 훈련 데이터를 생성하는 방법, 장치 및 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램
WO2022005091A1 (ko) 골 연령 판독 방법 및 장치
WO2019235828A1 (ko) 투 페이스 질병 진단 시스템 및 그 방법
KR20200141376A (ko) 데이터 생성 방법
WO2020032420A1 (en) Method for training and testing data embedding network to generate marked data by integrating original data with mark data, and training device and testing device using the same
WO2020085558A1 (ko) 고속분석 영상처리장치 및 그 장치의 구동방법
WO2022146050A1 (ko) 우울증 진단을 위한 인공지능 연합학습 방법 및 시스템
WO2020258672A1 (zh) 网络访问的异常检测方法和装置
WO2024080791A1 (ko) 데이터셋을 생성하기 위한 방법
KR102076075B1 (ko) 데이터 생성 방법
WO2024058465A1 (ko) 연합 학습을 위한 지역 신경망 모델 학습 방법
WO2020251172A1 (ko) 데이터 생성 방법
WO2020235854A1 (ko) 불량 이미지 생성 장치 및 방법
WO2022145723A1 (en) Method and apparatus for detecting layout
WO2024029669A1 (ko) 적대적 이미지 복원 시스템 및 적대적 이미지 복원 방법
WO2023224457A1 (ko) 깊이 맵의 특징점을 획득하기 위한 방법
WO2023113347A1 (ko) 의료 영상을 분석하기 위한 방법
WO2023182796A1 (ko) 제품 이미지를 기반으로 불량 제품을 감지하는 인공 지능 장치 및 그 방법
WO2024063301A1 (ko) Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법

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: 20822416

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: 20822416

Country of ref document: EP

Kind code of ref document: A1