KR102296511B1 - Training data generating apparatus, method for product inspection and product inspection appratus using the training data - Google Patents

Training data generating apparatus, method for product inspection and product inspection appratus using the training data Download PDF

Info

Publication number
KR102296511B1
KR102296511B1 KR1020200153368A KR20200153368A KR102296511B1 KR 102296511 B1 KR102296511 B1 KR 102296511B1 KR 1020200153368 A KR1020200153368 A KR 1020200153368A KR 20200153368 A KR20200153368 A KR 20200153368A KR 102296511 B1 KR102296511 B1 KR 102296511B1
Authority
KR
South Korea
Prior art keywords
patches
augmented
training data
product
generating
Prior art date
Application number
KR1020200153368A
Other languages
Korean (ko)
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 주식회사 트윔
Priority to KR1020200153368A priority Critical patent/KR102296511B1/en
Application granted granted Critical
Publication of KR102296511B1 publication Critical patent/KR102296511B1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8851Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8851Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
    • G01N2021/8887Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges based on image processing techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Medical Informatics (AREA)
  • Pathology (AREA)
  • Immunology (AREA)
  • Biochemistry (AREA)
  • Analytical Chemistry (AREA)
  • Signal Processing (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)

Abstract

An apparatus and a method for generating training data for product inspection, and a product inspection apparatus using the training data are disclosed. The apparatus for generating training data according to an embodiment comprises: a receiver for receiving an image of a product; and a processor that obtains a base patch including a region of interest obtained for inspection of the product from the image, generates a plurality of augmented patches by transforming the base patch, and generates training data for training a neural network inspecting the product by registering the plurality of augmented patches. When images of parts or products are captured at fixed locations in various manufacturing processes, a method of flipping or rotating the whole image is different from an actual product inspection situation, and since it is less likely to occur, performing transformation of the data only for the region of interest may be more efficient.

Description

제품 검사를 위한 학습 데이터 생성 장치, 방법 및 그 학습 데이터를 이용한 제품 검사 장치{TRAINING DATA GENERATING APPARATUS, METHOD FOR PRODUCT INSPECTION AND PRODUCT INSPECTION APPRATUS USING THE TRAINING DATA}Training data generating device and method for product inspection, and product inspection device using the training data

실시예들은 제품 검사를 위한 학습 데이터 생성 장치, 방법 및 그 학습 데이터를 이용한 제품 검사 장치에 관한 것이다.Embodiments relate to an apparatus and method for generating learning data for product inspection, and a product inspection apparatus using the learning data.

기존의 머신 비전(machine vision)을 이용한 검사 기술은 주로 생산 라인에서 제품이나 부품의 결함과 불량을 찾아내는데 활용되어 왔다.  머신 비전을 이용한 검사 방식은 생산 라인의 필요한 곳에 카메라를 설치하고 완성된 제품이나 부품의 이미지를 촬영한 뒤, 정상 제품이나 부품의 이미지와 비교해 다른 부분(예를 들어, 결함)이 있는지 확인하는 방식으로 동작한다.Existing inspection technology using machine vision has been mainly used to find defects and defects in products or parts in a production line. In the inspection method using machine vision, a camera is installed at the required place on the production line, an image of the finished product or part is taken, works with

결함이 있는 제품이나 부품을 사전에 분류해야 최종적인 불량률을 낮출 수 있기 때문에 불량 검출은 전체 제조 공정에서 매우 중요하다.Defect detection is very important in the entire manufacturing process because defective products or parts must be classified in advance to lower the final defect rate.

머신 비전 기술은 기계에 인간이 가지고 있는 시각과 판단 기능을 부여하여 사람이 인지하고 판단하는 기능을 하드웨어와 소프트웨어의 시스템이 대신 처리하는 기술로서, 사전에 정의한 룰 베이스(rule base) 기반으로 양품과 불량품을 가리는 방식으로 동작하였다.Machine vision technology is a technology in which the system of hardware and software handles the functions that humans recognize and judge by giving the vision and judgment functions that humans have. Based on a pre-defined rule base, It operates in a way that hides defective products.

하지만, 가르쳐준 것만 잘 분류하는 기존 룰 베이스 기반의 검사 방식은 제품의 불량을 검사하는데 한계가 있어, 최근에는 인공지능 분야에서 획기적인 발전을 보이고 있는 딥러닝 기술을 활용하여 다양한 불량 유형도 정확하게 판단할 수 있는 검사 기술이 개발되고 있다.However, the existing rule-based inspection method, which classifies only what was taught, has limitations in inspecting product defects. Inspection techniques are being developed.

실시예들은 제품 검사를 위한 학습 데이터 생성 기술 및 그 학습 데이터를 이용한 제품 검사 기술을 제공할 수 있다. 다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.Embodiments may provide a technology for generating learning data for product inspection and a product inspection technology using the learning data. However, the technical problems are not limited to the above-described technical problems, and other technical problems may exist.

일 실시예에 따른 학습 데이터 생성 장치는, 제품의 이미지를 수신하는 수신기와, 상기 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하고, 상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하고, 상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하는 프로세서를 포함한다.The apparatus for generating learning data according to an embodiment obtains a base patch including a receiver for receiving an image of a product, and a region of interest obtained for inspection of the product from the image, and the base patch and a processor for generating training data for training a neural network to test the product by generating a plurality of augmented patches by transforming and registering the plurality of augmented patches.

상기 프로세서는, 상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하고, 상기 관심 영역에 대한 레이블링(labeling)을 수행함으로써 상기 베이스 패치를 획득할 수 있다.The processor may acquire the base patch by acquiring a region of interest including an inspection target from the image and performing labeling on the region of interest.

상기 프로세서는, 상기 베이스 배치에 대하여 아핀 변환(affine transform)을 수행하고, 아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 상기 복수의 증대된 패치들을 생성할 수 있다.The processor may generate the plurality of augmented patches by performing an affine transform on the base arrangement and filtering the base patch on which the affine transform is performed.

상기 프로세서는, 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 상기 아핀 변환을 수행할 수 있다.The processor may perform the affine transformation by performing at least one of flip, padding, scaling, and translation.

상기 프로세서는, 상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 상기 필터링을 수행할 수 있다.The processor may perform the filtering by applying at least one of a grayscale change, a highlight, a blur, and a noise to the base patch on which the affine transformation is performed.

상기 프로세서는, 상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하고, 상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 상기 학습 데이터를 생성할 수 있다.The processor generates the training data by rotating the plurality of augmented patches to generate a plurality of rotated patches, and performing interpolation between the plurality of rotated patches and the plurality of augmented patches. can do.

일 실시예에 따른 제품 검사 장치는, 제품의 이미지를 수신하는 수신기와, 상기 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하고, 상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하고, 상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하고, 상기 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 상기 제품의 불량을 검사하는 프로세서를 포함한다.A product inspection apparatus according to an embodiment includes a receiver for receiving an image of a product, and a base patch including a region of interest obtained for inspection of the product from the image, and transforming the base patch to generate a plurality of augmented patches by doing so, and to generate training data for training a neural network that inspects the product by registering the plurality of augmented patches, and is trained based on the training data. and a processor for inspecting a defect of the product using a neural network.

상기 프로세서는, 상기 학습 데이터에 기초하여 상기 뉴럴 네트워크를 학습시킬 수 있다.The processor may train the neural network based on the training data.

일 실시예에 따른 학습 데이터 생성 방법은, 제품의 이미지를 수신하는 단계와, 상기 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하는 단계와, 상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하는 단계와, 상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하는 단계를 포함한다.The method for generating learning data according to an embodiment includes the steps of: receiving an image of a product; acquiring a base patch including a region of interest obtained for inspection of the product from the image; generating a plurality of augmented patches by deforming the patch; and generating training data for training a neural network to test the product by registering the plurality of augmented patches. .

상기 획득하는 단계는, 상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하는 단계와, 상기 관심 영역에 대한 레이블링(labeling)을 수행함으로써 상기 베이스 패치를 획득하는 단계를 포함할 수 있다.The acquiring may include acquiring a region of interest including an inspection target from the image, and obtaining the base patch by labeling the region of interest.

상기 증대된 배치들을 생성하는 단계는, 상기 베이스 배치에 대하여 아핀 변환(affine transform)을 수행하는 단계와, 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성하는 단계를 포함할 수 있다.The generating of the augmented batches includes performing an affine transform on the base batch, and generating a plurality of augmented patches by filtering the base patch on which the affine transform has been performed. can do.

상기 아핀 변환을 수행하는 단계는, 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 상기 아핀 변환을 수행하는 단계를 포함할 수 있다.The performing of the affine transformation may include performing the affine transformation by performing at least one of flip, padding, scaling, and translation.

상기 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성하는 단계는, 상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 상기 필터링을 수행하는 단계를 포함할 수 있다.The step of generating a plurality of augmented patches by performing filtering on the base patch on which the affine transformation has been performed includes: grayscale change, highlight, blur, and change in the base patch on which the affine transformation is performed performing the filtering by applying at least one of noise.

상기 학습 데이터를 생성하는 단계는, 상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하는 단계와, 상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 상기 학습 데이터를 생성하는 단계를 포함할 수 있다.The generating of the training data may include generating a plurality of rotated patches by rotating the plurality of augmented patches, and interpolation between the plurality of rotated patches and the plurality of augmented patches. It may include the step of generating the learning data by performing.

도 1은 제품 검사 시스템의 개략적인 블록도를 나타낸다.
도 2a는 도 1에 도시된 학습 데이터 생성 장치의 개략적인 블록도를 나타낸다.
도 2b는 도 1에 도시된 제품 검사 장치의 개략적인 블록도를 나타낸다.
도 2c는 학습 데이터 생성과 제품 검사를 모두 수행하는 제품 검사 시스템의 블록도의 예를 나타낸다.
도 3a는 학습 데이터 생성 동작의 순서를 나타낸다.
도 3b는 트리 구조의 학습 데이터 생성 과정을 나타낸다.
도 4는 베이스 패치를 증대시키는 과정을 나타낸다.
도 5는 생성되는 학습 데이터의 픽셀을 나타낸다.
도 6a는 불량을 포함한 제품의 이미지의 일 예를 나타낸다.
도 6b는 불량을 포함한 제품의 이미지의 다른 예를 나타낸다.
도 6c는 불량을 포함한 제품의 이미지의 또 다른 예를 나타낸다.
도 7은 학습 데이터 생성 동작의 순서도를 나타낸다.
1 shows a schematic block diagram of a product inspection system.
FIG. 2A is a schematic block diagram of the apparatus for generating training data shown in FIG. 1 .
FIG. 2B shows a schematic block diagram of the product inspection apparatus shown in FIG. 1 .
2C shows an example of a block diagram of a product inspection system that performs both generation of learning data and product inspection.
3A shows the sequence of the training data generation operation.
3B shows a tree-structured learning data generation process.
4 shows a process of increasing the base patch.
5 shows pixels of generated training data.
6A shows an example of an image of a product including a defect.
6B shows another example of an image of a product including a defect.
6C shows another example of an image of a product including a defect.
7 is a flowchart of an operation of generating training data.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for purposes of illustration only, and may be changed and implemented in various forms. Accordingly, the actual implemented form is not limited to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, these terms should be interpreted only for the purpose of distinguishing one component from another. For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being “connected to” another component, it may be directly connected or connected to the other component, but it should be understood that another component may exist in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, and includes one or more other features or numbers, It should be understood that the possibility of the presence or addition of steps, operations, components, parts or combinations thereof is not precluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and overlapping descriptions thereof will be omitted.

본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in the present specification may mean hardware capable of performing functions and operations according to each name described in this specification, or may mean computer program code capable of performing specific functions and operations, , or an electronic recording medium on which a computer program code capable of performing a specific function and operation is loaded, for example, a processor or a microprocessor.

다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and/or structural combination of hardware for carrying out the technical idea of the present invention and/or software for driving the hardware.

도 1은 제품 검사 시스템의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a product inspection system.

도 1을 참조하면, 제품 검사 시스템(10)은 제품(product)의 이미지에 기초하여 제품을 검사할 수 있다. 제품 검사 시스템(10)은 제품의 이미지를 처리하여 제품의 불량을 검사할 수 있다.Referring to FIG. 1 , the product inspection system 10 may inspect a product based on an image of the product. The product inspection system 10 may process an image of the product to inspect the product for defects.

제품은 생산 시설에서 임의의 원료를 사용하여 만들어진 물건을 의미할 수 있다. 이미지는 빛의 굴절이나 반사 등에 의하여 이루어진 물체의 상을 포함하는 것으로, 선이나 색채를 이용하여 사물의 형상을 나타낸 것을 의미할 수 있다. 예를 들어, 이미지는 컴퓨터가 처리할 수 있는 형태로 된 정보로 이루어질 수 있다.A product may mean an article made using any raw material in a production facility. The image includes an image of an object made by refraction or reflection of light, and may mean expressing the shape of an object using lines or colors. For example, an image may consist of information in a form that a computer can process.

제품의 이미지는 제품의 외관을 임의의 이미지 센서를 포함하는 이미지 획득 장치를 이용하여 측정되는 빛의 굴절이나 반사 등에 의하여 이루어진 제품의 상을 의미할 수 있다.The image of the product may mean an image of the product made by refraction or reflection of light measured using an image acquisition device including an arbitrary image sensor.

제품 검사 시스템(10)은 제품의 불량을 검사하여 제품의 불량 검사 결과를 출력할 수 있다. 제품의 불량 검사 결과는 제품의 불량 여부에 관한 정보, 제품의 불량의 위치, 제품의 불량의 크기, 제품의 불량의 유형 등을 포함할 수 있다.The product inspection system 10 may output a product defect inspection result by inspecting the product defect. The product defect inspection result may include information on whether the product is defective, the location of the defect in the product, the size of the defect in the product, and the type of defect in the product.

제품 검사 시스템(10)은 학습 데이터 생성 장치(30) 및 제품 검사 장치(50)를 포함한다. 학습 데이터 생성 장치(30)는 제품의 이미지에 기초하여 학습 데이터를 생성하고, 생성한 학습 데이터를 제품 검사 장치로 출력할 수 있다.The product inspection system 10 includes a learning data generating device 30 and a product inspection device 50 . The learning data generating apparatus 30 may generate learning data based on the image of the product, and output the generated learning data to the product inspection apparatus.

제품 검사 장치(50)는 학습 데이터 및 제품의 이미지에 기초하여 제품을 검사할 수 있다. 제품 검사 장치(50)는 학습 데이터에 기초하여 뉴럴 네트워크를 학습시키고, 학습된 뉴럴 네트워크에 기초하여 제품을 검사함으로써 제품의 불량 검사 결과를 생성할 수 있다.The product inspection apparatus 50 may inspect the product based on the learning data and the image of the product. The product inspection apparatus 50 may generate a defect inspection result of a product by learning a neural network based on the learning data and inspecting the product based on the learned neural network.

뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.Neural networks (or artificial neural networks) may include statistical learning algorithms that mimic the neurons of biology in machine learning and cognitive science. A neural network may refer to an overall model having problem-solving ability by changing the bonding strength of synapses through learning in which artificial neurons (nodes) formed a network by combining synapses.

뉴럴 네트워크의 뉴런은 가중치 또는 바이어스의 조합을 포함할 수 있다. 뉴럴 네트워크는 하나 이상의 뉴런 또는 노드로 구성된 하나 이상의 레이어(layer)를 포함할 수 있다. 뉴럴 네트워크는 뉴런의 가중치를 학습을 통해 변화시킴으로써 임의의 입력으로부터 예측하고자 하는 결과를 추론할 수 있다.Neurons in a neural network may contain a combination of weights or biases. A neural network may include one or more layers composed of one or more neurons or nodes. A neural network can infer a desired result from an arbitrary input by changing the weight of a neuron through learning.

뉴럴 네트워크는 심층 뉴럴 네트워크 (Deep Neural Network)를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 퍼셉트론(perceptron), FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있다.The neural network may include a deep neural network. Neural networks include Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Perceptron, Feed Forward (FF), Radial Basis Network (RBF), Deep Feed Forward (DFF), Long Short Term Memory (LSTM), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine) ), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Deep Convolutional Network (DCN), Deconvolutional Network (DN), Deep Convolutional Inverse Graphics Network (DCIGN), Generative Adversarial Network (GAN), Liquid State Machine (LSM) ), Extreme Learning Machine (ELM), Echo State Network (ESN), Deep Residual Network (DRN), Differential Neural Computer (DNC), Neural Turning Machine (NTM), Capsule Network (CN), Kohonen Network (KN), and AN (Attention Network) may be included.

도 2a는 도 1에 도시된 학습 데이터 생성 장치의 개략적인 블록도를 나타내고, 도 2b는 도 1에 도시된 제품 검사 장치의 개략적인 블록도를 나타낸다.FIG. 2A is a schematic block diagram of the learning data generating apparatus illustrated in FIG. 1 , and FIG. 2B is a schematic block diagram of the product inspection apparatus illustrated in FIG. 1 .

도 2a 내지 도 2c를 참조하면, 학습 데이터 생성 장치(30)는 제품 검사를 수행하는 뉴럴 네트워크를 학습시키기 위해 학습 데이터를 생성할 수 있다. 이 때, 학습 데이터 생성 장치(30)는 뉴럴 네트워크를 충분히 학습시키기 위해서 부족한 학습 데이터를 보충할 수 있다.2A to 2C , the training data generating apparatus 30 may generate training data to train a neural network that performs product inspection. In this case, the training data generating apparatus 30 may supplement insufficient training data in order to sufficiently train the neural network.

학습 데이터 생성 장치(30)는 심층 뉴럴 네트워크를 학습시키기에 충분한 수의 데이터를 생성함으로써 뉴럴 네트워크의 과적합(overfitting) 문제를 해결할 수 있다.The training data generating apparatus 30 may solve the problem of overfitting the neural network by generating a sufficient number of data to train the deep neural network.

산업 제품(예를 들어, 원통형 전지, 타이어 또는 부품 등)의 불량의 형태는 일반적인 경우와는 달리, 일정한 패턴이 부품이나 제품 전체에 걸쳐 존재하는 형태를 가질 수 있다.Unlike a general case, the shape of a defect in an industrial product (eg, a cylindrical battery, a tire, or a part, etc.) may have a shape in which a certain pattern exists throughout the part or product.

불량 제품 또는 부품에서 발생하는 불량의 형태(예를 들어, 찍힘, 접힘, 긁힘, 버(burr) 또는 블롭(blob) 등)는 불량이 발생한 제품 또는 부품의 위치와 높은 관계를 가질 수 있다. 즉, 제품 또는 부품 외곽에 발생하는 불량의 형태는 주로 외곽에 발생하고, 제품 또는 부품 가운데나 특정 부위에 발생하는 불량의 형태는 주로 제품 가운데나 특정 부위에 발생할 수 있다. 일부 불량은 특정 부위가 아닌 제품 또는 부품 전체에 걸쳐 무작위로 발생할 수도 있다.The type of defect occurring in the defective product or part (eg, dents, folds, scratches, burrs, or blobs, etc.) may have a high relationship with the location of the defective product or part. That is, the form of defects occurring on the periphery of a product or part mainly occurs on the periphery, and the form of a defect occurring in the middle of a product or part or a specific part may mainly occur in the middle of the product or a specific part. Some defects may occur randomly throughout the product or part rather than in a specific area.

학습 데이터 생성 장치(30)는 뉴럴 네트워크가 상술한 다양한 형태의 불량을 학습할 수 있도록 제품의 이미지를 처리함으로써 충분한 양의 학습 데이터를 생성하여, 고성능의 뉴럴 네트워크 모델을 생성할 수 있다.The training data generating apparatus 30 may generate a sufficient amount of training data by processing an image of a product so that the neural network can learn the various types of defects described above, thereby generating a high-performance neural network model.

제품 검사 장치(50)는 제품의 이미지 및 학습 데이터에 기초하여 제품을 검사할 수 있다. 제품 검사 장치(50)는 주어진 데이터(예를 들어, 제품 이미지)를 제품 이미지에 포함된 양품 또는 불량품 이미지에서 각각의 특징을 딥러닝 알고리즘에 기초하여 찾아낼 수 있다.The product inspection apparatus 50 may inspect a product based on an image of the product and learning data. The product inspection apparatus 50 may find, based on a deep learning algorithm, each characteristic in a good product or a bad product   image included in the product image for given data (eg, a product image).

제품 검사 장치(50)는 불량 이미지가 기존의 불량 제품 또는 부품 이미지와 상이한 경우도 미리 학습한 뉴럴 네트워크로부터 추출한 특징에 기초하여 합리적으로 불량 여부를 판단할 수 있다. 이를 통해, 제품 검사 장치(50)는 종래의 룰 기반 방식에 비하여 지능적이고 유연하게 제품의 검사를 수행할 수 있다.Even when the defective image is different from the existing defective product or part image, the product inspection apparatus 50 may reasonably determine whether the defective image is defective based on the features extracted from the previously learned neural network. Through this, the product inspection apparatus 50 may perform a product inspection more intelligently and flexibly compared to a conventional rule-based method.

학습 데이터 생성 장치(30)와 제품 검사 장치(50)는 하나의 하드웨어로 구현되거나 별도의 하드웨어 상에 구현될 수 있다. 예를 들어, 학습 데이터 생성 장치(30)와 제품 검사 장치(50)는 하나의 프로세서(500) 및 메모리(600)를 이용하여 구현될 수 있다.The learning data generating apparatus 30 and the product inspection apparatus 50 may be implemented as one piece of hardware or may be implemented on separate pieces of hardware. For example, the learning data generating apparatus 30 and the product inspection apparatus 50 may be implemented using one processor 500 and a memory 600 .

다시 말해, 학습 데이터 생성 장치(30) 및 제품 검사 장치(50)는 각각 모듈(module)의 형태로 구현될 수 있다.In other words, the learning data generating apparatus 30 and the product inspection apparatus 50 may be implemented in the form of modules, respectively.

학습 데이터 생성 장치(30)는 수신기(100), 프로세서(200)를 포함한다. 학습 데이터 생성 장치(30)는 메모리(300)를 더 포함할 수 있다. 제품 검사 장치(50)는 수신기(400), 프로세서(500)를 포함한다. 제품 검사 장치(50)는 메모리(600)를 더 포함할 수 있다.The training data generating apparatus 30 includes a receiver 100 and a processor 200 . The learning data generating apparatus 30 may further include a memory 300 . The product inspection apparatus 50 includes a receiver 400 and a processor 500 . The product inspection apparatus 50 may further include a memory 600 .

수신기(100, 400)는 수신 인터페이스를 포함할 수 있다. 수신기(100, 400)는 제품의 이미지를 수신할 수 있다. 수신기(100, 400)는 외부 또는 메모리(300, 600)로부터 제품의 이미지를 수신할 수 있다. 수신기(100, 400)는 프로세서(200, 500)로 제품의 이미지를 출력할 수 있다.The receivers 100 and 400 may include a receiving interface. The receivers 100 and 400 may receive an image of a product. The receivers 100 and 400 may receive an image of a product from an external or memory 300 or 600 . The receivers 100 and 400 may output an image of a product to the processors 200 and 500 .

프로세서(200, 500)는 메모리(300, 600)에 저장된 데이터를 처리할 수 있다. 프로세서(200, 500)는 메모리(300, 600)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200, 500)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processors 200 and 500 may process data stored in the memories 300 and 600 . The processors 200 and 500 may execute computer readable codes (eg, software) stored in the memories 300 and 600 and instructions induced by the processors 200 and 500 .

"프로세서(200, 500)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.Processors 200 and 500” may be hardware-implemented data processing devices having circuitry having a physical structure for performing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(200, 500)는 제품의 이미지로부터 제품의 검사를 위해 획득된 관심 영역(region of interest)을 포함하는 베이스 패치(base patch)를 획득할 수 있다.The processors 200 and 500 may obtain a base patch including a region of interest obtained for inspection of the product from the image of the product.

프로세서(200, 500)는 제품의 이미지로부터 검사 대상(inspection object)을 포함하는 관심 영역을 획득할 수 있다. 프로세서(200, 500)는 획득한 관심 영역에 대한 레이블링(labeling)을 수행함으로써 베이스 패치를 획득할 수 있다.The processors 200 and 500 may acquire a region of interest including an inspection object from the image of the product. The processors 200 and 500 may acquire the base patch by performing labeling on the acquired ROI.

프로세서(200, 500)는 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성할 수 있다. 프로세서(200, 500)는 베이스 배치에 대하여 아핀 변환(affine transform)을 수행할 수 있다.The processors 200 and 500 may generate a plurality of augmented patches by modifying the base patch. The processors 200 and 500 may perform an affine transform on the base arrangement.

프로세서(200, 500)는 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The processors 200 and 500 may perform affine transformation by performing at least one of flip, padding, scaling, and translation.

프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다. 프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The processors 200 and 500 may generate a plurality of augmented patches by performing filtering on the base patch on which the affine transformation has been performed. The processors 200 and 500 may perform filtering by applying at least one of grayscale change, highlight, blur, and noise to the base patch on which the affine transformation is performed.

프로세서(200, 500)가 베이스 패치를 변형하여 복수의 증대된 패치들을 생성하는 과정은 도 4를 참조하여 자세하게 설명한다.A process in which the processors 200 and 500 generate a plurality of augmented patches by modifying the base patch will be described in detail with reference to FIG. 4 .

프로세서(200, 500)는 복수의 증대된 패치들을 정합(register)시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다.The processors 200 and 500 may generate training data for training a neural network for examining a product by registering a plurality of augmented patches.

프로세서(200, 500)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 프로세서(200, 500)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The processors 200 and 500 may generate a plurality of rotated patches by rotating the plurality of augmented patches. The processors 200 and 500 may generate training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.

프로세서(200, 500)는 학습 데이터에 기초하여 뉴럴 네트워크를 학습시킬 수 있다. 프로세서(200, 500)는 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 제품의 불량을 검사할 수 있다.The processors 200 and 500 may train the neural network based on the training data. The processors 200 and 500 may inspect a product defect by using a neural network learned based on the learning data.

메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 300 may store instructions (or programs) executable by the processor 200 . For example, the instructions may include instructions for executing an operation of a processor and/or an operation of each component of the processor.

메모리(300)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The memory 300 may be implemented as a volatile memory device or a nonvolatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Eelectronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Nonvolatile memory devices include EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash memory, MRAM (Magnetic RAM), Spin-Transfer Torque (STT)-MRAM (Spin-Transfer Torque (STT)-MRAM), Conductive Bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Nanotube RRAM), Polymer RAM (PoRAM), Nano Floating Gate Memory Memory (NFGM)), a holographic memory, a molecular electronic memory device, or an Insulator Resistance Change Memory.

도 2c는 학습 데이터 생성과 제품 검사를 모두 수행하는 제품 검사 시스템의 블록도의 예를 나타낸다.2C shows an example of a block diagram of a product inspection system that performs both generation of learning data and product inspection.

도 2c를 참조하면, 학습 데이터 생성 장치(30)와 제품 검사 장치(50)는 하나의 하드웨어 상에 구현될 수 있다. 도 2c의 예시에서, 프로세서(500)는 입출력 데이터 관리기(510), 학습 데이터 생성기(530), 딥러닝 알고리즘 학습기(550) 및 검사 모델 및 판독기(570)를 포함할 수 있다.Referring to FIG. 2C , the learning data generating apparatus 30 and the product inspection apparatus 50 may be implemented on one piece of hardware. In the example of FIG. 2C , the processor 500 may include an input/output data manager 510 , a training data generator 530 , a deep learning algorithm learner 550 , and a test model and reader 570 .

입출력 데이터 관리기(510)는 메모리(600)에 검사 결과를 저장하거나, 학습 이미지 및 캡처된 검사 이미지(또는, 제품의 이미지)를 수신할 수 있다.The input/output data manager 510 may store the test result in the memory 600 or receive a learning image and a captured test image (or an image of a product).

학습 데이터 생성기(530)는 제품의 이미지에 기초하여 학습 데이터를 생성할 수 있다. 학습 데이터 생성기(530)는 제품의 이미지로부터 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치를 획득할 수 있다.The learning data generator 530 may generate learning data based on the image of the product. The learning data generator 530 may obtain a base patch including an ROI obtained for inspection of the product from the image of the product.

학습 데이터 생성기(530)는 제품의 불량의 유형에 따라 제품의 이미지를 분류할 수 있다. 학습 데이터 생성기(530)는 분류된 제품의 이미지에 기초하여 관심 영역을 포함하는 베이스 패치를 획득할 수 있다.The learning data generator 530 may classify an image of a product according to the type of product defect. The learning data generator 530 may acquire a base patch including a region of interest based on the classified image of the product.

학습 데이터 생성기(530)는 제품의 이미지로부터 검사 대상을 포함하는 관심 영역을 획득할 수 있다. 학습 데이터 생성기(530)는 획득한 관심 영역에 대한 레이블링을 수행함으로써 베이스 패치를 획득할 수 있다.The learning data generator 530 may acquire the ROI including the inspection target from the image of the product. The training data generator 530 may acquire a base patch by performing labeling on the acquired ROI.

학습 데이터 생성기(530)는 베이스 패치를 변형시킴으로써 복수의 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 베이스 배치에 대하여 아핀 변환을 수행할 수 있다. 학습 데이터 생성기(530)는 플립, 패딩, 스케일링, 평행이동 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The training data generator 530 may generate a plurality of augmented patches by modifying the base patch. The training data generator 530 may perform affine transformation on the base arrangement. The training data generator 530 may perform the affine transformation by performing at least one of flip, padding, scaling, and translation.

학습 데이터 생성기(530)는 아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 아핀 변환이 수행된 베이스 패치에 그레이스케일 변경, 하이라이트, 블러, 노이즈 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The training data generator 530 may generate a plurality of augmented patches by performing filtering on the base patch on which the affine transformation has been performed. The training data generator 530 may perform filtering by applying at least one of grayscale change, highlight, blur, and noise to the base patch on which the affine transformation has been performed.

학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다.The training data generator 530 may generate training data for training a neural network for examining a product by matching the plurality of augmented patches.

학습 데이터 생성기(530)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간을 수행함으로써 학습 데이터를 생성할 수 있다.The training data generator 530 may generate a plurality of rotated patches by rotating the plurality of augmented patches. The training data generator 530 may generate training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.

딥러닝 알고리즘 학습기(550)는 생성된 학습 데이터에 기초하여 뉴럴 네트워크를 학습시킬 수 있다. The deep learning algorithm learner 550 may train the neural network based on the generated training data.

검사 모델 및 판독기(570)는 학습된 뉴럴 네트워크에 기초하여 제품에 대한 검사를 수행할 수 있다. 검사 모델 및 판독기(570)는 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 제품의 불량을 검사할 수 있다.The inspection model and reader 570 may perform inspection on the product based on the learned neural network. The inspection model and reader 570 may inspect a product defect by using a neural network learned based on the training data.

검사 모델 및 판독기(570)는 제품의 검사 결과를 입출력 데이터 관리기(510)로 출력하고, 입출력 데이터 관리기(510)는 메모리(600)에 검사 결과를 저장할 수 있다. 상술한 것과 같이, 검사 결과는 제품의 불량 여부에 관한 정보, 제품의 불량의 위치, 제품의 불량의 크기, 제품의 불량의 유형 등을 포함할 수 있다.The test model and reader 570 may output the test result of the product to the input/output data manager 510 , and the input/output data manager 510 may store the test result in the memory 600 . As described above, the inspection result may include information about whether the product is defective, the location of the product defect, the size of the product defect, the type of the product defect, and the like.

도 3a는 학습 데이터 생성 동작의 순서를 나타내고, 도 3b는 트리 구조의 학습 데이터 생성 과정을 나타낸다.FIG. 3A shows a sequence of an operation for generating training data, and FIG. 3B shows a process for generating training data having a tree structure.

도 3a 및 도 3b를 참조하면, 학습 데이터 생성기(530)는 제품의 이미지에 기초하여 학습 데이터를 생성할 수 있다.3A and 3B , the learning data generator 530 may generate learning data based on an image of a product.

학습 데이터 생성기(530)는 조명 변화에 따른 이미지를 캡처할 수 있다(310). 예를 들어, 학습 데이터 생성기(530)는 조명의 세기(조도) 또는 조명의 방향 변화(예를 들어, 좌 우, 위, 아래)에 따른 이미지를 캡처할 수 있다.The training data generator 530 may capture an image according to a lighting change ( 310 ). For example, the learning data generator 530 may capture an image according to the intensity of illumination (illuminance) or a change in direction of illumination (eg, left, right, top, bottom).

학습 데이터 생성기(530)는 미리 설정된 스텝(step)만큼의 휘도를 가감함으로써 조명의 밝기가 변화된 이미지를 생성할 수 있다. 학습 데이터 생성기(530)는 이미지의 상하좌우의 시작 부분의 픽셀 값과 끝부분의 픽셀값이 일정한 기울기를 갖도록 조절함으로써 조명의 방향이 변화된 이미지를 생성할 수 있다.The learning data generator 530 may generate an image in which the brightness of lighting is changed by adding or subtracting luminance by preset steps. The learning data generator 530 may generate an image in which the direction of illumination is changed by adjusting the pixel values at the beginning and the end of the image to have a constant inclination.

학습 데이터 생성기(530)는 캡처된 이미지로부터 관심 영역을 획득할 수 있다. 관심 영역은 찍힘, 눌림, 버(burr), 핀 홀(pin hole), 미성형 또는 스크래치(scratch) 불량이 포함된 영역을 의미할 수 있다.The training data generator 530 may acquire a region of interest from the captured image. The region of interest may refer to a region including a dent, a press, a burr, a pin hole, an unformed shape, or a scratch defect.

학습 데이터 생성기(530)는 관심 영역을 크롭(crop)하여 분리할 수 있다. 이 때, 분리된 관심 영역은 바운딩 박스(bounding box)의 형태 또는 인스턴스 세그멘테이션(instance segmentation)의 형태를 가질 수 있다.The training data generator 530 may separate the region of interest by cropping it. In this case, the separated ROI may have a form of a bounding box or a form of instance segmentation.

학습 데이터 생성기(530)는 분리된 관심 영역에 기초하여 베이스 패치를 생성할 수 있다(320). 학습 데이터 생성기(530)는 분리된 관심 영역에 대하여 레이블링을 수행할 수 있다. 학습 데이터 생성기(530)는 분리된 관심 영역을 양품인지 불량품인지 여부 또는 불량의 형태에 따라 분류하여 레이블링을 수행할 수 있다.The training data generator 530 may generate a base patch based on the separated ROI ( 320 ). The training data generator 530 may label the separated ROIs. The learning data generator 530 may perform labeling by classifying the separated ROI according to whether the region of interest is a good product, a bad product, or a type of a defect.

학습 데이터 생성기(530)는 베이스 패치를 변형시킴으로써 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 베이스 패치에 대하여 플립(flip), 패딩(padding), 필터링(filtering), 크롭(crop), 히스토그램(histogram) 이동, 노이즈(noise) 추가, 명암(contrast) 변경, 블러링(blurring), 샤프닝(sharpening) 또는 스레스홀딩(thresholding) 등의 변형을 수행할 수 있다. 증대를 수행하는 동작은 도 4를 참조하여 보다 자세하게 설명한다.The training data generator 530 may generate augmented patches by modifying the base patch. Training data generator 530 with respect to the base patch flip (flip), padding (padding), filtering (filtering), crop (crop), histogram (histogram) movement, noise (noise) addition, contrast (contrast) change, blur Variations such as blurring, sharpening or thresholding may be performed. The operation of performing the augmentation will be described in more detail with reference to FIG. 4 .

학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킬 수 있다(340). 학습 데이터 생성기(530)는 복수의 증대된 패치들에 대하여 회전 및 보간을 수행할 수 있다.The training data generator 530 may match the plurality of augmented patches ( 340 ). The training data generator 530 may perform rotation and interpolation on the plurality of augmented patches.

학습 데이터 생성기(530)는 회전 각도 및 최대 회전 범위를 결정하고, 결정된 회전 각도 및 최대 회전 범위에 기초하여 복수의 증대된 패치들을 회전시킬 수 있다.The training data generator 530 may determine a rotation angle and a maximum rotation range, and rotate the plurality of augmented patches based on the determined rotation angle and the maximum rotation range.

학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간을 수행할 수 있다.The training data generator 530 may perform interpolation between the plurality of rotated patches and the plurality of augmented patches.

학습 데이터 생성기(530)는 상술한 학습 데이터 생성 과정을 전체 제품(또는, 부품)의 이미지에 대하여 반복적으로 수행할 수 있다(350). 학습 데이터 생성기(530)는 제품의 이미지에 대하여 복사 위치와 범위를 선정하여 상술한 학습 데이터 생성 과정을 반복할 수 있다. 예를 들어, 학습 데이터 생성기(530)는 부품이나 제품 전체, 제품의 테두리, 제품의 가운데 또는 사용자가 지정한 범위에 대하여 베이스 패치를 생성하여 학습 데이터 생성 동작을 반복할 수 있다.The learning data generator 530 may repeatedly perform the above-described learning data generation process on the images of all products (or parts) ( 350 ). The learning data generator 530 may repeat the above-described learning data generation process by selecting a copy location and range for the image of the product. For example, the learning data generator 530 may repeat the learning data generating operation by generating a base patch for parts or the entire product, the edge of the product, the middle of the product, or a range specified by the user.

학습 데이터 생성기(530)는 310 내지 350의 동작을 도 3b의 예시와 같이 트리 구조를 이용하여 수행함으로써 학습 데이터를 빠른 속도로 증가시킬 수 있다.The training data generator 530 may rapidly increase the training data by performing operations 310 to 350 using a tree structure as shown in the example of FIG. 3B .

도 4는 베이스 패치를 증대시키는 과정을 나타낸다.4 shows a process of increasing the base patch.

도 4를 참조하면, 학습 데이터 생성기(530)는 베이스 패치를 변형시킴으로서 복수의 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 베이스 배치에 대하여 전처리(pre-processing)를 수행할 수 있다. 학습 데이터 생성기(530)는 컬러 수정(color modification), 명암 정규화(contrast normalization), 노이즈 추가(noise addition)을 수행함으로써 전처리를 수행할 수 있다.Referring to FIG. 4 , the training data generator 530 may generate a plurality of augmented patches by modifying the base patch. The training data generator 530 may perform pre-processing on the base arrangement. The training data generator 530 may perform preprocessing by performing color modification, contrast normalization, and noise addition.

컬러 수정(또는, 컬러 보정)은 RGB(Red, Green, Blue)의 각 채널 값을 변경함으로써 색이탈을 유도하여 색감을 바꾸는 변환을 의미하고, 노이즈 추가는 베이스 패치에 노이즈를 더하거나 데이터의 일부를 누락시킴으로써 변형을 야기시키는 변환을 의미할 수 있다. 명암 정규화(또는, 대비 표준화)는 베이스 패치의 전체적인 밝기를 조절하는 변환을 의미할 수 있다.Color correction (or color correction) refers to conversion that changes color by inducing color deviation by changing each channel value of RGB (Red, Green, Blue). It can mean a transformation that causes transformation by omission. Contrast normalization (or contrast normalization) may refer to a transformation that adjusts the overall brightness of the base patch.

학습 데이터 생성기(530)는 전처리된 베이스 패치에 대하여 아핀 변환을 수행할 수 있다. 학습 데이터 생성기(530)는 플립, 패딩, 스케일링(또는, 리사이즈(resize) 또는 평행이동 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The training data generator 530 may perform affine transformation on the preprocessed base patch. The training data generator 530 may perform the affine transformation by performing at least one of flip, padding, scaling (or resizing), and translation.

플립은 전처리된 베이스 패치를 좌우로 뒤집는 변환을 의미할 수 있고, 스케일링은 전처리된 베이스 패치의 크기를 조절하는 변환을 의미할 수 있다. 패딩은 전처리된 베이스 패치의 가장자리를 0 또는 근접한 픽셀 값으로 채우는 변환을 의미하고, 평행이동은 전처리된 베이스 패치 전체를 상하좌우로 임의의 픽셀 만큼 밀어주는 변환을 의미할 수 있다.Flip may mean a transformation that flips the preprocessed base patch left and right, and scaling may mean a transformation that adjusts the size of the preprocessed base patch. Padding may refer to a transformation that fills the edge of the preprocessed base patch with 0 or adjacent pixel values, and translation may refer to a transformation that pushes the entire preprocessed base patch up, down, left, and right by arbitrary pixels.

학습 데이터 생성기(530)는 아핀 변환이 수행된 베이스 패치에 대하여 필터링을 수행할 수 있다.The training data generator 530 may perform filtering on the base patch on which the affine transformation has been performed.

학습 데이터 생성기(530)는 증대를 수행함으로써 학습의 성능을 향상시킬 수 있다. 학습 데이터 생성기(530)는 위에서 설명한 증대 방법 중 일부를 선택적으로 수행함으로써 학습을 효율적으로 수행할 수 있다.The learning data generator 530 may improve the performance of learning by performing augmentation. The learning data generator 530 may efficiently perform learning by selectively performing some of the augmentation methods described above.

또한, 프로세서(500)는 증대 방법을 모두 적용하여 생성된 학습 데이터에 기초하여 제품을 검사하고, 검사 성능이 상대적으로 높은 증대 방법만을 선택적으로 수행하여 학습 데이터를 생성할 수 있다.In addition, the processor 500 may inspect the product based on the training data generated by applying all of the augmentation methods, and generate the learning data by selectively performing only the augmentation method having relatively high inspection performance.

다양한 제조 공정에서 부품 또는 제품의 이미지들이 고정된 위치에서 캡쳐되는 경우에는 이미지 전체를 플립시키거나 회전시키는 방법은 실제 제품 검사 상황과 상이하고, 발생될 가능성이 낮기 때문에, 관심 영역에 대해서만 데이터의 변형을 수행하는 것이 더 효율적일 수 있다.In various manufacturing processes, when images of parts or products are captured at fixed positions, the method of flipping or rotating the entire image is different from the actual product inspection situation and is unlikely to occur, so the data is modified only for the region of interest. It may be more efficient to do

도 5는 생성되는 학습 데이터의 픽셀을 나타낸다.5 shows pixels of generated training data.

도 5를 참조하면, 학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합(register)시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다.Referring to FIG. 5 , the training data generator 530 may generate training data for learning a neural network for examining a product by registering a plurality of augmented patches.

학습 데이터 생성기(530)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The training data generator 530 may generate a plurality of rotated patches by rotating the plurality of augmented patches. The training data generator 530 may generate training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.

학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킴으로써 유사한 위치에 발생하거나 유사한 형태를 갖는 불량을 검사하기 위한 학습 데이터를 생성할 수 있다.The training data generator 530 may generate training data for examining a defect occurring at a similar location or having a similar shape by matching the plurality of augmented patches.

학습 데이터 생성기(530)는 수학식 1을 이용하여 복수의 증대된 패치들을 회전시킬 수 있다.The training data generator 530 may rotate the plurality of augmented patches using Equation (1).

Figure 112020122880524-pat00001
Figure 112020122880524-pat00001

여기서, x, y는 입력 패치에 포함된 픽셀의 좌표를 나타내고, θ는 회전 각도를 의미하고, x', y'은 회전 결과가 반영된 픽셀의 좌표를 나타낼 수 있다.Here, x and y may represent coordinates of a pixel included in the input patch, θ may represent a rotation angle, and x' and y' may represent coordinates of a pixel to which a rotation result is reflected.

학습 데이터 생성기(530)는 최단 입점 보간(nearest neighbor interpolation), 쌍선형 보간(bilinear interpolation) 또는 쌍삼차보간법(bicubic interpolation)을 이용하여 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간을 수행할 수 있다.The training data generator 530 performs interpolation between a plurality of rotated patches and a plurality of augmented patches using nearest neighbor interpolation, bilinear interpolation, or bicubic interpolation. can be done

학습 데이터 생성기(530)는 정합을 거친 각각의 배치들이 제품 또는 부품 이미지의 전체에 걸쳐 분포될 수 있도록 새로운 학습 데이터를 생성할 수 있다. 도 5의 예시에서, 바운딩 박스(bounding box) 형태의 패치는 이미지의 해당 위치에 리플레이(replace) 개념으로 치환될 수 있다. 가장 끝부분의 픽셀은 이미지의 주변 픽셀과의 산술 평균 값으로 치환될 수 있다.The training data generator 530 may generate new training data so that each batch that has undergone registration may be distributed over the entire product or part image. In the example of FIG. 5 , a patch in the form of a bounding box may be replaced with a replay concept at a corresponding position in the image. The last pixel may be replaced with an arithmetic mean value with the neighboring pixels of the image.

객체(object) 형태로 분리된 패치의 경우, 이미지의 해당 위치에서 겹치는 모든 픽셀들과의 보간을 통해 치환될 수 있다. 이 때, 보간 방법은 상술한 것과 동일할 수 있다.In the case of a patch separated in the form of an object, it can be substituted through interpolation with all pixels overlapping at the corresponding position in the image. In this case, the interpolation method may be the same as described above.

도 6a 내지 도 6c는 불량을 포함한 제품의 이미지의 예들을 나타낸다.6A to 6C show examples of images of products including defects.

도 6a 내지 도 6c를 참조하면, 도 6a는 원통형 전지에서의 미성형 예시를 나타낼 수 있다. 도 6a의 오른쪽 이미지는 미성형 부분을 확대한 결과를 나타낼 수 있다.Referring to FIGS. 6A to 6C , FIG. 6A may show an example of an unformed cylindrical battery. The right image of FIG. 6A may represent an enlarged result of the unformed part.

원통형 전지의 미성형은 제품 외곽을 따라 나타날 수 있고, 제품의 외곽의 다른 부분과 형태가 상이하고 2 줄의 띠 형태로 나타날 수 있다.The unformed shape of the cylindrical battery may appear along the periphery of the product, and the shape may be different from other parts of the periphery of the product and may appear in the form of two stripes.

학습 데이터 생성 장치(30)는 원통형 전지 전체에 미성형 부분의 데이터를 다른 위치의 외곽에 배치함으로써 학습 데이터의 양을 증가시킬 수 있다.The training data generating apparatus 30 may increase the amount of training data by arranging the data of the unformed part in the entire cylindrical battery at a different location.

도 6b는 부품 불량의 일 예를 나타내고, 도 6c는 부품 불량의 다른 예를 나타낼 수 있다. 도 6a는 부품 표면(외경)에 발생한 찍힘 이미지를 나타내고, 도 6b는 상단면 가공 버(burr)로, 단면이나 벽면에 눌려 튀어나온 부분을 나타낼 수 있다.6B may show an example of a component defect, and FIG. 6C may show another example of a component defect. Figure 6a shows a dent image generated on the surface (outer diameter) of the part, Figure 6b is a top surface processing burr (burr), it can represent a part that protrudes by being pressed against a cross section or a wall surface.

도 7은 학습 데이터 생성 동작의 순서도를 나타낸다.7 is a flowchart of an operation of generating training data.

프로세서(200, 500)는 제품의 이미지를 수신할 수 있다(710).The processors 200 and 500 may receive an image of the product ( 710 ).

프로세서(200, 500)는 이미지로부터 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득할 수 있다. 프로세서(200, 500)는 이미지로부터 검사 대상을 포함하는 관심 영역을 획득할 수 있다. 프로세서(200, 500)는 관심 영역에 대한 레이블링(labeling)을 수행함으로써 베이스 패치를 획득할 수 있다.The processors 200 and 500 may acquire a base patch including a region of interest obtained for inspection of a product from the image. The processors 200 and 500 may acquire a region of interest including an examination target from the image. The processors 200 and 500 may acquire the base patch by performing labeling on the ROI.

프로세서(200, 500)는 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성할 수 있다.The processors 200 and 500 may generate a plurality of augmented patches by modifying the base patch.

프로세서(200, 500)는 베이스 배치에 대하여 아핀 변환(affine transform)을 수행할 수 있다. 프로세서(200, 500)는 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The processors 200 and 500 may perform an affine transform on the base arrangement. The processors 200 and 500 may perform affine transformation by performing at least one of flip, padding, scaling, and translation.

프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다.The processors 200 and 500 may generate a plurality of augmented patches by filtering the base patch on which the affine transformation has been performed.

프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The processors 200 and 500 may perform filtering by applying at least one of grayscale change, highlight, blur, and noise to the base patch on which the affine transformation is performed.

프로세서(200, 500)는 복수의 증대된 패치들을 정합(register)시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다. 프로세서(200, 500)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 프로세서(200, 500)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The processors 200 and 500 may generate training data for training a neural network for examining a product by registering a plurality of augmented patches. The processors 200 and 500 may generate a plurality of rotated patches by rotating the plurality of augmented patches. The processors 200 and 500 may generate training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA) array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and a software application running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more of these, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in a computer-readable recording medium.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination, and the program instructions recorded on the medium are specially designed and configured for the embodiment, or are known and available to those skilled in the art of computer software. may be Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those of ordinary skill in the art may apply various technical modifications and variations based thereon. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (14)

제품의 이미지를 수신하는 수신기;
상기 이미지에 대하여 미리 설정된 스텝(step)만큼의 휘도를 가감함으로써 조명의 밝기가 변화된 이미지를 생성하고,
상기 조명의 밝기가 변화된 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하고,
상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하고,
상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하는 프로세서
를 포함하고,
상기 프로세서는,
상기 베이스 패치에 컬러 수정, 명암 정규화 및 노이즈 추가를 포함하는 전처리를 수행하고,
복수의 증대 방식에 기초하여 복수의 증대된 패치들을 생성하고,
상기 복수의 증대된 패치를 이용하여 각각의 증대 방식에 대응하는 복수의 검사 성능을 획득하고,
상기 복수의 검사 성능에 기초하여 상기 복수의 증대 방식 중에서 일부 방식을 선택하여 상기 복수의 증대된 패치들을 생성하고,
상기 복수의 증대 방식은 플립(flip), 패딩(padding), 필터링(filtering), 크롭(crop), 히스토그램(histogram) 이동, 노이즈(noise) 추가, 명암(contrast) 변경, 블러링(blurring), 샤프닝(sharpening) 및 스레스홀딩(thresholding)을 포함하고,
회전 각도 및 최대 회전 범위를 결정하고, 결정된 회전 각도 및 최대 회전 범위에 기초하여 상기 복수의 증대된 패치들을 회전시킴으로써 상기 복수의 증대된 패치들을 정합시키고,
정합이 수행된 복수의 증대된 패치들의 끝부분의 픽셀을 주변 픽셀과의 산술 평균 값으로 치환하고,
상기 정합이 수행된 복수의 증대된 패치들을 상기 제품의 이미지 전체에 걸쳐 분포시킴으로써 상기 학습 데이터를 생성하고,
상기 관심 영역은 찍힘, 눌림, 버(burr), 핀 홀(pin hole), 미성형 또는 스크래치(scratch) 불량이 포함된 영역을 포함하는,
학습 데이터 생성 장치.
a receiver for receiving an image of the product;
Creates an image in which the brightness of illumination is changed by adding or subtracting luminance as much as a preset step with respect to the image,
Obtaining a base patch including a region of interest obtained for inspection of the product from the image in which the brightness of the illumination is changed,
creating a plurality of augmented patches by deforming the base patch;
A processor that generates training data for training a neural network to inspect the product by registering the plurality of augmented patches.
including,
The processor is
performing pre-processing including color correction, contrast normalization, and noise addition to the base patch;
generating a plurality of augmented patches based on the plurality of augmentation schemes;
acquiring a plurality of inspection performance corresponding to each augmentation method by using the plurality of augmented patches;
generating the plurality of augmented patches by selecting some methods from among the plurality of augmentation methods based on the plurality of inspection performance;
The plurality of augmentation methods include flip, padding, filtering, cropping, histogram movement, noise addition, contrast change, blurring, including sharpening and thresholding,
determining a rotation angle and a maximum rotation range, and registering the plurality of augmented patches by rotating the plurality of augmented patches based on the determined rotation angle and maximum rotation range;
substituting the pixel at the end of the plurality of augmented patches on which the registration has been performed with an arithmetic mean value with the neighboring pixels;
generating the training data by distributing the plurality of augmented patches on which the registration has been performed across the image of the product;
The region of interest includes a region containing a dent, crush, burr, pin hole, unformed or scratch defect,
Training data generator.
제1항에 있어서,
상기 프로세서는,
상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하고,
상기 관심 영역에 대한 레이블링(labeling)을 수행함으로써 상기 베이스 패치를 획득하는
학습 데이터 생성 장치.
According to claim 1,
The processor is
obtaining a region of interest including an inspection target from the image;
obtaining the base patch by performing labeling on the region of interest
Training data generator.
제1항에 있어서,
상기 프로세서는,
상기 베이스 패치에 대하여 아핀 변환(affine transform)을 수행하고,
아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 상기 복수의 증대된 패치들을 생성하는
학습 데이터 생성 장치.
According to claim 1,
The processor is
performing an affine transform on the base patch,
generating the plurality of augmented patches by performing filtering on the base patch on which the affine transformation has been performed
Training data generator.
제3항에 있어서,
상기 프로세서는,
플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 상기 아핀 변환을 수행하는
학습 데이터 생성 장치.
4. The method of claim 3,
The processor is
performing the affine transformation by performing at least one of flip, padding, scaling, and translation
Training data generator.
제3항에 있어서,
상기 프로세서는,
상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 상기 필터링을 수행하는
학습 데이터 생성 장치.
4. The method of claim 3,
The processor is
The filtering is performed by applying at least one of grayscale change, highlight, blur, and noise to the base patch on which the affine transformation is performed.
Training data generator.
제1항에 있어서,
상기 프로세서는,
상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하고,
상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 상기 학습 데이터를 생성하는
학습 데이터 생성 장치.
According to claim 1,
The processor is
rotating the plurality of augmented patches to produce a plurality of rotated patches;
generating the training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.
Training data generator.
제품의 이미지를 수신하는 수신기;
상기 이미지에 대하여 미리 설정된 스텝(step)만큼의 휘도를 가감함으로써 조명의 밝기가 변화된 이미지를 생성하고,
상기 조명의 밝기가 변화된 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하고,
상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하고, 상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하고,
상기 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 상기 제품의 불량을 검사하는 프로세서
를 포함하고,
상기 프로세서는,
상기 베이스 패치에 컬러 수정, 명암 정규화 및 노이즈 추가를 포함하는 전처리를 수행하고,
복수의 증대 방식에 기초하여 복수의 증대된 패치들을 생성하고,
상기 복수의 증대된 패치를 이용하여 각각의 증대 방식에 대응하는 복수의 검사 성능을 획득하고,
상기 복수의 검사 성능에 기초하여 상기 복수의 증대 방식 중에서 일부 방식을 선택하여 상기 복수의 증대된 패치들을 생성하고,
상기 복수의 증대 방식은 플립(flip), 패딩(padding), 필터링(filtering), 크롭(crop), 히스토그램(histogram) 이동, 노이즈(noise) 추가, 명암(contrast) 변경, 블러링(blurring), 샤프닝(sharpening) 및 스레스홀딩(thresholding)을 포함하고,
회전 각도 및 최대 회전 범위를 결정하고, 결정된 회전 각도 및 최대 회전 범위에 기초하여 상기 복수의 증대된 패치들을 회전시킴으로써 상기 복수의 증대된 패치들을 정합시키고,
정합이 수행된 복수의 증대된 패치들의 끝부분의 픽셀을 주변 픽셀과의 산술 평균 값으로 치환하고,
상기 정합이 수행된 복수의 증대된 패치들을 상기 제품의 이미지 전체에 걸쳐 분포시킴으로써 상기 학습 데이터를 생성하고,
상기 관심 영역은 찍힘, 눌림, 버(burr), 핀 홀(pin hole), 미성형 또는 스크래치(scratch) 불량이 포함된 영역을 포함하는
제품 검사 장치.
a receiver for receiving an image of the product;
Creates an image in which the brightness of illumination is changed by adding or subtracting luminance as much as a preset step with respect to the image,
Obtaining a base patch including a region of interest obtained for inspection of the product from the image in which the brightness of the illumination is changed,
generating a plurality of augmented patches by modifying the base patch, and generating training data for training a neural network to inspect the product by registering the plurality of augmented patches;
A processor for inspecting the defect of the product using a neural network learned based on the learning data
including,
The processor is
performing pre-processing including color correction, contrast normalization, and noise addition to the base patch;
generating a plurality of augmented patches based on the plurality of augmentation schemes;
acquiring a plurality of inspection performance corresponding to each augmentation method by using the plurality of augmented patches;
generating the plurality of augmented patches by selecting some methods from among the plurality of augmentation methods based on the plurality of inspection performance;
The plurality of augmentation methods include flip, padding, filtering, cropping, histogram movement, noise addition, contrast change, blurring, including sharpening and thresholding,
determining a rotation angle and a maximum rotation range, and registering the plurality of augmented patches by rotating the plurality of augmented patches based on the determined rotation angle and maximum rotation range;
substituting the pixel at the end of the plurality of augmented patches for which registration has been performed with an arithmetic mean value with the neighboring pixels;
generating the training data by distributing a plurality of augmented patches on which the registration has been performed over the image of the product;
The region of interest includes a region including a dent, a press, a burr, a pin hole, a non-molding, or a scratch defect.
product inspection device.
제7항에 있어서,
상기 프로세서는,
상기 학습 데이터에 기초하여 상기 뉴럴 네트워크를 학습시키는
제품 검사 장치.
8. The method of claim 7,
The processor is
training the neural network based on the training data
product inspection device.
제품의 이미지를 수신하는 단계;
상기 이미지에 대하여 미리 설정된 스텝(step)만큼의 휘도를 가감함으로써 조명의 밝기가 변화된 이미지를 생성하는 단계;
상기 조명의 밝기가 변화된 이미지로부터 상기 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득하는 단계;
상기 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성하는 단계; 및
상기 복수의 증대된 패치들을 정합(register)시킴으로써 상기 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성하는 단계
를 포함하고,
상기 증대된 패치들을 생성하는 단계는,
상기 베이스 패치에 컬러 수정, 명암 정규화 및 노이즈 추가를 포함하는 전처리를 수행하는 단계; 및
복수의 증대 방식에 기초하여 복수의 증대된 패치들을 생성하는 단계
를 포함하고,
상기 복수의 증대 방식에 기초하여 복수의 증대된 패치들을 생성하는 단계는,
상기 복수의 증대된 패치를 이용하여 각각의 증대 방식에 대응하는 복수의 검사 성능을 획득하는 단계; 및
상기 복수의 검사 성능에 기초하여 상기 복수의 증대 방식 중에서 일부 방식을 선택하여 상기 복수의 증대된 패치들을 생성하는 단계
를 포함하고,
상기 복수의 증대 방식은 플립(flip), 패딩(padding), 필터링(filtering), 크롭(crop), 히스토그램(histogram) 이동, 노이즈(noise) 추가, 명암(contrast) 변경, 블러링(blurring), 샤프닝(sharpening) 및 스레스홀딩(thresholding)을 포함하고,
상기 학습 데이터를 생성하는 단계는,
회전 각도 및 최대 회전 범위를 결정하고, 결정된 회전 각도 및 최대 회전 범위에 기초하여 상기 복수의 증대된 패치들을 회전시킴으로써 상기 복수의 증대된 패치들을 정합시키는 단계;
정합이 수행된 복수의 증대된 패치들의 끝부분의 픽셀을 주변 픽셀과의 산술 평균 값으로 치환하는 단계; 및
상기 정합이 수행된 복수의 증대된 패치들을 상기 제품의 이미지 전체에 걸쳐 분포시킴으로써 상기 학습 데이터를 생성하는 단계
를 포함하고,
상기 관심 영역은 찍힘, 눌림, 버(burr), 핀 홀(pin hole), 미성형 또는 스크래치(scratch) 불량이 포함된 영역을 포함하는,
학습 데이터 생성 방법.
receiving an image of the product;
generating an image in which the brightness of illumination is changed by adding or subtracting luminance as much as a preset step with respect to the image;
obtaining a base patch including a region of interest obtained for inspection of the product from an image in which the brightness of the illumination is changed;
creating a plurality of augmented patches by deforming the base patch; and
Generating training data for training a neural network to inspect the product by registering the plurality of augmented patches
including,
The step of generating the augmented patches comprises:
performing pre-processing including color correction, contrast normalization, and noise addition to the base patch; and
generating a plurality of augmented patches based on the plurality of augmentation schemes;
including,
The step of generating a plurality of augmented patches based on the plurality of augmentation methods comprises:
acquiring a plurality of inspection performances corresponding to each augmentation method by using the plurality of augmented patches; and
generating the plurality of augmented patches by selecting some methods from among the plurality of augmentation methods based on the plurality of inspection performances;
including,
The plurality of augmentation methods include flip, padding, filtering, cropping, histogram movement, noise addition, contrast change, blurring, including sharpening and thresholding,
The step of generating the learning data includes:
determining a rotation angle and a maximum rotational range, and registering the plurality of augmented patches by rotating the plurality of augmented patches based on the determined rotational angle and maximum rotational range;
substituting an arithmetic mean value of pixels at the ends of the plurality of augmented patches on which registration is performed; and
generating the training data by distributing the plurality of augmented patches on which the registration has been performed over the entire image of the product.
including,
The region of interest includes a region containing a dent, crush, burr, pin hole, unformed or scratch defect,
How to generate training data.
제9항에 있어서,
상기 획득하는 단계는,
상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하는 단계; 및
상기 관심 영역에 대한 레이블링(labeling)을 수행함으로써 상기 베이스 패치를 획득하는 단계
를 포함하는 학습 데이터 생성 방법.
10. The method of claim 9,
The obtaining step is
obtaining a region of interest including an examination target from the image; and
obtaining the base patch by labeling the region of interest
A method of generating training data comprising a.
제9항에 있어서,
상기 증대된 패치들을 생성하는 단계는,
상기 베이스 패치에 대하여 아핀 변환(affine transform)을 수행하는 단계; 및
아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성하는 단계
를 포함하는 학습 데이터 생성 방법.
10. The method of claim 9,
The step of generating the augmented patches comprises:
performing an affine transform on the base patch; and
generating a plurality of augmented patches by filtering the base patch on which the affine transformation has been performed
A method of generating training data comprising a.
제11항에 있어서,
상기 아핀 변환을 수행하는 단계는,
플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 상기 아핀 변환을 수행하는 단계
를 포함하는 학습 데이터 생성 방법.
12. The method of claim 11,
The step of performing the affine transformation comprises:
performing the affine transformation by performing at least one of flip, padding, scaling, and translation
A method of generating training data comprising a.
제11항에 있어서,
상기 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성하는 단계는,
상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 상기 필터링을 수행하는 단계
를 포함하는 학습 데이터 생성 방법.
12. The method of claim 11,
The step of generating a plurality of augmented patches by filtering the base patch on which the affine transformation has been performed includes:
performing the filtering by applying at least one of grayscale change, highlight, blur, and noise to the base patch on which the affine transformation is performed
A method of generating training data comprising a.
제9항에 있어서,
상기 학습 데이터를 생성하는 단계는,
상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하는 단계; 및
상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 상기 학습 데이터를 생성하는 단계
를 포함하는 학습 데이터 생성 방법.
10. The method of claim 9,
The step of generating the learning data includes:
rotating the plurality of augmented patches to create a plurality of rotated patches; and
generating the training data by performing interpolation between the plurality of rotated patches and the plurality of augmented patches.
A method of generating training data comprising a.
KR1020200153368A 2020-11-17 2020-11-17 Training data generating apparatus, method for product inspection and product inspection appratus using the training data KR102296511B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200153368A KR102296511B1 (en) 2020-11-17 2020-11-17 Training data generating apparatus, method for product inspection and product inspection appratus using the training data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200153368A KR102296511B1 (en) 2020-11-17 2020-11-17 Training data generating apparatus, method for product inspection and product inspection appratus using the training data

Publications (1)

Publication Number Publication Date
KR102296511B1 true KR102296511B1 (en) 2021-09-02

Family

ID=77794097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200153368A KR102296511B1 (en) 2020-11-17 2020-11-17 Training data generating apparatus, method for product inspection and product inspection appratus using the training data

Country Status (1)

Country Link
KR (1) KR102296511B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102426829B1 (en) * 2021-12-16 2022-07-29 주식회사 인터엑스 Apparatus and method for product surface inspection based Artificial Intelligence

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102094341B1 (en) * 2018-10-02 2020-03-27 한국건설기술연구원 System for analyzing pot hole data of road pavement using AI and for the same
KR20200083303A (en) * 2018-12-27 2020-07-08 (주)제이엘케이 Apparatus and method for increasing learning data using patch matching
CN111640088A (en) * 2020-04-22 2020-09-08 深圳拓邦股份有限公司 Electronic component polarity detection method and system based on deep learning and electronic device
KR102154393B1 (en) * 2018-06-20 2020-09-09 에임시스템 주식회사 Automated defect classification method based on machine learning
KR20200123258A (en) * 2018-03-19 2020-10-28 케이엘에이 코포레이션 Newsons mining to discover new defects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200123258A (en) * 2018-03-19 2020-10-28 케이엘에이 코포레이션 Newsons mining to discover new defects
KR102154393B1 (en) * 2018-06-20 2020-09-09 에임시스템 주식회사 Automated defect classification method based on machine learning
KR102094341B1 (en) * 2018-10-02 2020-03-27 한국건설기술연구원 System for analyzing pot hole data of road pavement using AI and for the same
KR20200083303A (en) * 2018-12-27 2020-07-08 (주)제이엘케이 Apparatus and method for increasing learning data using patch matching
CN111640088A (en) * 2020-04-22 2020-09-08 深圳拓邦股份有限公司 Electronic component polarity detection method and system based on deep learning and electronic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102426829B1 (en) * 2021-12-16 2022-07-29 주식회사 인터엑스 Apparatus and method for product surface inspection based Artificial Intelligence
WO2023113274A1 (en) * 2021-12-16 2023-06-22 주식회사 인터엑스 Ai-based product surface inspection device and method

Similar Documents

Publication Publication Date Title
Bergmann et al. Improving unsupervised defect segmentation by applying structural similarity to autoencoders
US11727670B2 (en) Defect detection method and apparatus
Tabernik et al. Segmentation-based deep-learning approach for surface-defect detection
Zeng et al. Traffic sign recognition using kernel extreme learning machines with deep perceptual features
Shanmugamani et al. Detection and classification of surface defects of gun barrels using computer vision and machine learning
KR102317992B1 (en) Product inspection method and appratus using the neural network and method of training product inspection appratus
TWI743837B (en) Training data increment method, electronic apparatus and computer-readable medium
Di Febbo et al. Kcnn: Extremely-efficient hardware keypoint detection with a compact convolutional neural network
KR102296511B1 (en) Training data generating apparatus, method for product inspection and product inspection appratus using the training data
Avola et al. Real-time deep learning method for automated detection and localization of structural defects in manufactured products
Khellal et al. Pedestrian classification and detection in far infrared images
CN116342536A (en) Aluminum strip surface defect detection method, system and equipment based on lightweight model
US20240095983A1 (en) Image augmentation techniques for automated visual inspection
CN117274662A (en) Lightweight multi-mode medical image classification method for improving ResNeXt neural network
Cruz-Rojas et al. A novel comparison of image semantic segmentation techniques for detecting dust in photovoltaic panels using machine learning and deep learning
KR20240015120A (en) Hyperspectral image visualization method and appratus using neural network
KR102178238B1 (en) Apparatus and method of defect classification using rotating kernel based on machine-learning
Nguyen et al. Defect analysis of inner-wall of pipes by differentiated residual blocks of convolutional neural network
KR102512625B1 (en) Learning method for defect inspection using data augmentation and apparatus performing the same
KR102302341B1 (en) Product inspection method and appratus using based self-supervised learning
Ström et al. Extracting regions of interest and detecting outliers from image data
Cheng et al. Algorithm of Mask-region-based Convolution Neural Networks for Detection of Tire Sidewall Cracks.
You et al. Fabric Defect Detection Based on Improved Faster R-CNN and Two-Step Clustering Method
Patil et al. Metal Surface Defect Classification Using Custom Convolutional Neural Network with Self Attention Mechanism
JP2024068105A (en) Defect detection method and apparatus

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant