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

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

Info

Publication number
KR102153962B1
KR102153962B1 KR1020160145441A KR20160145441A KR102153962B1 KR 102153962 B1 KR102153962 B1 KR 102153962B1 KR 1020160145441 A KR1020160145441 A KR 1020160145441A KR 20160145441 A KR20160145441 A KR 20160145441A KR 102153962 B1 KR102153962 B1 KR 102153962B1
Authority
KR
South Korea
Prior art keywords
line
gradient
lines
edge points
image
Prior art date
Application number
KR1020160145441A
Other languages
Korean (ko)
Other versions
KR20170051369A (en
Inventor
펑 흐수 유
디. 제이콥슨 로웰
와이. 리 데이비드
Original Assignee
코그넥스코오포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/338,445 external-priority patent/US10152780B2/en
Application filed by 코그넥스코오포레이션 filed Critical 코그넥스코오포레이션
Publication of KR20170051369A publication Critical patent/KR20170051369A/en
Priority to KR1020190049972A priority Critical patent/KR102402906B1/en
Application granted granted Critical
Publication of KR102153962B1 publication Critical patent/KR102153962B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • 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

Abstract

본 발명은 이미지 내에서 다중선 특징을 찾아내기 위한 방법 및 시스템에 관한 것이다.
두 개의 관련된 스텝이 라인 특징을 식별하기 위해 이용된다. 첫번째 프로세스는 각 이미지 위치에서 기울기장(the gradient field)의 x와 y 컴포넌트를 계산하고, 다수의 서브영역을 넘어 기울기장을 프로젝트하고, 위치와 경사를 갖는 다수의 에지포인트를 산출하는 다수의 경사도 극값(a plurality of gradient extrema)을 검출한다. 두 번째 프로세스는 두 개의 에지 포인트를 선택하고, 그것들에 모델라인을 맞추고(fits), 에지포인트 기울기가 모델과 동일하면(consistent), 위치와 기울기가 그 모델과 일치하는 내좌층 포인트의 전체 세트(full set of inlier points)의 를 연산한다.
최대 내좌층 카운트를 갖는 후보 라인이 유지되고 외좌층 포인트(outlier points)를 남기는 세트가 도출된다. 상기 프로세스는 라인 맞춤 동작(the line fitting operation)과 다수의 라인결과를 찾기 위한 이후의 외좌층 세트를 반복적으로 적용한다. 이러한 프로세스는 철저한 RANSAC 기반에서 이루어질 수 있다.
The present invention relates to a method and system for finding multiline features in an image.
Two related steps are used to identify line features. The first process calculates the x and y components of the gradient field at each image location, projects the gradient field over multiple sub-regions, and calculates multiple edge points with locations and slopes. It detects a plurality of gradient extrema. The second process selects two edge points, fits a model line to them, and if the edge point slope is consistent with the model, then the entire set of inner left-floor points whose position and slope match that model ( of the full set of inlier points).
The candidate line with the maximum left-most count is maintained and a set is derived leaving outlier points. The process repeatedly applies the line fitting operation and a subsequent set of outer left layers to find a plurality of line results. This process can be done on a thorough RANSAC basis.

Description

비전 시스템으로 이미지에서 라인을 찾기 위한 시스템 및 방법{SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM}A system and method for finding lines in an image with a vision system {SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM}

관련 출원Related application

본 출원은, 전체 내용이 본 명세서에 병합된, 2015년 11월 2일에 출원된, 발명의 명칭이 "SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM"인 공동-계류 중인 미국 특허 가출원 일련 번호 62/249,918의 이익을 주장한다. This application is a co-pending US provisional application filed on November 2, 2015, the entire contents of which are incorporated herein by reference, entitled "SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM" Claims the interest of serial number 62/249,918.

기술 분야Technical field

본 발명은 머신 비전 시스템에 관한 것으로, 보다 구체적으로 취득된 이미지에서 라인 특징부(line feature)를 발견하는 비전 시스템 도구에 관한 것이다. FIELD OF THE INVENTION [0001] The present invention relates to a machine vision system, and more particularly, to a vision system tool for finding line features in an acquired image.

머신 비전 시스템(본 명세서에서, 단순히 "비전 시스템"이라고도 언급됨)은 제조, 물류, 및 산업계에서 여러 작업에 사용된다. 이러한 작업은 표면과 부분의 검사, 조립 동안 물체의 정렬, 패턴과 ID 코드의 판독, 및 추가적인 프로세스에 사용하기 위해 시각적 데이터가 취득되고 해석되는 임의의 다른 동작을 포함할 수 있다. 비전 시스템은 일반적으로 관심 물체 또는 관심 대상을 포함하는 장면 이미지를 취득하는 하나 이상의 카메라를 사용한다. 이 물체/대상은 고정되어 있거나 또는 상대적으로 움직일 수 있다. 움직임은 로봇에 의해 부분들을 조작하는 경우와 같이 비전 시스템에 의해 유도된 정보에 의해 제어될 수도 있다. Machine vision systems (also referred to herein simply as “vision systems”) are used in manufacturing, logistics, and many operations in industry. Such operations may include inspection of surfaces and parts, alignment of objects during assembly, reading patterns and ID codes, and any other operations in which visual data is acquired and interpreted for use in further processes. Vision systems generally use one or more cameras to acquire an object of interest or a scene image that includes an object of interest. This object/object can be either stationary or relatively movable. Movement may also be controlled by information guided by the vision system, such as when manipulating parts by a robot.

비전 시스템의 공통 작업은 이미지에서 라인 특징부를 발견하고 특성화하는 것이다. 이러한 라인 특징부를 식별하고 분석하는데 여러 도구가 사용된다. 일반적으로, 이 도구는 이미지의 일부분에서 일어나는 급격한 콘트라스트(sharp contrast) 차이에 의존한다. 예를 들어 캘리퍼 도구를 사용하여 이 콘트라스트 차이를 분석하여, 콘트라스트 차이를 갖는 이미지 내 개별 점들이 라인-같은 특징부로 조립될 수 있는지 여부를 결정한다. 만약 조립될 수 있다면, 이미지에서 라인이 식별된다. 특히, 에지점(edge point)들을 발견하는 도구와, 라인을 점들에 맞추는(fit) 시도를 하는 도구는 서로 독립적이다. 이것은 처리 오버헤드를 증가시키고 신뢰성을 감소시킨다. 이미지가 다수의 라인을 포함하는 경우, 이들 도구는 이 라인을 정확히 식별하는 능력이 제한될 수 있다. 나아가, 이미지에서 단일 라인을 발견하도록 설계된 전통적인 라인-발견 도구는, 이미지가 유사한 배향과 극성을 갖는 다수의 근접 이격된 라인들을 포함할 때, 사용하는데 문제가 있을 수 있다. A common task of vision systems is to find and characterize line features in images. Several tools are used to identify and analyze these line features. In general, this tool relies on sharp contrast differences occurring in parts of the image. Analyze this contrast difference using, for example, a caliper tool to determine whether individual points in the image with contrast differences can be assembled into line-like features. If it can be assembled, lines are identified in the image. In particular, a tool that detects edge points and a tool that attempts to fit a line to the points are independent of each other. This increases processing overhead and reduces reliability. If the image contains multiple lines, these tools may have limited ability to accurately identify these lines. Furthermore, traditional line-finding tools designed to find a single line in an image can be problematic to use when the image contains multiple closely spaced lines of similar orientation and polarity.

본 발명은, 다수의 라인을 효율적이고 정확히 식별하고 특성화할 수 있는, 이미지에서 라인 특징부를 발견하는 시스템 및 방법을 제공하는 것에 의해 종래 기술의 단점을 극복한다. 먼저, 프로세스는, 이미지의 각 위치에서 구배장(gradient field)의 x 성분과 y-성분을 연산하고, 복수의 이미지 서브구역(subregion)에 걸쳐 상기 구배장을 사영(project)하고, 각 서브구역 내에 복수의 구배 극단값(gradient extrema)을 검출하여, 연관된 위치와 구배를 갖는 복수의 에지점을 산출한다. 다음으로, 상기 프로세스는 2개의 에지점을 반복적으로 선택하고, 모델 라인을 이들 에지점에 맞추고, 만약 이들 에지점의 구배들이 상기 모델 라인과 일치(consistent)하는 경우, 상기 모델 라인과 일치하는 위치와 구배를 갖는 정상치 점(inlier point)들의 전체 세트를 연산한다. 최대 정상치 카운트를 갖는 후보 라인은 라인 결과로 유지(retained)되고, 나머지 이상치 점(outlier point)들의 세트가 유도된다. 상기 프로세스는 이 이상치 세트와 후속 이상치 세트에 라인 맞춤 동작을 반복적으로 적용하여 복수의 라인 결과를 발견한다. 라인-맞춤 프로세스는 전체에 걸쳐 다 수행되거나, 또는 RANSAC(random sample consensus) 기술에 기초할 수 있다. The present invention overcomes the drawbacks of the prior art by providing a system and method for finding line features in an image that can efficiently and accurately identify and characterize multiple lines. First, the process calculates the x- and y-components of the gradient field at each position of the image, projects the gradient field over a plurality of image subregions, and each subregion By detecting a plurality of gradient extremas within, a plurality of edge points having associated positions and gradients are calculated. Next, the process iteratively selects two edge points, fits the model line to these edge points, and if the gradients of these edge points are consistent with the model line, the position coincides with the model line. Compute the entire set of inlier points with gradients and. The candidate line with the maximum normal count is retained as the line result, and a set of remaining outlier points is derived. The process finds a plurality of line results by repeatedly applying a line fitting operation to this set of outliers and subsequent sets of outliers. The line-to-fit process may be performed entirely or may be based on random sample consensus (RANSAC) techniques.

예시적인 실시예에서, 취득된 이미지에서 라인 특징부를 발견하는 시스템이 제공된다. 비전 시스템 프로세서는 라인 특징부를 포함하는 장면의 이미지 데이터를 수신한다. 에지점 추출기는 상기 이미지 데이터로부터 세기 구배 이미지(intensity gradient image)들을 생성하고, 상기 세기 구배 이미지들에 기초하여 에지점들을 발견한다. 라인-파인더(line-finder)는 상기 에지점들에서 세기 구배에 기초하여 상기 에지점들을 하나 이상의 라인에 맞춘다. 예시적으로, 상기 라인 파인더는, 이전에 한정된 라인에 대해 이상치 에지점들로부터 라인들을 반복적으로 한정하는 것을 포함하여, 정상치 에지점들을 새로운 라인들에 맞추는 RANSAC-기반 프로세스를 동작시킨다. 상기 에지점 추출기는 상기 세기 구배 이미지들의 라인-특징부를-포함하는 구역들의 구배장 사영(gradient field projection)을 수행한다. 예시적으로 상기 구배장 사영은 하나 이상의 또는 상기 라인 특징부들의 예상된 배향에 응답하여 설정된 방향을 따라 배향되고, 상기 구배장 사영은 가우시안 커널(Gaussian kernel)에 기초하여 입도(granularity)를 한정할 수 있다. 예시적으로, 상기 이미지 데이터는, 복수의 카메라로부터 취득되고 공통 좌표 공간으로 변환된 복수의 이미지로부터 데이터를 포함할 수 있다. 상기 이미지 데이터는 또한 1D 가우시안 커널 또는 다른 가중 함수(weighting function)를 포함할 수 있는 평활화(smoothing) (가중) 커널을 사용하여 평활화될 수 있다. 상기 에지점들은, 절대 콘트라스트(absolute contrast)에 의해 한정된 임계값과, 상기 이미지 데이터의 평균 세기에 기초하여 정규화된 콘트라스트(normalized contrast)에 기초하여 선택될 수 있다. 예시적으로, 상기 라인 파인더는, 에러 있는 배향을 정정(correct)하기 위해 평행한 라인들 또는 교차하는 라인들의 일부분을 나타내는 에지점들을 교환하거나, 및/또는 상기 에지점들의 구배 값들에 기초하여 라인 특징부들의 혼합된 극성을 포함하는, 극성 변동(polarity variation)을 갖는 라인을 식별하도록 구성되고 배열된다. 또한, 예시적으로, 상기 에지점 추출기는 상기 구배 사영 서브-구역들 각각에서 복수의 구배 크기 최대값을 발견하도록 배열된다. 이들 구배 크기 최대값은 각각 상기 복수의 에지점들 중 일부로 식별될 수 있고, 위치 벡터와 구배 벡터에 의해 설명될 수 있다. 추가적으로, 상기 라인 파인더는 메트릭(metric)을 연산하는 것에 의해 상기 추출된 복수의 에지점들 중 적어도 하나의 에지점과 상기 발견된 복수의 라인들 중 적어도 하나의 후보 라인 사이에 일치도(consistency)를 결정하도록 배열될 수 있다. 이 메트릭은, 상기 후보 라인으로부터 상기 적어도 하나의 에지점의 거리, 및 상기 에지점의 구배 방향과 상기 후보 라인의 법선 방향 사이의 각도 차이에 기초할 수 있다. In an exemplary embodiment, a system for finding line features in an acquired image is provided. The vision system processor receives image data of the scene including line features. An edge point extractor generates intensity gradient images from the image data and finds edge points based on the intensity gradient images. A line-finder fits the edge points to one or more lines based on an intensity gradient at the edge points. Illustratively, the line finder operates a RANSAC-based process of fitting normal edge points to new lines, including repetitively defining lines from outlier edge points for a previously defined line. The edge point extractor performs gradient field projection of regions including line-feature portions of the intensity gradient images. Illustratively, the gradient field projection is oriented along a direction set in response to one or more or expected orientations of the line features, and the gradient field projection will define a granularity based on a Gaussian kernel. I can. For example, the image data may include data from a plurality of images acquired from a plurality of cameras and converted into a common coordinate space. The image data may also be smoothed using a 1D Gaussian kernel or a smoothing (weighting) kernel, which may include other weighting functions. The edge points may be selected based on a threshold value defined by an absolute contrast and a normalized contrast based on an average intensity of the image data. Exemplarily, the line finder exchanges edge points representing portions of parallel lines or intersecting lines to correct an erroneous orientation, and/or a line based on the gradient values of the edge points. Constructed and arranged to identify lines with polarity variation, including mixed polarities of the features. Also, by way of example, the edge point extractor is arranged to find a plurality of gradient magnitude maxima in each of the gradient projection sub-zones. Each of these gradient magnitude maximum values can be identified as some of the plurality of edge points, and can be described by a position vector and a gradient vector. Additionally, the line finder calculates a consistency between at least one edge point among the plurality of extracted edge points and at least one candidate line among the plurality of found lines by calculating a metric. Can be arranged to determine. This metric may be based on a distance of the at least one edge point from the candidate line, and an angle difference between a gradient direction of the edge point and a normal direction of the candidate line.

본 발명의 아래 설명은 첨부 도면을 참조한다.
도 1은 예시적인 실시예에 따른 에지-발견 도구/모듈을 포함하는 다수의 에지 특징부와 비전 시스템 프로세서를 포함하는, 물체의 이미지를 취득하는 예시적인 비전 시스템 배열을 도시하는 도면;
도 2는 예시적인 실시예에 따라, 취득된 이미지로부터 에지점을 추출하고 라인을 발견하는 시스템 및 방법의 개요를 도시하는 도면;
도 3은 도 2의 시스템 및 방법에 따라 에지점을 추출하는 절차의 흐름도;
도 4는 도 3의 에지점을 추출하는 절차의 일부인 에지 특징부들을 포함하는 이미지의 구역에 구배장 사영을 도시하는 도면;
도 5는 도 3의 에지점을 추출하는 절차에 사용하기 위해, 이미지를 평활화하기 위해 이미지에 가우시안 커널을 적용하는 것을 도시하는 도면;
도 6은 도 3의 에지점을 추출하는 절차에 사용하기 위해, 사영을 평활화하기 위해 가우시안 커널을 적용하는 것을 포함하는 구배장 사영을 도시하는 도면;
도 7은 가우시안 커널들을 적용하고, 에지점들에 대해 절대 콘트라스트 임계값과 정규화된 콘트라스트 임계값을 계산하는 것을 포함하는, 도 3의 에지점을 추출하는 절차의 개요를 그래프로 도시하는 도면;
도 8은 충분한 절대 콘트라스트 임계값과 정규화된 콘트라스트 임계값을 구비하는, 에지점들에 대한 자격 있는 콘트라스트(qualified contrast)들의 구역을 도시하는 그래프;
도 9는 예시적인 실시예에 따라 예시적인 RANSAC 프로세스를 사용하여 도 3에서 발견된 에지점들에 기초하여 라인을 발견하는 절차의 흐름도;
도 10 및 도 11은 근접 이격된 평행한 라인 특징부들에 대해 에지점들이 에러 있게 정렬된 것과 올바르게 정렬된 것을 각각 도시하는 도면;
도 12 및 도 13은 예시적인 시스템 및 방법의 라인-파인더에 따라 분석될 수 있는 교차 라인 특징부들에 대해 에지점들이 올바르게 정렬된 것과 에러 있게 정렬된 것을 각각 도시하는 도면;
도 14 내지 도 17은 예시적인 시스템 및 방법의 라인-파인더에 따라 분석될 수 있는 밝은에서-어두운으로의 극성(light-to-dark polarity), 어두운에서-밝은으로의-극성(dark-to-light polarity), 밝은에서-어두운으로의 극성 또는 어두운에서-밝은으로의 극성 중 어느 하나의 극성, 또는 이들이 혼합된 극성을 나타내는 라인의 예를 각각 도시하는 도면; 및
도 18은 사용자-한정된 마스크를 고려하여 발견된 라인에 대해 커버리지 스코어(coverage score)의 변경을 도시하는 도면.
The following description of the present invention refers to the accompanying drawings.
1 is a diagram illustrating an exemplary vision system arrangement for acquiring an image of an object, including a vision system processor and a plurality of edge features including an edge-discovery tool/module in accordance with an exemplary embodiment;
Fig. 2 is a diagram showing an overview of a system and method for extracting an edge point and finding a line from an acquired image, according to an exemplary embodiment;
3 is a flowchart of a procedure for extracting an edge point according to the system and method of FIG. 2;
FIG. 4 is a diagram showing a gradient field projection in a region of an image including edge features that are part of the procedure for extracting an edge point of FIG. 3;
FIG. 5 is a diagram illustrating applying a Gaussian kernel to an image to smooth the image for use in the procedure of extracting the edge point of FIG. 3;
6 is a diagram illustrating a gradient field projection including applying a Gaussian kernel to smooth the projection, for use in the procedure of extracting the edge point of FIG. 3;
Fig. 7 is a graph showing an overview of the procedure for extracting the edge point of Fig. 3, including applying Gaussian kernels and calculating an absolute contrast threshold and a normalized contrast threshold for the edge points;
8 is a graph showing a region of qualified contrasts for edge points with a sufficient absolute contrast threshold and a normalized contrast threshold;
9 is a flow diagram of a procedure for finding a line based on edge points found in FIG. 3 using an exemplary RANSAC process according to an exemplary embodiment;
Figures 10 and 11 show edge points erroneously and correctly aligned for closely spaced parallel line features, respectively;
12 and 13 are diagrams showing correct and erroneous alignment of edge points, respectively, for cross-line features that may be analyzed according to the line-finder of an exemplary system and method;
14-17 show light-to-dark polarity, dark-to-brightness, which can be analyzed according to the line-finder of exemplary systems and methods. light polarity), light to dark polarity or dark to light polarity; And
18 is a diagram showing a change in coverage score for a line found taking into account a user-defined mask.

예시적인 실시예에 따라 사용될 수 있는 예시적인 비전 시스템 배열(100)이 도 1에 도시된다. 시스템(100)은 적어도 하나의 비전 시스템 카메라(110)를 포함하고, 하나 이상의 추가적인 선택적인 카메라(112)(점선으로 도시)를 포함할 수 있다. 예시적인 카메라(들)(110, 112)는, 이미지 프레임을 취득하고 이 이미지 프레임을 비전 시스템 프로세스(프로세서)(130)에 전송하는 이미지 센서(또는 이미저)(S) 및 연관된 전자성분(electronics)을 포함하고, 이 이미지 프레임은 독립 프로세서 및/또는 연산 디바이스(140)에서 인스턴스화(instantiated)될 수 있다. 카메라(110)(및 112)는 검사 받는 물체(150)를 포함하는 장면에 집중(focus)하는 적절한 렌즈/광학기기(116)를 포함한다. 카메라(110)(및 112)는 이미지 취득 프로세스에 따라 동작하는 내부 및/또는 외부 조명기(미도시)를 포함할 수 있다. 연산 디바이스(140)는 예시적인 실시예에 따라 이미지 데이터를 저장하고 조작할 수 있는 임의의 허용가능한 프로세서-기반 시스템일 수 있다. 예를 들어, 연산 디바이스(140)는 (도시된) PC, 서버, 랩탑, 태블릿, 스마트폰 또는 다른 유사한 디바이스를 포함할 수 있다. 연산 디바이스(140)는 카메라에 상호 연결된 버스-기반 이미지 캡처 카드와 같은 적절한 주변기기를 포함할 수 있다. 대안적인 실시예에서, 비전 프로세서는 카메라 몸체 그 자체 내에 부분적으로 또는 완전히 포함될 수 있고, 이미지 데이터를 공유하고 처리하는 다른 PC, 서버 및/또는 카메라-기반 프로세서와 네트워크로 연결될 수 있다. 연산 디바이스(140)는, 비전 시스템 프로세스(프로세서)(130)에 제공된 비전 시스템 도구와 프로세서(132)에 따라 동작할 수 있는 적절한 그래픽 사용자 인터페이스(GUI)를 지원할 수 있는 적절한 디스플레이(142)를 선택적으로 포함할 수 있다. 디스플레이는 여러 실시예에서 생략되거나 및/또는 셋업 기능과 서비스 기능만을 위해 제공될 수 있는 것으로 이해된다. 비전 시스템 도구는 매사추세츠(MA)주, 나틱(Natick)에 소재하는 코그넥스사(Cognex Corporation)로부터 상업적으로 구입가능한 것과 같은, 물체를 검사하는데 사용하기 위해 허용가능한, 임의의 허용가능한 소프트웨어 및/또는 하드웨어 패키지의 일부일 수 있다. 연산 디바이스는, 예를 들어, 키보드(144)와 마우스(146), 및 디스플레이(142) 내 터치스크린을 포함하는 연관된 사용자 인터페이스(UI) 성분을 포함할 수도 있다. An exemplary vision system arrangement 100 that may be used in accordance with an exemplary embodiment 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 dotted lines). Exemplary camera(s) 110, 112 include an image sensor (or imager) S and associated electronics that acquire an image frame and transmit the image frame to a vision system process (processor) 130. ), and this image frame may be instantiated in an independent processor and/or computing device 140. The camera 110 (and 112) includes a suitable lens/optical device 116 that focuses on the scene containing the object 150 being inspected. 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 in accordance with an exemplary embodiment. For example, computing device 140 may include a PC, server, laptop, tablet, smartphone, or other similar device (shown). Computing device 140 may include suitable peripherals such as a bus-based image capture card interconnected to the camera. In an alternative embodiment, the vision processor may be partially or completely contained within the camera body itself, and may be networked with other PCs, servers and/or camera-based processors that share and process image data. The computing device 140 selectively selects a suitable display 142 capable of supporting a suitable graphical user interface (GUI) capable of operating in accordance with the vision system tools and processor 132 provided to the vision system process (processor) 130. Can be included as. It is understood that the display may be omitted in various embodiments and/or provided only for setup and service functions. The vision system tool is any acceptable software and/or acceptable for use in inspecting objects, such as those commercially available from Cognex Corporation of Natick, Massachusetts (MA). May be part of a hardware package. The computing device may include, for example, a keyboard 144 and a mouse 146, and associated user interface (UI) components including a touchscreen in the display 142.

카메라(들)(110)(및 112)는 장면 내에 위치된 물체(150)의 일부 또는 전부를 이미징한다. 각 카메라는 광축(OA)을 한정하고, 이 광축 주위로 광학기기(116), 초점 거리, 등에 기초하여 시야(field of view)가 수립된다. 물체(150)는 여러 방향으로 각각 배열된 복수의 에지(152, 154 및 156)를 포함한다. 예를 들어, 물체 에지들은 스마트폰 몸체 내에 장착된 커버 유리의 에지를 포함할 수 있다. 예시적으로, 카메라(들)는 전체 물체 또는 특정 위치(예를 들어 유리가 몸체와 만나는 코너)를 이미징할 수 있다. (공통) 좌표 공간이 물체, 카메라들 중 하나의 카메라, 또는 다른 기준점(예를 들어 물체(150)를 지지하는 이동 스테이지)에 대해 수립될 수 있다. 도시된 바와 같이, 좌표 공간은 축(158)들로 표현된다. 이 축들은 예시적으로 직교하는 x 축, y 축 및 z 축과, x-y 평면에서 z 축 주위로 회전(θz)을 한정한다. Camera(s) 110 (and 112) images some or all of the object 150 positioned within the scene. Each camera defines an optical axis OA, and a field of view is established around the optical axis based on the optics 116, focal length, and the like. The object 150 includes a plurality of edges 152, 154, and 156, each arranged in various directions. For example, the object edges may include the edge of the cover glass mounted within the smartphone body. Illustratively, the camera(s) may image an entire object or a specific location (eg, a corner where the glass meets the body). A (common) coordinate space may be established for an object, a camera of one of the cameras, or another reference point (eg, a moving stage supporting the object 150). As shown, the coordinate space is represented by axes 158. These axes exemplarily define an orthogonal x-axis, y-axis, and z-axis, and a rotation θ z about the z-axis in the xy plane.

예시적인 실시예에 따라, 비전 시스템 프로세스(130)는 비전 시스템 도구/프로세스(132)의 세트를 집합적으로 포함하는 (연산 디바이스(140)에서 실행되는) 하나 이상의 애플리케이션(application)/프로세스와 상호 동작한다. 이들 도구는 이미지 데이터를 분석하는데 사용되는 여러 종래의 전문화된 애플리케이션을 포함할 수 있고 - 예를 들어 여러 교정 도구(calibration tool)와 아핀 변환 도구(affine transform tool)를 사용하여, 취득된 이미지 데이터를 미리 결정된 (예를 들어 공통) 좌표 시스템으로 변환할 수 있다. 이미지 그레이스케일 세기 데이터를 미리 결정된 임계값에 기초하여 바이너리(binary) 이미지로 변환하는 도구들이 포함될 수도 있다. 또한, 인접한 이미지 픽셀(및 서브픽셀)들 사이에 세기(콘트라스트)의 구배를 분석하는 도구들이 제공될 수 있다. According to an exemplary embodiment, the vision system process 130 is interoperable with one or more applications/processes (running on the computing device 140) collectively comprising a set of vision system tools/processes 132. It works. These tools can include several conventional specialized applications used to analyze image data-for example, using several calibration tools and affine transform tools to convert the acquired image data. It can be converted to a predetermined (eg common) coordinate system. Tools for converting image grayscale intensity data into a binary image based on a predetermined threshold may be included. In addition, tools for analyzing the gradient of intensity (contrast) between adjacent image pixels (and subpixels) may be provided.

비전 시스템 프로세스(프로세서)(130)는 예시적인 실시예에 따라 취득된 이미지에서 다수의 라인을 찾는 라인-발견 프로세스, 도구 또는 모듈(134)을 포함한다. 도 2를 참조하면, 도 2는 예시적인 실시예에 따른 라인-발견 절차(200)의 개요를 그래프로 도시한다. 이 절차(200)는 2개의 주요 부분으로 구성된다. 입력 이미지(210)는 프로세서에 제공된다. 도시된 바와 같이, 이 이미지는 한 쌍의 교차하는 에지(212 및 214)들을 포함한다. 이들 교차하는 에지는 전술된 물체(150)의 코너 구역을 나타낼 수 있다. 에지점 추출기(220)는 입력 이미지(210)를 처리하여, 에지(212 및 214)를 따라 각각 존재하는 에지점(232 및 234)들을 포함하는 후보 에지점들의 세트(230)를 획득한다. 에지점(232, 234)들과 그 연관된 데이터(예를 들어 아래에 설명된 세기 구배 정보)는 재귀적 라인 파인더(recursive line finder)(240)에 제공되고, 이 라인 파인더는 선택된 에지점들에 일련의 반복 프로세스(iterative process)를 수행한다. 반복 프로세스의 목표는 다른 발견된 에지점들을 후보 라인 특징부들에 맞추는 시도를 하는 것이다. 라인-발견 프로세스(240)를 수행한 결과, 도시된 바와 같이 라인(252)과 라인(254)이 발견된다. 이들 결과는 정보를 사용하는 다른 다운스트림 프로세스(260) - 예를 들어 정렬 프로세스, 로봇 조작, 검사, ID 판독, 부분/표면 검사 등에 제공될 수 있다. The vision system process (processor) 130 includes a line-discovery process, tool, or module 134 that finds multiple lines in an acquired image according to an exemplary embodiment. Referring to Fig. 2, Fig. 2 graphically shows an overview of a line-discovery procedure 200 according to an exemplary embodiment. This procedure 200 consists of two main parts. The input image 210 is provided to the processor. As shown, this image includes a pair of intersecting edges 212 and 214. These intersecting edges may represent the corner regions of the object 150 described above. The edge point extractor 220 processes the input image 210 to obtain a set of candidate edge points 230 including edge points 232 and 234 that exist along edges 212 and 214, respectively. Edge points 232 and 234 and their associated data (e.g., intensity gradient information described below) are provided to a recursive line finder 240, which line finder at the selected edge points. It performs a series of iterative processes. The goal of the iterative process is to try to fit other found edge points to candidate line features. As a result of performing the line-discovery process 240, lines 252 and 254 are found as shown. These results may be provided to other downstream processes 260 using the information-for example alignment processes, robotic manipulation, inspection, ID reading, partial/surface inspection, and the like.

도 3을 참조하면, 도 3은 일 실시예에 따라 에지점들을 추출하는 절차를 설명한다. 장면에서 발견될 에지 특징부를 가지는 물체 또는 표면을 포함하는 하나 이상의 이미지가 취득된다(단계 310). 이 이미지(들)는 단일 카메라 또는 복수의 카메라에 의해 추출될 수 있다. 어느 경우이든, 이미지 픽셀들은 단계(320)에서 적절한 교정 파라미터에 의해 새로운 좌표 공간 및/또는 공통 좌표 공간으로 (선택적으로) 변환될 수 있다. 이 단계는 아래에 설명된 바와 같이 이미지를 평활화하는 것을 더 포함할 수 있다. 특정 실시예에서, 복수의 카메라가 장면의 불연속적인 구역을 이미징하는 경우 - 예를 들어 더 큰 물체의 코너 구역에 집중하는 경우 - , 공통 좌표 공간은 카메라의 시야들 사이에 빈 구역(empty region)을 고려할 수 있다. 아래에 설명된 바와 같이, 이러한 시야들 사이에 연장되는 라인들(예를 들어 2개의 발견된 코너 구역들을 연결하는 물체 에지)이 예시적인 실시예의 시스템 및 방법에 의해 외삽될 수 있다. 라인들을 발견하는데 요구되는 에지점들이 단계(330)에서 구배장 사영을 사용하여 에지점 추출기에 의해 적절한 좌표 공간에서 이미지(들)로부터 추출된다. 먼저 각 픽셀에 대해 구배 값들이 연산되어, x 및 y 구배 성분에 대한 2개의 이미지가 생성된다. 이 이미지(들)는 많은 캘리퍼-같은 구역들에 걸쳐 구배장을 사영하는 것에 의해 더 처리된다. 세기 값을 사영하는 종래의 캘리퍼 도구와는 달리, 이 실시예에 따른 구배장을 사영하는 것에 의해, 구배 배향이 보존될 수 있고, 이는 아래에 설명된 바와 같이 후속 라인을-발견하는 프로세스를 촉진한다. Referring to FIG. 3, FIG. 3 describes a procedure of extracting edge points according to an embodiment. One or more images comprising an object or surface having edge features to be found in the scene are acquired (step 310). These image(s) can be extracted by a single camera or multiple cameras. In either case, the image pixels may (optionally) be transformed into a new coordinate space and/or a common coordinate space in step 320 with appropriate calibration parameters. This step may further include smoothing the image as described below. In certain embodiments, when multiple cameras are imaging discrete areas of the scene-e.g. focusing on a corner area of a larger object-the common coordinate space is an empty region between the camera's fields of view. Can be considered. As described below, lines extending between these fields of view (eg, an object edge connecting two found corner regions) can be extrapolated by the system and method of the exemplary embodiment. The edge points required to find the lines are extracted from the image(s) in the appropriate coordinate space by the edge point extractor in step 330 using gradient field projection. First, the gradient values are calculated for each pixel, resulting in two images for the x and y gradient components. This image(s) is further processed by projecting the gradient field over many caliper-like areas. Unlike conventional caliper tools that project intensity values, by projecting the gradient field according to this embodiment, the gradient orientation can be preserved, which facilitates the process of finding subsequent lines as described below. do.

단계(340)에서 또한 도 4의 도면을 참조하면, 후보 에지 특징부를 포함하는 이미지의 부분(캘리퍼-같은 구역)(400)은 (복수의 사영(410, 420, 430)으로 표현된) 구배장 사영을 받고, 검색 방향(화살표 SD)으로 에지들의 (대략) 예상된 배향에 걸쳐 검색되는데, 이 사영은 직교 사영 방향(화살표 PD)으로 구역(400)에 걸쳐 반복된다. 각 사영(예를 들어 사영(420))에서 에지들은 이 사영과 연관된 구배장(440)에서 국부적인 최대값으로 보인다. 일반적으로, 에지와 연관된 사영에서 일련의 에지점들은 이 에지의 연장 방향과 직교하는 세기 구배(벡터(552, 554))를 나타낸다. 아래에 설명된 바와 같이, 사용자는 예상된 라인 배향에 기초하여 사영 방향을 한정할 수 있다. 대안적으로, 이것은 디폴트에 의해 또는 다른 메커니즘에 의해 - 예를 들어 이미지 내 특징부를 분석하는 것에 의해 제공될 수 있다. Referring also to the diagram of FIG. 4 at step 340, the portion of the image (caliper-like area) 400 containing the candidate edge features is the gradient field (represented by multiple projections 410, 420, 430). Projected and searched over the (approximately) expected orientation of the edges in the search direction (arrow SD), which projection is repeated over the region 400 in the orthogonal projection direction (arrow PD). The edges in each projection (eg projection 420) appear to be local maximums in the gradient field 440 associated with this projection. In general, a series of edge points in a projection associated with an edge represent an intensity gradient (vectors 552, 554) orthogonal to the direction of extension of this edge. As described below, the user can define the projection direction based on the expected line orientation. Alternatively, this could be provided by default or by another mechanism-for example by analyzing features in the image.

2개의 입도 파라미터가 전술된 구배 사영 단계에 수반된다. 구배장을 계산하기 전에, 사용자는 등방성 가우시안 커널을 사용하여 이미지를 평활화하도록 선택할 수 있다. 제1 입도는 이 가우시안 평활화 커널의 사이즈를 결정한다. 도 5의 다이아그램(500)에 도시된 바와 같이, 적절히 사이즈의 가우시안 커널(예를 들어 대형(512), 중형(514), 소형(516))을 적용하여 이미지(210)를 평활화한다. 그리하여, 제1 입도 파라미터는, 구배장을 계산하기 전에, 등방성 가우시안 평활화 커널의 사이즈를 결정한다. Two granularity parameters are involved in the gradient projection step described above. Before calculating the gradient field, the user can choose to smooth the image using an isotropic Gaussian kernel. The first particle size determines the size of this Gaussian smoothing kernel. As shown in the diagram 500 of FIG. 5, the image 210 is smoothed by applying an appropriately sized Gaussian kernel (eg, large 512, medium 514, small 516). Thus, the first particle size parameter determines the size of the isotropic Gaussian smoothing kernel before calculating the gradient field.

구배장을 계산한 후, 종래의 캘리퍼 도구에서 수행되는 균일한 가중이 아니라 가우시안-가중된 사영이 이 프로세스에 의해 수행된다. 따라서, 제2 입도 파라미터는, 구역(600)이 가우시안-평활화된 커널(610, 620, 630)을 받은 도 6에 도시된 바와 같이, 구배장 사영 동안 사용되는 1차원(1D) 가우시안 커널의 사이즈를 결정한다. 일반적인 동작 동안, 사용자는 이미지에 오버레이된 모든 추출된 에지들을 (GUI를 사용하여) 검증하고 나서, 이미지의 배경 잡음으로 인한 과도한 개수의 에지를 회피하면서, 발견될 라인을 따라 추출된 에지의 개수가 만족스럽게 보일 때까지, 입도 및 콘트라스트 임계값을 조절한다. 다시 말해, 이 단계에 의해 신호-대-잡음 비가 이미지 특성에 대해 최적화될 수 있다. 이 조절은 여러 실시예에서 디폴트 값을 사용하여 시스템에 의해 자동적으로 수행될 수도 있다. 가우시안 가중 함수를 사용하는 것은 (예를 들어) 균일한 가중을 하는 것을 포함하여 사영을 가중시키는 여러 접근법들 중 하나의 접근법인 것으로 이해된다. After calculating the gradient field, a Gaussian-weighted projection rather than the uniform weighting performed in a conventional caliper tool is performed by this process. Thus, the second granularity parameter is the size of the one-dimensional (1D) Gaussian kernel used during gradient field projection, as shown in FIG. 6 in which the region 600 received Gaussian-smoothed kernels 610, 620, 630 Decide. During normal operation, the user verifies (using the GUI) all the extracted edges overlaid on the image, and then the number of edges extracted along the line to be found is reduced, avoiding an excessive number of edges due to background noise in the image. Adjust the granularity and contrast thresholds until they look satisfactory. In other words, this step allows the signal-to-noise ratio to be optimized for image characteristics. This adjustment may be performed automatically by the system using default values in various embodiments. Using a Gaussian weighting function is understood to be one of several approaches to weighting projections, including (for example) uniform weighting.

구배장을 추출하고 사영하는 전체적인 흐름은 도 7의 다이아그램(700)에서 그래프로 도시된다. 2개의 입도 파라미터, 즉 등방성 가우시안 커널(710)과 1D 가우시안 커널(720)은 전체 다이아그램(700)의 각 절반에 각각 도시된다. 도시된 바와 같이, 각 취득된 이미지(210)는 평활화 및 데시메이션(decimation)(730)을 받는다. 그 결과로 생긴 이미지(740)는 전술된 바와 같이 구배장 계산(750)을 받아서, 2개의 구배 이미지(752 및 754)들이 생성된다. 이들 구배 이미지는 또한 공통 좌표 공간에서 2개의 직교 축을 나타내는 gx와 gy로 표현된다. 2개의 구배 이미지에 더하여, 처리된 세기 정보는 또한 일 실시예 - 아래에 설명된 실시예에 따라 정규화된 콘트라스트를 계산하는데 사용되기 때문에, 세기 이미지(756)는 또한 일반적으로 (1D 가우시안 커널(720)에 기초하여 가우시안-가중된 사영(770)을 사용하여) 평활화, 데시메이션 및 사영 프로세스(760)를 받는 것으로 이해된다. 그 결과 구배 이미지(772)(gx), 이미지(774)(gy), 및 세기 이미지(776)의 사영 프로파일이 생성된다. The overall flow of extracting and projecting the gradient field is shown graphically in the diagram 700 of FIG. 7. Two granularity parameters, i.e., isotropic Gaussian kernel 710 and 1D Gaussian kernel 720 are shown in each half of the whole diagram 700, respectively. As shown, each acquired image 210 is subjected to smoothing and decimation (730). The resulting image 740 is subjected to a gradient field calculation 750 as described above, and two gradient images 752 and 754 are generated. These gradient images are also represented by g x and g y representing the two orthogonal axes in a common coordinate space. In addition to the two gradient images, the processed intensity information is also used to calculate the normalized contrast according to one embodiment-the embodiment described below, so the intensity image 756 is also generally (1D Gaussian kernel 720 ) Based on a Gaussian-weighted projection 770), which is understood to be subjected to a smoothing, decimation, and projection process 760. As a result, a projection profile of the gradient image 772 (g x ), image 774 (g y ), and intensity image 776 is generated.

또한 절차(300)(도 3)에서 단계(350)를 참조하면, x 및 y 구배 이미지들의 1D 사영 프로파일들을 결합하는 것에 의해 자격 있는 에지점(qualified edge point)들이 추출된다. 이것은 세기 이미지에 기초하여 원시(raw) 콘트라스트를 계산하는 것(780)과 정규화된 콘트라스트를 계산하는 것(790)을 사용하여 달성된다. 보다 구체적으로, 각 임계값을 초과하는 원시 사영된 구배 크기와 정규화된 사영된 구배 크기를 갖는 임의의 국부적인 피크는 다음 예시적인 수식에 따라 후속 라인을 발견하기 위한 후보 에지점으로 고려된다: Also referring to step 350 in procedure 300 (FIG. 3), qualified edge points are extracted by combining the 1D projection profiles of x and y gradient images. This is achieved using calculating raw contrast based on the intensity image 780 and calculating normalized contrast 790. More specifically, any localized peak with the original projected gradient size and normalized projected gradient size exceeding each threshold value is considered as a candidate edge point for finding a subsequent line according to the following exemplary equation:

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

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

여기서 gx 및 gy는, 각각, 픽셀 위치에서 x-구배와 y-구배 사영의 값이고, I는 세기이고, TABS는 원시 사영된 구배 크기에 대한 절대 콘트라스트 임계값이고, TNORM은 세기-정규화된 사영된 구배 크기에 대한 정규화된 콘트라스트 임계값이다. Where g x and g y are, respectively, the values of the x- and y-gradient projections at the pixel position, I is the intensity, T ABS is the absolute contrast threshold for the original projected gradient size, and T NORM is the intensity -Is the normalized contrast threshold for the normalized projected gradient size.

특히, 점의 절대 콘트라스트와 정규화된 콘트라스트가 각 임계값을 모두 초과할 때, 이 점만이 후보 에지점으로 고려된다. 이것은, 정규화된 콘트라스트 임계값(TNORM) 대(versus) 절대 콘트라스트 임계값(TABS)의 예시적인 그래프(800)에서 우상 사분면(upper right quadrant)(810)으로 도시된다. 듀얼(dual) 임계값(절대 임계값과 정규화된 임계값)을 사용하는 것이 일반적으로 절대 콘트라스트 임계값을 사용하는 기존의 접근법과 일반적으로 상이하다. 듀얼 콘트라스트 임계값의 이익은, 예시적으로, 이미지가 관심 에지들을 포함하는 어두운 세기 구역과 밝은 세기 구역을 모두 포함할 때, 명확하다. 이미지의 어두운 구역에서 에지를 검출하기 위해서는, 낮은 콘트라스트 임계값을 설정하는 것이 바람직하다. 그러나, 이러한 낮은 콘트라스트 설정은 이미지의 밝은 부분에서는 잘못된 에지를 검출할 수 있다. 역으로, 이미지의 밝은 구역에서 잘못된 에지를 검출하는 것을 회피하기 위해서는, 높은 콘트라스트 임계값을 설정하는 것이 바람직하다. 그러나, 높은 콘트라스트 설정에서는 시스템이 이미지의 어두운 구역에서 에지를 적절히 검출하지 못할 수 있다. 전통적인 절대 콘트라스트 임계값에 더하여 제2 정규화된 콘트라스트 임계값을 사용하는 것에 의해, 시스템은 어두운 구역과 밝은 구역에서 에지를 모두 적절히 검출할 수 있고, 이미지의 밝은 구역에서 잘못된 에지를 검출하는 것을 회피할 수 있다. 그리하여, 듀얼 콘트라스트 임계값을 사용하는 것을 통해, 의사 에지(spurious edge)를 회피하면서 관련 에지를 검출할 수 있는 것에 의해, 전체 프로세스에서 후속 라인을 발견하는 단계의 속력과 강력함(robustness)을 최대화하는 기능을 한다. In particular, when the absolute contrast and the normalized contrast of a point exceed both of each threshold, only this point is considered as a candidate edge point. This is shown as an upper right quadrant 810 in an exemplary graph 800 of a normalized contrast threshold T NORM versus an absolute contrast threshold T ABS . The use of dual thresholds (absolute and normalized thresholds) is generally different from conventional approaches that use absolute contrast thresholds. The benefit of the dual contrast threshold is obvious when, illustratively, the image contains both a dark intensity region and a bright intensity region including the edges of interest. In order to detect edges in dark areas of the image, it is desirable to set a low contrast threshold. However, such a low contrast setting can detect false edges in bright areas of the image. Conversely, in order to avoid detecting false edges in bright areas of the image, it is desirable to set a high contrast threshold. However, at high contrast settings, the system may not properly detect edges in dark areas of the image. By using the second normalized contrast threshold in addition to the traditional absolute contrast threshold, the system can properly detect edges in both dark and bright areas, and avoids detecting false edges in bright areas of the image. I can. Thus, through the use of a dual contrast threshold, the speed and robustness of the step of finding the next line in the whole process is maximized by being able to detect the relevant edge while avoiding the spurious edge. Functions to do.

절차 단계(350)(도 3)를 더 참조하면, 모든 에지점들이 추출되면, 이들 에지점들은 후속 라인-파인더들이 동작하기에 편리한 데이터 구조로 표현되고 저장된다. 예를 들어, 다음 집합(tuple), 즉 : With further reference to procedure step 350 (Fig. 3), once all edge points are extracted, these edge points are represented and stored in a data structure convenient for subsequent line-finders to operate. For example, the following tuple:

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)는 에지점의 위치이고, (gx,gy)는 각 x-구배와 y-구배 사영의 값이고, (gm,go)는 (gx,gy)로부터 연산된 구배 크기와 배향이고, I는 에지점 위치에서의 세기이고, gm/I는 구배 크기(gm)를 세기(I)로 분할한 것에 의해 획득된 세기-정규화된 콘트라스트이고, m은 이미지 색인(index)이고, n은 사영 구역 색인이다. 표준 캘리퍼 도구에서와 같이 에지점의 위치는 정확성을 개선하기 위해 내삽될 수 있다. Where (x,y) is the position of the edge point, (g x ,g y ) is the value of each x-gradient and y-gradient projection, and (g m ,g o ) is from (g x ,g y ) Is the calculated gradient size and orientation, I is the intensity at the edge point position, g m /I is the intensity-normalized contrast obtained by dividing the gradient size (g m ) by the intensity (I), and m is Is the image index, and n is the projected area index. As in a standard caliper tool, the position of the edge point can be interpolated to improve accuracy.

일반적으로 에지점을 추출하는 프로세스는, 예상된 라인 각도와 실질적으로 매칭(match)하는 단일 방향으로 구배장 사영을 실행하도록 동작하는 것으로 이해된다. 그리하여 도구는 이 각도의 에지에 가장 민감하고, 그 감도는 다른 각도의 에지에서는 점진적으로 떨어지고, 여기서 떨어지는 율은 구배장 사영 길이를 간접적으로 결정하는 입도 설정에 의존한다. 그 결과, 이 프로세스는, 사용자에 의해 지정된 각도 범위에 따라, 예상된 라인 각도"부근(near)"의 각도를 갖는 라인을 발견하는 것으로 제한된다. 이 프로세스는 직교가 아닌 라인을 발견하도록 적응된 것이지만, 이 프로세스는 여러 실시예에서 직교 방향을 포함하는 다수의 방향으로 사영을 수행하는 것에 의해 360도에 걸쳐 임의의 각도 라인을 발견(전방향 라인을 발견)하도록 일반화될 수 있는 것으로 고려된다. It is generally understood that the process of extracting an edge point operates to perform a gradient field projection in a single direction that substantially matches the expected line angle. Thus, the tool is most sensitive to the edge of this angle, and its sensitivity gradually drops at the edge of the other angle, and the rate at which it falls depends on the grain size setting, which indirectly determines the gradient field projection length. As a result, this process is limited to finding lines with an angle of "near" the expected line angle, according to the angle range specified by the user. While this process is adapted to find lines that are not orthogonal, this process in several embodiments finds any angular line over 360 degrees by performing projections in multiple directions, including orthogonal directions. It is considered that it can be generalized to find).

이제 절차(300)(도 3)에서 단계(360)를 참조하면, 임계값을 넘는 에지점 후보들이 예시적인 실시예에 따라 라인-파인더에 제공된다. 예를 들어, 라인-파인더는 재귀적으로(recursively) 동작하고, (예를 들어) RANSAC(RANdom SAmple Concensus)-기반 기술을 사용한다. 또한 도 9에 있는 라인-발견 절차(900)를 참조한다. 단계(910)에서, 사용자는, (예를 들어) GUI를 통해 예상된 각도, 각도 공차, 거리 공차, 및 (예시적으로) (일반적으로 아래에 한정된) 최소 커버리지 스코어와 함께 이미지에서 예상된 라인의 최대 개수를 지정한다. 이 파라미터는 다음 프로세스를 동작시키기 위해 라인-파인더에 사용된다. 이 라인은 RANSAC 라인 파인더를 재귀적으로 실행하는 것에 의해 이미지의 각 서브구역에 대해 발견되고, 하나의 단계로부터 에지점 이상치들은 그 다음 단계의 입력점이 된다. 따라서, 단계(920)에서, 절차(900)는, 에지-발견 프로세스에서 극단값으로 식별된 에지점들의 그룹의 일부인 한 쌍의 에지점을 선택한다. 절차(900)는 모델 라인과 일치하는 (선택된 공차 범위 내에서) 매칭 구배 값들에 기초하여 모델 라인을 선택된 에지점들에 맞추는 시도를 한다. 단계(924)에서, 단계(922)로부터의 하나 이상의 라인 후보(들)가 리턴된다. 각 라인-발견 단계는 후보 라인, 그 정상치 및 이상치를 리턴한다. 리턴된 라인(들)은 라인 후보와 일치하는 위치와 구배를 구비하는 정상치 에지점들에 대해 연산을 받는다(단계 926). 단계(928)에서, 최대 정상치 카운트를 갖는 후보 라인이 식별된다. 전술된 라인-발견 단계(단계 920-928)는 허용된 RANSAC 반복의 최대 개수에 도달될 때 종료한다(판정 단계 930). 각 라인-발견 단계 내 반복의 최대 개수는 사용자에 의해 지정된 보장 레벨(assurance level)과, 이상치의 내부적으로 연산된 최악의 경우의 비율을 자동적으로 사용하여 연산된다. 각 라인 발견 단계는, 사용자-지정된 맞춤 공차, 기하학적 제약 및 극성에 따라, 모든 반복들 중에서 최대 개수의 캡처된 에지점들을 갖는 라인을 리턴한다. 각 에지점은 단일 라인의 정상치 리스트에만 할당될 수 있고, 각 라인은 각 사영 구역으로부터 기껏 하나의 에지점만을 포함하도록 허용된다. 그 위치와 함께 에지점의 구배 배향은 에지점이 후보 라인의 정상치 리스트에 포함되어야 할지 여부를 결정하는데 사용된다. 특히, 에지점들은 후보 라인의 각도와 일치하는 구배 배향을 구비하여야 한다. Referring now to step 360 in procedure 300 (FIG. 3), edge point candidates above the threshold are provided to the line-finder according to an exemplary embodiment. For example, line-finders operate recursively and use (for example) RANSAC (RANdom SAmple Concensus)-based technology. See also line-discovery procedure 900 in FIG. 9. In step 910, the user is given an expected line in the image along with (e.g.) an expected angle, angular tolerance, distance tolerance, and (exemplarily) a minimum coverage score (generally defined below) via the GUI. Specifies the maximum number of. This parameter is then used by the line-finder to run the process. This line is found for each sub-region of the image by recursively executing the RANSAC line finder, and edge outliers from one step become the input points for the next step. Thus, in step 920, procedure 900 selects a pair of edge points that are part of a group of edge points identified as extreme values in the edge-discovery process. Procedure 900 attempts to fit the model line to selected edge points based on matching gradient values (within the selected tolerance range) that match the model line. In step 924, one or more line candidate(s) from step 922 are returned. Each line-discovery step returns a candidate line, its normal and outliers. The returned line(s) are computed on the normal edge points with the position and gradient matching the line candidate (step 926). In step 928, a candidate line with the maximum normal count is identified. The line-discovery steps described above (steps 920-928) end when the maximum number of allowed RANSAC iterations is reached (decision step 930). The maximum number of iterations in each line-discovery step is calculated automatically using the assurance level specified by the user and the internally calculated worst case ratio of outliers. Each line discovery step returns a line with the maximum number of captured edge points out of all iterations, according to user-specified fit tolerances, geometric constraints and polarity. Each edge point can only be assigned to a single line's normal list, and each line is allowed to contain at most one edge point from each projected area. Along with its position, the gradient orientation of the edge point is used to determine whether the edge point should be included in the normal value list of the candidate line. In particular, the 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 best normal candidates are returned to the RANSAC process (step 920) for use in finding line candidates (step 940).

각 RANSAC 반복 동안, 상이한 사영 구역에 속하는 2개의 에지점들이 랜덤하게 선택되고, 이 2개의 점들에 맞는 라인이 있을 수 있다. 그 결과로 생긴 후보 라인은, 후보 라인의 각도가 한 쌍의 점에서 두 에지들의 구배 각도와 일치하는 경우에만 그리고 라인의 각도가 사용자가 지정한 불확정성 범위와 일치하는 경우, 추가적인 고려를 받는다. 일반적으로, 에지점의 구배 방향은 공칭적으로 직교하지만, 사용자-구성된 각도 공차만큼 상이한 것이 허용된다. 후보 라인이 이들 초기 테스트를 통과하는 경우, 정상치 에지점들의 수가 평가되고, 만약 통과하지 못하면, 새로운 RANSAC 반복이 개시된다. 에지점은, 그 구배 방향과 위치가 사용자가 지정한 구배 각도와 거리 공차에 기초하여 라인과 일치하는 경우에만, 후보 라인의 정상치로 고려된다. During each RANSAC iteration, two edge points belonging to different projection zones are randomly selected, and there may be a line that fits these two points. The resulting candidate line is subject to additional consideration only when the angle of the candidate line coincides with the draft angle of the two edges at a pair of points, and when the angle of the line coincides with the uncertainty range specified by the user. In general, the draft direction of the edge point is nominally orthogonal, but different by a user-configured angular tolerance is allowed. If the candidate line passes these initial tests, the number of normal edge points is evaluated, and if not, a new RANSAC iteration is initiated. The edge point is considered as a normal value of the candidate line only when the gradient direction and position coincide with the line based on the gradient angle and distance tolerance specified by the user.

RANSAC 반복이 최대값에 도달하면(판정 단계 930), 최상으로 발견된 라인 후보의 정상치들이 (예를 들어) 최소 제곱 회귀(least squares regression) 또는 다른 허용가능한 근사 기술을 사용하여 개선된 라인 맞춤을 받고, 정상치들의 개수가 더 증가하거나 또는 감소하지 않을 때까지, 이 단계를 최대 N회(예를 들어 3회 이상) 반복하여 정상치 에지점들의 세트를 재평가한다(단계 960). 이것은 단계(970)에서 발견된 것으로 지시된 라인이다. When the RANSAC iteration reaches its maximum value (decision step 930), the best found line candidate's normal values (e.g.) use least squares regression or other acceptable approximation techniques for improved line fit. And, until the number of normal values further increases or does not decrease, this step is repeated at most N times (eg, 3 or more times) to re-evaluate the set of normal value edge points (step 960). This is the line indicated in step 970 as found.

판정 단계(980)는 더 많은 라인이 ((예를 들어) 추가적인 서브 구역 또는 다른 기준을 검색하는데 기초하여) 발견될지 여부를 결정하고, 만약 발견된다면, 프로세스는 단계(920)로 되돌아가서, 새로운 세트의 에지점에 대해 동작한다(단계 982). 점들이 전체에 걸쳐 다 수행되었거나 또는 최대 반복 카운트에 도달되었다면, 절차(900)는 단계(990)에서 이미지에서 (즉, 다수의) 발견된 라인의 세트를 리턴한다. Decision step 980 determines whether more lines are to be found (based on searching for additional sub-zones or other criteria (for example)), and if found, the process returns to step 920 and the new Operates on the edge points of the set (step 982). If the points have been performed all over or the maximum iteration count has been reached, procedure 900 returns a set of lines (ie, multiple) found in the image at step 990.

다중-라인 파인더는, 2개의 라인 결과가 검사 구역에서 서로 교차하는 경우에, 기존의 결과를 최종적으로 조절하도록 적응된다. 일반적으로 도 10 및 도 11에 도시된 바와 같이, 근접 이격된 평행한 라인(1010 및 1020)들에 대해, RANSAC 절차의 통계적 특성으로 인해 종종 에러 있는 라인 결과(즉 도 10)가 획득될 수 있다. 그러나, 이러한 에러가 일어날 때, 정상치의 점 그룹을 교환하는 것(도 11에서 그룹(1110) 내 화살표 1120)에 의해 종종 증가된 커버리지 스코어와 감소된-맞춤 잔류값(fit residual)을 갖는 정확한 라인을 찾을 수 있다. 점을 교환하는 것은, 이미지가 도시된 바와 같이 근접 이격된 평행한 라인들을 포함할 때, 가장 효과적일 수 있다. 역으로, 이미지가 도 12 및 도 13에 도시된 바와 같이 실제 서로 교차하는 라인(1210)과 라인(1220)을 포함할 때, 커버리지 스코어가 점을 교환한(도 12에서 그룹(1240) 내 화살표 1230) 후 감소되는 경우, 교환하기 전에 획득된 원래의 결과가 프로세스에 의해 교차하는 라인들을 성공적으로 검출하기 위해 유지된다. The multi-line finder is adapted to finally adjust the existing results in case the two line results intersect each other in the inspection area. In general, for closely spaced parallel lines 1010 and 1020, as shown in FIGS. 10 and 11, often an erroneous line result (i.e. FIG. 10) may be obtained due to the statistical nature of the RANSAC procedure. . However, when this error occurs, exchanging a group of points of normal value (arrow 1120 in group 1110 in FIG. 11) often results in an accurate line with an increased coverage score and a reduced-fit residual. Can be found. Swapping points may be most effective when the image contains parallel lines spaced close to each other as shown. Conversely, when the image includes a line 1210 and a line 1220 that actually intersect each other as shown in Figs. 12 and 13, the coverage score exchanges points (arrows in the group 1240 in Fig. 12). 1230), the original result obtained before the exchange is maintained in order to successfully detect the lines intersecting by the process.

RANSAC 절차는 라인-파인더가 점들을 라인으로 맞출 수 있는 여러 기술 중 하나인 뿐이라는 것으로 이해된다. 대안적인 실시예에서, 후보 점들은 이들 점들 사이에 설정된 변위에 따라 선택될 수 있고, 또는 이미지는 (예를 들어) 전수 검색 기술(exhaustive search technique)을 사용하여 처리될 수 있다. 따라서, 본 명세서에 사용된 바와 같이 RANSAC 기술이라는 언급은 여러 유사한 점-맞춤 기술을 포함하는 것으로 넓게 해석되어야 한다. It is understood that the RANSAC procedure is only one of several techniques by which the line-finder can fit points into lines. In an alternative embodiment, candidate points may be selected according to the displacement established between these points, or the image may be processed using (eg) an exhaustive search technique. Thus, reference to RANSAC technology as used herein is to be broadly interpreted as including several similar point-to-measure techniques.

이 시스템 및 방법의 추가적인 기능이 제공될 수 있다. 이들 기능은 혼합된-극성을 지원하는 것, 사영 구역 폭을 자동 연산하는 것, 다중-뷰 라인 발견을 지원하는 것, 및 입력 이미지에서 미리-뒤틀림(pre-warpage)을 제거하여 광학적 왜곡을 제거하는 것을 포함한다. 이들 기능은 아래에서 더 설명된다. Additional functionality of this system and method may be provided. These features support mixed-polarity, automatically compute projected area widths, support multi-view line discovery, and eliminate optical distortion by removing pre-warpage from the input image. Includes doing. These functions are further described below.

도 14 내지 도 16의 예를 더 참조하면, 예시적인 실시예의 라인-발견 시스템 및 방법은 발견된 에지들 사이에 콘트라스트에 대한 표준 밝은에서-어두운으로의 극성, 어두운에서-밝은으로의 극성, 및 어느 하나의 극성 설정을 (각각) 일반적으로 지원한다. 나아가, 이 시스템 및 방법은 밝은에서-어두운으로의 극성 및 어두운에서-밝은으로의 극성 특성이 동일한 라인에 모두 보이는 혼합된-극성 설정(도 17)을 더 지원할 수 있다. 모두 4개의 설정의 라인-발견 결과는 다음 도면에서 도시된다. 예시적인 실시예에서, 이 시스템 및 방법은 반대 극성의 에지점들을 포함하는 단일 라인을 발견할 수 있는 혼합된-극성 설정을 포함할 수 있다. 이것은 단일 라인의 모든 에지점들이 어느 하나의 극성이지만 - 단 하나의 극성인"어느 하나의" 극성만을 구비하는 종래의 설정과는 상이하다. 혼합된-극성 설정은, 다른 적용 중에서 (예를 들어) 교정 판의 밝은 체커보드와 어두운 체커보드를 분석하는데 사용될 때 유리할 수 있다. With further reference to the example of FIGS. 14-16, the line-discovery system and method of the exemplary embodiment includes a standard light-to-dark polarity, a dark-to-bright polarity for contrast between the found edges, and Either polarity setting is generally supported (respectively). Furthermore, this system and method can further support a mixed-polarity setup (FIG. 17) where the light-to-dark polarity and dark-to-bright polarity characteristics are both visible on the same line. The line-discovery results of all four settings are shown in the following figure. In an exemplary embodiment, this system and method may include a mixed-polarity setting that can find a single line containing edge points of opposite polarity. This is different from the conventional setup where all the edge points of a single line are of either polarity-but only one polarity, "any one" polarity. A mixed-polarity setting can be advantageous when used to analyze the bright and dark checkerboards of the calibration plate (eg) among other applications.

사용자는 라인을-발견하는 개선된 시프트 불변성(shift invariance)을 선택할 수 있다. 이러한 경우에, 에지점 추출기는 실질적으로 오버랩된 사영 구역을 사용하여 결과 안정성을 개선시킨다. 구역들이 오버랩하지 않는 경우, 고려되는 픽셀들은 이미지가 시프트될 때 사영 구역으로부터 잠재적으로 이동하여, 그 결과, 라인-발견 결과에 불량한 시프트 불변성을 초래할 수 있다. 오버랩된 사영 구역들은 고려되는 픽셀들이 사영 구역들에 의해 연속적으로 커버되는 것을 보장한다. 오버랩된 사영 구역들이 사용된 경우, 증분적 연산을 수행하여 가능한 낮은 레벨의 최적화와 함께 속력을 유지할 수 있다. The user can select an improved shift invariance to find the line. In this case, the edge point extractor substantially improves the resulting stability by using overlapping projection areas. If the zones do not overlap, the pixels under consideration may potentially move out of the projected zone when the image is shifted, resulting in poor shift invariability in the line-discovery result. The overlapped projection zones ensure that the pixels under consideration are continuously covered by the projection zones. If overlapping projected areas are used, incremental operations can be performed to maintain speed with as low a level of optimization as possible.

사용자는 라인 특징부에 대한 분석으로부터 취득된 이미지 및/또는 이미징된 표면의 특정 부분들을 생략하는 마스크를 제공할 수 있다. 이것은 표면이 관심이 없는 알려진 라인 특징부(예를 들어, 라인들이 발견되는 작업과 관련이 없는 다른 메커니즘, 텍스트, 및 임의의 다른 구조에 의해 분석되는 바코드)를 포함하는 경우 바람직할 수 있다. 따라서, 에지점 추출기는, 이미지에서 "관심 없는(don't care)" 구역이 마스킹아웃(masked out)될 수 있고, "관심"구역이 마스킹인(masked in)되는 이미지 마스킹을 지원할 수 있다. 이러한 마스킹이 일어나는 경우, 발견된 라인들의 커버리지 스코어들은 마스크 내에 있는 에지점들의 수에 따라 예시적으로 재가중된다. The user may provide a mask that omits certain portions of the imaged surface and/or images obtained from analysis of the line features. This may be desirable if the surface contains known line features of no interest (eg, barcodes that are analyzed by other mechanisms, text, and any other structure not related to the operation in which the lines are found). Thus, the edge point extractor can support image masking in which “don't care” areas in the image can be masked out, and “interesting” areas are masked in. When this masking occurs, the coverage scores of the found lines are exemplarily reweighted according to the number of edge points in the mask.

도 18의 예시적인 이미지 구역(1800)을 참조하면, 도 18은 이미지 마스크들이 존재할 때 커버리지 스코어들과, 이러한 커버리지 스코어들에 대한 이미지 마스킹의 효과를 도시한다. 에지점 추출기는 이미지에서 "관심 없는 구역"이 마스킹아웃될 수 있는 이미지 마스킹을 지원한다. 도시된 바와 같이, 발견된 라인(1810)은 ("관심" 마스크 구역(1820)에 기초하여) 관심 에지점들로 특성화된다. 이러한 관심 에지점들은 라인(1810)으로의 관심 에지점 정상치(1830)와 라인(1810)으로의 관심 에지점 이상치(1840)로 구성된다. 라인(1810)에서 관심 없는 에지점(1850)들은 이 예에 도시된 바와 같이 마스크의 관심 구역(1820)들 사이에 존재하고, 이 관심 없는 에지점들이 정상치로 라인에 존재하는 경우에도 커버리지 스코어 연산에 포함되지 않는다. 라인(1810)을 따라 에지점들의 잠재적인 위치(1860)가 도시된 바와 같이 또한 결정된다. 이 잠재적인 위치는 발견된 점들의 간격에 기초하여 예측가능한 간격으로 알려진 점들 사이에 위치된다. 예시적으로, 발견된 라인들의 커버리지 스코어들은 마스크 내에 있는 에지점들의 수에 따라 재가중된다. 그리하여 커버리지 스코어는 다음과 같이 변경된다: Referring to the exemplary 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 in which "areas of interest" can be masked out in the image. As shown, the found line 1810 is characterized with edge points of interest (based on the “interesting” mask region 1820). These edge points of interest are composed of an edge point of interest normal value 1830 to line 1810 and an edge point of interest outlier 1840 to line 1810. Edge points 1850 of no interest in the line 1810 exist between the regions of interest 1820 of the mask, as shown in this example, and the coverage score is calculated even when these uninteresting edge points exist in the line with normal values. Not included in Potential locations 1860 of edge points along line 1810 are also determined as shown. This potential location is located between known points with predictable spacing based on the spacing of the found points. Illustratively, the coverage scores of the found lines are reweighted according to the number of edge points within the mask. Thus, the coverage score changes as follows:

커버리지 스코어 = 라인에 대한 관심 에지점 정상치의 수/(라인에 대한 관심 에지점 정상치의 수 + 라인에 대한 관심 에지점 이상치 + 에지점들의 관심 잠재적인 위치의 수). Coverage score = number of edge point normals of interest for line/(number of edge point of interest normals for line + number of edge point of interest outliers for line + number of potential positions of interest of edge points).

본 명세서에서 시스템 및 방법에 따른 라인-발견 프로세스를 실행한 후, 발견된 라인들은 ((예를 들어) GUI를 통해) 사용자에 의해 지정된 분류 기준에 기초하여 여러 방식으로 분류될 수 있다. 사용자는 정상치 커버리지 스코어, 세기 또는 콘트라스트와 같은 내적(intrinsic) 분류 조치로부터 선택될 수 있다. 사용자는 또한 부호 있는 거리 또는 상대 각도와 같은 외적(extrinsic) 분류 조치로부터 선택할 수 있다. 외적 분류 조치를 사용할 때, 사용자는 발견된 라인들의 외적 조치를 연산하는 기준 라인 세그먼트를 지정할 수 있다. After executing the line-discovery process according to the systems and methods herein, the found lines can be classified in several ways based on the classification criteria specified by the user (for example, through a GUI). The user may be selected from intrinsic classification measures such as normal coverage score, intensity or contrast. Users can also choose from extrinsic classification measures such as signed distance or relative angle. When using the extrinsic classification action, the user can specify a reference line segment to compute the extrinsic action of the found lines.

일반적으로 전술된 바와 같이, 이 시스템 및 방법은 상이한 시야로부터 이미지 벡터를 프로세스로 전달할 수 있는 MFOV(Multi-Field-of-View) 오버로드를 포함할 수 있다. 이미지들은 교정에 기초하여 공통 클라이언트 좌표 공간에 모두 있어야 한다. 전술된 바와 같이, 이 기능은 다수의 카메라가 단일 부분의 부분 영역들을 캡처하는데 사용되는 응용 시나리오에서 극히 유리할 수 있다. 에지점들은 구배 정보를 유지하기 때문에, (두 FOV에서의 구배들이 각 FOV에서 주어진 라인 배향과 정렬에 매칭할 때) 시야에 있는 갭들 사이에 사영된 라인 특징부들은 여전히 분석될 수 있다. As generally described above, this system and method may include a Multi-Field-of-View (MFOV) overload that can transfer image vectors from different fields of view to the process. Images should all be in a common client coordinate space based on calibration. As mentioned above, this function can be extremely advantageous in application scenarios where multiple cameras are used to capture partial regions of a single part. Because the edge points maintain the gradient information, the projected line features between the gaps in the field of view (when the gradients in both FOVs match a given line orientation and alignment in each FOV) can still be analyzed.

특히, 이 시스템 및 방법은, 왜곡이 심각하지 않는다고 가정하면, 비선형 왜곡을 제거하기 위해, (이미지에서) 뒤틀림을 제거할 것을 요구하지 않는다(즉, 이미지가 뒤틀리지 않은 것을 요구하지 않는다). 이미지가 뒤틀리지 않은 경우, 이 시스템 및 방법은 여전히 후보 에지점들을 검출할 수 있고, 비선형 변환을 통해 점의 위치와 구배 벡터를 맵핑할 수 있다. In particular, this system and method does not require removing distortion (in the image) to remove nonlinear distortion (i.e., it does not require that the image is not distorted), assuming that the distortion is not severe. If the image is not distorted, the system and method can still detect candidate edge points and map the position of the point and the gradient vector through nonlinear transformation.

이 시스템 및 방법 및 여러 대안적인 실시예/개선에 따라 제공된 라인-파인더는 여러 조건 하에서 다수의 라인 특징부를 결정하는 효과적이고 강력한 도구인 것이 분명하다. 일반적으로, 이 시스템 및 방법은 라인 특징부를 발견하는데 사용될 때, 이미지에서 발견되는 최대 라인 개수에 특정 제한을 갖지 않는다. 메모리와 연산 시간만이 발견될 수 있는 라인의 개수에 실제적 제한을 준다. It is evident that the line-finder provided according to this system and method and several alternative embodiments/improvements is an effective and powerful tool for determining multiple line features under different conditions. In general, these systems and methods, when used to find line features, do not place any particular limitation on the maximum number of lines found in an image. Only memory and computation time impose a practical limit on the number of lines that can be found.

상기는 본 발명의 예시적인 실시예의 상세한 설명이다. 본 발명의 사상과 범위를 벗어남이 없이 여러 변형과 추가를 할 수 있을 것이다. 전술된 여러 실시예 각각의 특징부는 적절한 경우 다른 설명된 실시예의 특징부와 결합되어, 연관된 새로운 실시예에서 다수의 특징부 조합이 제공될 수 있다. 나아가, 상기는 본 발명의 장치 및 방법의 다수의 별개의 실시예를 설명하지만, 본 명세서에서 설명된 것은 본 발명의 원리의 적용을 단지 예시하는 것이다. 예를 들어, 본 명세서에 사용된 바와 같이 "프로세스" 및/또는 "프로세서"라는 용어는 여러 전자 하드웨어 및/또는 소프트웨어 기반 기능과 성분을 포함하는 것으로 넓게 해석되어야 한다(그리고 대안적으로 기능 "모듈" 또는 "요소"이라고 언급될 수 있다). 나아가, 도시된 프로세스 또는 프로세서는 다른 프로세스 및/또는 프로세서와 결합되거나 또는 여러 서브-프로세스 또는 프로세서로 분할될 수 있다. 이러한 서브-프로세스 및/또는 서브-프로세서는 본 명세서에 개시된 실시예에 따라 여러 방식으로 결합될 수 있다. 또한, 본 명세서에서 임의의 기능, 프로세스 및/또는 프로세서는 전자 하드웨어, 프로그램 명령의 비-일시적인 컴퓨터-판독가능한 매체로 구성된 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있는 것으로 명시적으로 고려된다. 추가적으로, 본 명세서에 사용된 바와 같이 "수직", "수평", "위로", "아래로", "하부", "상부", "측면", "전방", "후방", "좌측", "우측" 등과 같은 여러 방향과 배치 용어는 상대적인 관례로서만 사용된 것일 뿐, 중력의 작용 방향과 같은 고정된 좌표 공간에 대해 절대 방향/배치로 사용된 것이 아니다. 추가적으로, "실질적으로" 또는 "대략"이라는 용어는 주어진 측정값, 값 또는 특성에 사용된 경우, 이 용어는 원하는 결과를 달성하는 정상 동작 범위 내에 있는 양을 말하지만, 이것은 시스템의 내적 부정확성과 허용된 공차 내 에러(예를 들어, 1-5 퍼센트)로 인한 일부 변동을 포함한다. 따라서, 본 설명은 예시적인 것으로만 해석되어야 하고, 본 발명의 범위를 제한하려고 의도된 것이 아니다. The above is a detailed description of an exemplary embodiment 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, where appropriate, to provide multiple feature combinations in associated new embodiments. Further, while the above describes a number of distinct embodiments of the apparatus and method of the present invention, what has been described herein is merely illustrative of the application of the principles of the present invention. For example, as used herein, the terms "process" and/or "processor" should be broadly interpreted as including various electronic hardware and/or software-based functions and components (and alternatively functional "modules"). May be referred to as "or "element"). Furthermore, the illustrated 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 can be combined in several ways according to the embodiments disclosed herein. In addition, in the present specification, any function, process, and/or processor is expressly stated that it can be implemented using electronic hardware, software composed 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", "upward", "down", "lower", "upper", "side", "front", "rear", "left", Several orientation and arrangement terms such as "right" are used only as a relative convention, and are not used as absolute orientations/arrangements for a fixed coordinate space such as the direction of action of gravity. Additionally, the terms "substantially" or "approximately" when used for a given measurement, value, or characteristic, this term refers to an amount within the normal operating range that achieves the desired result, but this is the internal inaccuracies of the system Includes some variation due to errors in tolerance (eg, 1-5 percent). Accordingly, this description is to be construed as illustrative only, and is not intended to limit the scope of the invention.

Claims (23)

취득된 이미지에서 라인 특징부를 발견하는 시스템으로서,
라인 특징부를 포함하는 장면의 이미지 데이터를 수신하는 비전 시스템 프로세서로서,
(a) 상기 이미지 데이터로부터 구배 벡터장(gradient vector field)을 연산하는 동작,
(b) 복수의 구배 사영 서브-구역(gradient projection sub-region)들에 걸쳐 상기 구배 벡터장을 사영하는 동작, 및
(c) 사영된 구배 데이터에 기초하여 상기 구배 사영 서브-구역들 각각에서 복수의 에지점(edge point)들을 발견하는 동작을 수행하는 에지점 추출기를 구비하는 비전 시스템 프로세서; 및
상기 이미지로부터 추출된 에지점들과 일치(consistent)하는 복수의 라인을 생성하는 라인-파인더(line-finder)를 포함하는 것을 특징으로 하는 시스템.
As a system for finding line features in an acquired image,
A vision system processor that receives image data of a scene including line features, comprising:
(a) calculating a gradient vector field from the image data,
(b) an operation of projecting the gradient vector field over a plurality of gradient projection sub-regions, and
(c) a vision system processor having an edge point extractor that performs an operation of finding a plurality of edge points in each of the gradient projection sub-zones based on the projected gradient data; And
And a line-finder for generating a plurality of lines consistent with edge points extracted from the image.
제1항에 있어서, 상기 라인 파인더는, 이전에 한정된 라인들에 대해 이상치 에지점(outlier edge point)들로부터 라인을 반복적으로 한정하는 것을 포함하여, 정상치 에지점(inlier edge point)들을 새로운 라인들에 맞추는(fit) RANSAC-기반 프로세스를 동작시키는 것을 특징으로 하는 시스템. The method of claim 1, wherein the line finder includes repetitively defining a line from outlier edge points with respect to previously defined lines, including new lines of inlier edge points. A system, characterized in that it operates a RANSAC-based process that fits. 제1항에 있어서, 상기 구배 벡터장 사영은 하나 이상의 또는 상기 라인 특징부의 예상된 배향에 응답하여 설정된 방향을 따라 배향된 것을 특징으로 하는 시스템. The system of claim 1, wherein the gradient vector field projection is oriented along a direction established in response to one or more or an expected orientation of the line features. 제1항에 있어서, 상기 구배 벡터장 사영은 가우시안 커널(Gaussian kernel)에 기초하여 입도(granularity)를 한정하는 것을 특징으로 하는 시스템. The system of claim 1, wherein the gradient vector field projection defines a granularity based on a Gaussian kernel. 제1항에 있어서, 상기 에지점 추출기는 상기 구배 사영 서브-구역들 각각에서 복수의 구배 크기 최대값을 발견하도록 배열되고, 상기 구배 크기 최대값은, 위치 벡터와 구배 벡터에 의해 설명되는 상기 복수의 에지점의 일부로서 각각 식별되는 것을 특징으로 하는 시스템. The method of claim 1, wherein the edge point extractor is arranged to find a plurality of gradient size maxima in each of the gradient projected sub-zones, wherein the gradient size maxima is the plurality described by a position vector and a gradient vector. And each identified as part of an edge point of. 제1항에 있어서, 상기 라인 파인더는, 메트릭(metric)을 연산하는 것에 의해, 상기 추출된 복수의 에지점들 중 적어도 하나의 에지점과 상기 발견된 복수의 라인 중 적어도 하나의 후보 라인 사이의 일치도(consistency)를 결정하도록 배열되고, 상기 메트릭은, 상기 적어도 하나의 후보 라인으로부터 상기 적어도 하나의 에지점의 거리, 및 상기 적어도 하나의 에지점의 구배 방향과 상기 적어도 하나의 후보 라인의 법선 방향 사이의 각도 차이에 기초하는 것을 특징으로 하는 시스템.The method of claim 1, wherein the line finder comprises, by calculating a metric, between at least one edge point among the extracted plurality of edge points and at least one candidate line among the found plurality of lines. Arranged to determine consistency, the metric is a distance of the at least one edge point from the at least one candidate line, a gradient direction of the at least one edge point, and a normal direction of the at least one candidate line System, characterized in that based on the difference in angle between. 제1항에 있어서, 상기 이미지 데이터는, 복수의 카메라로부터 취득되고 공통 좌표 공간으로 변환된 복수의 이미지로부터 데이터를 포함하는 것을 특징으로 하는 시스템.The system according to claim 1, wherein the image data includes data from a plurality of images acquired from a plurality of cameras and converted into a common coordinate space. 제1항에 있어서, 상기 이미지 데이터를 평활화하는 평활화 커널(smoothing kernel)을 더 포함하는 시스템.The system of claim 1, further comprising a smoothing kernel to smooth the image data. 제8항에 있어서, 상기 평활화 커널은 가우시안 커널을 포함하는 것을 특징으로 하는 시스템.9. The system of claim 8, wherein the smoothing kernel comprises a Gaussian kernel. 제1항에 있어서, 상기 에지점들은, 절대 콘트라스트에 의해 한정된 임계값과, 상기 이미지 데이터의 평균 세기에 기초하여 정규화된 콘트라스트에 기초하여 선택되는 것을 특징으로 하는 시스템.The system of claim 1, wherein the edge points are selected based on a threshold value defined by an absolute contrast and a normalized contrast based on an average intensity of the image data. 제1항에 있어서, 상기 라인 파인더는 에러 있는 배향을 정정하기 위해 상기 발견된 복수의 라인으로부터 평행한 라인들 또는 교차하는 라인들의 부분을 나타내는 추출된 복수의 에지점으로부터 적어도 일부 에지점들을 교환하도록 배열된 것을 특징으로 하는 시스템.The method of claim 1, wherein the line finder is configured to exchange at least some edge points from a plurality of extracted edge points representing portions of parallel lines or intersecting lines from the found plurality of lines to correct an erroneous orientation. System, characterized in that arranged. 제1항에 있어서, 상기 라인 파인더는 극성 변동(polarity variation)을 가지는 발견된 복수의 라인으로부터 라인을 식별하도록 배열된 것을 특징으로 하는 시스템.The system of claim 1, wherein the line finder is arranged to identify a line from a plurality of found lines having a polarity variation. 제12항에 있어서, 상기 식별된 라인들은 상기 추출된 복수의 에지점의 구배 값에 기초하여 상기 발견된 복수의 라인의 라인 특징부들의 혼합된 극성에 의해 한정된 라인인 것을 특징으로 하는 시스템.13. The system of claim 12, wherein the identified lines are lines defined by mixed polarities of line features of the found plurality of lines based on gradient values of the extracted plurality of edge points. 취득된 이미지에서 라인 특징부를 발견하는 방법으로서,
비전 시스템 프로세서로 장면의 이미지 데이터를 수신하는 단계로서, 상기 데이터는 라인 특징부를 포함하는, 상기 이미지 데이터를 수신하는 단계;
상기 이미지 데이터로부터 구배 벡터장을 연산하는 단계;
복수의 구배 사영 서브-구역에 걸쳐 상기 구배 벡터장을 사영하는 단계;
사영된 구배 데이터에 기초하여 상기 구배 사영 서브-구역들 각각에서 복수의 에지점을 발견하는 단계; 및
상기 이미지로부터 추출된 에지점들과 일치하는 복수의 라인을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
As a method of finding line features in an acquired image,
Receiving image data of a scene with a vision system processor, the data including line features;
Calculating a gradient vector field from the image data;
Projecting the gradient vector field over a plurality of gradient projection sub-regions;
Finding a plurality of edge points in each of the gradient projection sub-zones based on projected gradient data; And
And generating a plurality of lines coincident with the edge points extracted from the image.
제14항에 있어서, 이전에 한정된 라인들에 대해 이상치 에지점들로부터 라인을 반복적으로 한정하는 것을 포함하여, 정상치 에지점들을 새로운 라인들로 맞추는 RANSAC-기반 프로세스를 적용하는 것을 더 포함하는 것을 특징으로 하는 방법.15. The method of claim 14, further comprising applying a RANSAC-based process of fitting normal edge points to new lines, including repetitively defining the line from outlier edge points for previously defined lines. How to do it. 제14항에 있어서, 상기 구배 벡터장 사영은 하나 이상의 또는 상기 라인 특징부들의 예상된 배향에 응답하여 설정된 방향에 따라 배향된 것을 특징으로 하는 방법.15. The method of claim 14, wherein the gradient vector field projection is oriented according to a direction established in response to one or more or an expected orientation of the line features. 제14항에 있어서, 상기 구배 벡터장 사영은 1D 가우시안 커널에 기초하여 입도를 한정하는 것을 특징으로 하는 방법.15. The method of claim 14, wherein the gradient vector field projection defines a particle size based on a 1D Gaussian kernel. 제14항에 있어서, 상기 구배 사영 서브-구역들 각각에서 복수의 구배 크기 최대값을 발견하는 단계를 더 포함하고, 상기 구배 크기 최대값은 위치 벡터와 구배 벡터에 의해 설명되는 상기 복수의 에지점의 일부로 각각 식별되는 것을 특징으로 하는 방법.The method of claim 14, further comprising finding a plurality of gradient magnitude maximums in each of the gradient projection sub-regions, wherein the gradient magnitude maximum is the plurality of edge points described by a position vector and a gradient vector. Method, characterized in that each identified as part of. 제14항에 있어서, 메트릭을 연산하는 것에 의해, 상기 추출된 복수의 에지점 중 적어도 하나의 에지점과 상기 발견된 복수의 라인 중 적어도 하나의 후보 라인 사이에 일치도를 결정하는 단계를 더 포함하고, 상기 메트릭은, 상기 적어도 하나의 후보 라인으로부터 상기 적어도 하나의 에지점의 거리, 및 상기 적어도 하나의 에지점의 구배 방향과 상기 적어도 하나의 후보 라인의 법선 방향 사이의 각도 차이에 기초하는 것을 특징으로 하는 방법The method of claim 14, further comprising determining a degree of correspondence between at least one edge point of the extracted plurality of edge points and at least one candidate line of the found plurality of lines by calculating a metric, , The metric is based on a distance of the at least one edge point from the at least one candidate line, and an angle difference between a gradient direction of the at least one edge point and a normal direction of the at least one candidate line How to do it 제14항에 있어서, 상기 이미지 데이터는, 복수의 카메라로부터 취득되고 공통 좌표 공간으로 변환된 복수의 이미지로부터 데이터를 포함하는 것을 특징으로 하는 방법.15. The method of claim 14, wherein the image data comprises data from a plurality of images acquired from a plurality of cameras and converted into a common coordinate space. 제14항에 있어서, 평활화 커널을 사용하여 상기 이미지 데이터를 평활화하는 단계를 더 포함하는 것을 특징으로 하는 방법.15. The method of claim 14, further comprising smoothing the image data using a smoothing kernel. 제14항에 있어서, 절대 콘트라스트에 의해 한정된 임계값과, 상기 이미지 데이터의 평균 세기에 기초하여 정규화된 콘트라스트에 기초하여 상기 에지점들을 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.15. The method of claim 14, further comprising selecting the edge points based on a threshold value defined by an absolute contrast and a normalized contrast based on an average intensity of the image data. 제14항에 있어서, (a) 에러 있는 배향을 정정하기 위해 평행한 라인들 또는 교차하는 라인들의 부분을 나타내는 에지점들을 교환하는 단계 및 (b) 상기 에지점들의 구배 값에 기초하여 라인들의 혼합된 극성을 포함하는, 상기 라인 특징부들의 극성 변동을 갖는 라인을 식별하는 단계 중 적어도 하나를 더 포함하는 것을 특징으로 하는 방법.The method of claim 14, further comprising: (a) exchanging edge points representing parallel lines or portions of intersecting lines to correct an erroneous orientation, and (b) blending of lines based on a gradient value of the edge points. And identifying a line having a polarity variation of the line features comprising the polarity of the line.
KR1020160145441A 2015-11-02 2016-11-02 System and method for finding lines in an image with a vision system KR102153962B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190049972A KR102402906B1 (en) 2015-11-02 2019-04-29 System and method for finding lines in an image with a vision system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562249918P 2015-11-02 2015-11-02
US62/249,918 2015-11-02
US15/338,445 2016-10-31
US15/338,445 US10152780B2 (en) 2015-11-02 2016-10-31 System and method for finding lines in an image with a vision system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190049972A Division KR102402906B1 (en) 2015-11-02 2019-04-29 System and method for finding lines in an image with a vision system

Publications (2)

Publication Number Publication Date
KR20170051369A KR20170051369A (en) 2017-05-11
KR102153962B1 true KR102153962B1 (en) 2020-09-10

Family

ID=58741907

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020160145441A KR102153962B1 (en) 2015-11-02 2016-11-02 System and method for finding lines in an image with a vision system
KR1020190049972A KR102402906B1 (en) 2015-11-02 2019-04-29 System and method for finding lines in an image with a vision system
KR1020220063255A KR102649038B1 (en) 2015-11-02 2022-05-24 System and method for finding lines in an image with a vision system

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020190049972A KR102402906B1 (en) 2015-11-02 2019-04-29 System and method for finding lines in an image with a vision system
KR1020220063255A KR102649038B1 (en) 2015-11-02 2022-05-24 System and method for finding lines in an image with a vision system

Country Status (2)

Country Link
JP (2) JP6463593B2 (en)
KR (3) KR102153962B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10937168B2 (en) 2015-11-02 2021-03-02 Cognex Corporation System and method for finding and classifying lines in an image with a vision system
DE102016120775A1 (en) 2015-11-02 2017-05-04 Cognex Corporation System and method for detecting lines in an image with a vision system
US10753726B2 (en) 2017-03-26 2020-08-25 Cognex Corporation System and method for 3D profile determination using model-based peak selection
US10540749B2 (en) * 2018-03-29 2020-01-21 Mitsubishi Electric Research Laboratories, Inc. System and method for learning-based image super-resolution
JP2019220163A (en) * 2018-06-06 2019-12-26 コグネックス・コーポレイション System and method for finding line with vision system
CN111612776A (en) * 2020-05-22 2020-09-01 福州数据技术研究院有限公司 Automatic pathological gross specimen size measuring method based on image edge recognition
CN113344955B (en) * 2021-05-25 2022-03-18 云南凤云高速公路有限公司 System and method for accurately detecting slope by fuzzy edge

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084221A (en) * 2011-10-12 2013-05-09 Tottori Univ Straight line detecting device, straight line detecting method, straight line detecting program, and photographing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61120002A (en) * 1984-11-16 1986-06-07 Toyota Central Res & Dev Lab Inc Method and device for detecting corner point of image
JP3394104B2 (en) * 1993-12-24 2003-04-07 株式会社小松製作所 Location recognition method
JPH08335274A (en) * 1995-06-07 1996-12-17 Sony Corp Curve generating method
US8442304B2 (en) * 2008-12-29 2013-05-14 Cognex Corporation System and method for three-dimensional alignment of objects using machine vision
RU2458396C1 (en) * 2011-07-19 2012-08-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Method of editing static digital composite images, including images of several objects
JP2014092922A (en) * 2012-11-02 2014-05-19 Tottori Univ Detector, detection method, and detection program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084221A (en) * 2011-10-12 2013-05-09 Tottori Univ Straight line detecting device, straight line detecting method, straight line detecting program, and photographing system

Also Published As

Publication number Publication date
KR102402906B1 (en) 2022-05-26
JP6463593B2 (en) 2019-02-06
KR20170051369A (en) 2017-05-11
KR20190050311A (en) 2019-05-10
JP2023120281A (en) 2023-08-29
JP2017090450A (en) 2017-05-25
KR102649038B1 (en) 2024-03-18
KR20220075290A (en) 2022-06-08

Similar Documents

Publication Publication Date Title
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
US11699283B2 (en) System and method for finding and classifying lines in an image with a vision system
Placht et al. Rochade: Robust checkerboard advanced detection for camera calibration
JP7133283B2 (en) Systems and methods for efficiently scoring probes in images with a vision system
JP2024016287A (en) System and method for detecting lines in a vision system
US10074551B2 (en) Position detection apparatus, position detection method, information processing program, and storage medium
Zhang et al. A new algorithm for accurate and automatic chessboard corner detection
US20240078801A1 (en) System and method for finding and classifying lines in an image with a vision system
CN112508925A (en) Electronic lock panel quality detection method, system, computer device and storage medium
WO2023141903A1 (en) Easy line finder based on dynamic time warping method
Pereira et al. Parallelized automatic false defect detection using GPUs during mask inspection
CN116958058A (en) Lens dirt detection method and device and image detection equipment
CN109670519A (en) Image processing apparatus and image processing method
Wedekind et al. Using generic image processing operations to detect a calibration grid
Seth et al. An Analytic Approach of Edge Detection Gradient Operators [J]

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2019101001458; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20190429

Effective date: 20200512

GRNO Decision to grant (after opposition)
GRNT Written decision to grant