KR102489115B1 - 제조품의 비전 검사를 위한 심층 학습 방법 및 장치 - Google Patents

제조품의 비전 검사를 위한 심층 학습 방법 및 장치 Download PDF

Info

Publication number
KR102489115B1
KR102489115B1 KR1020220003858A KR20220003858A KR102489115B1 KR 102489115 B1 KR102489115 B1 KR 102489115B1 KR 1020220003858 A KR1020220003858 A KR 1020220003858A KR 20220003858 A KR20220003858 A KR 20220003858A KR 102489115 B1 KR102489115 B1 KR 102489115B1
Authority
KR
South Korea
Prior art keywords
defective
images
dnn
output
patch images
Prior art date
Application number
KR1020220003858A
Other languages
English (en)
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 KR1020220003858A priority Critical patent/KR102489115B1/ko
Application granted granted Critical
Publication of KR102489115B1 publication Critical patent/KR102489115B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/809Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

제조품의 비전 검사를 위한 심층 학습 방법이 개시된다. 개시된 방법은, 복수의 입력 패치(patch) 영상을 준비하는 단계 - 상기 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하며 상기 K 및 상기 M은 자연수임 -, 상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계, 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계를 포함할 수 있다.

Description

제조품의 비전 검사를 위한 심층 학습 방법 및 장치{Method and Apparatus for Deep Machine Learning for Vision Inspection of a Manufactured Product}
아래의 개시는 제조품 검사(product inspection) 기술에 관한 것이다.
일반적인 비전 검사 시스템은 적어도 하나의 카메라를 이용하여 생산된 제조품의 영상을 획득한 후 이를 바탕으로 해당 제조품이 불량인지 아닌지를 판정하는 시스템으로 알려져 있다. 최근에는 심층 학습 모델을 이용하여 비전 검사 시스템을 구성하기 위한 다양한 연구가 진행되고 있다. 그러나 불량 부분이 차지하는 면적의 비율이 시료 전체에서 매우 낮고, 불량 시료의 수가 정상 시료의 수보다 매우 적고, 찍힘, 파손, 파편 등 모양과 크기가 균일하지 않은 불량 유형들이 다수 존재하는 제조품들의 특징들로 인해 제조품의 불량을 검출하는 딥러닝 모델을 학습시키는 것이 여의치 않은 실정이다.
본 개시에 의해 해결하고자 하는 과제는 제조업에서 생산되는 제조품의 비전 검사에 적합한 심층 학습 방법 및 장치를 제공하는 것이다.
본 개시에 의해 해결하고자 하는 과제는 이상에서 언급한 과제들에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 특징에 따르면, 제조품의 비전 검사를 위한 심층 학습 방법이 제공된다. 본 방법은, 복수의 입력 패치(patch) 영상을 준비하는 단계 - 상기 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하며 상기 K 및 상기 M은 자연수임 -, 상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계, 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 입력 패치(patch) 영상을 준비하는 단계는, 복수의 입력 영상 중에서 제조품의 불량 부분을 나타내는 영역을 포함하는 K개의 영상을 불량품 영상으로 분류하는 단계, 및 상기 K개의 불량품 영상에서 제조품의 불량 부분을 나타내는 영역을 포함하는 패치들을 각각 추출하여 상기 K개의 불량품 패치 영상을 준비하는 단계를 포함한다.
일 실시예에서, 상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계는, 상기 K개의 불량품 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제1 출력 영상들이 순차적으로 출력되도록 하는 단계, 및 상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 상기 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하는 단계를 포함한다.
일 실시예에서, 상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고, 상기 제1 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타낸다.
일 실시예에서, 상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 상기 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하는 단계는, 아래의 수학식
Figure 112022003453834-pat00001
- 여기서 L은 제1 손실 함수를 나타내고,
Figure 112022003453834-pat00002
는 손실 함수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00003
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00004
은 상기 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00005
는 상기 제1 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제1 손실 함수를 정의하는 단계를 포함한다.
일 실시예에서, 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계는, 상기 복수의 입력 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제2 출력 영상들이 순차적으로 출력되도록 하는 단계, 및 상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하는 단계를 포함한다.
일 실시예에서, 상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고, 상기 제2 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타낸다.
일 실시예에서, 상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하는 단계는, 아래의 수학식들
Figure 112022003453834-pat00006
Figure 112022003453834-pat00007
- 여기서 L은 제2 손실 함수를 나타내고,
Figure 112022003453834-pat00008
는 손실 함수를 나타내고,
Figure 112022003453834-pat00009
는 입력 패치 영상들에서 제조품의 양호 부분을 나타내는 픽셀들의 개수를 나타내고,
Figure 112022003453834-pat00010
는 입력 패치 영상들에서의 픽셀들의 총 개수를 나타내고,
Figure 112022003453834-pat00011
는 상기 제2 출력 영상에서 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀들의 개수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00012
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00013
은 상기 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00014
는 상기 제2 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제2 손실 함수를 정의하는 단계를 포함한다.
일 실시예에서, 상기 방법은, 상기 복수의 입력 패치 영상의 패치 크기를 변경하여서 상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계를 반복하는 단계를 더 포함한다.
본 개시의 다른 특징에 따르면, 제조품의 비전 검사를 위한 심층 학습을 수행하기 위한 장치가 제공된다. 본 장치는, 복수의 입력 패치 영상을 저장하는 데이터베이스부 - 상기 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하며 상기 K 및 상기 M은 자연수임 -, 및 상기 데이터베이스부에 통신가능한 방식으로 결합되며, DNN을 구현하며, 상기 데이터베이스부로부터 상기 K개의 불량품 패치 영상을 검색하여 상기 검색된 K개의 불량품 패치 영상을 이용하여 상기 DNN을 학습시키고, 상기 데이터베이스부로부터 상기 복수의 입력 패치 영상을 검색하여 상기 검색된 복수의 입력 패치 영상을 이용하여 상기 DNN을 더 학습시키도록 구성된 프로세싱 엔진을 포함할 수 있다.
일 실시예에서, 상기 프로세싱 엔진은, 복수의 입력 영상 중에서 제조품의 불량 부분을 나타내는 영역을 포함하는 K개의 영상을 불량품 영상으로 분류하고, 상기 K개의 불량품 영상에서 제조품의 불량 부분을 나타내는 영역을 포함하는 패치들을 각각 추출하여 상기 K개의 불량품 패치 영상을 준비하도록 더 구성된다.
일 실시예에서, 상기 프로세싱 엔진은, 상기 K개의 불량품 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제1 출력 영상들이 순차적으로 출력되도록 하고, 상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 상기 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하도록 더 구성된다.
일 실시예에서, 상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고, 상기 제1 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타낸다.
일 실시예에서, 상기 프로세싱 엔진은, 아래의 수학식
Figure 112022003453834-pat00015
- 여기서 L은 제1 손실 함수를 나타내고,
Figure 112022003453834-pat00016
는 손실 함수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00017
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00018
은 상기 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00019
는 상기 제1 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제1 손실 함수를 정의하도록 더 구성된다.
일 실시예에서, 상기 프로세싱 엔진은, 상기 복수의 입력 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제2 출력 영상들이 순차적으로 출력되도록 하고, 상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하도록 더 구성된다.
일 실시예에서, 상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고, 상기 제2 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타낸다.
일 실시예에서, 상기 프로세싱 엔진은, 아래의 수학식들
Figure 112022003453834-pat00020
Figure 112022003453834-pat00021
- 여기서 L은 제2 손실 함수를 나타내고,
Figure 112022003453834-pat00022
는 손실 함수를 나타내고,
Figure 112022003453834-pat00023
는 입력 패치 영상들에서 제조품의 양호 부분을 나타내는 픽셀들의 개수를 나타내고,
Figure 112022003453834-pat00024
는 입력 패치 영상들에서의 픽셀들의 총 개수를 나타내고,
Figure 112022003453834-pat00025
는 상기 제2 출력 영상에서 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀들의 개수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00026
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00027
은 상기 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00028
는 상기 제2 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제2 손실 함수를 정의하도록 더 구성된다.
일 실시예에서, 상기 프로세싱 엔진은, 상기 복수의 입력 패치 영상의 패치 크기를 변경하여서 상기 K개의 불량품 패치 영상을 이용하여 DNN을 학습시키는 동작 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 더 학습시키는 동작을 반복 수행하도록 더 구성된다.
개시된 실시예들에 따르면, 제조업에서 생산되는 제조품의 비전 검사에 적합한 심층 학습 방법 및 장치를 제공할 수 있게 되는 기술적 효과가 있다.
도 1은 제조품의 비전 검사를 위한 심층 학습을 수행하기 위한 장치의 일 실시예의 블록도를 도시한 도면이다.
도 2는 입력 영상으로부터 불량품 패치 영상 및 양품 패치 영상을 구성하는 개념을 설명하기 위한 개념도이다.
도 3은 제조품의 비전 검사를 위한 심층 학습 방법의 일 실시예를 설명하기 위한 흐름도를 도시한 도면이다.
도 4는 도 3에서의 단계(S320)에 대한 상세 흐름도를 도시한 도면이다.
도 5는 도 3에서의 단계(S330)에 대한 상세 흐름도를 도시한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 개시의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
"제1" 또는 "제2" 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, "제1 구성요소"는 "제2 구성요소"로 명명될 수 있고, 유사하게 "제2 구성요소"는 "제1 구성요소"로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 개시에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 제조품의 비전 검사를 위한 심층 학습을 수행하기 위한 장치의 일 실시예의 블록도를 도시한 도면이다.
도 1에 도시된 바와 같이, 심층 학습 수행 장치(100)는 데이터베이스부(110)를 포함할 수 있다. 데이터베이스부(110)는 학습 데이터를 저장할 수 있다. 학습 데이터는 생산된 제조품들을 나타내는 복수의 입력 영상을 포함할 수 있다. 학습 데이터는 복수의 입력 패치(patch) 영상을 더 포함할 수 있다. 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함할 수 있는데, 여기서 K 및 M은 자연수이다. 불량품 패치 영상은 생산된 제조품들 중에서 불량품을 촬영한 입력 영상에서 불량 부분을 나타내는 영역을 추출하여 구성한 영상일 수 있다. 일 실시예에서, 불량품 패치 영상은 제조품의 불량 부분을 나타내는 64 x 64 사이즈, 128 x 128 사이즈 또는 256 x 256 사이즈의 패치 영상이다. 양품 패치 영상은 생산된 제조품을 촬영한 입력 영상에서 양호 부분을 나타내는 영역을 추출하여 구성한 영상일 수 있다. 양품 패치 영상은 불량품 패치 영상과 동일 사이즈의 영상일 수 있다. 데이터베이스부(110)는 생산된 제조품들을 나타내는 복수의 입력 영상을 기초로 하여 생성되는 다양한 종류의 영상들 및 관련 데이터를 저장하기 위해 사용될 수 있다. 데이터베이스부(110)는, 플래시 메모리 타입(flash memory type), 하드 디스크 타입(hard disk type), 멀티미디어 카드(MultiMedia Card: MMC), 카드 타입의 메모리(예를 들어, SD(Secure Digital) 카드 또는 XD(eXtream Digital) 카드 등), RAM(Random Access Memory), SRAM(Static Random Access Memory), ROM(Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크 및 광 디스크 중 어느 하나의 저장 매체로 구현될 수 있으나, 당업자라면 데이터베이스부(110)의 구현 형태가 이에 한정되는 것이 아님을 알 수 있을 것이다.
심층 학습 수행 장치(100)는 데이터베이스부(110)에 통신가능한 방식으로 결합된 프로세싱 엔진(120)을 더 포함할 수 있다. 프로세싱 엔진(120)은 데이터베이스부(110)로부터 복수의 입력 영상을 검색하고 이를 이용하여 복수의 입력 패치 영상을 구성한 후 구성된 복수의 입력 패치 영상을 다시 데이터베이스부(110)에 저장하도록 구성될 수 있다. 전술한 바와 같이 복수의 입력 패치 영상은 불량품 패치 영상들 및 양품 패치 영상들을 포함할 수 있다. 입력 영상으로부터 불량품 패치 영상 및 양품 패치 영상을 구성하는 개념을 설명하기 위한 개념도인 도 2를 참조하면, 프로세싱 엔진(120)은 입력 영상들 중 불량품을 나타내는 불량품 영상들(210)의 각각에서 불량의 중심점에 해당하는 영상 좌표계에서의 좌표를 식별하고 해당 불량품 영상(210)에서 식별된 좌표를 중심으로 하는 패치를 잘라냄으로써 불량품 패치 영상(220)을 구성할 수 있다. 예컨대 패치 사이즈가 128 x 128로 설정되어 있고 프로세싱 엔진(120)이 불량의 중심점에 해당하는 영상 좌표계에서의 좌표가 (500, 1,000)인 것으로 식별하는 경우, 프로세싱 엔진(120)은 불량품 영상(210)에서 x축으로 436번째 픽셀부터 564번째 픽셀까지 커버하고 y축으로 936번째 픽셀부터 1,064번째 픽셀까지를 커버하는 패치를 잘라내어 불량품 패치 영상(220)으로서 구성할 수 있다. 불량품 패치 영상의 크기는 제조품의 불량 부분의 크기 및 모양을 고려하여 불량 부분을 충분히 포함할 수 있도록 결정될 수 있다. 이와 같이 입력 영상 보다 사이즈를 작게 그리고 불량 부분 위주로 불량 패치 영상을 구성하는 이유는, 일반적으로 제조품에서 불량 부분이 차지하는 면적은 제조품의 전체 면적에 비해 매우 작고 그 때문에 눈에 보이지 않는 마이크로미터 단위의 불량 부분을 검출하기 위해 해상도가 높은 카메라를 활용하게 되는데 이 경우 수많은 개수의 픽셀들을 가진 영상에서 불량 부분을 나타내는 영역은 수십 개의 픽셀 정도로 이루어지므로 입력 영상 전체를 학습 데이터로 학습할 경우 영상의 모든 영역을 양호 부분으로 예측하는 편향이 발생할 수 있기 때문이다. 불량 부분을 주로 커버하는 불량 패치 영상들을 학습에 사용함으로써 불량 부분에 집중하여 모델 학습을 수행하는 것이 가능해지고 이에 따라 고해상도의 영상에서도 작은 크기의 불량도 검출해 낼 수 있게 된다. 프로세싱 엔진(120)은 생산된 제조품을 촬영한 입력 영상들(210)에서 양호 부분을 나타내는 영역들을 마찬가지로 추출하여 양품 패치 영상들(230)을 구성하도록 구성될 수 있다. 전술한 바와 같이 양품 패치 영상(230)은 불량품 패치 영상(220)과 동일 사이즈의 영상일 수 있다.
프로세싱 엔진(120)은 심층학습 모듈인 DNN(Deep Neural Network, 124)을 구현하며 데이터베이스부(110)에 저장된 학습 데이터를 이용하여 DNN(124)을 학습시키도록 더 구성될 수 있다. 일 실시예에서 DNN(124)은 복수의 컨볼루션 레이어(convolution layers)로 구현된다. 프로세싱 엔진(120)은 데이터베이스부(110)로부터 K개의 불량품 패치 영상(220)을 검색하여 검색된 K개의 불량품 패치 영상(220)을 이용하여 DNN(124)을 학습시키도록 구성될 수 있다. 프로세싱 엔진(120)은 K개의 불량품 패치 영상(220)을 하나씩 DNN(124)으로 입력하여 DNN(124)으로부터 제1 출력 영상들이 순차적으로 출력되도록 하고, DNN(124)으로부터 제1 출력 영상이 하나씩 출력될 때마다 제1 출력 영상 및 해당 불량품 패치 영상(220)을 기초로 제1 손실 함수(loss function)를 정의하고, 예컨대 경사하강법(gradient descent method)에 근거하여 제1 손실 함수가 최소화되도록 DNN(124)의 가중치들(weights)이 반복 갱신되게 제어하도록 구성될 수 있다. K개의 불량품 패치 영상(220)에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류될 수 있다. 일 실시예에서, 제조품의 불량은 찍힘 불량 유형, 파손 불량 유형 및 파편 불량 유형으로 분류될 수 있으나, 분류 가능한 제조품의 불량 유형이 이에 한정되는 것은 아니다. 또한 제1 출력 영상들의 각각은 복수의 픽셀들을 가지며, 복수의 픽셀들의 각각은 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 해당 픽셀이 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타낼 수 있다. 프로세싱 엔진(120)은 아래의 수학식 1에 따라 제1 손실 함수를 정의하도록 더 구성될 수 있다.
Figure 112022003453834-pat00029
여기서 L은 제1 손실 함수를 나타내고,
Figure 112022003453834-pat00030
는 손실 함수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00031
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00032
은 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00033
는 제1 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타낸다. 손실 함수
Figure 112022003453834-pat00034
는 일반적으로 사용되는 엔트로피(entropy) 등의 손실 함수일 수 있다.
Figure 112022003453834-pat00035
는 해당 유형의 불량에 대해 얼마나 충분히 학습될 필요가 있는지에 따라 적절히 결정될 수 있다.
Figure 112022003453834-pat00036
가 파손 불량 유형에 대한 가중치라고 가정하는 경우, 생산된 제조품들에 파손 불량이 많은 경우 파손 불량에 대해 충분히 학습시키기 위해
Figure 112022003453834-pat00037
를 0.8 이상의 높은 값으로 설정할 수 있다. 제1 출력 영상에서의 특정 픽셀이 해당 픽셀이 두 번째 불량 유형에 속하는 픽셀임을 나타내고 해당 불량품 패치 영상에서의 대응하는 픽셀도 두 번째 불량 유형에 속하는 픽셀인 경우, 제1 출력 영상에서의 특정 픽셀은 두 번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀이므로
Figure 112022003453834-pat00038
를 1 증가시키다. 제1 손실 함수 L에서 손실 함수
Figure 112022003453834-pat00039
에 0을 대입한 이유는 학습 초반에 불량에 대한 충분한 학습이 이루어질 수 있도록 하기 위함이다.
프로세싱 엔진(120)은 데이터베이스부(110)로부터 복수의 입력 패치 영상(220, 230)을 검색하여 검색된 복수의 입력 패치 영상(220, 230)을 이용하여 DNN(124)을 더 학습시키도록 구성될 수 있다. 전술한 바와 같이 복수의 입력 패치 영상(220, 230)은 K개의 불량품 패치 영상(220) 및 M개의 양품 패치 영상(230)을 포함할 수 있다. 프로세싱 엔진(120)은 복수의 입력 패치 영상(220, 230)을 하나씩 DNN(124)으로 입력하여 DNN(124)으로부터 제2 출력 영상들이 순차적으로 출력되도록 하고, DNN(124)으로부터 제2 출력 영상이 하나씩 출력될 때마다 제2 출력 영상 및 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고, 예컨대 경사하강법에 근거하여 제2 손실 함수가 최소화되도록 DNN(124)의 가중치들이 반복 갱신되게 제어하도록 더 구성될 수 있다. 입력 패치 영상들(220, 230) 내에서 제조품의 불량 부분을 나타내는 픽셀들의 비율이 매우 낮기 때문에, DNN(124)이 제조품의 양호 부분을 나타내는 것으로 정확히 예측하지 못했을 경우 주는 가중치를 DNN(124)이 제조품의 불량 부분을 나타내는 것으로 정확히 예측하지 못했을 경우 주는 가중치에 비해 적게 설정할 수 있다. 프로세싱 엔진(120)은 아래의 수학식 2 및 수학식 3에 따라 제2 손실 함수를 정의하도록 더 구성될 수 있다.
Figure 112022003453834-pat00040
Figure 112022003453834-pat00041
여기서 L은 제2 손실 함수를 나타내고,
Figure 112022003453834-pat00042
는 손실 함수를 나타내고,
Figure 112022003453834-pat00043
는 입력 패치 영상들(220, 230)에서 제조품의 양호 부분을 나타내는 픽셀들의 개수를 나타내고,
Figure 112022003453834-pat00044
는 입력 패치 영상들에서의 픽셀들의 총 개수를 나타내고,
Figure 112022003453834-pat00045
는 제2 출력 영상에서 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀들의 개수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
Figure 112022003453834-pat00046
는 i번째 불량 유형에 대한 가중치를 나타내고,
Figure 112022003453834-pat00047
은 복수의 불량 유형의 개수를 나타내고,
Figure 112022003453834-pat00048
는 제2 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타낸다.
Figure 112022003453834-pat00049
는 입력 패치 영상(220, 230)의 너비, 높이, 채널 수 및 입력 패치 영상들(220, 230)의 개수에 따라 결정될 수 있다. 채널 수는 입력 패치 영상(220, 230)이 RGB 영상인 경우 3이고 입력 패치 영상(220, 230)이 B/W 영상인 경우 1일 수 있다. 예컨대 입력 패치 영상(220, 230)의 너비 및 높이가 모두 128이고, 채널 수가 3이고, 입력 패치 영상들(220, 230)의 개수가 1,000인 경우,
Figure 112022003453834-pat00050
는 128 x 128 x 3 x 1,000 = 49,152,000이다.
Figure 112022003453834-pat00051
는 입력 패치 영상들(220, 230)에서 제조품의 양호 부분을 나타내는 픽셀들의 개수
Figure 112022003453834-pat00052
가 많으면 적어지고 해당 개수가 적으면 커지는 값이다. 제2 출력 영상에서의 특정 픽셀이 해당 픽셀이 제조품의 양호 부분에 속하는 픽셀임을 나타내고 해당 입력 패치 영상에서의 대응하는 픽셀도 양호 부분에 속하는 픽셀인 경우, 제2 출력 영상에서의 특정 픽셀은 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀이므로
Figure 112022003453834-pat00053
를 1 증가시키다.
프로세싱 엔진(120)은 입력 패치 영상들(220, 230)의 패치 크기를 변경하여서 DNN(124)을 학습시키는 과정을 복수회 반복하도록 더 구성될 수 있다. 첫 번째 학습 과정에서 64 x 64의 패치 사이즈를 사용하였다면 그 다음의 학습 과정들에서는 128 x 128 등의 패치 사이즈를 사용하는 식으로 패치 사이즈를 2배씩 증가시켜 DNN(124)를 학습시킬 수 있다. 각각의 학습 과정에서, 전술한 바와 같이 K개의 불량품 패치 영상을 이용하여 DNN(124)을 먼저 학습시킨 후 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하는 입력 패치 영상들을 이용하여 DNN(124)을 학습시킬 수 있다. 이와 같이 DNN(124)을 학습시키는 과정을 입력 패치 영상들(220, 230)의 패치 크기를 변경하면서 반복함으로써 보다 넓은 맥락에서 제조품의 불량 부분과 양호 부분의 관계를 충실히 학습할 수 있게 된다.
도 3은 제조품의 비전 검사를 위한 심층 학습 방법의 일 실시예를 설명하기 위한 흐름도를 도시한 도면이다.
도 3에 도시된 바와 같이, 심층 학습 방법의 일 실시예는 복수의 입력 패치 영상(220, 230)을 준비하는 단계(S310)로부터 시작된다. 복수의 입력 패치 영상(220, 230)은 K개의 불량품 패치 영상(220) 및 M개의 양품 패치 영상(230)을 포함할 수 있다. 본 단계에서는 복수의 입력 영상 중에서 제조품의 불량 부분을 나타내는 영역을 포함하는 K개의 영상을 불량품 영상으로 분류하고 분류된 K개의 불량품 영상에서 제조품의 불량 부분을 나타내는 영역을 포함하는 패치들을 각각 추출하여 K개의 불량품 패치 영상을 준비할 수 있다. M개의 양품 패치 영상(230)은 복수의 입력 영상에서 제조품의 양호 부분을 나타내는 영역을 포함하는 패치들을 추출하여 준비될 수 있다. 단계(S320)에서는 K개의 불량품 패치 영상(220)을 이용하여 DNN(124)을 학습시킨다. 제조업에서는 불량 시료가 양품 시료에 비해 매우 적기 때문에 모델 학습 시 불량 유형과 양품 유형 간의 불균형 분포(class-imbalance distribution) 문제가 발생한다.  보통 심층 학습은 임의 초기화된 가중치 값들을 바탕으로 학습하기 때문에 초기 학습 방향 설정이 매우 중요하다. 경사하강법에 기반하여 손실 함수를 감소시키는 심층 학습 방법은 어느 정도 모델이 수렴하기 전까지 각 유형별 정보를 충분히 제공하는 것이 중요하다. 대부분 양품으로 구성된 일반 제조업 데이터로 심층 학습 가중치들을 학습한다면 모델은 불량에 대한 검출 능력을 학습하기 이전에 모든 입력 영상을 양품으로 예측하도록 편향되기 쉽다. 따라서 학습 초반 (10 내지30 정도의 에포크(epoch))까지는 불량품 패치 영상들(220)만을 활용한다. 사용자는 데이터의 특성 및 학습 조건 등을 고려하여 심층 학습 모델이 불량 부분에 대한 시각적 특징을 충분히 학습하도록 (즉, 전술한 제1 손실 함수가 충분히 0에 수렴하도록) K의 값(에포크 임계값)을 적절한 값으로 설정할 수 있다. 단계(S330)에서는 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하는 복수의 입력 패치 영상을 이용하여 DNN(124)을 학습시킨다. 제조업의 검사 영역에서는 실제 불량을 양품으로 예측하는 미검(underkill) 오류와 불량이 아닌데 불량으로 예측하는 과검(overkill) 오류가 존재한다. 가장 이상적인 모델은 두 오류를 최소화하는 것이지만 두 오류는 트레이드오프(trade-off) 관계에 있다. 불량 위주로 학습 데이터를 구성하여 모델을 학습하는 경우 미검 오류는 감소하지만 불량과 비슷한 시각적 특징을 가지면서 불량이 아닌 대상까지 불량으로 검출하려 하기 때문에 과검 오류가 증가한다. 반대로 양품 위주로 학습 데이터를 구성하여 모델을 학습하는 경우 과검 오류는 감소하겠지만 불량의 시각적 특징이 도드라지지 않은 불량을 놓치기 때문에 미검 오류가 증가한다. 따라서 심층 학습 모델의 학습은 미검과 과검의 합을 최소로 하는 방향으로 수행되어야 한다. 전술한 단계(S320)의 수행 결과 불량 검출력이 충분한 수준까지 학습이 이루어지면 그 다음은 과검을 줄이기 위한 학습이 필요하다. 따라서 본 단계에서의 학습은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 이용하여 이루어진다. 일 실시예에서 K와 M은 같은 값을 가질 수 있다. 이와 같이 학습이 이루어지면 제조업 데이터에 있어서의 유형 불균형 분포(class-imbalance distribution) 문제를 해결하면서 미검과 과검을 모두 최소화하는 심층 학습이 가능해진다.
도 4는 도 3에서의 단계(S320)에 대한 상세 흐름도를 도시한 도면이다.
단계(S405)에서는 변수 i를 1로 설정한다. 단계(S410)에서는 데이터베이스부(110)로부터 i번째 불량품 패치 영상을 검색하여 DNN(124)으로 입력하여 제1 출력 영상이 출력되도록 한다. 단계(S415)에서는 제1 출력 영상 및 i번째 불량품 패치 영상을 기초로 제1 손실 함수를 정의한다. 제1 손실 함수는 수학식 1을 이용하여 정의될 수 있다. 단계(S420)에서는 경사하강법 등에 근거하여 제1 손실 함수가 최소화되도록 DNN(124)의 가중치들을 반복 갱신한다. 단계(S425)에서는 i가 K와 같은지를 검사한다. 단계(S425)에서의 검사 결과 i가 K와 같은 것으로 판단되는 경우 프로세스는 종료된다. 한편 단계(S425)에서의 검사 결과 i가 K와 같지 않은 것으로 판단되는 경우 프로세스는 단계(S430)로 진행하여 i를 1 증가시키고 단계(S410)로 복귀한다.
도 5는 도 3에서의 단계(S330)에 대한 상세 흐름도를 도시한 도면이다.
단계(S505)에서는 변수 i를 1로 설정한다. 단계(S510)에서는 데이터베이스부(110)로부터 i번째 입력 패치 영상을 검색하여 DNN(124)으로 입력하여 제2 출력 영상이 출력되도록 한다. 전술한 바와 같이 입력 패치 영상들은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함할 수 있다. 단계(S515)에서는 제2 출력 영상 및 i번째 입력 패치 영상을 기초로 제2 손실 함수를 정의한다. 제2 손실 함수는 수학식 2 및 수학식 3을 이용하여 정의될 수 있다. 단계(S520)에서는 경사하강법 등에 근거하여 제2 손실 함수가 최소화되도록 DNN(124)의 가중치들을 반복 갱신한다. 단계(S525)에서는 i가 (K + M)과 같은지를 검사한다. 단계(S525)에서의 검사 결과 i가 (K + M)과 같은 것으로 판단되는 경우 프로세스는 종료된다. 한편 단계(S525)에서의 검사 결과 i가 (K + M)과 같지 않은 것으로 판단되는 경우 프로세스는 단계(S530)로 진행하여 i를 1 증가시키고 단계(S510)로 복귀한다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 심층 학습 수행 장치
110: 데이터베이스부
120: 프로세싱 엔진
124: DNN
210: 불량품 영상
220: 불량품 패치 영상
230: 양품 패치 영상

Claims (19)

  1. 제조품의 비전 검사를 위한 심층 학습 방법으로서,
    복수의 입력 패치(patch) 영상을 준비하는 단계 - 상기 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하며 상기 K 및 상기 M은 자연수임 -,
    상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계, 및
    상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계를 포함하고,
    상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계는,
    상기 K개의 불량품 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제1 출력 영상들이 순차적으로 출력되도록 하는 단계, 및
    상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하는 단계
    를 포함하는, 심층 학습 방법.
  2. 제1항에 있어서,
    상기 복수의 입력 패치(patch) 영상을 준비하는 단계는,
    복수의 입력 영상 중에서 제조품의 불량 부분을 나타내는 영역을 포함하는 K개의 영상을 불량품 영상으로 분류하는 단계, 및
    상기 K개의 불량품 영상에서 제조품의 불량 부분을 나타내는 영역을 포함하는 패치들을 각각 추출하여 상기 K개의 불량품 패치 영상을 준비하는 단계를 포함하는, 심층 학습 방법.
  3. 삭제
  4. 제2항에 있어서,
    상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고,
    상기 제1 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타내는, 심층 학습 방법.
  5. 제4항에 있어서,
    상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 상기 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하는 단계는,
    아래의 수학식
    Figure 112022003453834-pat00054

    - 여기서 L은 제1 손실 함수를 나타내고,
    Figure 112022003453834-pat00055
    는 손실 함수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
    Figure 112022003453834-pat00056
    는 i번째 불량 유형에 대한 가중치를 나타내고,
    Figure 112022003453834-pat00057
    은 상기 복수의 불량 유형의 개수를 나타내고,
    Figure 112022003453834-pat00058
    는 상기 제1 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제1 손실 함수를 정의하는 단계를 포함하는, 심층 학습 방법.
  6. 제2항에 있어서,
    상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계는,
    상기 복수의 입력 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제2 출력 영상들이 순차적으로 출력되도록 하는 단계, 및
    상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하는 단계를 포함하는, 심층 학습 방법.
  7. 제6항에 있어서,
    상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고,
    상기 제2 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타내는, 심층 학습 방법.
  8. 제7항에 있어서,
    상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하는 단계는,
    아래의 수학식들
    Figure 112022003453834-pat00059

    Figure 112022003453834-pat00060

    - 여기서 L은 제2 손실 함수를 나타내고,
    Figure 112022003453834-pat00061
    는 손실 함수를 나타내고,
    Figure 112022003453834-pat00062
    는 입력 패치 영상들에서 제조품의 양호 부분을 나타내는 픽셀들의 개수를 나타내고,
    Figure 112022003453834-pat00063
    는 입력 패치 영상들에서의 픽셀들의 총 개수를 나타내고,
    Figure 112022003453834-pat00064
    는 상기 제2 출력 영상에서 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀들의 개수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
    Figure 112022003453834-pat00065
    는 i번째 불량 유형에 대한 가중치를 나타내고,
    Figure 112022003453834-pat00066
    은 상기 복수의 불량 유형의 개수를 나타내고,
    Figure 112022003453834-pat00067
    는 상기 제2 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제2 손실 함수를 정의하는 단계를 포함하는, 심층 학습 방법.
  9. 제1항에 있어서,
    상기 복수의 입력 패치 영상의 패치 크기를 변경하여서 상기 K개의 불량품 패치 영상을 이용하여 DNN(Deep Neural Network)을 학습시키는 단계 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 학습시키는 단계를 반복하는 단계를 더 포함하는 심층 학습 방법.
  10. 제조품의 비전 검사를 위한 심층 학습을 수행하기 위한 장치로서,
    복수의 입력 패치 영상을 저장하는 데이터베이스부 - 상기 복수의 입력 패치 영상은 K개의 불량품 패치 영상 및 M개의 양품 패치 영상을 포함하며 상기 K 및 상기 M은 자연수임 -, 및
    상기 데이터베이스부에 통신가능한 방식으로 결합되며, DNN을 구현하며, 상기 데이터베이스부로부터 상기 K개의 불량품 패치 영상을 검색하여 상기 검색된 K개의 불량품 패치 영상을 이용하여 상기 DNN을 학습시키고, 상기 데이터베이스부로부터 상기 복수의 입력 패치 영상을 검색하여 상기 검색된 복수의 입력 패치 영상을 이용하여 상기 DNN을 더 학습시키도록 구성된 프로세싱 엔진
    을 포함하고,
    상기 프로세싱 엔진은,
    상기 K개의 불량품 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제1 출력 영상들이 순차적으로 출력되도록 하고, 상기 DNN으로부터 상기 제1 출력 영상이 하나씩 출력될 때마다 상기 제1 출력 영상 및 해당 불량품 패치 영상을 기초로 제1 손실 함수(loss function)를 정의하고 상기 제1 손실 함수가 최소화되도록 상기 DNN의 가중치들(weights)이 반복 갱신되게 제어하도록 더 구성되는, 심층 학습 수행 장치.
  11. 제10항에 있어서,
    상기 프로세싱 엔진은, 복수의 입력 영상 중에서 제조품의 불량 부분을 나타내는 영역을 포함하는 K개의 영상을 불량품 영상으로 분류하고, 상기 K개의 불량품 영상에서 제조품의 불량 부분을 나타내는 영역을 포함하는 패치들을 각각 추출하여 상기 K개의 불량품 패치 영상을 준비하도록 더 구성되는, 심층 학습 수행 장치.
  12. 삭제
  13. 제11항에 있어서,
    상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고,
    상기 제1 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타내는, 심층 학습 수행 장치.
  14. 제13항에 있어서,
    상기 프로세싱 엔진은, 아래의 수학식
    Figure 112022003453834-pat00068

    - 여기서 L은 제1 손실 함수를 나타내고,
    Figure 112022003453834-pat00069
    는 손실 함수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
    Figure 112022003453834-pat00070
    는 i번째 불량 유형에 대한 가중치를 나타내고,
    Figure 112022003453834-pat00071
    은 상기 복수의 불량 유형의 개수를 나타내고,
    Figure 112022003453834-pat00072
    는 상기 제1 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제1 손실 함수를 정의하도록 더 구성되는, 심층 학습 수행 장치.
  15. 제11항에 있어서,
    상기 프로세싱 엔진은, 상기 복수의 입력 패치 영상을 하나씩 상기 DNN으로 입력하여 상기 DNN으로부터 제2 출력 영상들이 순차적으로 출력되도록 하고, 상기 DNN으로부터 상기 제2 출력 영상이 하나씩 출력될 때마다 상기 제2 출력 영상 및 상기 해당 입력 패치 영상을 기초로 제2 손실 함수를 정의하고 상기 제2 손실 함수가 최소화되도록 상기 DNN의 가중치들이 반복 갱신되게 제어하도록 더 구성되는, 심층 학습 수행 장치.
  16. 제15항에 있어서,
    상기 K개의 불량품 패치 영상에 의해 식별되는 제조품의 불량은 복수의 불량 유형으로 분류되고,
    상기 제2 출력 영상들의 각각은 복수의 픽셀들을 가지며, 상기 복수의 픽셀들의 각각은 상기 해당 픽셀이 제조품의 양호 부분을 나타내는 픽셀인지 아니면 제조품의 불량 부분을 나타내는 픽셀인지를 나타내고 상기 해당 픽셀이 제조품의 불량 부분을 나타내는 픽셀이라면 상기 해당 픽셀이 상기 복수의 불량 유형 중 어느 불량 유형에 속하는 픽셀인지를 나타내는, 심층 학습 수행 장치.
  17. 제16항에 있어서,
    상기 프로세싱 엔진은, 아래의 수학식들
    Figure 112022003453834-pat00073

    Figure 112022003453834-pat00074

    - 여기서 L은 제2 손실 함수를 나타내고,
    Figure 112022003453834-pat00075
    는 손실 함수를 나타내고,
    Figure 112022003453834-pat00076
    는 입력 패치 영상들에서 제조품의 양호 부분을 나타내는 픽셀들의 개수를 나타내고,
    Figure 112022003453834-pat00077
    는 입력 패치 영상들에서의 픽셀들의 총 개수를 나타내고,
    Figure 112022003453834-pat00078
    는 상기 제2 출력 영상에서 제조품의 양호 부분을 나타내는 것으로 예측에 성공한 픽셀들의 개수를 나타내고, i는 불량 유형을 나타내는 인덱스이고,
    Figure 112022003453834-pat00079
    는 i번째 불량 유형에 대한 가중치를 나타내고,
    Figure 112022003453834-pat00080
    은 상기 복수의 불량 유형의 개수를 나타내고,
    Figure 112022003453834-pat00081
    는 상기 제2 출력 영상에서 i번째 불량 유형에 속하는 것으로 예측에 성공한 픽셀들의 개수를 나타냄 - 에 따라 상기 제2 손실 함수를 정의하도록 더 구성되는, 심층 학습 수행 장치.
  18. 제10항에 있어서,
    상기 프로세싱 엔진은, 상기 복수의 입력 패치 영상의 패치 크기를 변경하여서 상기 K개의 불량품 패치 영상을 이용하여 DNN을 학습시키는 동작 및 상기 복수의 입력 패치 영상을 이용하여 상기 DNN을 더 학습시키는 동작을 반복 수행하도록 더 구성되는, 심층 학습 수행 장치.
  19. 삭제
KR1020220003858A 2022-01-11 2022-01-11 제조품의 비전 검사를 위한 심층 학습 방법 및 장치 KR102489115B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220003858A KR102489115B1 (ko) 2022-01-11 2022-01-11 제조품의 비전 검사를 위한 심층 학습 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220003858A KR102489115B1 (ko) 2022-01-11 2022-01-11 제조품의 비전 검사를 위한 심층 학습 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102489115B1 true KR102489115B1 (ko) 2023-01-17

Family

ID=85111413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220003858A KR102489115B1 (ko) 2022-01-11 2022-01-11 제조품의 비전 검사를 위한 심층 학습 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102489115B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110007714A (ko) * 2009-07-17 2011-01-25 (주) 티아이에스 불량인식 시스템의 학습방법
KR101688458B1 (ko) * 2016-04-27 2016-12-23 디아이티 주식회사 깊은 신경망 학습 방법을 이용한 제조품용 영상 검사 장치 및 이를 이용한 제조품용 영상 검사 방법
JP2020027424A (ja) * 2018-08-10 2020-02-20 東京エレクトロンデバイス株式会社 学習データ生成装置、判別モデル生成装置、及びプログラム
KR20200141376A (ko) * 2020-02-04 2020-12-18 주식회사 수아랩 데이터 생성 방법
KR20210117782A (ko) * 2020-03-20 2021-09-29 라온피플 주식회사 딥러닝을 이용한 신규 제품의 품질 검사 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110007714A (ko) * 2009-07-17 2011-01-25 (주) 티아이에스 불량인식 시스템의 학습방법
KR101688458B1 (ko) * 2016-04-27 2016-12-23 디아이티 주식회사 깊은 신경망 학습 방법을 이용한 제조품용 영상 검사 장치 및 이를 이용한 제조품용 영상 검사 방법
JP2020027424A (ja) * 2018-08-10 2020-02-20 東京エレクトロンデバイス株式会社 学習データ生成装置、判別モデル生成装置、及びプログラム
KR20200141376A (ko) * 2020-02-04 2020-12-18 주식회사 수아랩 데이터 생성 방법
KR20210117782A (ko) * 2020-03-20 2021-09-29 라온피플 주식회사 딥러닝을 이용한 신규 제품의 품질 검사 방법 및 시스템

Similar Documents

Publication Publication Date Title
US11714397B2 (en) System and method for generating machine learning model with trace data
US10242289B2 (en) Method for analysing media content
CN107408209B (zh) 用于在半导体工艺中进行缺陷分类的系统和方法
EP3882820A1 (en) Node classification method, model training method, device, apparatus, and storage medium
JP2015087903A (ja) 情報処理装置及び情報処理方法
EP4036796A1 (en) Automatic modeling method and apparatus for object detection model
CN111401472B (zh) 基于深度卷积神经网络的红外目标分类方法和装置
CN110826379A (zh) 一种基于特征复用与YOLOv3的目标检测方法
CN111931179A (zh) 基于深度学习的云端恶意程序检测系统及方法
CN111401309B (zh) 基于小波变换的cnn训练和遥感图像目标识别方法
CN114330588A (zh) 一种图片分类方法、图片分类模型训练方法及相关装置
EP4266246A1 (en) Automated defect classification and detection
US20210365355A1 (en) Test case generation apparatus, test case generation method, and computer readable medium
CN117372424B (zh) 一种缺陷检测方法、装置、设备及存储介质
Sun et al. A continual learning framework for adaptive defect classification and inspection
CN110135428A (zh) 图像分割处理方法和装置
CN117173568A (zh) 目标检测模型训练方法和目标检测方法
CN116485796B (zh) 害虫检测方法、装置、电子设备及存储介质
KR102489115B1 (ko) 제조품의 비전 검사를 위한 심층 학습 방법 및 장치
CN112396594A (zh) 变化检测模型获取方法及装置、变化检测方法、计算机设备及可读存储介质
CN112508126A (zh) 深度学习模型训练方法、装置、电子设备及可读存储介质
EP4064214A1 (en) Integrated deep learning model for co-operative and cascaded inference on edge
EP3758003B1 (en) Methods, apparatuses, and computer storage media for testing depth learning chip
Vdovjak et al. Modern CNNs Comparison for Fire Detection in RGB Images
Upadhyay et al. Artificial intelligence application to D and D—20492

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant