KR20140094541A - 히스테리시스 임계화를 사용한 에지 추적 - Google Patents

히스테리시스 임계화를 사용한 에지 추적 Download PDF

Info

Publication number
KR20140094541A
KR20140094541A KR1020147012958A KR20147012958A KR20140094541A KR 20140094541 A KR20140094541 A KR 20140094541A KR 1020147012958 A KR1020147012958 A KR 1020147012958A KR 20147012958 A KR20147012958 A KR 20147012958A KR 20140094541 A KR20140094541 A KR 20140094541A
Authority
KR
South Korea
Prior art keywords
labels
edge
label
map
pixels
Prior art date
Application number
KR1020147012958A
Other languages
English (en)
Other versions
KR101655000B1 (ko
Inventor
비제쉬 포일
아닐 스리파다로
Original Assignee
아나로그 디바이시즈 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아나로그 디바이시즈 인코포레이티드 filed Critical 아나로그 디바이시즈 인코포레이티드
Publication of KR20140094541A publication Critical patent/KR20140094541A/ko
Application granted granted Critical
Publication of KR101655000B1 publication Critical patent/KR101655000B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/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/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • 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/20072Graph-based image processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

히스테리시스 임계화를 사용하여 이미지의 에지들을 추적하는 방법은 (i) 이미지의 에지 맵을 수신하는 단계; (ii) 입력 에지 맵의 행을 스캔하는 단계; (iii) 적어도 부분적으로 이웃 에지 화소의 유무에 기초하여 행 내 각 에지 화소에 라벨을 할당하는 단계; (iv) 인접 라벨들을 그룹화하는 단계; 및 (v) 그룹들의 에지 화소들을 확인하는 단계를 포함한다.

Description

히스테리시스 임계화를 사용한 에지 추적{EDGE TRACING WITH HYSTERESIS THRESHOLDING}
관계된 출원들에 대한 상호참조
이 출원은 2012년 3월 22일에 출원된 미국출원번호 13/426,844 및 2011년 11월 18일에 출원된 미국가특허출원번호 61/561,495에 대한 우선권 및 혜택을 청구한다.
발명의 분야
여러 구현예에서, 본 발명은 일반적으로 이미지 처리에 관한 것으로, 특히 이미지들에서 에지들을 추적하는 것에 관한 것이다.
이미지-처리 기술들은 이미지에서 형상들(예를 들면, 선들, 사각형들, 또는 원들)을 검출하기 위해 사용될 수 있다. 형상 검출은 일반적으로 두 단계들로서 에지 검출 및 에지 추적(에지 링킹(linking)으로서도 알려진)을 포함한다. 에지 검출은 예를 들면 이미지 내 두 개의 서로 다른 영역들 간에 경계에 대응하는 그레이스케일에서 화상적으로 의미있는 불연속들을 찾아내기 위한 공지된 기술이다. 에지 검출에 이어, 검출된 에지 화소들을 원 이미지 내 대상들의 에지들에 더 가깝게 대응하는 더 큰 에지들로 모으기 위해 추적 절차들이 사용될 수 있다. 일단 이미지 내 에지들이 도출되었으면, 이미지 내 대상을 인식하기 위해 이를테면 프리에-형상 디스크립터들(Fourier-shape descriptors) 및 일반화된 허프 변환들(generalized Hough transforms)과 같은, 정착된 분류(classification) 기술들이 사용될 수 있다.
통상적인 실시에서, 에지들이 있는지 여부를 판단하기 위해 이미지의 세기 경사도들(세기 경사도들)에 임계값이 적용된다. 임계값보다 큰 세기 경사도들을 갖는 화소들은 에지의 부분들로서 표시되고, 반면 임계값 미만의 세기 경사도들을 갖는 화소들은 비(non)-에지 화소들로서 간주된다. 그러나, 에지 화소들 및 비-에지 화소들을 명확히 분리할 수 있는 임계값을 특정하기는 어렵다. 더 정교한 에지 검출기는 에지들을 검출하기 위해서 히스테리시스 임계화 및 두 개의 임계값들(Tlow, Thigh)을 사용한다. Thigh보다 큰 세기 경사도들을 가진 화소들은 강(strong)-에지 화소들로서 표시되고, 반면에 Tlow 미만의 세기 경사도들을 가진 화소들은 비-에지 화소들로서 표시된다. Thigh 미만이지만 Tlow 이상인 세기 경사도들을 가진 화소들은 약(weak)-에지 화소들이라 하는 것으로서, 이들이 Thigh 이상의 세기 경사도를 가진 화소(즉, 강-에지 화소)에 "연결된"(예를 들면, 이웃한) 경우에만 에지 화소들로 간주된다. 이에 따라, 이미지 내 약-에지 화소들에서 강-에지 화소들로 연속된 에지 곡선이 추적될 수 있고, 그럼으로써 노이즈성 또는 모호한 부분들을 가진 큰 에지를 재구성할 수 있다. 이 방법은 이미지 내 더 잘 정의된 에지들을 제공하며 희미한 에지들(이웃한 강-에지 화소가 확인되는 한)을 추적할 수 있게 한다.
통상의 에지-추적 시스템들 및 방법들은 이미지 내 확인된 에지 화소들의 경로를 재귀적으로 추적한다. 화소가 에지 화소로서 표시된다면, 이의 이웃 화소들이 스캔된다. 위에 기술된 바와 같이, 이웃 화소들은 이들의 세기 경사도들이 Tlow보다 크다면 에지 화소들로 간주된다. 이웃-스캐닝 절차는 모든 이웃 에지 화소들(즉, Tlow보다 큰 세기 경사도를 갖는 모든 이웃들)에 대해 반복한다. 이에 따라, 이 재귀적 수법은 시간 소모적이며 큰 메모리를 요구한다. 또한, 이웃 화소들에 대한 스캐닝이 랜덤한 성질과 에지가 이어질 수 있는 방향의 예측불가능 때문에, 현재 에지를 검출하기 위해 이미지의 어느 부분들이 필요로 되는지를 미리 예측하기가 불가능하고, 이에 따라 보통은 전체 이미지가 국부적으로 액세스될 수 있어야 한다.
작은 내부 메모리들을 가진 프로세서들(예를 들면, 디지털-신호 프로세서들)은 전체 이미지(혹은 이미지에 연관된 정보, 이를테면 화소 라벨들)를 국부적으로 저장할 수 없다. 그러므로, 이러한 프로세서들은 이미지의 추가의 부분들을 가져오기 위해서 연속적으로 저속 시스템 메모리(예를 들면, 외부 메모리)를 액세스할 필요가 있는데, 이것은 에지-추적 알고리즘들에 대한 느린 처리 속도들을 초래한다. 결국, 로컬 메모리로부터 이미지 정보를 신속하게 가져올 수 있게 하고 시스템 메모리를 사용함이 없이 에지 추적의 목적들을 위해 이 정보를 처리할 수 있게 할 필요성이 존재한다.
요약
여러 구현예에서, 본 발명은 래스터-스캔 순서로만(예를 들면, 각 행을 가로질러 좌측에서 우측으로 그리고 모든 행들에 대해 위에서 아래로) 이미지를 액세스함으로써 이미지 내 에지들을 효율적으로 추적하기 위한 시스템들 및 방법들에 관한 것이다. 각 행 내 래스터-스캔된 화소들은 예를 들면 2개의 임계값들(Tlow, Thigh)을 사용하여 입력 에지 맵 내에 "강-에지 화소들", "약-에지 화소들" 및 "배경 화소들"로 분류된다. 이어 각 화소의 분류에 그리고 이웃 에지 화소의 유무에 기초하여 각 화소에 라벨들이 할당된다. 각 래스터 행의 라벨들은 메모리에 저장되는데, 현재 스캔되는 래스터 행 및 이전에-스캔된 행의 라벨들만이 에지 추적을 수행하기 위해 필요로 된다. 이에 따라 메모리 요건은 매우 작으며, 메모리 공간은 다음 스캔되는 래스터 행에서 라벨들을 저장하기 위해 행의 스캔의 완료시 해제될 수 있다.
입력 에지 맵 내 화소들의 연결성에 기초하여 라벨들을 그룹화하고 그럼으로써 라벨들을 저장하기 위해 요구되는 메모리를 감소시키기 위해 "결합-발견(union-find)" 수법이 사용될 수 있다. 또한, 라벨들은 맵에서 전파하는 활성 라벨들, 및 전파하지 않는 비활성 라벨들인 2개의 그룹들로 분류될 수 있다. 요구되는 내부 메모리는 비활성 라벨들을 외부 메모리에 이동시킴으로써 감소될 수 있다. 이어 "결합-발견" 동작이 활성 라벨들에만 적용되고, 그럼으로써 맵에의 랜덤한 액세스를 피하고 이에 따라 처리 시간을 감소시킬 수 있다. 이어, 강-에지 화소들에 연관된 한 그룹의 라벨들이 에지의 부분으로서 확인되고, 반면 강-에지 화소들에 연관되지 않은 한 그룹의 라벨들은 메모리에 저장되는 라벨들의 개수를 더욱 감소시키기 위해 폐기된다. 이 수법은 랜덤한 메모리 액세스를 최소화하고, 로컬 메모리 내로 이미지의 필요한 부분들을 예측하여 미리 가져올 수 있게 하고, 활성 라벨들만을 처리하는데, 그럼으로써 이것은 작은 내부 메모리들을 가질 수 있는 프로세서들을 사용하여 이미지의 에지들을 신속하게 추적할 수 있다.
따라서, 일 측면에서, 발명은 히스테리시스 임계화를 사용하여 이미지의 에지들을 추적하는 방법에 관련된다. 방법은 (a) 이미지의 에지 맵을 수신하는 단계; (b) 에지 맵의 행을 스캔하는 단계; (c) 적어도 부분적으로 이웃 에지 화소의 유무에 기초하여 행 내 각 에지 화소에 라벨을 할당하는 단계; (d) 에지 맵 내 각 행에 대해 단계(b) 및 단계(c)를 반복하는 단계; (e) 인접 라벨들을 그룹화하는 단계; 및 (f) 강-에지 화소들에 속하는 그룹들을 확인하는 단계를 포함한다. 여러 구현예에서, 이웃 에지 화소는 좌측 에지 화소, 위-좌측 에지 화소, 위 에지 화소, 또는 위-우측 에지 화소 중 어느 것이다. 래스터 행 내 각 에지 화소에 할당되는 라벨은 적어도 부분적으로 라벨이 전파되는 방향에 기초할 수 있다.
라벨들은 테이블 또는 데이터 구조에 저장된다. 라벨들이 데이터 구조에 저장된다면, 데이터 구조는 인접 런의 에지 화소들을 나타내는, 예를 들면 x-좌표, 카운트 수, 및 라벨을 포함하는, 엔트리를 포함할 수 있다. 엔트리 내 라벨은 적어도 부분적으로 인접 런의 에지 화소들에 이웃한 제 2 런의 에지 화소들의 유무에 기초하여 할당될 수 있다. 데이터 구조는 전파되는 라벨들을 저장하는 제 1의 따로 떨어진 한 세트의 데이터 포리스트 및 비(non)-전파되는 라벨들을 저장하는 제 2의 따로 떨어진 한 세트의 데이터 포리스트를 포함하는 혼성 데이터 구조를 포함할 수 있다. 대안적으로, 혼성 데이터 구조는 전파되는 라벨들을 저장하는 따로 떨어진 한 세트의 데이터 포리스트 및 비-전파되는 라벨들을 저장하는 어레이를 포함할 수 있다. 전파되는 라벨들은 모듈로 연산자를 사용하거나 이미지의 폭에 연관된 전파되는 라벨들의 최하위 비트들을 사용하여 로컬 메모리의 슬롯 수들에 할당될 수 있다. 또한, 전파되는 라벨들은 적어도 부분적으로 이들 간에 연결성에 기초하여 그룹화될 수 있다.
모든 할당된 수들 중에서 최소 값을 갖는 라벨은 강-에지 화소들에 위해 유보될 수 있다. 유보된 최소 수는 잇점이 있게 라벨들의 수를 감소시키고, 강 라벨들의 리스트를 별도로 저장하기 위한 메모리 요건들, 및 특정 라벨이 강-에지 화소인지를 판정하기 위해 라벨들의 리스트를 파싱하기 위한 처리 시간을 피하게 하며, 강-에지 라벨이 다른 라벨들로 대체되지 않을 수 있음을 보증한다.
또 다른 측면에서, 히스테리시스 임계화를 사용하여 이미지의 에지들을 추적하기 위한 시스템은, 로컬 메모리, 및 고속 인터페이스를 통해 로컬 메모리에 연결되고 저속 인터페이스를 통해 주 메모리에 연결된 프로세서를 포함한다. 프로세서는 (i) 주 메모리에 저장된 에지 맵의 행을 로컬 메모리에 로딩하고; (ii) 적어도 부분적으로 이웃 에지 화소의 유무에 기초하여 행 내 각 화소에 라벨을 할당하고; (iii) 에지 맵 내 각 행에 대해 단계(i) 및 단계(ii)를 반복하고; (iv) 인접 라벨들을 그룹화하고; (v) 강-에지 화소들에 속하는 그룹들을 확인하도록 구성된다.
에지 맵에서 전파하는 라벨들은 로컬 메모리에 저장되고, 반면 에지 맵에서 전파하지 않는 라벨들은 로컬 메모리 또는 주 메모리에 저장된다. 로컬 메모리는 예를 들면 전체 에지 맵을 저장하기엔 너무 작을 수 있다. 일부 구현예에서, 프로세서는 디지털-신호 프로세서이다.
이 명세서 전체에 걸쳐 "일예", "예", "일 구현예", 또는 "구현예"에 대한 언급은 예에 관련하여 기술된 특정한 특징, 구조, 또는 특성이 적어도 본 기술의 일예에 포함됨을 의미한다. 이에 따라, 이 명세서 전체에 걸쳐 여러 곳에서 "일예에서", "예에서", "일 구현예", 또는 "구현예"라는 어구들이 나타난 것이 반드시 모두가 동일 예를 언급하는 것은 아니다. 또한, 특정한 특징들, 구조들, 루틴들, 단계들, 또는 특성들은 기술의 하나 이상의 예들에서 임의의 적합한 방식으로 조합될 수도 있다. 여기에서 제공되는 제목들은 단지 편의를 위한 것이며 청구된 기술의 범위 또는 의미를 제한거하거나 해석하게 의도된 것이 아니다.
다음 설명에서, 본 발명의 여러 구현예는 다음 도면들을 참조하여 기술된다.
도 1은 입력 에지 맵이다.
도 2는 발명의 구현예에 따라 에지 맵에 기초한 예시적 라벨 맵을 도시한 것이다.
도 3은 발명의 구현예에 따라 방향성 라벨 맵이다.
도 4a는 발명의 구현예에 따라 데이터 구조에 저장되는 라벨들을 도시한 것이다.
도 4b는 발명의 구현예에 따라 또 다른 입력 에지 맵이다.
도 5는 발명의 구현예에 따라 등가 맵을 도시한 것이다.
도 6a는 종래 기술의 시스템에서 할당된 라벨들의 나무 구조 및 등가 맵을 도시한 것이다.
도 6b는 종래 기술의 시스템에서 할당되는 라벨들의 합체된 나무 구조 및 업데이트된 등가 맵을 도시한 것이다.
도 7a는 발명의 구현예에 따라 할당된 라벨들의 나무 구조 및 등가 맵을 도시한 것이다.
도 7b는 발명의 구현예에 따라 할당된 라벨들의 합체된 나무 구조 및 업데이트된 등가 맵을 도시한 것이다.
도 8a는 발명의 구현예에 따라 업데이트된 라벨 맵을 도시한 것이다.
도 8b는 발명의 구현예에 따라 출력 에지 맵이다.
도 8c는 발명의 구현예에 따라 런들의 라벨들에 기초하여 발생된 에지 맵을 도시한 것이다.
도 8d는 발명의 구현예에 따라 출력 에지 맵이다.
도 9는 발명의 구현예에 따라 이미지의 에지들을 추적하는 방법이다.
도 10은 발명의 구현예에 따라 이미지의 에지들을 추적하는 시스템이다.
상세한 설명
도 1은 소스 이미지로부터 도출되고, 전형적으로, 이미지 소스로부터 수신되는 예시적인 에지 맵(100)을 도시한 것이다. 에지 맵(100)은 에지 맵(100) 내 각 엔트리(즉, 행/컬럼(row/column) 값)가 소스 이미지 내 화소(또는 화소들)에 대응하는 소스 이미지의 화소씩 매핑이다. 에지 맵은 소스 이미지 내 각 화소(혹은 일 그룹의 화소들)를 강-에지 화소로서 혹은 비-에지 화소로서 분류한다(각각, "2", "1" 및 "0"으로서 에지 맵(100) 내에 표시된다). 예를 들면, 단일의 약-에지 화소(102)가 에지 맵(100)의 제 1 행(104)에 있고, 복수의 약-에지 화소들(106)이 제 2 행(108)에 있다. 강-에지 화소들(110)은 제 6 행(112)에서 나타나 있다. 일 구현예에서, 에지 맵(100)은 소스 이미지 내 세기들, 경사도들, 및/또는 그외 다른 인자들을 하나 이상의 임계값들(예를 들면, Tlow 및 Thigh)에 대해 분석함으로써 소스 이미지로부터 발생되는데, 에지 맵(100)은 에지- 분석 시스템으로부터 수신될 수도 있다.
강-에지 화소는 소스 이미지 내 고-콘트라스트 경계에 대응할 수 있고, 약-에지 화소는 소스 이미지 내 저- 혹은 중간-콘트라스트 경계에 대응할 수 있다. 비-에지 화소는 경계에 연관되지 않은 소스 이미지의 영역들에 대응할 수 있다. 2개의 임계값들(Tlow, Thigh)은 사전에 결정될 수도 있고 이미지 내 콘트라스트의 질을 반영하기 위해 조절될 수 있다. 예를 들면, Tlow와 Thigh 간에 차이는 이미지가 불량한 콘트라스트를 가질 땐 낮은 값에, 혹은 이미지의 콘트라스트가 양호할 땐 높은 값에 설정될 수 있다. 그러나, 낮은 임계값(들)은 더 많은 에지들의 검출을 초래할 수 있고, 결과적인 많은 수의 에지들은 노이즈가 일어나기 쉬울 수 있다(즉, 검출된 에지들의 일부는 이미지 내 실제 특징 에지들에 대응하지 않을 수도 있다). 반대로, 높은 임계값은 미묘한 에지들을 놓칠 수 있어 이미지 내에 조각난 경계들을 초래할 수 있다. 그러나, 본 발명은 임계값들의 임의의 특정한 값(혹은 수)으로 제한되지 않으며, 임계값들은 발명이 유용하게 동작하게 잘 선택되어야 하는데, 주어진 이미지에 대해 적합한 임의의 임계값들은 본 발명의 범위 내에 있다.
에지 맵(100)이 스캔되고(즉, 행씩으로), 이하 더 상세히 설명되는 바와 같이, 그 안에 데이터가 분석된다. 현재의 논의는 위에서 아래로(행들에 대해) 및 좌측에서 우측(각 행 내 컬럼들에 대해)으로의 래스터 스캔 순서를 취하지만, 그러나, 본 발명은 스캐닝의 임의의 특정한 방위(orientation), 방향 또는 순서로 제한되지 않으며, 예를 들면, 아래에서 위로 및 우측에서 좌측으로의 스캐닝이 채용될 수 있다. 당업자는 스캐닝의 서로 다른 방위들, 방향들, 및/또는 순서들은 현 발명의 범위 내에 있음을 알 것이다.
도 2를 참조하면, 라벨 맵(200)(또는, 이하 더 기술되는 바와 같이, 데이터 구조)을 발생하기 위해 에지 맵(100)에 제 1 스캐닝 패스(pass)가 적용되는데, 즉, 각 스캔되는 행에서 발견된 에지 화소들에 라벨(label)들이 할당된다. 라벨 맵(200) 내 행 내 각 화소에는 처음엔 디폴트 라벨(예를 들면, "0")이 할당되는데, 이 라벨은 에지 맵(100) 내 대응하는 행 내 모든 화소가 처음엔 배경 화소(또는, 이하 더 기술되는 바와 같이, 루트 라벨)로서 분류됨을 나타낸다. 에지 맵(100)의 각 행은 에지 화소들(강 혹은 약 에지들)에 대해 조사되고, 에지 화소들이 발견되었을 때, 이들에 라벨들이 할당된다. 확인된 에지 화소가 이미 현존하는 일 그룹의 에지 화소들의 부분이라면(이하 더 상세히 기술되는 바와 같이), 그룹의 이미 현존하는 라벨이 새로운 에지 화소에 적용된다. 반면에, 에지 화소가 새로운 그룹의 첫 번째라면, 이에 새로운 특유의 라벨이 할당된다.
라벨들은 다양한 수법들을 사용하여 할당될 수 있다. 일 구현예에서, 에지 맵(100)의 각 행은 좌측에서 우측으로 스캔되고, 이미 발견된(즉, 이전에-스캔된) 이웃 에지 화소의 유무에 기초하여 새로이 발견된 각 에지 화소에 수치 라벨들("1"의 제 1 라벨부터 시작하여)이 할당된다. 예를 들어, 도 1 또한 참조하면, 제 1 행(104)에서 약-에지 화소(102)가 처음 나타나는데, 어떠한 이웃 화소들도 존재하지 않기 때문에(적어도, 아직 알려진 것은 아무 것도 없다), 약-에지 화소(102)는 라벨 맵(200)에서 "1"로 라벨된다. 에지 맵(100)의 제 2 행(108)에서 더 많은 에지 화소들(106)이 나타나는데, 각각은 이웃 에지 화소(즉, 각 현재 화소의 좌측에 이전의 화소)를 갖기 때문에 각각은 라벨 맵(200)에서 "2"로 라벨된다.
이웃 화소들은 현재 화소의 라벨에 영향을 미칠 수 있다. 도 2에서, 라벨 맵(200) 내 제 2 행(208) 내 화소(206)는 이것이 "1"의 라벨이 이미 할당된 "위에" 이웃 에지 화소(202)를 갖기 때문에 "2" 대신 "1"로 라벨된다. 여러 구현예에서, 현재 화소의 라벨 값에 영향을 미치는 이웃 에지 화소들은 현재 화소의 바로 좌측에 위치될 수 있고, 혹은 현재 화소의 "위에 이웃"일 수 있다(즉, 위-좌측, 위, 및 위-우측 이웃들인 이전에 스캔된 행 내 화소들). 이전에-스캔된 이웃 에지 화소들을 전혀 갖지 않는 에지 화소들에는 새로운 라벨들이 할당되는데, 새로운 라벨들은 마지막 할당된 라벨을 1만큼 증분함으로써(혹은 특유하게 단조로이 증가하는 라벨들을 생성하는 임의의 다른 방법에 의해서) 발생될 수 있다. 이전에-스캔된 이웃들을 갖는 에지 화소들은 이전에-스캔된 이웃들로부터 전파된 동일 라벨로 라벨된다. 그러나, 하나 이상의 라벨이 현재 에지 화소에 전파한다면, 가장 작은 수를 가진 라벨이 현재 에지 화소에 할당될 수 있고 모든 다른 전파된 더 큰 수들은 최소 라벨과 같은 것으로 간주된다.
예시적 라벨 맵(200)의 완성은 제 9 행 내 화소들(210)에 "3"의 라벨을 할당하는 것과, 제 11 내지 제 16 행들 내 화소들에 "4" 및 "5"의 라벨들을 할당하는 것을 포함한다. 마지막 행(214) 내 화소들(212)에는 이들이 "5"로 라벨된 화소들(216)의 이웃들일지라도 이들이 이전의 행 내 "4"로 라벨된(및 5 미만인 4가 우선한다) 화소(218)의 이웃들이기도 하기 때문에 현존하는 라벨 "4"가 할당된다.
위에 기술된 수법으로 할당된 라벨들의 수는 많은 개별적 에지-화소 그룹들이 있을 때 많을 수 있고, 그럼으로써 라벨들을 저장하기 위해 요구되는 메모리를 수락불가할 정도로(예를 들면, 고속의 로컬 메모리보다 큰 크기) 증가시킬 수 있다. 예를 들면, 각 라벨에 대해 2 바이트를 할당하는 것은 요구되는 메모리 크기를 입력 이미지의 2배의 크기를 초래한다. 일부 구현예에서, 총 라벨들의 수를 줄이기 위해서, 수치 라벨들의 단순한 기수적 순서를 넘어, 수치 라벨들에 추가의 정보가 엔코딩될 수 있다. 예를 들면, 이웃 에지 화소 -이로부터 라벨 값이 상속되어졌다- 의 위치에 기초하여 각 에지 화소에 수치 라벨들이 할당될 수 있다. 예를 들면, 각각 "위-좌측", "위", "위-우측" 및 "좌측" 이웃들로부터 라벨들이 전파될 때 에지 화소들에 라벨들 "1", "2", "3", 및 "4"이 할당될 수 있다. 이웃 에지 화소 -이로부터 현재의 에지 화소가 라벨을 상속할 수 있다- 가 전혀 없다면, 이 에지 화소에는 "5"의 값 라벨이 할당될 수 있다. 현재의 화소가 비-에지 화소라면, "0"의 라벨이 할당될 수 있다. 예를 들면, 도 1 및 도 3를 참조하면, 도 1에서 약-에지 화소들(102, 114)은 이전에-스캔된 이웃 화소들로부터 가용한 라벨들의 부재에 기인하여 라벨 맵(300)에서 "5"(각각, 302, 304에 나타낸 바와 같이)의 라벨을 수신한다. 도 1에서 약-에지 화소(116)에는 라벨이 좌측 이웃(304)로부터 전파되기 때문에 라벨 "4"(306에 나타낸)가 할당된다. 유사하게, 라벨들이 각각 "위-우측", "위", 및 "위-좌측"이웃 화소들로부터 전파되기 때문에, 에지 화소들(308, 310, 312)에는 각각 "3", "2", 및 "1"의 라벨들이 할당된다. 이 수법은 개별적 에지-화소 그룹들의 개수에 관계없이, 에지 화소들에 할당되는 제한된 수의 라벨들(예를 들면, "0" 내지 "5")을 제공하며, 따라서 요구되는 메모리의 크기를 4배만큼 감소시킬 수 있다.
그러나, 이들이 배당되는 할당된 라벨들은 도 2 및 도 3에 도시된 바와 같이, 테이블 맵에 저장될 수 있다. 다른 구현예에서, 도 4a에 도시된 바와 같이, 라벨들이 할당되고 데이터 구조(400)에 저장되는데, 비-에지 화소들(및 이들의 대응하는 데이터)은 저장되지 않으며, 그럼으로써 전체 메모리 요건을 감소시킨다. 도 4a를 참조하면, 데이터 구조 내 각 엔트리(또는 "런(run)")는 3개의 파라미터들로서 "x", "카운트", 및 "라벨"을 내포할 수 있는데, x는 각각의 새로운 라벨의 시작의 x-좌표이고, 카운트는 라벨이 행에서 전파하는 화소들의 수(혹은 런의 길이)이고, 라벨은, 이하 더욱 기술되는 바와 같이, 런에 할당되는 라벨이다. 도 4a는 도 4b에 도시된 입력 에지 맵으로부터 도출된 데이터 구조(400)를 도시한 것이다. 예를 들면, 도 4a의 제 1 행(404)에서 (x, 카운트, 라벨) = (1, 2, 2)의 런(402에 나타낸)은 "1"의 x-좌표로 시작하고, 도 4b에서 2개의 연이은 에지 화소들(406, 408)(즉, 카운트 = 2)에 할당된 라벨 "2"를 나타내며, 유사하게, (6, 2, 3)의 런(410에 나타낸)은 "6"의 x-좌표로 시작하는, 도 4b에서 2개의 연이은 화소들(412, 414)(즉, 카운트 = 2)에 할당된 라벨 "3"을 나타낸다. 도시된 바와 같이, x-좌표는 맨 좌측의 에지 화소들(예를 들면, 컬럼(416))에서 0부터 시작하고, 스캔된 에지 화소들이 우측 방향(418)을 향하여 이동함에 따라 증분적으로 증가하는데, 그러나, x-좌표는 다른 방향들 및/또는 순서들로 선택될 수도 있다.
위에 기술된 바와 같이, 데이터 구조 또는 라벨 맵에서 라벨들은 다음의 대표적인 한 세트의 원리에 기초하여 할당될 수 있다. 일 구현예에서 모든 할당된 수들 중 최소(예를 들면, 라벨 "1")인 고유 라벨은 모든 강-에지 화소들(즉, 각각 도 1 및 도 4b에서 입력 에지 맵들(100, 420)에서 "2"의 값을 갖는 화소들)을 위해 유보될 수 있고, 그럼으로써 라벨들의 수를 감소시키고 강 라벨들의 리스트를 별도로 저장하기 위한 메모리 요건들을 피하게 한다. 유보된 최소 수는 특정 라벨이 강-에지 화소인지를 판정하기 위해 라벨들의 리스트를 파싱(parsing)하는데 소비되는 처리 시간을 피하게 한다. 또한, 이 최소 수는 위에 기술된 구현예에서, 2개의 라벨들이 동일 에지 화소에 전파할 때 더 작은 수를 갖는 라벨이 우선하기 때문에 강-에지 라벨이 데이터 구조(400)에서 다른 라벨들로 대체되지 않을 수 있음을 보증한다. 결국, 이웃 에지 화소들을 전혀 갖지 않는 약-에지 화소들에 할당되는 라벨들은 "2"부터 시작하고 마지막 할당된 라벨을 1만큼 증분적으로(혹은 고유 라벨들을 생성하는 임의의 다른 방법에 의해) 증가시킬 수 있다. 예를 들면, 각각 대응하는 런들(402, 410, 416) 내 개별적 그룹들(422, 424, 426)에 라벨들 "2", "3" 및 "4"가 각각 할당된다. 에지 맵(420)의 제 2 행(428)에서, 에지 화소(430)에는 이것이 런(402)에 도시된 바와 같이 "2"의 할당된 라벨을 갖는 이웃 에지 화소(406)를 갖기 때문에, 데이터 구조(400)의 런(432)에 보인 바와 같이, 라벨 "2"가 할당된다. 에지 맵(420)의 제 3 행(436)에서 에지 화소(434)에는 이것이 "1"의 라벨이 이미 할당된 이웃 강-에지 화소(440)를 갖기 때문에 데이터 구조(400)의 런(438)에 보인 바와 같이, 라벨 "1"이 할당된다.
서로 다른 래스터-스캔된 행들에서 이웃 에지 화소들의 존재는 x-좌표들 및 카운트 수들에 기초하여 판정될 수 있다(및 적합한 라벨들이 적용될 수 있다). 예를 들면, 2개의 연이은 행들에서 (x1, 카운트1, 라벨1)을 갖는 런 "1" 및 (x2, 카운트2, 라벨2)을 갖는 런 "2"은 런 "1"의 x-좌표 + 이의 길이가 런 "2"의 x-좌표보다 작다면(즉, x1 + 카운트1 < x2), 혹은 런 "2"의 x-좌표 + 이의 길이가 런 "1"(즉, x2 + 카운트2 < x1)의 x-좌표보다 작다면, 연결되지 않은 것으로(즉, 동일 그룹의 부분이 아닌 것으로) 판정되며, 반면 2개의 런들은 이들 2개의 조건들 중 어느 하나이든 만족되지 않는다면 연결된 것으로 간주된다. 동일한 래스터-스캔된 행 내 개별적 런들은 정의에 의해 연결되지 않으며, 이에 따라 이웃들이 아니다. 결과적으로, 데이터 구조(400)에서 각 런은 대표적인 한 세트의 다음 원리에 기초하여 할당된 라벨을 포함할 수 있다: (i) 최소 수를 가진 라벨이 강-에지 화소들을 위해 유보된다; (ii) 이전에-스캔된 이웃 런들이 전혀 없고 강-에지 화소들을 전혀 내포하지 않는 런들은 새로운 라벨들이 할당될 수 있는데, 새로운 라벨들은 예를 들면, 마지막 할당된 라벨을 1만큼 증분함으로써 발생된다; (iii) 새로이 발생된 라벨이 존재하는 라벨들에 대해 비교되고, 충돌이 검출된다면, 새로운 라벨은 더욱 증분되고 충돌이 없는 라벨(즉, 라벨은 자유 저장 슬롯을 지목한다)이 발생될 때까지 다시 체크된다; (iv) 이전에-스캔된 이웃들을 가지면 강-에지 화소들을 전혀 내포하지 않는 런들은 이전에-스캔된 이웃들로부터 전파된 동일 라벨로 라벨된다; (v) 하나 이상의 라벨이 현재의 런에 전파한다면, 가장 작은 수를 갖는 라벨이 현재의 런에 할당되고 모든 다른 전파된 더 큰 수들은 가장 작은 수와 같은 것으로 간주된다. 현재 행 및 이전 행 내 런들에 관한 정보만이 처리 동안 메모리에서 필요로 될 수 있어 이에 따라 메모리 요건은 매우 수수해진다.
논의되는 구현예의 제 4 단계에서, 할당된 라벨들은 에지 화소들 또는 런들의 연결성에 기초하여 함께 그룹화될 수 있다. 2개의 라벨들이 동일 에지 화소에 전파할 때, 2개의 라벨들은 동일한 것으로 간주되고 동일 그룹에 속할 수 있다. 예를 들면, 라벨들 "1" 및 "2" 둘 다 가 도 2에서 에지 화소(206)에 전파하기 때문에, "1" 및 "2"로 라벨된 그룹들의 화소들은 "1"의 라벨을 갖는 단일 그룹에 합체될 수 있고, 라벨 "2"는 부모(parent) 라벨 "1"의 자손 라벨로서 정의된다. 유사하게, 도 2에서 "4" 및 "5"로 라벨된 그룹들의 화소들은 "4"의 라벨을 갖는 단일 그룹에 될 수 있고, 따라서 라벨 "5"은 부모 라벨 "4"의 자손 라벨로서 정의된다. 각 그룹 내 라벨의 동등한 최소 값은 루트 라벨로서 정의되고, 그러면 합체된 라벨 정보 및 루트 라벨들은 도 5의 등가 맵(500)에 및/또는 업데이트된 라벨 맵에 저장될 수 있다. 등가 맵(500)은 벡터 어레이일 수 있는데, 예를 들면, 어레이의 제 1 행(520)은 한 세트의 할당된 라벨들일 수 있고, 제 2 행(530)은 이들의 대응하는 루트 라벨들을 나타낼 수 있다. 등가 맵(500) 내 값 "0"은 라벨 자체가 루트 라벨임을 나타냄에 유의한다.
라벨들이 할당되는 에지 화소들 또는 런들은 할당된 라벨들이 동일 그룹 내 있다면 함께 연결될 수 있고 이에 따라 동등한 것으로 간주되고, 반면 에지들 화소들 또는 런들은 이들의 할당된 라벨들이 개별적 그룹들에 속한다면 단절될 수 있다. 한 그룹의 할당된 라벨 및 이의 루트 라벨은 (예를 들면) "결합-발견" 수법을 사용하여 확인될 수 있다. 결합-발견 수법은 발견하는 동작(즉, 특정 라벨이 어느 그룹 내 있는지를 판정하는 것) 및 결합하는 동작인(즉, 2개의 이웃한 그룹들을 단일 그룹으로 조합/합체하는 것), 2개의 동작들을 수행할 수 있다. 두 라벨들이 동일 에지 화소(또는 런)에 전파한다면, 결합-발견 수법은 등가 맵(또는 라벨 맵) 내 라벨들을 이들의 루트 라벨들이 발견될 때까지 재귀적으로 추적할 수 있다. 루트 라벨들이 두 개의 개별적 그룹들에 속한다면, 두 그룹들은 단일 그룹에 조합되고, 그럼으로써 이들의 에지 화소들(이를테면 더 작은 그룹에 대응하는 루트 라벨과 같은 것인 루트 라벨들 중 하나는 다른 루트 라벨의 부모로서 정의될 수 있다)을 조합한다.
조합된 그룹들의 연속성은 수직, 수평, 및/또는 대각일 수 있다. 라벨들의 그룹(들) 간에 관계는 예를 들면, 도 6a에서 나무 구조(610, 620)로서 구성될 수 있다. 나무 구조 내 각 노드는 라벨을 나타내며 이의 부모 라벨에의 참조를 유지한다. 예를 들면, 도 4b에서 많은 수의 할당된 라벨들을 갖는 에지 맵은 도 6a에 도시된 바와 같이, 복수의 나무 구조들(즉, 따로 떨어진 한 세트의 포리스트(forest))을 포함할 수 있다. 동일 에지 화소에 할당된 두 라벨들 간에 새로운 연결 또는 런이 발생할 때, 두 라벨들이 속한 나무들의 루트 라벨들이 발견될 때까지 등가 맵(또는 데이터 구조)은 재귀적으로 추적될 수 있다. 두 라벨들이 위에 기술된 바와 같이, 서로 다른 나무들에 속한다면, 낮은 수를 갖는 루트 라벨은 다른 것의 부모 라벨로서 설정된다. 예를 들면, 도 6b를 참조하면, 나무 구조(630)는 도 6a에서 이어진 한 세트의 합체된 그룹들(610, 620)이며, 라벨 "1"은 라벨 "6"의 루트 라벨인 것으로 간주된다. 이어, 도 6a에서 등가 맵(640)은 도 6b에서 맵(650)이 되게 업데이트될 수 있다.
그러나, 각 할당된 라벨의 루트를 추적하고 이것이 속하는 그룹을 판정하는 것은, 할당된 라벨들의 수 및/또는 나무들의 깊이가 증가할 때 큰 메모리를 요구할 수 있다. 또한, 전체 나무를 평준화(flattening out)하는 것(즉, 할당된 라벨들을 이들의 루트 라벨들로 업데이트하는 것)은 라벨의 수가 클 때 시간 소모적일 수 있다. 또한, 라벨 맵(또는 데이터 구조)에서 전파하는 한 세트의 라벨들의 성질은 획득된 입력 맵에 따를 수 있고 이에 따라 미리 예측하는 것은 불가능할 수 있다. 단일의 따로 떨어진 한 세트의 포리스트를 데이터 구조(예를 들면, 도 6a 및 도 6b에 도시된 바와 같은)로서 사용하는 것은 라벨 맵(또는, 데이터 구조)에의 랜덤한 액세스를 초래할 수 있고, 이에 따라 -특히 맵 또는 데이터 구조가 고속 로컬 메모리에 들어맞기엔 너무 크다면- 처리 시간을 높일 수 있다. 일 구현예에서, 나무 구조의 활성 부분들(즉, 전파하는 라벨들)을 판정하기 위해 라벨 맵(이를테면 도 2에 도시된 맵과 같은) 및/또는 데이터 구조(이를테면 도 4a의 데이터 구조와 같은) 내 런들에서 에지 화소들의 연결성이 사용된다. 이어 나무의 활성 부분들은 각 행을 처리한 후에 평준화된다. 이 수법은 활성 라벨들(즉, 전파된 라벨들)만을 업데이트하고 따라서 평준화 시간이 최소가 되기 때문에, 획득된 이미지의 전체 처리 시간은 현저히 감소될 수 있다. 또한, 루트 라벨들만이 라벨 맵(또는 데이터 구조)을 통해 전파하게 라벨 맵(또는 데이터 구조)의 마지막 행 내 에지 화소들(또는 런들)에 할당된 라벨들은 이들의 루트 라벨들로 대체될 수 있는데, 이것은 라벨들의 처리된 수를 더욱 감소시키고 그럼으로써 처리 시간을 감소시킨다. 도 7a를 참조하면, 도 7a의 나무 구조(710) 및 등가 맵(720)에 보인 바와 같이, 라벨들 "2", "3", "4", "5", 및 "6"은 모두 데이터 구조(400) 내 라벨 "1"에 연결되기 때문에, 이들은 이들의 부모 라벨(또는 루트 라벨) "1"로 평준화될 수 있다. 유사하게, 나무 구조(730)에서, 라벨들 "8", "9", 및 "10"의 부모 라벨들은 각각 라벨들 "7", "8", 및 "8"이다. 에지 맵의 마지막 행을 처리한 후에, 두 개의 따로 떨어진 나무들(710, 730)은 그룹으로 합체될 수 있는데, 이때 라벨 "7"은 이의 더 큰 수에 기인하여 부모 라벨(또는 루트 라벨) "1"의 자손 라벨이 되게 설정될 수 있다. 합체된 나무 구조는 도 7b의 740에 도시되었고, 등가 맵(750)이 이에 따라 업데이트된다.
위에 기술된 바와 같이, 통상적인 에지 추적 기술들에서 사용되는 따로 떨어진 한 세트의 포리스트 데이터 구조는 라벨 맵에의 랜덤한 액세스들을 초래할 수 있고 및/또는 큰 메모리를 요구한다. 이 문제를 해결하기 위해서, 일 구현예에서, 전파되는 라벨들(즉, 활성 라벨들)이 라벨 맵 또는 데이터 구조에서 비-전파되는 라벨들(즉, 비활성 라벨들)로부터 분리되는 현 발명에서는 혼성 데이터 구조가 사용된다. 루트 라벨들만이 전파하기 때문에, 현재 처리되는 각 행 내에 있는 활성 루트 라벨들에만 결합-발견 동작이 적용된다. 활성 라벨들은 따로 떨어진 한 세트의 데이터 포리스트가 사용되는 활성 상응 맵에 저장될 수 있고, 반면 비활성 라벨들은 따로 떨어진 한 세트의 데이터 포리스트 또는 (라벨, 부모 라벨)의 어레이가 사용되는 비활성 상응 맵에 저장될 수 있다(예를 들면, 이하 더욱 기술되는 바와 같이, 따로 떨어진 한 세트의 데이터 구조에서 가용한 자유 슬롯이 없을 때). 비활성 상응 맵은 일반적으로 제한된 저장 공간을 갖기 때문에, 복수의 라벨들에 의해 단일의 저장 슬롯이 공유될 수 있다. 일 구현예에서, 비활성 상응 맵 내 새로이 발생된 라벨은 존재하는 라벨들에 대해 비교되고, 충돌이 검출된다면, 새로운 라벨은 더욱 증분되고 충돌이 없는 라벨이 발생될 때까지 다시 체크된다. 이에 따라, 한 세트의 라벨들은 단조로이 증가할 수 있는데, 그러나 라벨들에 대해 사용되는 정수들에서 갭들을 포함할 수 있다.
그러나, 라벨들의 총 개수는 활성 상응 맵에서 가용한 저장 슬롯들의 수보다 클 수 있는데, 활성 라벨들을 가용한 슬롯들에 매핑하기 위해 "다수-대-1" 함수가 사용될 수 있다. 일 구현예에서, 각 라벨 N에 대한 슬롯 수는 N x mod(L)로서 계산되는데, mod는 모듈로 연산자이고 L은 가용한 슬롯들의 수이다. 또 다른 구현예에서, 라벨들의 LSB들을 사용하여 다수-대-1 함수가 수행되고, 따로 떨어진 한 세트의 포리스트의 크기는 이를테면 pow(2;B)와 같은 멱(power) 함수가 되게 선택되며, B는 (ceil/(log2(M/2))로서 정의된다(M/2는 각 행 내 활성 라벨들의 최대 개수이고 M은 이미지의 폭이다). 그러면, 각 라벨은 상응 맵에서 라벨의 슬롯 수 "B LSB들"에 할당될 수 있고 이를 통해 액세스될 수 있다. 현재 라벨 카운터의 수를 증분함으로써 새로운 라벨이 발생될 수 있는데, 라벨들의 "B LSB들"의 슬롯 수들에 이미 할당된 존재하는 활성 라벨들과 충돌하고 있는 수들은 배제된다. 이미-할당된 활성 라벨들을 배제하거나 이를 지나 증분함으로써, 두 개의 활성 라벨들은 활성 상응 맵 내 동일한 슬롯에 할당되지 않는다. 여러 구현예에서, 따로 떨어진 한 세트의 데이터 구조 내 가용한 자유 슬롯이 없을 때, 모든 비활성 라벨들은 (예를 들면) (라벨, 부모 라벨) 어레이로서 저장되고, 예를 들면, 외부 메모리에 이동되고, 그럼으로써 내부/로컬 메모리 내 자유 공간을 해제한다. 또한, 전파하지 않는 루트 라벨들은 대안적 데이터 구조에 이동되고 이것이 자유 슬롯임을 나타내기 위해 비-제로 값으로 표시될 수 있다.
논의되는 구현예의 제 5 단계에서, 추적되는 에지들을 판정하기 위해 제 2 패스가 적용될 수 있는데, 예를 들면, 강-에지 화소들에 연관된 그룹들의 라벨들은 추적된 에지들로서 확인될 수 있다. 도 8a에 업데이트된 라벨 맵(800) 및 도 1에 에지 맵(100)을 참조하면, 확인된 그룹들의 라벨들은 강-에지 화소들(예를 들면, 강-에지 화소들(110))의 위치들과 상관된다. 에지 맵(100) 내 강-에지 화소들과 일치하거나 이에 연결하는 라벨 맵(800) 내 그룹들의 라벨들은 도 8b의 업데이트된 에지 맵(810)에서 "FF"로 표시되고, 강-에지 화소들과 일치하거나 이에 연결하지 않는 그룹들의 라벨들은 "0"으로 표시된다. 업데이트된 상응 맵(810) 내 "3"으로 라벨된 그룹들의 화소들은 적어도 추적된 에지들이 에지 맵(100) 내 대응하는 강-에지 화소들을 전혀 가지 않기 때문에 추적된 에지들로서 "FF"로 표시되지 않는다. 도 4a에 데이터 구조(400)가 사용된다면, 강-에지 화소들(즉, 라벨 "1")을 내포하는 런들에 화소들은 추적된 에지들로서 확인되고 도 8c의 업데이트된 에지 맵(820)에서 "FF"로 표시될 수 있다. 새로운 라벨들이 발생되는 런들에 화소들은 "A"로 표시되고, 데이터 구조(400)에서 나머지 런들에 화소들은 도 8c의 맵(820)에 도시된 바와 같이 "B"로 표시된다. 재-표시 프로세스는 "A" 및/또는 "B"로 표시된 런들이 에지 곡선들의 부분들인지를 판정하기 위해 필요할 수 있다. 예를 들면, 맵(820)에서 "A"로서 표시된 런에 대해서, 현재의 라벨 카운터를 증분함으로써 새로운 라벨이 발생될 수 있고, 새로운 발생된 라벨의 부모 라벨은 등가 맵에서 탐색될 수 있다. 이의 부모 라벨이 "1"이라면, 이것은 이러한 런이 강-에지 화소에 연결됨을 나타내며, 추적된 에지로서 확인될 수 있고, 그럼으로써 "FF"로 표시될 수 있고, 반면 "1"이 아닌 부모 라벨들을 갖는 런들은 도 8d의 업데이트된 에지 맵(830)에 도시된 바와 같이, "0"으로 표시될 수 있다. "B"로 표시된 런들은 이들이 모두 연결되기 때문에 이전에 스캔된 행 내 이들의 이웃 화소들 중 어느 것의 표시에 기초하여 재-표시될 수 있다. 비활성 라벨들이 (라벨, 부모 라벨)의 어레이로서 저장되거나 비활성 상응 맵 내 갭들이 제거되는 따로 떨어진 한 세트의 데이터로서 저장되는 비활성 상응 맵에 제 2 패스가 유사하게 적용될 수 있음에 유의한다. 일 구현예에서, 비활성 상응 맵 내 라벨들은 충돌하는 저장 슬롯들에 대해 체크함이 없이 라벨 카운터를 증분시킴으로써 발생되는데, 이것은 처리 시간을 현저히 감소시킨다. 마지막으로, 업데이트된 에지 맵(810, 830)에서 "FF"로 표시된 런들은 추적된 에지들인 것으로 간주된다.
현 발명의 구현예에 따라 에지 추적을 위한 대표적인 방법(900)이 도 9에 도시되었다. 제 1 단계(910)에서, 소스 이미지에 기초한 에지 맵이 수신되는데, 에지 맵은 예를 들면, 두 개의 임계값들을 가진 히스테리시스 임계화를 사용하여 발생될 수 있다. 제 2 단계(920)에서, 입력 에지 맵의 각 행에 대해 래스터-스캐닝이 수행된다. 제 3 단계(930)에서, 이웃 에지 화소의 유무에 기초하여 래스터 행 내 각 에지 화소에 라벨이 할당된다. 이어, 라벨들은 테이블 맵 또는 데이터 구조에 저장되는데, 인접 라벨들(즉, 연결되는 화소들)은 이어 세트들로 그룹화된다(제 4 단계(940)에서). 각 라벨의 루트 라벨이 판정되고, 각 그룹은 루트 라벨의 값에 기초하여 에지 화소들 또는 비-에지 화소들로서 확인된다(제 5 단계(950)에서).
현 발명의 구현예에 따라, 에지 추적을 위한 시스템(1000)이 도 10에 도시되었다. 디지털 카메라와 같은 이미지 장치(1010)로 획득된 이미지는 외부 메모리(1020)에 저장된다. 외부 메모리(1020), 이를테면 랜덤-액세스-메모리(RAM) 또는 하드 디스크는 프로세서(1030)에 원격에 위치될 수 있고 저속 링크(1035)를 통해 연결된다. 로컬 메모리(1040)보다 자릿수가 클 수 있는 외부 메모리(1020)는 프로세서(1030)에 의해 데이터의 저장 및 인출을 위해 로컬 메모리(1040)보다 더 많은 클럭 사이크들(예를 들면, 100 사이클들)을 요구한다(예를 들면, 로컬 캐시 액세스에 대해 1 사이클). 여기에서 로컬 메모리(1040)는 고속 메모리를 언급하기 위해 사용되지만 그러나 제한하려는 것은 아니며 임의의 종류의 레지스터 파일, 캐시, 또는 계층에서 큰 저속 외부 메모리(1020)보다 프로세서(1030)에 더 가까운 임의의 다른 유형의 메모리에 적용할 수 있음에 유의한다. 래스터 순서로 스캔되는 이미지의 부분에 관한 정보는 로컬 메모리(1040)에 저장되며 에지 맵을 발생하기 위해 프로세서(1030)에 의해 가져온다. 프로세서(1030)는 라벨들을 이미지의 각 에지 화소에 할당하며 이의 라벨들을 그룹화한다. 지령들 및 명령들을 실행하는 프로세서(1030)는 범용 컴퓨터일 수 있는데, 그러나, 전용 컴퓨터, 마이크로컴퓨터, 미니-컴퓨터, 메인프레임 컴퓨터, 프로그램된 마이크로-프로세서, 마이크로-제어기, 주변 집적회로 요소, CSIC(Customer Specific Integrated Circuit), ASIC(Application Specific Integrated Circuit), 로직 회로, 디지털 신호 프로세서, 이를테면 FPGA(Field Programmable Gate Array), PLD(Programmable Logic Device), PLA(Programmable Logic Array), RFID 프로세서, 스마트 칩과 같은 프로그램 가능 로직 장치, 혹은 발명의 프로세스들의 단계들을 구현할 수 있는 임의의 다른 장치 또는 장치들의 배열을 포함한, 매우 다양한 다른 기술들 중 어느 것이든 이용할 수 있다. 이어 그룹들의 라벨들은 에지 화소들 또는 비-에지 화소들인 것으로서 확인되고, 결과들은 외부 메모리(1020), 로컬 메모리(1040)에 저장되고 및/또는 장치(1050)에 출력된다.
본원에서 채용되는 용어들 및 표현들은 제한이 아니라 설명의 용어들 및 표현들로서 사용되고, 이러한 용어들 및 표현들의 사용에 있어 도시 및 기술된 특징들 및 이들의 부분들의 임의의 등가물들을 배제하려는 의도는 없다. 또한, 발명의 어떤 구현예를 기술하였으나, 본원에 개시된 개념들을 사용한 다른 구현예가 발명의 정신 및 범위 내에서 사용될 수 있음이 당업자들에게 명백할 것이다. 따라서, 기술된 구현예는 모든 점에서 제약이 아니라 단지 예시적인 것으로 간주되어야 한다.

Claims (19)

  1. 하기를 포함하는 히스테리시스 임계화를 사용하여 이미지의 에지들을 추적하는 방법:
    (a) 상기 이미지의 에지 맵을 수신하는 단계;
    (b) 상기 에지 맵의 행을 스캔하는 단계;
    (c) 적어도 부분적으로 이웃 에지 화소의 유무에 기초하여 상기 행 내 각 에지 화소에 라벨을 할당하는 단계;
    (d) 상기 에지 맵 내 각 행에 대해 단계(b) 및 단계(c)를 반복하는 단계;
    (e) 인접 라벨들을 그룹화하는 단계; 및
    (f) 강-에지 화소들에 속하는 그룹들을 확인하는 단계.
  2. 제 1 항에 있어서, 상기 이웃 에지 화소는 좌측 에지 화소, 위-좌측 에지 화소, 위 에지 화소, 혹은 위-우측 에지 화소 중 어느 것인, 방법.
  3. 제 1 항에 있어서, 상기 라벨들은 테이블 또는 데이터 구조에 저장되는, 방법.
  4. 제 3 항에 있어서, 상기 데이터 구조는 인접 런(run)의 에지 화소들을 나타내는 엔트리를 포함하는, 방법.
  5. 제 4 항에 있어서, 상기 엔트리는 x-좌표, 카운트 수, 및 상기 라벨을 포함하는, 방법.
  6. 제 5 항에 있어서, 적어도 부분적으로 상기 인접 런의 에지 화소들에 이웃한 제 2 런의 에지 화소들의 유무에 기초하여 상기 엔트리 내에 상기 라벨을 할당하는 단계를 추가로 포함하는, 방법.
  7. 제 4 항에 있어서, 상기 데이터 구조는 혼성 데이터 구조를 포함하는, 방법.
  8. 제 7 항에 있어서, 상기 혼성 데이터 구조는 전파되는 라벨들을 저장하는 제 1 따로 떨어진 한 세트의 데이터 포리스트(forest) 및 비(non)-전파되는 라벨들을 저장하는 제 2 따로 떨어진 한 세트의 데이터 포리스트를 포함하는, 방법.
  9. 제 7 항에 있어서, 상기 혼성 데이터 구조는 전파되는 라벨들을 저장하는 따로 떨어진 한 세트의 데이터 포리스트 및 비-전파되는 라벨들을 저장하는 어레이를 포함하는, 방법.
  10. 제 8 항 또는 제 9 항에 있어서, 상기 전파되는 라벨들은 모듈로 연산자를 사용하여 로컬 메모리의 슬롯 수들에 할당되는, 방법.
  11. 제 8 항 또는 제 9 항에 있어서, 상기 전파되는 라벨들은 상기 이미지의 폭에 연관된 상기 전파되는 라벨들의 최하위 비트들을 사용하여 로컬 메모리 슬롯들의 슬롯 수들에 할당되는, 방법.
  12. 제 8 항 또는 제 9 항에 있어서, 상기 전파되는 라벨들을 적어도 부분적으로 이들 간에 연결성에 기초하여 그룹화하는 단계를 추가로 포함하는, 방법.
  13. 제 1 항에 있어서, 모든 할당된 수들 중에서 최소 값을 갖는 상기 라벨은 상기 강-에지 화소들에 위해 유보되는, 방법.
  14. 제 1 항에 있어서, 적어도 부분적으로 상기 라벨이 전파되는 방향에 기초하여 상기 래스터 행 내 각 에지 화소에 라벨을 할당하는 단계를 추가로 포함하는, 방법.
  15. 로컬 메모리; 및
    고속 인터페이스를 통해 상기 로컬 메모리에 연결되고 저속 인터페이스를 통해 주 메모리에 연결된 프로세서를 포함하는, 히스테리시스 임계화를 사용하여 이미지의 에지들을 추적하기 위한 시스템으로서,
    상기 프로세서는,
    (i) 주 메모리에 저장된 에지 맵의 행을 상기 로컬 메모리에 로딩하고;
    (ii) 적어도 부분적으로 이웃 에지 화소의 유무에 기초하여 상기 행 내 각 화소에 라벨을 할당하고;
    (iii) 상기 에지 맵내 각 행에 대해 단계(i) 및 단계(ii)를 반복하고;
    (iv) 인접 라벨들을 그룹화하고;
    (v) 강-에지 화소들에 속하는 그룹들을 확인하도록 구성되는 시스템.
  16. 제 15 항에 있어서, 상기 에지 맵에서 전파하는 라벨들은 상기 로컬 메모리에 저장되는, 시스템.
  17. 제 15 항에 있어서, 상기 에지 맵에서 전파하지 않는 상기 라벨들은 상기 로컬 메모리 또는 상기 주 메모리에 저장되는, 시스템.
  18. 제 15 항에 있어서, 상기 로컬 메모리는 상기 전체 에지 맵을 저장하기엔 너무 작은 것인, 시스템.
  19. 제 15 항에 있어서, 상기 프로세서는 디지털-신호 프로세서인, 시스템.
KR1020147012958A 2011-11-18 2012-11-15 히스테리시스 임계화를 사용한 에지 추적 KR101655000B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161561495P 2011-11-18 2011-11-18
US61/561,495 2011-11-18
US13/426,844 US8965132B2 (en) 2011-11-18 2012-03-22 Edge tracing with hysteresis thresholding
US13/426,844 2012-03-22
PCT/US2012/065160 WO2013074721A1 (en) 2011-11-18 2012-11-15 Edge tracing with hysteresis thresholding

Publications (2)

Publication Number Publication Date
KR20140094541A true KR20140094541A (ko) 2014-07-30
KR101655000B1 KR101655000B1 (ko) 2016-09-06

Family

ID=48427030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012958A KR101655000B1 (ko) 2011-11-18 2012-11-15 히스테리시스 임계화를 사용한 에지 추적

Country Status (4)

Country Link
US (1) US8965132B2 (ko)
KR (1) KR101655000B1 (ko)
DE (1) DE112012004809B4 (ko)
WO (1) WO2013074721A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2551664B1 (en) * 2010-03-24 2014-11-12 Shimadzu Corporation Measuring system
US8965132B2 (en) * 2011-11-18 2015-02-24 Analog Devices Technology Edge tracing with hysteresis thresholding
AU2012258408A1 (en) * 2012-11-27 2014-06-12 Canon Kabushiki Kaisha Path tracing method
US9292763B2 (en) * 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction
US9934577B2 (en) * 2014-01-17 2018-04-03 Microsoft Technology Licensing, Llc Digital image edge detection
US9686449B1 (en) * 2016-03-18 2017-06-20 Interra Systems, Inc. Methods and systems for detection of blur artifact in digital video due to high quantization
EP3293672A1 (en) * 2016-09-07 2018-03-14 Malvern Panalytical Limited Particle boundary identification
CN109035276B (zh) * 2018-06-26 2022-03-18 北京中科慧眼科技有限公司 一种图像边缘提取方法、装置及自动驾驶系统
CN110610163B (zh) * 2019-09-18 2022-05-03 山东浪潮科学研究院有限公司 一种自然场景下基于椭圆拟合的表格提取方法及系统
CN112419357B (zh) * 2020-11-18 2023-06-30 方正株式(武汉)科技开发有限公司 一种生成图像实体轮廓一笔画路径的方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110081087A1 (en) * 2009-10-02 2011-04-07 Moore Darnell J Fast Hysteresis Thresholding in Canny Edge Detection

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590520A (en) 1983-11-28 1986-05-20 Ball Corporation Method and apparatus for detecting and filling-in dead spots of video signals from an image sensor
US4910786A (en) * 1985-09-30 1990-03-20 Eichel Paul H Method of detecting intensity edge paths
US5157743A (en) 1987-10-28 1992-10-20 Canon Kabushiki Kaisha Image information coding apparatus
US5245677A (en) 1991-08-08 1993-09-14 Hughes Aircraft Company Directional running average segmentation
US5420917A (en) * 1993-12-09 1995-05-30 At&T Corp. Automated recovery of telecommunication network elements
US5640468A (en) 1994-04-28 1997-06-17 Hsu; Shin-Yi Method for identifying objects and features in an image
US5715331A (en) 1994-06-21 1998-02-03 Hollinger; Steven J. System for generation of a composite raster-vector image
EP0722149B1 (en) 1995-01-13 2003-05-02 STMicroelectronics S.r.l. Hough transform with fuzzy gradient and fuzzy voting
FR2731819B1 (fr) * 1995-03-17 1997-04-11 Alsthom Cge Alcatel Methode d'extraction de contours utilisant une analyse multi-fractale
US5767978A (en) 1997-01-21 1998-06-16 Xerox Corporation Image segmentation system
AUPP128498A0 (en) 1998-01-12 1998-02-05 Canon Kabushiki Kaisha A method for smoothing jagged edges in digital images
US6798910B1 (en) 2001-05-17 2004-09-28 The United States Of America As Represented By The Secretary Of The Air Force Self-optimizing edge detection in blurred, high-noise images
JP4407801B2 (ja) 2003-12-16 2010-02-03 セイコーエプソン株式会社 エッジ生成装置、エッジ生成方法およびエッジ生成プログラム
US7450268B2 (en) 2004-07-02 2008-11-11 Hewlett-Packard Development Company, L.P. Image reproduction
EP1837806A1 (en) * 2006-03-24 2007-09-26 MVTec Software GmbH System and methods for automatic parameter determination in machine vision
US7680303B2 (en) 2006-09-11 2010-03-16 Mitsubishi Electric Research Laboratories, Inc. Image registration using joint spatial gradient maximization
JP2008085695A (ja) 2006-09-28 2008-04-10 Fujitsu Ltd 電子透かし埋め込み装置および検出装置
US8542900B2 (en) * 2007-03-08 2013-09-24 Sync-Rx Ltd. Automatic reduction of interfering elements from an image stream of a moving organ
US8565531B2 (en) 2009-10-09 2013-10-22 Xerox Corporation Edge detection for mixed raster content (MRC) images for improved compression and image quality
US8538163B2 (en) * 2009-10-13 2013-09-17 Sony Corporation Method and system for detecting edges within an image
US8965132B2 (en) * 2011-11-18 2015-02-24 Analog Devices Technology Edge tracing with hysteresis thresholding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110081087A1 (en) * 2009-10-02 2011-04-07 Moore Darnell J Fast Hysteresis Thresholding in Canny Edge Detection

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Binary Image Analysis* *
Fast computation of thresholding hysteresis for edge detection* *

Also Published As

Publication number Publication date
WO2013074721A1 (en) 2013-05-23
KR101655000B1 (ko) 2016-09-06
US20130129225A1 (en) 2013-05-23
DE112012004809B4 (de) 2021-09-16
DE112012004809T8 (de) 2014-09-18
US8965132B2 (en) 2015-02-24
DE112012004809T5 (de) 2014-08-07

Similar Documents

Publication Publication Date Title
KR101655000B1 (ko) 히스테리시스 임계화를 사용한 에지 추적
US8180154B2 (en) Method and apparatus for region-based segmentation image processing using region mapping
US5056146A (en) Three-dimensional labeling apparatus for two-dimensional slice image information
US5048096A (en) Bi-tonal image non-text matter removal with run length and connected component analysis
He et al. An efficient first-scan method for label-equivalence-based labeling algorithms
EP0785522B1 (en) Method and system for detecting a pattern in an image
TWI533383B (zh) 使用重覆結構之基於設計之檢測
JP2008527546A (ja) 改良された画像セグメンテーション方法
Sabouri et al. A cascade classifier for diagnosis of melanoma in clinical images
GB2463141A (en) Medical image segmentation
CN109977952B (zh) 基于局部最大值的候选目标检测方法
JP6300723B2 (ja) 並行処理のために顕微鏡画像を区画化するシステムおよび方法
Gupta et al. A new parallel algorithm for two-pass connected component labeling
US7430320B2 (en) Region-guided boundary refinement method
Havel et al. Efficient tree construction for multiscale image representation and processing
CN111444964A (zh) 一种基于自适应roi划分的多目标快速图像匹配方法
US20030083567A1 (en) Medical imaging station with a function of extracting a path within a ramified object
US11270439B2 (en) Histogram-based method for auto segmentation of integrated circuit structures from SEM images
Chen et al. Efficient parallel connected component labeling with a coarse-to-fine strategy
US9858293B2 (en) Image processing apparatus and image processing method
US20230169784A1 (en) Text processing method and apparatus, and electronic device and storage medium
US20130259382A1 (en) Incremental contour-extraction scheme for binary image segments
US20170286815A1 (en) Generating an object map from a plurality of binary images
CN108876701B (zh) 一种基于游程的单次扫描连通域标记方法及其硬件结构
CN111932515B (zh) 产品残留类缺陷的短路检测方法及系统及缺陷分类系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 4