KR102649038B1 - 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 PDFInfo
- Publication number
- KR102649038B1 KR102649038B1 KR1020220063255A KR20220063255A KR102649038B1 KR 102649038 B1 KR102649038 B1 KR 102649038B1 KR 1020220063255 A KR1020220063255 A KR 1020220063255A KR 20220063255 A KR20220063255 A KR 20220063255A KR 102649038 B1 KR102649038 B1 KR 102649038B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- gradient
- line
- image data
- edge points
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000009499 grossing Methods 0.000 claims description 10
- 239000013598 vector Substances 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000006059 cover glass Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- YLJREFDVOIBQDA-UHFFFAOYSA-N tacrine Chemical compound C1=CC=C2C(N)=C(CCCC3)C3=NC2=C1 YLJREFDVOIBQDA-UHFFFAOYSA-N 0.000 description 1
- 229960001685 tacrine Drugs 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/143—Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/162—Segmentation; Edge detection involving graph-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/181—Segmentation; Edge detection involving edge growing; involving edge linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic 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 over multiple sub-regions, and generates a number of edge points with positions and gradients. Detect extreme values (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 layer points whose positions and slopes match the model (consistent) Compute a full set of inlier points). The candidate line with the maximum inner layer count is maintained and a set leaving the outlier points is derived. The process iteratively applies the line fitting operation and subsequent set of outer layers to find multiple line results. This process can be accomplished on a thorough RANSAC basis.
Description
관련 출원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 U.S. provisional patent application entitled “SYSTEM AND METHOD FOR FINDING LINES IN AN IMAGE WITH A VISION SYSTEM,” filed November 2, 2015, which is hereby incorporated by reference in its entirety. Claims the benefit of serial number 62/249,918.
기술 분야technology field
본 발명은 머신 비전 시스템에 관한 것으로, 보다 구체적으로 취득된 이미지에서 라인 특징부(line feature)를 발견하는 비전 시스템 도구에 관한 것이다.The present invention relates to machine vision systems, and more specifically to vision system tools for discovering line features in acquired images.
머신 비전 시스템(본 명세서에서, 단순히 "비전 시스템"이라고도 언급됨)은 제조, 물류, 및 산업계에서 여러 작업에 사용된다. 이러한 작업은 표면과 부분의 검사, 조립 동안 물체의 정렬, 패턴과 ID 코드의 판독, 및 추가적인 프로세스에 사용하기 위해 시각적 데이터가 취득되고 해석되는 임의의 다른 동작을 포함할 수 있다. 비전 시스템은 일반적으로 관심 물체 또는 관심 대상을 포함하는 장면 이미지를 취득하는 하나 이상의 카메라를 사용한다. 이 물체/대상은 고정되어 있거나 또는 상대적으로 움직일 수 있다. 움직임은 로봇에 의해 부분들을 조작하는 경우와 같이 비전 시스템에 의해 유도된 정보에 의해 제어될 수도 있다.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 operation where visual data is acquired and interpreted for use in further processing. Vision systems typically use one or more cameras to acquire images of objects of interest or scenes containing objects of interest. This object/object may be stationary or relatively movable. Movement may also be controlled by information derived from a vision system, such as when manipulating parts by a robot.
비전 시스템의 공통 작업은 이미지에서 라인 특징부를 발견하고 특성화하는 것이다. 이러한 라인 특징부를 식별하고 분석하는데 여러 도구가 사용된다. 일반적으로, 이 도구는 이미지의 일부분에서 일어나는 급격한 콘트라스트(sharp contrast) 차이에 의존한다. 예를 들어 캘리퍼 도구를 사용하여 이 콘트라스트 차이를 분석하여, 콘트라스트 차이를 갖는 이미지 내 개별 점들이 라인-같은 특징부로 조립될 수 있는지 여부를 결정한다. 만약 조립될 수 있다면, 이미지에서 라인이 식별된다. 특히, 에지점(edge point)들을 발견하는 도구와, 라인을 점들에 맞추는(fit) 시도를 하는 도구는 서로 독립적이다. 이것은 처리 오버헤드를 증가시키고 신뢰성을 감소시킨다. 이미지가 다수의 라인을 포함하는 경우, 이들 도구는 이 라인을 정확히 식별하는 능력이 제한될 수 있다. 나아가, 이미지에서 단일 라인을 발견하도록 설계된 전통적인 라인-발견 도구는, 이미지가 유사한 배향과 극성을 갖는 다수의 근접 이격된 라인들을 포함할 때, 사용하는데 문제가 있을 수 있다.A common task in vision systems is discovering and characterizing line features in images. Several tools are used to identify and analyze these line features. Typically, this tool relies on sharp contrast differences in parts of the image. This contrast difference can be analyzed, for example using 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, the line is identified in the image. In particular, the tool for finding edge points and the tool for attempting to fit lines to points are independent of each other. This increases processing overhead and reduces reliability. If an image contains multiple lines, these tools may be limited in their 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) 기술에 기초할 수 있다.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 projects By detecting a plurality of gradient extrema within the range, a plurality of edge points with associated positions and gradients are calculated. Next, the process iteratively selects two edge points, fits model lines to these edge points, and, if the gradients of these edge points are consistent with the model line, then the positions consistent with the model line. Compute the entire set of inlier points with gradients. The candidate line with the maximum normal count is retained as the line result, and the remaining set of outlier points is derived. The process iteratively applies a line fitting operation to this and subsequent outlier sets to discover multiple line results. The line-fitting process can be performed throughout, or can 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 example embodiment, a system for discovering 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 discovers edge points based on the intensity gradient images. A line-finder fits the edge points to one or more lines based on the intensity gradient at the edge points. Illustratively, the line finder operates a RANSAC-based process to fit normal edge points to new lines, including iteratively defining lines from outlier edge points with respect to previously defined lines. The edge point extractor performs a gradient field projection of the line-feature-containing regions of the intensity gradient images. Illustratively, the gradient field projection is oriented along a direction set in response to the expected orientation of one or more of the line features, and the gradient field projection may define granularity based on a Gaussian kernel. You can. Exemplarily, the image data may include data from a plurality of images acquired from a plurality of cameras and converted to 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 normalized contrast based on the average intensity of the image data. Illustratively, the line finder swaps edge points representing parallel lines or portions of intersecting lines to correct erroneous orientation, and/or determines the line finder based on the gradient values of the edge points. Constructed and arranged to identify lines with polarity variation, including mixed polarities of features. Additionally, exemplarily, 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 maximums 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 consistency between at least one edge point among the extracted plurality of edge points and at least one candidate line among the discovered plurality of lines by calculating a metric. can be arranged to decide. This metric may be based on the distance of the at least one edge point from the candidate line, and the angular difference between the gradient direction of the edge point and the 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 illustrates an example 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 example embodiment;
Figure 2 shows an overview of a system and method for extracting edge points and finding lines from an acquired image, according to an example embodiment;
Figure 3 is a flow chart of a procedure for extracting edge points according to the system and method of Figure 2;
Figure 4 shows a gradient field projection on a region of the image containing edge features that are part of the edge point extraction procedure of Figure 3;
Figure 5 illustrates applying a Gaussian kernel to an image to smooth it for use in the edge point extraction procedure of Figure 3;
Figure 6 shows a gradient field projection including applying a Gaussian kernel to smooth the projection, for use in the edge point extraction procedure of Figure 3;
Figure 7 graphically outlines the procedure for extracting edge points of Figure 3, including applying Gaussian kernels and calculating absolute and normalized contrast thresholds for the edge points;
Figure 8 is a graph showing the region of qualified contrasts for edge points, with sufficient absolute contrast threshold and normalized contrast threshold;
Figure 9 is a flow diagram of a procedure for finding a line based on edge points found in Figure 3 using an example RANSAC process according to an example embodiment;
Figures 10 and 11 show error and correct alignment of edge points for closely spaced parallel line features, respectively;
12 and 13 illustrate correctly and erroneously aligned edge points, respectively, for intersecting line features that can be analyzed according to the line-finder of the example system and method;
14-17 illustrate light-to-dark polarity, dark-to-light polarity that can be analyzed according to the line-finder of the example system and method. light polarity), a diagram each showing an example of a line representing either a light-to-dark polarity or a dark-to-light polarity, or a mixed polarity thereof; and
Figure 18 illustrates the change in coverage score for lines found considering 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 example vision system arrangement 100 that may be used in accordance with an example 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 acquire image frames and transmit the image frames to a vision system processor 130. ), and this image frame may be instantiated in an independent processor and/or computing device 140. Cameras 110 (and 112) include appropriate lenses/optics 116 to focus on a 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. Computational 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), a server, a laptop, a tablet, a smartphone, or other similar device. Computational 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 fully contained within the camera body itself and may be networked with other PCs, servers, and/or camera-based processors to share and process image data. Computing device 140 may optionally display a suitable display 142 capable of supporting vision system tools provided to vision system processor 130 and a suitable graphical user interface (GUI) capable of operating in accordance with processor 132. It can be included. 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 may include any acceptable software and/or software acceptable for use in inspecting an object, such as commercially available from Cognex Corporation, Natick, MA. It may be part of a hardware package. The computing device may include associated user interface (UI) components, including, for example, a keyboard 144 and mouse 146, and a touchscreen in 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) image some or all of an object 150 located within the scene. Each camera defines an optical axis (OA), and a field of view is established around this optical axis based on optics 116, focal length, etc. Object 150 includes a plurality of edges 152, 154, and 156 respectively arranged in various directions. For example, object edges may include the edge of a cover glass mounted within a smartphone body. By way of example, the camera(s) may image the entire object or a specific location (eg, a corner where glass meets the body). A (common) coordinate space can be established with respect to the object, one of the cameras, or another reference point (e.g. a moving stage supporting the object 150). As shown, the coordinate space is represented by axes 158. These axes define exemplary orthogonal x, y, and z axes, 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 example embodiment, vision system process 130 interacts with one or more applications/processes (running on computing device 140) that collectively include a set of vision system tools/processes 132. It works. These tools may include a number of conventional specialized applications used to analyze image data - for example, using various calibration tools and affine transform tools to transform acquired image data. It can be converted to a predetermined (e.g. 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 example embodiment. Referring to FIG. 2, FIG. 2 graphically depicts an overview of a line-discovery procedure 200 according to an example embodiment. This procedure 200 consists of two main parts. 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 areas of object 150 described above. Edge point extractor 220 processes input image 210 to obtain a set of candidate edge points 230 including edge points 232 and 234 along edges 212 and 214, respectively. Edge points 232, 234 and their associated data (e.g. intensity gradient information described below) are provided to a recursive line finder 240, which determines the selected edge points. Performs a series of iterative processes. The goal of the iterative process is to attempt to match 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 - such as alignment processes, robotic manipulation, inspection, ID reading, part/surface inspection, etc.
도 3을 참조하면, 도 3은 일 실시예에 따라 에지점들을 추출하는 절차를 설명한다. 장면에서 발견될 에지 특징부를 가지는 물체 또는 표면을 포함하는 하나 이상의 이미지가 취득된다(단계 310). 이 이미지(들)는 단일 카메라 또는 복수의 카메라에 의해 추출될 수 있다. 어느 경우이든, 이미지 픽셀들은 단계(320)에서 적절한 교정 파라미터에 의해 새로운 좌표 공간 및/또는 공통 좌표 공간으로 (선택적으로) 변환될 수 있다. 이 단계는 아래에 설명된 바와 같이 이미지를 평활화하는 것을 더 포함할 수 있다. 특정 실시예에서, 복수의 카메라가 장면의 불연속적인 구역을 이미징하는 경우 - 예를 들어 더 큰 물체의 코너 구역에 집중하는 경우 - , 공통 좌표 공간은 카메라의 시야들 사이에 빈 구역(empty region)을 고려할 수 있다. 아래에 설명된 바와 같이, 이러한 시야들 사이에 연장되는 라인들(예를 들어 2개의 발견된 코너 구역들을 연결하는 물체 에지)이 예시적인 실시예의 시스템 및 방법에 의해 외삽될 수 있다. 라인들을 발견하는데 요구되는 에지점들이 단계(330)에서 구배장 사영을 사용하여 에지점 추출기에 의해 적절한 좌표 공간에서 이미지(들)로부터 추출된다. 먼저 각 픽셀에 대해 구배 값들이 연산되어, x 및 y 구배 성분에 대한 2개의 이미지가 생성된다. 이 이미지(들)는 많은 캘리퍼-같은 구역들에 걸쳐 구배장을 사영하는 것에 의해 더 처리된다. 세기 값을 사영하는 종래의 캘리퍼 도구와는 달리, 이 실시예에 따른 구배장을 사영하는 것에 의해, 구배 배향이 보존될 수 있고, 이는 아래에 설명된 바와 같이 후속 라인을-발견하는 프로세스를 촉진한다.Referring to FIG. 3, FIG. 3 explains a procedure for extracting edge points according to one embodiment. One or more images containing 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 (optionally) be transformed at step 320 into a new coordinate space and/or a common coordinate space with appropriate calibration parameters. This step may further include smoothing the image as described below. In certain embodiments, when multiple cameras are imaging discontinuous 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 cameras' fields of view. can be considered. As described below, lines extending between these fields of view (e.g., an object edge connecting two discovered corner regions) may be extrapolated by the systems and methods of example embodiments. 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 a gradient field projection at step 330. First, the gradient values are computed for each pixel, creating two images for the x and y gradient components. This image(s) is further processed by projecting the gradient field over many caliper-like regions. Unlike conventional caliper tools that project intensity values, by projecting the draft field according to this embodiment, the draft orientation can be preserved, which facilitates the subsequent line-finding process 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 region) 400 containing the candidate edge feature is divided into a gradient field (represented by a plurality of projections 410, 420, 430). The projection is taken and searched over the (approximately) expected orientation of the edges in the search direction (arrow SD), which is repeated over region 400 in the orthogonal projection direction (arrow PD). The edges in each projection (e.g., projection 420) appear as local maxima in the gradient field 440 associated with this projection. In general, a series of edge points in the projection associated with an edge represent an intensity gradient (vectors 552, 554) perpendicular to the direction of extension of this edge. As explained below, the user can define the projection direction based on the expected line orientation. Alternatively, this may be provided by default or by another mechanism - for example by analyzing features within 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 can choose to smooth the image using an isotropic Gaussian kernel. The first granularity determines the size of this Gaussian smoothing kernel. As shown in diagram 500 of FIG. 5, the image 210 is smoothed by applying a Gaussian kernel of an appropriate size (e.g., large 512, medium 514, small 516). Thus, the first granularity 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 is performed by this process rather than the uniform weighting performed in conventional caliper tools. Accordingly, the second granularity parameter is the size of the one-dimensional (1D) Gaussian kernel used during gradient field projection, as shown in Figure 6, where region 600 has received Gaussian-smoothed kernels 610, 620, and 630. Decide. During typical operation, the user verifies (using the GUI) all extracted edges overlaid on the image, and then determines how many extracted edges along the line are to be found, while 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 the image characteristics. This adjustment may be performed automatically by the system using default values in some embodiments. It is understood that using a Gaussian weighting function is one approach among 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 graphically depicted in diagram 700 of FIG. 7. Two granularity parameters, the isotropic Gaussian kernel 710 and the 1D Gaussian kernel 720, are 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 , which represent two orthogonal axes in a common coordinate space. In addition to the two gradient images, the processed intensity information is also used to calculate normalized contrast in one embodiment - an embodiment described below, so that the intensity image 756 is also typically (1D Gaussian kernel 720 ) is understood to be subjected to a smoothing, decimation and projection process (760) using a Gaussian-weighted projection (770) based on ). This results in 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 calculating raw contrast (780) and calculating normalized contrast (790) based on the intensity image. More specifically, any local peak with raw projected gradient magnitude and normalized projected gradient magnitude exceeding the respective threshold is considered a candidate edge point for finding the subsequent line according to the following example formula:
(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 -is the normalized contrast threshold for the normalized projected gradient magnitude.
특히, 점의 절대 콘트라스트와 정규화된 콘트라스트가 각 임계값을 모두 초과할 때, 이 점만이 후보 에지점으로 고려된다. 이것은, 정규화된 콘트라스트 임계값(TNORM) 대(versus) 절대 콘트라스트 임계값(TABS)의 예시적인 그래프(800)에서 우상 사분면(upper right quadrant)(810)으로 도시된다. 듀얼(dual) 임계값(절대 임계값과 정규화된 임계값)을 사용하는 것이 일반적으로 절대 콘트라스트 임계값을 사용하는 기존의 접근법과 일반적으로 상이하다. 듀얼 콘트라스트 임계값의 이익은, 예시적으로, 이미지가 관심 에지들을 포함하는 어두운 세기 구역과 밝은 세기 구역을 모두 포함할 때, 명확하다. 이미지의 어두운 구역에서 에지를 검출하기 위해서는, 낮은 콘트라스트 임계값을 설정하는 것이 바람직하다. 그러나, 이러한 낮은 콘트라스트 설정은 이미지의 밝은 부분에서는 잘못된 에지를 검출할 수 있다. 역으로, 이미지의 밝은 구역에서 잘못된 에지를 검출하는 것을 회피하기 위해서는, 높은 콘트라스트 임계값을 설정하는 것이 바람직하다. 그러나, 높은 콘트라스트 설정에서는 시스템이 이미지의 어두운 구역에서 에지를 적절히 검출하지 못할 수 있다. 전통적인 절대 콘트라스트 임계값에 더하여 제2 정규화된 콘트라스트 임계값을 사용하는 것에 의해, 시스템은 어두운 구역과 밝은 구역에서 에지를 모두 적절히 검출할 수 있고, 이미지의 밝은 구역에서 잘못된 에지를 검출하는 것을 회피할 수 있다. 그리하여, 듀얼 콘트라스트 임계값을 사용하는 것을 통해, 의사 에지(spurious edge)를 회피하면서 관련 에지를 검출할 수 있는 것에 의해, 전체 프로세스에서 후속 라인을 발견하는 단계의 속력과 강력함(robustness)을 최대화하는 기능을 한다.In particular, when the absolute contrast and normalized contrast of a point both exceed the respective thresholds, only this point is considered as a candidate edge point. This is shown in the upper right quadrant 810 in an example graph 800 of normalized contrast threshold (T NORM ) versus absolute contrast threshold (T ABS ). The use of dual thresholding (an absolute threshold and a normalized threshold) is generally different from the traditional approach, which typically uses an absolute contrast threshold. The benefit of a dual contrast threshold is evident, illustratively, when the image contains both dark and light intensity regions containing edges of interest. To detect edges in dark areas of the image, it is desirable to set a low contrast threshold. However, these low contrast settings may 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 be able to properly detect edges in dark areas of the image. By using a second normalized contrast threshold in addition to the traditional absolute contrast threshold, the system can properly detect edges in both dark and bright regions and avoid detecting false edges in bright regions of the image. You can. Thus, through the use of a dual contrast threshold, the speed and robustness of the subsequent line discovery step in the overall process is maximized by being able to detect relevant edges while avoiding spurious edges. It performs the function of
절차 단계(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 in. For example, the following set (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은 사영 구역 색인이다. 표준 캘리퍼 도구에서와 같이 에지점의 위치는 정확성을 개선하기 위해 내삽될 수 있다.Here, (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 are the computed gradient magnitude and orientation, I is the intensity at the edge point location, g m /I is the intensity-normalized contrast obtained by dividing the gradient magnitude (g m ) by the intensity (I), and m is is the image index, and n is the projection area index. As with standard caliper tools, the positions of edge points can be interpolated to improve accuracy.
일반적으로 에지점을 추출하는 프로세스는, 예상된 라인 각도와 실질적으로 매칭(match)하는 단일 방향으로 구배장 사영을 실행하도록 동작하는 것으로 이해된다. 그리하여 도구는 이 각도의 에지에 가장 민감하고, 그 감도는 다른 각도의 에지에서는 점진적으로 떨어지고, 여기서 떨어지는 율은 구배장 사영 길이를 간접적으로 결정하는 입도 설정에 의존한다. 그 결과, 이 프로세스는, 사용자에 의해 지정된 각도 범위에 따라, 예상된 라인 각도"부근(near)"의 각도를 갖는 라인을 발견하는 것으로 제한된다. 이 프로세스는 직교가 아닌 라인을 발견하도록 적응된 것이지만, 이 프로세스는 여러 실시예에서 직교 방향을 포함하는 다수의 방향으로 사영을 수행하는 것에 의해 360도에 걸쳐 임의의 각도 라인을 발견(전방향 라인을 발견)하도록 일반화될 수 있는 것으로 고려된다.The process of extracting edge points is generally understood to operate to perform a gradient field projection in a single direction that substantially matches the expected line angle. The tool is thus most sensitive to edges of this angle, and its sensitivity drops off progressively for edges of other angles, where the rate of drop 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 angles “near” the expected line angle, according to the angle range specified by the user. Although this process has been adapted to find non-orthogonal lines, in some embodiments this process finds arbitrary angular lines across 360 degrees by performing projections in multiple directions, including orthogonal directions (omni-directional lines). It is considered that it can be generalized to discover ).
이제 절차(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 the threshold are provided to the line-finder in accordance with an exemplary embodiment. For example, line-finders operate recursively and use (for example) RANSAC (RANdom SAmple Concensus)-based techniques. See also line-discovery procedure 900 in Figure 9. At step 910, the user, via a GUI (e.g.), selects the expected line in the image along with the expected angle, angle tolerance, distance tolerance, and (by way of example) the minimum coverage score (generally defined below). Specifies the maximum number of . This parameter is used by the line-finder to trigger the next process. This line is found for each subregion of the image by recursively running the RANSAC line finder, with edge outliers from one step becoming the input points for the next step. Accordingly, at step 920, procedure 900 selects a pair of edge points that are part of a group of edge points identified as extreme values in an edge-discovery process. Procedure 900 attempts to fit a model line to selected edge points based on matching gradient values (within a selected tolerance range) that match the model line. At step 924, one or more line candidate(s) from step 922 are returned. Each line-discovery step returns a candidate line, its normal values, and its outlier values. The returned line(s) are computed on normal edge points with positions and gradients matching the line candidate (step 926). At step 928, the candidate line with the highest normal count is identified. The line-finding steps described above (steps 920-928) terminate when the maximum number of RANSAC iterations allowed is reached (decision step 930). The maximum number of iterations within each line-detection step is calculated automatically using the assurance level specified by the user 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 custom tolerances, geometric constraints, and polarity. Each edge point can only be assigned to the normal value list of a single line, and each line is allowed to contain at most one edge point from each projection region. The gradient orientation of an edge point along with its location is used to determine whether the edge point should be included in the normal value list of candidate lines. In particular, the edge points must have a gradient orientation that matches the angle of the candidate line.
판정 단계(930)가 더 많은 반복이 허용되는 것으로 결정하면, 최상의 정상치 후보로부터 이상치가 라인 후보를 발견하는데 사용하기 위해 RANSAC 프로세스(단계 920)로 리턴된다(단계 940).If the decision step 930 determines that more iterations are allowed, the outliers from the best normal value candidates are returned to the RANSAC process (step 920) for use in finding line candidates (step 940).
각 RANSAC 반복 동안, 서로 다른 사영 구역들에 속하는 2개의 에지점들이 랜덤하게 선택되고, 이 2개의 점들에 맞는 라인이 있을 수 있다. 그 결과로 생긴 후보 라인은, 후보 라인의 각도가 한 쌍의 점에서 두 에지들의 구배 각도들과 일치하고 그리고 라인의 각도가 사용자가 지정한 불확정성 범위(uncertainty range)와 일치하는 경우에만, 추가적인 고려를 받는다. 일반적으로, 에지점의 구배 방향은 공칭적으로(nominally) 직교하지만, 사용자-구성된 각도 공차(tolerance)만큼 상이한 것이 허용된다. 후보 라인이 이들 초기 테스트를 통과하는 경우, 정상치(inlier) 에지점들의 수가 평가되고, 만약 통과하지 못하면, 새로운 RANSAC 반복이 개시된다. 에지점은, 그 구배 방향과 위치가 사용자가 지정한 구배 각도와 거리 공차들에 기초하여 라인과 일치하는 경우에만, 후보 라인의 정상치로 고려된다.During each RANSAC iteration, two edge points belonging to different projective regions are randomly selected, and there may be a line fitting these two points. The resulting candidate line receives further consideration only if the angle of the candidate line matches the draft angles of the two edges at the pair of points and the angle of the line matches the uncertainty range specified by the user. Receive. Typically, the draft directions of edge points are nominally orthogonal, but are allowed to differ by a user-configured angular tolerance. If the candidate line passes these initial tests, the number of inlier edge points is evaluated; if it does not pass, a new RANSAC iteration is initiated. An edge point is considered a normal value for a candidate line only if its draft direction and location match the line based on user-specified draft angle and distance tolerances.
RANSAC 반복이 최대값에 도달하면(판정 단계 930), 최상으로 발견된 라인 후보의 정상치들이 (예를 들어) 최소 제곱 회귀(least squares regression) 또는 다른 허용가능한 근사(approximation) 기술을 사용하여 개선된 라인 맞춤(line fit)을 받고, 정상치들의 개수가 더 증가하거나 또는 감소하지 않을 때까지, 이 단계를 최대 N회(예를 들어 3회 이상) 반복하여 정상치 에지점들의 세트를 재평가한다(단계 960). 이것은 단계(970)에서 발견된 것으로 지시된 라인이다.Once the RANSAC iteration reaches the maximum (decision step 930), the normal values of the best found line candidates are refined using (e.g.) least squares regression or another acceptable approximation technique. Obtain a line fit and re-evaluate the set of normal edge points by repeating this step up to N times (e.g. 3 or more times) until the number of normal values increases or decreases further (step 960 ). This is the line indicated as found in step 970.
판정 단계(980)는 더 많은 라인이 ((예를 들어) 추가적인 서브 구역 또는 다른 기준을 검색하는데 기초하여) 발견될지 여부를 결정하고, 만약 발견된다면, 프로세스는 단계(920)로 되돌아가서, 새로운 세트의 에지점에 대해 동작한다(단계 982). 점들이 전체에 걸쳐 다 수행되었거나 또는 최대 반복 카운트에 도달되었다면, 절차(900)는 단계(990)에서 이미지에서 (즉, 다수의) 발견된 라인의 세트를 리턴한다.Decision step 980 determines whether more lines are to be found ((e.g., based on searching additional sub-regions or other criteria) and, if so, the process returns to step 920 to create a new line. Operates on edge points of the set (step 982). If the points have been run through or the maximum iteration count has been reached, procedure 900 returns at step 990 a set of lines (i.e., multiple) found 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 make final adjustments to existing results in cases where two line results intersect each other in the inspection area. Generally, as shown in FIGS. 10 and 11, for closely spaced parallel lines 1010 and 1020, erroneous line results (i.e. FIG. 10) can often be obtained due to the statistical nature of the RANSAC procedure. . However, when these errors occur, swapping groups of normal values (arrow 1120 in group 1110 in Figure 11) often results in an accurate line with increased coverage score and reduced fit residual. can be found. Exchanging points may 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 score is 1230), the original results obtained before the exchange are maintained to successfully detect the intersecting lines by the process.
RANSAC 절차는 라인-파인더가 점들을 라인으로 맞출 수 있는 여러 기술 중 하나인 뿐이라는 것으로 이해된다. 대안적인 실시예에서, 후보 점들은 이들 점들 사이에 설정된 변위에 따라 선택될 수 있고, 또는 이미지는 (예를 들어) 전수 검색 기술(exhaustive search technique)을 사용하여 처리될 수 있다. 따라서, 본 명세서에 사용된 바와 같이 RANSAC 기술이라는 언급은 여러 유사한 점-맞춤 기술을 포함하는 것으로 넓게 해석되어야 한다.The RANSAC procedure is understood to mean that the line-finder is just one of several techniques that can fit points into lines. In an alternative embodiment, candidate points may be selected according to a set displacement between these points, or the image may be processed using (for example) an exhaustive search technique. Accordingly, as used herein, reference to RANSAC technology should be broadly interpreted to include several similar point-fitting technologies.
이 시스템 및 방법의 추가적인 기능이 제공될 수 있다. 이들 기능은 혼합된-극성을 지원하는 것, 사영 구역 폭을 자동 연산하는 것, 다중-뷰 라인 발견을 지원하는 것, 및 입력 이미지에서 미리-뒤틀림(pre-warpage)을 제거하여 광학적 왜곡을 제거하는 것을 포함한다. 이들 기능은 아래에서 더 설명된다.Additional features of the systems and methods may be provided. These features include supporting mixed-polarization, automatically calculating projection zone widths, supporting multi-view line discovery, and eliminating optical distortion by removing pre-warpage from the input image. It includes doing. These functions are explained further below.
도 14 내지 도 16의 예를 더 참조하면, 예시적인 실시예의 라인-발견 시스템 및 방법은 발견된 에지들 사이에 콘트라스트에 대한 표준 밝은에서-어두운으로의 극성, 어두운에서-밝은으로의 극성, 및 어느 하나의 극성 설정을 (각각) 일반적으로 지원한다. 나아가, 이 시스템 및 방법은 밝은에서-어두운으로의 극성 및 어두운에서-밝은으로의 극성 특성이 동일한 라인에 모두 보이는 혼합된-극성 설정(도 17)을 더 지원할 수 있다. 모두 4개의 설정의 라인-발견 결과는 다음 도면에서 도시된다. 예시적인 실시예에서, 이 시스템 및 방법은 반대 극성의 에지점들을 포함하는 단일 라인을 발견할 수 있는 혼합된-극성 설정을 포함할 수 있다. 이것은 단일 라인의 모든 에지점들이 어느 하나의 극성이지만 - 단 하나의 극성인"어느 하나의" 극성만을 구비하는 종래의 설정과는 상이하다. 혼합된-극성 설정은, 다른 적용 중에서 (예를 들어) 교정 판의 밝은 체커보드와 어두운 체커보드를 분석하는데 사용될 때 유리할 수 있다.With further reference to the example of Figures 14-16, the line-finding system and method of an example embodiment may include a standard light-to-dark polarity, dark-to-light polarity, and Either polarity setting (respectively) is generally supported. Furthermore, the system and method can further support a mixed-polarity setup (FIG. 17) where the light-to-dark polarity and dark-to-light polarity characteristics are both visible on the same line. Line-discovery results for all four settings are shown in the following figures. In an exemplary embodiment, the system and method may include a mixed-polarity setup that can find a single line containing edge points of opposite polarity. This is different from the conventional setup where all the edge points of a single line are of one polarity - but have only one polarity - "either" polarity. A mixed-polarity setup may be advantageous when used to analyze (for example) the light and dark checkerboard of a calibration plate, among other applications.
사용자는 라인을-발견하는 개선된 시프트 불변성(shift invariance)을 선택할 수 있다. 이러한 경우에, 에지점 추출기는 실질적으로 오버랩된 사영 구역을 사용하여 결과 안정성을 개선시킨다. 구역들이 오버랩하지 않는 경우, 고려되는 픽셀들은 이미지가 시프트될 때 사영 구역으로부터 잠재적으로 이동하여, 그 결과, 라인-발견 결과에 불량한 시프트 불변성을 초래할 수 있다. 오버랩된 사영 구역들은 고려되는 픽셀들이 사영 구역들에 의해 연속적으로 커버되는 것을 보장한다. 오버랩된 사영 구역들이 사용된 경우, 증분적 연산을 수행하여 가능한 낮은 레벨의 최적화와 함께 속력을 유지할 수 있다.Users can choose improved shift invariance for line-finding. In these cases, the edge point extractor uses substantially overlapping projective regions to improve result stability. If the regions do not overlap, the pixels considered can potentially shift from the projection region when the image is shifted, resulting in poor shift invariance in the line-finding result. Overlapping projective areas ensure that the pixels considered are continuously covered by the projective areas. When overlapping projective regions 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 can provide a mask that omits certain portions of the image and/or the imaged surface obtained from analysis of line features. This may be desirable if the surface contains known line features that are not of interest (e.g., barcodes that are analyzed by other mechanisms, text, and any other structure unrelated to the task for which the lines are found). Accordingly, the edge point extractor can support image masking in which areas of the image that “don’t care” can be masked out and areas that “don’t care” can be masked in. When such masking occurs, the coverage scores of the found lines are exemplarily reweighted according to the number of edge points within the mask.
도 18의 예시적인 이미지 구역(1800)을 참조하면, 도 18은 이미지 마스크들이 존재할 때 커버리지 스코어들과, 이러한 커버리지 스코어들에 대한 이미지 마스킹의 효과를 도시한다. 에지점 추출기는 이미지에서 "관심 없는 구역"이 마스킹아웃될 수 있는 이미지 마스킹을 지원한다. 도시된 바와 같이, 발견된 라인(1810)은 ("관심" 마스크 구역(1820)에 기초하여) 관심 에지점들로 특성화된다. 이러한 관심 에지점들은 라인(1810)으로의 관심 에지점 정상치(1830)와 라인(1810)으로의 관심 에지점 이상치(1840)로 구성된다. 라인(1810)에서 관심 없는 에지점(1850)들은 이 예에 도시된 바와 같이 마스크의 관심 구역(1820)들 사이에 존재하고, 이 관심 없는 에지점들이 정상치로 라인에 존재하는 경우에도 커버리지 스코어 연산에 포함되지 않는다. 라인(1810)을 따라 에지점들의 잠재적인 위치(1860)가 도시된 바와 같이 또한 결정된다. 이 잠재적인 위치는 발견된 점들의 간격에 기초하여 예측가능한 간격으로 알려진 점들 사이에 위치된다. 예시적으로, 발견된 라인들의 커버리지 스코어들은 마스크 내에 있는 에지점들의 수에 따라 재가중된다. 그리하여 커버리지 스코어는 다음과 같이 변경된다:Referring to the example image region 1800 of FIG. 18, FIG. 18 shows coverage scores when image masks are present, and the effect of image masking on these coverage scores. The edge point extractor supports image masking, where “regions of no interest” in the image can be masked out. As shown, found lines 1810 are characterized by edge points of interest (based on “interest” mask regions 1820). These edge points of interest are composed of an edge point of interest normal value 1830 on line 1810 and an edge point of interest outlier value 1840 on line 1810. Edge points 1850 of no interest in the line 1810 exist between regions of interest 1820 of the mask as shown in this example, and the coverage score is calculated even when these edge points of no interest are present on the line at normal values. not included in Potential locations 1860 of edge points along line 1810 are also determined as shown. These potential locations are located between known points at predictable intervals based on the spacing of the points found. Illustratively, the coverage scores of found lines are reweighted according to the number of edge points within the mask. So the coverage score changes as follows:
커버리지 스코어 = 라인에 대한 관심 에지점 정상치의 수/(라인에 대한 관심 에지점 정상치의 수 + 라인에 대한 관심 에지점 이상치 + 에지점들의 관심 잠재적인 위치의 수).Coverage score = number of edge normals of interest for the line/(number of edge normals of interest for the line + edge outliers of interest for the line + number of potential locations of interest for edge points).
본 명세서에서 시스템 및 방법에 따른 라인-발견 프로세스를 실행한 후, 발견된 라인들은 ((예를 들어) GUI를 통해) 사용자에 의해 지정된 분류 기준에 기초하여 여러 방식으로 분류될 수 있다. 사용자는 정상치 커버리지 스코어, 세기 또는 콘트라스트와 같은 내적(intrinsic) 분류 조치로부터 선택될 수 있다. 사용자는 또한 부호 있는 거리 또는 상대 각도와 같은 외적(extrinsic) 분류 조치로부터 선택할 수 있다. 외적 분류 조치를 사용할 때, 사용자는 발견된 라인들의 외적 조치를 연산하는 기준 라인 세그먼트를 지정할 수 있다.After executing the line-discovery process according to the systems and methods herein, the discovered lines may be classified in several ways based on classification criteria specified by the user (e.g., via a GUI). The user can 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 an external classification measure, the user can specify a reference line segment from which to calculate the external measure of the found lines.
일반적으로 전술된 바와 같이, 이 시스템 및 방법은 상이한 시야로부터 이미지 벡터를 프로세스로 전달할 수 있는 MFOV(Multi-Field-of-View) 오버로드를 포함할 수 있다. 이미지들은 교정에 기초하여 공통 클라이언트 좌표 공간에 모두 있어야 한다. 전술된 바와 같이, 이 기능은 다수의 카메라가 단일 부분의 부분 영역들을 캡처하는데 사용되는 응용 시나리오에서 극히 유리할 수 있다. 에지점들은 구배 정보를 유지하기 때문에, (두 FOV에서의 구배들이 각 FOV에서 주어진 라인 배향과 정렬에 매칭할 때) 시야에 있는 갭들 사이에 사영된 라인 특징부들은 여전히 분석될 수 있다.As generally described above, the system and method may include a Multi-Field-of-View (MFOV) overload that can pass image vectors from different fields of view to the process. The images should all be in a common client coordinate space based on calibration. As mentioned above, this functionality can be extremely advantageous in application scenarios where multiple cameras are used to capture sub-areas of a single part. Because edge points retain gradient information, projected line features between gaps in the field of view can still be analyzed (when the gradients in both FOVs match a given line orientation and alignment in each FOV).
특히, 이 시스템 및 방법은, 왜곡이 심각하지 않는다고 가정하면, 비선형 왜곡을 제거하기 위해, (이미지에서) 뒤틀림을 제거할 것을 요구하지 않는다(즉, 이미지가 뒤틀리지 않은 것을 요구하지 않는다). 이미지가 뒤틀리지 않은 경우, 이 시스템 및 방법은 여전히 후보 에지점들을 검출할 수 있고, 비선형 변환을 통해 점의 위치와 구배 벡터를 맵핑할 수 있다.In particular, these systems and methods do not require that distortion (in the image) be removed (i.e., that the image be undistorted) in order to remove non-linear distortion, assuming that the distortion is not significant. If the image is not distorted, the system and method can still detect candidate edge points and map the point's location and gradient vector through a non-linear transformation.
이 시스템 및 방법 및 여러 대안적인 실시예/개선에 따라 제공된 라인-파인더는 여러 조건 하에서 다수의 라인 특징부를 결정하는 효과적이고 강력한 도구인 것이 분명하다. 일반적으로, 이 시스템 및 방법은 라인 특징부를 발견하는데 사용될 때, 이미지에서 발견되는 최대 라인 개수에 특정 제한을 갖지 않는다. 메모리와 연산 시간만이 발견될 수 있는 라인의 개수에 실제적 제한을 준다.It is clear 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 various conditions. In general, when these systems and methods are used to discover line features, there is no specific limitation on the maximum number of lines found in an image. Only memory and computation time place practical limits on the number of lines that can be discovered.
상기는 본 발명의 예시적인 실시예의 상세한 설명이다. 본 발명의 사상과 범위를 벗어남이 없이 여러 변형과 추가를 할 수 있을 것이다. 전술된 여러 실시예 각각의 특징부는 적절한 경우 다른 설명된 실시예의 특징부와 결합되어, 연관된 새로운 실시예에서 다수의 특징부 조합이 제공될 수 있다. 나아가, 상기는 본 발명의 장치 및 방법의 다수의 별개의 실시예를 설명하지만, 본 명세서에서 설명된 것은 본 발명의 원리의 적용을 단지 예시하는 것이다. 예를 들어, 본 명세서에 사용된 바와 같이 "프로세스" 및/또는 "프로세서"라는 용어는 여러 전자 하드웨어 및/또는 소프트웨어 기반 기능과 성분을 포함하는 것으로 넓게 해석되어야 한다(그리고 대안적으로 기능 "모듈" 또는 "요소"이라고 언급될 수 있다). 나아가, 도시된 프로세스 또는 프로세서는 다른 프로세스 및/또는 프로세서와 결합되거나 또는 여러 서브-프로세스 또는 프로세서로 분할될 수 있다. 이러한 서브-프로세스 및/또는 서브-프로세서는 본 명세서에 개시된 실시예에 따라 여러 방식으로 결합될 수 있다. 또한, 본 명세서에서 임의의 기능, 프로세스 및/또는 프로세서는 전자 하드웨어, 프로그램 명령의 비-일시적인 컴퓨터-판독가능한 매체로 구성된 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있는 것으로 명시적으로 고려된다. 추가적으로, 본 명세서에 사용된 바와 같이 "수직", "수평", "위로", "아래로", "하부", "상부", "측면", "전방", "후방", "좌측", "우측" 등과 같은 여러 방향과 배치 용어는 상대적인 관례로서만 사용된 것일 뿐, 중력의 작용 방향과 같은 고정된 좌표 공간에 대해 절대 방향/배치로 사용된 것이 아니다. 추가적으로, "실질적으로" 또는 "대략"이라는 용어는 주어진 측정값, 값 또는 특성에 사용된 경우, 이 용어는 원하는 결과를 달성하는 정상 동작 범위 내에 있는 양을 말하지만, 이것은 시스템의 내적 부정확성과 허용된 공차 내 에러(예를 들어, 1-5 퍼센트)로 인한 일부 변동을 포함한다. 따라서, 본 설명은 예시적인 것으로만 해석되어야 하고, 본 발명의 범위를 제한하려고 의도된 것이 아니다.The above is a detailed description of exemplary embodiments of the present invention. Various modifications and additions may be made without departing from the spirit and scope of the present invention. Features of each of the various embodiments described above may be combined, where appropriate, with features of other described embodiments to provide multiple combinations of features in associated new embodiments. Furthermore, although the foregoing describes a number of distinct embodiments of the apparatus and method of the invention, those described herein are merely illustrative of the application of the principles of the invention. For example, as used herein, the terms “process” and/or “processor” should be broadly interpreted to include various electronic hardware and/or software-based functions and components (and alternatively functional “modules”). " or "element"). Furthermore, the depicted process or processor may be combined with other processes and/or processors or may be divided into several sub-processes or processors. These sub-processes and/or sub-processors may be combined in a number of ways according to embodiments disclosed herein. Additionally, any function, process and/or processor herein is explicitly stated to be implemented using electronic hardware, software consisting of a non-transitory computer-readable medium of program instructions, or a combination of hardware and software. is considered. Additionally, as used herein, “vertical,” “horizontal,” “up,” “down,” “bottom,” “top,” “side,” “front,” “posterior,” “left,” Various orientation and placement terms such as "right" are used only as relative conventions and are not used as absolute directions/positions in a fixed coordinate space, such as the direction of gravity. Additionally, when the terms "substantially" or "approximately" are used for a given measurement, value, or characteristic, these terms refer to the amount that is within the normal operating range to achieve the desired result, but this does not take into account the inherent inaccuracies of the system and the allowable Includes some variation due to within-tolerance errors (e.g., 1-5 percent). Accordingly, this description should be construed as illustrative only and is not intended to limit the scope of the invention.
Claims (20)
사용자 입력들을 수신하도록 구성된 그래픽 사용자 인터페이스(GUI); 및
상기 그래픽 사용자 인터페이스와 통신하는 프로세서를 포함하고,
상기 프로세서는:
라인 특징부들을 포함하는 장면의 이미지 데이터를 수신하고;
에지점 정상치 구배 각도 공차(edge point inlier gradient angle tolerance)를 포함하는 사용자 입력을 상기 그래픽 사용자 인터페이스로부터 수신하고;
상기 이미지 내의 에지 특징부에 대응하는 에지점들을 얻기 위해 상기 이미지 데이터를 분석하고;
상기 에지점 정상치 구배 각도 공차 및 상기 이미지 데이터로부터 얻은 상기 에지점들과 일치하는(consistent) 복수의 라인들을 생성하고; 그리고
상기 그래픽 사용자 인터페이스를 통해 상기 이미지에 상기 복수의 라인들을 디스플레이하도록 구성되는, 시스템.A system for discovering line features in an image, comprising:
A graphical user interface (GUI) configured to receive user inputs; and
a processor in communication with the graphical user interface;
The processor:
receive image data of a scene including line features;
receive user input from the graphical user interface including edge point inlier gradient angle tolerance;
analyze the image data to obtain edge points corresponding to edge features within the image;
generating a plurality of lines consistent with the edge point normal value gradient angle tolerance and the edge points obtained from the image data; and
A system configured to display the plurality of lines in the image via the graphical user interface.
상기 사용자 입력은: 예상된 라인들의 최대 개수, 거리 공차, 예상된 각도, 및 최소 커버리지 스코어 중 적어도 하나를 더 포함하는, 시스템.According to claim 1,
The system of claim 1, wherein the user input further includes at least one of: maximum number of expected lines, distance tolerance, expected angle, and minimum coverage score.
상기 사용자 입력은 상기 복수의 라인들을 생성하기 전에 상기 이미지 데이터의 일부분을 생략하도록 구성된 마스크를 더 포함하는, 시스템.According to claim 1,
wherein the user input further comprises a mask configured to omit a portion of the image data prior to generating the plurality of lines.
상기 복수의 라인들을 생성하는 것은 라인 맞춤 근사(line fit approximation)를 수행하는 것을 포함하는, 시스템.According to claim 1,
The system of claim 1, wherein generating the plurality of lines includes performing a line fit approximation.
상기 라인 맞춤 근사는 최소 제곱 회귀(least squares regression)인, 시스템.According to claim 4,
The system of claim 1, wherein the line fit approximation is least squares regression.
상기 사용자 입력은 극성(polarity) 선택을 더 포함하는, 시스템.According to claim 1,
The system of claim 1, wherein the user input further includes polarity selection.
상기 프로세서는 평활화 커널(smoothing kernel)을 통해 상기 이미지 데이터를 평활화하도록 추가로 구성되는, 시스템.According to claim 1,
The system of claim 1, wherein the processor is further configured to smooth the image data via a smoothing kernel.
상기 평활화 커널은 가우시안(Gaussian) 커널을 포함하는, 시스템.According to claim 7,
The system of claim 1, wherein the smoothing kernel includes a Gaussian kernel.
상기 사용자 입력은 예상된 각도를 더 포함하고, 상기 프로세서는 상기 예상된 각도와 실질적으로 매칭(matching)하는 단일 방향으로 필드 사영들(field projections)을 실행함으로써 상기 에지점들을 얻도록 구성되는, 시스템.According to claim 1,
wherein the user input further includes an expected angle, and the processor is configured to obtain the edge points by executing field projections in a single direction that substantially matches the expected angle. .
상기 에지점들은 절대 콘트라스트(absolute contrast)에 의해 한정된 임계값과, 상기 이미지 데이터의 평균 세기에 기초하여 정규화된(normalized) 콘트라스트에 기초하여 선택되는, 시스템.According to claim 1,
The system of claim 1, wherein the edge points are selected based on a threshold defined by absolute contrast and contrast normalized based on the average intensity of the image data.
상기 이미지를 캡처하고 상기 이미지 데이터를 상기 프로세서에 제공하도록 구성된 카메라를 더 포함하는 시스템.According to claim 1,
The system further comprising a camera configured to capture the image and provide the image data to the processor.
상기 그래픽 사용자 인터페이스를 제공하도록 구성된 디스플레이를 더 포함하는 시스템.According to claim 1,
The system further comprising a display configured to provide the graphical user interface.
상기 에지점들을 얻는 것은:
(a) 상기 이미지 데이터로부터 구배 벡터장(gradient vector field)을 계산하는 것;
(b) 복수의 구배 사영 서브-구역들(sub-regions)에 걸쳐 상기 구배 벡터장을 사영(project)하는 것; 및
(c) 사영된 구배 데이터에 기초하여 상기 구배 사영 서브-구역들 각각에서 복수의 에지점들을 발견하는 것;
을 포함하는, 시스템.According to claim 1,
Obtaining the edge points is:
(a) calculating a gradient vector field from the image data;
(b) projecting the gradient vector field over a plurality of gradient projection sub-regions; and
(c) finding a plurality of edge points in each of the gradient projection sub-regions based on projected gradient data;
system, including.
상기 에지점들을 얻는 것은:
(a) 2개의 구배 성분 이미지들 및 세기(intensity) 이미지를 생성하기 위해 상기 이미지 데이터를 구배장(gradient field) 계산 프로세스에 적용하는 것;
(b) 상기 2개의 구배 성분 이미지들 및 상기 세기 이미지에 가중된 사영(weighted projection)을 적용하여 상기 2개의 구배 성분 이미지들 및 사영 이미지의 1차원(1D) 사영 프로파일들을 생성하는 것; 및
(c) 상기 2개의 구배 성분 이미지들의 1D 사영 프로파일들을 결합하여 에지점들을 추출하는 것;
을 포함하는, 시스템.According to claim 1,
Obtaining the edge points is:
(a) applying the image data 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 generate one-dimensional (1D) projection profiles of the two gradient component images and the projection image; and
(c) combining the 1D projection profiles of the two gradient component images to extract edge points;
system, including.
라인 특징부들을 포함하는 장면의 이미지 데이터를 수신하는 단계;
에지점 정상치 구배 각도 공차를 포함하는 사용자 입력을 그래픽 사용자 인터페이스로부터 수신하는 단계;
상기 이미지 내의 에지 특징부에 대응하는 에지점들을 얻기 위해 상기 이미지 데이터를 분석하는 단계;
상기 에지점 정상치 구배 각도 공차 및 상기 이미지 데이터로부터 얻은 상기 에지점들과 일치하는 복수의 라인들을 생성하는 단계; 및
상기 그래픽 사용자 인터페이스를 통해 상기 이미지에 상기 복수의 라인들을 디스플레이하는 단계를 포함하는, 방법.A method for discovering line features in an image, comprising:
Receiving image data of a scene including line features;
Receiving user input including edge point normal value gradient angle tolerance from a graphical user interface;
analyzing the image data to obtain edge points corresponding to edge features within the image;
generating a plurality of lines matching the edge point normal value gradient angle tolerance and the edge points obtained from the image data; and
A method comprising displaying the plurality of lines in the image via the graphical user interface.
상기 이미지 데이터를 분석하기 전에, 평활화 커널을 통해 상기 이미지 데이터를 평활화하는 단계를 더 포함하는 방법.According to claim 15,
Before analyzing the image data, the method further includes smoothing the image data through a smoothing kernel.
상기 사용자 입력을 통해 마스크를 수신하는 단계; 및
상기 복수의 라인들을 생성하기 전에, 상기 마스크에 기초하여 상기 이미지 데이터의 일부분을 생략하는 단계를 더 포함하는 방법.According to claim 15,
Receiving a mask through the user input; and
The method further includes omitting a portion of the image data based on the mask prior to generating the plurality of lines.
상기 복수의 라인들을 생성하는 단계는 라인 맞춤 근사를 수행하는 단계를 포함하는, 방법.According to claim 15,
The method of claim 1, wherein generating the plurality of lines includes performing a line fit approximation.
상기 에지점들을 얻는 것은:
(a) 상기 이미지 데이터로부터 구배 벡터장을 계산하는 것;
(b) 복수의 구배 사영 서브-구역들에 걸쳐 상기 구배 벡터장을 사영하는 것; 및
(c) 사영된 구배 데이터에 기초하여 상기 구배 사영 서브-구역들 각각에서 복수의 에지점들을 발견하는 것;
을 포함하는, 방법.According to claim 15,
Obtaining the edge points is:
(a) calculating a gradient vector field from the image data;
(b) projecting the gradient vector field over a plurality of gradient projection sub-regions; and
(c) finding a plurality of edge points in each of the gradient projection sub-regions based on projected gradient data;
Method, including.
라인 특징부들을 포함하는 장면의 이미지 데이터를 수신하는 단계;
마스크 및 에지점 정상치 구배 각도 공차에 대응하는 사용자 입력을 수신하는 단계;
상기 마스크에 대응하는 상기 이미지 데이터의 일부분을 생략하는 단계;
상기 이미지 내의 에지 특징부에 대응하는 에지점들을 얻기 위해 나머지 이미지 데이터를 분석하는 단계;
상기 에지점 정상치 구배 각도 공차 및 상기 이미지 데이터로부터 얻은 상기 에지점들과 일치하는 복수의 라인들을 생성하는 단계; 및
상기 이미지에 상기 복수의 라인들을 디스플레이하는 단계를 포함하는, 방법.A method for discovering line features in an image, comprising:
Receiving image data of a scene including line features;
Receiving user input corresponding to the mask and edge point normal value gradient angle tolerance;
omitting a portion of the image data corresponding to the mask;
analyzing remaining image data to obtain edge points corresponding to edge features within the image;
generating a plurality of lines matching the edge point normal value gradient angle tolerance and the edge points obtained from the image data; and
A method comprising displaying the plurality of lines in the image.
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 | 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 |
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 KR20220075290A (en) | 2022-06-08 |
KR102649038B1 true 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 (9)
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 |
US10152780B2 (en) | 2015-11-02 | 2018-12-11 | Cognex Corporation | System and method for finding 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 |
CN111724373B (en) * | 2020-06-22 | 2024-05-14 | 江西财经大学 | Visual safety measurement method based on perception encryption light field image |
CN113344955B (en) * | 2021-05-25 | 2022-03-18 | 云南凤云高速公路有限公司 | System and method for accurately detecting slope by fuzzy edge |
CN115236760A (en) * | 2022-07-08 | 2022-10-25 | 中国人民解放军战略支援部队信息工程大学 | Method and device for determining close azimuth angle of gravity line for assisting instrument leveling |
Citations (1)
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)
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 |
-
2016
- 2016-11-01 JP JP2016214703A patent/JP6463593B2/en active Active
- 2016-11-02 KR KR1020160145441A patent/KR102153962B1/en active IP Right Grant
-
2019
- 2019-04-29 KR KR1020190049972A patent/KR102402906B1/en active IP Right Grant
-
2022
- 2022-05-24 KR KR1020220063255A patent/KR102649038B1/en active IP Right Grant
-
2023
- 2023-06-13 JP JP2023097204A patent/JP2023120281A/en active Pending
Patent Citations (1)
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 |
---|---|
KR102153962B1 (en) | 2020-09-10 |
KR20190050311A (en) | 2019-05-10 |
JP2023120281A (en) | 2023-08-29 |
JP6463593B2 (en) | 2019-02-06 |
JP2017090450A (en) | 2017-05-25 |
KR20170051369A (en) | 2017-05-11 |
KR102402906B1 (en) | 2022-05-26 |
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 | |
JP7133283B2 (en) | Systems and methods for efficiently scoring probes in images with a vision system | |
US20240078801A1 (en) | System and method for finding and classifying lines in an image with a vision system | |
US9946947B2 (en) | System and method for finding saddle point-like structures in an image and determining information from the same | |
KR20240058827A (en) | System and method for finding and classifying lines in an image with a vision system | |
Zhang et al. | A new algorithm for accurate and automatic chessboard corner detection | |
CN116958058A (en) | Lens dirt detection method and device and image detection equipment | |
CN109670519B (en) | Image processing apparatus and image processing method | |
Seth et al. | An Analytic Approach of Edge Detection Gradient Operators [J] | |
Wedekind et al. | Using generic image processing operations to detect a calibration grid |
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 |