KR20220075290A - 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
KR20220075290A
KR20220075290A KR1020220063255A KR20220063255A KR20220075290A KR 20220075290 A KR20220075290 A KR 20220075290A KR 1020220063255 A KR1020220063255 A KR 1020220063255A KR 20220063255 A KR20220063255 A KR 20220063255A KR 20220075290 A KR20220075290 A KR 20220075290A
Authority
KR
South Korea
Prior art keywords
line
image
gradient
points
edge
Prior art date
Application number
KR1020220063255A
Other languages
Korean (ko)
Other versions
KR102649038B1 (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 KR20220075290A publication Critical patent/KR20220075290A/en
Application granted granted Critical
Publication of KR102649038B1 publication Critical patent/KR102649038B1/en

Links

Images

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
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)

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 computes the x and y components of the gradient field at each image location, projects the gradient field across multiple subregions, and multiple gradients yielding multiple edgepoints with positions and gradients. A plurality of gradient extrema is detected. The second process is to select two edge points, fit a model line to them, and if the edge point slope is consistent with the model, then the full set of inner left layer points whose location and slope match the model ( full set of inlier points). A set is derived that holds the candidate line with the maximum inner left count and leaves outlier points. The process iteratively applies the line fitting operation and a subsequent set of outer layers to find multiple 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}SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM

관련 출원Related applications

본 출원은, 전체 내용이 본 명세서에 병합된, 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 provisional US patent application entitled "SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM," filed on November 2, 2015, the entire contents of which are incorporated herein by reference. Claims the interests of serial number 62/249,918.

기술 분야technical field

본 발명은 머신 비전 시스템에 관한 것으로, 보다 구체적으로 취득된 이미지에서 라인 특징부(line feature)를 발견하는 비전 시스템 도구에 관한 것이다.The present invention relates to machine vision systems, and more particularly to vision system tools for discovering line features in acquired images.

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

비전 시스템의 공통 작업은 이미지에서 라인 특징부를 발견하고 특성화하는 것이다. 이러한 라인 특징부를 식별하고 분석하는데 여러 도구가 사용된다. 일반적으로, 이 도구는 이미지의 일부분에서 일어나는 급격한 콘트라스트(sharp contrast) 차이에 의존한다. 예를 들어 캘리퍼 도구를 사용하여 이 콘트라스트 차이를 분석하여, 콘트라스트 차이를 갖는 이미지 내 개별 점들이 라인-같은 특징부로 조립될 수 있는지 여부를 결정한다. 만약 조립될 수 있다면, 이미지에서 라인이 식별된다. 특히, 에지점(edge point)들을 발견하는 도구와, 라인을 점들에 맞추는(fit) 시도를 하는 도구는 서로 독립적이다. 이것은 처리 오버헤드를 증가시키고 신뢰성을 감소시킨다. 이미지가 다수의 라인을 포함하는 경우, 이들 도구는 이 라인을 정확히 식별하는 능력이 제한될 수 있다. 나아가, 이미지에서 단일 라인을 발견하도록 설계된 전통적인 라인-발견 도구는, 이미지가 유사한 배향과 극성을 갖는 다수의 근접 이격된 라인들을 포함할 때, 사용하는데 문제가 있을 수 있다.A common task of vision systems is to discover 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 that occur in parts of the image. Analyze this contrast difference using, for example, a caliper tool to determine whether individual points in the image with the contrast difference can be assembled into line-like features. If it can be assembled, a line is identified in the image. In particular, a tool for finding edge points and a tool for attempting 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 with similar orientation and polarity.

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

예시적인 실시예에서, 취득된 이미지에서 라인 특징부를 발견하는 시스템이 제공된다. 비전 시스템 프로세서는 라인 특징부를 포함하는 장면의 이미지 데이터를 수신한다. 에지점 추출기는 상기 이미지 데이터로부터 세기 구배 이미지(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 the 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 outlier edge points to new lines, including iteratively defining lines from outlier edge points to a previously defined line. The edge point extractor performs a gradient field projection of the line-feature-containing regions of the intensity gradient images. Exemplarily, the gradient-field projection is oriented along a direction established in response to one or more or expected orientations of the line features, wherein the gradient-field projection defines a granularity based on a Gaussian kernel. can Illustratively, the image data may include data from a plurality of images acquired from a plurality of cameras and transformed into a common coordinate space. The image data may also be smoothed using a smoothing (weighting) kernel, which may include a 1D Gaussian kernel or other weighting function. The edge points may be selected based on a threshold defined by absolute contrast and a normalized contrast based on an average intensity of the image data. Illustratively, 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 gradient values of the edge points. Constructed and arranged to identify lines with polarity variation, including mixed polarities of features. Also illustratively, the edge point extractor is arranged to find a plurality of gradient magnitude maxima in each of the gradient projection sub-regions. Each of these gradient magnitude maxima 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 determines a consistency between at least one of the extracted plurality of edge points and at least one candidate line of the found plurality of lines by calculating a metric. can be arranged to determine. The metric may be based on a distance of the at least one edge point from the candidate line and an angular 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)의 변경을 도시하는 도면.
DETAILED DESCRIPTION OF THE INVENTION The following description of the invention refers to the accompanying drawings.
1 depicts an exemplary vision system arrangement for acquiring an image of an object, including a vision system processor and multiple edge features including an edge-discovery tool/module, in accordance with an exemplary embodiment;
Fig. 2 shows an overview of a system and method for extracting edge points and finding lines from acquired images, in accordance with an exemplary embodiment;
3 is a flow diagram of a procedure for extracting an edge point according to the system and method of FIG. 2;
FIG. 4 depicts a gradient field projection on a region of an image containing edge features that is part of the procedure for extracting edge points of FIG. 3 ; FIG.
Fig. 5 shows the application of a Gaussian kernel to an image to smooth the image, for use in the procedure for extracting edge points of Fig. 3;
FIG. 6 shows a gradient field projection comprising applying a Gaussian kernel to smooth the projection for use in the procedure for extracting edge points of FIG. 3 ; FIG.
FIG. 7 graphically illustrates an overview of the procedure for extracting the edge point of FIG. 3 , comprising applying Gaussian kernels and calculating an absolute contrast threshold and a normalized contrast threshold for the edge points; FIG.
8 is a graph showing a region of qualified contrasts for edge points, with a sufficient absolute contrast threshold and a normalized contrast threshold;
Fig. 9 is a flow diagram of a procedure for discovering a line based on edge points found in Fig. 3 using the exemplary RANSAC process in accordance with an exemplary embodiment;
10 and 11 show erroneous and correct alignment of edge points for closely spaced parallel line features, respectively;
12 and 13 respectively illustrate correct and erroneous alignment of edge points for intersecting line features that can be analyzed according to the line-finder of an exemplary system and method;
14-17 illustrate light-to-dark polarity, dark-to-polarity that can be analyzed according to the line-finder of exemplary systems and methods. Figures each showing examples of lines representing either polarity of light polarity), light to dark polarity or dark to bright polarity, or a mixed polarity thereof; and
Fig. 18 shows 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 dashed lines). Exemplary camera(s) 110 , 112 include an image sensor (or imager) S and associated electronics that acquires image frames and transmits the image frames to a vision system process (processor) 130 . ), and this image frame may be instantiated in an independent processor and/or computing device 140 . Camera 110 (and 112 ) includes suitable lenses/optics 116 to focus on the scene containing object 150 under examination. Camera 110 (and 112 ) may include internal and/or external illuminators (not shown) that operate in accordance with an image acquisition process. Computing device 140 may be any acceptable processor-based system capable of storing and manipulating image data in accordance with example embodiments. For example, computing device 140 may include a PC (shown), server, laptop, tablet, smartphone, or other similar device. Computing device 140 may include suitable peripherals such as a bus-based image capture card interconnected to the camera. In alternative embodiments, 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. Computing device 140 optionally selects an appropriate display 142 that can support vision system tools provided to vision system processor (processor) 130 and a suitable graphical user interface (GUI) that can operate in accordance with processor 132 . can be included as It is understood that the display may be omitted in various embodiments and/or provided only for setup functions and service functions. The vision system tool may be any acceptable software and/or acceptable for use in inspecting an object, such as commercially available from Cognex Corporation of Natick, Massachusetts. It can be part of a hardware package. The computing device may include associated user interface (UI) components including, for example, a keyboard 144 and a mouse 146 , and 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)을 한정한다.The camera(s) 110 (and 112 ) images some or all of the object 150 positioned within the scene. Each camera defines an optical axis OA around which a field of view is established based on optics 116 , focal length, and the like. The object 150 includes a plurality of edges 152 , 154 and 156 each arranged in several directions. For example, the object edges may include an edge of a 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 the object, 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 define an exemplary orthogonal x-axis, y-axis and z-axis, and 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, vision system process 130 interacts with one or more applications/processes (executed on computing device 140 ) that collectively include a set of vision system tools/processes 132 . It works. These tools may include several conventional specialized applications used to analyze image data - for example, using various calibration tools and affine transform tools to transform the acquired image data. It can be transformed into a predetermined (eg common) coordinate system. Tools may be included to convert image grayscale intensity data to a binary image based on a predetermined threshold. Additionally, tools may be provided to analyze gradients in intensity (contrast) between adjacent image pixels (and subpixels).

비전 시스템 프로세스(프로세서)(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 판독, 부분/표면 검사 등에 제공될 수 있다.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 depicts an overview of a line-discovery procedure 200 in accordance with 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 corner regions of the object 150 described above. An edge point extractor 220 processes the input image 210 to obtain a set 230 of candidate edge points including edge points 232 and 234 present along edges 212 and 214, respectively. Edge points 232 , 234 and their associated data (eg, intensity gradient information described below) are provided to a recursive line finder 240 , which provides information about the selected edge points. It performs a series of iterative processes. The goal of the iterative process is to attempt 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 that use the information - eg, alignment processes, robotic manipulations, inspections, ID readings, part/surface inspections, and the like.

도 3을 참조하면, 도 3은 일 실시예에 따라 에지점들을 추출하는 절차를 설명한다. 장면에서 발견될 에지 특징부를 가지는 물체 또는 표면을 포함하는 하나 이상의 이미지가 취득된다(단계 310). 이 이미지(들)는 단일 카메라 또는 복수의 카메라에 의해 추출될 수 있다. 어느 경우이든, 이미지 픽셀들은 단계(320)에서 적절한 교정 파라미터에 의해 새로운 좌표 공간 및/또는 공통 좌표 공간으로 (선택적으로) 변환될 수 있다. 이 단계는 아래에 설명된 바와 같이 이미지를 평활화하는 것을 더 포함할 수 있다. 특정 실시예에서, 복수의 카메라가 장면의 불연속적인 구역을 이미징하는 경우 - 예를 들어 더 큰 물체의 코너 구역에 집중하는 경우 - , 공통 좌표 공간은 카메라의 시야들 사이에 빈 구역(empty region)을 고려할 수 있다. 아래에 설명된 바와 같이, 이러한 시야들 사이에 연장되는 라인들(예를 들어 2개의 발견된 코너 구역들을 연결하는 물체 에지)이 예시적인 실시예의 시스템 및 방법에 의해 외삽될 수 있다. 라인들을 발견하는데 요구되는 에지점들이 단계(330)에서 구배장 사영을 사용하여 에지점 추출기에 의해 적절한 좌표 공간에서 이미지(들)로부터 추출된다. 먼저 각 픽셀에 대해 구배 값들이 연산되어, x 및 y 구배 성분에 대한 2개의 이미지가 생성된다. 이 이미지(들)는 많은 캘리퍼-같은 구역들에 걸쳐 구배장을 사영하는 것에 의해 더 처리된다. 세기 값을 사영하는 종래의 캘리퍼 도구와는 달리, 이 실시예에 따른 구배장을 사영하는 것에 의해, 구배 배향이 보존될 수 있고, 이는 아래에 설명된 바와 같이 후속 라인을-발견하는 프로세스를 촉진한다.Referring to FIG. 3 , FIG. 3 describes a procedure for extracting edge points according to an embodiment. One or more images including objects or surfaces having edge features to be found in the scene are acquired (step 310). These image(s) may be extracted by a single camera or multiple cameras. In either case, the image pixels may be (optionally) transformed into a new and/or common coordinate space with appropriate calibration parameters in step 320 . This step may further include smoothing the image as described below. In certain embodiments, when multiple cameras are imaging discrete regions of a scene - for example, focusing on a corner region 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) may be extrapolated by the system and method of an exemplary embodiment. The edge points required to find the lines are extracted from the image(s) in the appropriate coordinate space by an edge point extractor using gradient field projection in step 330 . Gradient values are first computed for each pixel, resulting in two images for the x and y gradient components. These image(s) are further processed by projecting a gradient field over many caliper-like zones. Unlike conventional caliper tools that project intensity values, by projecting a 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 containing the candidate edge features (caliper-like region) 400 is a gradient field (represented by a plurality of projections 410 , 420 , 430 ). Subject to a projection and searched over the (approximately) expected orientation of the edges in the search direction (arrow SD), the projection repeats over region 400 in the orthogonal projection direction (arrow PD). The edges in each projection (eg projection 420 ) are seen as local maxima in the gradient field 440 associated with that projection. In general, in the projection associated with an edge, a series of edge points exhibits 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 may be provided by default or by other mechanisms - eg by analyzing features in the image.

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

구배장을 계산한 후, 종래의 캘리퍼 도구에서 수행되는 균일한 가중이 아니라 가우시안-가중된 사영이 이 프로세스에 의해 수행된다. 따라서, 제2 입도 파라미터는, 구역(600)이 가우시안-평활화된 커널(610, 620, 630)을 받은 도 6에 도시된 바와 같이, 구배장 사영 동안 사용되는 1차원(1D) 가우시안 커널의 사이즈를 결정한다. 일반적인 동작 동안, 사용자는 이미지에 오버레이된 모든 추출된 에지들을 (GUI를 사용하여) 검증하고 나서, 이미지의 배경 잡음으로 인한 과도한 개수의 에지를 회피하면서, 발견될 라인을 따라 추출된 에지의 개수가 만족스럽게 보일 때까지, 입도 및 콘트라스트 임계값을 조절한다. 다시 말해, 이 단계에 의해 신호-대-잡음 비가 이미지 특성에 대해 최적화될 수 있다. 이 조절은 여러 실시예에서 디폴트 값을 사용하여 시스템에 의해 자동적으로 수행될 수도 있다. 가우시안 가중 함수를 사용하는 것은 (예를 들어) 균일한 가중을 하는 것을 포함하여 사영을 가중시키는 여러 접근법들 중 하나의 접근법인 것으로 이해된다.After calculating the gradient field, a Gaussian-weighted projection is performed by this process, rather than the uniform weighting done in conventional caliper tools. Thus, the second granularity parameter is the size of the one-dimensional (1D) Gaussian kernel used during gradient field projection, as shown in FIG. to decide During normal operation, the user verifies (using the GUI) all extracted edges overlaid on the image, and then the number of extracted edges along the line to be discovered, avoiding an excessive number of edges due to background noise in the image Adjust the particle size and contrast thresholds until they look satisfactory. In other words, by this step the signal-to-noise ratio can be optimized for the image characteristics. This adjustment may be performed automatically by the system using default values in various embodiments. It is understood that using a Gaussian weighting function is one of several approaches to weighting the projection, including (eg) 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 graphically illustrated in diagram 700 of FIG. 7 . Two granularity parameters, an isotropic Gaussian kernel 710 and a 1D Gaussian kernel 720 , are respectively shown in each half of the overall diagram 700 . 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, resulting in two gradient images 752 and 754 . These gradient images are also represented by g x and g y representing two orthogonal axes in a common coordinate space. In addition to the two gradient images, the intensity image 756 is also generally (1D Gaussian kernel 720 ) and subjected to a smoothing, decimation and projection process 760 (using a Gaussian-weighted projection 770 ) based on the The result is a projection profile of gradient image 772 (g x ), image 774 (g y ), and intensity image 776 .

또한 절차(300)(도 3)에서 단계(350)를 참조하면, x 및 y 구배 이미지들의 1D 사영 프로파일들을 결합하는 것에 의해 자격 있는 에지점(qualified edge point)들이 추출된다. 이것은 세기 이미지에 기초하여 원시(raw) 콘트라스트를 계산하는 것(780)과 정규화된 콘트라스트를 계산하는 것(790)을 사용하여 달성된다. 보다 구체적으로, 각 임계값을 초과하는 원시 사영된 구배 크기와 정규화된 사영된 구배 크기를 갖는 임의의 국부적인 피크는 다음 예시적인 수식에 따라 후속 라인을 발견하기 위한 후보 에지점으로 고려된다: Referring also to step 350 in procedure 300 (FIG. 3), qualified edge points are extracted by combining the 1D projection profiles of the x and y gradient images. This is accomplished using compute 780 the raw contrast and compute 790 normalized contrast based on the intensity image. More specifically, any local peak with a raw projected gradient size and a normalized projected gradient size that exceeds each threshold 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 the values of the x-gradient and y-gradient projections, respectively, at the pixel location, I is the intensity, T ABS is the absolute contrast threshold for the raw projected gradient size, and T NORM is the intensity - 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 both the absolute and normalized contrasts of a point exceed the respective thresholds, only this point is considered as a candidate edge point. This is shown as upper right quadrant 810 in the exemplary graph 800 of normalized contrast threshold (T NORM ) versus absolute contrast threshold (T ABS ). The use of dual thresholds (absolute and normalized thresholds) is generally different from the conventional approach, which generally uses absolute contrast thresholds. The benefit of the dual contrast threshold is evident when, illustratively, the image contains both a dark intensity region and a bright intensity region containing edges of interest. In order to detect edges in dark areas of the image, it is desirable to set a low contrast threshold. However, this low contrast setting can detect false edges in bright parts of the image. Conversely, 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 a second normalized contrast threshold in addition to the traditional absolute contrast threshold, the system can properly detect edges in both dark and bright regions, and avoid detecting false edges in bright regions of the image. can Thus, through the use of dual contrast thresholds, it is possible to detect relevant edges while avoiding spurious edges, thereby maximizing the speed and robustness of the step of finding subsequent lines in the overall process. function to

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

p = (x,y,gx,gy,gm,go,I,gm/I,m,n)로 표현되는데,It is expressed as 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 computed gradient size and orientation, I is the intensity at the edge point location, g m /I is the intensity-normalized contrast obtained by dividing the gradient size (g m ) by the intensity (I), m is is the image index, and n is the projection area index. As with standard caliper tools, the position of the edge points can be interpolated to improve accuracy.

일반적으로 에지점을 추출하는 프로세스는, 예상된 라인 각도와 실질적으로 매칭(match)하는 단일 방향으로 구배장 사영을 실행하도록 동작하는 것으로 이해된다. 그리하여 도구는 이 각도의 에지에 가장 민감하고, 그 감도는 다른 각도의 에지에서는 점진적으로 떨어지고, 여기서 떨어지는 율은 구배장 사영 길이를 간접적으로 결정하는 입도 설정에 의존한다. 그 결과, 이 프로세스는, 사용자에 의해 지정된 각도 범위에 따라, 예상된 라인 각도"부근(near)"의 각도를 갖는 라인을 발견하는 것으로 제한된다. 이 프로세스는 직교가 아닌 라인을 발견하도록 적응된 것이지만, 이 프로세스는 여러 실시예에서 직교 방향을 포함하는 다수의 방향으로 사영을 수행하는 것에 의해 360도에 걸쳐 임의의 각도 라인을 발견(전방향 라인을 발견)하도록 일반화될 수 있는 것으로 고려된다.It is generally understood that the process of extracting edge points operates to execute a gradient field projection in a single direction that substantially matches the expected line angle. Thus, the tool is most sensitive to edges at this angle, and the sensitivity drops off gradually at edges at other angles, where the rate of drop depends on the granularity setting, which indirectly determines the gradient projection length. As a result, this process is limited to finding lines that have an angle "near" the expected line angle, according to the angular range specified by the user. Although this process is adapted to find non-orthogonal lines, this process in various embodiments finds arbitrary angular lines over 360 degrees by performing projection in multiple directions, including orthogonal directions (omnidirectional lines). 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 that exceed a threshold are provided to a line-finder in accordance with an exemplary embodiment. For example, the line-finder operates recursively and uses (eg) RANdom SAmple Concensus (RANSAC)-based technology. See also line-discovery procedure 900 in FIG. 9 . At step 910 , the user selects the expected line in the image along with (eg) the expected angle, angular tolerance, distance tolerance, and (exemplarily) the minimum coverage score (generally defined below) via the GUI. Specifies the maximum number of This parameter is used in the line-finder to run the next process. This line is found for each subregion of the image by running the RANSAC line finder recursively, and edge point outliers from one step become the input points for the next step. Accordingly, at step 920, procedure 900 selects a pair of edge points that are part of the group of edge points identified as outliers in the edge-discovery process. Procedure 900 attempts to fit the model line to selected edge points based on matching gradient values that match the model line (within the selected tolerance range). At step 924 , one or more line candidate(s) from step 922 are returned. Each line-discovery step returns a candidate line, its outliers and outliers. The returned line(s) are subjected to an operation on stationary edge points having positions and gradients that coincide with the line candidates (step 926). At step 928 , the candidate line with the maximum outlier count is identified. The line-discovery phase described above (steps 920-928) ends when the maximum number of allowed RANSAC iterations is reached (decision step 930). The maximum number of iterations within each line-finding phase is computed automatically using a user-specified assurance level and an internally computed worst-case ratio of outliers. Each line discovery step returns the line with the maximum number of captured edge points among all iterations, according to user-specified fit tolerances, geometric constraints and polarity. Each edge point can only be assigned to a list of normal values of a single line, and each line is allowed to contain at most one edge point from each projection zone. The gradient orientation of the edge point, along with its position, is used to determine whether the edge point should be included in the candidate line's intrinsic list. In particular, the edge points should have a gradient orientation consistent with the angle of the candidate line.

판정 단계(930)가 더 많은 반복이 허용되는 것으로 결정하면, 최상의 정상치 후보로부터 이상치가 라인 후보를 발견하는데 사용하기 위해 RANSAC 프로세스(단계 920)로 리턴된다(단계 940).If decision step 930 determines that more iterations are allowed, then the outliers from the best outlier 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 regions are randomly selected, and there may be a line that fits these two points. The resulting candidate line receives additional consideration only if the angle of the candidate line coincides with the draft angle of the two edges at the pair of points and if the angle of the line matches the user-specified uncertainty range. In general, the draft direction of the edge point is nominally orthogonal, but is allowed to differ by a user-configured angular tolerance. If the candidate line passes these initial tests, the number of stationary edge points is evaluated, and if not, a new RANSAC iteration is initiated. An edge point is considered a normal value of a candidate line only if its draft direction and location coincide with a line based on a user-specified draft angle and distance tolerance.

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

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

다중-라인 파인더는, 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 result if two line results intersect each other in the inspection zone. 10 and 11, for closely spaced parallel lines 1010 and 1020, often erroneous line results (i.e., FIG. 10) may be obtained due to the statistical nature of the RANSAC procedure. . However, when such an error occurs, the correct line with a reduced-fit residual and a coverage score often increased by exchanging a group of points of normal value (arrow 1120 in group 1110 in FIG. 11 ) can be found Swapping points 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 , the coverage scores swap points (arrows within group 1240 in FIG. 12 ). If decremented after 1230), the original result obtained before exchanging is maintained to successfully detect intersecting lines 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 a line. In an alternative embodiment, candidate points may be selected according to a displacement established between these points, or the image may be processed using (eg) an exhaustive search technique. Accordingly, reference to a RANSAC technique as used herein should be interpreted broadly to include several similar point-fit techniques.

이 시스템 및 방법의 추가적인 기능이 제공될 수 있다. 이들 기능은 혼합된-극성을 지원하는 것, 사영 구역 폭을 자동 연산하는 것, 다중-뷰 라인 발견을 지원하는 것, 및 입력 이미지에서 미리-뒤틀림(pre-warpage)을 제거하여 광학적 왜곡을 제거하는 것을 포함한다. 이들 기능은 아래에서 더 설명된다.Additional functionality of these systems and methods may be provided. These features support mixed-polarity, automatically compute the projected area width, 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개의 설정의 라인-발견 결과는 다음 도면에서 도시된다. 예시적인 실시예에서, 이 시스템 및 방법은 반대 극성의 에지점들을 포함하는 단일 라인을 발견할 수 있는 혼합된-극성 설정을 포함할 수 있다. 이것은 단일 라인의 모든 에지점들이 어느 하나의 극성이지만 - 단 하나의 극성인"어느 하나의" 극성만을 구비하는 종래의 설정과는 상이하다. 혼합된-극성 설정은, 다른 적용 중에서 (예를 들어) 교정 판의 밝은 체커보드와 어두운 체커보드를 분석하는데 사용될 때 유리할 수 있다.14-16 , an exemplary embodiment line-discovery system and method provides a standard bright-to-dark polarity, dark-to-bright polarity, and standard bright-to-dark polarity for contrast between found edges, and Either polarity setting (each) is generally supported. Furthermore, this system and method may further support a mixed-polarity setup (FIG. 17) in which the bright-to-dark polarity and dark-to-bright polarity characteristics are both visible on the same line. The line-finding results of all four settings are shown in the following figure. In an exemplary embodiment, the systems and methods may include a mixed-polarity setup that may find a single line containing edge points of opposite polarity. This differs from the conventional setup where all edge points of a single line have either polarity - but only one polarity, "either". The mixed-polarity setting can be advantageous when used to analyze light and dark checkerboards of (eg) calibration plates, among other applications.

사용자는 라인을-발견하는 개선된 시프트 불변성(shift invariance)을 선택할 수 있다. 이러한 경우에, 에지점 추출기는 실질적으로 오버랩된 사영 구역을 사용하여 결과 안정성을 개선시킨다. 구역들이 오버랩하지 않는 경우, 고려되는 픽셀들은 이미지가 시프트될 때 사영 구역으로부터 잠재적으로 이동하여, 그 결과, 라인-발견 결과에 불량한 시프트 불변성을 초래할 수 있다. 오버랩된 사영 구역들은 고려되는 픽셀들이 사영 구역들에 의해 연속적으로 커버되는 것을 보장한다. 오버랩된 사영 구역들이 사용된 경우, 증분적 연산을 수행하여 가능한 낮은 레벨의 최적화와 함께 속력을 유지할 수 있다.The user can select the improved shift invariance to find the line. In this case, the edge point extractor uses substantially overlapping projection regions to improve result stability. If the regions do not overlap, the pixels considered can potentially shift out of the projection region when the image is shifted, resulting in poor shift invariance in the line-finding result. The overlapping projection regions ensure that the pixels under consideration are continuously covered by the projection regions. When overlapping projection zones are used, incremental computations 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 line features. This may be desirable if the surface contains known line features of no interest (eg, barcodes that are analyzed by text, text, and any other structure, other mechanisms unrelated to the operation in which the lines are found). Thus, the edge point extractor may support image masking in which “don't care” regions in the image may be masked out, and “interest” regions may be masked in. When such masking occurs, the coverage scores of the found lines are illustratively re-weighted 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 illustrates 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 interest" in the image can be masked out. As shown, the found line 1810 is characterized as edge points of interest (based on the “interest” mask region 1820 ). These edge-of-interest points consist of an edge-of-interest outlier 1830 to line 1810 and an edge-of-interest outlier 1840 to line 1810 . Uninterested edge points 1850 on line 1810 exist between regions of interest 1820 of the mask as shown in this example, and the coverage score is computed even if these uninterested edge points are normally present on the line. not included in A potential location 1860 of the edge points along line 1810 is also determined as shown. This potential location is located between known points with a predictable spacing 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 in the mask. So the coverage score is changed to:

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

본 명세서에서 시스템 및 방법에 따른 라인-발견 프로세스를 실행한 후, 발견된 라인들은 ((예를 들어) GUI를 통해) 사용자에 의해 지정된 분류 기준에 기초하여 여러 방식으로 분류될 수 있다. 사용자는 정상치 커버리지 스코어, 세기 또는 콘트라스트와 같은 내적(intrinsic) 분류 조치로부터 선택될 수 있다. 사용자는 또한 부호 있는 거리 또는 상대 각도와 같은 외적(extrinsic) 분류 조치로부터 선택할 수 있다. 외적 분류 조치를 사용할 때, 사용자는 발견된 라인들의 외적 조치를 연산하는 기준 라인 세그먼트를 지정할 수 있다.After executing the line-discovery process according to the systems and methods herein, the found lines may be classified in several ways based on classification criteria specified by the user (eg (via a GUI)). The user may select 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 from which to compute the extrinsic measure of the found lines.

일반적으로 전술된 바와 같이, 이 시스템 및 방법은 상이한 시야로부터 이미지 벡터를 프로세스로 전달할 수 있는 MFOV(Multi-Field-of-View) 오버로드를 포함할 수 있다. 이미지들은 교정에 기초하여 공통 클라이언트 좌표 공간에 모두 있어야 한다. 전술된 바와 같이, 이 기능은 다수의 카메라가 단일 부분의 부분 영역들을 캡처하는데 사용되는 응용 시나리오에서 극히 유리할 수 있다. 에지점들은 구배 정보를 유지하기 때문에, (두 FOV에서의 구배들이 각 FOV에서 주어진 라인 배향과 정렬에 매칭할 때) 시야에 있는 갭들 사이에 사영된 라인 특징부들은 여전히 분석될 수 있다.As generally noted above, the systems and methods may include Multi-Field-of-View (MFOV) overloads that may pass image vectors from different fields of view to the process. The images should all be in a common client coordinate space based on the calibration. As mentioned above, this functionality can be extremely advantageous in application scenarios where multiple cameras are used to capture partial regions of a single part. Because edge points retain gradient information, line features projected between gaps in the field of view (when 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 (ie, does not require) distortion to be removed (in the image) in order to remove non-linear distortion, assuming the distortion is not severe. If the image is not warped, the system and method can still detect candidate edge points and map the point's position and gradient vector through a non-linear transformation.

이 시스템 및 방법 및 여러 대안적인 실시예/개선에 따라 제공된 라인-파인더는 여러 조건 하에서 다수의 라인 특징부를 결정하는 효과적이고 강력한 도구인 것이 분명하다. 일반적으로, 이 시스템 및 방법은 라인 특징부를 발견하는데 사용될 때, 이미지에서 발견되는 최대 라인 개수에 특정 제한을 갖지 않는다. 메모리와 연산 시간만이 발견될 수 있는 라인의 개수에 실제적 제한을 준다.It is evident that the line-finder provided in accordance with 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 have no particular limitation on the maximum number of lines found in an image when used to discover line features. Only memory and computation time put a practical limit on the number of lines that can be discovered.

상기는 본 발명의 예시적인 실시예의 상세한 설명이다. 본 발명의 사상과 범위를 벗어남이 없이 여러 변형과 추가를 할 수 있을 것이다. 전술된 여러 실시예 각각의 특징부는 적절한 경우 다른 설명된 실시예의 특징부와 결합되어, 연관된 새로운 실시예에서 다수의 특징부 조합이 제공될 수 있다. 나아가, 상기는 본 발명의 장치 및 방법의 다수의 별개의 실시예를 설명하지만, 본 명세서에서 설명된 것은 본 발명의 원리의 적용을 단지 예시하는 것이다. 예를 들어, 본 명세서에 사용된 바와 같이 "프로세스" 및/또는 "프로세서"라는 용어는 여러 전자 하드웨어 및/또는 소프트웨어 기반 기능과 성분을 포함하는 것으로 넓게 해석되어야 한다(그리고 대안적으로 기능 "모듈" 또는 "요소"이라고 언급될 수 있다). 나아가, 도시된 프로세스 또는 프로세서는 다른 프로세스 및/또는 프로세서와 결합되거나 또는 여러 서브-프로세스 또는 프로세서로 분할될 수 있다. 이러한 서브-프로세스 및/또는 서브-프로세서는 본 명세서에 개시된 실시예에 따라 여러 방식으로 결합될 수 있다. 또한, 본 명세서에서 임의의 기능, 프로세스 및/또는 프로세서는 전자 하드웨어, 프로그램 명령의 비-일시적인 컴퓨터-판독가능한 매체로 구성된 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있는 것으로 명시적으로 고려된다. 추가적으로, 본 명세서에 사용된 바와 같이 "수직", "수평", "위로", "아래로", "하부", "상부", "측면", "전방", "후방", "좌측", "우측" 등과 같은 여러 방향과 배치 용어는 상대적인 관례로서만 사용된 것일 뿐, 중력의 작용 방향과 같은 고정된 좌표 공간에 대해 절대 방향/배치로 사용된 것이 아니다. 추가적으로, "실질적으로" 또는 "대략"이라는 용어는 주어진 측정값, 값 또는 특성에 사용된 경우, 이 용어는 원하는 결과를 달성하는 정상 동작 범위 내에 있는 양을 말하지만, 이것은 시스템의 내적 부정확성과 허용된 공차 내 에러(예를 들어, 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 can be combined with features of other described embodiments, where appropriate, to provide multiple feature combinations in associated new embodiments. Furthermore, while the foregoing 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 interpreted broadly to include various electronic hardware and/or software-based functions and components (and alternatively, functional “modules”). " or "an element"). Furthermore, the illustrated process or processor may be combined with other processes and/or processors or divided into several sub-processes or processors. Such sub-processors and/or sub-processors may be combined in various ways according to the embodiments disclosed herein. Further, it is expressly stated herein that any function, process, and/or processor may be implemented using electronic hardware, software consisting of a non-transitory computer-readable medium of program instructions, or a combination of hardware and software. are considered Additionally, as used herein, "vertical", "horizontal", "up", "down", "lower", "upper", "side", "front", "rear", "left", Various orientation and orientation terms, such as "right", are used only as relative conventions and are not used as absolute orientations/positions with respect to 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, refer to an amount that is within the normal operating range that will achieve the desired result, although this is not necessarily due to the internal inaccuracies of the system and the tolerance of the system. Includes some variation due to within-tolerance error (eg, 1-5 percent). Accordingly, this description should be construed as illustrative only and not intended to limit the scope of the present invention.

Claims (1)

취득된 이미지에서 라인 특징부들을 발견하는 시스템으로서,
라인 특징부들을 포함하는 장면의 이미지 데이터를 수신하고 에지점(edge point) 추출기를 구비하는 비전 시스템 프로세서; 및
라인-파인더(line-finder)를 포함하고,
상기 에지점 추출기는:
(a) 2개의 구배(gradient) 성분 이미지들 및 세기(intensity) 이미지를 생성하기 위해 상기 취득된 이미지를 구배장(gradient field) 계산 프로세스에 적용하고;
(b) 상기 2개의 구배 성분 이미지들 및 상기 세기 이미지에 가중된 사영(weighted projection)을 적용하여 상기 2개의 구배 성분 이미지들 및 사영 이미지의 1차원(1D) 사영 프로파일들을 생성하고;
(c) 상기 2개의 구배 성분 이미지들의 1D 사영 프로파일들을 결합하여 후보 에지점들을 추출하고,
상기 라인-파인더는 상기 추출된 에지점들과 일치하는(consistent) 복수의 라인들을 생성하는 것을 특징으로 하는, 시스템.
A system for finding line features in an acquired image, comprising:
a vision system processor receiving image data of a scene comprising line features and having an edge point extractor; and
including a line-finder;
The edge point extractor is:
(a) applying the acquired image to a gradient field calculation process to generate two gradient component images and an intensity image;
(b) applying a weighted projection to the two gradient component images and the intensity image to produce one-dimensional (1D) projection profiles of the two gradient component images and a projective image;
(c) extracting candidate edge points by combining the 1D projection profiles of the two gradient component images;
and the line-finder generates a plurality of lines consistent with the extracted edge points.
KR1020220063255A 2015-11-02 2022-05-24 System and method for finding lines in an image with a vision system KR102649038B1 (en)

Applications Claiming Priority (5)

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

Related Parent 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
KR20220075290A true KR20220075290A (en) 2022-06-08
KR102649038B1 KR102649038B1 (en) 2024-03-18

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 Before (2)

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

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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130010833A (en) * 2011-07-19 2013-01-29 삼성전자주식회사 Method for editing static digital combined images comprising images of multiple objects
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 (5)

* 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
JP2014092922A (en) * 2012-11-02 2014-05-19 Tottori Univ Detector, detection method, and detection program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130010833A (en) * 2011-07-19 2013-01-29 삼성전자주식회사 Method for editing static digital combined images comprising images of multiple objects
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
JP2023120281A (en) 2023-08-29
KR102153962B1 (en) 2020-09-10
JP2017090450A (en) 2017-05-25
KR20170051369A (en) 2017-05-11
KR102649038B1 (en) 2024-03-18
JP6463593B2 (en) 2019-02-06
KR102402906B1 (en) 2022-05-26
KR20190050311A (en) 2019-05-10

Similar Documents

Publication Publication Date Title
US11854173B2 (en) System and method for finding lines in an image with a vision system
KR102402906B1 (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
JP6899189B2 (en) Systems and methods for efficiently scoring probes in images with a vision system
US9946947B2 (en) System and method for finding saddle point-like structures in an image and determining information from the same
JP2024016287A (en) System and method for detecting lines in a vision system
Zhang et al. A new algorithm for accurate and automatic chessboard corner detection
Kalinić et al. A novel image similarity measure for image registration
US20240078801A1 (en) System and method for finding and classifying lines in an image with a vision system
CN110570439B (en) System and method for finding and classifying lines in an image using a vision system
KR20240058827A (en) System and method for finding and classifying lines in an image with a vision system
CN109670519B (en) Image processing apparatus and image processing method
Seth et al. An Analytic Approach of Edge Detection Gradient Operators [J]
CN116958058A (en) Lens dirt detection method and device and image detection equipment
Pereira et al. Parallelized automatic false defect detection using GPUs during mask inspection
Wedekind et al. Using generic image processing operations to detect a calibration grid
CN112863408A (en) Screen resolution detection method and device

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant