KR20210129775A - 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치 - Google Patents

사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치 Download PDF

Info

Publication number
KR20210129775A
KR20210129775A KR1020200047422A KR20200047422A KR20210129775A KR 20210129775 A KR20210129775 A KR 20210129775A KR 1020200047422 A KR1020200047422 A KR 1020200047422A KR 20200047422 A KR20200047422 A KR 20200047422A KR 20210129775 A KR20210129775 A KR 20210129775A
Authority
KR
South Korea
Prior art keywords
defect
image
virtual
area
product
Prior art date
Application number
KR1020200047422A
Other languages
English (en)
Other versions
KR102430090B1 (ko
Inventor
김병헌
김진규
Original Assignee
세이지리서치 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세이지리서치 주식회사 filed Critical 세이지리서치 주식회사
Priority to KR1020200047422A priority Critical patent/KR102430090B1/ko
Priority to JP2022550845A priority patent/JP7393833B2/ja
Priority to PCT/KR2021/004611 priority patent/WO2021215730A1/ko
Priority to US17/918,455 priority patent/US20230143738A1/en
Priority to DE112021002434.5T priority patent/DE112021002434T5/de
Priority to CN202110423617.4A priority patent/CN113538631A/zh
Publication of KR20210129775A publication Critical patent/KR20210129775A/ko
Application granted granted Critical
Publication of KR102430090B1 publication Critical patent/KR102430090B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/80Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
    • 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/0008Industrial image inspection checking presence/absence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • 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/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은, 전자 장치의 동작 방법으로써, 제1 생산품에 대한 제1 정상이미지, 결함이미지, 및 사용자 입력에 적어도 기초하여 가상결함이미지 생성모델을 학습하는 동작과, 상기 학습된 가상결함이미지 생성모델을 이용하여, 제2 생산품에 대한 제2 정상이미지로부터 가상결함이미지를 생성하는 동작을 포함하는 가상결함이미지 생성 방법을 제공한다.

Description

사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치{Computer program, method, and device for generating virtual defect image using artificial intelligence model generated based on user input}
본 발명의 실시예들은, 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여, 가상결함이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치에 관한 것이다.
일반적으로, 공장에서 생산된 생산품에 결함이 존재하는지 여부에 대한 검수가 필요하다. 최근, 생산라인의 자동화 등 비용 절감을 위한 노력들이 이루어지고 있으며, 이에 따라 생산품의 품질 검수 자동화에 대한 관심도 높아지고 있다. 예를 들면, 컴퓨터 비전을 기계나 로봇, 프로세서 또는 품질 제어에 응용하는 머신비전(machine vision) 기술이 급격히 발전하는 추세이다.
기존의 머신비전 기술은 인공지능을 사용하지 않고, 단순히 생산품의 이미지(예: 사진)에서 기준이 되는 템플릿을 추출하거나 또는 템플릿과 비교하는 기술을 포함하는, 템플릿 매칭(template matching)을 이용하였다. 일 예를 들면 기존의 머신비전은, 기준이 되는 이미지와 생산품 이미지의 픽셀 값을 비교하고 픽셀 값 차이가 어느 범위이면 결함인지에 대한 룰(rule)을 알고리즘화하거나, 생산품 이미지의 특정 부분의 길이를 측정하고 길이가 어느 범위이면 결함인지에 대한 룰을 알고리즘화하는 방식이었다. 즉, 인공지능을 사용하지 않는 머신비전의 경우, 결함의 경우의 수를 모두 알고리즘화 해야하는 번거로움이 크고, 규칙이 없는 비정형 결함(즉, 룰(rule)을 정할 수 없는 결함)은 검출하기 어려운 문제점이 있었다.
한편, 최근 인공지능에 관한 기술이 발전하면서, 인공지능을 머신비전에 적용하여, 룰을 정할 수 없는 비정형 결함도 인공지능이 판별해주는 기술에 대한 관심이 증가하고 있다.
상술한 바와 같이 생산품의 결함을 검출해주는 인공지능 모델을 학습시키고자 하는 경우, 학습데이터를 위하여, 결함을 갖는 다수의 생산품 이미지(예: 사진)가 필요하다. 예를 들면, 학습데이터가 많을수록 결함검출 인공지능모델의 성능이 좋아질 수 있다.
그런데 일반적인 생산라인이라면, 결함을 갖는 생산품 이미지(이하, 결함이미지)를 다수 획득하기가 상당히 어렵다. 특히, 생산라인의 초기에는 결함이미지의 개수가 극히 적어서, 유의미한 결함검출 인공지능모델을 학습시키지 못하여, 생산라인의 초기에는 더욱 상기 인공지능모델을 사용하지 못할 수 있다.
한편, 적은 수의 결함이미지(즉, 실재하는 결함이미지)를 약간 변형함으로써 학습데이터를 늘리는 경우, 기존의 결함이미지를 변형하는 방식이기 때문에 아예 존재하지 않던 새로운 결함이미지를 생성하는 것은 불가능하다. 또한, 생산품에 따라 발생 가능한 특징적인 결함이나 정교한 결함은, 규칙을 나타낼 수 없어서, 존재하지 않는 새로운 결함을 갖는 생산품 이미지를 생성하는 것은 매우 어렵다.
본 발명은, 상기와 같은 문제점을 개선하기 위해 안출된 것으로, 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여, 가상결함이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치하는 것을 목적으로 한다.
그러나 이러한 과제는 예시적인 것으로, 이에 의해 본 발명의 범위가 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 전자 장치의 동작 방법에 있어서, 가상결함이미지 생성 방법은, 제1 생산품에 대한 제1 정상이미지, 결함이미지, 및 사용자 입력에 적어도 기초하여 가상결함이미지 생성모델을 학습하는 동작과, 상기 학습된 가상결함이미지 생성모델을 이용하여, 제2 생산품에 대한 제2 정상이미지로부터 가상결함이미지를 생성하는 동작을 포함할 수 있다. 상기 가상결함이미지를 생성하는 동작은, 기설정된 모양의 결함영역에 대한 정보를 이용하여, 상기 가상결함이미지 생성모델을 통해 상기 가상결함이미지를 생성하는 동작과, 사용자가 결함을 발생시킬 영역을 직접 그리는 입력에 기반한 수동영역정보를 이용하여, 상기 가상결함이미지 생성모델을 통해 상기 가상결함이미지를 생성하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 제1 생산품과 상기 제2 생산품은, 서로 완전히 동일한 종류이거나, 또는 서로 동일한 종류이되 규격 또는 버전이 다를 수 있다.
일 실시예에 따르면, 상기 제1 정상이미지와 상기 제2 정상이미지는 동일하거나, 또는 서로 상이할 수 있다.
일 실시예에 따르면, 상기 가상결함이미지 생성모델을 학습하는 동작은, 상기 제1 생산품에 대하여 발생 가능한 결함유형들을 설정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 가상결함이미지를 생성하는 동작은, 상기 설정된 결함유형들 중 적어도 일부에 대하여, 상기 적어도 일부의 결함유형들 각각이 발생될 수 있는 결함영역에 대한 정보를, 사용자입력에 기초하여 입력받는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 가상결함이미지 생성모델을 학습하는 동작은, 상기 제1 생산품을 포함하는 복수의 서로 상이한 버전의 생산품들에 대한 제1 정상이미지 및 결함이미지에 기초하여 데이터베이스를 수집 및 전처리를 수행하는 동작과, 상기 복수의 서로 상이한 버전의 생산품들 중 일부 생산품들만 선택하여 상기 가상결함이미지 생성모델을 학습하는 동작을 포함할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 프로그램은, 컴퓨터를 이용하여 전술한 동작을 실행시키기 위하여 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
본 발명의 일 실시예에 따른 비-일시적(non-transitory) 컴퓨터-판독 가능(computer-readable) 저장(storage) 매체(medium)는, 전술한 동작을 실행하기 위한 하나 이상의 프로그램들을 저장할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
상술한 바와 같이 이루어진 본 발명의 일 실시예에 따른 장치, 방법, 및 컴퓨터 프로그램은, 사용자 입력에 기반하여, 사용자의 필요에 따라 다양한 종류의 생산품에 대한 가상결함이미지 생성모델을 학습할 수 있고, 학습된 가상결함이미지 생성모델을 이용하여 상기 사용자의 필요에 따른 생산품의 가상결함이미지를 생성할 수 있다.
또한, 기존의 결함이미지를 변형시키는 것이 아닌, 정상이미지로부터 새로운 결함을 가지는 가상결함이미지를 새로이 생성할 수 있다.
또한, 다양한 종류의 결함을 한 번의 학습으로 생성할 수 있다.
또한, 사용자 입력에 기반하여 진행되는 한 번의 학습으로, 자동모드(auto mode)로 가상결함이미지 생성과 수동모드(manual mode)로 가상결함이미지 생성이 모두 가능한, 하나의 가상결함이미지 생성모델을 학습할 수 있다.
또한, 종류는 같으나 세부적 특징이 다른 생산품들을 한 프로젝트에 모아서 한 번에 학습할 수 있다.
또한, 본 발명의 일 실시예에 따른 장치, 방법, 및 컴퓨터 프로그램은, 생성모델 학습 시에, 복수의 제품들이나 복수의 결함유형들 중에서, 학습에 사용할 것들만 선택하는 사용자 입력에 기반하여, 다양한 모델을 학습할 수 있다.
물론 이러한 효과들에 의해 본 발명의 범위가 한정되는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 기능적 구성의 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 가상결함이미지 생성 과정과 그 사용례을 포함하는, 전반적인 과정(S10)의 예를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 프로그램(16)의 기능적 구성의 예를 나타낸다.
도 4는 본 발명의 일 실시예에 따른, 자동모드 및 수동모드에서의 생성모듈(22)의 동작의 예를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 동작의 예를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델을 학습하기 위한 전자 장치(10)의 동작의 예를 나타낸다.
도 7은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 프로그램(16)의 일 화면(A7)의 예를 나타낸다
도 8은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델을 학습하기 위해 데이터베이스를 구축하는 전자 장치(10)의 동작의 예를 나타낸다.
도 9는 하나 이상의 버전의 생산품의 예시를 나타낸다.
도 10 내지 도 12는 본 발명의 일 실시예에 따른 데이터베이스를 구축하는 화면들의 예를 나타낸다.
도 13은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델의 학습을 위해, 데이터베이스에 전처리를 수행하는 전자 장치(10)의 동작의 예를 나타낸다.
도 14 내지 도 18은 본 발명의 일 실시예에 따른 전처리를 수행하기 위한 전자 장치(10)의 화면들의 예를 나타낸다.
도 19는 본 발명의 일 실시예에 따른, 가상결함이미지 생성모델을 학습하기 위한 화면(A19)의 예를 나타낸다.
도 20은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 동작의 예를 나타낸다.
도 21 내지 도 26은 본 발명의 일 실시예에 따른 자동모드(auto mode) 생성을 수행하기 위한 전자 장치(10)의 화면들의 예를 나타낸다.
도 27은 자동모드로 생성된 가상결함이미지들의 예시를 나타낸다.
도 28 내지 도 30은 본 발명의 일 실시예에 따른 수동모드(manual mode) 생성를 수행하기 위한 화면들의 예를 나타낸다.
도 31은 수동모드로 생성된 가상결함이미지들의 예시를 나타낸다.
도 31 내지 도 34는, 본 발명의 일 실시예에 따른 가상결함이미지를 생성할 때, 자동모드 생성이 유용한 경우와, 수동모드 생성이 유용한 경우의 예를 나타낸다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하의 실시예에서, 영역, 구성 요소, 블록, 모듈 등이 연결되었다고 할 때, 구성 요소, 블록, 모듈들이 직접적으로 연결된 경우뿐만 아니라 구성요소, 블록, 모듈들 중간에 다른 구성 요소, 블록, 모듈들이 개재되어 간접적으로 연결된 경우도 포함한다.
도 1은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 기능적 구성의 예를 나타낸다.
도 1을 참조하면, 전자 장치(10)는 통신 모듈(11), 프로세서(12), 표시 장치(13), 입력 장치(14), 메모리(15)를 포함할 수 있다. 메모리(15)는 가상결함이미지 생성모델을 학습할 수 있고, 학습된 가상결함이미지 생성모델을 이용하여 정상이미지로부터 가상결함이미지를 생성할 수 있는 프로그램(16)을 저장할 수 있다.
따라서 전자 장치(10)는, 프로세서(12)가 프로그램(16)을 실행함에 따라, 가상결함이미지를 생성할 수 있는 장치이다. 전자 장치(10)는 예를 들면, 휴대용 통신 장치(예: 스마트폰, 노트북), 컴퓨터 장치, 태블릿 PC 등을 포함할 수 있다. 하지만 전자 장치(10)는 전술한 기기들에 한정되지 않는다.
또한 전자 장치(10)는 전술한 구성 요소들에 한정되지 않으며, 전자 장치(10)에는 다른 구성요소가 추가되거나 일부 구성 요소가 생략될 수 있다.
통신 모듈(11)은, 전자 장치(10)와 외부 전자 장치(예: 다른 전자 장치, 또는 서버) 간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(11)은 프로세서(12)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(11)은 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 근거리 통신 네트워크(예: 블루투스, WiFi direct 또는 IrDA(infrared data association)) 또는 원거리 통신 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN))를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(11)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
본 발명의 일 실시예에 따른 전자 장치(10)의 가상결함이미지 생성 동작의 적어도 일부는, 통신 모듈(11)을 통한 서버(미도시)와의 무선 통신 채널을 통해 수행될 수도 있다. 예를 들면, 전자 장치(10)가 사용자입력을 기반으로 가상결함이미지 생성모델을 학습하고 가상결함이미지를 생성하는 과정에서, 서버(미도시)와 적어도 일부 데이터의 송수신이 이루어질 수 있다.
프로세서(12)는, 예를 들면, 소프트웨어(예: 프로그램(16))를 구동하여 프로세서(12)에 연결된 전자 장치(10)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(12)는 다른 구성요소(예: 입력 장치(14))로부터 수신된 명령 또는 데이터를 메모리(15)(예: 휘발성 메모리)에 로드하여 처리하고, 결과 데이터를 메모리(15)(예: 비휘발성 메모리)에 저장할 수 있다.
메모리(15)는, 전자 장치(10)의 적어도 하나의 구성요소(예: 프로세서(12))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(16)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(15)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 메모리(15)는, 사용자입력에 적어도 기반하여 가상결함이미지 생성모델을 학습하고, 학습된 가상결함이미지 생성모델을 통해 가상결함이미지를 생성할 수 있는 프로그램(16)을 저장할 수 있다.
프로그램(16)은 메모리(15)에 저장되는 소프트웨어로서, 프로그램(16)은 하나 이상의 프로그램들을 포함할 수 있다. 예를 들면 프로그램(16)은, 도 2 및 도 3에서 후술되듯이, 가상결함이미지 생성모델을 학습하는 개발모듈(21)과, 학습된 가상결함이미지 생성모델을 이용하여 가상결함이미지를 생성하는 생성모듈(22)을 포함할 수 있고, 개발모듈(21)과 생성모듈(22)은 하위모듈들을 포함할 수 있는 것과 같이, 복수의 모듈들을 포함할 수 있다.
표시 장치(13)는 전자 장치(10)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로써, 예를 들면 디스플레이 및 디스플레이를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 표시 장치(13)는 터치 회로(touch circuitry)를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 표시 장치(13)는, 프로그램(16)의 실행에 대응하는 화면들을 표시할 수 있다. 표시 장치(13)는, 가상결함이미지 생성모델을 학습하고 가상결함이미지를 생성하는 데 이용되는 사용자입력을 수신하기 위한, GUI(graphic user interface)를 표시할 수 있다.
입력 장치(14)는 전자 장치(10)의 적어도 하나의 구성요소(예: 프로세서(12))에 사용될 명령 또는 데이터를 전자 장치(10)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(14)는 예를 들면, 마우스, 키보드, 터치스크린, 버튼, 마이크 등을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 가상결함이미지 생성 과정(S11)과 그 사용례을 포함하는, 전반적인 과정(S10)의 예를 나타낸다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 전반적인 과정(S10)은, 학습데이터(E1)를 가지고 가상결함이미지 생성모델을 학습하는 과정(S1), 학습된 생성모델(E2)을 이용하여 가상결함이미지를 생성하는 과정(S2), 생성된 가상결함이미지(E3)를 학습데이터로 이용하여 결함검출모델을 학습하는 과정(S3), 학습된 결함검출모델(E4)을 이용하여 생산품의 결함을 검출하는 과정(S4)을 포함한다.
도 2에서 네모 블록은 예를 들면 프로세서(12)의 실행이나 동작을 나타낼 수 있고, 타원 블록은 예를 들면 상기 동작에 이용되거나 상기 동작으로 인해 산출되는 요소(예: 팩터(factor), 도구, 모델, 데이터)를 나타낼 수 있다.
한편 본 문서에서 가상결함이미지는, 생산품의 정상이미지에 가상의 결함스케치를 더하여 생성된, 결함을 갖는 가상의 생산품 이미지를 나타낸다. 본 문서에서 가상결함이미지 생성모델이란, 정상이미지로부터 가상결함이미지를 생성할 수 있는 인공지능 모델로, 프로그램(16)에 대한 사용자입력에 적어도 기반하여 학습될 수 있다. 본 문서에서 결함검출모델이란, 생성된 가상결함이미지를 학습데이터로 이용하여, 실제 생산품 이미지로부터 생산품의 결함 여부를 검출할 수 있는 인공지능 모델이다. 결함검출모델 역시, 프로그램(16)에 대한 사용자입력에 적어도 기반하여 생성될 수 있다.
본 발명의 일 실시예에 따른 전자 장치(10)(예: 프로세서(12))는 예를 들면, 가상결함이미지 생성모델 학습 동작(S1), 가상결함이미지 생성 동작(S2), 결함검출모델 학습 동작(S3)을 수행할 수 있다. S3의 결과 생성된 결함검출모델(E4)은, 예를 들면 실제 생산라인에서 생산품의 결함을 검출(S4)하는 데 사용될 수 있다.
프로그램(16)은, 학습데이터(E1)로부터 가상결함이미지 생성모델을 학습하여(S1), 가상결함이미지 생성모델(E2)을 출력하는 개발모듈(21)과, 가상결함이미지 생성모델(E2)을 이용하여 가상결함이미지를 생성(S2)함으로써 가상결함이미지(E3)를 출력하는 생성모듈(22)을 포함할 수 있다. 뿐만 아니라 프로그램(16)은 상기 출력된 가상결함이미지(E3)로부터 결함검출모델을 학습하여(S3), 결함검출모델(E4)을 출력하는 검출모듈(또는 분류모듈)(미도시)을 더 포함할 수 있다. 개발모듈(21)과 생성모듈(22)에 대한 상세한 설명은 이하의 도면에서 후술된다.
일 실시예에 따르면, S1, S2, S3, S4은, 모두 서로 다른 인공지능에 기반한 동작일 수 있다. 예를 들면, 사용자입력에 기반한 학습데이터(E1)를 이용하여 가상결함이미지 생성모델을 학습(S1)하기 위한 인공지능 모델(미도시)이, 프로그램(16)에 내장돼있을 수 있다. 또한, 가상결함이미지를 생성하는 동작(S2)은, S1의 결과로 생성된 인공지능 모델(E2)을 통해 수행될 수 있다. 또한, S2의 결과 생성되는 가상결함이미지(E3)를 학습데이터로 이용하여 결함검출모델을 학습(S3)하는 인공지능 모델(미도시)이 프로그램(16)에 내장돼있을 수 있다. 또한, 생산품의 결함을 검출하는 동작(S4)은, S3의 결과로 생성된 인공지능 모델(E4)을 통해 수행될 수 있다.
본 발명의 일 실시예에 따르면, 생성모듈(22)이 가상결함이미지를 생성하는 과정(S2)은, 자동모드로 생성하는 과정(S221)과 수동모드로 생성하는 과정(S222)을 포함한다.
자동모드로 생성하는 과정(S221)은, 정상이미지 및 기설정된 결함영역에 대한 정보를 이용하여, 가상결함이미지 생성모델(E2)을 통해, 자동으로 가상결함이미지를 생성하는 과정이다.
수동모드로 생성하는 과정(S222)은, 정상이미지 및 사용자가 가상결함을 발생시킬 영역을 직접 그리는 입력에 기반한 수동영역정보를 이용하여, 상기 가상결함이미지 생성모델(E2)을 통해 가상결함이미지를 생성하는 과정이다.
일 실시예에 따르면, 하나의(동일한) 가상결함이미지 생성모델(E2)을 이용하여, 자동모드 생성(S221)과 수동모드 생성(S222)을 모두 수행할 수 있다.
한편 자동모드 생성(S221)과 수동모드 생성(S222)은, 순서가 있는 과정이 아니며, 선택적 과정일 수 있다. 따라서, 프로그램(16)(또는 프로세서(12))에 대한 사용자입력에 따라, 하나의(동일한) 가상결함이미지 생성모델(E2)을 이용하여, 자동모드로 가상결함이미지를 생성할 수도 있고, 수동모드로 가상결함이미지를 생성할 수도 있다. 물론, 자동모드로 가상결함이미지를 생성하여 저장하고, 수동모드로 가상결함이미지를 생성하여 저장하고, 자동모드 및 수동모드로 생성된 가상결함이미지들을 모두 이용하여 결함검출모델을 학습(S3)할 수도 있다.
도 3은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 프로그램(16)의 기능적 구성의 예를 나타낸다.
도 3을 참조하면, 프로그램(16)은, 개발모듈(21) 및 생성모듈(22)을 포함할 수 있다. 도 2에서 전술한 바와 같이, 개발모듈(21)은, 가상결함이미지 생성모델을 학습(또는 개발)할 수 있으며, 생성모듈(22)은, 학습된 가상결함이미지 생성모듈을 이용하여 가상결함이미지를 생성할 수 있다. 도시하지는 않았지만, 프로그램(16)은, 생성된 가상결함이미지를 이용하여 결함검출모델을 학습할 수 있는 검출모듈(또는 분류모듈)을 더 포함할 수 있다.
개발모듈(21) 및 생성모듈(22)은, 사용자입력에 기반하여 동작을 수행할 수 있다. 예를 들면 개발모듈(21) 및 생성모듈(22)은, 사용자입력에 기반하여 기설정된 동작, 또는 기저장된(예: 프로그래밍된) 동작을 수행할 수 있다. 개발모듈(21) 및 생성모듈(22)은 사용자입력에 기반하여 동작하기 때문에, 사용자의 필요에 따라(예: 다양한 종류의 생산품에) 프로그램(16)이 사용될 수 있으며, 프로그램(16)은 특정 분야가 아닌, 다양한 분야에서 사용될 수 있다.
본 발명의 일 실시예에 따르면, 개발모듈(21)은 데이터베이스 모듈(211), 전처리 모듈(212), 훈련 모듈(213)을 포함할 수 있다. 하지만 이는 일 예시일 뿐이고, 각 모듈들의 기능의 적어도 일부는 통합하여 구성될 수 있으며, 또는 각 모듈들은 더 하위의 모듈들로 구성될 수 있다.
데이터베이스 모듈(211)은, 가상결함이미지 생성모델을 학습하기 위한 데이터베이스를 구축하기 위하여, 데이터베이스를 수집 및 저장(또는 임시적으로 저장)할 수 있다.
데이터베이스 모듈(211)은, 상기 데이터베이스로써 예를 들면 생산품의 식별정보(예: 이름)을 입력 받아 저장하고, 가상결함이미지 생성모델을 학습하기 위하여 하나 이상의 정상이미지 및 결함이미지를 로드하고, 결함유형에 대한 정보를 입력받아 저장할 수 있다. 또한 데이터베이스 모듈(211)은, 상기 로드된 정상이미지 및 결함이미지에 대하여 결함유형을 라벨링할 수 있다.
한편 본 문서에서 정상이미지란, 정상으로 판정된 실제 생산품의 이미지를 나타낸다. 본 문서에서 결함이미지란, 결함을 가진 것으로 판정된 실제 생산품의 이미지를 나타낸다. 본 문서에서 결함유형이란, 생산품이 가질 수 있는 결함의 종류로, 사용자입력에 의해 리스트(list)될 수 있다. 예를 들면 프로그램(16)(또는 프로세서(12))은 사용자로부터 결함유형을 입력받아 목록화, 예를 들면 결함유형 정보를 저장할 수 있다. 결함유형은, 예를 들면, 구부러짐, 스크래치, 이물(예: 얼룩이나 오염), 특정 색상을 갖는 이물 등 다양하게 존재할 수 있다.
데이터베이스 모듈(211)의 동작에 대한 상세한 설명은, 도 8 및 그 이하에서 상세하게 후술된다.
전처리 모듈(212)은, 가상결함이미지 생성모델을 학습하기 위해, 상기 수집된 데이터베이스에 전처리를 수행할 수 있다.
전처리 모듈(212)은, 상기 전처리로써 예를 들면, 로드된 하나 이상의 정상이미지들 중에서 대표이미지를 설정하고, 로드된 하나 이상의 정상이미지 및 결함이미지를 상기 대표이미지 기준으로 정렬하고, 대표이미지 상에 각각의 결함유형이 생길 수 있는 결함영역에 대한 정보를 입력받아 저장할 수 있다.
전처리 모듈(212)의 동작에 대한 상세한 설명은, 도 13 및 그 이하에서 상세하게 후술된다.
훈련 모듈(213)은 상기 데이터베이스 및 상기 전처리를 기반으로, 가상결함이미지 생성모델을 학습(또는 훈련)할 수 있다. 훈련 모듈(213)은 예를 들면, 상기 정렬된 하나 이상의 정상이미지 및 결함이미지와, 상기 라벨링에 대한 정보와, 상기 결함영역에 대한 정보를 이용하여 상기 학습 또는 훈련을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 생성모듈(22)은 자동모드 모듈(221), 수동모드 모듈(222)을 포함할 수 있다. 하지만 이는 일 예시일 뿐이고, 각 모듈들의 기능의 적어도 일부는 통합하여 구성될 수 있으며, 또는 각 모듈들은 더 하위의 모듈들로 구성될 수 있다.
일 실시예에 따르면, 자동모드 모듈(221)과 수동모드 모듈(222)은 기능상의 구분(또는 모드의 구분, 또는 알고리즘 상의 구분)일 뿐일 수 있다. 일 실시예에 따르면, 개발모듈(21)에서 생성된 하나의 가상결함이미지 생성모델을 이용하여 자동모드 생성 동작(S221)과 수동모드 생성 동작(S222)을 모두 수행할 수 있다. 일 예를 들면, 자동모드에서는, 개발모듈(21)에 저장된 스케치생성기(223)(도 4 참조)를 더 이용하여 자동모드 생성 동작(S221)이 수행될 수 있다.
일 실시예에 따르면, 생성모듈(22)은, 자동모드 모듈(221)을 통해, 정상이미지, 기설정된 결함영역에 대한 정보, 및 개발모듈(21)에서 출력된 가상결함이미지 생성모델(E2)이용하여, 가상결함이미지를 생성할 수 있다.
또한 생성모듈(22)은, 수동모드 모듈(222)을 통해, 정상이미지, 사용자가 결함을 발생시킬 영역을 직접 그리는 입력, 및 상기 가상결함이미지 생성모델(E2)을 이용하여, 가상결함이미지를 생성할 수 있다.
한편, 생성모듈(22)에서 사용되는 제2 정상이미지는, 개발모듈(21)에서 사용되는 제1 정상이미지와 동일할 수도 있지만, 상이할 수도 있다. 이에 대해서는 도 5 및 그 이후의 설명에서 상세하게 후술된다.
한편 자동모드 및 수동모드에서의 생성모듈(22)의 각 동작의 예시에 대한 상세한 설명이 도 4에서 후술된다.
도 4는 본 발명의 일 실시예에 따른, 자동모드 및 수동모드에서의 생성모듈(22)의 동작의 예를 나타낸다.
도 4를 참조하면, 생성모듈(22)은, 자동모드 또는 수동모드로 동작할 수 있다. 자동모드와 수동모드는 순서가 있는 과정이 아니며 선택적 과정이다. 따라서, 프로그램(16)(또는 프로세서(12))에 대한 사용자입력에 따라, 하나의 가상결함이미지 생성모델을 이용하여, 자동모드로 가상결함이미지(VDI)를 생성할 수도 있고, 수동모드로 가상결함이미지(VDI)를 생성할 수도 있다. 물론, 수동모드로 가상결함이미지(VDI)를 생성하여 저장하고, 자동모드로 가상결함이미지(VDI)를 생성하여 저장한 뒤, 생성된 가상결함이미지들(VDIs)을 모두 사용하여 결함검출모델을 학습할 수도 있다.
본 발명의 일 실시예에 따르면, 개발모듈(21)에서 학습된 하나의 동일한 가상결함이미지 생성모델이, 자동모드와 수동모드에 모두 이용될 수 있다. 즉, 하나의 가상결함이미지 생성모델이, 자동모드로 가상결함이미지(VDI)를 생성할 수도 있고, 수동모드로 가상결함이미지(VDI)를 생성할 수도 있다.
본 발명의 일 실시예에 따르면, 자동모드에서 스케치생성기(223)는, 기설정된 결함영역정보와 가상결함이미지 생성모델을 이용하여, 가상결함스케치(VDS1)를 생성할 수 있다. 스케치생성기(223)는, 예를 들면, 생성모듈(22)에 포함된 하나의 로직, 알고리즘, 인공지능모델, 또는 모듈일 수 있다.
구체적으로, 가상결함이미지 생성 단계(S2) 중 자동모드에서는, 각 결함유형마다 발생 가능한 결함영역을 미리 지정된(예: 프로그램된) 소정의 모양으로 설정할 수 있다. 예를 들면 자동모드에서 사용자는, 생산품의 정상이미지 상에, 미리 지정된 소정의 모양(예: 직선, 사각형 테두리, 원형 테두리, 사각형 면적(area), 원형 면적)으로 결함영역을 설정할 수 있다. 이렇게 설정된 결함영역을 상기 기설정된 결함영역정보라고 할 수 있다.
자동모드에서 생성모듈(22)(예: 스케치생성기(223))은, 상기 기설정된 결함영역정보와 학습된 가상결함이미지 생성모델을 이용하여, 가상결함스케치(VDS1)를 생성할 수 있다. 스케치생성기(223)는, 기설정된 결함영역(예: 직선, 사각형 테두리, 원형 테두리, 사각형 면적(area), 원형 면적)의 내에서, 가상결함이미지 생성모델을 통해, 자유롭게 또는 자동으로 가상결함스케치(VDS1)를 생성할 수 있다.
가상결함스케치(VDS1)는 생산품의 이미지가 제거된, 가상결함만 존재하는 스케치라고 할 수 있다. 가상결함스케치(VDS1)는 모양뿐 아니라 그 위치에 대한 정보, 결함유형에 대한 정보도 함께 포함할 수 있다. 도 4에 가상결함스케치(VDS)의 예시가 도시되어 있다.
이후 이미지생성기(224)는, 가상결함스케치(VDS1)를 정상이미지(OI)에 더하여(예: 중첩하거나 합성처리를 통해), 가상결함이미지(VDI)를 생성할 수 있다.
본 발명의 일 실시예에 따르면, 수동모드에서 생성모듈(22)은, 사용자가 가상결함을 발생시킬 영역을 직접 그리는(즉, 스케치하는) 입력에 기반한 수동영역정보와, 상기 동일한 가상결함이미지 생성모델을 이용하여, 가상결함스케치(VDS2)를 생성할 수 있다. 수동모드에서는, 사용자가 가상결함을 만들 수동영역을 직접 스케치하기 때문에, 자동모드처럼 결함영역정보가 기설정될 필요가 없다. 따라서 수동모드에서는, 결함영역정보가 사용되지 않을 수 있다.
또한 수동모드에서는, 사용자가 직접 스케치한 수동영역에 대응하는 가상결함스케치(VDS2)를 생성하기 때문에, 스케치생성기(223)가 불필요하다. 따라서 수동모드에서는 스케치생성기(223)가 사용되지 않을 수 있다.
한편, 사용자는, 수동영역을 스케치할 때, 상기 수동영역에 발생시킬 결함의 종류인 결함유형을 지정할 수 있다. 따라서 수동영역정보는, 예를 들면 결함유형정보를 포함할 수 있거나, 또는 결함유형정보와 연동 또는 매칭될 수 있다.
자동모드에서 생성모듈(22)은, 상기 수동영역정보와 가상결함이미지 생성모델을 이용하여, 상기 수동영역정보에 대응하는 가상결함스케치(VDS2)를 생성할 수 있다. 가상결함스케치(VDS2)는 생산품의 이미지가 제거된, 가상결함만 존재하는 스케치라고 일 수 있다. 가상결함스케치(VDS2)는 모양뿐 아니라 그 위치에 대한 정보, 결함유형에 대한 정보도 함께 포함할 수 있다.
이후 이미지생성기(224)는, 가상결함스케치(VDS2)를 정상이미지(OI)에 더하여(예: 중첩하거나 합성처리를 통해), 가상결함이미지(VDI)를 생성할 수 있다. 이미지생성기(224)의 동작은, 자동모드와 수동모드에서 공통될 수 있다.
도 5는 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 동작의 예를 나타낸다. 도 5의 동작들은, 프로세서(12)에 의해, 프로그램(16)을 통해 수행될 수 있다.
도 5를 참조하면, S21에서 프로세서(12)는 개발모듈(21)을 통해, 생산품의 제1 정상이미지, 결함이미지, 및 사용자입력에 적어도 기초하여 가상결함이미지 생성모델을 학습할 수 있다. S22에서 프로세서(12)는 생성모듈(22)을 통해, 학습된 가상결함이미지 생성모델을 이용하여, 제2 정상이미지로부터 가상결함이미지를 생성할 수 있다. S23에서 프로세서(12)는 생성모듈(22)을 통해, 생성된 가상결함이미지를 메모리(15)에 저장할 수 있다. 저장된 가상결함이미지는 예를 들면, 결함검출모델을 학습하기 위해 학습데이터로 사용될 수 있다.
생성모델 학습 단계(S21)에서 (또는 개발모듈(21)에서) 사용되는 제1 정상이미지는, 가상결함이미지 생성 단계(S22)에서 (또는 생성모듈(22)에서) 사용되는 제2 정상이미지와 동일할 수도 있고, 상이할 수도 있다.
일 예를 들면, S21에서 개발모듈(21)은 가상결함이미지 생성모델을 학습하기 위하여, 생산품의 제1 정상이미지 및 상기 생산품의 결함이미지가 필요하다. 따라서 생산품의 정상이미지 및 결함이미지의 수량이 다소(예를 들면 수 내지 수십 장 이상, 다만 이에 한정되지 않음) 확보된 경우에, 상기 생산품의 정상이미지가 개발모듈(21)에서 제1 정상이미지로 사용될 수 있다.
이에 반하여, S22에서 생성모듈(22)은 결함이미지를 필요로 하지 않는다. 생성모듈(22)은 가상결함이미지 생성모델을 이용하여 정상이미지(즉, 제2 정상이미지)로부터 완전한 가상의 결함이미지(즉, 가상결함이미지)를 새로이 생성하기 위한 모듈이다. 따라서 생성모듈(22)에서 사용되는 제2 정상이미지는, 개발모듈(21)에서 로드되는 제1 정상이미지와 꼭 동일할 필요는 없다.
이하에서 제1 정상이미지는 생성모델 학습 단계(S21)에서 (또는 개발모듈(21)에서) 학습데이터로 사용되는 정상이미지를 지칭하기로 한다. 이하에서 제2 정상이미지는, 가상결함이미지 생성 단계(S22)에서 (또는 생성모듈(22)에서) 가상결함이미지 생성의 기초가 되는 정상이미지를 지칭하기로 한다.
일 실시예에 따르면, 제1 정상이미지와 제2 정상이미지가 서로 동일할 수 있다. 이 실시예의 경우 제1 정상이미지의 생산품과 제2 정상이미지의 생산품은 당연히 동일한 생산품이다.
다른 실시예에 따르면, 같은 생산품의 서로 다른 제1 정상이미지와 제2 정상이미지가 사용될 수 있다. 즉, 동일 종류의 동일 버전의 생산품의 여러 개의 정상이미지들 중에서, 서로 다른 정상이미지가 각각 제1 정상이미지와 제2 정상이미지로 사용될 수 있다.
또 다른 실시예에 따르면, 넓은 의미의 종류는 서로 동일하나 세부적 특징(예: 규격 또는 버전)이 서로 다른 제1 생산품과 제2 생산품이 있을 때, 제1 생산품의 정상이미지가 제1 정상이미지로 사용되고, 제2 생산품의 정상이미지가 제2 정상이미지로 사용될 수 있다. 따라서, 결함이미지가 없거나 매우 적은 제2 생산품의 가상결함이미지를 생성하고 싶은 경우, 결함이미지가 충분히 존재하는 제1 생산품을 이용하여 가상결함이미지 생성모델을 학습한 뒤, 상기 학습된 가상결함이미지 생성모델을 이용하여 제2 생산품의 정상이미지(즉, 제2 정상이미지)로부터 제2 생산품의 가상결함이미지를 생성할 수 있다.
도 6은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델을 학습하기 위한 전자 장치(10)의 동작의 예를 나타낸다. 도 6의 동작들은, S21의 구체적 예시일 수 있으며, 프로세서(12)에 의해 수행될 수 있으며, 프로그램(16)의 개발모듈(21)을 통해 수행될 수 있다.
도 6를 참조하면, S211에서 프로세서(12)는 개발모듈(21)(예: 데이터베이스 모듈(211))을 통해, 데이터베이스를 수집 및 저장(또는 임시적으로 저장)할 수 있다. 이는, 가상결함이미지 생성모델을 학습하기 위한 데이터베이스를 구축하기 위한 것이다. S211의 상세한 동작에 대한 설명은, 도 8 및 그 이하에서 상세히 후술된다.
S212에서 프로세서(12)는 개발모듈(21)(예: 전처리 모듈(212))을 통해, 상기 수집된 데이터베이스에 전처리(preprocess)를 수행할 수 있다. 상기 전처리는 가상결함이미지 생성모델을 학습하기 위한 전처리이다. S212의 상세한 동작에 대한 설명은, 도 13 및 그 이하에서 상세히 후술된다.
S213에서 프로세서(12)는 개발모듈(21)(예: 훈련 모듈(213)을 통해, 상기 데이터베이스 및 상기 전처리를 기반으로, 가상결함이미지 생성모델을 학습(또는 훈련)할 수 있다.
도 7은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 프로그램(16)의 일 화면(A7)의 예를 나타낸다
도 7을 참조하면, 프로그램(16)이 실행되면, 프로세서(12)는, 가상결함이미지 생성모델에 대한 새로운 프로젝트(new project)를 생성하기 위한 화면(A7)을 표시하도록 표시 장치(13)를 제어할 수 있다. 화면(A7)은, 가상결함이미지를 생성하기 위한 아이콘(71)과, 생성된 가상결함이미지를 이용하여 결함검출모델을 학습하기 위한 아이콘(72)을 포함할 수 있다. 예를 들면 프로세서(12)는, 가상결함이미지를 생성하기 위한 아이콘(71)에 대한 사용자입력에 기반하여, 프로그램(16)(또는 프로세서(12), 메모리(15))의 하위 모듈인 개발모듈(21)로 진입하기 위한 개발기 아이콘(73) 및 다른 하위 모듈인 생성모듈(22)로 진입하기 위한 생성기 아이콘(74)을 표시할 수 있다. 결함검출모델을 학습하기 위한 아이콘(72)은, 검출모듈(또는 분류모듈)(미도시)에 대응할 수 있다.
프로세서(12)가 개발기 아이콘(73)에 대한 사용자입력을 수신하면, 개발모듈(21)을 통해 가상결함이미지 생성모델을 학습하기 위한 과정(S1)으로 진입할 수 있다. 예를 들어 개발모듈(21)은, 가상결함이미지 생성모델을 학습하는 프로젝트를 생성할 수 있다. 상기 프로젝트에서 가상결함이미지 생성모델 학습 과정(S1)을 통해, 개발모듈(21)은 학습된 가상결함이미지 생성모델(E2)을 출력 및 저장할 수 있다.
프로세서(12)가 생성기 아이콘(74)에 대한 사용자입력을 수신하면, 생성모듈(22)을 통해, 상기 저장된 가상결함이미지 생성모델(E2)을 이용한 가상결함이미지 생성 과정(S2)으로 진입할 수 있다. 예를 들어, 생성모듈(22)은 정상이미지(제2 정상이미지)로부터 가상결함이미지를 생성하는 프로젝트를 생성할 수 있다. 상기 프로젝트에서 생성모듈(22)은 하나 이상의 가상결함이미지(E3)를 생성 및 저장할 수 있다.
도 8은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델을 학습하기 위해 데이터베이스를 구축하는 전자 장치(10)의 동작의 예를 나타낸다. 도 10 내지 도 12는 본 발명의 일 실시예에 따른 데이터베이스를 구축하는 화면들의 예를 나타낸다.
도 8의 동작들은, 도 6의 S211의 구체적 예시일 수 있으며, 프로세서(12)에 의해 수행될 수 있으며, 프로그램(16)의 개발모듈(21)(예: 데이터베이스 모듈(211)을 통해 수행될 수 있다.
도 8을 참조하면, S2111에서 프로세서(12)는 개발모듈(21)(예: 데이터베이스 모듈(211))을 통해, 하나 이상의 버전(version)의 생산품 각각에 대한 식별정보(예: 이름)를 입력받아 저장할 수 있다. 여기서 하나 이상의 버전의 생산품이란, 넓은 의미의 종류는 서로 동일하나 세부적 특징(예: 규격 또는 버전)이 서로 다른 하나 이상의 생산품들을 의미할 수 있다. 예를 들어 하나 이상의 버전의 생산품이란 모양, 색상, 및 나타나는 결함의 유형이 비슷한 생산품들을 의미할 수 있다.
예를 들면 프로젝트는, 동일 종류이자 동일 버전의 생산품의 이미지들(즉, 제1 정상이미지 및 결함이미지)로부터 가상결함이미지 생성모델을 학습할 필요는 없다. 상기 프로젝트는, 동일한 종류이지만 세부적 규격, 버전이 다른 생산품들로부터 하나의 가상결함이미지 생성모델을 학습할 수 있다.
따라서, 프로세서(12)는 S2111에서 하나 이상의 버전의 생산품 각각에 대한 식별정보를 저장하여 구분할 수 있다.
예를 들어 도 9는 하나 이상의 버전(version)의 생산품의 예시를 나타낸다. 도 9를 참조하면, 상기 프로젝트는, 가상결함이미지 생성모델을 학습하기 위하여, 제1 생산품인 제1 트랜지스터(91)의 이미지들(즉, 제1 정상이미지 및 결함이미지)을 사용하고, 제2 생산품인 제2 트랜지스터(92)의 이미지들를 사용할 수 있다.
도 10을 참조하면, 화면(A10)은 하나 이상의 버전(version)의 생산품 각각에 대한 식별정보(예: 이름)를 입력받는 화면을 나타낸다. 예를 들어 프로세서(12)는, 학습에 사용할 생산품을 편집하기 위한 아이콘(101)에 대한 사용자입력을 수신하면, 하나 이상의 생산품들을 추가하거나, 삭제하거나, 생산품들의 표시 순서를 바꾸거나, 생산품들의 식별정보(예: 이름)을 수정할 수 있는 편집창(102)을 표시(예: 오버레이)할 수 있다. 편집창(102)을 참조하여 예를 들면, 제1 생산품이 34 Ah 배터리이고, 제2 생산품이 37 Ah 배터리일 수 있다.
일 실시예에 따르면, 이와 같이 복수의 버전의 생산품들의 이미지들을 사용하여 하나의 프로젝트를 통해 하나의 가상결함이미지 생성모델을 학습하는 경우, 한 종류 한 버전인 생산품의 이미지들을 사용하여 가상 결함이미지 생성모델을 학습하는 경우보다, 모델의 성능이 더 좋을 수 있다.
또한, 예를 들어 제1 생산품의 정상이미지 및 결함이미지는 충분히(예: 수십 장 이상) 확보돼있고 제2 생산품의 정상이미지 및 결함이미지는 충분히 확보되지 못한 경우에, 제2 생산품의 결함검출모델을 만들고 싶다면 본 기능이 유용하게 사용될 수 있다. 물론 제1 생산품의 이미지들만으로 가상결함이미지 생성모델을 학습하고, 상기 가상결함이미지 생성모델을 이용하여 제2 생산품의 정상이미지로부터 제2 생산품의 가상결함이미지를 생성하는 것도 가능하다. 다만 예를 들면, 제1 생산품 및 제2 생산품을 둘 다 사용하여 모델을 학습하고, 상기 모델을 이용하여 제2 생산품의 정상이미지로부터 제2 생산품의 가상결함이미지를 생성한다면, 더 품질이 좋은 제2 생산품의 가상결함이미지를 얻는 것이 가능할 수 있다.
일 실시예에 따르면, 모양, 색상, 및 결함유형이 비슷한 복수의 버전의 생산품들을 한 프로젝트에 추가함으로써 학습 효과를 향상시킬 수 있다.
한편 데이터베이스를 구축하는 화면들(A10, A11, A12)에서는, 데이터베이스를 나타내는 아이콘(103)이 강조 표시될 수 있다.
다시 도 8을 참조하면, S2112에서 프로세서(12)는, 개발모듈(21)(예: 데이터베이스 모듈(211))을 통해, 하나 이상의 버전의 생산품 각각에 대해, 하나 이상의 제1 정상이미지 및 결함이미지를 로드할 수 있다. 상기 로드는 사용자입력에 기반한 입력 및 저장을 포함할 수 있다. 제1 정상이미지는, 상술한 바와 같이, 가상결함이미지 생성모델의 학습에 사용되는 정상이미지를 지칭할 수 있다. 정상이미지는, 상술한 바와 같이, 정상으로 판정된 실제 생산품의 이미지를 나타낸다. 결함이미지는, 상술한 바와 같이, 결함을 가진 것으로 판정된 실제 생산품의 이미지를 나타낸다.
만약 동일 종류이지만 세부적 특징이 다른 제1 생산품 및 제2 생산품을 추가하였다면, 프로세서(12)는 프로그램(16)을 통해, 사용자입력에 기반하여, 제1 생산품에 대해 하나 이상의 제1 정상이미지 및 결함이미지를 입력받고, 제2 생산품에 대해 하나 이상의 제1 정상이미지 및 결함이미지를 입력받을 수 있다.
예를 들어 도 11을 참조하면, 데이터베이스를 구축하기 위한 일 화면(A11)의 예가 도시된다. 도 11 및 그 이하에서는 설명의 편의를 위해, 프로젝트에서 한 버전의 생산품(예: PCB 기판)만 사용하여 가상결함이미지 생성모델을 학습하기 위한 화면들을 예로 들어 설명하기로 한다.
화면(A11)은, "PCB 기판"이 생산품의 식별정보의 예로써 표시된 생산품영역(114)을 포함할 수 있다. 만약 "PCB 기판" 외의 제2 생산품이 등록 또는 추가된다면, 생산품영역(114) 내의 "PCB 기판" 아래에 제2 생산품의 식별정보(예: PCB 기판 2)가 표시됨으로써, 생산품리스트를 나타낼 수 있을 것이다. 상기 제2 생산품은 예를 들면 제1 생산품과 세부적 특징 또는 규격이 다른 PCB 기판일 수 있다.
생산품영역(114)은, 사용자입력에 기반하여 각 생산품에 대한 이미지들(즉, 생산품의 하나 이상의 제1 정상이미지 및 결함이미지)을 로드할 수 있는 아이콘(110)을 포함할 수 있다. 예를 들면, 상기 이미지 로드용 아이콘(110)은, 제1 아이콘(111), 제2 아이콘(112), 제3 아이콘(113)을 포함할 수 있다. 프로세서(12)는 제1 아이콘(111)에 대한 사용자입력에 기초하여 이미지를 각각 로드할 수 있고, 제2 아이콘(112)에 대한 사용자입력에 기초하여 폴더로부터 이미지들을 로드할 수 있고, 제3 아이콘(113)에 대한 사용자입력에 기초하여, 프로젝트(예: 다른 프로젝트)로부터 기저장된 이미지를 로드할 수 있다.
로드되는 이미지는, 하나 이상의 제1 정상이미지들, 및 하나 이상의 결함이미지들을 포함할 수 있다. 바람직하게는 학습의 품질을 위하여, 복수의(예: 수십 장 이상의) 제1 정상이미지들 및 결함이미지들이 각각 로드될 수 있다. 하지만 상기 복수의 결함이미지들은, 결함검출모델(E4)의 학습데이터로 직접 사용되기에는 부족한 수량일 수 있다.
화면(A11)은, 로드된 이미지들의 리스트, 또는 로드된 이미지들에 관한 정보를 표시할 수 있는 이미지리스트영역(115)을 포함할 수 있다. 이미지리스트영역(115)은, 도 11에는 미도시 되었지만, 로드된 이미지들의 리스트가 표시될 수 있다. 만약 "PCB 기판" 외의 제2 생산품이 등록된 경우, 이미지리스트영역(115)에는 예를 들면 현재 활성화된 생산품의 이미지 리스트만 표시될 수 있다. 현재 활성화된 생산품이란, 일 예를 들면, 생산품영역(114)에서 선택된 생산품을 의미할 수 있다.
한편 도 11의 이미지리스트영역(115)에는 현재, 로드된 이미지들의 라벨링에 대한 정보가 표시되어 있는데, 라벨링에 대한 상세한 설명은 도 12에서 후술된다.
예를 들면, 화면(A11)에서, 이미지리스트영역(115)에 로드된 이미지들의 리스트들 중 선택된(또는 활성화된) 이미지가 이미지영역(118)에 표시될 수 있다. 이미지영역(118)에 표시되는 이미지는 정상이미지일 수도 있고, 결함이미지일 수도 있다.
다시 도 8을 참조하면, S2113에서 프로세서(12)는, 개발모듈(21)(예: 데이터베이스 모듈(211))을 통해, 하나 이상의 버전의 생산품들에 일괄적으로 적용되는, 결함유형에 대한 정보를 입력받아 저장할 수 있다.
예를 들어 도 11을 참조하면, 화면(A11)은, 결함유형에 대한 정보를 나타내는 결함유형영역(116)을 포함할 수 있다. 결함유형이란 전술한 바와 같이, 생산품에 발생 가능한 결함의 종류들을 지칭활 수 있다. 결함유형은, 사용자입력에 기반하여 설정 또는 생성될 수 있다. 본 문서에서 임의 정보(예: 결함유형, 결함영역 등)가 '생성된다'는 것은, 사용자 인터페이스(UI)를 통해 해당 정보를 생성하는 사용자입력에 응답하여 프로세서(12)가 식별할 수 있는, 해당 정보에 대응하는 식별정보를 생성 및 저장하는 것을 포함할 수 있다.
프로세서(12)는 사용자입력에 기반하여 결함유형이 생성되면, 결함유형에 대한 정보를 저장할 수 있다. 결함유형에 대한 정보는, 예를 들면, 결함유형의 식별번호, 결함유형의 식별이름, 결함유형의 식별색상(119) 등을 포함할 수 있으며, 사용자입력에 기반하여 입력될 수 있다.
결함유형영역(116)을 참조하면, "PCB 기판"으로 식별되는 생산품은, 스크래치(scratch), 찍힘(dent), 깨짐(crack), 그을음(soot)의 결함유형을 포함할 수 있다. 하지만 결함유형은 이에 한정되지 않으며, 생산품의 특성에 따라 사용자입력에 기반하여 다양하게 설정될 수 있다. 예를 들면 본 실시예에는 미도시되었으나, 예를 들면 구부러짐(dent), 특정 색상의 이물 등이 결함유형으로 설정될 수도 있다. 구부러짐(dent)은 예를 들면 블레이드날과 같은 생산품 적용 가능한 결함유형일 수 있다. 특정 색상의 이물은, 예를 들면 특정 접착제나 특정 전해질의 유출로 인한 얼룩이나 오염 등일 수 있다. 이에 한정되지 않는다.
만약 본 프로젝트에, 제1 생산품(식별정보: PCB 기판) 외에 추가로 제2 생산품이 등록된 경우라면, 결함유형은 제1 생산품 및 제2 생산품에 일괄적으로 적용될 수 있어야 한다. 예를 들면, 제2 생산품(예: PCB 기판 2)도, 스크래치, 찍힘, 깨짐, 그을음의 결함이 발생 가능해야 할 수 있다.
일 실시예에 따르면, 결함유형을 모양과 색상 등에 따라 분류함으로써, 학습 성능을 향상시킬 수 있다.
한편, 결함유형의 '식별색상'은 '결함의 색상'과는 다를 수 있다. '결함의 색상'은 특정 이물이 결함이미지에서 실제로 나타내는 색상을 지칭할 수 있다. '식별색상은' 사용자입력에 기반하여 설정될 수 있다. 결함유형의 식별색상(119)은, 추후에 생성모듈(22)을 통해 가상결함이미지가 생성되었을 때, 각 가상결함이미지가 어떤 결함유형을 포함하고 있는지를 나타내기 위한 표시일 수 있다.
일 예를 들면, 결함유형영역(116)은 결함유형 편집아이콘(117)을 포함할 수 있다. 프로세서(12)는, 결함유형 편집아이콘(117)에 대한 사용자입력을 수신하면, 결함유형을 추가하거나, 삭제하거나, 결함유형들의 표시 순서를 바꾸거나, 결함유형의 식별이름을 수정하거나, 결함유형 식별색상을 변경할 수 있는, 편집창(미도시)을 표시(오버레이)할 수 있다. 즉, 결함유형 편집아이콘(117)을 통해 사용자는 결함유형에 대한 정보를 편집할 수 있다.
다시 도 8을 참조하면, S2114에서 프로세서(12)는, 개발모듈(21)(예: 데이터베이스 모듈(211))을 통해, 로드된 제1 정상이미지 및 결함이미지에 대하여, 정상 또는 결함유형을 라벨링할 수 있다.
예를 들어 도 12를 참조하면, 화면(A12)은, 이미지영역(118)에 표시된 이미지에 대하여 라벨링을 수행하는 화면의 예를 나타낸다.
이미지영역(118)은, 라벨링도구아이콘(121)을 표시할 수 있다. 예를 들면 사용자는, 로드된 이미지들 각각에 대하여 라벨링을 수행할 수 있는데, 이미지영역(118)에 표시된 이미지가 정상이미지인 경우, 라벨링도구아이콘(121)을 이용하여 정상임을 라벨링할 수 있다. 또한 이미지영역(118)에 표시된 이미지가 결함이미지인 경우, 사용자는 이미지가 갖는 결함유형을 선택하고, 라벨링도구아이콘(121)을 사용하여 이미지 상에 해당 결함유형의 결함이 발생한 영역을 표시(예: 입력 장치(14)를 이용하여 표시)함으로써 라벨링할 수 있다.
예를 들어 이미지영역(118)에 표시된 이미지가 깨짐(crack) 유형의 결함을 갖는 경우, 사용자는 결함유형영역(116)에서 해당하는 결함유형(즉, 깨짐(crack))을 선택하고, 라벨링도구아이콘(121)을 사용하여, 표시된 이미지 상에 깨짐 결함이 발생한 영역을 직접 그리거나 색칠하는 사용자입력을 가할 수 있다. 이 때, 상기 그려진 영역 또는 색칠된 영역(즉, 결함이 발생한 영역)은, 결함유형의 식별색상(119)에 해당하는 색상으로 나타날 수 있다. 예를 들어 깨짐의 결함유형의 식별색상(119)이 빨간색인 경우, 이미지에서 깨짐 결함이 발생한 영역을 사용자가 그리거나 색칠할 경우 빨간색으로 나타날 수 있다. 하지만 이에 한정되는 것은 아니다.
일 실시예에 따르면, 한 장의 결함이미지가 복수 개의 결함유형을 포함하는 것도 가능하다. 라벨링정보영역(122)에는, 표시된 이미지의 라벨링정보(예: 결함유형에 대한 정보, 또는 정상이미지임을 나타내는 정보)가 표시될 수 있다.
예를 들어 한 장의 결함이미지에 복수 개의 결함유형에 대한 라벨링이 수행된 경우, 라벨링정보영역(122)에는 해당하는 복수개의 결함유형에 대한 정보가 모두 표시될 수 있다.
예를 들면 프로세서(12)는 라벨링 동작이 수행될 때, 각 이미지마다 라벨링정보(예: 결함유형에 대한 정보, 해당 결함유형의 발생 영역에 대한 정보, 또는 정상이미지임을 나타내는 정보)를 매치하여 저장할 수 있다.
전술한 도 8 내지 도 12에 대한 설명과 같이, 가상결함이미지 생성모델을 학습하기 위한 데이터베이스가 구축될 수 있다(S211). 데이터베이스를 구축하는 화면들(A10, A11, A12)에서는, 데이터베이스를 나타내는 아이콘(103)이 강조 표시될 수 있다.
도 13은 본 발명의 일 실시예에 따른 가상결함이미지 생성모델의 학습을 위해, 데이터베이스에 전처리를 수행하는 전자 장치(10)의 동작의 예를 나타낸다. 도 14 내지 도 18은 본 발명의 일 실시예에 따른 전처리를 수행하기 위한 화면들의 예를 나타낸다.
도 13의 동작들은, 도 6의 S212의 구체적 예시일 수 있으며, 프로세서(12)에 의해 수행될 수 있으며, 프로그램(16)의 개발모듈(21)(예: 전처리 모듈(212)을 통해 수행될 수 있다.
도 13을 참조하면, S2121에서 프로세서(12)는 개발모듈(21)(예: 전처리 모듈(212))을 통해, 하나 이상의 로드된 제1 정상이미지들 중에서 대표이미지를 설정할 수 있다. 대표이미지는 이미지들의 정렬(S2122)의 기준이 될 수 있으며, 각 결함유형이 발생 가능한 영역인 결함영역을 설정(S2123)하기 위해 이용될 수 있다. 대표이미지는 정상이미지들(즉, 제1 정상이미지들) 중에서 설정될 수 있다.
예를 들어 도 14를 참조하면, 대표이미지 설정에 관한 화면(A14)이 도시된다. 예를 들면, 저장된 라벨링정보를 이용하여, 이미지리스트영역(115)에 정상이미지들(즉, 정상으로 라벨링된 이미지들)을 모아서 표시할 수 있다. 상기 정상이미지들의 리스트 중에서 일 정상이미지를 선택하는 사용자입력에 기초하여, 선택된 정상이미지가 이미지영역(118)에 표시될 수 있다. 예를 들면, 대표이미지설정아이콘(141)에 대한 사용자입력에 기초하여, 이미지영역(118)에 표시된 정상이미지(예: test_good_008.png)가 대표이미지로 설정 및 저장될 수 있다.
다시 도 13을 참조하면, S2122에서 프로세서(12)는 개발모듈(21)(예: 전처리 모듈(212)을 통해, 상기 설정된 대표이미지를 기준으로, 로드 및 라벨링된 제1 정상이미지들 및 결함이미지들을 정렬(align)할 수 있다. 예를 들면, 이미지리스트영역(115)에 리스팅된 이미지들을 정렬할 수 있다.
일 실시예에 따르면, 정렬(alignment)은 세 가지 타입 중 하나로 수행될 수 있다. 세 가지 타입은, 비정렬(none)타입, 트랜스(trans)타입, 어파인(affine)타입을 포함한다. 비정렬타입은 정렬을 수행하지 않는 옵션이다. 트랜스타입은 이미지의 평행이동을 통해 정렬을 수행하는 옵션이다. 어파인타입은 이미지를 회전, 크기변경, 및 평행이동함으로써 정렬을 수행하는 옵션이다.
예를 들어 도 14를 참조하면, 화면(A14)은, 정렬옵션영역(142)을 포함할 수 있다. 정렬옵션영역(142)에는, 비정렬(none)타입으로 진행하기 위한 비정렬 아이콘(143), 트랜스(trans)타입으로 정렬하기 위한 트랜스 아이콘(144), 어파인(affine)타입으로 진행하기 위한 어파인 아이콘(145)이 표시될 수 있다.
프로세서(12)는 비정렬 아이콘(143)에 대한 사용자입력을 수신하면, 라벨링된 복수의 이미지들의 정렬을 수행하지 않고 다음 단계로 넘어갈 수 있다. 예를 들어 사용자는, 라벨링된 복수의 이미지들이 모두 잘 정렬돼있는 경우, 비정렬 아이콘(143)을 선택할 수 있다.
도 15의 (a)를 참조하면, 정렬옵션영역(142)에서 트랜스 아이콘(144)을 선택한 경우, 대표이미지 상에 정렬의 기준이 되는 부품 또는 부품의 위치정보를 표시할 수 있다. 바람직하게는 부품(또는 부품의 위치정보)의 개수를 세 개 설정할 수 있다. 다만 이에 한정되지 않는다. 예를 들면, 정렬옵션영역(142)에서 트랜스 아이콘(144)을 선택한 경우, 추가버튼(151) 및 선택버튼(152)을 통해 부품(또는 부품의 위치)를 선택할 수 있고, 삭제버튼(153)을 통해 부품의 선택을 삭제할 수 있다. 일 예를 들면, 도 16의 1점쇄선으로 표시된 바와 같이 부품(또는 부품의 위치)를 선택할 수 있다.
프로세서(12)는 트랜스타입으로 정렬을 수행하는 경우, 복수의 이미지들에서 부품(또는 부품의 위치정보)를 식별할 수 있고, 식별된 부품의 위치정보에 따라 복수의 이미지들을, 대표이미지의 배치에 상응하게 평행이동함으로써, 정렬할 수 있다. 트랜스타입은, 모든 이미지들의 크기가 같을 때 적용 가능할 수 있다.
도 15의 (b)를 참조하면, 정렬옵션영역(142)에서 어파인 아이콘(145)을 선택한 경우, 대표이미지 상에 생산품의 영역을 설정할 수 있다. 예를 들면, 정렬옵션영역(142)에서 어파인 아이콘(145)을 선택한 경우, 관심영역설정버튼(154)을 통해 생산품이 차지하는 영역을 관심영역(region of interest, ROI)으로 설정할 수 있다. 일 예를 들면, 도 16의 1점쇄선으로 표시된 바와 같이 생산품이 차지하는 영역인 관심영역(ROI)을 선택할 수 있다.
프로세서(12)는 어파인타입으로 정렬을 수행하는 경우, 복수의 이미지들 각각에 나타난 생산품이 차지하는 영역이, 상기 관심영역(ROI)과 동일한 모양을 가지도록, 상기 복수의 이미지들 중 적어도 일부에 변형을 가할 수 있다.
도 14를 참조하면 프로세서(12)는, 정렬옵션영역(142)에서 정렬옵션에 관한 선택이 완료되면, 정렬 아이콘(146)에 대한 사용자입력에 기초하여, 해당 생산품의 모든 라벨링된 이미지들에 정렬을 수행할 수 있다.
본 프로젝트에 복수의 생산품이 추가된 경우, 프로세서(12)는 사용자입력에 기초하여, 각 생산품마다 상기 정렬 과정을 수행할 수 있다. 각 생산품마다 다른 정렬옵션이 적용될 수 있다.
프로세서(12)는 프로그램(16)을 통해, 정렬이 제대로 수행되지 않은 이미지에 대하여 별도의 표시를 나타낼 수 있고, 사용자 입력에 기반하여 상기 정렬이 제대로 수행되지 않은 이미지는 삭제될 수 있다.
한편, 전처리를 수행하는 화면들(A14, A17, A18)에서는, 전처리를 나타내는 아이콘(147)이 강조 표시될 수 있다.
다시 도 13을 참조하면, S2123에서 프로세서(12)는 개발모듈(21)(예: 전처리 모듈(212)을 통해, 상기 설정된 대표이미지 상에, 각 결함유형이 생길 수 있는 결함영역에 대한 정보를 입력받아 저장할 수 있다.
예를 들어 도 17을 참조하면, 프로세서(12)는, 화면(A17)을 통해, 상기 설정된 대표이미지(171) 상에 결함영역을 설정하는 사용자입력을 수신할 수 있다. 예를 들어, 결함영역을 설정하는 단계에서 이미지영역(118)은, 대표이미지(171) 상에 결함영역을 설정하기 위한 결함영역설정아이콘들(172)을 표시할 수 있다.
예를 들면, 사용자는 결함유형영역(116)에서 임의의 결함유형을 선택한 뒤, 대표이미지(171) 상에서, 결함영역설정아이콘들(172)을 사용하여, 해당 결함유형의 결함이 발생 가능한 영역을 표시할 수 있다. 결함영역설정아이콘들(172)은, 미리 지정된 소정의 모양(예: 직선, 사각형 테두리, 원형 테두리, 사각형 면적(area), 원형 면적)으로 사용자가 결함영역을 표시할 수 있게 한다.
결함영역이란, 결함유형에 대응하는 결함이 발생가능한 영역을 나타낼 수 있다. 결함영역은, 라벨링을 위해 표시하는 결함이 발생한 영역과는 다르다. 라벨링 단계에서는, 각각의 결함이미지 상에 각 결함이 생긴 영역을 표시한다. 하지만, 결함영역을 표시하는 것은, 각각의 결함유형이 생길 수 있는 영역을 대표이미지 상에 각각 표시하는 것일 수 있다.
예를 들어, 직사각형인 생산품(예: PCB 보드)의 전체 영역에서 찍힘(dent) 결함이 발생가능한 경우, 사용자는, 프로그램(16)의 사용자인터페이스(UI)를 통해 다음과 같은 사용자입력을 수행할 수 있다. 사용자는 결함유형영역(116)에서 찍힘(dent) 결함유형을 선택하고, 결함영역설정아이콘들(172) 중에서 직사각형 영역을 그릴 수 있는 일 아이콘을 선택하고, 대표이미지(171) 상에서 찍힘 결함이 발생 가능한 생산품 전체 영역(즉, 직사각형 영역)에 결함영역을 그릴 수 있다. 대표이미지 상에 그려진 결함영역은, 해당 결함유형(dent)의 식별색상(예: 노란색)으로 그려질 수 있다.
다른 예를 들어, 도 18의 화면(A18)을 참조하면, 생산품(예: PCB 기판)의 모서리에서 깨짐(crack) 결함이 발생가능한 경우, 및 생산품의 모서리의 경계가 직선일 경우, 사용자는 프로그램(16)의 사용자인터페이스(UI)를 통해 다음과 같은 사용자입력을 수행할 수 있다.
사용자는 결함유형영역(116)에서 깨짐(crack) 결함유형을 선택하고, 결함영역설정아이콘들(172) 중에서 직선을 그릴 수 있는 일 아이콘을 선택하고, 대표이미지(171) 상에서 깨짐 결함이 발생 가능한 PCB 기판의 모서리(즉, 직선 영역)에 결함영역을 그릴 수 있다. 도시된 바와 같이, 하나의 결함유형(예: 깨짐)에 대해 복수의 결함영역이 설정될 수 있다. 대표이미지 상에 그려진 결함영역은, 해당 결함유형(예: crack)의 식별색상(예: 빨간색)으로 그려질 수 있다.
다시 도 13을 참조하면, S2124에서 프로세서(12)는 개발모듈(21)(예: 훈련모듈(213))을 통해 정렬된 하나 이상의 제1 정상이미지 및 결함이미지, 라벨링정보, 결함영역에 대한 정보를 이용하여 가상결함이미지 생성모델을 학습할 수 있다. S2124는 도 6의 S213에 상응하는 동작일 수 있다.
예를 들어 도 19를 참조하면, 학습을 수행하기 위한 화면(A19)이 도시된다. 화면(A19)을 통해, 다양한 학습 파라미터들이 입력될 수 있다.
화면(A19)을 참조하면, 일 실시예에 따르면, 학습은 프리-스테이지(pre-stage) 및 메인-스테이지(main stage)의 두 단계로 구성될 수 있다. 프리-스테이지는 학습을 시작하기에 앞서 필요한 전처리 작업을 수행하는 이터레이션(iteration)을 나타내며, 반복 횟수를 설정할 수 있다. 메인-스테이지의 학습의 반복 횟수도 사용자입력에 기반해 설정될 수 있다.
학습이 가시화 간격(visualization interval) 횟수만큼 반복될 때마다, 학습된 모델이 생성한 샘플 이미지를 확인할 수 있다. 상기 가시화 간격 횟수도 사용자에 의해 입력될 수 있다.
본 발명의 일 실시예에 따르면, 훈련을 위한 화면(A19)에 나타나는 생산품영역(191)에서, 학습에 사용할 적어도 하나의 생산품이 선택될 수 있다.
본 기능에 따르면, 복수의 버전의 생산품들(예: 제1 생산품, 제2 생산품 등)에 대해 데이터베이스 수집(S211, 도 6 참조) 및 전처리(S212)를 한 번에 수행한 뒤, 학습 단계(S213)에서는 복수의 버전의 생산품들 중에서 학습에 사용할 생산품들을 선택해가며 복수의 모델을 학습(또는 생성)할 수 있다. 본 기능을 통해, 상기 복수의 모델 중, 성능이 제일 좋은 모델을 선택하여 가상결함이미지 생성모델로 사용하는 것도 가능할 수 있다.
마찬가지로, 훈련을 위한 화면(A19)에 나타나는 결함유형영역(192)에서, 학습에 사용할 적어도 하나의 결함유형이 선택될 수 있다. 상기 결함유형의 선택에 따라, 다양한 버전의 모델을 학습할 수 있다.
도 20은 본 발명의 일 실시예에 따른 가상결함이미지를 생성하기 위한 전자 장치(10)의 동작의 예를 나타낸다. 도 20의 동작들은, 프로세서(12)에 의해, 프로그램(16)을 통해 수행될 수 있다.
도 20을 참조하면, S21에서 프로세서(12)는, 프로그램(16)(예: 개발모듈(21))을 통해, 제1, 정상이미지, 결함이미지, 및 사용자입력에 적어도 기초하여 가상결함이미지 생성모델을 학습할 수 있다. 이는 전술한 도 5의 S21, 도 6 및 그 이하의 도면에서 설명한 내용에 상응한다.
S21에서 프로세서(12)는 프로그램(16)(예: 생성모듈(22))을 통해, 사용자입력에 기반하여, 가상결함이미지를 자동모드로 생성할 수도 있고(S221) 수동모드로 생성할 수도 있다(S222). 예를 들면 자동모드 생성(S221)은, 제2 정상이미지, 및 기설정된 결함영역에 대한 정보를 이용하여, 가상결함이미지 생성모델을 통해 가상결함이미지를 생성하는 것이다. 예를 들면, 수동모드 생성(S222)은, 제2 정상이미지, 및 사용자가 결함을 발생시킬 영역을 직접 그리는 입력에 기반한 수동영역정보를 이용하여, 상기 동일한 가상결함이미지 생성모델을 통해, 가상결함이미지를 생성하는 것이다. 이에 대한 설명은 도 4에서 전술한 바 있으며, 이하의 도면에서 상세히 후술하고자 한다.
S23에서 프로세서(12)는, 프로그램(16)(예: 생성모듈(22))을 통해, 생성된 가상결함이미지를 메모리(15)에 저장할 수 있다. 저장된 가상결함이미지는 예를 들면, 결함검출모델을 학습하기 위해 학습데이터로 사용될 수 있다.
한편, 이하에서 자동모드 생성(S221)과 수동모드 생성(S222) 동작에 대해 상세히 설명하고자 한다.
도 21 내지 도 27은 본 발명의 일 실시예에 따른 자동모드(auto mode) 생성을 수행하기 위한 화면들의 예를 나타낸다.
우선, S21에서 생성되어 저장된 가상결함이미지 생성모델을 이용하여 가상결함이미지를 생성하기 위해, 프로세서(12)는 도 7의 화면(A7)의 생성기 아이콘(74)에 대한 사용자입력을 수신할 수 있다. 생성기 아이콘(74)에 대한 사용자입력을 수신하는 것에 기초하여 프로세서(12)는 가상결함이미지를 생성하기 위한 과정(S2)으로 진입할 수 있다.
이후 자동모드를 선택하는 소정의 사용자입력에 기초하여, 도 21의 화면(A21)이 표시될 수 있다. 화면(A21)은, 해당 프로젝트에서 학습되어 저장된 각종 가상결함이미지 생성모델들의 목록(219)을 표시할 수 있다. 가상결함이미지 생성모델들의 목록(219) 중에서, 가상결함이미지 생성에 사용할 모델을 선택할 수 있다.
생산품영역(218)에는 상기 선택된 모델의 학습에 사용된 하나 이상의 버전의 생산품들의 목록이 표시될 수 있다. 생산품영역(218)에 표시된 하나 이상의 버전의 생산품들 중에서, 가상결함이미지 생성에 사용할 생산품을 선택할 수 있다.
생산품영역(218)에서 소정의 아이콘("Load with a new product")에 대한 사용자입력을 가하면, 학습에 사용되지 않은 새로운 생산품에 대한 가상결함이미지를 생성할 수 있다. 예를 들면 프로세서(12)는, 상기 아이콘에 대한 사용자입력에 기초하여, 새로운 생산품을 등록(또는 추가)할 수 있는 창을 표시(예: 오버레이)할 수 있다.
예를 들면, 가상결함이미지 생성모델의 학습에 제1 생산품의 이미지만 사용된 경우에도, 생성 단계(S2)에서, 제1 생산품과 종류는 같고 세부적 특징(예: 버전 또는 규격)만 다른 제2 생산품의 제2 정상이미지만 가지고, 상기 학습된 가상결함이미지 생성모델을 이용하여 제2 생산품의 가상결함이미지를 생성할 수 있다.
사용자의 선택에 기초하여, 선택된 가상결함이미지 생성모델 및 선택된 생산품에 관한 정보가 프로그램(16)(예: 생성모듈(22))에 로드될 수 있다.
이후 도 22를 참조하면, 가상결함이미지 생성의 기초가 되는, 상기 선택된 생산품에 대한 템플릿이미지들이 템플릿이미지영역(229)에 로드될 수 있다. 템플릿이미지는, 선택된 생산품의 정상이미지로써, 전술한 제2 정상이미지로 지칭될 수 있다. 템플릿이미지는 도 22에 도시된 바와 같이 하나일 수도 있지만, 복수 개의 템플릿이미지를 로드할 수도 있다. 예를 들면 템플릿이미지에 기초하여 생성될 가상결함이미지의 다양성을 위해, 복수 개의 템플릿이미지가 사용될 수 있다.
가상결함이미지 생성을 위해선, 복수 개의 템플릿이미지(즉, 복수 개의 제2 정상이미지)를 로드한 경우 복수 개의 템플릿이미지들이 정렬될 필요가 있다. 만약 학습에 사용된 생산품이 선택된(또는 로드된) 경우, 개발모듈(21)에서 전처리 과정에서 설정된 정렬 정보가 그대로 적용될 수 있다.
한편, 학습에 사용되지 않은 새로운 생산품이 로드된 경우, 본 단계(S221, 자동모드 생성 단계)에서 하나 이상의 템플릿이미지들의 대표이미지 설정 및 상기 템플릿이미지들의 정렬이 새로이 수행되어야 할 수 있다. 예를 들면 정렬옵션영역(228)을 통해 복수 개의 템플릿이미지들을 대표이미지(즉, 대표 템플릿이미지)의 배치에 상응하게 정렬할 수 있다. 정렬 방법은, 도 14 내지 도 16을 통해 설명한 정렬 방법에 상응할 수 있다. 따라서 설명을 생략한다.
이후 도 23을 참조하면, 자동모드 생성을 위해 화면(A23)을 통해, 각 결함유형이 발생가능한 영역인, 결함영역이 필요할 수 있다. 즉, 결함유형 별 결함영역정보가 필요할 수 있다. 만약 학습에 사용된 생산품이 선택된(또는 로드된) 경우, 개발모듈(21)에서 전처리 과정에서 설정된 결함영역정보가 그대로 적용될 수 있다.
한편, 학습에 사용되지 않은 새로운 생산품이 로드된 경우, 본 단계(S221, 자동모드 생성 단계)에서 하나 이상의 템플릿이미지들의 대표이미지에 대하여 결함영역정보가 새로이 설정되어야 할 수 있다. 예를 들면, 사용자는 결함유형영역(239)에서 결함유형을 선택하고, 결함영역설정아이콘들(238)을 사용하여, 결함유형별 마다 발생가능한 결함영역을 설정 또는 표시할 수 있다.
한편 이 단계에서는, 모델의 학습 과정에서 설정된 결함영역과 연동 가능한 결함영역만 설정 가능할 수 있다. 일 예를 들면, 결함영역으로써 직선과 사각형 테두리는 서로 연동될 수 있다. 또한 예를 들면, 결함영역으로써 사각형 면적(area)과 원형 면적은 서로 연동될 수 있다. 예를 들면 학습 과정에서(즉 개발 단계에서) 특정 결함유형의 결함영역으로 사각형 면적이 설정되어 있다면, 본 단계에서(즉, 자동모드 생성 단계에서) 상기 결함유형의 결함영역으로 사각형 면적 또는 원형 면적만 설정 가능할 수 있다.
한편 결함영역 설정은 자동모드 생성을 위해 필요한 과정일 수 있다. 자동모드에서 생성모듈(22)은, 이렇게 설정된 결함영역 범위 내에서 자유롭게 또는 자동으로 가상결함스케치를 생성하여, 템플릿이미지에 가상결함스케치를 중첩 또는 합성할 수 있다. 결함영역 설정 방법은, 도 17 내지 도 18에서 설명한 결함영역 설정 방법에 상응할 수 있으므로, 자세한 설명을 생략한다.
이후 도 24의 화면(A24)의 생성 버튼(249)을 통해 자동모드로 가상결함이미지를 생성할 수 있다. 자동모드로 가상결함이미지 생성 과정은, 도 4에서 설명한 자동모드 생성 과정에 상응할 수 있으므로, 자세한 설명은 생략하고 간략히 설명하기로 한다.
자동모드에서 프로세서(12)는, 상기 설정된 결함영역정보 및 가상결함이미지 생성모델을 이용하여, 가상결함이미지를 생성할 수 있다(S221). 예를 들면 프로세서(12)는, 상기 설정된 결함영역정보 및 가상결함이미지 생성모델을 이용하여 가상결함스케치(VDS)를 생성할 수 있다. 예를 들면 가상결함스케치(VDS)는, 임의 결함유형이 발생가능한 결함영역 상에서 자유롭게 배치되도록 생성된 스케치일 수 있다. 가상결함스케치(VDS)는 예를 들면 색상 정보, 모양 정보, 배치(위치) 정보(예를 들면, 픽셀 정보)를 포함할 수 있다. 이후 프로세서(12)는, 템플릿이미지영역(229)에 로드된 제2 정상이미지(즉, 템플릿이미지)에 상기 가상결함스케치를 중첩 또는 합성함으로써 가상결함이미지를 생성할 수 있다.
프로세서(12)는, 화면(A24)의 생성 버튼(249)에 대한 사용자입력을 수신하는 것에 기초하여, 도 25의 화면(A25)을 표시할 수 있다. 프로세서(12)는 제1 입력란(251)을, 통해 생성할 가상결함이미지의 수를 입력받을 수 있다. 프로세서(12)는 제2 입력란(252)을 통해, 한 장에 생성할 결함의 최대 개수를 입력받을 수 있다. 프로세서(12)는, 각 결함유형별로, 생성할 가중치(weight)를 입력받을 수 있다. 프로세서(12)는, 슬라이더(253)를 통해, 각 결함유형별로, 생성할 결함의 최소 크기를 입력받을 수 있다. 프로세서(12)는, 생성 버튼(254)에 대한 사용자입력을 수신하면, 가상결함이미지 생성을 시작할 수 있다.
이후 생성된 가상결함이미지들이 도 26의 화면(A26)을 통해 표시될 수 있다. 화면(A26)의 생성이미지리스트영역(261)에, 생성된 가상결함이미지들의 목록이 나타날 수 있다. 생성이미지리스트영역(261)에 표시된 일 가상결함이미지를 클릭하면, 이미지영역(262)에 해당 가상결함이미지가 표시될 수 있다. 표시된 가상결함이미지에는, 생성된 결함(예: 깨짐(crack))의 위치를 나타내주는, 얇은 테두리가 표시될 수 있다. 얇은 테두리는, 예를 들면, 생성된 결함유형(예: 깨짐(crack))의 식별색상(예: 빨간색)으로 표시될 수 있다.
도 27은, 자동모드로 생성된 가상결함이미지(VDI)들의 예시를 나타낸다. 왼쪽 위 사진은 그을음(soot)을 나타내고, 오른쪽 위 사진은 스크래치(scratch)를 나타내고, 왼쪽 아래 사진은 찍힘(dent)을 나타내고, 오른쪽 아래 사진은 깨짐(crack)을 나타낼 수 있다.
다시 도 26을 참조하여, 사용자는 예를 들면, 가상결함 편집아이콘들(263)을 사용하여, 생성된 가상결함(즉, 가상결함스케치(VDS1))을 삭제할 수 있다. 사용자 입력에 따라, 하나의 가상결함이미지에 복수의 가상결함들이 생성될 수 있으며, 사용자는 가상결함 편집아이콘들(263)을 사용하여 삭제를 원하는 가상결함만 삭제할 수 있다.
또한 사용자는 생성이미지리스트영역(261)에 표시된 복수의 생성된 가상결함이미지들 중에서, 일 가상결함이미지 자체를 삭제할 수도 있다.
프로세서(12)는, 내보내기 버튼(264)에 대한 사용자입력을 수신하는 것에 기초하여, 생성된(및 편집된) 가상결함이미지들을 지정된 경로에 저장할 수 있다.
이하에서 수동모드 생성(S222) 동작에 대해 상세히 설명하고자 한다. 도 28 내지 도 30은 본 발명의 일 실시예에 따른 수동모드(manual mode) 생성를 수행하기 위한 화면들의 예를 나타낸다.
도 28을 참조하면, 화면(A28)의 템플릿이미지영역(281)을 통해, 결함을 생성시킬 하나 이상의 제2 정상이미지(즉, 템플릿이미지)를 로드할 수 있다. 이미지영역(282)에는, 템플릿이미지영역(281)에 리스트된 제2 정상이미지들 중에서 선택된 제2 정상이미지가 표시될 수 있다.
한편 화면(A28)은, 현재 로드된 모델(즉, 가상결함이미지 생성모델)과 관련하여 저장된 결함유형들을 표시하는 결함유형영역(283)을 표시할 수 있다.
수동모드에서 프로세서(12)는, 사용자가 결함을 발생시킬 영역을 직접 제2 정상이미지 상에 그리는(즉, 스케치하는) 입력에 기반한 수동영역정보를 이용하여, 상기 그려진 수동영역 상에 결함유형을 생성시킬 수 있다.
일 예를 들면, 사용자는, 결함유형영역(283)에 포함된 결함유형들 중에서, 생성할 결함유형을 선택하고, 결함영역스케치아이콘(284)을 사용하여, 표시된 이미지(즉, 제2 정상이미지, 또는 템플릿이미지) 상에 해당 결함유형의 모양을 직접 스케치할 수 있다. 이후 프로세서(12)는, 상기 스케치의 모양에 상응하는 가상결함을 템플릿이미지에 삽입함으로써, 가상결함이미지를 생성할 수 있다. 이에 대한 설명은 도 4에서 전술한 바 있으며, 전술한 라벨링 동작과도 유사할 수 있다.
이러한 수동모드 생성 동작을 통해, 정교하거나 형상이 복잡한 가상결함을 생성할 수 있다.
한편, 생성 버튼(285)에 대한 사용자 입력에 기초하여 프로세서(12)는, 도 29의 화면(A29)을 표시할 수 있다. "Generate all manual labels in each template image"에 대응하는 버튼(291)을 선택하면, 사용자가 그린 결함유형별 결함영역대로 결함을 생성할 수 있다. 상기 버튼(291)의 선택을 해제하면, 한 템플릿이미지에 생성할 결함의 최대 개수를 입력받을 수 있다. 이 때 만약, 한 템플릿이미지에 8개의 결함을 그렸는데, 상기 최대 결함 수를 2로 설정할 경우, 가상결함이미지 생성모델은, 자동으로 한 가상결함이미지당 1~2개의 결함을 갖도록 여러 개의 가상결함이미지를 생성할 수 있다.
일 실시예에 따르면, 화면(A29)에 표시되는 일 영역(292)을 통해, 사용자의 스케치가 입혀진 템플릿이미지들 중, 가상결함이미지로 생성할 것들을 선택할 수 있다. 이후 생성 버튼(293)에 대한 사용자입력을 통해, 수동모드로 가상결함이미지를 생성할 수 있다.
이후 생성된 가상결함이미지들이 도 30의 화면(A30)을 통해 표시될 수 있다. 화면(A30)의 생성이미지리스트영역(301)에, 생성된 가상결함이미지들의 목록이 나타날 수 있다. 생성이미지리스트영역(301)에 표시된 일 가상결함이미지를 클릭하면, 이미지영역(302)에 해당 가상결함이미지가 표시될 수 있다. 표시된 가상결함이미지에는, 생성된 결함의 위치를 나타내주는, 얇은 테두리가 표시될 수 있다. 얇은 테두리는, 예를 들면, 생성된 결함유형의 식별색상으로 표시될 수 있다.
도 31은, 수동모드로 생성된 가상결함이미지들의 예시를 나타낸다.
다시 도 30을 참조하여, 사용자는 예를 들면, 가상결함 편집아이콘들(303)을 사용하여, 생성된 가상결함(즉, 가상결함스케치(VDS2))을 삭제할 수 있다. 하나의 가상결함이미지에 복수의 가상결함스케치들이 생성될 수 있으며, 사용자는 가상결함 편집아이콘들(303)을 사용하여 삭제를 원하는 가상결함스케치만 삭제할 수 있다.
또한 사용자는 생성이미지리스트영역(301)에 표시된 히나 이상의 생성된 가상결함이미지들 중에서, 일 가상결함이미지 자체를 삭제할 수도 있다.
프로세서(12)는, 내보내기 버튼(304)에 대한 사용자입력을 수신하는 것에 기초하여, 생성된(및 편집된) 가상결함이미지들을 지정된 경로에 저장할 수 있다.
도 32 내지 도 34는, 본 발명의 일 실시예에 따른 가상결함이미지를 생성할 때, 자동모드 생성이 유용한 경우와, 수동모드 생성이 유용한 경우의 예를 나타낸다.
도 32를 참조하면 임의 생산품(320)(예: 배터리 상단)의 모식도를 나타낼 수 있다. 도 33은, 상기 생산품(320)에 대하여 자동모드 생성이 유리한, 또는 가능한 경우들을 나타낸다. 제1 예(331)는, 상기 생산품(320)의 사각형 모양의 제1 부분(321)에 대하여 사각형 면적(area)의 결함영역 설정이 가능한 경우를 나타낸다. 제2 예(332)는 상기 생산품(320)의 원형의 제2 부분(322)에 대하여 원형 면적의 결함영역 설정이 가능한 경우를 나타낸다.
예를 들면, 상기 제1 부분(321) 및 제2 부분(322)의 면적 내에는, 스크래치 또는 이물(또는 색상이 있는 이물)의 결함유형이 발생 가능할 수 있다. 따라서 사용자는 예를 들면, 결함유형으로 스크래치 또는 이물을 선택(또는 활성화)하고, 기 제공되는 아이콘을 사용하여, 제1 부분(321)에 사각형 면적의 결함영역을 표시하고, 제2 부분(322)에 원형 면적의 결함영역을 표시할 수 있다.
제3 예(333)는, 상기 생산품(320)의 제3 부분(323)에 대하여, 직선의 결함영역 설정이 가능한 경우를 나타낸다. 제3 부분(323)은 예를 들면 제1 부분(321)의 테두리의 일부일 수 있다. 제4 예(334)는 상기 생산품(320)의 원형의 제2 부분(322)의 테두리에 대하여, 원형 테두리의 결함영역 설정이 가능한 경우를 나타낸다.
예를 들면, 상기 제3 부분(323) 및 제2 부분(322)의 테두리에는, 접착제 또는 전해질의 유출, 또는 상기 유출로 인한 오염 등이 발생 가능할 수 있다. 따라서 상기 제3 부분(324) 및 제2 부분(322)의 테두리에는, 예를 들면 '색상을 갖는 이물'의 결함 유형이 발생 가능할 수 있다. 따라서 사용자는 예를 들면, 결함유형으로 '색상을 갖는 이물(예: 빨간이물, 검정이물, 파란이물 등)'을 선택(또는 활성화)하고, 기 제공되는 아이콘을 사용하여, 제3 부분(323)에 직선의 결함영역을 표시하고, 제2 부분(322)의 테두리에 원형 테두리의 결함영역을 표시할 수 있다.
도 33은, 상기 생산품(320)에 대하여 수동모드 생성이 유리한, 또는 가능한 경우들을 나타낸다. 예를 들어 생산품(320)이 제5 부분(325)과 같이 복잡한 형상을 포함하는 경우가 대부분일 수 있다. 이 경우는, 생성 단계(S2)에서 수동모드를 선택하여, 상기 복잡한 형상에 발생가능한 결함유형을 선택(또는 활성화)하고, 상기 복잡한 형상에 발생가능한 결함영역을 수동으로 그려줄 수 있다.
예를 들면, 상기 제5 부분(325)에는, 접착제 또는 전해질의 유출, 또는 상기 유출로 인한 오염 등이 발생 가능할 수 있다. 따라서 상기 제5 부분(325) 에는, 예를 들면 '색상을 갖는 이물'의 결함 유형이 발생 가능할 수 있다. 따라서 사용자는 예를 들면, 결함유형으로 '색상을 갖는 이물(예: 빨간이물, 검정이물, 파란이물 등)'을 선택(또는 활성화)하고, 기 제공되는 스케치아이콘을 사용하여, 제5 부분(325)을 따라 생성하고 싶은 결함의 모양을 스케치함으로써 수동으로 결함영역을 설정할 수 있다.
본 발명의 다양한 실시예들에서, 자동모드 생성(S221) 및 수동모드 생성(S222)을 모두 사용함으로써, 다양한 종류의 가상결함이미지를 원하는 만큼 생성할 수 있다. 따라서, 다양하게 생성된 가상결함이미지들을 사용하여, 결함검출모델의 학습(S3)의 성능을 높일 수 있다.
한편, 본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 메모리(15), 예를 들면, 내장 메모리 또는 외장 메모리)에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(16))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(10))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(12))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나, 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
114, 191, 218: 생산품영역
115: 이미지리스트영역
116, 192, 239, 283: 결함유형영역
117: 결함유형 편집아이콘
118, 262, 282, 302: 이미지영역
119: 결함유형의 식별색상
121: 라벨링도구아이콘
122: 라벨링정보영역
141: 대표이미지설정아이콘
142: 정렬옵션영역
146: 정렬 아이콘
171: 대표이미지
172, 238: 결함영역설정아이콘들
261, 301: 생성이미지리스트영역
263, 303: 가상결함 편집아이콘들
281: 템플릿이미지영역
284: 결함영역스케치아이콘
OI: 정상이미지
VDS: 가상결함스케치
VDI: 가상결함이미지

Claims (5)

  1. 전자 장치의 동작 방법에 있어서,
    제1 생산품에 대한 제1 정상이미지, 결함이미지, 및 사용자 입력에 적어도 기초하여 가상결함이미지 생성모델을 학습하는 동작과,
    상기 학습된 가상결함이미지 생성모델을 이용하여, 제2 생산품에 대한 제2 정상이미지로부터 가상결함이미지를 생성하는 동작을 포함하고,
    상기 가상결함이미지를 생성하는 동작은,
    기설정된 모양의 결함영역에 대한 정보를 이용하여, 상기 가상결함이미지 생성모델을 통해 상기 가상결함이미지를 생성하는 동작과,
    사용자가 결함을 발생시킬 영역을 직접 그리는 입력에 기반한 수동영역정보를 이용하여, 상기 가상결함이미지 생성모델을 통해 상기 가상결함이미지를 생성하는 동작을 포함하는, 가상결함이미지 생성 방법.
  2. 제1항에 있어서,
    상기 제1 생산품과 상기 제2 생산품은, 서로 완전히 동일한 종류이거나, 또는 서로 동일한 종류이되 규격 또는 버전이 다르고,
    상기 제1 정상이미지와 상기 제2 정상이미지는 동일하거나, 또는 서로 상이한, 가상결함이미지 생성 방법.
  3. 제1항에 있어서,
    상기 가상결함이미지 생성모델을 학습하는 동작은, 상기 제1 생산품에 대하여 발생 가능한 결함유형들을 설정하는 동작을 포함하고,
    상기 가상결함이미지를 생성하는 동작은,
    상기 설정된 결함유형들 중 적어도 일부에 대하여, 상기 적어도 일부의 결함유형들 각각이 발생될 수 있는 결함영역에 대한 정보를, 사용자입력에 기초하여 입력받는 동작을 포함하는, 가상결함이미지 생성 방법.
  4. 제1항에 있어서,
    상기 가상결함이미지 생성모델을 학습하는 동작은,
    상기 제1 생산품을 포함하는 복수의 서로 상이한 버전의 생산품들에 대한 제1 정상이미지 및 결함이미지에 기초하여 데이터베이스를 수집 및 전처리를 수행하는 동작과,
    상기 복수의 서로 상이한 버전의 생산품들 중 일부 생산품들만 선택하여 상기 가상결함이미지 생성모델을 학습하는 동작을 포함하는, 가상결함이미지 생성 방법.
  5. 컴퓨터를 이용하여 제1항 내지 제4항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램.
KR1020200047422A 2020-04-20 2020-04-20 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치 KR102430090B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200047422A KR102430090B1 (ko) 2020-04-20 2020-04-20 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치
JP2022550845A JP7393833B2 (ja) 2020-04-20 2021-04-13 ユーザ入力に基づいて生成された人工知能モデルを使用し、仮想欠陥画像を生成するためのコンピュータプログラム、方法、及び装置
PCT/KR2021/004611 WO2021215730A1 (ko) 2020-04-20 2021-04-13 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치
US17/918,455 US20230143738A1 (en) 2020-04-20 2021-04-13 Computer program, method, and device for generating virtual defect image by using artificial intelligence model generated on basis of user input
DE112021002434.5T DE112021002434T5 (de) 2020-04-20 2021-04-13 Computerprogramm, Verfahren und Gerät zum Erzeugen eines virtuellen Fehlerbildes unter Verwendung eines basierend auf einer Benutzereingabe erzeugten Modells der künstlichen Intelligenz
CN202110423617.4A CN113538631A (zh) 2020-04-20 2021-04-20 通过基于用户输入所生成的人工智能模型来生成虚拟缺陷图像的计算机程序、方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200047422A KR102430090B1 (ko) 2020-04-20 2020-04-20 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치

Publications (2)

Publication Number Publication Date
KR20210129775A true KR20210129775A (ko) 2021-10-29
KR102430090B1 KR102430090B1 (ko) 2022-08-11

Family

ID=78124350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200047422A KR102430090B1 (ko) 2020-04-20 2020-04-20 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치

Country Status (6)

Country Link
US (1) US20230143738A1 (ko)
JP (1) JP7393833B2 (ko)
KR (1) KR102430090B1 (ko)
CN (1) CN113538631A (ko)
DE (1) DE112021002434T5 (ko)
WO (1) WO2021215730A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085479A1 (ko) * 2021-11-15 2023-05-19 라이트비전 주식회사 실제 결함 이미지의 종류와 분포를 고려한 인공지능 기반 재료 결함 검출 시스템 및 방법
CN116385442A (zh) * 2023-06-06 2023-07-04 青岛理工大学 一种基于深度学习的虚拟装配缺陷检测方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102374840B1 (ko) * 2020-10-20 2022-03-15 두산중공업 주식회사 딥러닝 학습용 결함 이미지 생성 방법 및 이를 위한 시스템
US20230153982A1 (en) * 2021-11-12 2023-05-18 Hitachi, Ltd. Damage transfer method with a region-based adversarial learning
CN115661155A (zh) * 2022-12-28 2023-01-31 北京阿丘机器人科技有限公司 缺陷检测模型的构建方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005156334A (ja) * 2003-11-25 2005-06-16 Nec Tohoku Sangyo System Kk 疑似不良画像自動作成装置及び画像検査装置
KR20190021967A (ko) * 2017-08-24 2019-03-06 주식회사 수아랩 훈련 데이터를 생성하는 방법, 장치 및 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램
JP2020027424A (ja) * 2018-08-10 2020-02-20 東京エレクトロンデバイス株式会社 学習データ生成装置、判別モデル生成装置、及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333650B2 (en) * 2003-05-29 2008-02-19 Nidek Co., Ltd. Defect inspection apparatus
JP4572862B2 (ja) * 2006-04-05 2010-11-04 富士ゼロックス株式会社 画像形成装置シミュレーション装置、画像形成装置シミュレーション方法及びプログラム
US9978173B2 (en) * 2016-07-27 2018-05-22 Adobe Systems Incorporated Generating views of three-dimensional models illustrating defects
JP7254324B2 (ja) * 2017-06-05 2023-04-10 学校法人梅村学園 画像検査システムの性能調整のための検査用画像を生成する画像生成装置及び画像生成方法
US10726535B2 (en) * 2018-03-05 2020-07-28 Element Ai Inc. Automatically generating image datasets for use in image recognition and detection
WO2019188040A1 (ja) * 2018-03-29 2019-10-03 日本電気株式会社 画像処理装置、画像処理方法および画像処理プログラム
US20190362235A1 (en) * 2018-05-23 2019-11-28 Xiaofan Xu Hybrid neural network pruning
US10846845B2 (en) * 2018-07-25 2020-11-24 Fei Company Training an artificial neural network using simulated specimen images
CN109615611B (zh) * 2018-11-19 2023-06-27 国家电网有限公司 一种基于巡检影像的绝缘子自爆缺陷检测方法
CN110223277A (zh) * 2019-05-28 2019-09-10 深圳新视智科技术有限公司 图像生成的方法、装置、终端设备及存储介质
CN110675359A (zh) * 2019-06-29 2020-01-10 创新奇智(南京)科技有限公司 一种钢卷表面的缺陷样本生成方法、系统及电子设备
CN110796174A (zh) * 2019-09-29 2020-02-14 郑州金惠计算机系统工程有限公司 多类型虚拟样本的生成方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005156334A (ja) * 2003-11-25 2005-06-16 Nec Tohoku Sangyo System Kk 疑似不良画像自動作成装置及び画像検査装置
KR20190021967A (ko) * 2017-08-24 2019-03-06 주식회사 수아랩 훈련 데이터를 생성하는 방법, 장치 및 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램
JP2020027424A (ja) * 2018-08-10 2020-02-20 東京エレクトロンデバイス株式会社 学習データ生成装置、判別モデル生成装置、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fabric Defect Detection System Using Stacked Convolutional Denoising Auto-Encoders Trained with Synthetic Defect Data, Appl. Sci. 2020, 10(7), 2020.04.* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085479A1 (ko) * 2021-11-15 2023-05-19 라이트비전 주식회사 실제 결함 이미지의 종류와 분포를 고려한 인공지능 기반 재료 결함 검출 시스템 및 방법
CN116385442A (zh) * 2023-06-06 2023-07-04 青岛理工大学 一种基于深度学习的虚拟装配缺陷检测方法
CN116385442B (zh) * 2023-06-06 2023-08-18 青岛理工大学 一种基于深度学习的虚拟装配缺陷检测方法

Also Published As

Publication number Publication date
JP2023515520A (ja) 2023-04-13
CN113538631A (zh) 2021-10-22
JP7393833B2 (ja) 2023-12-07
US20230143738A1 (en) 2023-05-11
KR102430090B1 (ko) 2022-08-11
DE112021002434T5 (de) 2023-02-16
WO2021215730A1 (ko) 2021-10-28

Similar Documents

Publication Publication Date Title
KR102430090B1 (ko) 사용자 입력에 기반하여 생성된 인공지능 모델을 이용하여 가상 결함 이미지를 생성하기 위한 컴퓨터 프로그램, 방법, 및 장치
US8015239B2 (en) Method and system to reduce false positives within an automated software-testing environment
CN104978270A (zh) 一种自动化地软件测试方法和装置
US11288845B2 (en) Information processing apparatus for coloring an image, an information processing program for coloring an image, and an information processing method for coloring an image
WO2018173478A1 (ja) 学習装置、学習方法および学習プログラム
CN111598863A (zh) 缺陷检测方法、装置、设备及可读存储介质
CN108733368A (zh) 机器视觉通用软件开发系统
JP4442119B2 (ja) 画像認識装置および画像認識方法、並びに、画像認識装置のティーチング装置およびティーチング方法
JP2015137919A (ja) 外観検査装置、外観検査方法、及び、プログラム
US20200118305A1 (en) Automatic line drawing coloring program, automatic line drawing coloring apparatus, and graphical user interface program
JP2002251603A (ja) 画像処理プログラム作成方法およびそのシステム
CN110673842A (zh) 一种可视化编程方法及系统、存储介质、设备
US20220058110A1 (en) Programming device and program
CN117115138A (zh) 服装生产过程中的智能控制系统及其方法
CN117573006B (zh) 用于rpa屏幕界面元素批量拾取的方法及系统
US20110150336A1 (en) Hardware Management Based on Image Recognition
US20240168546A1 (en) Identifying a Place of Interest on a Physical Object Through its 3D Model in Augmented Reality View
CN115631374A (zh) 控件操作方法、控件检测模型的训练方法、装置和设备
JP5815434B2 (ja) マニュアル作成支援装置及びマニュアル作成支援方法
US10915682B1 (en) Remodeling testing method for remodeling text-based display design to thereby achieve graphic-based display design and design remodeling testing device using the same
JP5308991B2 (ja) 保守作業計画支援方法及びシステム
US20130106863A1 (en) Program creating apparatus and image control system
Wang et al. The design of intelligent production line for clothing industry
JP2021140270A (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP7488467B2 (ja) 部品特定プログラム、部品特定方法及び情報処理装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right