KR20240025657A - 디지털 이미지들의 관심 영역(roi)들에 기반한 하나 이상의 기계 비전 작업의 자동 생성 - Google Patents
디지털 이미지들의 관심 영역(roi)들에 기반한 하나 이상의 기계 비전 작업의 자동 생성 Download PDFInfo
- Publication number
- KR20240025657A KR20240025657A KR1020247002861A KR20247002861A KR20240025657A KR 20240025657 A KR20240025657 A KR 20240025657A KR 1020247002861 A KR1020247002861 A KR 1020247002861A KR 20247002861 A KR20247002861 A KR 20247002861A KR 20240025657 A KR20240025657 A KR 20240025657A
- Authority
- KR
- South Korea
- Prior art keywords
- training
- roi
- machine vision
- image
- images
- Prior art date
Links
- 238000003384 imaging method Methods 0.000 claims abstract description 138
- 238000012549 training Methods 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000002372 labelling Methods 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 35
- 238000013473 artificial intelligence Methods 0.000 claims description 8
- 230000002950 deficient Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000013515 script Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000006855 networking Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000008685 targeting Effects 0.000 description 7
- 241000699666 Mus <mouse, genus> Species 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000003908 quality control method Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000283070 Equus zebra Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000010207 Bayesian analysis Methods 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing 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/778—Active pattern-learning, e.g. online learning of image or video features
- G06V10/7784—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
- G06V10/7788—Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors the supervisor being a human, e.g. interactive learning with a human teacher
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30141—Printed circuit board [PCB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Robotics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Analysis (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
디지털 이미지들의 관심 영역(ROI)들에 기반하여 기계 비전 작업(들)을 자동으로 생성하기 위한 기계 비전 시스템들 및 방법들이 본 명세서에 개시된다. 이러한 시스템들 및 방법들은 트레이닝 이미지들에 묘사된 이미지 ID를 캡처하기 위한 기계 비전 툴을 구성하고 트레이닝 이미지들에 의해 묘사된 객체의 성공 또는 실패 상태를 나타내기 위해 각각의 트레이닝 이미지를 라벨링하는 것을 포함한다. 후보 이미지 특징(들)은 후보 ROI(들)의 생성을 위해 트레이닝 이미지들로부터 추출된다. 트레이닝 ROI 세트는 후보 ROI(들)로부터 선택되고, 포함되거나 배제된 ROI들로서 지정된다. 트레이닝 ROI 세트 및 트레이닝 이미지들은 객체를 묘사하는 추가 이미지(들)의 성공 또는 실패 상태들을 검출하도록 기계 비전 작업을 구현하는 이미징 디바이스에 배치가능한 기계 비전 작업을 출력하도록 구성되는 비전 학습 모델을 트레이닝하는데 이용된다.
Description
수년에 걸쳐, 산업 자동화는 매우 다양한 작업들에서 운영자들을 보조할 수 있는 기계 비전 구성요소들(Machine Vision components)에 크게 의존하게 되었다. 일부 구현들에서, 카메라들과 같은 기계 비전 구성요소들은 고정 카메라들을 지나 컨베이어 벨트 상에서 이동하는 것들과 같은 객체들을 추적하는데 이용된다. 종종, 이러한 카메라들(이미징 디바이스들로도 지칭됨)은 매우 다양한 레벨들에서 이러한 이미징 디바이스들과 상호작용하도록 동작가능한 대응하는 애플리케이션들을 실행하는 클라이언트 디바이스들(예를 들어, 개인용 컴퓨터들)과 인터페이싱한다. 이러한 애플리케이션들에서, 이미지 조작 및 분석은 종종 일상적이며, 이러한 이미지들 내의 복수의 관심 영역(ROI)의 이용을 통한 사용자 상호작용을 포함한다.
그러나, 객체들, 및 특히 움직이는 객체들을 정확하게 이미징하기 위해 기계 비전 구성요소들 및/또는 소프트웨어를 셋업하거나 달리 구성할 때 문제가 발생한다. 이러한 움직이는 객체들은 컨베이어 벨트 상에서 이동하는 객체들(예로서, 제조되고 있는 제품들)을 포함할 수 있다. 이러한 상황들에서, 기계 비전 구성요소들 및/또는 소프트웨어는 통상적으로 수동 또는 맞춤 구성을 요구하며, 이는 시간 소모적일 뿐만 아니라 에러가 발생하기 쉬울 수 있다.
일부 양태들에서, 기계 비전 구성요소들 및/또는 소프트웨어는 특정 환경(예를 들어, 컨베이어 벨트 또는 다른 방식의 제조 프로세스)에서 특정 객체(예를 들어, 제조된 제품의 바코드 또는 제조된 제품의 다른 부분)를 이미징하기 위한 특정 "작업(job)"으로서 수동으로 구성될 수 있다. 그러나, 작업을 수동으로 생성하는 것은 그 자체로 시간 소모적인 프로세스일 수 있다. 전형적으로, 사용자는 잠재적 결함들에 대해 이미지들 내의 ROI들을 주의 깊게 식별하고, 이에 따라 검출될 편차들에 대해 기계 비전 작업들을 설정해야 한다. 이러한 사용자들은 또한 바코드들과 같은 중요한 특징들에 대한 영역들을 수동으로 지정해야 한다.
따라서, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 기계 비전 시스템들 및 방법들이 필요하다.
양태에서, 본 개시내용은 디지털 이미지들의 관심 영역(ROI)들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 본 발명의 기계 비전 방법을 설명한다. 기계 비전 방법은 이미지 식별자(ID)를 캡처하기 위한 기계 비전 툴을 구성하는 단계를 포함한다. 기계 비전 방법은 복수의 트레이닝 이미지를 로딩하는 단계를 더 포함한다. 각각의 트레이닝 이미지는 이미지 ID를 묘사할 수 있다. 기계 비전 방법은 각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 복수의 트레이닝 이미지 각각을 라벨링하는 단계를 더 포함한다. 기계 비전 방법은 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하는 단계를 더 포함한다. 기계 비전 방법은 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하는 단계를 더 포함한다. 기계 비전 방법은 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하는 단계를 더 포함한다. 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정될 수 있다. 기계 비전 방법은 트레이닝 ROI 세트 및 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하는 단계를 더 포함한다. 비전 학습 모델은 기계 비전 작업을 출력하도록 구성될 수 있다. 기계 비전 작업은 이미징 디바이스에의 전자 배치를 위해 구성될 수 있다. 기계 비전 작업을 구현하는 이미징 디바이스는 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성될 수 있다.
추가 양태에서, 기계 비전 시스템이 개시된다. 기계 비전 시스템은 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하도록 구성된다. 기계 비전 시스템은 하나 이상의 기계 비전 작업을 구현하도록 구성된 이미징 디바이스를 포함한다. 기계 비전 시스템은 하나 이상의 프로세서를 더 포함한다. 기계 비전 시스템은 하나 이상의 프로세서에 통신가능하게 결합되고 컴퓨팅 명령어들을 저장하는 메모리를 더 포함한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 이미지 ID를 캡처하기 위한 기계 비전 툴을 구성하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 복수의 트레이닝 이미지를 로딩하게 한다. 각각의 트레이닝 이미지는 이미지 ID를 묘사할 수 있다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 복수의 트레이닝 이미지 각각을 라벨링하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하게 한다. 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정될 수 있다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금, 트레이닝 ROI 세트 및 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하게 한다. 비전 학습 모델은 기계 비전 작업을 출력하도록 구성될 수 있다. 기계 비전 작업은 이미징 디바이스에의 전자 배치를 위해 구성될 수 있다. 기계 비전 작업을 구현하는 이미징 디바이스는 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성될 수 있다.
더 추가의 양태에서, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 컴퓨팅 명령어들을 저장하는 유형의 비일시적 컴퓨터 판독가능한 매체가 개시된다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 이미지 ID를 캡처하기 위한 기계 비전 툴을 구성하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 복수의 트레이닝 이미지를 로딩하게 한다. 각각의 트레이닝 이미지는 이미지 ID를 묘사할 수 있다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 복수의 트레이닝 이미지 각각을 라벨링하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하게 한다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하게 할 수 있다. 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정될 수 있다. 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 추가로 하나 이상의 프로세서로 하여금 트레이닝 ROI 세트 및 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하게 한다. 비전 학습 모델은 기계 비전 작업을 출력하도록 구성될 수 있다. 기계 비전 작업은 이미징 디바이스에의 전자 배치를 위해 구성될 수 있다. 기계 비전 작업을 구현하는 이미징 디바이스는 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성될 수 있다.
아래의 상세한 설명과 함께, 유사한 참조 번호들이 별개의 도면들 전체에 걸쳐 동일하거나 기능적으로 유사한 요소들을 지칭하는 첨부 도면들은 명세서 내에 포함되고 그 일부를 형성하고, 청구된 발명을 포함하는 개념들의 양태들을 추가로 도시하고, 그들 양태들의 다양한 원리들 및 이점들을 설명하는 역할을 한다.
도 1은 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하도록 구성된 예시적인 기계 비전 시스템이며, 여기서 하나 이상의 기계 비전 작업은 이미징 디바이스에 배치가능하다.
도 2는 본 명세서에 설명된 양태들에 따른, 도 1의 이미징 디바이스의 사시도이다.
도 3은 본 명세서에 설명된 양태들에 따른, 도 1의 기계 비전 시스템의 동작과 관련하여 이용되는 예시적인 애플리케이션 인터페이스를 도시한다.
도 4는 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 예시적인 기계 비전 방법이다.
통상의 기술자들은 도면들 내의 요소들이 반드시 축척에 맞게 그려진 것은 아니고 간략하고 명확하게 도시된다는 것을 알 것이다. 예를 들어, 도면들에서 요소들 중 일부의 치수들은, 본 발명의 양태들의 이해를 향상시키는데 도움을 주기 위해 다른 요소들에 비해 과장될 수 있다.
장치 및 방법 구성요소들은, 도면들에서 적절한 경우 종래의 심볼들로 표현되어 있고, 도면들은 본 명세서의 설명의 이익을 갖는 관련 기술분야의 통상의 기술자에게 쉽게 명백할 상세들로 본 개시내용을 모호하게 하지 않기 위해, 본 발명의 양태들의 이해와 관련된 특정 상세들만을 도시한다.
도 1은 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하도록 구성된 예시적인 기계 비전 시스템이며, 여기서 하나 이상의 기계 비전 작업은 이미징 디바이스에 배치가능하다.
도 2는 본 명세서에 설명된 양태들에 따른, 도 1의 이미징 디바이스의 사시도이다.
도 3은 본 명세서에 설명된 양태들에 따른, 도 1의 기계 비전 시스템의 동작과 관련하여 이용되는 예시적인 애플리케이션 인터페이스를 도시한다.
도 4는 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 예시적인 기계 비전 방법이다.
통상의 기술자들은 도면들 내의 요소들이 반드시 축척에 맞게 그려진 것은 아니고 간략하고 명확하게 도시된다는 것을 알 것이다. 예를 들어, 도면들에서 요소들 중 일부의 치수들은, 본 발명의 양태들의 이해를 향상시키는데 도움을 주기 위해 다른 요소들에 비해 과장될 수 있다.
장치 및 방법 구성요소들은, 도면들에서 적절한 경우 종래의 심볼들로 표현되어 있고, 도면들은 본 명세서의 설명의 이익을 갖는 관련 기술분야의 통상의 기술자에게 쉽게 명백할 상세들로 본 개시내용을 모호하게 하지 않기 위해, 본 발명의 양태들의 이해와 관련된 특정 상세들만을 도시한다.
디지털 이미지들의 관심 영역(ROI)들에 기반하여 기계 비전 작업(들)을 자동으로 생성하기 위한 기계 비전 시스템들 및 방법들이 본 명세서에 개시된다. 일반적으로, 본 명세서에서의 개시내용은 (디지털 이미지들 내에 묘사된 바와 같은) 통과 및 실패 인스턴스들의 세트가 주어지면 기계 비전 작업(들)에 대한 기계 학습 모델을 트레이닝할 뿐만 아니라, 분석을 위해 유용한 구성요소들을 자동으로 추출하는 신규한 방식을 제공한다. 본 명세서에서 이용되는 바와 같이, "기계 비전 작업"이나, 아니면 "작업"이라는 용어는, VS70 MACHINE VISION SMART CAMERA 디바이스와 같이, ZEBRA TECHNOLOGIES CORP.에 의해 제공되는 VS-SERIES 스마트 카메라들 중 임의의 하나 이상과 같은 이미징 카메라 상의 배치 및 구현을 위해 구성되는 이미징 및/또는 카메라 소프트웨어 또는 펌웨어를 지칭한다. 예를 들어, 일 양태에서, 기계 비전 작업은 제품의 바코드의 이미지를 판독하거나 스캐닝하도록 이미징 카메라에의 배치를 위해 구성될 수 있다. 기계 비전 작업을 구성하는 것은, 제조 동안 또는 제조 후에 컴퓨터 회로 보드의 성공(예를 들어, 성공 상태) 또는 실패(예를 들어, 실패 상태)를 나타내기 위해 컴퓨터 회로 보드의 이미지에서의 컴퓨터 칩 위치와 같은, 이미지에서의 ROI들을 선택하는 것을 포함할 수 있다. 이러한 활동은 예를 들어 제조 품질 제어 프로세스의 일부로서 발생할 수 있다. 다양한 양태들에서, 기계 비전 작업은 비전 학습 모델(예컨대, 기계 학습 모델)에 의해 생성, 셋업, 또는 다른 방식으로 출력될 수 있다. 본 개시내용의 이들 및 다른 양태들은 본 명세서의 도면들과 관련하여 추가로 설명된다.
도 1은 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하도록 구성된 예시적인 기계 비전 시스템(100)이며, 하나 이상의 기계 비전 작업은 이미징 디바이스(104)에 배치가능하다. 다양한 양태들에서, 기계 비전 시스템(100)은 본 명세서에 개시된 다양한 양태들에 따라, 기계 비전 작업의 타겟 객체 생성의 이미지의 픽셀 데이터의 분석을 제공한다.
도 1의 예시적인 양태에서, 이미징 시스템(100)은 사용자 컴퓨팅 디바이스(102)(예로서, 컴퓨터, 모바일 디바이스 또는 태블릿), 제어 컴퓨팅 디바이스(105)(예로서, 프로그래머블 논리 제어기(PLC)), 및 네트워크(106)를 통해 사용자 컴퓨팅 디바이스(102) 및 제어 컴퓨팅 디바이스(105)에 통신가능하게 결합되는 이미징 디바이스(104)를 포함한다. 일반적으로, 사용자 컴퓨팅 디바이스(102) 및 이미징 디바이스(104)는, 이 설명을 수반하는 도면들의 흐름도들에 의해 표현될 수 있는 바와 같이, 예를 들어, 본 명세서에 설명된 예시적인 방법들의 동작들을 구현하기 위한 명령어들을 실행하도록 구성될 수 있다. 사용자 컴퓨팅 디바이스(102)는 일반적으로 사용자/운영자가 이미징 디바이스(104) 상에서 실행하기 위한 기계 비전 작업을 생성할 수 있게 하도록 구성된다. 생성될 때, 사용자/운영자는 네트워크(106)를 통해 기계 비전 작업을 이미징 디바이스(104)에 전송/업로드할 수 있으며, 기계 비전 작업은 이후 이미징 디바이스(104)에 의해 해석, 실행, 또는 다른 방식으로 구현된다. 이러한 작업들의 실행 시에, 이미징 디바이스(104)에 의해 생성되는 출력 데이터는 추가 분석 및 이용을 위해 제어 컴퓨팅 디바이스(105)에 전송될 수 있다. 사용자 컴퓨팅 디바이스(102)는 하나 이상의 운영자 워크스테이션을 포함할 수 있고, 하나 이상의 프로세서(108), 하나 이상의 메모리(110), 네트워킹 인터페이스(112), 입력/출력(I/O) 인터페이스(114), 및 스마트 이미징 애플리케이션(116)을 포함할 수 있다. 유사하게, 제어 컴퓨팅 디바이스(105)는 하나 이상의 프로세서(158), 하나 이상의 메모리(160), 네트워킹 인터페이스(162), 입력/출력(I/O) 인터페이스(164), 및 펌웨어의 형태로 그리고/또는 스마트 이미징 애플리케이션(116)과 동일하거나 상이할 수 있는, 스마트 애플리케이션(166)으로서 잠재적으로 실행되는 소프트웨어를 포함할 수 있다.
이미징 디바이스(104)는 네트워크(106)(예를 들어, 내부 LAN과 같은 사설 컴퓨터 네트워크, 또는 추가적으로 또는 대안적으로 인터넷과 같은 공중 컴퓨터 네트워크)를 통해 사용자 컴퓨팅 디바이스(102)에 접속되고, 사용자 컴퓨팅 디바이스(102)로부터 수신된 기계 비전 작업들을 해석, 실행, 또는 다른 방식으로 구현하도록 구성된다. 일반적으로, 이미징 디바이스(104)는 기계 비전 작업을 정의할 수 있는 하나 이상의 작업 스크립트를 포함하는 작업 파일을 네트워크(106)를 통해 사용자 컴퓨팅 디바이스(102)로부터 획득할 수 있고, 기계 비전 작업에 따라 이미지들을 캡처 및/또는 분석하도록 이미징 디바이스(104)를 구성할 수 있다. 예를 들어, 이미징 디바이스(104)는 이미징 데이터/데이터세트들 및/또는 사후 이미징 데이터를 결정, 저장 또는 다른 방식으로 처리하는데 이용되는 플래시 메모리를 포함할 수 있다. 다음으로, 이미징 디바이스(104)는 이미징 디바이스(104)로 하여금 하나 이상의 작업 스크립트를 통해 확립된 구성에 따라 타겟 객체의 이미지를 캡처하게 하는 트리거를 수신, 인식 및/또는 다른 방식으로 해석할 수 있다. 캡처 및/또는 분석되면, 이미징 디바이스(104)는 추가 분석 및/또는 저장을 위해 이미지들 및 임의의 연관된 데이터를 네트워크(106)를 통해 사용자 컴퓨팅 디바이스(102)에 전송할 수 있다. 다양한 양태들에서, 이미징 디바이스(104)는 "스마트" 카메라(예를 들어, VS70 MACHINE VISION SMART CAMERA 디바이스 등)일 수 있고/있거나, 아니면 예를 들어, 사용자 컴퓨팅 디바이스(102)로부터 획득된 하나 이상의 작업 파일에 포함된 임의의 하나 이상의 작업 스크립트와 같이 기계 비전 작업을 정의하는 작업 스크립트들을 획득, 해석 및 실행하기 위해 이미징 디바이스(104)의 충분한 기능을 자동으로 수행하도록 구성될 수 있다.
대체로, 작업 파일은 사용자 컴퓨팅 디바이스(102)로부터 이미징 디바이스(104)로 전송될 수 있는 하나 이상의 작업 스크립트의 JSON 표현/데이터 포맷일 수 있다. 본 명세서에서 이용되는 바와 같이, 작업 스크립트는 또한 구성 파일 또는 "작업 구성"을 포함하거나 구성 파일 또는 "작업 구성"이라고 지칭될 수 있다. 작업 파일은 또한 이미징 디바이스(104) 상에서 실행되는 C++ 런타임 엔진 또는 다른 적절한 런타임 엔진에 의해 로딩가능/판독가능할 수 있다. 더욱이, 이미징 디바이스(104)는 사용자 컴퓨팅 디바이스(102)로부터 네트워크(106)를 통해 작업 파일들을 청취 및 수신하도록 구성되는 서버(도시되지 않음)를 실행 또는 구현할 수 있다. 추가적으로 또는 대안적으로, 작업 파일들을 청취 및 수신하도록 구성되는 서버는 클라우드 기반 컴퓨팅 플랫폼과 같은 하나 이상의 클라우드 기반 서버로서 구현될 수 있다. 예를 들어, 서버는 MICROSOFT AZURE, AMAZON AWS 등과 같은 임의의 하나 이상의 클라우드 기반 플랫폼(들)일 수 있다.
다양한 양태들에서, 이미징 디바이스(104)는 하나 이상의 프로세서(118), 하나 이상의 메모리(120), 네트워킹 인터페이스(122), I/O 인터페이스(124) 및 이미징 어셈블리(126)를 포함할 수 있다. 이미징 어셈블리(126)는 디지털 이미지들 및/또는 프레임들을 캡처 또는 촬영하기 위한 디지털 카메라 및/또는 디지털 비디오 카메라를 포함할 수 있다. 각각의 디지털 이미지는 이미지 분석 작업을 수행하도록 각각 구성된 하나 이상의 툴에 의해 분석될 수 있는 픽셀 데이터를 포함할 수 있다. 예를 들어, 이미징 어셈블리(126)의 디지털 카메라 및/또는 디지털 비디오 카메라는, 본 명세서에 개시된 바와 같이, 디지털 이미지들을 촬영, 캡처, 또는 달리 생성하도록 구성될 수 있고, 적어도 일부 양태들에서, 이러한 이미지들을 각각의 디바이스(예를 들어, 사용자 컴퓨팅 디바이스(102), 이미징 디바이스(104))의 메모리(예를 들어, 하나 이상의 메모리(110, 120 및/또는 160))에 저장할 수 있다.
예로서, 이미징 어셈블리(126)는 2D 이미지 데이터를 캡처, 감지 또는 스캐닝하기 위한 실사 카메라(도시되지 않음)를 포함할 수 있다. 실사 카메라는 RGB 기반 픽셀 데이터를 갖는 2D 이미지들을 캡처하기 위한 RGB(적색, 녹색, 청색) 기반 카메라일 수 있다. 다양한 양태들에서, 이미징 어셈블리는 3D 이미지 데이터를 캡처, 감지 또는 스캐닝하기 위한 3차원(3D) 카메라(도시되지 않음)를 추가로 포함할 수 있다. 3D 카메라는 3D 이미지 데이터/데이터세트들을 캡처, 감지, 또는 스캐닝하기 위한 적외선(IR) 프로젝터 및 관련 IR 카메라를 포함할 수 있다. 일부 양태들에서, 이미징 어셈블리(126)의 실사 카메라는 이미징 어셈블리(126)의 3D 카메라와 동일하거나 유사한 시점에 2D 이미지들 및 관련 2D 이미지 데이터를 캡처할 수 있으며, 따라서 이미징 디바이스(104)는 시간상 동일하거나 유사한 순간에 특정 표면, 객체, 영역 또는 장면에 대해 이용가능한 3D 이미지 데이터 및 2D 이미지 데이터의 세트들 둘 다를 가질 수 있다. 다양한 양태들에서, 이미징 어셈블리(126)는 3D 깊이 이미지 데이터를 2D 이미지 데이터와 동시에 캡처하도록 구성된 단일 이미징 장치로서 3D 카메라 및 실사 카메라를 포함할 수 있다. 그 결과, 캡처된 2D 이미지들 및 대응하는 2D 이미지 데이터는 3D 이미지들 및 3D 이미지 데이터와 깊이 정렬될 수 있다.
다양한 양태들에서, 이미징 어셈블리(126)는 미리 정의된 검색 공간의 표면들 또는 영역들 또는 미리 정의된 검색 공간 내의 타겟 객체들의 이미지들을 캡처하도록 구성될 수 있다. 예를 들어, 작업 스크립트에 포함된 각각의 툴은 이미징 어셈블리(126)에 의해 이미징되는 타겟 객체 또는 특정 영역에 대응하는 관심 영역(ROI)을 추가로 포함할 수 있다. 특정 작업 스크립트에 포함된 모든 툴들에 대한 ROI들에 의해 정의되는 합성 영역은 이에 의해 작업 스크립트의 실행을 용이하게 하기 위해 이미징 어셈블리(126)가 캡처할 수 있는 미리 정의된 검색 공간을 정의할 수 있다. 그러나, 미리 정의된 검색 공간은 특정 작업 스크립트에 포함된 모든 툴들의 ROI들에 의해 정의된 합성 영역보다 더 많거나 더 적은 것을 특징으로 하는 시야(FOV)를 포함하도록 사용자 지정될 수 있다. 이미징 어셈블리(126)는 다양한 영역들의 2D 및/또는 3D 이미지 데이터/데이터세트들을 캡처할 수 있으며, 따라서 미리 정의된 검색 공간들에 더하여 추가 영역들이 본 명세서에서 고려된다는 점에 유의해야 한다. 더욱이, 다양한 양태들에서, 이미징 어셈블리(126)는 그레이스케일 이미지 데이터 또는 진폭 이미지 데이터와 같은 2D/3D 이미지 데이터에 더하여 이미지 데이터의 다른 세트들을 캡처하도록 구성될 수 있으며, 이들 각각은 2D/3D 이미지 데이터와 깊이 정렬될 수 있다.
이미징 디바이스(104)는 또한 다른 디바이스들(예를 들어, 사용자 컴퓨팅 디바이스(102), 외부 서버)에 의한 이용을 위해 2D 이미지 데이터/데이터세트들 및/또는 3D 이미지 데이터세트들을 처리할 수 있다. 예를 들어, 하나 이상의 프로세서(118)는 이미징 어셈블리(126)에 의해 캡처, 스캐닝 또는 감지된 이미지 데이터 또는 데이터세트들을 처리할 수 있다. 이미지 데이터의 처리는 원래의 스캐닝 또는 감지된 이미지 데이터로부터 결정된 바와 같은 메타데이터, 단순화된 데이터, 정규화된 데이터, 결과 데이터, 상태 데이터 또는 경보 데이터를 포함할 수 있는 사후 이미징 데이터를 생성할 수 있다. 이미지 데이터 및/또는 사후 이미징 데이터는 보기, 조작 및/또는 다른 상호작용을 위해 스마트 이미징 애플리케이션(116)을 실행하는 사용자 컴퓨팅 디바이스(102)에 전송될 수 있다. 다른 양태들에서, 이미지 데이터 및/또는 사후 이미징 데이터는 저장을 위해 또는 추가 조작을 위해 서버에 전송될 수 있다. 본 명세서에 설명된 바와 같이, 사용자 컴퓨팅 디바이스(102), 이미징 디바이스(104), 및/또는 외부 서버 또는 다른 중앙집중식 처리 유닛 및/또는 저장소는 이러한 데이터를 저장할 수 있고, 또한 이미지 데이터 및/또는 사후 이미징 데이터를 모바일 디바이스, 태블릿, 핸드헬드 디바이스, 또는 데스크톱 디바이스와 같은 사용자 디바이스 상에 구현된 다른 애플리케이션에 전송할 수 있다.
하나 이상의 메모리(110, 120 및/또는 160) 각각은 판독 전용 메모리(ROM), 전자 프로그래머블 판독 전용 메모리(EPROM), 랜덤 액세스 메모리(RAM), 소거가능 전자 프로그래머블 판독 전용 메모리(EEPROM) 및/또는 다른 하드 드라이브, 플래시 메모리, MicroSD 카드 등과 같은 하나 이상의 형태의 휘발성 및/또는 비휘발성, 고정 및/또는 이동식 메모리를 포함할 수 있다. 일반적으로, 컴퓨터 프로그램 또는 컴퓨터 기반 제품, 애플리케이션, 또는 코드(예를 들어, 스마트 이미징 애플리케이션(116), 또는 본 명세서에 설명된 다른 컴퓨팅 명령어들)는 컴퓨터 판독가능한 프로그램 코드 또는 컴퓨터 명령어들이 구현되어 있는 컴퓨터 이용가능한 저장 매체, 또는 유형의 비일시적 컴퓨터 판독가능한 매체(예를 들어, 표준 랜덤 액세스 메모리(RAM), 광학 디스크, 범용 직렬 버스(USB) 드라이브 등)에 저장될 수 있고, 여기서 컴퓨터 판독가능한 프로그램 코드 또는 컴퓨터 명령어들은 본 명세서의 다양한 흐름도들, 예시들, 다이어그램들, 도면들, 및/또는 다른 개시내용에 대해 예시되거나, 묘사되거나, 설명된 기계 판독가능한 명령어들, 방법들, 프로세스들, 요소들 또는 제한들을 용이하게 하거나, 구현하거나, 또는 수행하기 위해 하나 이상의 프로세서(108, 118, 및/또는 158)(예를 들어, 하나 이상의 메모리(110, 120, 및/또는 160) 내의 각각의 운영 체제와 관련하여 동작함)에 의해 실행되도록 설치되거나 다른 방식으로 적응될 수 있다. 이와 관련하여, 프로그램 코드는 임의의 원하는 프로그램 언어로 구현될 수 있고, 기계 코드, 어셈블리 코드, 바이트 코드, 해석가능한 소스 코드 등으로서(예를 들어, Golang, Python, C, C++, C#, Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML 등을 통해) 구현될 수 있다.
하나 이상의 메모리(110, 120 및/또는 160)는 본 명세서에서 논의된 바와 같은 기능들, 앱들, 방법들 또는 다른 소프트웨어를 용이하게 할 수 있는 운영 체제(OS)(예를 들어, 마이크로소프트 윈도우즈, 리눅스, 유닉스 등)를 저장할 수 있다. 하나 이상의 메모리(110)는 또한, 본 명세서에서 추가로 설명되는 바와 같이, 기계 비전 작업 구성을 가능하게 하도록 구성될 수 있는 스마트 이미징 애플리케이션(116)을 저장할 수 있다. 추가적으로 또는 대안적으로, 스마트 이미징 애플리케이션(116)은 또한 이미징 디바이스(104)의 하나 이상의 메모리(120)에, 그리고/또는 네트워크(106)를 통해 사용자 컴퓨팅 디바이스(102)에 액세스가능하거나 다른 방식으로 통신가능하게 결합되는 외부 데이터베이스(도시되지 않음)에 저장될 수 있다. 하나 이상의 메모리(110, 120, 및/또는 160)는 또한, 본 명세서의 다양한 흐름도들, 예시들, 다이어그램들, 도면들 및/또는 다른 개시내용에 대해 예시되거나, 묘사되거나, 설명된 임의의 방법들, 프로세스들, 요소들 또는 제한들 등의, 본 명세서에서 설명된 특징들, 기능들, 또는 다른 개시내용을 용이하게 하거나 수행하도록 구현될 수 있는, 하나 이상의 애플리케이션(들), 하나 이상의 소프트웨어 구성요소(들), 및/또는 하나 이상의 애플리케이션 프로그래밍 인터페이스(API) 중 임의의 것을 포함하는 기계 판독가능한 명령어들을 저장할 수 있다. 예를 들어, 애플리케이션들, 소프트웨어 구성요소들, 또는 API들 중 적어도 일부는 스마트 이미징 애플리케이션(116)과 같은 기계 비전 기반 이미징 애플리케이션일 수 있고, 이를 포함하거나 아니면 그 일부일 수 있으며, 여기서 각각은 본 명세서에서 논의된 그 다양한 기능들을 용이하게 하도록 구성될 수 있다. 하나 이상의 프로세서(108, 118 및/또는 158)에 의해 실행되는 하나 이상의 다른 애플리케이션이 구상될 수 있다는 것을 알아야 한다.
하나 이상의 프로세서(108, 118 및/또는 158)는 본 명세서의 다양한 흐름도들, 예시들, 다이어그램들, 도면들 및/또는 다른 개시내용에 대해 예시되거나, 묘사되거나, 설명된 기계 판독가능한 명령어들, 방법들, 프로세스들, 요소들 또는 제한들을 구현하거나 수행하기 위해, 하나 이상의 프로세서(108, 118 및/또는 158) 및 하나 이상의 메모리(110, 120 및/또는 160)로 그리고 이로부터 전자 데이터, 데이터 패킷들 또는 다른 전자 신호들을 전송하는 것을 담당하는 컴퓨터 버스를 통해 하나 이상의 메모리(110, 120 및/또는 160)에 접속될 수 있다.
하나 이상의 프로세서(108, 118 및/또는 158)는 컴퓨터 버스를 통해 하나 이상의 메모리(110, 120 및/또는 160)와 인터페이싱하여 운영 체제(OS)를 실행할 수 있다. 하나 이상의 프로세서(108, 118 및/또는 158)는 또한 컴퓨터 버스를 통해 하나 이상의 메모리(110, 120 및/또는 160)와 인터페이싱하여, 하나 이상의 메모리(110, 120 및/또는 160) 및/또는 외부 데이터베이스(예를 들어, Oracle, DB2, MySQL과 같은 관계형 데이터베이스, 또는 MongoDB와 같은 NoSQL 기반 데이터베이스)에 저장된 데이터를 생성, 판독, 업데이트, 삭제 또는 다른 방식으로 액세스 또는 상호작용할 수 있다. 하나 이상의 메모리(110, 120 및/또는 160) 및/또는 외부 데이터베이스에 저장된 데이터는, 예를 들어, 기계 비전 작업 이미지들(예를 들어, 작업 스크립트의 실행에 응답하여 이미징 디바이스(104)에 의해 캡처된 이미지들) 및/또는 다른 적절한 정보를 포함하여, 본 명세서에 설명된 데이터 또는 정보 중 임의의 것의 전부 또는 일부를 포함할 수 있다.
네트워킹 인터페이스들(112, 122 및/또는 162)은 하나 이상의 외부/네트워크 포트(들)를 통해 본 명세서에 설명된 네트워크(106)와 같은 하나 이상의 네트워크 또는 로컬 단말기에 데이터를 통신(예를 들어, 전송 및 수신)하도록 구성될 수 있다. 일부 양태들에서, 네트워킹 인터페이스들(112, 122 및/또는 162)은 전자 요청들을 수신하고 그에 응답하는 ASP.NET, Java J2EE, Ruby on Rails, Node.js, 웹 서비스 또는 온라인 API와 같은 클라이언트-서버 플랫폼 기술을 포함할 수 있다. 네트워킹 인터페이스들(112, 122 및/또는 162)은, 본 명세서의 다양한 흐름도들, 예시들, 다이어그램들, 도면들, 및/또는 다른 개시내용에 대해 예시되거나, 묘사되거나, 설명된 기계 판독가능한 명령어들, 방법들, 프로세스들, 요소들 또는 제한들을 구현하거나 수행하기 위해, 컴퓨터 버스를 통해, 하나 이상의 메모리(110, 120 및/또는 160)(그 안에 저장된 애플리케이션(들), 구성요소(들), API(들), 데이터 등을 포함함)와 상호작용할 수 있는 클라이언트-서버 플랫폼 기술을 구현할 수 있다.
일부 양태들에 따르면, 네트워킹 인터페이스들(112, 122, 및/또는 162)은 IEEE 표준들, 3GPP 표준들, 또는 다른 표준들에 따라 기능하고, 네트워크(106)에 접속된 외부/네트워크 포트들을 통한 데이터의 수신 및 전송에서 이용될 수 있는 하나 이상의 트랜시버(예컨대, WWAN, WLAN, 및/또는 WPAN 트랜시버들)를 포함하거나 이와 상호작용할 수 있다. 일부 양태들에서, 네트워크(106)는 사설 네트워크 또는 근거리 네트워크(LAN)를 포함할 수 있다. 추가적으로 또는 대안적으로, 네트워크(106)는 인터넷과 같은 공중 네트워크를 포함할 수 있다. 일부 양태들에서, 네트워크(106)는 비제한적인 예로서 IEEE 802.11a/b/c/g(WIFI), 블루투스 표준 등을 포함하는 임의의 하나 이상의 다양한 무선 표준에 기반하는 무선 통신을 통해 (네트워킹 인터페이스(112)를 통해) 사용자 컴퓨팅 디바이스(102) 및 (네트워킹 인터페이스(122)를 통해) 이미징 디바이스(104)와 통신하는 라우터들, 무선 스위치들 또는 다른 이러한 무선 접속 포인트들을 포함할 수 있다.
I/O 인터페이스들(114, 124, 및/또는 164)은 관리자 또는 운영자에게 정보를 제시하고/하거나 관리자 또는 운영자로부터 입력들을 수신하도록 구성된 운영자 인터페이스들을 포함하거나 구현할 수 있다. 운영자 인터페이스는 사용자/운영자가 임의의 이미지들, 그래픽들, 텍스트, 데이터, 특징들, 픽셀들, 및/또는 다른 적합한 시각화들 또는 정보를 시각화하는데 이용할 수 있는 디스플레이 스크린을 (예를 들어, 사용자 컴퓨팅 디바이스(102) 및/또는 이미징 디바이스(104)를 통해) 제공할 수 있다. 예를 들어, 사용자 컴퓨팅 디바이스(102) 및/또는 이미징 디바이스(104)는 디스플레이 스크린 상에 이미지들, 그래픽들, 텍스트, 데이터, 특징들, 픽셀들, 및/또는 다른 적합한 시각화들 또는 정보를 디스플레이하기 위한 그래픽 사용자 인터페이스(GUI)를 적어도 부분적으로 포함, 구현, 액세스, 렌더링, 또는 다른 방식으로 노출시킬 수 있다. I/O 인터페이스들(114, 124, 및/또는 164)은 또한 사용자 컴퓨팅 디바이스(102) 및/또는 이미징 디바이스(104)를 통해 직접/간접적으로 액세스가능하거나 그에 부착될 수 있는 I/O 구성요소들(예를 들어, 포트들, 용량성 또는 저항성 터치 감지 입력 패널들, 키들, 버튼들, 라이트들, LED들, 임의의 수의 키보드들, 마우스들, USB 드라이브들, 광학 드라이브들, 스크린들, 터치스크린들 등)을 포함할 수 있다. 일부 양태들에 따르면, 관리자 또는 사용자/운영자는 작업들을 구성하고, 이미지들 또는 다른 정보를 검토하고, 변경들을 행하고, 응답들 및/또는 선택들을 입력하고/하거나, 다른 기능들을 수행하기 위해 사용자 컴퓨팅 디바이스(102) 및/또는 이미징 디바이스(104)에 액세스할 수 있다.
본 명세서에서 전술한 바와 같이, 일부 양태들에서, 사용자 컴퓨팅 디바이스(102)는 "클라우드" 네트워크의 일부로서 본 명세서에서 논의된 바와 같은 기능들을 수행할 수 있거나, 본 명세서에서 설명된 데이터 또는 정보를 전송, 검색 또는 달리 분석하기 위해 클라우드 내의 다른 하드웨어 또는 소프트웨어 구성요소들과 다른 방식으로 통신할 수 있다.
도 2는 본 명세서에 설명된 양태들에 따른, 도 1의 이미징 디바이스(104)의 사시도이다. 비제한적인 예로서, 도 2는 도 1에 대해 본 명세서에서 설명되는 바와 같은 VS70 MACHINE VISION SMART CAMERA 디바이스를 나타낸다. 이미징 디바이스(104)는 하우징(202), 이미징 애퍼처(204), 사용자 인터페이스 라벨(206), 돔 스위치/버튼(208), 하나 이상의 발광 다이오드(LED)(210) 및 장착 포인트(들)(212)를 포함한다. 전술한 바와 같이, 이미징 디바이스(104)는 사용자 컴퓨팅 디바이스(예로서, 사용자 컴퓨팅 디바이스(102))로부터, 이미징 디바이스(104)가 이후 해석하고 실행하는 작업 파일들을 획득할 수 있다. 작업 파일에 포함된 명령어들은 타겟 객체의 이미지들을 캡처하기 이전에 이미징 디바이스(104)의 구성을 조정하도록 동작가능한 디바이스 구성 설정들(본 명세서에서 "이미징 설정들"이라고도 함)을 포함할 수 있다.
예를 들어, 디바이스 구성 설정들은 이미징 애퍼처(204)에 관련된 하나 이상의 설정을 조정하기 위한 명령어들을 포함할 수 있다. 예로서, 기계 비전 작업에 대응하는 의도된 분석의 적어도 일부는 이미징 디바이스(104)가 임의의 캡처된 이미지의 밝기를 최대화할 것을 요구한다고 가정한다. 이 요건을 수용하기 위해, 작업 파일은 이미징 애퍼처(204)의 애퍼처 크기를 증가시키는 디바이스 구성 설정들을 포함할 수 있다. 이미징 디바이스(104)는 (예로서, 하나 이상의 프로세서(118)를 통해) 이러한 명령어들을 해석할 수 있으며, 이에 따라 이미징 애퍼처(204)의 애퍼처 크기를 증가시킬 수 있다. 따라서, 이미징 디바이스(104)는 특정 기계 비전 작업에 최적으로 따르도록 그 자신의 구성을 자동으로 조정하도록 구성될 수 있다. 게다가, 이미징 디바이스(104)는 예를 들어 제한 없이, 이미징 애퍼처(204)를 통해 수신된 조명 위에 또는 이에 다른 방식으로 영향을 미치는 하나 이상의 대역통과 필터, 하나 이상의 편광기, 하나 이상의 DPM 확산기, 하나 이상의 C-마운트 렌즈 및/또는 하나 이상의 C-마운트 액체 렌즈를 포함하거나 이를 포함하도록 다른 방식으로 적응가능할 수 있다.
사용자 인터페이스 라벨(206)은 돔 스위치/버튼(208) 및 하나 이상의 LED(210)를 포함할 수 있으며, 이에 의해 다양한 상호작용 및/또는 표시 특징들을 가능하게 할 수 있다. 일반적으로, 사용자 인터페이스 라벨(206)은 사용자가 (예로서, 돔 스위치/버튼(208)을 통해) 이미징 디바이스(104)를 트리거링 및/또는 튜닝하고, (예로서, 하나 이상의 LED(210)를 통해) 이미징 디바이스(104)에 대해 하나 이상의 기능, 에러 및/또는 다른 액션이 수행되거나 발생된 때를 인식하는 것을 가능하게 할 수 있다. 예를 들어, 돔 스위치/버튼(예를 들어, 돔 스위치/버튼(208))의 트리거 기능은 사용자가 이미징 디바이스(104)를 이용하여 이미지를 캡처하고/하거나 사용자 애플리케이션(예를 들어, 스마트 이미징 애플리케이션(116))의 트리거 구성 스크린을 디스플레이하게 할 수 있다. 트리거 구성 스크린은, 본 명세서에서 논의되는 바와 같이, 사용자가 나중에 개발되는 기계 비전 작업들에서 이용하기 위해 메모리(예를 들어, 하나 이상의 메모리(110, 120, 및/또는 160))에 저장될 수 있는, 이미징 디바이스(104)에 대한 하나 이상의 트리거를 구성하게 할 수 있다.
다른 예로서, 돔 스위치/버튼(예를 들어, 돔 스위치/버튼(208))의 튜닝 기능은 사용자가 선호하는/미리 결정된 구성에 따라 이미징 디바이스(104)의 구성을 자동 및/또는 수동으로 조정하고/하거나 사용자 애플리케이션(예를 들어, 스마트 이미징 애플리케이션(116))의 이미징 구성 스크린을 디스플레이하게 할 수 있다. 이미징 구성 스크린은 본 명세서에서 논의되는 바와 같이, 사용자가 나중에 개발되는 기계 비전 작업들에서 이용하기 위해 메모리(예를 들어, 하나 이상의 메모리(110, 120, 및/또는 160))에 저장될 수 있는, 이미징 디바이스(104)의 하나 이상의 구성(예를 들어, 애퍼처 크기, 노출 길이 등)을 구성하게 할 수 있다.
이 예를 추가하기 위해, 그리고 본 명세서에서 추가로 논의되는 바와 같이, 사용자는 이미징 디바이스(104)에 대한 이미징 설정들의 2개 이상의 구성을 확립하기 위해 이미징 구성 스크린(또는 더 일반적으로, 스마트 이미징 애플리케이션(116))을 이용할 수 있다. 사용자는 이어서 하나 이상의 작업 스크립트를 포함하는 작업 파일에서 이미징 디바이스(104)에 이후 전송되는 기계 비전 작업의 일부로서 이러한 이미징 설정들의 2개 이상의 구성을 저장할 수 있다. 이어서, 하나 이상의 작업 스크립트는 각각의 연속적인 이미지 캡처 후에 이미징 설정들의 2개 이상의 구성 중 하나 이상에 따라 이미징 디바이스의 이미징 설정들을 자동으로 그리고 순차적으로 조정하도록 이미징 디바이스(104)의 프로세서들(예로서, 하나 이상의 프로세서(118))에 지시할 수 있다.
장착 포인트(들)(212)는 사용자가 이미징 디바이스(104)를 장착 디바이스(예를 들어, 이미징 삼각대, 카메라 마운트 등), 구조적 표면(예를 들어, 창고 벽, 창고 천장, 구조적 지지 빔 등), 다른 액세서리 아이템들, 및/또는 임의의 다른 적절한 연결 디바이스들, 구조물들, 또는 표면들에 연결하고/하거나 제거가능하게 부착하는 것을 가능하게 할 수 있다. 예를 들어, 이미징 디바이스(104)는 제품들, 패키지들, 및/또는 다른 아이템들이 이미징 디바이스(104)의 FOV를 통과할 때 이들을 이미징하고 이에 의해 이들의 품질/일관성을 모니터링하기 위해 유통 센터, 제조 설비, 창고, 및/또는 다른 시설 내의 장착 디바이스 상에 최적으로 배치될 수 있다. 더욱이, 장착 포인트(들)(212)는 사용자가 이미징 디바이스(104)를 하나 이상의 외부 조명 디바이스, 하나 이상의 장착 디바이스/브래킷 등을 포함하지만 이에 제한되지 않는 무수한 액세서리 아이템들에 연결하는 것을 가능하게 할 수 있다.
또한, 이미징 디바이스(104)는 컴퓨터 네트워크(예로서, 네트워크(106))에 대한 접속을 가능하게 하는, 하우징(202) 내에 포함된 여러 하드웨어 구성요소들을 포함할 수 있다. 예를 들어, 이미징 디바이스(104)는 이미징 디바이스(104)가 기가비트 이더넷 접속 및/또는 듀얼 기가비트 이더넷 접속과 같은 네트워크에 접속하는 것을 가능하게 하는 네트워킹 인터페이스(예로서, 네트워킹 인터페이스(122))를 포함할 수 있다. 또한, 이미징 디바이스(104)는 예를 들어 이더넷/IP, PROFINET, Modbus TCP, CC-링크, USB 3.0, RS-232 및/또는 임의의 다른 적절한 통신 프로토콜 또는 이들의 조합들을 통해 다른 디바이스들(예로서, 사용자 컴퓨팅 디바이스(102))과 통신하기 위한 네트워킹 인터페이스의 일부로서 트랜시버들 및/또는 다른 통신 구성요소들을 포함할 수 있다.
도 3은 본 명세서에 설명된 양태들에 따른, 도 1의 기계 비전 시스템의 동작과 관련하여 이용되는 예시적인 애플리케이션 인터페이스(300)를 도시한다. 도 3의 예에 도시된 바와 같이, 이미지(302)는 애플리케이션 인터페이스(300)에 로딩 및/또는 디스플레이된다. 애플리케이션 인터페이스(300)는 이미지와 연관된 관심 영역들(ROI들)을 가질 수 있거나, 또는 가질 준비가 되어 있거나(아직 없거나), 주석부기되거나, 마킹되거나, 또는 다른 방식으로 조작될 수 있는 이미지들을 로딩할 수 있다. 이러한 ROI들은 본 명세서에 설명된 바와 같이 기계 비전 작업들을 구현하도록 기계 학습 모델들을 트레이닝하고/하거나 이미징 디바이스(104)를 다른 방식으로 구성하는데 이용될 수 있다. 일부 양태들에서, 애플리케이션 인터페이스(300)는 또한, 예를 들어, 이미 트레이닝된 기계 비전 모델들 등에 의해, 트레이닝, 테스트, 및/또는 애플리케이션에 이용될 수 있는 추가 이미지들(320)을 저장 및/또는 로딩할 수 있다.
도 3의 예에서, 이미지(302)는 이미징 디바이스(104)에 의해 이미징될 수 있는 제조된 제품의 예인 컴퓨터 회로 보드의 이미지를 나타낸다. 이미지(302)는 사용자에 의해 조작되거나 다른 방식으로 상호작용될 수 있다. 도시된 바와 같이, 이미지(302)는 ROI들(306 및 308)을 묘사한다. ROI(306)는 이미지(302)의 컴퓨터 회로 보드와 연관된 바코드를 포함한다. ROI(308)는 컴퓨터 회로 보드의 일부, 예를 들어 컴퓨터 칩이 이미지(302)의 컴퓨터 회로 보드 상에 설치되는(또는 설치되어야 하는) 영역 또는 구역을 포함한다.
ROI는 바람직한 임의의 형상일 수 있으며, 수동 또는 자동인 임의의 방식으로 획득될 수 있다는 것을 알아야 한다. 예를 들어, 각각의 도시된 ROI는 직사각형 형상을 갖는 것으로 도시되어 있지만, ROI는 예를 들어 원형, 정사각형, 타원형, 팔각형 또는 임의의 다른 원하는 형상을 가질 수 있다. 또한, ROI는 임의의 라인에 대해 대칭일 필요가 없고, ROI는 모두 함께 불규칙한 형상을 가질 수 있다. ROI를 생성하는 것과 관련하여, ROI는 사용자가 마우스로 이미지(302) 내의 포인트를 선택하고 원하는 비율들의 ROI를 그리기 위해 ROI 기능을 활성화하는 동안 그 포인트로부터 포인터를 드래그하는 것에 의해 수동으로 생성될 수 있거나, 애플리케이션 및/또는 이미징 디바이스에 의해 수행된 이미지 분석의 결과들에 기반하여 생성될 수 있다. 예를 들어, 시스템은 임계값 위 또는 아래의 픽셀 밝기 값을 갖는 이미지 내의 영역 주위에 ROI를 생성하도록 구성될 수 있고, 에지 검출에 기반하여 ROI를 생성하도록 구성될 수 있고, 컬러 검출에 기반하여 ROI를 생성하도록 구성될 수 있는 식이다.
또한, 각각의 ROI는 일부 식별 정보를 제공하는, 스크린 상에 디스플레이된 라벨(예를 들어, ROI(306)에 대한 라벨(306L) 및 ROI(308)에 대한 라벨(308L))을 가질 수 있다. 이러한 식별 정보는 비제한적인 예로서 이미지 내의 특징 또는 특징들을 식별하거나 나타내는 정보, ROI를 생성하는데 이용된 접근법, 또는 ROI에 대응하는 다른 이러한 정보를 포함할 수 있다. 도 3의 예에서, 라벨(306L)은 ROI(306)를 이미지 식별자(ID)(예를 들어, ROI(306)에 도시된 바코드가 바코드를 포함하는 경우)로서 정의한다. 유사하게, 라벨(308L)은 ROI(308)를 상태(예를 들어, ROI(308)에 도시된 컴퓨터 칩이, 예를 들어, 컴퓨터 칩이 성공 상태(예를 들어, 결함이 없는 것으로 묘사됨) 또는 실패 상태(예를 들어, 결함, 누락 등으로 묘사됨)로 묘사되어 있는지 여부를 나타내기 위한 성공 또는 실패 상태를 포함하는 상태를 갖는 경우)로서 정의한다.
하나 이상의 ROI가 존재할 때, 사용자 액션에 응답하여 어떤 ROI가 영향을 받아야 하는지를 결정하기 위해 다음의 접근법이 적용될 수 있다. 예를 들어, 다음의 논리가 적용될 수 있다:
마우스 포인터가 ROI 라벨 위에 있는 경우, 그 라벨과 연관된 ROI가 상호작용을 위해 타겟팅된다.
그렇지 않고, 포인터가 단일 ROI의 바디 내에 있는 경우, 마우스 포인터가 발견되는 ROI가 상호작용을 위해 타겟팅된다.
그렇지 않고, 포인터가 복수의 ROI의 바디 내에 있는 경우, 그 중심이 포인터의 위치에 가장 가까운 ROI를 타겟팅한다.
포인터가 복수의 ROI 중심에 대해 등거리인 경우, 상호작용을 위해 가장 작은 ROI를 타겟팅한다.
ROI가 타겟팅되면, 이것은 클릭에 의해 선택될 수 있거나 드래그에 의해 이동될 수 있다. 포인터가 이미지(302)를 디스플레이하는 캔버스 상에서 이동함에 따라, 타겟팅된 ROI는 반투명 오버레이로 강조될 수 있으며, 따라서 사용자는 현재 포인터 위치가 주어질 때 이들이 어느 ROI와 상호작용하고 있는지를 알게 된다.
이러한 중심-거리 논리는, 일단 사용자가 관례에 익숙해지면, 사용자들이 겹치는 ROI들의 그룹 중에서 원하는 ROI를 타겟팅하는 것을 허용한다.
다른 양태들에서, 다음의 논리가 적용된다:
포인터가 ROI 라벨 위에 있는 경우, 그 라벨과 연관된 ROI가 상호작용을 위해 타겟팅된다.
그렇지 않고, 포인터가 단일 ROI의 바디 내에 있는 경우, 마우스 포인터가 발견되는 ROI가 상호작용을 위해 타겟팅된다.
그렇지 않고, 포인터가 복수의 ROI의 바디 내에 있는 경우, 그 경계가 포인터에 가장 가까운 ROI를 타겟팅한다.
포인터가 복수의 ROI 경계에 대해 등거리인 경우, 중심까지의 거리 및/또는 ROI 크기가 동점 처리자들(tiebreakers)로서 이용된다. 따라서, 타겟팅된 ROI는 그 중심이 포인터의 위치에 가장 가까운 ROI 및/또는 크기가 가장 작은 ROI일 것이다.
ROI의 경계는 다른 투명한 ROI 바디의 가시 요소일 수 있으며, 따라서 비가시 중심보다 타겟팅을 위한 앵커의 역할을 할 수 있다. 얇은 경계가 스스로 타겟으로서 역할을 하기에는 너무 많은 포인팅 정확도를 필요로 할 수 있지만, 사용자들은 경계 근처의 ROI 바디의 내부에 대한 포인팅의 관례를 따를 수 있으며, 이는 더 적은 포인팅 정확도를 필요로 하므로 효율적이다.
특정 모드들이 특정 사용자들에게 더 직관적인 경우, 또는 특정 모드들이 특정 이용 사례들에 더 적합한 경우, 몇몇 상이한 겹치는 ROI 타겟팅 모드 옵션들 사이에서 스위칭하기 위해 겹치는 ROI 상호작용 설정들이 추가될 수 있다. 모드들은 다음을 포함할 수 있다:
동적 타겟팅(구성가능한 임계값에 기반한 가장 가까운 중심 또는 가장 가까운 경계)
경계 타겟팅(가장 가까운 경계)
중심 타겟팅(가장 가까운 중심)
크기 타겟팅(가장 작은 ROI)
Z-인덱스 타겟팅(선택된 또는 최상위 ROI)
본 개시내용 전반에 걸쳐, 마우스와 같은 입력 디바이스들에 대한 참조들이 제한으로서 간주되지 않아야 하며, 다른 입력 디바이스들이 본 개시내용의 범위 내에 있는 것으로 고려되어야 한다는 것을 알아야 한다. 예를 들어, 애플리케이션이 터치-스크린 능력들을 갖는 태블릿 또는 노트북과 같은 모바일 디바이스 상에서 실행되는 경우, 사용자의 손가락 및 스크린을 통한 각각의 입력 기능들이 컴퓨터 마우스의 입력 기능들처럼 기능할 수 있다는 것을 알아야 한다.
도 4는 본 명세서에 설명된 양태들에 따른, 디지털 이미지들의 ROI들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 예시적인 기계 비전 방법(400)이다. 기계 비전 작업들은, VS70 MACHINE VISION SMART CAMERA 디바이스와 같이, ZEBRA TECHNOLOGIES CORP.에 의해 제공되는 바와 같은 VS-SERIES 스마트 카메라들 중 임의의 하나 이상과 같은 이미징 카메라(예를 들어, 이미징 디바이스(104))에 배치가능하고, 그 상에서 구현가능하다. 예를 들어, 일 양태에서, 기계 비전 작업은 도 3에 도시된 바와 같은 컴퓨터 회로 보드와 같은 제품의 바코드의 이미지를 판독 또는 스캐닝하기 위해 이미징 카메라에 배치되도록 구성될 수 있다. 일반적으로, 기계 비전 방법(400)은 하나 이상의 프로세서(예를 들어, 기계 비전 시스템(100)의 프로세서들(108, 118 및/또는 158))에 의해 실행가능하고 본 명세서에 설명된 바와 같은 유형의 비일시적 컴퓨터 판독가능한 매체(예를 들어, 컴퓨터 판독가능한 매체) 상에 저장된 컴퓨팅 명령어들로서 구현될 수 있는 알고리즘을 나타낸다.
도 4를 참조하면, 블록(402)에서, 기계 비전 방법(400)은 이미지 ID를 캡처하기 위한 기계 비전 툴을 구성하는 단계를 포함한다. 예를 들어, 도 4의 예에서, 애플리케이션 인터페이스(300)는 이미지 ID를 나타내는 바코드를 캡처하기 위해 단일의 구성된 툴로 빈 프로젝트를 생성하는데 이용될 수 있다. 기계 비전 툴은 기계 비전 시스템(100)에 대해 설명된 바와 같은 이미징 디바이스(104) 또는 다른 구성요소에 의해 수행되는 바와 같이, OCR 판독기, 바 판독기, 이미지 분석(예를 들어, 영역 내의 픽셀들의 수의 카운트)을 동작, 액세스, 또는 실행하도록 구성될 수 있으며, 각각의 툴은 특정 처리 기능을 수행한다.
블록(404)에서, 기계 비전 방법(400)은 복수의 트레이닝 이미지(예를 들어, 트레이닝 이미지 세트)를 로딩하는 단계를 포함하고, 각각의 트레이닝 이미지는 이미지 ID를 묘사하고; 복수의 트레이닝 이미지는 프로젝트에 대한 일련의 캡처된 이미지들을 포함하는 폴더 또는 라이브러리(예를 들어, 추가 이미지들(320))에서 선택되거나 이에 저장될 수 있다. 각각의 이미지는 캡처된 이미지 ID에 따라 판독 및 식별될 수 있다.
블록(406)에서, 기계 비전 방법(400)은 각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 복수의 트레이닝 이미지 각각을 라벨링하는 단계를 포함한다. 예를 들어, 일부 양태들에서, 기계 비전 작업을 구성하는 것은, 라벨링(예를 들어, 라벨(308L))하고 성공(예를 들어, 성공 상태) 또는 실패(예를 들어, 실패 상태)를 나타내기 위해 컴퓨터 칩 위치(예를 들어, ROI(308))와 같은, 이미지 내의 ROI들을 선택하는 것을 포함할 수 있다.
일부 양태들에서, 이미지들은 메모리(예를 들어, 하나 이상의 메모리(110, 120, 및/또는 160))에 저장될 수 있거나, 그렇지 않으면 이미지 데이터베이스가 사용자에 의해 관리된다. 이미지들은 성공 또는 실패 상태로 마킹될 수 있다. 예를 들어, 구성요소(예를 들어, 컴퓨터 칩)는 현장에서(예를 들어, 제조 시설에서) 또는 테스트에 의해 결함이 있는 것으로 발견되면, ROI(예를 들어, ROI(308))에서 실패 상태로서 마킹된다. 디폴트로, 실패로 마킹되지 않은 각각의 이미지는 성공의 예인 것으로 가정되지만, 이것은 예를 들어 애플리케이션 인터페이스(300)를 통해 사용자 선호도에 의해 구성될 수 있다. 일부 양태들에서, 성공의 표시는 품질 제어를 포함할 수 있다. 예를 들어, 성공의 표시는 특정 제품 또는 구성요소(예를 들어, 이미지(302)에 대해 도시된 바와 같은 컴퓨터 회로 보드 및/또는 컴퓨터 칩)가 품질 제어를 통과했다는 표시를 포함할 수 있다. 제품은 이미지 ID(예를 들어, ROI(306)에서의 바코드)에 의해 식별될 수 있다.
실패 상태는 바코드의 판독 실패 또는 품질 제어 실패에 의해 표시될 수 있다(예를 들어, 컴퓨터 회로 보드의 스캐닝 또는 이미징은 회로 보드 상의 리드들이 연결되지 않는 것, 컴퓨터 칩이 누락되는 것 등과 같은 품질 제어의 실패를 드러내거나 나타낸다). 이러한 양태들에서, (예로서, ROI(306)에서 식별되는 바와 같은) 바코드는 어느 제품이 실패했는지를 고유하게 식별할 수 있다. 일부 양태들에서, 복수의 트레이닝 이미지 중 하나 이상의 트레이닝 이미지는 실패 상태를 나타내기 위해 라벨링될 수 있고(예를 들어, 라벨(308L)), 이러한 라벨링은 트레이닝 이미지 내에 묘사된 객체의 시각적으로 결함 있는 영역 또는 부분을 나타내기 위해 그래픽 유한 영역(예를 들어, ROI(308))을 포함시킬 수 있다. 예를 들어, 실패 상태 또는 상황을 나타내거나 표시하기 위해 이미지(예를 들어, 이미지(302))를 마킹할 때, 사용자는 시각적으로 결함 있는 영역(들) 주위에 다각형을 그려 학습 프로세스가 실패 영역(예를 들어, ROI(308), 여기서, 예를 들어, 컴퓨터 칩이 이미지(302)에 묘사된 컴퓨터 회로 보드로부터 누락될 수 있음)을 식별하는 것을 도울 수 있다.
도 4를 참조하면, 블록(408)에서, 기계 비전 방법(400)은 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하는 단계를 포함한다. 각각의 이미지는 캡처된 이미지 ID(예를 들어, ROI(306)에 도시된 바코드)에 따라 판독 및 식별될 수 있다. 후보 특징들이 추출되고 이미지 컬렉션으로부터 교차 비교되어 작업에 대한 일련의 후보 영역들(예를 들어, 컴퓨터 칩 또는 관련 영역을 묘사하는 ROI(308))을 생성할 수 있다. 후보 특징들은 이전에 나타낸 바와 같이 성공 및/또는 실패 표시들에 대응할 수 있다.
블록(402)에서, 기계 비전 방법(400)은 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI(예를 들어, ROI(308))를 생성하는 단계를 포함한다.
블록(412)에서, 기계 비전 방법(400)은 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하는 단계를 포함하고, 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정된다. 이러한 방식으로, ROI들은 학습 프로세스로부터 특정 영역들을 포함시키거나 배제하도록 정의될 수 있다. 예를 들어, 회로 보드의 특정 영역들/ROI들은 이미징되기 쉬운 영역들(예를 들어, 품질 제어 이슈들이 통상적으로 발생하는 영역들 또는 중요한 리드들)을 정의하는 ROI들을 포함할 수 있다. 대조적으로, 배제된 영역들은 상이한 프로세서 유형(INTEL 또는 AMD)과 같이 상이한(이에 따라 품질을 나타내지 않는) 영역들을 포함할 수 있다. 그 후, 이러한 후보 영역은, 예를 들어, 예시적인 애플리케이션 인터페이스(300)를 통해 사용자에게 제시될 수 있어서, 사용자는 이러한 영역들이 프로젝트에 포함되어야 하는지 또는 프로젝트로부터 배제되어야 하는지를 선택할 수 있다. 바코드들 및 OCR에 대한 경우에서와 같이, 이미지들에 걸쳐 콘텐츠로부터 영역 유형이 결정될 수 있는 경우, 새로운 툴을 정확하게 구성하기 위해 디폴트 값들이 입력된다. 이러한 방식으로, 애플리케이션 인터페이스(300)는, 예를 들어, 블록(414)에 대해 설명되는 바와 같이, 비전 학습 모델로부터 선택하고 이를 트레이닝하는데 이용될 수 있는 가능한 중요한 이미지 특징들을 플래깅함으로써 이미지들의 감독 학습 및 트레이닝을 구현하기 위한 자동화된 또는 보조된 방식을 제공한다.
블록(414)에서, 기계 비전 방법(400)은 트레이닝 ROI 세트 및 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하는 단계를 포함한다. 비전 학습 모델은 기계 비전 작업을 출력하도록 구성될 수 있다. 즉, 포함된 및/또는 포함된 ROI들 및/또는 성공 또는 실패 상태들로 주석부기되거나 선택된 이미지들은 예시적인 트레이닝 이미지 세트에 기반하여 기계 비전 작업을 생성 또는 출력하기 위해 기계 학습 알고리즘으로 트레이닝될 수 있다. 각각의 이미지에 대해, 후보 (성공) 특징들이 추출되고, 실패 세트들과 교차 비교될 수 있다. 이러한 방식으로, 기계 비전 방법(400)은, 자동으로, 그렇지 않으면 수동으로 생성될 작업을 포함한다.
다양한 양태들에서, 비전 학습 모델은 감독 또는 무감독 기계 학습 프로그램 또는 알고리즘을 이용하여 트레이닝될 수 있다. 기계 학습 프로그램 또는 알고리즘은 콘볼루션 신경망, 심층 학습 신경망, 또는 특정한 관심 영역 내의 2개 이상의 특징 또는 특징 데이터세트에서 학습하는 결합된 학습 모듈 또는 프로그램일 수 있는 신경망을 이용할 수 있다. 기계 학습 프로그램들 또는 알고리즘들은 또한 자연 언어 처리, 시맨틱 분석, 자동 추론, 회귀 분석, SVM(support vector machine) 분석, 결정 트리 분석, 랜덤 포레스트 분석(random forest analysis), K-최근접 이웃 분석, 나이브 베이즈 분석(nave Bayes analysis), 클러스터링, 강화 학습, 및/또는 다른 기계 학습 알고리즘들 및/또는 기술들을 포함할 수 있다. 기계 학습은 후속 데이터에 대한 예측 또는 출력을 용이하게 하기 위해 (라벨링되거나 다른 방식으로 식별된 ROI들 내의 픽셀들과 같은) 기존 데이터 내의 패턴들을 식별하고 인식하는 것(추가 또는 유사한 이미지들에서 유사한 ROI들을 예측하거나 다른 방식으로 검출하기 위한 기계 비전 작업들을 출력하는 것)을 수반할 수 있다.
비전 학습 모델에서의 것들과 같은 기계 학습 모델(들)은 테스트 레벨 또는 생산 레벨 데이터 또는 입력들과 같은 새로운 입력들에 대한 유효하고 신뢰성 있는 예측들을 행하기 위해 ("특징들" 및 "라벨들"로 지칭될 수 있는) 예시적인(예를 들어, "트레이닝 데이터") 입력들 또는 데이터에 기반하여 생성되고 트레이닝될 수 있다.
감독 기계 학습에서, 서버, 컴퓨팅 디바이스, 또는 다른 프로세서(들) 상에서 동작하는 기계 학습 프로그램에는, 기계 학습 프로그램 또는 알고리즘이, 예를 들어, 그 다양한 특징 카테고리들에 걸쳐 모델에 대한 가중치들 또는 다른 메트릭들을 결정 및/또는 할당함으로써, 이러한 입력들(예를 들어, "특징들")을 출력들(예를 들어, 라벨들)에 매핑하는 규칙들, 관계들, 또는 다른 기계 학습 "모델들"을 결정 또는 발견하기 위해, 예시적인 입력들(예를 들어, "특징들") 및 그 연관된 또는 관찰된 출력들(예를 들어, "라벨들")이 제공될 수 있다. 이러한 규칙들, 관계들, 또는 다른 모델들은 그 후 서버, 컴퓨팅 디바이스, 또는 다른 프로세서(들) 상에서 실행되는 모델이 발견된 규칙들, 관계들, 또는 모델에 기반하여, 예상된 출력을 예측하기 위해 후속 입력들을 제공받을 수 있다.
무감독 기계 학습에서, 서버, 컴퓨팅 디바이스 또는 다른 프로세서(들)는 라벨링되지 않은 예시적인 입력들에서 그 자신의 구조를 찾도록 요구될 수 있으며, 예를 들어, 복수의 트레이닝 반복들은 만족스러운 모델, 예를 들어, 테스트 레벨 또는 생산 레벨 데이터 또는 입력들이 주어질 때 충분한 예측 정확도를 제공하는 모델이 생성될 때까지 복수의 세대들의 모델들을 트레이닝하기 위해 서버, 컴퓨팅 디바이스 또는 다른 프로세서(들)에 의해 실행된다.
감독 학습 및/또는 무감독 기계 학습은 또한, 시간이 지남에 따라 수신되거나, 입수되거나, 생성되거나, 다른 방식으로 이용되는 정보를 포함할 수 있는, 새로운 또는 상이한 정보로 모델들을 재트레이닝, 재학습, 또는 다른 방식으로 업데이트하는 것을 포함할 수 있다. 본 명세서의 개시내용은 이러한 감독 또는 무감독 기계 학습 기술들 중 하나 또는 양쪽 모두를 이용할 수 있다.
예를 들어, 도 3의 예와 관련하여, 이미지(302)는 ROI(308)가 연결되지 않은 전기 리드들을 갖는 실패 상태인지 또는 컴퓨터 칩이 파손, 누락 등인지를 나타내는 트레이닝 이미지를 포함할 수 있다. 일단 트레이닝되면, 비전 학습 모델은 새로운 또는 추가 이미지들에서 유사한 결함들을 검출할 수 있다.
추가 양태들에서, 비전 학습 모델은 트레이닝 ROI 세트 및 복수의 트레이닝 이미지로, 트레이닝 이미지에 묘사된 객체의 품질을 나타내는 품질 스코어를 출력하도록 추가로 트레이닝된다. 예를 들어, 컴퓨터 회로 보드는 결함들에 기반하여 더 낮은 품질 스코어를 가질 수 있다.
일부 양태들에서, 트레이닝 ROI 세트 중 적어도 하나는 임계 ROI를 포함할 수 있다. 임계 ROI는 비전 학습 모델로 하여금, (a) 트레이닝 이미지에 묘사된 객체에 대한 높은 품질을 나타내는 품질 스코어 또는 (b) 트레이닝 이미지에 묘사된 객체에 대한 낮은 품질을 나타내는 품질 스코어 중 적어도 하나를 출력하게 할 수 있다. 이러한 양태들에서, 비전 학습 모델을 트레이닝하는 것은 트레이닝 이미지들에 추가될 임계 패턴 ROI들을 식별하는 것을 포함할 수 있다. 일반적으로, 임계 패턴은 모델이 모든 통과 인스턴스들 중에서 높은 스코어를 생성하고 실패 인스턴스들 중에서 낮은 스코어를 생성하는 ROI를 자동으로 식별할 수 있다.
도 3의 예의 경우, 컴퓨터 회로 보드의 실패 인스턴스는 갈라질 가장 가능성이 있는, 또는 회로 보드 상의 누락된 프로세서 또는 칩이 통상적으로 발견되는(그러나 누락되거나 부분적으로 누락되는), 임의의 다른 구성요소가 통상적으로 올바르게 납땜되지 않는, 또는 커패시터가 끊어지는(예를 들어, 상단에서 끊어지는) 등, 또는 제품의 제조 프로세스 동안 또는 그 후에 발생하는 것으로 경험되거나 알려진 임의의 다른 실패 또는 이슈들이 있는 회로 보드의 ROI를 포함할 수 있다. 일부 양태들에서, 이상적인 임계 패턴은 모든 통과 인스턴스들에 대해 100% 그리고 모든 실패 인스턴스들에 대해 0%로 매칭되는 ROI(즉, 100% 통과 또는 100% 실패를 나타내는 ROI)일 것이다.
일부 양태들에서, 비전 학습 모델은 복수의 인공 지능 모델을 포함하는 앙상블 모델을 포함할 수 있다. 이러한 양태들에서, 복수의 인공 지능 모델 각각은 객체를 묘사하는 디지털 이미지 내의 특정 ROI들에 대한 품질 스코어들을 출력하도록 트레이닝 ROI 세트의 서브세트들로 트레이닝될 수 있다. 이러한 양태들에서, ROI들 및/또는 임계 패턴들을 갖는 트레이닝 이미지들은 앙상블 모델을 트레이닝하는데 이용될 수 있으며, 이는 ROI들을 약한 학습자들로서 이용하여 주어진 기계 비전 작업에 대한 개선된 비전 학습 모델을 생성하는 부스팅과 같은 추가 트레이닝 또는 학습을 포함할 수 있다. 이 프로세스로부터의 모델 출력은 이어서 카메라에 의해 제공되는 새로운 또는 추가의 예시적인 이미지들에 결함 스코어를 할당할 수 있다.
더 일반적으로, 비전 학습 모델은 각각이 각각의 이미지에 대한 상이한 ROI들에 대해 트레이닝되고 이들을 검출하도록 구성된 복수의 기계 학습 모델을 포함할 수 있다. 이러한 양태들에서, 각각의 모델은 단일 ROI(각각의 ROI가 특정 픽셀들을 가짐)에서 분석하도록 구성될 수 있으며, 각각의 모델은 예측 스코어를 출력할 수 있다. 스코어들은 전체 또는 앙상블 스코어에 대해 평균화될 수 있다. 일부 모델들은 무감독 학습을 이용하는 세그먼트화된 모델들일 수 있다.
도 4를 참조하면, 블록(416)에서, 기계 비전 방법(400)은 비전 학습 모델을 배치하는 단계를 포함할 수 있다. 예를 들어, 기계 비전 작업은 이미징 디바이스(예를 들어, 이미징 디바이스(104))에의 전자 배치를 위해 구성될 수 있다. 이러한 양태들에서, 기계 비전 작업을 구현하는 이미징 디바이스(예를 들어, 이미징 디바이스(104))는 객체 또는 제품의 품질 제어 및/또는 다른 이슈들을 검출하기 위해 제조 프로세스 동안 객체가 정지 상태로 유지되는 것 또는 컨베이어 벨트 상에서 이동하는 것 등에 따라 객체(예를 들어, 컴퓨터 회로 보드)를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성될 수 있다.
추가적인 고려사항들
상기의 설명은 첨부 도면들의 블록도를 참조한다. 블록도에 의해 표현된 예의 대안적인 구현들은 하나 이상의 추가적인 또는 대안적인 요소, 프로세스 및/또는 디바이스를 포함한다. 추가적으로 또는 대안적으로, 도면의 예시적인 블록들 중 하나 이상은 결합, 분할, 재배열 또는 생략될 수 있다. 도면의 블록들에 의해 표현되는 구성요소들은 하드웨어, 소프트웨어, 펌웨어, 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현된다. 일부 예들에서, 블록들에 의해 표현되는 구성요소들 중 적어도 하나는 논리 회로에 의해 구현된다. 본 명세서에서 이용되는 바와 같이, "논리 회로"라는 용어는 하나 이상의 기계를 제어하고/하거나 하나 이상의 기계의 동작을 수행하도록 (예를 들어, 미리 결정된 구성에 따른 동작을 통해 그리고/또는 저장된 기계 판독가능한 명령어들의 실행을 통해) 구성된 적어도 하나의 하드웨어 구성요소를 포함하는 물리적 디바이스로서 명시적으로 정의된다. 논리 회로의 예들은 하나 이상의 프로세서, 하나 이상의 코프로세서, 하나 이상의 마이크로프로세서, 하나 이상의 제어기, 하나 이상의 디지털 신호 프로세서(DSP), 하나 이상의 주문형 집적 회로(ASIC), 하나 이상의 필드 프로그래머블 게이트 어레이(FPGA), 하나 이상의 마이크로제어기 유닛(MCU), 하나 이상의 하드웨어 가속기, 하나 이상의 특수 목적 컴퓨터 칩, 및 하나 이상의 시스템 온 칩(SoC) 디바이스를 포함한다. ASIC들 또는 FPGA들과 같은 일부 예시적인 논리 회로들은 동작들(예를 들어, 존재하는 경우, 본 명세서에 설명되고 본 개시내용의 흐름도들에 의해 표현되는 동작들 중 하나 이상)을 수행하기 위해 구체적으로 구성된 하드웨어이다. 일부 예시적인 논리 회로들은, 동작들(예를 들어, 존재하는 경우, 본 명세서에 설명되고 본 개시내용의 흐름도들에 의해 표현되는 동작들 중 하나 이상)을 수행하기 위해 기계 판독가능한 명령어들을 실행하는 하드웨어이다. 일부 예시적인 논리 회로들은 기계 판독가능한 명령어들을 실행하는 하드웨어와 특별히 구성된 하드웨어의 조합을 포함한다. 상기의 설명은 본 명세서에 설명된 다양한 동작들 및 그 동작들의 흐름을 예시하기 위해 여기에 첨부될 수 있는 흐름도들을 참조한다. 임의의 이러한 흐름도들은 본 명세서에 개시된 예시적인 방법들을 나타낸다. 일부 예들에서, 흐름도들에 의해 표현되는 방법들은 블록도들에 의해 표현되는 장치를 구현한다. 본 명세서에 개시된 예시적인 방법들의 대안적인 구현들은 추가적인 또는 대안적인 동작들을 포함할 수 있다. 또한, 본 명세서에 개시된 방법들의 대안적인 구현들의 동작들은 결합, 분할, 재배열 또는 생략될 수 있다. 일부 예들에서, 본 명세서에 설명된 동작들은 하나 이상의 논리 회로(예를 들어, 프로세서(들))에 의한 실행을 위해 매체(예를 들어, 유형의 기계 판독가능한 매체) 상에 저장된 기계 판독가능한 명령어들(예를 들어, 소프트웨어 및/또는 펌웨어)에 의해 구현된다. 일부 예들에서, 본 명세서에 설명된 동작들은 하나 이상의 특별히 설계된 논리 회로(예를 들어, ASIC(들))의 하나 이상의 구성에 의해 구현된다. 일부 예들에서, 본 명세서에 설명된 동작들은 논리 회로(들)에 의한 실행을 위해 매체(예를 들어, 유형의 기계 판독가능한 매체) 상에 저장된 기계 판독가능한 명령어들 및 특별히 설계된 논리 회로(들)의 조합에 의해 구현된다.
본 명세서에서 이용되는 바와 같이, "유형의 기계 판독가능한 매체", "비일시적 기계 판독가능한 매체" 및 "기계 판독가능한 저장 디바이스"라는 용어들 각각은 기계 판독가능한 명령어들(예로서, 소프트웨어 및/또는 펌웨어 형태의 예를 들면 프로그램 코드 등)이 임의의 적절한 지속 시간 동안(예로서, 영구적으로, 연장된 기간 동안(예로서, 기계 판독가능한 명령어들과 연관된 프로그램이 실행되는 동안), 그리고/또는 짧은 기간 동안(예로서, 기계 판독가능한 명령어들이 캐싱되는 동안 그리고/또는 버퍼링 프로세스 동안)) 저장되는 저장 매체(예로서, 하드 디스크 드라이브, 디지털 다기능 디스크, 컴팩트 디스크, 플래시 메모리, 판독 전용 메모리, 랜덤 액세스 메모리 등의 플래터)로서 명백히 정의된다. 또한, 본 명세서에서 이용되는 바와 같이, "유형의 기계 판독가능한 매체", "비일시적 기계 판독가능한 매체" 및 "기계 판독가능한 저장 디바이스"라는 용어들 각각은 전파 신호들을 배제하도록 명백히 정의된다. 즉, 본 특허의 임의의 청구항에서 이용되는 바와 같이, "유형의 기계 판독가능한 매체", "비일시적 기계 판독가능한 매체" 및 "기계 판독가능한 저장 디바이스"라는 용어들 중 어느 것도 전파 신호에 의해 구현되는 것으로 해석될 수 없다.
전술한 명세서에서, 특정 양태들이 설명되었다. 그러나, 관련 기술분야의 통상의 기술자는 아래의 청구항들에 제시된 바와 같이 본 발명의 범위로부터 벗어나는 것 없이 다양한 수정들 및 변경들이 이루어질 수 있는 것을 이해한다. 따라서, 명세서 및 도면들은 제한적 의미라기보다는 예시적인 것으로 간주되어야 하며, 모든 이러한 수정들은 본 교시들의 범위 내에 포함되는 것으로 의도된다. 추가적으로, 설명된 양태들/예들/구현들은 상호 배타적인 것으로 해석되지 않아야 하고, 대신에 이러한 조합들이 임의의 방식으로 허용된다면 잠재적으로 조합가능한 것으로 이해되어야 한다. 다시 말해, 전술한 양태들/예들/구현들 중 임의의 것에 개시된 임의의 특징은 다른 전술한 양태들/예들/구현들 중 임의의 것에 포함될 수 있다.
이러한 이익들, 이점들, 문제점들에 대한 해결책들 및 발생할 또는 더욱 표명될 임의의 이익, 이점 또는 해결책을 초래할 수 있는 임의의 요소(들)가 임의의 또는 모든 청구항들의 중대한, 요구되는 또는 본질적인 특징들 또는 요소들로서 해석되어서는 안 된다. 청구된 발명은 오로지 이 출원의 계류 중에 이루어진 임의의 보정들을 포함하는 첨부된 청구항들 및 허여된 이러한 청구항들의 모든 등가물들에 의해서만 정의된다.
더욱이, 본 문서에서, 제1 및 제2, 상부 및 하부 등과 같은 관계 용어들은 이러한 엔티티들 또는 액션들 사이에 임의의 실제 이러한 관계 또는 순서를 반드시 요구 또는 암시하지는 않고 하나의 엔티티 또는 액션을 또 다른 엔티티 또는 액션과 구별하기 위해서만 이용될 수 있다. 용어들 "포함한다(comprises, includes, contains)", "포함하는(comprising, including, containing)", "갖는다(has)", "갖는(having)" 또는 그 임의의 다른 변형은, 비배타적인 포함을 커버하는 것으로 의도되어, 요소들의 리스트를 포함하고 갖는 프로세스, 방법, 물품 또는 장치는 단지 이러한 요소들만을 포함하는 것이 아니라, 명확히 열거되지 않거나 이러한 프로세스, 방법, 물품 또는 장치에 내재적인 다른 요소들을 포함할 수 있다. "~을 포함한다(comprises ... a, includes ... a, contains ... a)", "~을 갖는다(has ... a)" 앞에 언급된 요소는, 더 이상의 제한 없이도, 그 요소를 포함하고 갖는(comprises, has, includes, contains) 프로세스, 방법, 물품, 또는 장치에서의 동일한 추가 요소들의 존재를 제외하지 않는다. 단수형 용어들("a", "an")은 본 명세서에서 달리 명시적으로 언급되지 않는 한 하나 이상으로 정의된다. 용어들 "실질적으로", "본질적으로", "대략", "약" 또는 이들의 임의의 다른 버전은 관련 기술분야의 통상의 기술자에 의해 이해되는 바와 가깝게 정의되고, 하나의 비제한적 양태에서, 이 용어는 10% 범위 내에 있는 것, 다른 양태에서 5% 범위 내에 있는 것, 또 다른 양태에서 1% 범위 내에 있는 것, 또 다른 양태에서 0.5% 범위 내에 있는 것으로 정의된다. 본 명세서에서 이용되는 용어 "결합된"은 반드시 직접적이고 반드시 기계적일 필요는 없지만 접속되는 것으로서 정의된다. 특정 방식으로 "구성되는" 디바이스 또는 구조는 적어도 그 방식으로 구성되지만, 열거되지 않은 방식들로 또한 구성될 수 있다.
본 개시내용에 대한 요약서는 독자가 기술적 개시내용의 본질을 신속하게 알아내도록 허용하기 위해 제공된다. 이러한 요약서는 청구항들의 범위 또는 의미를 해석하거나 제한하는데 이용되지는 않을 것이라는 이해 하에 제출된다. 게다가, 상술한 상세한 설명에서, 다양한 특징들은 개시내용을 간소화할 목적으로 다양한 양태들에서 함께 그룹화된다는 것을 알 수 있다. 이러한 개시내용의 방법은 청구되는 양태들이 각각의 청구항에 명확히 기재된 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로서 해석되지 않아야 한다. 오히려, 이하의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 양태의 모든 특징들보다 적은 것에 있을 수 있다. 따라서, 이하의 청구항들은 상세한 설명에 이로써 포함되며, 각각의 청구항은 별개로 청구되는 주제로서 독립적이다.
Claims (15)
- 디지털 이미지들의 관심 영역(ROI)들에 기반하여 하나 이상의 기계 비전 작업(machine vision job)을 자동으로 생성하기 위한 기계 비전 방법으로서,
이미지 식별자(ID)를 캡처하기 위한 기계 비전 툴을 구성하는 단계;
복수의 트레이닝 이미지를 로딩하는 단계 - 각각의 트레이닝 이미지는 상기 이미지 ID를 묘사함 -;
각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 각각을 라벨링하는 단계;
상기 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하는 단계;
상기 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하는 단계;
상기 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하는 단계 - 상기 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정됨 -; 및
상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하는 단계
를 포함하며,
상기 비전 학습 모델은 기계 비전 작업을 출력하도록 구성되고,
상기 기계 비전 작업은 이미징 디바이스에의 전자 배치를 위해 구성되고,
상기 기계 비전 작업을 구현하는 상기 이미징 디바이스는 상기 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성되는, 기계 비전 방법. - 제1항에 있어서,
실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 중의 트레이닝 이미지를 라벨링하는 단계는 상기 트레이닝 이미지 내에 묘사된 상기 객체의 시각적으로 결함 있는 영역 또는 부분을 나타내기 위해 그래픽 유한 영역(graphical bounded area)을 포함시키는 단계를 포함하는, 기계 비전 방법. - 제1항에 있어서,
상기 비전 학습 모델은 상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 상기 트레이닝 이미지에 묘사된 상기 객체의 품질을 나타내는 품질 스코어를 출력하도록 추가로 트레이닝되는, 기계 비전 방법. - 제3항에 있어서,
상기 트레이닝 ROI 세트 중 적어도 하나는 임계 ROI를 포함하고, 상기 임계 ROI는 상기 비전 학습 모델로 하여금, (a) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 높은 품질을 나타내는 상기 품질 스코어 또는 (b) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 낮은 품질을 나타내는 상기 품질 스코어 중 적어도 하나를 출력하게 하는, 기계 비전 방법. - 제1항에 있어서,
상기 비전 학습 모델은 복수의 인공 지능 모델을 포함하는 앙상블 모델이고, 상기 복수의 인공 지능 모델 각각은 상기 객체를 묘사하는 디지털 이미지 내의 특정 ROI들에 대한 품질 스코어들을 출력하도록 상기 트레이닝 ROI 세트의 서브세트들로 트레이닝되는, 기계 비전 방법. - 디지털 이미지들의 관심 영역(ROI)들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하도록 구성된 기계 비전 시스템으로서,
하나 이상의 기계 비전 작업을 구현하도록 구성된 이미징 디바이스;
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 통신가능하게 결합되고 컴퓨팅 명령어들을 저장하는 메모리
를 포함하며, 상기 컴퓨팅 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
이미지 식별자(ID)를 캡처하기 위한 기계 비전 툴을 구성하게 하고,
복수의 트레이닝 이미지를 로딩하게 하고 - 각각의 트레이닝 이미지는 상기 이미지 ID를 묘사함 -,
각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 각각을 라벨링하게 하고,
상기 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하게 하고,
상기 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하게 하고,
상기 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하게 하고 - 상기 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정됨 -,
상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하게 하며,
상기 비전 학습 모델은 기계 비전 작업을 출력하도록 구성되고,
상기 기계 비전 작업은 상기 이미징 디바이스에의 전자 배치를 위해 구성되고,
상기 기계 비전 작업을 구현하는 상기 이미징 디바이스는 상기 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성되는, 기계 비전 시스템. - 제6항에 있어서,
실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 중의 트레이닝 이미지를 라벨링하는 것은 상기 트레이닝 이미지 내에 묘사된 상기 객체의 시각적으로 결함 있는 영역 또는 부분을 나타내기 위해 그래픽 유한 영역을 포함시키는 것을 포함하는, 기계 비전 시스템. - 제6항에 있어서,
상기 비전 학습 모델은 상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 상기 트레이닝 이미지에 묘사된 상기 객체의 품질을 나타내는 품질 스코어를 출력하도록 추가로 트레이닝되는, 기계 비전 시스템. - 제8항에 있어서,
상기 트레이닝 ROI 세트 중 적어도 하나는 임계 ROI를 포함하고, 상기 임계 ROI는 상기 비전 학습 모델로 하여금, (a) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 높은 품질을 나타내는 상기 품질 스코어 또는 (b) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 낮은 품질을 나타내는 상기 품질 스코어 중 적어도 하나를 출력하게 하는, 기계 비전 시스템. - 제6항에 있어서,
상기 비전 학습 모델은 복수의 인공 지능 모델을 포함하는 앙상블 모델이고, 상기 복수의 인공 지능 모델 각각은 상기 객체를 묘사하는 디지털 이미지 내의 특정 ROI들에 대한 품질 스코어들을 출력하도록 상기 트레이닝 ROI 세트의 서브세트들로 트레이닝되는, 기계 비전 시스템. - 디지털 이미지들의 관심 영역(ROI)들에 기반하여 하나 이상의 기계 비전 작업을 자동으로 생성하기 위한 컴퓨팅 명령어들을 저장하는 유형의 비일시적 컴퓨터 판독가능한 매체로서,
상기 컴퓨팅 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
이미지 식별자(ID)를 캡처하기 위한 기계 비전 툴을 구성하게 하고;
복수의 트레이닝 이미지를 로딩하게 하고 - 각각의 트레이닝 이미지는 상기 이미지 ID를 묘사함 -;
각각의 트레이닝 이미지 내에 묘사된 객체의 성공 상태 또는 실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 각각을 라벨링하게 하고;
상기 복수의 트레이닝 이미지로부터 하나 이상의 후보 이미지 특징을 추출하게 하고;
상기 후보 이미지 특징들에 기반하여 하나 이상의 후보 ROI를 생성하게 하고;
상기 하나 이상의 후보 ROI로부터 트레이닝 ROI 세트를 선택하게 하고 - 상기 트레이닝 ROI 세트의 각각의 ROI는 포함된 ROI 또는 배제된 ROI로서 지정됨 -;
상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 비전 학습 모델을 트레이닝하게 하며,
상기 비전 학습 모델은 기계 비전 작업을 출력하도록 구성되고,
상기 기계 비전 작업은 이미징 디바이스에의 전자 배치를 위해 구성되고,
상기 기계 비전 작업을 구현하는 상기 이미징 디바이스는 상기 객체를 묘사하는 추가 이미지들의 성공 상태 또는 실패 상태를 검출하도록 구성되는, 유형의 비일시적 컴퓨터 판독가능한 매체. - 제11항에 있어서,
실패 상태를 나타내기 위해 상기 복수의 트레이닝 이미지 중의 트레이닝 이미지를 라벨링하는 것은 상기 트레이닝 이미지 내에 묘사된 상기 객체의 시각적으로 결함 있는 영역 또는 부분을 나타내기 위해 그래픽 유한 영역을 포함시키는 것을 포함하는, 유형의 비일시적 컴퓨터 판독가능한 매체. - 제11항에 있어서,
상기 비전 학습 모델은 상기 트레이닝 ROI 세트 및 상기 복수의 트레이닝 이미지로, 상기 트레이닝 이미지에 묘사된 상기 객체의 품질을 나타내는 품질 스코어를 출력하도록 추가로 트레이닝되는, 유형의 비일시적 컴퓨터 판독가능한 매체. - 제13항에 있어서,
상기 트레이닝 ROI 세트 중 적어도 하나는 임계 ROI를 포함하고, 상기 임계 ROI는 상기 비전 학습 모델로 하여금, (a) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 높은 품질을 나타내는 상기 품질 스코어 또는 (b) 상기 트레이닝 이미지에 묘사된 상기 객체에 대한 낮은 품질을 나타내는 상기 품질 스코어 중 적어도 하나를 출력하게 하는, 유형의 비일시적 컴퓨터 판독가능한 매체. - 제11항에 있어서,
상기 비전 학습 모델은 복수의 인공 지능 모델을 포함하는 앙상블 모델이고, 상기 복수의 인공 지능 모델 각각은 상기 객체를 묘사하는 디지털 이미지 내의 특정 ROI들에 대한 품질 스코어들을 출력하도록 상기 트레이닝 ROI 세트의 서브세트들로 트레이닝되는, 유형의 비일시적 컴퓨터 판독가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/388,786 US11961218B2 (en) | 2021-07-29 | 2021-07-29 | Machine vision systems and methods for automatically generating one or more machine vision jobs based on region of interests (ROIs) of digital images |
US17/388,786 | 2021-07-29 | ||
PCT/US2022/031525 WO2023009206A1 (en) | 2021-07-29 | 2022-05-31 | Automatically generating one or more machine vision jobs based on region of interests (rois) of digital images |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240025657A true KR20240025657A (ko) | 2024-02-27 |
Family
ID=83995391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247002861A KR20240025657A (ko) | 2021-07-29 | 2022-05-31 | 디지털 이미지들의 관심 영역(roi)들에 기반한 하나 이상의 기계 비전 작업의 자동 생성 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11961218B2 (ko) |
JP (1) | JP2024529949A (ko) |
KR (1) | KR20240025657A (ko) |
CN (1) | CN117730347A (ko) |
BE (1) | BE1029597B1 (ko) |
DE (1) | DE112022003791T5 (ko) |
WO (1) | WO2023009206A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11138430B2 (en) * | 2018-07-30 | 2021-10-05 | Ncr Corporation | Item identification with low resolution image processing |
CN117333580B (zh) * | 2023-10-18 | 2024-08-02 | 北京阿派朗创造力科技有限公司 | 机械臂绘画方法、装置、电子设备及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594983B2 (en) * | 2013-08-02 | 2017-03-14 | Digimarc Corporation | Learning systems and methods |
US10436720B2 (en) | 2015-09-18 | 2019-10-08 | KLA-Tenfor Corp. | Adaptive automatic defect classification |
EP3448232A4 (en) | 2016-04-26 | 2019-12-18 | Ascend Hit Llc | MEDICAL IMAGE ANALYSIS AND REPORT SYSTEM AND METHODS |
US11074522B2 (en) * | 2016-06-15 | 2021-07-27 | Roger N. Anderson | Electric grid analytics learning machine |
US10430943B2 (en) * | 2016-10-07 | 2019-10-01 | Sony Corporation | Automated nuclei area/number estimation for IHC image analysis |
GB201617507D0 (en) * | 2016-10-14 | 2016-11-30 | Axial3D Limited | Axial3D UK |
CN107527069A (zh) * | 2017-08-22 | 2017-12-29 | 京东方科技集团股份有限公司 | 图像处理方法、装置、电子设备及计算机可读介质 |
US10706535B2 (en) * | 2017-09-08 | 2020-07-07 | International Business Machines Corporation | Tissue staining quality determination |
US10706530B2 (en) | 2017-09-11 | 2020-07-07 | International Business Machines Corporation | Object detection |
US10755128B2 (en) | 2018-12-18 | 2020-08-25 | Slyce Acquisition Inc. | Scene and user-input context aided visual search |
JP7271306B2 (ja) | 2019-05-16 | 2023-05-11 | 株式会社キーエンス | 画像検査装置及び画像検査装置の設定方法 |
KR102240192B1 (ko) | 2019-06-14 | 2021-04-14 | 권형준 | 복수 초점을 동시 인식하는 비전식 코드 리더, 이를 이용한 물류 시스템 및 물류 서비스 제공 방법 |
US20220261975A1 (en) | 2019-10-02 | 2022-08-18 | Hewlett-Packard Development Company, L.P. | Inspection method and apparatus |
CA3161159A1 (en) | 2019-11-12 | 2021-05-20 | Bright Machines, Inc. | Image analysis system for testing in manufacturing |
US11636592B2 (en) * | 2020-07-17 | 2023-04-25 | International Business Machines Corporation | Medical object detection and identification via machine learning |
-
2021
- 2021-07-29 US US17/388,786 patent/US11961218B2/en active Active
-
2022
- 2022-05-31 CN CN202280053119.8A patent/CN117730347A/zh active Pending
- 2022-05-31 WO PCT/US2022/031525 patent/WO2023009206A1/en active Application Filing
- 2022-05-31 DE DE112022003791.1T patent/DE112022003791T5/de active Pending
- 2022-05-31 KR KR1020247002861A patent/KR20240025657A/ko unknown
- 2022-05-31 JP JP2024504521A patent/JP2024529949A/ja active Pending
- 2022-07-21 BE BE20225584A patent/BE1029597B1/de active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
BE1029597A1 (de) | 2023-02-08 |
US11961218B2 (en) | 2024-04-16 |
WO2023009206A1 (en) | 2023-02-02 |
JP2024529949A (ja) | 2024-08-14 |
DE112022003791T5 (de) | 2024-07-04 |
BE1029597B1 (de) | 2023-09-14 |
US20230030779A1 (en) | 2023-02-02 |
CN117730347A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20240025657A (ko) | 디지털 이미지들의 관심 영역(roi)들에 기반한 하나 이상의 기계 비전 작업의 자동 생성 | |
US10268927B2 (en) | System, apparatus and method for configuration of industrial vision control modules | |
US20240319850A1 (en) | Systems and Methods for Facilitating Selection of Tools for Machine Vision Jobs | |
US20240143122A1 (en) | Systems and Methods for Enhancing Image Content Captured by a Machine Vision Camera | |
US20230215046A1 (en) | Systems and Methods to Optimize Imaging Settings for a Machine Vision Job | |
US20230042611A1 (en) | Systems and Methods for Enhancing Trainable Optical Character Recognition (OCR) Performance | |
US20230245433A1 (en) | Systems and Methods for Implementing a Hybrid Machine Vision Model to Optimize Performance of a Machine Vision Job | |
US20230095647A1 (en) | Systems and Methods for Precise Anomaly Localization Within Content Captured by a Machine Vision Camera | |
US12131480B2 (en) | Method of creating an optimized/adaptive ROI based on detection of barcode location in the FOV | |
US20240144632A1 (en) | ROI Image Windowing | |
US20230102634A1 (en) | Method of creating an optimized/adaptive roi based on detection of barcode location in the fov | |
US20220038623A1 (en) | Systems and methods to optimize performance of a machine vision system | |
US20240005653A1 (en) | Systems and Methods for Tool Canvas Metadata & Auto-Configuration in Machine Vision Applications | |
US11568567B2 (en) | Systems and methods to optimize performance of a machine vision system | |
US20240112436A1 (en) | Ranked adaptive roi for vision cameras | |
US20240031666A1 (en) | Systems and Methods for Changing Programs on Imaging Devices | |
US20240290114A1 (en) | Systems and Methods Utilizing Machine Vision and Three-Dimensional Modeling Techniques for Surface Matching | |
US20240241733A1 (en) | Industrial Ethernet Configuration Tool With Preview Capabilities | |
US11995900B2 (en) | Method on identifying indicia orientation and decoding indicia for machine vision systems |