KR20240058827A - System and method for finding and classifying lines in an image with a vision system - Google Patents

System and method for finding and classifying lines in an image with a vision system Download PDF

Info

Publication number
KR20240058827A
KR20240058827A KR1020240056058A KR20240056058A KR20240058827A KR 20240058827 A KR20240058827 A KR 20240058827A KR 1020240056058 A KR1020240056058 A KR 1020240056058A KR 20240056058 A KR20240056058 A KR 20240056058A KR 20240058827 A KR20240058827 A KR 20240058827A
Authority
KR
South Korea
Prior art keywords
line
lines
image
gradient
finding
Prior art date
Application number
KR1020240056058A
Other languages
Korean (ko)
Inventor
레이 왕
비벡 아난다
로웰 디. 제이콥슨
Original Assignee
코그넥스코오포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/001,885 external-priority patent/US10937168B2/en
Application filed by 코그넥스코오포레이션 filed Critical 코그넥스코오포레이션
Publication of KR20240058827A publication Critical patent/KR20240058827A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06F18/24143Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/143Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • G06V10/507Summing image-intensity values; Histogram projection analysis
    • 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/20068Projection on vertical or horizontal image axis
    • 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/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

본 발명은 복수의 라인이 효율적이고 정확하게 식별되고 특성화될 수 있게 하는, 이미지에서 라인 피처들을 찾는 시스템 및 방법을 제공한다. 라인들이 식별될 때, 사용자는 시스템을 훈련시켜 미리 결정된(예를 들어 텍스트) 라벨들을 이러한 라인들에 연관시킬 수 있다. 이러한 라벨들은 신경 망 분류기를 정의하는 데 사용될 수 있다. 신경 망은 런타임에 작동하여, 라인-찾기 프로세스를 사용하여 찾은 런타임 이미지에서 라인을 식별하고 스코어를 매긴다. 찾은 라인은 신경 망 결과에 기초한 라벨들 및 연관된 확률 스코어 맵과 함께 사용자에게 디스플레이될 수 있다. 라벨링되지 않은 라인들은 일반적으로 낮은 스코어를 가지는 것으로 간주되며, 인터페이스에 의해 플래그되지 않거나, 관련이 없는 것으로 식별된다.The present invention provides a system and method for finding line features in an image that allows multiple lines to be efficiently and accurately identified and characterized. When lines are identified, the user can train the system to associate predetermined (e.g. text) labels with these lines. These labels can be used to define a neural network classifier. The neural network operates at runtime, identifying and scoring lines in the runtime image found using a line-finding process. The found line may be displayed to the user along with labels based on the neural network results and an associated probability score map. Unlabeled lines are generally considered to have a low score and are not flagged by the interface or identified as irrelevant.

Description

비전 시스템을 이용하여 이미지에서 라인들을 찾고 분류하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR FINDING AND CLASSIFYING LINES IN AN IMAGE WITH A VISION SYSTEM}A system and method for finding and classifying lines in an image using a vision system {SYSTEM AND METHOD FOR FINDING AND CLASSIFYING LINES IN AN IMAGE WITH A VISION SYSTEM}

본 출원은 2016년 10월 31일에 출원되어 펜딩 중인 미국 특허 출원 제 15/338,445호(발명의 명칭: 비전 시스템을 이용하여 이미지에서 라인들을 찾기 위한 시스템 및 방법(SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM))의 일부 계속 출원이며, 이는 2015년 11월 2일에 출원되어 함께 펜딩 중인 미국 가출원 제 62/249,918호(발명의 명칭: 비전 시스템을 이용하여 이미지에서 라인들을 찾기 위한 시스템 및 방법(SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM))의 권리를 청구하고, 상기 각각의 출원에 대한 기술적 사상은 본원에서 참고로 포함된다.This application is based on pending U.S. Patent Application No. 15/338,445, filed on October 31, 2016 (title: SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM), which is a continuation-in-part of U.S. Provisional Application No. 62/249,918, filed on November 2, 2015 (title of the invention: System for finding lines in an image using a vision system) and SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM), and the technical ideas of each of the above applications are incorporated herein by reference.

본 발명은 머신 비전 시스템에 관한 것으로, 보다 구체적으로 획득된 이미지에서 라인 피처들을 찾는 비전 시스템 툴에 관한 것이다.The present invention relates to machine vision systems, and more specifically to vision system tools for finding line features in acquired images.

머신 비전 시스템(본원에서 간단히 "비전 시스템"이라고도 함)은 제조, 물류 및 산업 분야에서 다양한 작업에 사용된다. 이러한 작업은 표면 및 부품 검사, 조립 중 객체 배치, 패턴 및 ID 코드 판독, 및 추가 프로세스에 사용하기 위해 시각적 데이터가 획득되고 해석되는 기타 작업을 포함할 수 있다. 비전 시스템은 일반적으로 관심의 객체 또는 대상을 포함하는 장면의 이미지를 획득하는 하나 이상의 카메라들을 사용한다. 객체/대상은 고정적이거나 또는 상대적으로 운동(relative motion)을 할 수 있다. 운동은 또한 로봇에 의한 부품의 조작의 경우와 같이 비전 시스템에 의해 유도된 정보에 의해 제어될 수 있다.Machine vision systems (also simply referred to herein as “vision systems”) are used for a variety of tasks in manufacturing, logistics and industry. These tasks may include inspecting surfaces and parts, positioning objects during assembly, reading patterns and ID codes, and other tasks where visual data is acquired and interpreted for use in further processes. Vision systems typically use one or more cameras to acquire images of a scene containing an object or object of interest. Objects/objects can be stationary or have relative motion. Movement can also be controlled by information derived from a vision system, such as in the case of manipulation of parts by a robot.

비전 시스템에 대한 일반적인 작업은 이미지에서 라인 피처를 찾고 특성화하는(characterizing) 것이다. 이러한 라인 피처를 식별하고 분석하는 데는 다양한 툴이 사용된다. 일반적으로 이러한 툴은 이미지의 일부에서 발생하는 선명한 콘트라스트 차이(sharp contrast difference)에 의존한다. 예를 들어, 콘트라스트 차이가 있는 이미지에서 개별 포인트가 라인과 같은 피처(line-like feature)로 어셈블링될(assembled) 수 있는지를 결정하기 위해 캘리퍼 툴(caliper tool)을 사용하여, 이러한 콘트라스트 차이가 분석된다. 그렇다면, 이미지에서 라인이 식별된다. 특히, 에지 포인트를 찾는 툴과 포인트에 라인을 맞추려고 하는 툴은 서로 독립적으로 동작한다. 이는 프로세싱 오버 헤드(processing overhead)를 증가시키고 신뢰성을 감소시킨다. 이미지가 복수의 라인을 포함하는 경우, 이러한 툴은 정확하게 식별하는 능력에 있어서 제한될 수 있다. 또한, 이미지가 유사한 지향(orientation) 및 극성을 가지는 근접한 간격의 복수의 라인들을 포함할 경우, 이미지에서 하나의 라인을 찾도록 설계된 통상적인 라인-찾기 툴은 사용하기에 문제가 있을 수 있다.A common task for a vision system is finding and characterizing line features in an image. A variety of tools are used to identify and analyze these line features. Typically, these tools rely on sharp contrast differences in parts of the image. For example, using a caliper tool to determine whether individual points in an image with contrast differences can be assembled into a line-like feature, these contrast differences is analyzed. If so, a line is identified in the image. In particular, the tool for finding edge points and the tool for matching lines to points operate independently of each other. This increases processing overhead and reduces reliability. If the image contains multiple lines, these tools may be limited in their ability to accurately identify them. Additionally, when an image contains multiple closely spaced lines with similar orientation and polarity, conventional line-finding tools designed to find a single line in an image can be problematic to use.

또 다른 문제는 객체의 라인이 종종 획득된 이미지에서 가려지거나(occluded) 불명확할 수도 있다는 것이다. 사용자는 찾은 라인의 아이덴터티(identity)에 대해 확신할 수 없으며, 이러한 식별을 구분하게 하는 메커니즘은 정교한 규칙 및 스크립트를 작성하는 것을 포함할 수 있으며, 이는 비전 시스템 셋업(setup) 및 훈련 작업에 대한 시간과 비용을 추가시킨다.Another problem is that the lines of an object can often be occluded or unclear in the acquired image. The user cannot be certain about the identity of the line found, and the mechanisms for making this identification may involve writing elaborate rules and scripts, which saves time for vision system setup and training tasks. and costs are added.

본 발명은, 복수의 라인이 효율적이고 정확하게 식별되고 특성화될 수 있게 하는 이미지에서 라인 피처를 찾기 위한 시스템 및 방법을 제공함으로써, 종래 기술의 단점을 극복한다. 라인이 식별될 때, 사용자는 시스템을 훈련시켜 이러한 라인에 대하여 미리 결정된(예를 들어, 텍스트) 라벨을 연관시킬 수 있다. 이러한 라벨(본원에서 "태그(tags)"라고도 함)은 신경망 분류기를 정의하는 데 사용될 수 있다. 신경 망은 런타임에 동작하여, 라인-찾기 프로세스(line-finding process)를 사용하여 찾은 런타임 이미지에서 라인을 식별하고 스코어를 매긴다. 찾은 라인은 신경망 결과에 기초하여 라벨(labels) 및 연관된 확률 스코어 맵(probability score map)과 함께 사용자에게 디스플레이될 수 있다. 라벨링되지(labeled) 않은 라인은 일반적으로 낮은 스코어를 가진 것으로 간주되며, 인터페이스에 의해 플래그되지(flagged) 않거나 또는 관련이 없는 것으로 식별된다.The present invention overcomes the shortcomings of the prior art by providing a system and method for finding line features in an image that allows multiple lines to be efficiently and accurately identified and characterized. When lines are identified, the user can train the system to associate predetermined (e.g., text) labels for these lines. These labels (also referred to herein as “tags”) can be used to define neural network classifiers. The neural network operates at runtime, identifying and scoring lines in the runtime image found using a line-finding process. The found lines may be displayed to the user along with labels and an associated probability score map based on the neural network results. Unlabeled lines are generally considered to have a low score and are not flagged by the interface or are identified as irrelevant.

예시적인 실시예에서, 하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들(line features)을 찾기(finding) 위한 시스템 및 방법이 제공된다. 상기 시스템 및 방법은, 비전 시스템 프로세서(vision system processor); 상기 비전 시스템 프로세서와 연관된 인터페이스를 포함하며, 상기 인터페이스는 객체(object)의 트레이닝 이미지(training image)에서 라인-찾기 프로세스(line-finding process)에 의해 위치가 확인된 관련(relevant) 라인들에 대해 개별 라벨들의 생성을 허용한다. 런타임 라인-찾기 프로세스(runtime line-finding process)는 획득된 이미지에서 라인들의 위치를 확인하고, 신경망 프로세스(neural net process)는 상기 라벨들에 기초하여, 상기 라벨들에 관한 라인 피처에 대한 확률 맵(probability map)을 결정하기 위해 하나 이상의 분류기(classifier)들을 사용한다. 런타임 결과-생성 프로세스(runtime result-generation process)는 상기 관련 라인들 중 적어도 하나에 대하여, 라벨들 및 확률 스코어들을 제공한다. 예시적으로, 상기 런타임 결과-생성 프로세스는 비-관련(non-relevant) 라인들에 대한 확률 스코어들을 제공하고/제공하거나, 상기 런타임 결과-생성 프로세스는 라인들을 하이라이트하고(highlights) 상기 하이라이트된 라인들과 연관된 확률 스코어들을 제공하는 인터페이스를 포함한다. 상기 확률 맵(probability map)은 상기 획득된 이미지와 크기에서 유사할 수 있다. 상기 라인-찾기 프로세스는 라인 피처들을 포함하는 장면의 이미지 데이터를 수신하는 프로세서를 포함할 수 있고, 상기 프로세서는 에지 포인트 추출기(edge point extractor)를 포함할 수 있고, 상기 에지 포인트 추출기는, (a) 상기 이미지 데이터로부터 그래디언트 벡터 필드(gradient vector field)를 계산하고, (b) 복수의 그래디언트 투영 서브-영역들(gradient projection sub-regions)에 걸쳐 상기 그래디언트 벡터 필드를 투영하고, (c) 상기 투영된 그래디언트 데이터에 기초하여 상기 그래디언트 투영 서브-영역들 각각에서 복수의 에지 포인트들을 찾는다. 또한, 상기 프로세서는 라인-파인더(line-finder)를 포함하며, 상기 라인-파인더는 상기 이미지로부터 추출된 상기 에지 포인트들과 일치하는 복수의 라인들을 생성한다. 예시적으로, 상기 라인-파인더는, 이전에 정의된 라인들에 대한 아웃라이어 에지 포인트들(outlier edge points)로부터 라인들을 반복적으로 정의하는 것을 포함하여 새로운 라인들에 인라이어 에지 포인트들(inlier edge points)을 맞추기(fit) 위해 RANSAC-기반 프로세스(RANSAC-based process)를 동작시킨다. 그래디언트 필드 투영은 하나 이상의 상기 라인 피처들의 예상된 지향(orientation)에 응답하여 설정된(set) 방향을 따라 지향될(oriented) 수 있고/있거나, 그래디언트 필드 투영은 가우시안 커널(Gaussian kernel)에 기초하여 입도(granularity)을 정의할 수 있다. 상기 에지 포인트 추출기는 상기 그래디언트 투영 서브-영역들 각각에서 복수의 그래디언트 크기 최대값들(gradient magnitude maxima)을 찾도록 구성될 수 있다. 상기 그래디언트 크기 최대값들은 위치 벡터(position vector) 및 그래디언트 벡터(gradient vector)에 의해 기술되는(described), 상기 복수의 에지 포인트들 중 일부의 에지 포인트들로 각각 식별된다. 또한, 상기 라인-파인더는, 적어도 하나의 후보 라인(candidate line)으로부터 적어도 하나의 에지 포인트의 거리, 및 상기 적어도 하나의 에지 포인트의 그래디언트 방향과 상기 적어도 하나의 후보 라인의 정상 방향(normal direction) 사이의 각도 차에 기초하는 미터법(metric)을 계산하는 것에 의해, 상기 추출된 복수의 에지 포인트들 중 상기 적어도 하나의 에지 포인트와 상기 찾은 복수의 라인들 중 상기 적어도 하나의 후보 라인 사이의 일관성(consistency)을 결정하도록 구성될 수 있다.In an example embodiment, a system and method are provided for finding line features in an image acquired based on one or more cameras. The system and method include a vision system processor; An interface associated with the vision system processor, the interface configured to retrieve relevant lines located by a line-finding process in a training image of an object. Allows creation of individual labels. A runtime line-finding process locates lines in the acquired image, and a neural net process generates, based on the labels, a probability map for the line feature with respect to the labels. One or more classifiers are used to determine the probability map. A runtime result-generation process provides labels and probability scores for at least one of the relevant lines. Illustratively, the runtime result-generation process provides probability scores for non-relevant lines, or the runtime result-generation process highlights lines and the highlighted line. Contains an interface that provides probability scores associated with . The probability map may be similar in size to the acquired image. The line-finding process may include a processor receiving image data of a scene including line features, the processor may include an edge point extractor, the edge point extractor comprising: (a ) Compute a gradient vector field from the image data, (b) project the gradient vector field over a plurality of gradient projection sub-regions, and (c) project the gradient vector field. A plurality of edge points are found in each of the gradient projection sub-regions based on the gradient data. Additionally, the processor includes a line-finder, which generates a plurality of lines matching the edge points extracted from the image. Illustratively, the line-finder includes iteratively defining lines from outlier edge points for previously defined lines and inlier edge points for new lines. A RANSAC-based process is run to fit the points. The gradient field projection may be oriented along a set direction in response to the expected orientation of one or more of the line features and/or the gradient field projection may be oriented based on a Gaussian kernel. (granularity) can be defined. The edge point extractor may be configured to find a plurality of gradient magnitude maxima in each of the gradient projection sub-regions. The gradient magnitude maxima are each identified as edge points of some of the plurality of edge points, described by a position vector and a gradient vector. In addition, the line-finder includes the distance of at least one edge point from at least one candidate line, the gradient direction of the at least one edge point, and the normal direction of the at least one candidate line. Consistency between the at least one edge point of the extracted plurality of edge points and the at least one candidate line of the found plurality of lines by calculating a metric based on the angle difference between them ( It can be configured to determine consistency.

예시적인 실시예에서, 하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들을 찾기 위한 시스템이 제공된다. 상기 시스템 및 방법은, 비전 시스템 프로세서; 상기 비전 시스템 프로세서와 연관된 인터페이스를 포함하며, 상기 인터페이스는 객체의 트레이닝 이미지에서 라인-찾기 프로세스에 의해 위치가 확인된 관련 라인들에 대한 개별 라벨들의 생성을 허용한다. 런타임 라인-찾기 프로세스는 획득된 이미지에서 라인들의 위치를 확인하며, 통계적 분류기(statistical classifier) 또는 K-NN 분류기(K-NN classifier)는 상기 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 기초하여 상기 인터페이스에 대해 상기 라벨들을 생성한다.In an example embodiment, a system is provided for finding line features in an image acquired based on one or more cameras. The system and method include a vision system processor; An interface associated with the vision system processor, the interface allowing generation of individual labels for relevant lines located by a line-finding process in a training image of the object. A runtime line-finding process identifies the positions of lines in the acquired image, and a statistical classifier or K-NN classifier is based on the lines located by the line-finding process. thus generating the labels for the interface.

이하의 본 발명의 설명은 다음과 같이 첨부된 도면을 참조한다.
도 1은 예시적인 실시예에 따른, 복수의 에지 피처를 포함하는 객체의 이미지를 획득하는 예시적인 비전 시스템 배치 및 에지-찾기 툴/모듈 및 연관된 라벨 인터페이스 프로세서/모듈을 포함하는 비전 시스템 프로세서에 대한 도면이다.
도 2는 예시적인 실시예에 따라, 획득된 이미지로부터 에지-포인트 추출 및 라인-찾기를 위한 시스템 및 방법에 대한 개요를 도시하는 도면이다.
도 3은 도 2의 시스템 및 방법에 따른 에지 포인트 추출 절차에 대한 흐름도이다.
도 4는 도 3의 에지 포인트 추출 절차의 일부인 에지 피처를 포함하는 이미지의 영역 상의 필드 투영에 대한 도면이다.
도 5는 도 3의 에지 포인트 추출 절차에서의 사용을 위해, 이미지를 평활화하도록 가우스 커널을 이미지에 적용하는 것을 도시하는 도면이다.
도 6은 도 3의 에지 포인트 추출 절차에서의 사용을 위해, 투영을 평활화하도록 가우시안 커널을 적용하는 것을 포함하는 필드 투영에 대한 도면이다.
도 7은 가우시안 커널의 적용 및 에지 포인트에 대한 절대 및 표준화된 콘트라스트 임계치의 계산을 포함하는 도 3의 에지 포인트 추출 절차에 대한 그래픽 개요(graphical overview)를 도시하는 도면이다.
도 8은 충분한 절대 콘트라스트 임계치 및 정규화된 콘트라스트 임계치를 가지는 에지 포인트에 대해 한정된 콘트라스트의 영역을 도시하는 그래프이다.
도 9는 예시적인 실시예에 따라 예시적인 RANSAC 프로세스를 사용하여 도 3에서 찾은 에지 포인트에 기초한 라인-찾기 절차에 대한 흐름도이다.
도 10 및 도 11은 근접하게 이격된 평행한 라인 피처들 각각과 관련된 에지 포인트들의 잘못된 배치 및 올바른 배치를 도시하는 도면이다.
도 12 및 도 13은 예시적인 시스템 및 방법의 라인-파인더에 따라 분리될(resolved) 수 있는, 교차하는 라인 피처들 각각과 관련된 에지 포인트들의 올바른 배치 및 잘못된 배치를 도시하는 도면이다.
도 14 내지 도 17은 예시적인 시스템 및 방법의 라인-파인더에 따라 분리될 수 있는, "light-to-dark polarity", "dark-to-light-polarity", "either light-to-dark or dark-to-light polarity", 또는 "mixed polarity"를 각각 보여주는 라인들의 예를 도시한 도면이다.
도 18은 사용자-정의 마스크를 고려하여, 찾은 라인에 대한 커버리지 스코어의 변경을 도시하는 도면이다.
도 19는 객체 이미지에서 관심 라인을 나타내는 라벨/태그를 포함하는 인터페이스를 사용하여 라인-파인더 툴을 훈련하는(training) 절차를 도시하는 흐름도이다.
도 20은 도 19의 훈련하는 절차를 수행하기 위해 사용되는 대화 상자(dialog boxes) 및 관심 라인(lines of interest)을 가지는 훈련하는 객체(training object)의 이미지를 포함하는 예시적인 사용자 인터페이스 디스플레이를 도시하는 도면이다.
도 21은 라벨들을 관심 라인들에 할당하고, (예를 들어, 신경(neural)) 망 분류기-기반 확률 스코어들(net classifier-based probability scores)을 찾은 라인들에 할당하는 것을 포함하는 도 19에 따른 훈련된 라인-파인더를 사용하여 라인들을 찾기 위한 런타임 절차의 흐름도이다.
도 22는, 도 21에 따른 라인-파인더 런타임 절차에 기초하여 찾은 라인들을 가지는 객체의 이미지를 포함하는 예시적인 사용자 인터페이스 디스플레이를 도시하고, 비-관련 라인들에 대한 라벨 및 확률 스코어를 도시하는 도면이다.
도 23은, 도 21에 따른 라인-파인더 런타임 절차에 기초하여 찾은 라인들을 가지는 객체의 이미지를 포함하는 예시적인 사용자 인터페이스 디스플레이를 도시하고, 관심 라인에 대한 라벨 및 확률 스코어를 도시하는 도면이다.
The following description of the present invention refers to the accompanying drawings as follows.
1 illustrates an example vision system arrangement and vision system processor including an edge-finding tool/module and associated label interface processor/module for acquiring an image of an object including a plurality of edge features, according to an example embodiment. It is a drawing.
2 is a diagram illustrating an overview of a system and method for edge-point extraction and line-finding from an acquired image, according to an example embodiment.
FIG. 3 is a flowchart of an edge point extraction procedure according to the system and method of FIG. 2.
Figure 4 is a diagram of a field projection onto a region of the image containing edge features that is part of the edge point extraction procedure of Figure 3;
Figure 5 is a diagram illustrating applying a Gaussian kernel to an image to smooth it, for use in the edge point extraction procedure of Figure 3;
Figure 6 is a diagram of a field projection including applying a Gaussian kernel to smooth the projection, for use in the edge point extraction procedure of Figure 3.
Figure 7 is a diagram showing a graphical overview of the edge point extraction procedure of Figure 3, including application of a Gaussian kernel and calculation of absolute and normalized contrast thresholds for edge points.
Figure 8 is a graph showing the area of contrast defined for edge points with sufficient absolute and normalized contrast thresholds.
FIG. 9 is a flow diagram for a line-finding procedure based on edge points found in FIG. 3 using an example RANSAC process in accordance with an example embodiment.
10 and 11 are diagrams showing misplacement and correct placement of edge points associated with each of closely spaced parallel line features.
12 and 13 are diagrams illustrating correct and incorrect placement of edge points associated with each of the intersecting line features, which may be resolved according to the line-finder of the example system and method.
14-17 illustrate “light-to-dark polarity”, “dark-to-light-polarity”, “either light-to-dark or dark”, which can be separated according to the line-finder of the example system and method. This is a diagram showing examples of lines showing “-to-light polarity” or “mixed polarity”, respectively.
Figure 18 is a diagram showing the change in coverage score for a found line, considering a user-defined mask.
FIG. 19 is a flow diagram illustrating a procedure for training a line-finder tool using an interface that includes labels/tags representing lines of interest in an object image.
FIG. 20 shows an example user interface display including an image of a training object with lines of interest and dialog boxes used to perform the training procedure of FIG. 19. This is a drawing.
21 shows FIG. 19 , which involves assigning labels to lines of interest and assigning (e.g., neural) net classifier-based probability scores to found lines. This is a flowchart of the runtime procedure for finding lines using a trained line-finder.
FIG. 22 illustrates an example user interface display including an image of an object with lines found based on the line-finder runtime procedure according to FIG. 21 and illustrating labels and probability scores for non-relevant lines. am.
FIG. 23 is a diagram illustrating an example user interface display including an image of an object with lines found based on the line-finder runtime procedure according to FIG. 21 and illustrating labels and probability scores for lines of interest.

I. 시스템 개요I. System overview

예시적인 실시예에 따라 사용될 수 있는 예시적인 비전 시스템 구성(100)이 도 1에 도시된다. 시스템(100)은 적어도 하나의 비전 시스템 카메라(110)를 포함하고, 하나 이상의 추가로 선택적인 카메라(112)(점선으로 도시됨)를 포함할 수 있다. 예시적인 카메라(들)(110, 112)는 독립적인 프로세서 및/또는 컴퓨팅 장치(140)로 예시될(instantiated) 수 있는 비전 시스템 프로세스(프로세서)(130)에 이미지 프레임을 획득 및 전송하기 위해 이미지 센서(또는 이미저)(S) 및 연관된 전자 장치(electronics)를 포함한다. 카메라(110)(및 112)는 검사중인 객체(150)를 포함하는 장면에 포커스되는(focused) 적절한 렌즈/광학 기기 구성(optics)(116)을 포함한다. 카메라(110 및 112)는 이미지 획득 프로세스에 따라 동작하는 내부 및/또는 외부 조명기(illuminators)(미도시)를 포함할 수 있다. 컴퓨팅 장치(140)는 예시적인 실시예에 따라 이미지 데이터를 저장하고 조작할 수 있는 임의의 허용 가능한 프로세서-기반 시스템(acceptable processor-based system)일 수 있다. 예를 들어, 컴퓨팅 장치(140)는 (도시된 바와 같은) PC, 서버, 랩탑, 태블릿, 스마트폰 또는 다른 유사한 장치를 포함할 수 있다. 컴퓨팅 장치(140)는 카메라에 상호 연결하는 버스-기반 이미지 캡처 카드(bus-based image capture card)와 같은 적절한 주변 장치를 포함할 수 있다. 다른 실시예에서, 비전 프로세서는 카메라 몸체 자체 내에 부분적으로 또는 전체적으로 포함될 수 있으며, 이미지 데이터를 공유하고 처리하는 다른 PC, 서버 및/또는 카메라-기반 프로세서와 네트워크로 연결될(networked) 수 있다. 컴퓨팅 장치(140)는 비전 시스템 프로세스(프로세서)(130)에 제공된 비전 시스템 툴 및 프로세서(132)에 따라 동작 할 수 있는 적절한 그래픽 사용자 인터페이스(GUI: Graphical User Interface)를 지원할 수 있는 적절한 디스플레이(142)를 선택적으로 포함한다. 디스플레이는 다양한 실시예에서 생략되고/생략되거나, 셋업 및 서비스 기능에 대해서만 제공될 수 있다는 것을 유의해야 한다. 비전 시스템 툴은 매사추세츠(MA), 나틱(Natick)의 코그넥스사(Cognex Corporation)로부터 상업적으로 이용할 수 있는 것과 같이 객체를 검사할 때 사용할 수 있는 임의의 허용 가능한 소프트웨어 및/또는 하드웨어 패키지의 일부일 수 있다. 또한, 컴퓨팅 장치는 예를 들어, 키보드(144) 및 마우스(146)뿐만 아니라 디스플레이(142) 내의 터치 스크린을 포함하는 연관된 사용자 인터페이스(UI: User Interface) 컴포넌트를 포함할 수 있다.An example vision system configuration 100 that may be used in accordance with example embodiments is shown in FIG. 1 . System 100 includes at least one vision system camera 110 and may include one or more additional optional cameras 112 (shown in dashed lines). Exemplary camera(s) 110, 112 may be configured to capture and transmit image frames to a vision system processor 130, which may be instantiated as an independent processor and/or computing device 140. It includes a sensor (or imager) (S) and associated electronics. Cameras 110 (and 112) include appropriate lens/optics 116 that are focused on a scene containing object 150 under inspection. Cameras 110 and 112 may include internal and/or external illuminators (not shown) that operate according to the image acquisition process. Computing device 140 may be any acceptable processor-based system capable of storing and manipulating image data, according to example embodiments. For example, computing device 140 may include a PC (as shown), a server, a laptop, a tablet, a smartphone, or other similar device. Computing device 140 may include suitable peripherals, such as a bus-based image capture card that interconnects to a camera. In other embodiments, the vision processor may be partially or fully embedded within the camera body itself and may be networked with other PCs, servers, and/or camera-based processors to share and process image data. The computing device 140 includes a vision system tool provided to the vision system processor 130 and a suitable display 142 capable of supporting an appropriate graphical user interface (GUI) capable of operating according to the processor 132. ) is optionally included. It should be noted that displays may be omitted in various embodiments and/or provided only for setup and service functions. Vision system tools may be part of any acceptable software and/or hardware package that can be used to inspect objects, such as those commercially available from Cognex Corporation of Natick, MA. there is. Additionally, the computing device may include associated user interface (UI) components, including, for example, a keyboard 144 and mouse 146 as well as a touch screen within display 142 .

카메라(110(및 112))는 장면 내에 위치한 객체(150)의 일부 또는 전부를 이미징한다(image). 각각의 카메라는 광학 축(OA: Optical Axis)을 한정하며, 상기 광학 축 주변에서 광학 기기 구성(116), 초점 거리 등에 기초하여 시야가 설정된다(established). 객체(150)는 각각 상이한 방향으로 배치된 복수의 에지들(152, 154 및 156)을 포함한다. 예를 들어, 객체 에지들(object edges)은 스마트폰 본체에 장착된 커버 유리의 에지들을 포함할 수 있다. 예시적으로, 카메라는 전체 객체 또는 특정 위치(예를 들어, 유리가 본체와 만나는 코너(corners))를 이미징할 수 있다. 객체, 카메라 또는 다른 기준 포인트 중 하나(예를 들어, 객체(150)가 지지되는 움직이는 스테이지)와 관련하여 (공통) 좌표 공간이 설정될 수 있다. 도시된 바와 같이, 좌표 공간은 축(158)으로 나타낸다. 이러한 축은 x-y 평면에서 직교하는 x, y 및 z 축 및 z 축에 대한 회전 z을 예시 적으로 정의한다.Cameras 110 (and 112) image some or all of an object 150 located within the scene. Each camera defines an optical axis (OA) around which a field of view is established based on optics configuration 116, focal length, etc. Object 150 includes a plurality of edges 152, 154, and 156, each disposed in a different direction. For example, object edges may include edges of a cover glass mounted on the smartphone body. By way of example, the camera may image the entire object or a specific location (eg, corners where glass meets the body). A (common) coordinate space may be established with respect to one of the objects, cameras or other reference points (e.g. a moving stage on which the object 150 is supported). As shown, the coordinate space is represented by axis 158. These axes exemplarily define the x, y and z axes orthogonal in the xy plane and a rotation z about the z axis.

예시적인 실시예에 따르면, 비전 시스템 프로세스(130)는 비전 시스템 툴/프로세스(132)의 세트를 집합적으로 포함하는 (컴퓨팅 장치(140)에서 실행하는) 하나 이상의 애플리케이션/프로세스와 상호 동작한다(interoperates). 이러한 툴은 이미지 데이터를 분석하는(resolve) 데 사용되는 다양한 종래의 전문화된 애플리케이션을 포함할 수 있으며, 예를 들어 다양한 보정 툴 및 아핀 변환 툴(affine transform tools)은 미리 결정된 (예를 들어, 공통) 좌표계로 획득된 이미지 데이터를 변환하도록 사용될 수 있다. 미리 결정된 임계치에 기초하여 이미지 그레이 스케일 강도 데이터(image grayscale intensity data)를 바이너리 이미지(binary image)로 변환하는 툴이 또한 포함될 수 있다. 마찬가지로, 인접한 이미지 픽셀들(및 서브픽셀들) 사이의 강도(콘트라스트)의 그래디언트(gradient)를 분석하는 툴이 제공될 수 있다.According to an example embodiment, vision system process 130 interoperates with one or more applications/processes (executing on computing device 140) that collectively comprise a set of vision system tools/processes 132 ( interoperates). These tools may include a variety of conventional specialized applications used to resolve image data, for example various correction tools and affine transform tools, as well as predetermined (e.g. common ) can be used to transform the acquired image data into a coordinate system. A tool may also be included to convert image grayscale intensity data to a binary image based on a predetermined threshold. Likewise, tools may be provided to analyze gradients in intensity (contrast) between adjacent image pixels (and subpixels).

비전 시스템 프로세스(프로세서)(130)는 예시적인 실시예에 따라 획득된 이미지에서 복수의 라인들의 위치를 확인하는 라인-찾기 프로세스, 툴 또는 모듈(134)을 포함한다. 이에 따라, 예시적인 실시예에 따른 라인-찾기 절차(line-finding procedure)(200)의 개요를 그래픽적으로 도시한 도 2를 참조한다. 절차(200)는 2 개의 주요 부분으로 구성된다. 입력 이미지(210)는 프로세서에 제공된다. 도시된 바와 같이, 이미지는 한 쌍의 교차하는 에지들(212 및 214)을 포함한다. 이들은 상술한 객체(150)의 코너 영역을 나타낼 수 있다. 에지 포인트 추출기(220)는 입력 이미지(210)를 처리하여, 에지(212 및 214)를 따라 각각 존재하는 에지 포인트들(232 및 234)을 포함하는 후보 에지 포인트들의 세트(230)를 획득한다. 에지 포인트들(232, 234) 및 그 연관된 데이터(예를 들어, 이하에 설명되는 강도 그래디언트 정보(intensity gradient information))는 반복적 라인-파인더(recursive line-finder)(240)에 제공되며, 상기 반복적 라인-파인더(240)는 선택된 에지 포인트에 대하여 일련의 반복적 프로세스(iterative process)를 수행한다. 반복적 프로세스의 목표는 찾은 다른 에지 포인트를 후보 라인 피처에 맞추려고 하는 시도이다. 라인-찾기 프로세스(240)는 도시된 바와 같이 찾은 라인들(252 및 254)을 도출한다. 이러한 결과는 예를 들어 배치 프로세스(alignment processes), 로봇 조작, 검사, ID 판독, 부품/표면 검사 등과 같이, 정보를 사용하는 다른 다운스트림 프로세스(downstream processes)(260)에 제공될 수 있다.Vision system process (processor) 130 includes a line-finding process, tool, or module 134 that locates a plurality of lines in the acquired image, according to an example embodiment. Accordingly, reference is made to Figure 2, which graphically depicts an overview of a line-finding procedure 200 in accordance with an exemplary embodiment. Procedure 200 consists of two main parts. Input image 210 is provided to the processor. As shown, the image includes a pair of intersecting edges 212 and 214. These may represent corner areas of the object 150 described above. Edge point extractor 220 processes input image 210 to obtain a set of candidate edge points 230, including edge points 232 and 234 along edges 212 and 214, respectively. Edge points 232, 234 and their associated data (e.g., intensity gradient information described below) are provided to a recursive line-finder 240, which The line-finder 240 performs a series of iterative processes on the selected edge point. The goal of the iterative process is to attempt to match other found edge points to candidate line features. The line-finding process 240 results in found lines 252 and 254 as shown. These results may be provided to other downstream processes 260 that use the information, such as alignment processes, robotic manipulation, inspection, ID reading, part/surface inspection, etc.

II. 선-찾기 프로세스(프로세서)II. Line-Find Process (Processor)

도 3을 참조하면, 도 3은 실시예에 따라 에지 포인트를 추출하기 위한 절차를 설명한다. 하나 이상의 이미지들은, 찾게 될 에지 피처들을 가지는 객체 또는 표면을 포함하는 장면으로 획득된다(단계(310)). 이미지는 단일 카메라 또는 복수의 카메라들에 의해 추출될 수 있다. 어느 경우에서나, 이미지 픽셀은 단계(320)에서 적절한 보정 파라미터(calibration parameters)에 의해 새로운 및/또는 공통의 좌표 공간으로 (선택적으로) 변환될 수 있다. 또한, 이 단계는 이하에 기술된 바와 같이 이미지를 평활화하는 것(smoothing)을 포함할 수 있다. 특정 실시예에서, 복수의 카메라들이 장면의 불연속 영역을 이미징하는 경우에(예를 들어, 더 큰 객체의 코너 영역에 포커싱하는 경우에), 공통 좌표 공간은 카메라 시야들 사이에서 빈 영역(empty region)을 차지(account for)할 수 있다. 아래에서 설명하는 바와 같이, 이러한 시야들 사이에서 연장되는 라인들(예를 들어, 두 개의 찾은 코너 영역들을 연결하는 객체 에지)은 예시적인 실시예의 시스템 및 방법에 의해 외삽될(extrapolated) 수 있다. 라인들을 찾는데 필요한 에지 포인트들은 단계(330)에서 그래디언트 필드 투영(gradient field projection)을 사용하여 에지 포인트 추출기에 의해 적절한 좌표 공간에서 이미지(들)로부터 추출된다. 그래디언트 값들은 먼저 각 픽셀에 대해 계산되며, x 및 y 그래디언트 컴포넌트에 대한 2 개의 이미지들을 생성한다. 많은 캘리퍼-유사 영역(caliper-like regions) 위로 그래디언트 필드를 투영하는 것에 의해 이미지가 더 프로세싱된다. 강도 값(intensity value)을 투영하는 종래의 캘리퍼 툴과는 달리, 실시예에 따라 그래디언트 필드를 투영하는 것에 의해, 그래디언트 지향(gradient orientation)이 보존될 수 있으며, 이는 아래에서 설명하는 바와 같이 후속 라인-찾기 프로세스를 용이하게 한다.Referring to FIG. 3, FIG. 3 explains a procedure for extracting edge points according to an embodiment. One or more images are acquired of a scene containing an object or surface having edge features to be found (step 310). Images may be extracted by a single camera or multiple cameras. In either case, the image pixels may (optionally) be transformed at step 320 into a new and/or common coordinate space by appropriate calibration parameters. This step may also include smoothing the image as described below. In certain embodiments, when multiple cameras are imaging a discrete region of a scene (e.g., focusing on a corner region of a larger object), a common coordinate space is defined as an empty region between the camera fields of view. ) can be accounted for. As described below, lines extending between these fields of view (e.g., an object edge connecting two located corner regions) may be extrapolated by the systems and methods of example embodiments. The edge points needed to find the lines are extracted from the image(s) in the appropriate coordinate space by an edge point extractor using gradient field projection at step 330. Gradient values are first calculated for each pixel, creating two images for the x and y gradient components. The image is further processed by projecting the gradient field onto many caliper-like regions. Unlike conventional caliper tools that project intensity values, by projecting a gradient field according to an embodiment, the gradient orientation can be preserved, which can be applied to subsequent lines as explained below. - Facilitates the finding process.

또한, 단계(340)에서 도 4의 도면을 참조하면, 후보 에지 피처를 포함하는 이미지의 일부분(캘리퍼-유사 영역(400))은, 직교 투영 방향 (화살표(PD))으로 영역(400)에 걸쳐 반복되는 투영들과 함께, 탐색 방향(화살표(SD))으로 에지의 (거의) 예상되는 지향에 걸쳐 탐색되는 (복수의 투영들(410, 420, 430)로 표현되는) 그래디언트 필드 투영을 받는다(subjected). 각각의 투영(예를 들어, 투영(420)) 에지는 투영과 연관된 그래디언트 필드(440)에서의 로컬 최대값(local maxima)으로 보인다. 일반적으로, 에지와 연관된 투영 내에서 일련의 에지 포인트들은 에지의 연장에 대한 방향과 직교하는 강도 그래디언트(벡터(552, 554))를 나타낼 것이다. 아래에 설명되는 바와 같이, 사용자는 예상된 라인 지향에 기초하여 투영 방향을 정의할 수 있다. 또 달리, 이는 디폴트에 의해 또는 예를 들어, 이미지 내 피처들에 대한 분석과 같은 다른 메커니즘에 의해 제공될 수 있다.Also, referring to the diagram of FIG. 4 at step 340, the portion of the image containing candidate edge features (caliper-like region 400) is projected to region 400 in an orthogonal projection direction (arrow PD). It receives a gradient field projection (represented by a plurality of projections 410, 420, 430) that is searched over the (approximately) expected orientation of the edge in the search direction (arrow SD), with the projections being repeated across (subjected). Each projection (e.g., projection 420) edge appears to be a local maximum in the gradient field 440 associated with the projection. In general, a set of edge points within a projection associated with an edge will exhibit an intensity gradient (vectors 552, 554) perpendicular to the direction of the edge's extension. As explained below, the user can define the projection direction based on the expected line orientation. Alternatively, this may be provided by default or by other mechanisms, such as analysis of features in the image, for example.

2개의 입도 파라미터들(granularity parameters)이 전술된 그래디언트 투영 단계에 포함된다. 그래디언트 필드 계산 이전에, 사용자는 등방성 가우시안 커널(isotropic Gaussian kernel)을 사용하여 이미지를 평활화하도록 선택할 수 있다. 제1 입도는 이러한 가우시안 평활화 커널(Gaussian smoothing kernel)의 크기를 결정한다. 도 5의 도표(500)에 도시된 바와 같이, 적절한 크기의(예를 들어, 큰(512), 중간(514), 작은(516)) 가우시안 커널에 대한 적용이 이미지(210)를 평활화하게 한다. 따라서, 필드 계산 이전에 제1 입도 파라미터는 등방성 가우시안 평활화 커널의 크기를 결정한다.Two granularity parameters are included in the gradient projection step described above. Prior to gradient field calculation, the user can choose to smooth the image using an isotropic Gaussian kernel. The first granularity determines the size of this Gaussian smoothing kernel. As shown in diagram 500 of FIG. 5, application of a Gaussian kernel of appropriate size (e.g., large 512, medium 514, small 516) causes image 210 to be smoothed. . Therefore, the first granularity parameter prior to field calculation determines the size of the isotropic Gaussian smoothing kernel.

그래디언트 필드 계산 이후에, 종래의 캘리퍼 툴에서의 균일한 가중치가 아니라 가우스-가중 투영(Gaussian-weighted projection)이 프로세스에 의해 수행된다. 따라서, 제2 입도 파라미터는 영역(600)이 가우스 평활화 커널(610, 620, 630)을 받는 도 6에 도시된 필드 투영 동안 사용되는 1 차원(1D) 가우시안 커널의 크기를 결정한다. 일반적인 동작 중에서, 사용자는 이미지 상에 중첩된(overlaid) 모든 추출된 에지를 (GUI를 사용하여) 검증하고(verifies), 이미지에서 백그라운드 노이즈(background noise)로 인한 과도한 수의 에지들을 피하면서, 찾게 될 라인들을 따라 추출된 에지들의 수가 만족하는 것으로 나타날 때까지, 입도 및 콘트라스트 임계치를 조절한다(adjusts). 다시 말해, 이 단계는 신호-대-노이즈 비(signal-to-noise ratio)가 이미지 특성에 대해 최적화되게 한다. 이러한 조절은 다양한 실시예에서 디폴트 값을 사용하는 시스템에 의해 자동으로 수행될 수도 있다. 가우시안 가중 함수(Gaussian weighting function)를 사용하는 것은 (예를 들어) 균일한 가중치를 포함하는 투영을 가중시키는 다양한 접근법들 중 하나의 접근법인 것을 유의해야한다.After gradient field calculation, a Gaussian-weighted projection is performed by the process rather than the uniform weights in conventional caliper tools. Accordingly, the second granularity parameter determines the size of the one-dimensional (1D) Gaussian kernel used during the field projection shown in FIG. 6 where region 600 receives Gaussian smoothing kernels 610, 620, 630. During the typical operation, the user verifies (using the GUI) all extracted edges that overlap on the image and finds them, avoiding an excessive number of edges due to background noise in the image. The granularity and contrast thresholds are adjusted until the number of edges extracted along the lines to be drawn appears satisfactory. In other words, this step ensures that the signal-to-noise ratio is optimized for the image characteristics. This adjustment may be performed automatically by the system using default values in various embodiments. It should be noted that using a Gaussian weighting function is one approach among a variety of approaches to weighting projections containing (for example) uniform weights.

도 7의 도표(700)에서 그래디언트 필드 추출 및 투영에 대한 전체 흐름이 그래픽적으로 도시된다. 2개의 입도 파라미터, 즉 등방성 가우시안 커널(710)과 1D 가우시안 커널(720) 각각은 전체 도표(700)에 대해 각각 절반으로 도시된다. 도시된 바와 같이, 각각 취득된 이미지(210)는 평활화(smoothing) 및 데시메이션(decimation)(730)을 받는다. 전술된 바와 같이 그 결과인 이미지(740)는 그래디언트 필드 계산(750)을 받아서, 2개의 그래디언트 이미지들(752 및 754)을 생성한다. 또한, 이 그래디언트 이미지들은 공통 좌표 공간에서 2개의 직교 축을 나타내는 gx와 gy로 표현된다. 프로세싱된 강도 정보는 또한 아래에서 설명되는 것과 같은 실시예에 따라 정규화된 콘트라스트를 계산하는데 사용되기 때문에, 2개의 그래디언트 이미지들에 추가하여 강도 이미지(the intensity image)(756)가 또한 일반적으로 (1D의 가우시안 커널(720)에 기초하여 가우스-가중 투영(770)을 사용하여) 평활화, 데시메이션 및 투영 프로세스(760)를 받는 것을 유의해야 한다. 그래디언트 이미지(772)(gx), 그래디언트 이미지(774)(gy), 및 강도 이미지(776)에 대한 투영 프로파일들이 그 결과이다.In diagram 700 of Figure 7 the overall flow for gradient field extraction and projection is graphically depicted. The two granularity parameters, the isotropic Gaussian kernel 710 and the 1D Gaussian kernel 720, are each shown in half for the entire diagram 700. As shown, each acquired image 210 is subjected to smoothing and decimation 730. As described above, the resulting image 740 is subjected to a gradient field calculation 750, producing two gradient images 752 and 754. Additionally, these gradient images are expressed as g x and g y , which represent two orthogonal axes in a common coordinate space. Since the processed intensity information is also used to calculate normalized contrast according to an embodiment as described below, in addition to the two gradient images the intensity image 756 is also typically (1D Note that it is subjected to a smoothing, decimation and projection process (760) using a Gaussian-weighted projection (770) based on the Gaussian kernel (720) of . Projection profiles for gradient image 772 (g x ), gradient image 774 (g y ), and intensity image 776 are the results.

또한, (도 3에서) 절차(300)의 단계(350)를 참조하면, x & y 그래디언트 이미지들의 1D 투영 프로파일들을 결합하는 것에 의해 적합한 에지 포인트들(qualified edge points)이 추출된다. 이는 강도 이미지(Intensity image)에 기초하여 원시 콘트라스트 계산(raw contrast calculation)(780)과 정규화된 콘트라스트 계산(normalized contrast calculation)(790)을 사용하여 달성된다. 보다 구체적으로, 각 임계치를 초과하는 원시 투영 그래디언트 크기(raw projected gradient magnitudes)와 정규화 투영 그래디언트 크기(normalized projected gradient magnitudes)를 모두 갖는 임의의 로컬 피크들(local peaks)은 다음과 같이 예시적인 수학식에 따라 후속-찾기를 위한 후보 에지 포인트로 고려된다.Also, referring to step 350 of procedure 300 (in FIG. 3), qualified edge points are extracted by combining the 1D projection profiles of the x & y gradient images. This is achieved using a raw contrast calculation 780 and a normalized contrast calculation 790 based on the intensity image. More specifically, any local peaks with both raw projected gradient magnitudes and normalized projected gradient magnitudes exceeding the respective thresholds are defined by the example equation: are considered candidate edge points for follow-up according to .

(g x 2 + g y 2)1/2 > TABS ( g x 2 + g y 2 ) 1/2 > T ABS

(g x 2 + g y 2)1/2/I > TNORM ( g x 2 + g y 2 ) 1/2 / I > T NORM

여기서 g x g y 는, 각각 픽셀 위치의 x-그래디언트 및 y-그래디언트 투영의 값이고, I는 강도이고, TABS는 원시 투영 그래디언트 크기에 대한 절대적 콘트라스트 임계치(absolute contrast threshold)이고, TNORM은 강도-정규화 투영 그래디언트 크기(intensity-normalized projected gradient magnitudes)에 대한 정규화 콘트라스트 임계치(normalized contrast threshold)이다. where g is the normalized contrast threshold for the intensity-normalized projected gradient magnitudes.

특히, 그 절대적 및 정규화 콘트라스트 모두가 각각의 임계치를 초과할 때, 한 포인트만 후보 에지 포인트로 고려된다. 이는 정규화 콘트라스트 임계치(TNORM) 대 절대적 콘트라스트 임계치(TABS)의 예시적인 그래프(800)에서 오른쪽 상단 사분면(upper right quadrant)(810)으로 도시된다. 듀얼(dual)(절대적 및 정규화) 임계치)에 대한 사용은 통상적으로 절대적 콘트라스트 임계치를 사용하는 기존의 접근법과 일반적으로 상이하다. 듀얼 콘트라스트 임계치에 대한 이익은, 예시적으로, 이미지가 관심 에지들을 포함하는 어두운 강도 영역 및 밝은 강도 영역(dark and bright intensity regions) 모두를 포함할 때, 명확하다. 이미지의 어두운 영역에서 에지를 검출하기 위해서는, 낮은 콘트라스트 임계치를 설정하는 것이 바람직하다. 그러나, 이러한 낮은 콘트라스트 설정은 이미지의 밝은 부분에서 잘못된 에지를 검출하게 할 수 있다. 역으로, 이미지의 밝은 영역에서 잘못된 에지를 검출하는 것을 회피하기 위해서, 높은 콘트라스트 임계치를 설정하는 것이 바람직하다. 그러나, 높은 콘트라스트 설정에 대해, 시스템이 이미지의 어두운 영역에서 에지를 적절히 검출하지 못할 수 있다. 전통적인 절대적 콘트라스트 임계치에 추가하여 제2 정규화 콘트라스트 임계치를 사용하는 것에 의해, 시스템은 어두운 영역과 밝은 영역에서 에지들을 모두 적절히 검출할 수 있고, 이미지의 밝은 영역에서 잘못된 에지를 검출하는 것을 피할 수 있다. 따라서, 잘못된 에지(spurious edge)를 회피하면서 관련 에지를 검출할 수 있는 것에 의해, 듀얼 콘트라스트 임계치를 사용하는 것은 전체 프로세스에서 후속 라인-찾기 단계의 속도와 강력함(robustness)을 최대화하는 것을 제공한다. In particular, only one point is considered a candidate edge point when both its absolute and normalized contrast exceed the respective threshold. This is shown in the upper right quadrant 810 of an example graph 800 of normalized contrast threshold (T NORM ) versus absolute contrast threshold (T ABS ). The use of dual (absolute and normalized) thresholds is generally different from existing approaches that typically use absolute contrast thresholds. The benefits of dual contrast thresholding are evident when the image contains both dark and bright intensity regions, illustratively containing edges of interest. To detect edges in dark areas of an image, it is desirable to set a low contrast threshold. However, these low contrast settings can cause false edges to be detected in bright parts of the image. Conversely, it is desirable to set a high contrast threshold to avoid detecting false edges in bright areas of the image. However, for high contrast settings, the system may not be able to properly detect edges in dark areas of the image. By using a second normalized contrast threshold in addition to the traditional absolute contrast threshold, the system can properly detect edges in both dark and light areas and avoid detecting false edges in bright areas of the image. Therefore, by being able to detect relevant edges while avoiding spurious edges, using a dual contrast threshold provides for maximizing the speed and robustness of the subsequent line-finding step in the overall process. .

또한, 절차 단계(350)(도 3)를 더 참조하면, 모든 에지 포인트들이 추출되면, 이들 에지 포인트들은 후속 라인-파인더들이 동작하기에 편리한 데이터 구조로 표현되고 저장된다. 예를 들어, 다음과 같은 투플(tuple)일 수 있다.Also, with further reference to procedure step 350 (FIG. 3), once all edge points have been extracted, these edge points are represented and stored in a data structure that is convenient for subsequent line-finders to operate in. For example, it could be a tuple like this:

p = (x,y,gx,gy,gm,go,I,gm/I,m,n) p = ( x,y,gx,gy,gm,go,I,gm/I,m,n )

여기서 (x,y)는 에지 포인트의 위치이고, (g x ,g y )는 각 x-그래디언트 및 y-그래디언트 투영들에 대한 값이고, (g m ,g o )는 (g x ,g y )로부터 계산된 그래디언트 크기 및 지향이고, I는 에지 포인트 위치의 강도이고, g m /I는 그래디언트 크기(g m )를 강도(I)로 분할한 것에 의해 획득되는 강도-정규화 콘트라스트(intensity-normalized contrast)이고, m은 이미지 색인(index)이고, n은 투영 영역 색인이다. 표준 캘리퍼 툴에서와 같이 에지 포인트의 위치는 정확성을 향상하기 위해 내삽될(interpolated) 수 있다.where (x,y) is the position of the edge point, ( g x , g y ) are the values for each x - gradient and y - gradient projections, and ( g m , g o ) are ), I is the intensity of the edge point location, and g m /I is the intensity-normalized contrast obtained by dividing the gradient size ( g m ) by the intensity ( I ). contrast), m is the image index, and n is the projection area index. As with standard caliper tools, the positions of edge points can be interpolated to improve accuracy.

일반적으로 에지-포인트 추출 프로세스는, 예상되는 라인 각도와 실질적으로 매치(match)하는 단일 방향으로 필드 투영을 실행하도록 동작하는 것을 유의해야 한다. 따라서, 툴은 이러한 각도의 에지에 가장 민감하고, 그 감도는 다른 각도의 에지에서는 점진적으로 떨어지고, 여기서 떨어지는 비율은 필드 투영 길이를 간접적으로 결정하는 입도 설정에 의존한다. 그 결과, 상기 프로세스는 사용자에 의해 지정된 각도 범위에 따라, 예상되는 라인 각도에 "가까운(near)" 각도를 갖는 라인들을 찾는 것으로 제한된다. 상기 프로세스는 직교가 아닌 라인을 찾도록 적응된 것이지만, 여러 실시예에서 직교 방향을 포함하는 다수의 방향으로 투영들을 수행하는 것에 의해 360도에 걸쳐 임의의 각도의 라인들을 찾는 것(전방향 라인-찾기)이 일반화될 수 있는 것으로 고려된다.It should be noted that the edge-point extraction process generally operates to effect a field projection in a single direction that substantially matches the expected line angle. Therefore, the tool is most sensitive to edges of these angles, and its sensitivity drops off progressively for edges of other angles, where the rate of drop depends on the granularity setting, which indirectly determines the field projection length. As a result, the process is limited to finding lines with an angle “near” the expected line angle, according to the angle range specified by the user. Although the above process has been adapted to finding non-orthogonal lines, in some embodiments it is possible to find lines at arbitrary angles across 360 degrees by performing projections in multiple directions, including orthogonal directions (omni-directional lines). find) is considered to be generalizable.

이제 (도 3에서) 절차(300)의 단계(360)를 참조하면, 임계 에지 포인트 후보들(thresholded edge point candidates)이 예시적인 실시예에 따라 라인-파인더에 제공된다. 예로서, 라인-파인더는 반복적으로(recursively) 동작하고, (예를 들어) 랜덤 샘플 콘센서스(RANSAC: RANdom SAmple Concensus)-기반 기술을 사용한다. 또한, 도 9에서 라인-찾기 절차(900)에 대한 참조가 이루어진다. 단계(910)에서, 사용자는 예상되는 각도, 각도 허용 오차, 거리 허용 오차, 및 (예를 들어) GUI를 통해 (예시적으로) (일반적으로 아래에 한정된) 최소 커버리지 스코어와 함께 이미지에서 예상되는 라인들의 최대 수를 지정한다. 이러한 파라미터는 다음 프로세스를 동작시키기 위해 라인-파인더에 의해 사용된다. 라인은 RANSAC 라인-파인더를 반복적으로(recursively) 실행하는 것에 의해 이미지의 각 서브영역(subregion)에 대해 발견되고, 하나의 단계로부터의 에지 포인트 아웃라이어들(outliers)은 다음 단계에 대해 입력 포인트(input points)가 된다. 따라서, 단계(920)에서, 절차(900)는, 에지-찾기 프로세스에서 극값들(extrema)로 식별된 에지 포인트들의 그룹의 일부인 에지 포인트들의 쌍(pair)을 선택한다. 절차(900)는 모델 라인과 일치하는 (허용 오차의 선택된 범위 내에서) 매칭 그래디언트 값들(matching gradient values)에 기초하여 모델 라인(model line)을 선택된 에지 포인트들에 맞추기를 시도한다. 단계(924)에서, 단계(922)로부터의 하나 이상의 라인 후보(들)가 리턴된다. 각 라인-찾기 단계는 후보 라인, 그 인라이어(inliers) 및 아웃라이어(outliers)를 리턴한다. 리턴된 라인(들)은 라인 후보와 일치하는 위치와 그래디언트를 가지는 인라이어 에지 포인트들에 대해 계산을 받는다(단계(926)). 단계(928)에서, 최대 인라이어 카운트(greatest inlier count)를 갖는 후보 라인이 식별된다. 전술된 라인-찾기 단계(단계(920-928))는 허용된 RANSAC 반복의 최대 개수에 도달할 때 종료한다(결정 단계(930)). 각 라인-찾기 단계 내 반복의 최대 개수는 사용자에 의해 지정된 보장 레벨(assurance level)과, 아웃라이어의 내부적으로 계산된 최악의 경우의 비율을 사용하여 자동적으로 계산된다. 각 라인-찾기 단계는, 사용자-지정 맞춤 허용오차(user-specified fit tolerance), 기하학적 제약(geometric constraints) 및 극성(polarity)에 따라, 모든 반복들 중에서 최대 개수의 캡처된 에지 포인트들을 갖는 라인을 리턴한다. 각 에지 포인트는 단일 라인의 인라이어 리스트에만 할당될 수 있고, 각 라인은 각 투영 영역으로부터 최대 하나의 에지 포인트만을 포함하도록 허용된다. 그 위치와 함께 에지 포인트의 그래디언트 지향은 에지 포인트가 후보 라인의 인라이어 리스트에 포함되어야 할지 여부를 결정하는데 사용된다. 특히, 에지 포인트들은 후보 라인의 각도와 일치하는 그래디언트 지향을 가져야 한다.Referring now to step 360 of procedure 300 (in FIG. 3), thresholded edge point candidates are provided to the line-finder in accordance with an example embodiment. As an example, line-finders operate recursively and use (for example) Random Sample Consensus (RANSAC)-based techniques. Reference is also made to the line-finding procedure 900 in Figure 9. At step 910, the user determines the expected angle in the image along with the expected angle, angle tolerance, distance tolerance, and (by way of example) a minimum coverage score (generally defined below) via a GUI. Specifies the maximum number of lines. These parameters are used by the line-finder to run the next process. Lines are found for each subregion of the image by recursively running the RANSAC line-finder, and edge point outliers from one step are input points ( input points). Accordingly, at step 920, procedure 900 selects a pair of edge points that are part of a group of edge points identified as extrema in an edge-finding process. Procedure 900 attempts to fit a model line to selected edge points based on matching gradient values that match the model line (within a selected range of tolerance). At step 924, one or more line candidate(s) from step 922 are returned. Each line-finding step returns a candidate line, its inliers and outliers. The returned line(s) are computed for inlier edge points that have a location and gradient that match the line candidate (step 926). At step 928, the candidate line with the greatest inlier count is identified. The line-finding step described above (steps 920-928) ends when the maximum number of RANSAC iterations allowed is reached (decision step 930). The maximum number of iterations within each line-finding step is automatically calculated using the assurance level specified by the user and the internally calculated worst-case ratio of outliers. Each line-finding step finds the line with the maximum number of captured edge points among all iterations, subject to user-specified fit tolerance, geometric constraints, and polarity. Return. Each edge point can only be assigned to the inlier list of a single line, and each line is allowed to contain at most one edge point from each projection area. The gradient orientation of an edge point along with its location is used to determine whether the edge point should be included in the inlier list of candidate lines. In particular, edge points must have a gradient orientation that matches the angle of the candidate line.

결정 단계(930)에서 더 많은 반복들이 허용되는 것을 결정하면, 라인 후보를 찾는데 사용하기 위한 RANSAC 프로세스(단계(920))로 최고 인라이어 후보로부터의 아웃라이어들이 리턴된다(단계(940)).If decision step 930 determines that more iterations are allowed, outliers from the top inlier candidate are returned (step 940) to the RANSAC process (step 920) for use in finding line candidates.

각 RANSAC 반복 동안, 상이한 투영 영역에 속하는 2개의 에지 포인트들이 랜덤으로 선택되고, 라인은 이러한 2개의 점들에 맞추어질 것이다. 그 결과 후보 라인은, 후보 라인의 각도가 포인트 쌍에서 두 에지들 모두의 그래디언트 각도들과 일치하는 경우와 라인의 각도가 사용자에 의해 지정된 불확실한 범위와 일치하는 경우에만 또 다른 고려를 받는다. 일반적으로, 에지 포인트의 그래디언트 방향은 공칭적으로 직교하지만, 사용자-구성 허용 오차(user-configured angle tolerance)만큼 다른 것이 허용된다. 후보 라인이 이러한 초기 테스트를 통과하는 경우에 인라이어 에지 포인트들의 수가 평가되고, 그렇지 않을 경우에 새로운 RANSAC 반복이 시작된다(initiated). 에지 포인트는 사용자에 의해 지정된 그래디언트 각도 및 거리 허용 오차에 기초하여 그래디언트 방향 및 위치가 라인과 일치하는 경우에만 후보 라인의 인라이어로 고려된다.During each RANSAC iteration, two edge points belonging to different projection areas are randomly selected, and a line will be fit to these two points. As a result, the candidate line receives further consideration only if the angle of the candidate line matches the gradient angles of both edges in the point pair and if the angle of the line matches the uncertainty range specified by the user. Typically, the gradient directions of edge points are nominally orthogonal, but are allowed to differ by user-configured angle tolerance. If the candidate line passes these initial tests the number of inlier edge points is evaluated, otherwise a new RANSAC iteration is initiated. An edge point is considered an inlier for a candidate line only if its gradient direction and position match the line based on the gradient angle and distance tolerance specified by the user.

RANSAC 반복이 최대에 도달할 때(결정 단계(930)), 최고로 찾은 라인 후보의 인라이어들은 (예를 들어) 최소 제곱 회귀(least squares regression) 또는 다른 허용가능한 근사 기술을 사용하여 향상된 라인 맞춤(line fit)을 받고, 인라이어들의 개수가 더 증가하거나 또는 감소하지 않을 때까지 이 단계를 최대 N회(예를 들어 3회 이상) 반복하여 인라이어 에지 포인트들의 세트가 재평가될 것이다(단계(960)). 이것은 단계(970)에서 찾은 것으로 표시된 라인이다.When the RANSAC iteration reaches its maximum (decision step 930), the inliers of the best found line candidates are subjected to improved line fitting (for example) using least squares regression or another acceptable approximation technique. line fit), and repeat this step up to N times (e.g., 3 or more times) until the number of inliers increases or decreases further, and the set of inlier edge points will be reevaluated (step 960 )). This is the line marked as found in step 970.

결정 단계(980)는 더 많은 라인이 ((예를 들어) 또 다른 서브 영역 또는 다른 기준(criteria)을 검색하는 것에 기초하여) 찾아질지 여부를 결정하고, 만약 그렇다면, 프로세스는 단계(920)로 되돌아가서(loops back), 에지 포인트들의 새로운 세트에 대해 동작한다(단계(982)). 포인트들이 다하였거나(exhausted) 또는 최대 반복 카운트가 도달되었을 때, 절차(900)는 단계(990)에서 이미지내 (즉, 복수의) 찾은 라인들의 세트를 리턴한다.Decision step 980 determines whether more lines are to be found ((e.g. based on searching another sub-region or other criteria) and, if so, the process continues with step 920. Loops back and operates on a new set of edge points (step 982). When points are exhausted or the maximum iteration count has been reached, procedure 900 returns at step 990 a set of lines (i.e., a plurality) of found lines in the image.

멀티-라인-파인더(multi-line-finder)는, 2개의 라인 결과가 검사 영역 내에서 서로 교차하는 경우에, 기존의 결과에 대해 최종 조절을 수행하도록 적응된다. 일반적으로 도 10 및 도 11에 도시된 바와 같이, 근접하여 이격된 평행한 라인(1010 및 1020)들에 대해, RANSAC 절차의 통계적 특성으로 인해 종종 잘못된(erroneous) 라인 결과(즉 도 10)가 획득될 수 있다. 그러나, 이러한 에러가 발생할 때, 인라이어 포인트 그룹들에 대한 교환(도 11에서 그룹들(1110) 내 화살표(1120))은 종종 증가된 커버리지 스코어와 감소된-맞춤 잔류값(reduced-fit residuals)을 갖는 정확한 라인의 위치를 확인할 수 있다. 이미지가 도시된 바와 같은 근접하여 이격된 평행한 라인들을 포함할 때, 포인트 교환(Point exchanges)은 가장 효과적일 수 있다. 역으로, 이미지가 도 12 및 도 13에 도시된 실제로 서로 교차하는 라인들(1210 및 1220)을 포함할 때, 포인트 교환(도 12에서 그룹(1240) 내 화살표(1230))이후에 커버리지 스코어가 감소되므로, 교차하는 라인들을 성공적으로 검출하는 프로세스에 의해 교환 이전에 획득된 원래의 결과가 유지된다.The multi-line-finder is adapted to perform final adjustments to existing results in cases where two line results intersect each other within the inspection area. Generally, as shown in Figures 10 and 11, for closely spaced parallel lines 1010 and 1020, erroneous line results (i.e. Figure 10) are often obtained due to the statistical nature of the RANSAC procedure. It can be. However, when such errors occur, swapping for inlier point groups (arrow 1120 in groups 1110 in Figure 11) often results in increased coverage scores and reduced-fit residuals. You can check the exact position of the line with . Point exchanges can be most effective when the image contains closely spaced parallel lines as shown. Conversely, when the image contains lines 1210 and 1220 that actually intersect each other as shown in FIGS. 12 and 13, after the point exchange (arrow 1230 in group 1240 in FIG. 12) the coverage score is is reduced, the original result obtained prior to the exchange by the process of successfully detecting intersecting lines is maintained.

RANSAC 절차는 라인-파인더가 포인트들을 라인으로 맞출 수 있는 여러 기술 중 하나라는 것을 유의해야 한다. 또 다른 실시예에서, 후보 포인트들은 그 사이에 설정된 변위(displacement)에 따라 선택될 수 있거나, 또는 이미지는 (예를 들어) 완전 탐색 기술(exhaustive search technique)을 사용하여 프로세싱될 수 있다. 따라서, 본원에 사용된 바와 같이 RANSAC 기술에 대한 언급은 여러 유사한 포인트-맞춤 기술을 포함하는 것으로 넓게 해석되어야 한다. It should be noted that the RANSAC procedure is one of several techniques that allow a line-finder to fit points into lines. In another embodiment, candidate points may be selected according to a set displacement therebetween, or the image may be processed using (for example) an exhaustive search technique. Accordingly, as used herein, references to RANSAC technology should be broadly interpreted to include several similar point-fitting technologies.

이러한 시스템 및 방법의 추가적인 기능이 제공될 수 있다. 이러한 기능은 혼합-극성(mixed-polarity)에 대한 지원, 투영 영역 폭을 자동 계산하는 것, 멀티-뷰 라인-찾기를 지원, 입력 이미지가 사전-휨(pre-warpage)이 없게(free) 하여 광학적 왜곡을 제거하게 하는 것을 포함한다. 이러한 기능들은 아래에서 더 설명된다.Additional functionality of these systems and methods may be provided. These features include support for mixed-polarity, automatic calculation of the projection area width, support for multi-view line-finding, and ensuring that the input image is pre-warpage free. Including eliminating optical distortion. These functions are explained further below.

도 14 내지 도 16의 예를 더 참조하면, 예시적인 실시예의 라인-찾기 시스템 및 방법은 표준 라이트-투-다크(LightToDark), 다크-투-라이트(DarkToLight) 및 찾아진 에지들 사이에서 콘트라스트에 대한 (각각의) 어느 하나의 극성 설정(Either polarity settings)을 일반적으로 지원한다. 또한, 상기 시스템 및 방법은 라이트-투-다크(Light-To-Dark) 및 다크-투-라이트(Dark-to-Light) 특성이 동일한 라인에 모두 보이는 혼합-극성 설정(mixed-polarity setting)(도 17)을 지원할 수도 있다. 4개의 설정 모두의 라인-찾기 결과는 다음 도면에서 도시된다. 예시적인 실시예에서, 상기 시스템 및 방법은 반대 극성의 에지 포인트들을 포함하는 단일 라인을 찾을 수 있는 혼합-극성 설정을 포함할 수 있다. 이는 단일 라인의 모든 에지 포인트들이 어느 하나의 극성이지만, 단지 하나의 극성인 "어느 하나의" 극성에 대한 종래의 설정과는 상이하다. 혼합-극성 설정은, 다른 적용 중에서 (예를 들어) 보정 판(calibration plate)의 밝은 체커판과 어두운 체커판(light and dark checkerboards)를 분석하기 위해 사용될 때 유리할 수 있다.With further reference to the example of Figures 14-16, the line-finding system and method of the exemplary embodiment includes standard LightToDark, DarkToLight, and contrast between the found edges. Either polarity settings for (each) are generally supported. Additionally, the system and method have a mixed-polarity setting (mixed-polarity setting) where both Light-To-Dark and Dark-to-Light characteristics are visible on the same line. Figure 17) may also be supported. Line-finding results for all four settings are shown in the following figures. In an exemplary embodiment, the system and method may include a mixed-polarity setup that can find a single line containing edge points of opposite polarity. This is different from the conventional setting of “either” polarity, where all edge points of a single line are of one polarity, but only one polarity. A mixed-polarity setup may be advantageous when used to analyze light and dark checkerboards of a calibration plate (for example), among other applications.

사용자는 라인-찾기의 개선된 시프트 불변(shift invariance)을 선택할 수 있다. 이러한 경우에, 에지 포인트 추출기는 실질적으로 오버랩된(overlapped) 투영 영역을 사용하여 결과 안정성을 향상시킨다. 영역들이 오버랩하지 않을 때, 고려되는 픽셀들은 이미지가 시프트될 때 투영 영역으로부터 잠재적으로 이동할 수 있으며, 라인-찾기 결과에 불량한(poor) 시프트 불변을 초래할 수 있다. 오버랩된 투영 영역들은 고려되는 픽셀들이 투영 영역들에 의해 연속적으로 커버되는 것을 보장한다. 오버랩된 투영 영역들이 사용된 경우, 증진적 계산(incremental computation)이 가능한 낮은-레벨의 최적화와 함께 속력을 유지하도록 수행된다.Users can choose improved shift invariance of line-finding. In these cases, the edge point extractor uses substantially overlapped projection areas to improve result stability. When the regions do not overlap, the pixels considered can potentially move from the projection region when the image is shifted, resulting in poor shift invariance in the line-finding results. Overlapping projection areas ensure that the pixels considered are continuously covered by the projection areas. When overlapping projection regions are used, incremental computation is performed to maintain speed with as low-level optimization as possible.

사용자는 라인 피처들에 대한 분석으로부터 획득된 이미지 및/또는 이미징된 표면의 특정 부분들을 생략하는 마스크(masks)를 제공할 수 있다. 이는, 관심 없는 알려진 라인 피처들(예를 들어, 라인들이 찾게 된 작업과 밀접한 관련이 없는 다른 메커니즘, 텍스트, 및 어떤 다른 구조에 의해 분석되는 바코드)를 표면이 포함하는 경우 바람직할 수 있다. 따라서, 에지 포인트 추출기는, 이미지에서 "관심 없는(don't care)" 영역이 마스킹 아웃(masked out)될 수 있고, "관심(care)" 영역이 마스킹 인(masked in)되는 이미지 마스킹(image masking)을 지원할 수 있다. 이러한 마스킹이 일어나는 경우, 찾은 라인들의 커버리지 스코어들은 마스크 내로 떨어지는 에지 포인트들의 수에 따라 예시적으로 재가중된다(reweighted).The user can provide masks that omit certain portions of the image and/or the imaged surface obtained from analysis of line features. This may be desirable if the surface contains known line features of no interest (e.g., barcodes that are analyzed by other mechanisms, text, and some other structure not closely related to the task for which the lines were sought). Therefore, the edge point extractor performs image masking, where “don’t care” areas in the image can be masked out and “care” areas are masked in. masking) can be supported. When such masking occurs, the coverage scores of the lines found are exemplarily reweighted according to the number of edge points that fall within the mask.

도 18의 예시적인 이미지 영역(1800)을 참조하면, 도 18은 이미지 마스크들이 존재할 때의 커버리지 스코어들과, 이러한 커버리지 스코어들에 대한 이미지 마스킹의 효과를 도시한다. 에지 포인트 추출기는 이미지에서 "관심 없는 영역"이 마스킹 아웃될 수 있는 이미지 마스킹을 지원한다. 도시된 바와 같이, 찾은 라인(1810)은 ("관심" 마스크 영역(1820)에 기초하여) 관심 에지 포인트들(care edge points)로 특성화된다. 이러한 관심 에지 포인트들은 라인(1810)으로의 관심 에지 포인트 인라이어(1830)와 라인(1810)으로의 관심 에지 포인트 아웃라이어(1840)로 구성된다. 라인(1810)에서 관심 없는 에지 포인트(1850)들은 이러한 예에 도시된 바와 같은 마스크의 관심 영역(1820)들 사이에 존재하고, 관심 없는 에지 포인트(1850)이 인라이어로 라인에 존재하는 경우에도, 커버리지 스코어 계산에 포함되지 않는다. 라인(1810)을 따라 에지 포인트들에 대한 잠재적인 위치(1860)가 도시된 바와 같이 또한 결정된다. 이러한 잠재적인 위치는 찾은 포인트들의 간격에 기초하여 예측가능한 간격으로 알려진 포인트들 사이에 위치된다. 예시적으로, 찾은 라인들의 커버리지 스코어들은 마스크 내로 떨어진 에지 포인트들의 수에 따라 재가중된다. 따라서, 커버리지 스코어는 다음과 같이 변경된다.Referring to the example image region 1800 of FIG. 18, FIG. 18 shows coverage scores when image masks are present, and the effect of image masking on these coverage scores. The edge point extractor supports image masking, where “regions of no interest” in the image can be masked out. As shown, found lines 1810 are characterized by care edge points (based on “care” mask area 1820). These edge points of interest consist of an edge point of interest inlier 1830 into line 1810 and an edge point of interest outlier 1840 into line 1810. Edge points 1850 of no interest in line 1810 exist between regions of interest 1820 of the mask as shown in this example, even if edge points of no interest 1850 exist in the line as inliers. , is not included in the coverage score calculation. Potential locations 1860 for edge points along line 1810 are also determined as shown. These potential locations are located between known points at predictable intervals based on the spacing of the points found. Illustratively, the coverage scores of the found lines are reweighted according to the number of edge points that fall within the mask. Therefore, the coverage score is changed as follows.

커버리지 스코어(coverage score) = 라인에 대한 관심 에지 포인트 인라이어들의 수(number of care edge point inliers to line)/(라인에 대한 관심 에지 포인트 인라이어들의 수 + 라인에 대한 관심 에지 포인트 아웃라이어들의 수(care edge point outliers to line) + 에지 포인트들의 관심 잠재적 위치들의 수(number of care potential locations of edge points))Coverage score = number of care edge point inliers to line/(number of care edge point inliers to line + number of care edge point outliers to line) (care edge point outliers to line) + number of care potential locations of edge points)

본원에서 상기 시스템 및 방법에 따른 라인-찾기 프로세스를 실행한 후에, 찾은 라인들은 ((예를 들어) GUI를 통해) 사용자에 의해 지정된 분류 기준(sort criteria)에 기초하여 여러 방식으로 분류될 수 있다. 사용자는 인라이어 커버리지 스코어, 강도 또는 콘트라스트와 같은 내적 분류 측정치(intrinsic sort measures)로부터 선택할 수 있다. 또한, 사용자는 부호를 지닌(signed) 거리 또는 상대적 각도와 같은 외적 분류 측정치(extrinsic sort measures)로부터 선택할 수 있다. 외적 분류 측정치를 사용할 때, 사용자는 찾은 라인들의 외적 측정치가 계산될 기준 라인 세그먼트(reference line segment)를 지정할 수 있다.After executing the line-finding process according to the systems and methods herein, the found lines may be sorted in several ways based on sort criteria specified by the user (e.g., via a GUI). . Users can select from intrinsic sort measures such as inlier coverage score, intensity, or contrast. Users can also select from extrinsic sort measures, such as signed distance or relative angle. When using the extrinsic classification metric, the user can specify a reference line segment from which the extrinsic metric of the found lines will be calculated.

일반적으로 전술한 바와 같이, 이러한 시스템 및 방법은 상이한 시야로부터의 이미지의 벡터가 프로세스로 전달될 수 있는 멀티-시야(MFOV: Multi-Field-of-View) 과부하(overload)를 포함할 수 있다. 이미지는 모두 보정을 기초로 공통 클라이언트 좌표 공간(common client coordinate space)에 있어야한다. 위에서 언급했듯이 이러한 기능은 복수의 카메라들을 사용하여 단일 부품의 부분 영역을 캡처하는 애플리케이션 시나리오에서 매우 유용할 수 있다. 에지 포인트는 그래디언트 정보를 유지하기 때문에, (FOV들 둘 모두의 그래디언트들이 각 FOV에서 주어진 라인 지향과 배치에 매칭(match)할 때) 시야의 갭 사이에 투영되는 라인 피처는 계속 분리될(resolved) 수 있다.As generally discussed above, these systems and methods may include a Multi-Field-of-View (MFOV) overload in which vectors of images from different fields of view may be passed to the process. Images must all be in a common client coordinate space based on calibration. As mentioned above, this feature can be very useful in application scenarios where multiple cameras are used to capture partial areas of a single part. Because edge points retain gradient information, line features projected between gaps in the field of view remain resolved (when the gradients in both FOVs match the line orientation and placement given in each FOV). You can.

특히, 왜곡이 심각하지 않는다고 가정하면, 비선형 왜곡을 제거하기 위해, 상기 시스템 및 방법은 (이미지가) 휨을 제거할 것을 요구하지 않는다(즉, 이미지가 비뚤어지지 않을 것을 요구하지 않는다). 이미지가 비뚤어지지 않은 경우, 상기 시스템 및 방법은 여전히 후보 에지 포인트들을 검출할 수 있고, 비선형 변환(nonlinear transform)을 통해 포인트 위치와 그래디언트 벡터를 맵핑(map)할 수 있다. In particular, assuming that the distortion is not significant, in order to remove non-linear distortion, the systems and methods do not require (the image) to remove warpage (i.e., they do not require the image to be unskewed). If the image is not skewed, the system and method can still detect candidate edge points and map point locations and gradient vectors through a nonlinear transform.

III. 라인 라벨링 훈련 인터페이스(Line Labelling Training Interface) 및 런타임 프로세스(Runtime Process)III. Line Labeling Training Interface and Runtime Process

도 1을 다시 참조하면, 비전 시스템 프로세스(프로세서)(130)는 아래에 설명된 바와 같은 훈련 및 런타임에 사용되는 라벨 인터페이스(label interface) 및 연관 프로세스(프로세서)(136)를 더 포함한다. 또한, 비전 시스템 프로세스(프로세서)는 신경망, 통계적 분류기 및/또는 K-최근접(K-nearest neighbor)(K-NN 분류기) 프로세스(프로세서)(138)를 포함하거나, 이들과 인터페이스하며, 이들은 아래에서 기술되는 라벨 프로세스(136)와 인터페이스하는 프로세스(프로세서)(137)로부터 이미지 데이터와 연관되는 분류기를 수신한다. 라벨 프로세스(프로세서)(136)는 사용자가 객체의 이미지에서 관심 라인들과 (전형적으로 문자의/문자와 숫자를 포함하는) 특정 설명들(본원에서 "라벨"또는 "태그"라고 함)을 연관시키도록 훈련 시간(training time)에 동작한다. 이러한 프로세스(프로세서)는 툴 결과에서 찾은 라인들을 자동으로 라벨링하는 추가 기능을 제공함으로써 상술한 라인-찾기 툴의 기능을 향상시킨다.Referring back to Figure 1, the vision system process (processor) 130 further includes a label interface and associated process (processor) 136 used for training and runtime as described below. The vision system process (processor) also includes or interfaces with a neural network, statistical classifier, and/or K-nearest neighbor (K-NN classifier) process (processor) 138, which includes: A classifier associated with the image data is received from a process (processor) 137 that interfaces with the label process 136 described in . The label process (processor) 136 allows the user to associate specific descriptions (typically alphabetical/including letters and numbers) with lines of interest in an image of an object (referred to herein as “labels” or “tags”). It operates at training time to do this. This process enhances the functionality of the line-finding tool described above by providing the additional ability to automatically label lines found in the tool results.

도 19를 참조를 참조하면, 도 19는 전술한 라인-찾기 프로세스를 훈련하기 위한 절차(1900)를 나타낸다. 훈련 절차(1900)는 관심 라인들에 대한 사용자-제공 라벨들(user-provided labels)(일반적으로 텍스트 및/또는 문자와 숫자를 포함하는 형태)을 포함한다. 단계(1910)에서, 전형적으로 모델 객체의 실제 이미지이지만, 부분적이거나 또는 전체적일 수도 있고, CAD 또는 다른 합성 접근법(synthetic approach)에 의해 생성될 수 있는 객체의 트레이닝 이미지를 사용자가 검토한다(reviews). 사용자는 관심 있는 이미지 내 라인들(예를 들어, 태블릿 또는 스마트 폰의 커버 유리의 에지)을 식별한다. "(내부 하우징 내부 에지)Inner Housing Inner Edge", "(외부 하우징 내부 에지)Outer Housing Inner Edge" 등과 같은 라벨들이 생성되어 관심 라인들을 기술할 수 있다. 사용자는 (가능한 라벨들의 리스트로부터) 액세스하거나, 라인들을 정의하는 일련의 용어를 생성하며, 이들은 이미지를 훈련하는데 사용하기 위해 데이터베이스에 저장된다(단계(1920)).Referring to Figure 19, Figure 19 illustrates a procedure 1900 for training the line-finding process described above. The training procedure 1900 includes user-provided labels (typically in the form of text and/or letters and numbers) for lines of interest. At step 1910, the user reviews a training image of the object, which is typically an actual image of the model object, but may be partial or complete and may be generated by CAD or another synthetic approach. . The user identifies lines in the image of interest (eg, the edge of the cover glass of a tablet or smartphone). Labels such as “(Inner Housing Inner Edge)”, “(Outer Housing Inner Edge)”, etc. can be created to describe lines of interest. The user accesses (from a list of possible labels) or creates a set of terms defining lines, which are stored in a database for use in training the image (step 1920).

사용자는 비전 시스템에 의한 검사 중에 객체의 하나 이상의 트레이닝 이미지를 획득하거나 또는 액세스하고, 훈련 프로세스(프로세서)를 동작시킨다(단계(1930)). 훈련 프로세스는 상술한 라인-찾기 툴의 동작을 포함한다. 상기 툴은 사용자-설정 파라미터를 사용하여 각 트레이닝 이미지에서 복수의 라인들을 자동으로 찾는다.A user acquires or accesses one or more training images of an object during inspection by the vision system and operates a training process (processor) (step 1930). The training process includes operation of the line-finding tool described above. The tool automatically finds multiple lines in each training image using user-set parameters.

도 20을 참조하면, 사용자 인터페이스 디스플레이 스크린(user interface display screen)(2000)이 도시되어 있다. 디스플레이 스크린(2000)은 비전 시스템에 의해 검사중인 객체의 트레이닝 이미지를 나타내는 윈도우(window)(2010)를 포함한다. 상기 이미지는 하이라이트된(highlighted) 표시(2020, 2022, 2024, 2026, 2028 및 2029)로 일반적으로 표시된 일련의 찾은 라인들을 포함한다. 디스플레이는 관심있는 특정 라인(2032)에 대해 (보통 다른 색으로) 하이라이트한다 - 라벨을 적용하기 위해 사용자에 의해 클릭되거나(clicked-upon) 또는 플래그된(flagged), 예시적으로 아래에서 설명되는 "내부 하우징 내부 에지(Inner Housing Inner Edge)". 표시(2022-2026)는 비전 시스템 작업에 대한 특정 관심/관련성이 없고/없거나, 클릭되지 않은 라인들과 관련이 있다. 일반적으로, 본원에서 정의된 "라인"은 본질적으로 라인-파인더가 수학적 라인 맞춤(mathematical line fit)을 결과로 리턴하는 이미지의 선형 스텝 에지(linear step edge)이다. (작업과 관련된 에지일 수 있고, 훈련 중에 사용자에 의해 라벨링될 수 있는) 엘리먼트(2030)의 경우에, 2 개의 연관된 스텝 에지들(two associated step edges)(2028 및 2029 참조)이 그 어느 하나의(either) 측면에 도시된다.Referring to FIG. 20, a user interface display screen 2000 is shown. The display screen 2000 includes a window 2010 that represents a training image of an object being inspected by the vision system. The image contains a series of found lines, generally marked with highlighted markings (2020, 2022, 2024, 2026, 2028 and 2029). The display highlights (usually in a different color) specific lines 2032 of interest - clicked-upon or flagged by the user to apply a label, illustratively described below. “Inner Housing Inner Edge”. Marks (2022-2026) relate to lines that are not of particular interest/relevance to vision system operations and/or have not been clicked on. In general, a “line” as defined herein is essentially a linear step edge of the image for which the line-finder returns a mathematical line fit. For element 2030 (which may be a task-related edge and may be labeled by the user during training), there are two associated step edges (see 2028 and 2029) of either It is shown on the (either) side.

사용자는 정의된 라벨(2042, 2044, 2046 및 2048)을 포함하는 메뉴(2040)에 액세스한다. 사용자는 커서(2050) 또는 다른 인터페이스 컴포넌트를 사용하여 원하는 라벨을 클릭하고, 찾은 관심 라인(라인(2030))을 클릭하여 그 특정 라인에 대해 라벨을 설정할 수 있다(단계(1940)). 찾은 모든 라인에 라벨링할 필요는 없으나, 사용자가 원하는 관련된 라인들만 할 수 있다는 것을 유의해야 한다. 관련된 라인들 중 하나 이상이 이미지에서 누락되면(missing), 그 라인과 연관된 라벨은 할당되지 않은 상태로 유지된다.The user accesses menu 2040 containing defined labels 2042, 2044, 2046, and 2048. The user can click on the desired label using the cursor 2050 or another interface component, and then click on the line of interest found (line 2030) to set the label for that particular line (step 1940). Note that you do not need to label every line you find, but only the relevant lines that you want. If one or more of the associated lines are missing from the image, the label associated with that line remains unassigned.

트레이닝 이미지들의 세트에 대한 라인 결과들을 라벨링 한 후에, 상기 툴은 훈련되고, 그 데이터는 객체/비전 시스템 작업에 관한 적절한 데이터베이스에 저장된다(단계(1950)). 결과적으로 훈련된 툴이 이미지에서 실행될 때, 상기 툴은 복수의 라인들을 찾을 뿐만 아니라, 찾은 각각의 라인에 고유한 라벨을 자동으로 할당한다(또는 찾은 라인이 사용자의 애플리케이션과 관련이 없으면, 라벨이 없을 수도 있다). 이는 사용자가 각각의 찾은 라인의 아이덴터티(identity)를 결정하기 위해 (예를 들어, 스크립트 코드에서) 라인 결과들을 사후-프로세스(post-process)해야 하는 것을 방지한다(saves).After labeling the line results for the set of training images, the tool is trained and the data is stored in an appropriate database for object/vision system operation (step 1950). As a result, when a trained tool is run on an image, the tool not only finds multiple lines, but also automatically assigns a unique label to each line it finds (or a label if the line it finds is not relevant to the user's application). may not exist). This saves the user from having to post-process the line results (e.g., in script code) to determine the identity of each found line.

(선택적) 단계(1960)에 따라, 식별된(라벨링된) 라인들은 런타임 동안 이미지의 라인 피처들에 대한 프로세싱 및 스코어링(scoring)을 위해 신경 망 툴(neural network tool)에 제공될 수 있다. 파라미터는 사용자에게 제공되는 훈련 인터페이스 외부의 신경 망(neural network)에 제공되고, 예를 들어 이미지에서 라인 피처들을 탐색하기 위해 최적화된 파라미터와 같이 사전-프로그래밍될(pre-programmed) 수 있다. 따라서, 사용자는 훈련 시간에 라인-파인더 결과에 텍스트 라벨을 할당해야만 한다. 신경망(또는 이하에서 일반적으로 기술되는 다른 프로세스)은 상술한 라인 찾기 툴에 의해 리턴된 후보 라인 피처들을 확률-스코어하기(probability-score) 위해 사용된다. 보다 구체적으로, 훈련 시간에, 라인들이 훈련 윈도우(training window)(2010)로 찾아지면, 사용자는 자신이 라벨링하고자 하는 라인들에 대해 이름을 선택하고, 신경 망 분류기(neural network classifier)는 이러한 라벨링된 라인들 각각에 대해 아래에 또한 생성된다. 분류기는 사용자가 훈련 인터페이스(2000)에서 정의하고 적용한 라벨과 동일한(또는 유사한) 이름을 사용할 수 있다. 예를 들어, 사용자가 라인을 선택하고 "내부 하우징 내부 에지(Inner Housing Inner Edge)" 라벨을 할당하면, 프로세스는 동일한 이름을 가지는 분류기를 생성하고, 분류기에 라인 피처 벡터와 함께 현재 이미지를 추가한다.According to (optional) step 1960, the identified (labeled) lines may be provided to a neural network tool for processing and scoring of the line features of the image during runtime. Parameters are provided to the neural network outside of the training interface provided to the user and may be pre-programmed, for example, parameters optimized for searching line features in an image. Therefore, users must assign text labels to line-finder results at training time. A neural network (or other process described generally below) is used to probability-score the candidate line features returned by the line finding tool described above. More specifically, at training time, once the lines are found in the training window (2010), the user selects names for the lines he wants to label, and the neural network classifier uses these labels. It is also created below for each of the created lines. The classifier may use the same (or similar) name as the label defined and applied by the user in the training interface 2000. For example, if the user selects a line and assigns the label "Inner Housing Inner Edge", the process creates a classifier with the same name and adds the current image along with the line feature vector to the classifier. .

입력 이미지로부터 라인 피처 후보들을 추출하기 위해, 주문화되거나 당업자에 따른 적절한 프로그래밍을 이용하여, 상업적으로 이용 가능한 다양한 신경망 툴이 사용될 수 있다. 또한, 상술한 라인 찾기 프로세스는 이미지로부터 찾은 라인을 전달하는 다양한 라인-찾기 툴들 및 기술들의 예인 것이 명확할 것이다.A variety of neural network tools, either custom or commercially available, can be used to extract line feature candidates from the input image, using appropriate programming according to those skilled in the art. Additionally, it will be clear that the line finding process described above is an example of various line-finding tools and techniques for delivering lines found in an image.

이제 도 21의 런타임 절차(2100)를 참조하면, 객체의 런타임 이미지는 이전 획득 프로세스로부터 획득 및/또는 제공된다(단계(2110)). 이러한 이미지는 관련된 라벨을 포함하는 훈련된 모델에 기초하여 상술한 라인 찾기 툴(134)을 동작시키는 비전 시스템 및 연관 프로세서(130)로 전달된다(단계(2120)). 라인-찾기 툴은 찾은 라벨링된 라인과 라벨링 되지 않은 라인 모두를 리턴한다. 다음으로, 단계(2130)에서, 훈련 시간에 생성된 신경 망(또는 이하에 설명되는 분류기를 사용하는 다른 프로세스)이 실행되고, 확률 스코어 맵이 획득된다. 확률 스코어 맵은 픽셀이 신경 망이 훈련된 피처 벡터에 대응하는지 여부에 대한 맵(map)이다. 이러한 확률 스코어 맵은 이미지와 동일한 크기이다. 각각의 찾은 라인은 규칙적인 간격(regular intervals)으로 샘플링되고(sampled), 상기 스코어 맵으로부터 각각의 툴에 대해 확률 스코어가 통합된다. 단계(2140)에서, 각 라벨에 대해 최대 확률 스코어를 가지는 라인에 기초하여 라벨들이 라인들에 할당된다. 단계(2150)에서, 연관된 라벨 및 확률 스코어와 함께 라인-찾기 단계의 결과가 사용자에 대해 저장되고 디스플레이되고/디스플레이되거나, 부품 검사(합격/불합격), 로봇 제어 등과 같은 다른 다운 스트림 이용 작업을 위해 사용된다.Referring now to runtime procedure 2100 of Figure 21, a runtime image of an object is acquired and/or provided from a previous acquisition process (step 2110). These images are passed to the vision system and associated processor 130, which operates the line finding tool 134 described above based on the trained model including the associated labels (step 2120). The line-finding tool returns both labeled and unlabeled lines it finds. Next, at step 2130, the neural network created at training time (or other process using the classifier described below) is executed and a probability score map is obtained. The probability score map is a map of whether a pixel corresponds to a feature vector on which a neural network was trained. This probability score map is the same size as the image. Each found line is sampled at regular intervals and a probability score is integrated for each tool from the score map. At step 2140, labels are assigned to lines based on the line with the highest probability score for each label. At step 2150, the results of the line-finding step along with the associated labels and probability scores are stored and displayed for the user or for other downstream utilization tasks such as part inspection (pass/fail), robot control, etc. It is used.

도 22는 관련 라인(스텝 에지)(2210)이 하이라이트된 (도 20의 훈련 객체에 기초한) 예시적인 런타임 객체에 대한 런타임 결과의 디스플레이를 도시한다. 추가적인 관련 라인들(예를 들어, 선형 피처(2310) 주위의 하부 하이라이트(lower highlight)(2228))이 도시되고, 훈련 단계에서 훈련된 다른 관심 라인들에 대응한다. 복수의 비-관련 라인들도 또한 하이라이트된다(2220, 2222, 2224). 사용자는 각각의 정보 윈도우(2230)에서 "태그 없음(No Tag)"을 나타내는 비-관련 라인들 중 하나(하이라이트(2220))를 클릭하였고, 대응하는 확률 스코어는 0인 것을 나타낸다. 역으로, 도 23에서 도 22의 디스플레이(2200)와 동일한 결과를 나타내는 디스플레이(2300)는 라벨 "내부 하우징 내부 에지(Inner Housing Inner Edge)"를 가지는 관련 라인(2210)에 대한 정보 박스(2320)를 제공한다. 이는 훈련 시간으로부터의 사용자-라벨링된 피처와 확률 스코어가 0.635와 같다는 것을 나타내며, 이는 찾은 라인이 그렇지 않을 경우보다 더, 라벨링된 것이 맞다는 것을 의미한다.Figure 22 shows a display of runtime results for an example runtime object (based on the training object of Figure 20) with the relevant line (step edge) 2210 highlighted. Additional lines of interest (e.g., lower highlight 2228 around linear feature 2310) are shown and correspond to other lines of interest trained in the training phase. Multiple non-relevant lines are also highlighted (2220, 2222, 2224). The user clicked on one of the non-relevant lines (highlight 2220) indicating “No Tag” in each information window 2230, indicating that the corresponding probability score is 0. Conversely, in FIG. 23 , display 2300 showing the same result as display 2200 of FIG. 22 includes an information box 2320 for the associated line 2210 with the label “Inner Housing Inner Edge.” provides. This indicates that the user-labeled feature and probability score from training time are equal to 0.635, meaning that the line found is more correctly labeled than it would otherwise be.

예로서, 상술된 신경 망 분류기는 라인 세그먼트를 정의하는 피처들과 함께 입력으로 이미지(픽셀 데이터)를 수신한다. 신경 망 분류기의 출력은, 이미지에서의 각 픽셀이 대응하는 입력 픽셀이 훈련된 라인 세그먼트와 일치하는지 여부에 대해 단일 확실한(confidence) 경우의 이미지들에 대한 집합이다. 출력 이미지의 수는 분류기가 학습한 라인 세그먼트의 수와 동일하다. 네트워크가 재생되도록(reproduce on) 훈련된, 바람직한 출력 이미지들은 공간 확률 분포의 이진 또는 그레이스케일 표현, 라인의 높은 그래디언트 에지에 대응하는 높은 확률의 좁은 굴곡(ridges) 또는 다른 훈련된 패턴일 수 있다. 런타임에서 분류기는 입력 이미지를 수신하고 훈련된 라인 세그먼트가 현재의 라벨/태그와 연관될 수 있다고 신경 망이 결론을 내리는 경우의 영역을 하이라이트하는 출력 이미지들의 세트를 생성한다.As an example, the neural network classifier described above receives as input an image (pixel data) along with features defining line segments. The output of a neural network classifier is a set of images in which there is a single confidence whether each pixel in the image matches a line segment for which the corresponding input pixel was trained. The number of output images is equal to the number of line segments learned by the classifier. Desirable output images that the network is trained to reproduce may be a binary or grayscale representation of a spatial probability distribution, high probability narrow ridges corresponding to high gradient edges of lines, or other trained patterns. At runtime, the classifier receives input images and produces a set of output images that highlight regions where the neural network concludes that a trained line segment can be associated with the current label/tag.

또 달리, 분류기는 통계적으로 훈련될 수 있다. 이러한 통계적으로 훈련된 분류기에 대한 입력은 현재 라인 세그먼트와 그 인접한 라인 세그먼트 사이의 관계를 기술하는 측정된 속성(properties)(예를 들어, 가장 가까운 라인과의 거리, 상대적인 각도 등) 또는 라인 세그먼트 근처의 이미지의 계산된 속성(예를 들어, 라인 세그먼트에 접하는 1D 강도 이미지 투영, 강도 막대 그래프 통계 등)과 함께 현재 라인 세그먼트의 측정된 속성(예를 들어, 극성, 위치, 각도 등)을 포함하는 피처 벡터로 제공될 수 있다. 따라서, 본원에 사용된 용어 "분류기"는 신경 망 분류기 또는 라벨을 생성하는 통계적으로 훈련된 분류기를 지칭할 수 있다. 상기 용어는 또한 K-최근접(K-NN) 분류기 및/또는 프로세스(프로세서)를 지칭할 수도 있다. 통계적 분류기 및/또는 K-NN 분류기가 사용되는 경우, 확률 스코어(probably scores) 또는 확률 맵의 출력은 절차들(1900 및 2100)에서 생략될 수 있고, 인터페이스에서 라벨/태그 디스플레이의 일부로 제공되지 않을 수 있다. 그러나, 이러한 분류기는 라벨 프로세스의 개선을 계속 유리하게 하게 한다.Alternatively, the classifier can be trained statistically. The inputs to these statistically trained classifiers are measured properties that describe the relationship between the current line segment and its adjacent line segments (e.g., distance to the nearest line, relative angle, etc.) or nearby line segments. Contains measured properties (e.g. polarity, position, angle, etc.) of the current line segment along with computed properties of the image (e.g., 1D intensity image projections tangential to the line segment, intensity histogram statistics, etc.) Can be provided as a feature vector. Accordingly, the term “classifier” as used herein may refer to a neural network classifier or a statistically trained classifier that generates labels. The term may also refer to a K-Nearest Neighbor (K-NN) classifier and/or process. If statistical classifiers and/or K-NN classifiers are used, the output of probability scores or probability maps may be omitted from procedures 1900 and 2100 and may not be provided as part of the label/tag display in the interface. You can. However, these classifiers continue to benefit improvements in the labeling process.

IV. 결론IV. conclusion

상기 시스템 및 방법 및 여러 대안적인 실시예/개선에 따라 제공된 라인-파인더는 여러 조건 하에서 복수의 라인 피처들을 결정하기 위한 효과적이고 강력한 툴인 것이 분명하다. 일반적으로, 라인 피처들을 찾는데 사용될 때, 상기 시스템 및 방법은 이미지에서 찾아지는 라인들의 최대 개수에 특정 제한을 갖지 않는다. 찾은 라인들은 라벨링될 수 있고 분류되어 그 가능한 정확성이 결정될 수 있으며, 이에 의해 라인-찾기 프로세스의 다양성과 강력함이 향상된다.It is clear that the line-finder provided in accordance with the above systems and methods and various alternative embodiments/improvements is an effective and powerful tool for determining multiple line features under various conditions. In general, when used to find line features, the systems and methods have no specific limit on the maximum number of lines found in an image. The lines found can be labeled and classified to determine their possible accuracy, thereby increasing the versatility and power of the line-finding process.

전술한 것은 본 발명의 예시적인 실시예의 상세한 설명이다. 본 발명의 사상과 범위를 벗어남 없이 다양한 변형과 추가가 이루어질 수 있다. 전술된 여러 실시예 각각의 피처들은 적절한 다른 설명된 실시예의 피처들과 결합될 수 있어서, 연관된 새로운 실시예에서 다양한 피처 조합들이 제공될 수 있다. 또한, 전술한 것은 본 발명의 장치 및 방법의 많은 별개의 실시예들을 설명하지만, 본원에 설명된 것은 본 발명의 원리에 대한 적용을 단지 예시할 뿐이다. 예를 들어, 본 명세서에 사용된 바와 같이 "프로세스(process)" 및/또는 "프로세서(processor)"라는 용어는 여러 전자 하드웨어 및/또는 소프트웨어 기반 기능들과 컴포넌트들을 포함하는 것으로 넓게 해석되어야 한다(그리고 대안적으로 기능적 "모듈(modules)" 또는 "엘리먼트(elements)"라고 언급될 수 있다). 또한, 도시된 프로세스 또는 프로세서는 다른 프로세스 및/또는 프로세서와 결합되거나 또는 여러 서브-프로세스(sub-processes) 또는 프로세서로 분할될 수 있다. 이러한 서브-프로세스 및/또는 서브-프로세서는 본원에서 실시예에 따라 여러 방식으로 결합될 수 있다. 마찬가지로, 본원에서의 임의의 기능, 프로세스 및/또는 프로세서는 전자 하드웨어, 프로그램 명령의 비-일시적인 컴퓨터-판독가능한 매체로 구성된 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합을 사용하여 구현될 수 있는 것으로 명시적으로 고려된다. 추가적으로, 본 명세서에 사용된 바와 같이 "수직", "수평", "위", "아래", " 하부", "상부", "측면", "전방", "후방", "좌측", "우측" 등과 같은 여러 방향 및 배치 용어는 상대적인 관례로서만 사용된 것일 뿐, 중력의 작용 방향과 같은 고정된 좌표 공간에 대해 절대적 방향/배치로 사용된 것은 아니다. 추가적으로, "실질적으로"또는 "대략적으로"라는 용어는 주어진 측정치, 값 또는 특성에 사용된 경우, 이 용어는 원하는 결과를 달성하는 정상 동작 범위 내에 있는 양을 지칭하지만, 이는 시스템의 내적 부정확성과 허용된 오차 내 에러(예를 들어, 1-5 퍼센트)로 인한 일부 변동을 포함한다. 따라서, 본 설명은 예시적인 것으로만 해석되어야 하고, 본 발명의 범위를 제한하지는 않는 것을 의미한다.The foregoing is a detailed description of exemplary embodiments of the present invention. Various modifications and additions may be made without departing from the spirit and scope of the present invention. Features of each of the various embodiments described above may be combined with features of other described embodiments as appropriate, so that various feature combinations may be provided in the associated new embodiment. Additionally, while the foregoing describes many distinct embodiments of the apparatus and method of the invention, those described herein are merely illustrative of applications to the principles of the invention. For example, as used herein, the terms “process” and/or “processor” should be broadly interpreted to include various electronic hardware and/or software-based functions and components ( and may alternatively be referred to as functional “modules” or “elements”). Additionally, the depicted process or processor may be combined with other processes and/or processors or may be divided into several sub-processes or processors. These sub-processes and/or sub-processors may be combined in various ways depending on the embodiments herein. Likewise, any function, process and/or processor herein is explicitly stated to be implemented using electronic hardware, software consisting of a non-transitory computer-readable medium of program instructions, or a combination of hardware and software. is considered. Additionally, as used herein, “vertical,” “horizontal,” “above,” “below,” “bottom,” “top,” “side,” “front,” “posterior,” “left,” Various direction and placement terms such as "right" are used only as relative conventions and are not used as absolute directions/positions in a fixed coordinate space, such as the direction of gravity. Additionally, when the terms "substantially" or "approximately" are used for a given measurement, value, or characteristic, the terms refer to the amount that is within the normal range of operation to achieve the desired result, but this does not allow for internal inaccuracies and tolerances in the system. Includes some variation due to errors within the specified tolerance (e.g., 1-5 percent). Accordingly, this description is to be construed as illustrative only and is not meant to limit the scope of the invention.

Claims (22)

하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들을 찾기 위한 시스템에 있어서,
비전 시스템 프로세서;
상기 비전 시스템 프로세서와 연관된 인터페이스 - 상기 인터페이스는 객체의 트레이닝 이미지에서 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 대해 개별 라벨의 생성을 허용함 - ;
획득된 이미지에서 라인들의 위치를 확인하는 런타임 라인-찾기 프로세스;
상기 개별 라벨에 대응하는 상기 획득된 이미지의 일부의 확률을 지시하는 확률 맵을 결정하기 위해 상기 개별 라벨에 연관된 분류기를 사용하는 신경망 프로세스; 및
상기 획득된 이미지 내 위치한 라인의 개별 라벨을 상기 확률 맵에 따라 결정된 상기 위치한 라인에 대한 확률 스코어에 기초하여 결정하고, 상기 결정된 개별 라벨 및 상기 확률 스코어를 상기 획득된 이미지 내 상기 위치한 라인과 함께 제공하는 런타임 결과-생성 프로세스
를 포함하는 비전 시스템.
A system for finding line features in an image acquired based on one or more cameras, comprising:
vision system processor;
an interface associated with the vision system processor, the interface allowing creation of individual labels for lines located by a line-finding process in a training image of an object;
a runtime line-finding process that determines the location of lines in the acquired image;
a neural network process that uses a classifier associated with the individual label to determine a probability map indicating the probability of a portion of the acquired image corresponding to the individual label; and
The individual label of the line located in the acquired image is determined based on the probability score for the located line determined according to the probability map, and the determined individual label and the probability score are provided together with the located line in the acquired image. runtime result-generating process
A vision system including.
제1항에 있어서,
상기 런타임 결과-생성 프로세스는 비-관심 라인들에 대한 확률 스코어들을 제공하는,
비전 시스템.
According to paragraph 1,
The runtime result-generation process provides probability scores for non-interest lines,
Vision system.
제1항에 있어서,
상기 결과-생성 프로세스는 라인들을 하이라이트하고(highlights) 상기 하이라이트된 라인들과 연관된 확률 스코어들을 제공하는 인터페이스
를 포함하는,
비전 시스템.
According to paragraph 1,
The result-generating process is an interface that highlights lines and provides probability scores associated with the highlighted lines.
Including,
Vision system.
제1항에 있어서,
상기 확률 맵은 상기 획득된 이미지와 크기에서 유사한,
비전 시스템.
According to paragraph 1,
The probability map is similar in size to the acquired image,
Vision system.
제1항에 있어서,
상기 신경망 프로세스는 신경망 분류기 및 통계적으로 훈련된 분류기 중 적어도 하나를 사용하는,
비전 시스템.
According to paragraph 1,
The neural network process uses at least one of a neural network classifier and a statistically trained classifier,
Vision system.
제1항에 있어서,
상기 라인-찾기 프로세스는 라인 피처들을 포함하는 장면의 이미지 데이터를 수신하는 프로세서
를 포함하고,
상기 프로세서는 에지 포인트 추출기; 및 라인-파인더(line-finder)를 포함하고,
상기 에지 포인트 추출기는,
(a) 상기 이미지 데이터로부터 그래디언트 벡터 필드를 계산하고,
(b) 복수의 그래디언트 투영 서브-영역들에 걸쳐 상기 그래디언트 벡터 필드를 투영하고,
(c) 상기 투영된 그래디언트 데이터에 기초하여 상기 그래디언트 투영 서브-영역들 각각에서 복수의 에지 포인트들을 찾고,
상기 라인-파인더는,
상기 이미지로부터 추출된 상기 에지 포인트들과 일치하는 복수의 라인들을 생성하는,
비전 시스템.
According to paragraph 1,
The line-finding process is performed by a processor receiving image data of a scene containing line features.
Including,
The processor includes an edge point extractor; and a line-finder,
The edge point extractor,
(a) calculate a gradient vector field from the image data,
(b) projecting the gradient vector field over a plurality of gradient projection sub-regions,
(c) finding a plurality of edge points in each of the gradient projection sub-regions based on the projected gradient data,
The line-finder is,
Generating a plurality of lines matching the edge points extracted from the image,
Vision system.
제6항에 있어서,
상기 라인-파인더는 이전에 정의된 라인들에 대한 아웃라이어 에지 포인트들로부터 라인들을 반복적으로 정의하는 것을 포함하여 새로운 라인들에 인라이어 에지 포인트들을 맞추기 위해 RANSAC-기반 프로세스를 동작시키는,
비전 시스템.
According to clause 6,
The line-finder operates a RANSAC-based process to align inlier edge points to new lines, including iteratively defining lines from outlier edge points to previously defined lines.
Vision system.
제6항에 있어서,
그래디언트 필드 투영은 하나 이상의 상기 라인 피처들의 예상된 지향에 응답하여 설정된 방향을 따라 지향되는,
비전 시스템.
According to clause 6,
The gradient field projection is oriented along a set direction in response to the expected orientation of one or more of the line features.
Vision system.
제6항에 있어서,
그래디언트 필드 투영은 가우시안 커널(Gaussian kernel)에 기초한 입도를 정의하는,
비전 시스템.
According to clause 6,
Gradient field projection defines the granularity based on a Gaussian kernel.
Vision system.
제6항에 있어서,
상기 에지 포인트 추출기는 상기 그래디언트 투영 서브-영역들 각각에서 복수의 그래디언트 크기 최대값들을 찾도록 구성되고,
상기 그래디언트 크기 최대값들은 위치 벡터 및 그래디언트 벡터에 의해 기술되는, 상기 복수의 에지 포인트들 중 일부의 에지 포인트들로 각각 식별되는,
비전 시스템.
According to clause 6,
the edge point extractor is configured to find a plurality of gradient magnitude maxima in each of the gradient projection sub-regions,
wherein the gradient magnitude maxima are each identified by some edge points of the plurality of edge points, described by a position vector and a gradient vector,
Vision system.
제6항에 있어서,
상기 라인-파인더는, 적어도 하나의 후보 라인으로부터 적어도 하나의 에지 포인트의 거리 및 상기 적어도 하나의 에지 포인트의 그래디언트 방향과 상기 적어도 하나의 후보 라인의 정상 방향 사이의 각도 차에 기초하는 미터법을 계산하는 것에 의해, 상기 추출된 복수의 에지 포인트들 중 상기 적어도 하나의 에지 포인트와 상기 복수의 라인들 중 상기 적어도 하나의 후보 라인 사이의 일관성을 결정하도록 구성된,
비전 시스템.
According to clause 6,
The line-finder calculates a metric based on the distance of at least one edge point from at least one candidate line and the angular difference between the gradient direction of the at least one edge point and the normal direction of the at least one candidate line. configured to determine consistency between the at least one edge point among the extracted plurality of edge points and the at least one candidate line among the plurality of lines,
Vision system.
하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들을 찾기 위한 시스템에 있어서,
비전 시스템 프로세서;
상기 비전 시스템 프로세서와 연관된 인터페이스 - 상기 인터페이스는 객체의 트레이닝 이미지에서 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 대한 개별 라벨의 생성을 허용함 - ;
획득된 이미지에서 라인들의 위치를 확인하는 런타임 라인-찾기 프로세스; 및
상기 개별 라벨에 대응하는 상기 획득된 이미지의 일부의 확률을 지시하는 확률 맵을 결정하고, 상기 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 기초하여 상기 인터페이스에 대해 개별 라벨들을 생성하는 통계적 분류기
를 포함하고,
상기 획득된 이미지 내 위치한 라인의 개별 라벨은, 상기 확률 맵에 따라 결정된 상기 위치한 라인에 대한 확률 스코어에 기초하여 결정되고,
상기 결정된 개별 라벨 및 상기 확률 스코어는 상기 획득된 이미지 내 상기 위치한 라인과 함께 제공되는 시스템.
A system for finding line features in an image acquired based on one or more cameras, comprising:
vision system processor;
an interface associated with the vision system processor, the interface allowing creation of individual labels for lines located by a line-finding process in a training image of an object;
a runtime line-finding process that determines the location of lines in the acquired image; and
A statistical classifier that determines a probability map indicating the probability of a portion of the acquired image corresponding to the individual label and generates individual labels for the interface based on lines located by the line-finding process.
Including,
The individual label of a line located in the acquired image is determined based on a probability score for the located line determined according to the probability map,
The system of claim 1, wherein the determined individual label and the probability score are provided together with the located line in the acquired image.
하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들을 찾기 위한 시스템에 있어서,
비전 시스템 프로세서;
상기 비전 시스템 프로세서와 연관된 인터페이스 - 상기 인터페이스는 객체의 트레이닝 이미지에서 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 대한 개별 라벨의 생성을 허용함 - ;
획득된 이미지에서 라인들의 위치를 확인하는 런타임 라인-찾기 프로세스; 및
상기 개별 라벨에 대응하는 상기 획득된 이미지의 일부의 확률을 지시하는 확률 맵을 결정하고, 상기 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 기초하여 상기 인터페이스에 대해 개별 라벨들을 생성하는 K-NN 분류기
를 포함하고,
상기 획득된 이미지 내 위치한 라인의 개별 라벨은, 상기 확률 맵에 따라 결정된 상기 위치한 라인에 대한 확률 스코어에 기초하여 결정되고,
상기 결정된 개별 라벨 및 상기 확률 스코어는 상기 획득된 이미지 내 상기 위치한 라인과 함께 제공되는 시스템.
A system for finding line features in an image acquired based on one or more cameras, comprising:
vision system processor;
an interface associated with the vision system processor, the interface allowing creation of individual labels for lines located by a line-finding process in a training image of an object;
a runtime line-finding process that determines the location of lines in the acquired image; and
K- determines a probability map indicating the probability of a portion of the acquired image corresponding to the individual label, and generates individual labels for the interface based on lines located by the line-finding process. NN classifier
Including,
The individual label of a line located in the acquired image is determined based on a probability score for the located line determined according to the probability map,
The system of claim 1, wherein the determined individual label and the probability score are provided together with the located line in the acquired image.
하나 이상의 카메라들에 기초하여 획득된 이미지에서 라인 피처들을 찾기 위한 방법에 있어서,
객체의 트레이닝 이미지에서 라인-찾기 프로세스에 의해 위치가 확인된 라인들에 대한 개별 라벨의 생성을 허용하는, 비전 시스템 프로세서와 연관된 인터페이스를 제공하는 단계;
런타임 라인-찾기 프로세스를 이용하여, 획득된 이미지에서 찾은 라인들의 위치를 확인하는 단계;
상기 개별 라벨에 연관된 분류기를 이용하여, 상기 개별 라벨에 대응하는 상기 획득된 이미지의 일부의 확률을 지시하는 확률 맵을 결정하고, 찾은 라인들 중 적어도 하나에 대해 개별 라벨들을 생성하는 단계; 및
상기 획득된 이미지 내 위치한 라인의 개별 라벨을 상기 확률 맵에 따라 결정된 상기 위치한 라인에 대한 확률 스코어에 기초하여 결정하고, 상기 결정된 개별 라벨 및 상기 확률 스코어를 상기 획득된 이미지 내 상기 위치한 라인과 함께 제공하는 단계
를 포함하는 방법.
A method for finding line features in an image acquired based on one or more cameras, comprising:
providing an interface associated with a vision system processor that allows creation of individual labels for lines located by a line-finding process in a training image of an object;
Using a runtime line-finding process, confirming the location of lines found in the acquired image;
determining, using a classifier associated with the individual label, a probability map indicating the probability of a portion of the acquired image corresponding to the individual label, and generating individual labels for at least one of the found lines; and
The individual label of the line located in the acquired image is determined based on the probability score for the located line determined according to the probability map, and the determined individual label and the probability score are provided together with the located line in the acquired image. steps to do
How to include .
제14항에 있어서,
상기 분류기는 적어도 하나의 신경망 분류기를 포함하고,
상기 방법은,
상기 개별 라벨들에 기초하여, 상기 개별 라벨들과 관련하여 찾은 라인 피처들에 대한 확률 맵을 결정하는 상기 적어도 하나의 신경망 분류기를 사용하는 단계; 및
찾은 비-관심 라인들에 대한 확률 스코어들을 제공하도록 생성하는 단계
를 더 포함하는 방법.
According to clause 14,
The classifier includes at least one neural network classifier,
The method is:
Based on the individual labels, using the at least one neural network classifier to determine a probability map for line features found associated with the individual labels; and
Generating to provide probability scores for found non-interest lines
How to further include .
제15항에 있어서,
상기 생성하는 단계는,
인터페이스에서 찾은 라인들을 하이라이트하는 단계; 및
상기 하이라이트된 라인들과 연관된 상기 확률 스코어들을 제공하는 단계
를 포함하는 방법.
According to clause 15,
The generating step is,
highlighting lines found in the interface; and
providing the probability scores associated with the highlighted lines.
How to include .
제14항에 있어서,
상기 분류기는 신경망 분류기, 통계적으로 훈련된 분류기, 및 K-NN 분류기 중 적어도 하나인,
방법.
According to clause 14,
The classifier is at least one of a neural network classifier, a statistically trained classifier, and a K-NN classifier,
method.
제14항에 있어서,
상기 라인-찾기 프로세스는 라인 피처들을 포함하는 장면의 이미지 데이터를 수신하고,
상기 라인-찾기 프로세스는 에지 포인트 추출기를 포함하고,
상기 에지 포인트 추출기는,
(a) 상기 이미지 데이터로부터 그래디언트 벡터 필드를 계산하고,
(b) 복수의 그래디언트 투영 서브-영역들에 걸쳐 상기 그래디언트 벡터 필드를 투영하고,
(c) 상기 투영된 그래디언트 데이터에 기초하여 상기 그래디언트 투영 서브-영역들 각각에서 복수의 에지 포인트들을 찾고,
상기 방법은,
상기 이미지로부터 추출된 상기 에지 포인트들과 일치하는 복수의 라인들을 계산하는 단계
를 더 포함하는 방법.
According to clause 14,
The line-finding process receives image data of a scene containing line features,
The line-finding process includes an edge point extractor,
The edge point extractor,
(a) calculate a gradient vector field from the image data,
(b) projecting the gradient vector field over a plurality of gradient projection sub-regions,
(c) finding a plurality of edge points in each of the gradient projection sub-regions based on the projected gradient data,
The method is,
calculating a plurality of lines matching the edge points extracted from the image
How to further include .
제18항에 있어서,
상기 계산하는 단계는,
이전에 정의된 라인들에 대해 아웃라이어 에지 포인트들로부터 라인들을 반복적으로 정의하는 것을 포함하여 새로운 라인들에 인라이어 에지 포인트들을 맞추기 위해 RANSAC-기반 프로세스를 동작시키는,
방법.
According to clause 18,
The calculating step is,
operating a RANSAC-based process to fit inlier edge points to new lines, including iteratively defining lines from outlier edge points to previously defined lines,
method.
제18항에 있어서,
그래디언트 필드 투영은 하나 이상 또는 상기 라인 피처들의 예상된 지향에 응답하여 설정된 방향을 따라 지향되는,
방법.
According to clause 18,
The gradient field projection is oriented along a set direction in response to the expected orientation of one or more of the line features.
method.
제18항에 있어서,
상기 에지 포인트 추출기는 상기 그래디언트 투영 서브-영역들 각각에서 복수의 그래디언트 크기 최대값들을 찾고,
상기 그래디언트 크기 최대값들은 위치 벡터 및 그래디언트 벡터에 의해 형성되는 상기 복수의 에지 포인트들 중 일부로 각각 식별되는,
방법.
According to clause 18,
The edge point extractor finds a plurality of gradient magnitude maxima in each of the gradient projection sub-regions,
wherein the gradient magnitude maxima are each identified as some of the plurality of edge points formed by a position vector and a gradient vector,
method.
제18항에 있어서,
상기 라인-찾기 프로세스는 라인-파인더를 더 포함하고,
상기 라인-파인더는, 적어도 하나의 후보 라인으로부터 적어도 하나의 에지 포인트의 거리 및 상기 적어도 하나의 에지 포인트의 그래디언트 방향과 상기 적어도 하나의 후보 라인의 정상 방향 사이의 각도 차에 기초하는 미터법을 계산하는 것에 의해, 상기 추출된 복수의 에지 포인트들 중 상기 적어도 하나의 에지 포인트와 상기 찾은 복수의 라인들 중 상기 적어도 하나의 후보 라인 사이의 일관성을 결정하는,
방법.
According to clause 18,
The line-finding process further includes a line-finder,
The line-finder calculates a metric based on the distance of at least one edge point from at least one candidate line and the angular difference between the gradient direction of the at least one edge point and the normal direction of the at least one candidate line. determining consistency between the at least one edge point among the extracted plurality of edge points and the at least one candidate line among the found plurality of lines,
method.
KR1020240056058A 2018-06-06 2024-04-26 System and method for finding and classifying lines in an image with a vision system KR20240058827A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/001,885 US10937168B2 (en) 2015-11-02 2018-06-06 System and method for finding and classifying lines in an image with a vision system
US16/001,885 2018-06-06
KR1020210035310A KR20210032374A (en) 2018-06-06 2021-03-18 System and method for finding and classifying lines in an image with a vision system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210035310A Division KR20210032374A (en) 2018-06-06 2021-03-18 System and method for finding and classifying lines in an image with a vision system

Publications (1)

Publication Number Publication Date
KR20240058827A true KR20240058827A (en) 2024-05-03

Family

ID=68651911

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020190066661A KR20190138755A (en) 2018-06-06 2019-06-05 System and method for finding and classifying lines in an image with a vision system
KR1020210035310A KR20210032374A (en) 2018-06-06 2021-03-18 System and method for finding and classifying lines in an image with a vision system
KR1020240056058A KR20240058827A (en) 2018-06-06 2024-04-26 System and method for finding and classifying lines in an image with a vision system

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020190066661A KR20190138755A (en) 2018-06-06 2019-06-05 System and method for finding and classifying lines in an image with a vision system
KR1020210035310A KR20210032374A (en) 2018-06-06 2021-03-18 System and method for finding and classifying lines in an image with a vision system

Country Status (4)

Country Link
JP (3) JP2019220163A (en)
KR (3) KR20190138755A (en)
CN (1) CN110570439B (en)
DE (1) DE102019115224A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906701B (en) * 2021-02-08 2023-07-14 重庆兆光科技股份有限公司 Fine-granularity image recognition method and system based on multi-attention neural network
CN117409261B (en) * 2023-12-14 2024-02-20 成都数之联科技股份有限公司 Element angle classification method and system based on classification model

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010167B1 (en) * 2002-04-30 2006-03-07 The United States Of America As Represented By The National Security Agency Method of geometric linear discriminant analysis pattern recognition
KR100979811B1 (en) * 2003-08-12 2010-09-02 삼성전자주식회사 Deinterlacing apparatus and method based on horizontal edge pattern
US7400414B2 (en) * 2005-10-31 2008-07-15 Mitutoyo Corporation Hand-size structured-light three-dimensional metrology imaging system and method
US7831098B2 (en) * 2006-11-07 2010-11-09 Recognition Robotics System and method for visual searching of objects using lines
US8237935B2 (en) * 2007-10-23 2012-08-07 Gii Acquisition, Llc Method and system for automatically inspecting parts and for automatically generating calibration data for use in inspecting parts
US8565536B2 (en) * 2010-04-01 2013-10-22 Microsoft Corporation Material recognition from an image
CN102667859B (en) * 2010-09-10 2016-01-20 松下电器(美国)知识产权公司 The pattern recognition device of the general object undertaken by exclusiveness sorter and method
CN102789573A (en) * 2011-05-16 2012-11-21 索尼公司 Target detection equipment and method as well as classifier training equipment and method
US9536178B2 (en) * 2012-06-15 2017-01-03 Vufind, Inc. System and method for structuring a large scale object recognition engine to maximize recognition accuracy and emulate human visual cortex
JP2014092922A (en) * 2012-11-02 2014-05-19 Tottori Univ Detector, detection method, and detection program
JP2014149788A (en) * 2013-02-04 2014-08-21 Nippon Telegr & Teleph Corp <Ntt> Object area boundary estimation device, object area boundary estimation method, and object area boundary estimation program
JP6209069B2 (en) * 2013-11-26 2017-10-04 日本電信電話株式会社 Boundary detection apparatus, boundary detection method, and computer program
US20150199592A1 (en) * 2014-01-14 2015-07-16 Microsoft Corporation Contour-based classification of objects
US9477892B2 (en) * 2014-03-26 2016-10-25 Xerox Corporation Efficient method of offline training a special-type parked vehicle detector for video-based on-street parking occupancy detection systems
JP6629762B2 (en) * 2014-05-23 2020-01-15 ベンタナ メディカル システムズ, インコーポレイテッド Systems and methods for detection of biological structures and / or patterns in images
CN104166843B (en) * 2014-08-08 2017-02-15 西安交通大学 Document image source judgment method based on linear continuity
US9892301B1 (en) * 2015-03-05 2018-02-13 Digimarc Corporation Localization of machine-readable indicia in digital capture systems
CN106157283A (en) * 2015-04-01 2016-11-23 株式会社理光 The detection method of lane segmentation thing and device
CN105260699B (en) * 2015-09-10 2018-06-26 百度在线网络技术(北京)有限公司 A kind of processing method and processing device of lane line data
DE102016120775A1 (en) * 2015-11-02 2017-05-04 Cognex Corporation System and method for detecting lines in an image with a vision system
JP6463593B2 (en) * 2015-11-02 2019-02-06 コグネックス・コーポレイション System and method for detecting lines in a vision system
US10235623B2 (en) * 2016-02-12 2019-03-19 Adobe Inc. Accurate tag relevance prediction for image search

Also Published As

Publication number Publication date
KR20190138755A (en) 2019-12-16
JP2022009474A (en) 2022-01-14
JP2019220163A (en) 2019-12-26
JP7393106B2 (en) 2023-12-06
CN110570439B (en) 2024-05-17
KR20210032374A (en) 2021-03-24
JP2024016287A (en) 2024-02-06
DE102019115224A1 (en) 2019-12-12
CN110570439A (en) 2019-12-13

Similar Documents

Publication Publication Date Title
US11699283B2 (en) System and method for finding and classifying lines in an image with a vision system
US11854173B2 (en) System and method for finding lines in an image with a vision system
KR102649038B1 (en) System and method for finding lines in an image with a vision system
KR20240058827A (en) System and method for finding and classifying lines in an image with a vision system
JP7049983B2 (en) Object recognition device and object recognition method
CN108573471B (en) Image processing apparatus, image processing method, and recording medium
JP2023134688A (en) System and method for detecting and classifying pattern in image with vision system
US20200302135A1 (en) Method and apparatus for localization of one-dimensional barcodes
Mukhopadhyay et al. PCB inspection in the context of smart manufacturing
US20240078801A1 (en) System and method for finding and classifying lines in an image with a vision system
CN115187769A (en) Positioning method and device
US11657489B2 (en) Segmentation of continuous dynamic scans
CN112508925A (en) Electronic lock panel quality detection method, system, computer device and storage medium
Kasar Recognition of Seven-Segment Displays from Images of Digital Energy Meters
CN117788798A (en) Target detection method and device, visual detection system and electronic equipment
Gao et al. Design of an interactive whiteboard system using machine vision
Tuokko 3D tracking of a mobile device

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination