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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/84—Systems specially adapted for particular applications
- G01N21/88—Investigating the presence of flaws or contamination
- G01N21/8851—Scan 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/8887—Scan 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
Description
실시예들은 제품 검사를 위한 학습 데이터 생성 장치, 방법 및 그 학습 데이터를 이용한 제품 검사 장치에 관한 것이다.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
제품은 생산 시설에서 임의의 원료를 사용하여 만들어진 물건을 의미할 수 있다. 이미지는 빛의 굴절이나 반사 등에 의하여 이루어진 물체의 상을 포함하는 것으로, 선이나 색채를 이용하여 사물의 형상을 나타낸 것을 의미할 수 있다. 예를 들어, 이미지는 컴퓨터가 처리할 수 있는 형태로 된 정보로 이루어질 수 있다.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
제품 검사 시스템(10)은 학습 데이터 생성 장치(30) 및 제품 검사 장치(50)를 포함한다. 학습 데이터 생성 장치(30)는 제품의 이미지에 기초하여 학습 데이터를 생성하고, 생성한 학습 데이터를 제품 검사 장치로 출력할 수 있다.The
제품 검사 장치(50)는 학습 데이터 및 제품의 이미지에 기초하여 제품을 검사할 수 있다. 제품 검사 장치(50)는 학습 데이터에 기초하여 뉴럴 네트워크를 학습시키고, 학습된 뉴럴 네트워크에 기초하여 제품을 검사함으로써 제품의 불량 검사 결과를 생성할 수 있다.The
뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.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
학습 데이터 생성 장치(30)는 심층 뉴럴 네트워크를 학습시키기에 충분한 수의 데이터를 생성함으로써 뉴럴 네트워크의 과적합(overfitting) 문제를 해결할 수 있다.The training
산업 제품(예를 들어, 원통형 전지, 타이어 또는 부품 등)의 불량의 형태는 일반적인 경우와는 달리, 일정한 패턴이 부품이나 제품 전체에 걸쳐 존재하는 형태를 가질 수 있다.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
제품 검사 장치(50)는 제품의 이미지 및 학습 데이터에 기초하여 제품을 검사할 수 있다. 제품 검사 장치(50)는 주어진 데이터(예를 들어, 제품 이미지)를 제품 이미지에 포함된 양품 또는 불량품 이미지에서 각각의 특징을 딥러닝 알고리즘에 기초하여 찾아낼 수 있다.The
제품 검사 장치(50)는 불량 이미지가 기존의 불량 제품 또는 부품 이미지와 상이한 경우도 미리 학습한 뉴럴 네트워크로부터 추출한 특징에 기초하여 합리적으로 불량 여부를 판단할 수 있다. 이를 통해, 제품 검사 장치(50)는 종래의 룰 기반 방식에 비하여 지능적이고 유연하게 제품의 검사를 수행할 수 있다.Even when the defective image is different from the existing defective product or part image, the
학습 데이터 생성 장치(30)와 제품 검사 장치(50)는 하나의 하드웨어로 구현되거나 별도의 하드웨어 상에 구현될 수 있다. 예를 들어, 학습 데이터 생성 장치(30)와 제품 검사 장치(50)는 하나의 프로세서(500) 및 메모리(600)를 이용하여 구현될 수 있다.The learning
다시 말해, 학습 데이터 생성 장치(30) 및 제품 검사 장치(50)는 각각 모듈(module)의 형태로 구현될 수 있다.In other words, the learning
학습 데이터 생성 장치(30)는 수신기(100), 프로세서(200)를 포함한다. 학습 데이터 생성 장치(30)는 메모리(300)를 더 포함할 수 있다. 제품 검사 장치(50)는 수신기(400), 프로세서(500)를 포함한다. 제품 검사 장치(50)는 메모리(600)를 더 포함할 수 있다.The training
수신기(100, 400)는 수신 인터페이스를 포함할 수 있다. 수신기(100, 400)는 제품의 이미지를 수신할 수 있다. 수신기(100, 400)는 외부 또는 메모리(300, 600)로부터 제품의 이미지를 수신할 수 있다. 수신기(100, 400)는 프로세서(200, 500)로 제품의 이미지를 출력할 수 있다.The
프로세서(200, 500)는 메모리(300, 600)에 저장된 데이터를 처리할 수 있다. 프로세서(200, 500)는 메모리(300, 600)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200, 500)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The
"프로세서(200, 500)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.“
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(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
프로세서(200, 500)는 제품의 이미지로부터 검사 대상(inspection object)을 포함하는 관심 영역을 획득할 수 있다. 프로세서(200, 500)는 획득한 관심 영역에 대한 레이블링(labeling)을 수행함으로써 베이스 패치를 획득할 수 있다.The
프로세서(200, 500)는 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성할 수 있다. 프로세서(200, 500)는 베이스 배치에 대하여 아핀 변환(affine transform)을 수행할 수 있다.The
프로세서(200, 500)는 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The
프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다. 프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The
프로세서(200, 500)가 베이스 패치를 변형하여 복수의 증대된 패치들을 생성하는 과정은 도 4를 참조하여 자세하게 설명한다.A process in which the
프로세서(200, 500)는 복수의 증대된 패치들을 정합(register)시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다.The
프로세서(200, 500)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 프로세서(200, 500)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The
프로세서(200, 500)는 학습 데이터에 기초하여 뉴럴 네트워크를 학습시킬 수 있다. 프로세서(200, 500)는 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 제품의 불량을 검사할 수 있다.The
메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The
메모리(300)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The
휘발성 메모리 장치는 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
입출력 데이터 관리기(510)는 메모리(600)에 검사 결과를 저장하거나, 학습 이미지 및 캡처된 검사 이미지(또는, 제품의 이미지)를 수신할 수 있다.The input/
학습 데이터 생성기(530)는 제품의 이미지에 기초하여 학습 데이터를 생성할 수 있다. 학습 데이터 생성기(530)는 제품의 이미지로부터 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치를 획득할 수 있다.The learning
학습 데이터 생성기(530)는 제품의 불량의 유형에 따라 제품의 이미지를 분류할 수 있다. 학습 데이터 생성기(530)는 분류된 제품의 이미지에 기초하여 관심 영역을 포함하는 베이스 패치를 획득할 수 있다.The learning
학습 데이터 생성기(530)는 제품의 이미지로부터 검사 대상을 포함하는 관심 영역을 획득할 수 있다. 학습 데이터 생성기(530)는 획득한 관심 영역에 대한 레이블링을 수행함으로써 베이스 패치를 획득할 수 있다.The learning
학습 데이터 생성기(530)는 베이스 패치를 변형시킴으로써 복수의 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 베이스 배치에 대하여 아핀 변환을 수행할 수 있다. 학습 데이터 생성기(530)는 플립, 패딩, 스케일링, 평행이동 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The
학습 데이터 생성기(530)는 아핀 변환이 수행된 베이스 패치에 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 아핀 변환이 수행된 베이스 패치에 그레이스케일 변경, 하이라이트, 블러, 노이즈 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The
학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다.The
학습 데이터 생성기(530)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간을 수행함으로써 학습 데이터를 생성할 수 있다.The
딥러닝 알고리즘 학습기(550)는 생성된 학습 데이터에 기초하여 뉴럴 네트워크를 학습시킬 수 있다. The deep
검사 모델 및 판독기(570)는 학습된 뉴럴 네트워크에 기초하여 제품에 대한 검사를 수행할 수 있다. 검사 모델 및 판독기(570)는 학습 데이터에 기초하여 학습된 뉴럴 네트워크를 이용하여 제품의 불량을 검사할 수 있다.The inspection model and
검사 모델 및 판독기(570)는 제품의 검사 결과를 입출력 데이터 관리기(510)로 출력하고, 입출력 데이터 관리기(510)는 메모리(600)에 검사 결과를 저장할 수 있다. 상술한 것과 같이, 검사 결과는 제품의 불량 여부에 관한 정보, 제품의 불량의 위치, 제품의 불량의 크기, 제품의 불량의 유형 등을 포함할 수 있다.The test model and
도 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
학습 데이터 생성기(530)는 조명 변화에 따른 이미지를 캡처할 수 있다(310). 예를 들어, 학습 데이터 생성기(530)는 조명의 세기(조도) 또는 조명의 방향 변화(예를 들어, 좌 우, 위, 아래)에 따른 이미지를 캡처할 수 있다.The
학습 데이터 생성기(530)는 미리 설정된 스텝(step)만큼의 휘도를 가감함으로써 조명의 밝기가 변화된 이미지를 생성할 수 있다. 학습 데이터 생성기(530)는 이미지의 상하좌우의 시작 부분의 픽셀 값과 끝부분의 픽셀값이 일정한 기울기를 갖도록 조절함으로써 조명의 방향이 변화된 이미지를 생성할 수 있다.The learning
학습 데이터 생성기(530)는 캡처된 이미지로부터 관심 영역을 획득할 수 있다. 관심 영역은 찍힘, 눌림, 버(burr), 핀 홀(pin hole), 미성형 또는 스크래치(scratch) 불량이 포함된 영역을 의미할 수 있다.The
학습 데이터 생성기(530)는 관심 영역을 크롭(crop)하여 분리할 수 있다. 이 때, 분리된 관심 영역은 바운딩 박스(bounding box)의 형태 또는 인스턴스 세그멘테이션(instance segmentation)의 형태를 가질 수 있다.The
학습 데이터 생성기(530)는 분리된 관심 영역에 기초하여 베이스 패치를 생성할 수 있다(320). 학습 데이터 생성기(530)는 분리된 관심 영역에 대하여 레이블링을 수행할 수 있다. 학습 데이터 생성기(530)는 분리된 관심 영역을 양품인지 불량품인지 여부 또는 불량의 형태에 따라 분류하여 레이블링을 수행할 수 있다.The
학습 데이터 생성기(530)는 베이스 패치를 변형시킴으로써 증대된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 베이스 패치에 대하여 플립(flip), 패딩(padding), 필터링(filtering), 크롭(crop), 히스토그램(histogram) 이동, 노이즈(noise) 추가, 명암(contrast) 변경, 블러링(blurring), 샤프닝(sharpening) 또는 스레스홀딩(thresholding) 등의 변형을 수행할 수 있다. 증대를 수행하는 동작은 도 4를 참조하여 보다 자세하게 설명한다.The
학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킬 수 있다(340). 학습 데이터 생성기(530)는 복수의 증대된 패치들에 대하여 회전 및 보간을 수행할 수 있다.The
학습 데이터 생성기(530)는 회전 각도 및 최대 회전 범위를 결정하고, 결정된 회전 각도 및 최대 회전 범위에 기초하여 복수의 증대된 패치들을 회전시킬 수 있다.The
학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간을 수행할 수 있다.The
학습 데이터 생성기(530)는 상술한 학습 데이터 생성 과정을 전체 제품(또는, 부품)의 이미지에 대하여 반복적으로 수행할 수 있다(350). 학습 데이터 생성기(530)는 제품의 이미지에 대하여 복사 위치와 범위를 선정하여 상술한 학습 데이터 생성 과정을 반복할 수 있다. 예를 들어, 학습 데이터 생성기(530)는 부품이나 제품 전체, 제품의 테두리, 제품의 가운데 또는 사용자가 지정한 범위에 대하여 베이스 패치를 생성하여 학습 데이터 생성 동작을 반복할 수 있다.The learning
학습 데이터 생성기(530)는 310 내지 350의 동작을 도 3b의 예시와 같이 트리 구조를 이용하여 수행함으로써 학습 데이터를 빠른 속도로 증가시킬 수 있다.The
도 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
컬러 수정(또는, 컬러 보정)은 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
플립은 전처리된 베이스 패치를 좌우로 뒤집는 변환을 의미할 수 있고, 스케일링은 전처리된 베이스 패치의 크기를 조절하는 변환을 의미할 수 있다. 패딩은 전처리된 베이스 패치의 가장자리를 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
학습 데이터 생성기(530)는 증대를 수행함으로써 학습의 성능을 향상시킬 수 있다. 학습 데이터 생성기(530)는 위에서 설명한 증대 방법 중 일부를 선택적으로 수행함으로써 학습을 효율적으로 수행할 수 있다.The learning
또한, 프로세서(500)는 증대 방법을 모두 적용하여 생성된 학습 데이터에 기초하여 제품을 검사하고, 검사 성능이 상대적으로 높은 증대 방법만을 선택적으로 수행하여 학습 데이터를 생성할 수 있다.In addition, the
다양한 제조 공정에서 부품 또는 제품의 이미지들이 고정된 위치에서 캡쳐되는 경우에는 이미지 전체를 플립시키거나 회전시키는 방법은 실제 제품 검사 상황과 상이하고, 발생될 가능성이 낮기 때문에, 관심 영역에 대해서만 데이터의 변형을 수행하는 것이 더 효율적일 수 있다.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
학습 데이터 생성기(530)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 학습 데이터 생성기(530)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The
학습 데이터 생성기(530)는 복수의 증대된 패치들을 정합시킴으로써 유사한 위치에 발생하거나 유사한 형태를 갖는 불량을 검사하기 위한 학습 데이터를 생성할 수 있다.The
학습 데이터 생성기(530)는 수학식 1을 이용하여 복수의 증대된 패치들을 회전시킬 수 있다.The
여기서, 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
학습 데이터 생성기(530)는 정합을 거친 각각의 배치들이 제품 또는 부품 이미지의 전체에 걸쳐 분포될 수 있도록 새로운 학습 데이터를 생성할 수 있다. 도 5의 예시에서, 바운딩 박스(bounding box) 형태의 패치는 이미지의 해당 위치에 리플레이(replace) 개념으로 치환될 수 있다. 가장 끝부분의 픽셀은 이미지의 주변 픽셀과의 산술 평균 값으로 치환될 수 있다.The
객체(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
도 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
프로세서(200, 500)는 이미지로부터 제품의 검사를 위해 획득된 관심 영역을 포함하는 베이스 패치(base patch)를 획득할 수 있다. 프로세서(200, 500)는 이미지로부터 검사 대상을 포함하는 관심 영역을 획득할 수 있다. 프로세서(200, 500)는 관심 영역에 대한 레이블링(labeling)을 수행함으로써 베이스 패치를 획득할 수 있다.The
프로세서(200, 500)는 베이스 패치를 변형시킴으로써 복수의 증대된(augmented) 패치들을 생성할 수 있다.The
프로세서(200, 500)는 베이스 배치에 대하여 아핀 변환(affine transform)을 수행할 수 있다. 프로세서(200, 500)는 플립(flip), 패딩(padding), 스케일링(scaling), 평행이동(translate) 중 적어도 하나를 수행함으로써 아핀 변환을 수행할 수 있다.The
프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성할 수 있다.The
프로세서(200, 500)는 아핀 변환이 수행된 베이스 패치에 그레이스케일(grayscale) 변경, 하이라이트(highlight), 블러(blur), 노이즈(noise) 중 적어도 하나를 적용함으로써 필터링을 수행할 수 있다.The
프로세서(200, 500)는 복수의 증대된 패치들을 정합(register)시킴으로써 제품을 검사하는 뉴럴 네트워크를 학습시키기 위한 학습 데이터를 생성할 수 있다. 프로세서(200, 500)는 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성할 수 있다. 프로세서(200, 500)는 복수의 회전된 패치와 복수의 증대된 패치들 사이의 보간(interpolation)을 수행함으로써 학습 데이터를 생성할 수 있다.The
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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.
상기 프로세서는,
상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하고,
상기 관심 영역에 대한 레이블링(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.
상기 프로세서는,
상기 베이스 패치에 대하여 아핀 변환(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.
상기 프로세서는,
플립(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.
상기 프로세서는,
상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(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.
상기 프로세서는,
상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하고,
상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(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.
상기 프로세서는,
상기 학습 데이터에 기초하여 상기 뉴럴 네트워크를 학습시키는
제품 검사 장치.
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.
상기 획득하는 단계는,
상기 이미지로부터 검사 대상을 포함하는 관심 영역을 획득하는 단계; 및
상기 관심 영역에 대한 레이블링(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.
상기 증대된 패치들을 생성하는 단계는,
상기 베이스 패치에 대하여 아핀 변환(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.
상기 아핀 변환을 수행하는 단계는,
플립(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.
상기 아핀 변환이 수행된 베이스 패치를 필터링을 수행함으로써 복수의 증대된 패치들을 생성하는 단계는,
상기 아핀 변환이 수행된 베이스 패치에 그레이스케일(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.
상기 학습 데이터를 생성하는 단계는,
상기 복수의 증대된 패치들을 회전시켜 복수의 회전된 패치들을 생성하는 단계; 및
상기 복수의 회전된 패치와 상기 복수의 증대된 패치들 사이의 보간(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.
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)
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)
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 |
-
2020
- 2020-11-17 KR KR1020200153368A patent/KR102296511B1/en active IP Right Grant
Patent Citations (5)
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)
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 |