KR101546590B1 - 원을 위한 허프 변환 - Google Patents

원을 위한 허프 변환 Download PDF

Info

Publication number
KR101546590B1
KR101546590B1 KR1020130146325A KR20130146325A KR101546590B1 KR 101546590 B1 KR101546590 B1 KR 101546590B1 KR 1020130146325 A KR1020130146325 A KR 1020130146325A KR 20130146325 A KR20130146325 A KR 20130146325A KR 101546590 B1 KR101546590 B1 KR 101546590B1
Authority
KR
South Korea
Prior art keywords
edge
line
pixels
edge pixels
image
Prior art date
Application number
KR1020130146325A
Other languages
English (en)
Other versions
KR20140071242A (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 KR20140071242A publication Critical patent/KR20140071242A/ko
Application granted granted Critical
Publication of KR101546590B1 publication Critical patent/KR101546590B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • 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/20048Transform domain processing
    • G06T2207/20061Hough transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

원을 위한 허프 변환은 관심있는 라인에서 투표하는 대응하는 라인 내의 에지 픽셀에 의거하여 이미지의 각 라인 내의 중심 좌표를 연속적으로 식별함으로써 허프 누산기 어레이로의 랜덤 액세스를 회피하는 방식으로 실현될 수 있다.

Description

원을 위한 허프 변환{HOUGH TRANSFORM FOR CIRCLES}
본 발명은 이미지 내의 원들을 검출하기 위한 시스템 및 방법에 관한 것으로, 더욱 구체적으로는 원을 위한 허프 변환에 관한 것이다.
원형 물체의 검출은 많은 실질적인 응용에 중요하다. 예를 들면, 그러한 검출은 다수의 부품의 형상이 원형인 경우의 자동 조립 및 검사와 같은 산업적인 응용에 유용하다. 또한, 그러한 검출은 대부분의 유럽 및 아시아의 국가들에서 원형인 교통 신호를 자동으로 검출하기 위해 채용될 수도 있다. 원 검출은 또한, 홍채의 내부 및 외부 경계의 위치를 알아내기 위해 홍채 인식을 위한 생체 측정 응용에서 사용될 수도 있다.
원 검출을 위한 일반적인 이미지 분석 기술은 원을 위한 허프 변환이다. 허프 변환은 이미지 내의 라인의 파라메트릭(parametric) 표시를 생성하고, 그들 파라메트릭 표시가 직교 공간 좌표의 함수로서 이미지 값들(예컨대, 명도 또는 색채)을 관심있는 라인 또는 곡선에 대해 적합한 파라미터에 의해 스패닝되는(spanned) 허프 공간 상에 전형적으로 특정하는 실제 공간에서의 이미지를 맵핑한다. 예를 들면, 2차원 이미지에서의 직선은 좌표계의 원점으로부터 그들의 방향과 거리를 특정하는 2차원 파라미터 공간 상에 맵핑될 수 있고, 2차원 이미지에서의 원은 원의 중심 좌표 및 반경을 특정하는 3차원 파라미터 공간 상에 맵핑될 수 있다.
(표준 허프 변환 또는 SHT라고도 칭해지는) 원을 위한 허프 변환의 간단한 실행 시에, 원 중심(xc, yc) 및 반경 r에 의해 스패닝되는 허프 공간을 위한 3차원 누산기 어레이가 유지되고, 에지(즉, 명도, 색채, 또는 심도와 같은 이미지 파라미터에 이산 변화가 행해진 라인)에 대응하는 실제 공간 이미지에서의 픽셀이 각각의 구성요소에 대해 저장된 카운터를 증분시킴으로써 누산기 어레이의 구성요소에 대한 "투표(vote)"를 위해 파싱된다(parsed). 가장 간단한 실시예에서, 각 에지 픽셀은 그 픽셀을 포함하는 퍼텐셜(potential) 원에 대응하는 모든 누산기 어레이 구성요소에 대해 "투표"한다: 예를 들면, rmin에서 rmax까지의 범위 내의 반경을 갖는 원을 찾고, 좌표(x,y)를 갖는 에지 픽셀이 rmin≤r≤rmax인 식 (x-xc)2+(y-yc)2=r2을 만족하는 누산기 어레이에서의 모든 구성요소(xc, yc, r)에 대해 투표한다. 따라서, 각 에지 픽셀은 허프 파라미터 공간에서의 원추 곡선(cone section) 상에 맴핑될 것이다. 실제 공간 내에서의(즉, 원래의 이미지 내에서의) 동일한 원 상에 놓이는 에지 포인트에 있어서, 이들 원추 곡선은 단일 포인트에서 교차한다. 따라서, 원은 누산기 어레이에서의 국부 최대값(local maxima)을 발견함으로써 식별될 수 있다.
원을 위한 SHT는 허프 누산기 어레이에 대해 상당한 실행 시간 및 대용량 메모리를 필요로 하기 때문에, 마이크로프로세서 또는 마이크로컨트롤러의 내부 메모리 내에 어레이의 저장을 일반적으로 불가능하게 한다. 또한, 원을 위한 SHT는 누산기 어레이에 대한 빈번한 랜덤 액세스를 수반하기 때문에, 일반적인 내장형 마이크로컨트롤러 및 디지털 신호 프로세서(DSP)용의 캐시 및 직접 메모리 액세스(DMA)를 방해한다. 따라서, 프로세싱 및 메모리 요구를 감소시키는 SHT에 대한 여러 가지 변형이 제안되고 있다. 예를 들면, 이미지 내에서의 에지의 방향의 지식을 이용하여, 에지 픽셀이 투표하는 누산기 어레이 구성요소의 수가 에지에 수직인 라인 상의 (또는 에지 방향의 부정확한 추정을 설명하기 위해 그 라인을 둘러싸는 영역 내의) 원 중심에 대응하는 그들 구성요소에 대해 감소될 수 있다. 또한, 3차원 누산기 어레이를 사용하는 대신에, 2 이상의 더 낮은 차원의 어레이가 연속으로 사용될 수도 있다. 예를 들면, 몇몇 기술은 2개의 단계로: 가능한 중심을 식별하기 위한 제1 단계, 및 각 중심에 대한 반경을 추정하기 위한 제2 단계로 원을 검출한다. 이들 변형이 허프 변환 알고리즘의 성능을 향상시킬 수 있지만, 이들은 일반적으로 국부 메모리 내의 누산기 어레이를 버퍼링하는 것을 용이하게 하기에는 충분하지 못하다. 더욱이, 종래 기술에서 사용되는 바와 같은 2단계 알고리즘은 동심 원 또는 원호들이 이미지 내에 존재하는 경우 효율적으로 작업하지 못한다. 그러므로, 메모리 요구 및/또는 실행 시간을 더욱 감소시키는 강력한 기술이 매우 요망된다.
본 발명은 누산기 어레이로의 랜덤 액세스를 감소시키거나 소거함으로써 실행 시간을 감소시키는 원 및/또는 원호의 허프 변환에 의거한 검출을 위한 시스템 및 방법을 제공한다. 여러 가지 실시예는 2 단계 접근 방법을 채택하며, 그 첫 째는 원의 중심 후보가 결정되고, 둘째로는 각 중심에 대응하는 반경이 추정된다. 종래 기술의 방법과 달리, 제1 단계는 모든 에지 픽셀에 걸쳐 (예를 들면, 에지 픽셀들이 에지 픽셀 버퍼 내에 저장된 순서로) 파싱하는 것과, 각 픽셀에 대해, 누산기 어레이 내의 랜덤 위치로의 연속적인 액세스를 필요로 하는 픽셀이 투표하는 2차원 누산기 어레이 내의 구성요소를 결정하는 것을 필요로 하지 않는다. 그 보다는, 제1 단계는 퍼텐셜 중심 후보에 한 라인씩 이미지를 탐색하는 것을 수반한다. 특정 라인 내의 중심 후보를 식별하는 것은 (일반적으로는 이미지 전체 내의 라인 보다 수적으로 상당히 적은) 특정 라인에 대해 투표하는 에지 픽셀의 라인을 식별하는 것, 가능한 중심의 1차원 누산기 어레이에서 투표하도록 식별된 에지 픽셀 라인을 파싱하는 것, 및 중심 후보에 대응하는 1차원 누산기 어레이의 최대값을 결정하는 것을 포함할 수도 있다. 1차원 누산기 어레이는 다수의 실시예에서 국부 메모리(예컨대, 캐시) 내에 설치하고, 연속적인 중심 픽셀 라인용으로 재사용될 수 있다.
몇몇 실시예에서는 투표 단계에 앞서 그 내의 에지 픽셀의 총 수를 결정하기 위해 (개별 에지 픽셀에 대해서가 아니라) 총괄하여 에지 픽셀 라인을 분석하고, 이러한 총 수에 의거하여, 특정된 임계값을 초과하지 않는 중심 픽셀 라인을 소거하는 필터링 단계가 선행하고; 이 단계는 투표 단계에서의 연산의 총 수를 상당히 감소시킬 수 있다. 필터링 단계와 투표 단계의 양자는 상이한 각각의 에지 방향을 위한 빈(bin) 내에 에지 픽셀의 저장 및/또는 각 라인 내의 에지 픽셀의 수 및 x 좌표에 대한 별개의 버퍼 내의 에지 픽셀 좌표의 표시의 이점을 가질 수도 있다. 이들 특징은 부가적인 효율성 이득을 제공할 수 있고 메모리 요구를 더욱 감소시킬 수도 있다.
따라서, 제1 양태에서는, 본 발명은 디지털 메모리 내의 원을 검출하는 방법에 관한 것이다. 그 방법은 이미지 내의 에지 픽셀을 컴퓨터로 검출하고, 복수의 에지 버퍼 내에 검출된 에지 픽셀의 좌표 정보를 상기 픽셀과 관련된 에지 각도에 의거하여 저장하는 단계를 수반한다. 상기 복수의 에지 버퍼의 각각은, 그 에지 방향이 그 버퍼와 관련된 에지 방향의 빈 내에 있는 에지 픽셀의 좌표 정보만을 저장할 수도 있다. 총괄하여, 상기 복수의 에지 버퍼는 모든 가능한 에지 방향을 위한 빈을 제공할 수도 있다. 몇몇 실시예에서는, 상기 좌표 정보는 각각의 에지 각도용의 2개의 1차원 에지 버퍼에 저장되고, 제1 에지 버퍼는 상기 에지 픽셀의 수평 위치를 저장하며, 제2 버퍼는 상기 이미지의 각 라인과 관련된 에지 픽셀의 누산한 총 수(즉, 당해의 라인을 포함하여 그 라인까지 라인 내에서 검출된 에지 픽셀의 총 수)를 저장한다.
상기 방법은 특정 범위 내의 반경을 갖는 원의 중심을 상기 이미지의 하나 이상의 선택된 라인의 각각에서 연속적으로 컴퓨터로 식별하는 단계를 포함한다. 이 단계는 (ⅰ) 각 에지 각도에 대해, 선택된 라인으로부터의 거리가 반경의 특정 범위 내에 있는 에지 픽셀의 라인을 식별하는 것, (ⅱ) 에지 픽셀의 식별된 라인을 파싱하며, 상기 에지 각도 및 검출된 에지 픽셀의 좌표 정보에 적어도 부분적으로 의거하여, 상기 선택된 라인에서 상기 에지 픽셀로부터 투표를 누산하는 것, 및 (ⅲ) 누산된 투표에 적어도 부분적으로 의거하여 (그리고, 선택적으로 또한 투표 임계값 및/또는 원의 중심의 특정된 총 수에 의거하여) 상기 선택된 라인 내의 중심을 식별하는 것을 수반한다. 몇몇 실시예에서는, 이미지의 모든 라인이 이 방식으로 처리된다. 다른 실시예에서는, 라인의 서브세트가, 서브세트 내의 각 라인에 대한 중심의 식별 이전에, 상기 이미지의 상기 라인으로부터의 거리가 반경의 상기 특정 범위 내에 있는 에지 픽셀의 각각의 라인 내의 에지 픽셀의 누산한 수가 에지 방향의 특정된 양의 수(예를 들면, 1, 2 이상의 에지 방향)에 대한 특정된 임계값 미만인 상기 이미지의 라인을 소거함으로써 선택된다.
몇몇 실시예에서는, 상기 선택된 라인에서 상기 에지 픽셀로부터의 투표는 1차원 누산기 버퍼 내에 누산되고; 이 버퍼는 적어도 하나의 선택된 라인의 각각에 대해 연속적으로 재사용될 수도 있다. 에지 픽셀의 상기 식별된 라인을 파싱하는 것은 상기 특정된 범위 내의 상기 반경까지 반복하는 것, 및 매 반복 시마다, 에지 픽셀의 관련 라인을 결정하는 것을 포함할 수도 있다. 에지 픽셀의 상기 식별된 라인은 그 후, 각 픽셀과 관련된 중심 좌표를 연산하고 상기 중심 좌표에 대한 카운터를 증분함으로써 상기 이미지의 선택된 라인에서 투표를 누산하도록 파싱될 수도 있다. 몇몇 실시예에서는, 상기 방법은 상기 식별된 원의 중심의 각각에 대해, 상기 특정 범위 내의 상기 반경에 대한 모든 에지 각도에 대해 에지 픽셀로부터의 투표를 누산하고 누산된 투표의 최대값을 식별함으로써 관련된 반경을 결정하는 단계를 더 포함한다.
제2 양태에서는, 본 발명은 픽셀의 저장된 어레이를 포함하는 디지털 이미지 내의 원을 검출하는 시스템을 제공한다. 그 시스템은 픽셀과 관련된 에지 각도에 의거하여 복수의 에지 버퍼 내에 상기 이미지 내의 에지 픽셀의 좌표 정보를 저장하는 메모리를 포함한다. 상술한 바와 같이, 상기 좌표 정보는 (상기 에지 픽셀의 수평 위치, 및 상기 이미지의 각 라인과 관련된 에지 픽셀의 누산한 총 수를 저장하는) 각각의 에지 각도용의 2개의 1차원 에지 버퍼에 저장될 수도 있고, 상기 에지 버퍼는 모든 가능한 에지 방향을 위한 빈을 제공할 수 있고, 여기에서 각 개별 버퍼는 그 에지 방향이 그 버퍼와 관련된 빈 내에 있는 에지 픽셀의 좌표 정보만을 저장한다. 상기 시스템은 특정 범위 내의 반경을 갖는 원의 중심을, 상기 이미지의 적어도 하나의 선택된 라인의 각각에서 연속적으로 및 저장된 좌표 정보에 의거하여 (그리고, 선택적으로 원의 중심의 특정된 총 수 또는 투표 임계값에 의거하여) 상술한 방식으로 식별하도록 구성된 프로세서를 포함한다. 상기 프로세서는 또한, 이미지 내의 에지 픽셀을 검출하여 좌표 정보를 메모리 내에 저장하도록, 상기 이미지의 상기 라인으로부터의 거리가 반경의 상기 특정 범위 내에 있는 에지 픽셀의 각각의 라인 내의 에지 픽셀의 누산한 수가 (에지 방향의 특정된 양의 수에 대한) 특정된 임계값 미만인 상기 이미지의 라인을 소거하도록, 및/또는 (상술한 방식으로) 식별된 원의 중심의 각각에 대해 관련된 반경을 식별하도록 구성될 수도 있다. 투표하는 동안, 상기 프로세서는 상기 선택된 라인에서 상기 에지 픽셀로부터의 투표를, 상기 선택된 라인의 각각에 대해 연속적으로 재사용 가능하게 될 수도 있는 (예컨대, 상기 프로세서의 국부 메모리 내에 저장된) 1차원 누산기 버퍼 내에 누산할 수도 있다.
이상은 특히, 도면과 관련하여 볼 때 아래의 상세한 설명으로부터 더욱 쉽게 이해될 것이다.
도 1은 여러 실시예에 따라서 원 검출 방법을 예시한 순서도;
도 2는 여러 실시예에서 이용되는 바와 같은 원 중심 및 에지 픽셀 라인 사이의 관계를 예시한 도면;
도 3은 여러 실시예에 따라서 도 1의 필터링하는 단계를 더욱 상세히 예시한 순서도;
도 4a 및 4b는 여러 실시예에 따라서 도 1의 투표하는 단계를 더욱 상세히 예시한 순서도;
도 5는 여러 실시예에 따라서 도 1의 반경 추정 단계를 더욱 상세히 예시한 순서도;
도 6a는 여러 실시예에 따라서 에지 검출 방법을 실시하는 예시적인 범용 컴퓨터를 예시한 블록도; 및
도 6b는 여러 실시예에 따라서 에지 검출 방법을 실시하는 예시적인 DSP 시스템을 예시한 블록도.
도 1은 여러 가지 실시예에 따라서 변형된 허프 변환 알고리즘의 개요(overview)를 제공한다. 알고리즘(100)은 입력으로서 이미지를 받아들이고, 출력으로서 이미지 내에서 검출된 원 및/또는 원호의 반경 및 중심 좌표에 대한 정보를 제공한다. 출력은 실질적으로 있는 그대로(예를 들면, 중심 좌표 및 반경의 원본 리스트의 형태로) 사용자에게 제공될 수 있거나, 또는 추가로 처리될 수도 있고 예를 들면, 이미지 상에 겹쳐지는 원의 윤곽의 형태로 그래픽적으로 표현될 수도 있다. (필수적인 것은 아니지만) 일반적으로, 이미지의 탐색은 특정된 범위 내에 있는 반경을 갖는 원으로 제한되며; 이 범위는 특정 응용에 의존하고, 그러한 환경 하에서 적절하게 되기에는 너무 작거나 너무 큰 원의 검출과 관련된 불필요한 연산 동작을 회피한다. 예를 들면, 홍채 인식 방법에 있어서, 검출될 홍채를 갖는 사람이 이미지를 획득하는 카메라로부터 일정 범위의 거리(예를 들면, 5 ㎝에서 1 m까지의 범위) 내에 있다고 가정될 수 있고, 인간 홍채에 대한 일반적인 크기 범위와 결합하여, 이 정보가 이미지 내에서 검출된 홍채의 가능한 반경의 범위를 계산하는 것을 용이하게 한다. 유사하게, 원형의 교통 신호의 검출을 위해, 관심있는 반경의 범위는 인식 가능한 거리 예컨대, 1 m와 200 m 사이의 거리로부터 볼 때 정상 크기의 교통 신호의 명백한 크기에 의거하여 특정될 수도 있다.
도 1에 도시된 바와 같이, 원 검출의 제1 단계 102는 에지 픽셀을 식별하기 위해 이미지를 파싱하는 것을 포함한다. 에지는 일반적으로 픽셀 값들(즉, 각 픽셀과 관련된 하나 이상의 이미지 파라미터들의 값들)에서의 급한 기울기 또는 이산 점프(discrete jump)에 대응한다. 예를 들면, 명도나 색채는 대상의 경계에서 급격히 변화할 수도 있다. 더욱이, 심도 감지 능력을 갖는 카메라로 획득한 이미지는 픽셀과 관련된 심도 정보를 가질 수 있고, 여기에서 심도는 카메라로부터 이미지 획득된 대상의 거리에 대응하며; 그러한 정보는 명도 및 색채가 배경으로부터 많이 달라지지 않을지라도, 예컨대, 전경 대상의 경계를 식별하기 위해 사용될 수도 있다. 일반적으로 에지는 적어도 하나의 이미지 파라미터에서 대비하는 2개의 이미지 영역 사이의 경계에 형성된다. 그러나, 몇몇 응용에서는, 대비는 이산 라인과 (더욱 또는 덜 균일한) 배경 사이에 존재하고; 이 경우에는, 라인 자체가 에지를 구성한다. 에지 픽셀은 예를 들면, 소블(Soble) 에지 검출 또는 캐니(Canny) 에지 검출과 같은 당업자에게 알려진 다양한 에지 검출 방법 중 어느 하나를 이용하여 식별될 수 있다. 이들 방법은 일반적으로 이진 출력을 제공하며, 여기에서 각 픽셀은 에지에 속하거나 속하지 않는다. 예를 들면, 몇몇 실시예에서, 수평 및 수직 필터가 이미지 위에 적용되고, 픽셀은 몇몇 이미지 파라미터의 기울기의 크기가 특정된 임계값 보다 큰 경우 에지 픽셀로 간주된다. 기울기의 방향은 픽셀의 에지 방향을 제공한다.
에지 픽셀로 식별되면, 그 픽셀의 좌표 정보(즉, 그 픽셀의 행 및 열 수)가 이하 "에지 버퍼"라고 칭해지는 버퍼 내에 저장된다(단계 104). 여기에서 사용되는 바와 같이, 용어 "버퍼"는 광범위하게, 물리적으로 구별하고 별개로 어드레스될 수 있거나, 더욱 공통적으로는 메인 메모리 내에 논리적으로 구획된 전용 메모리 영역을 칭한다. 따라서, 복수의 에지 버퍼는 별개의 메모리 모듈, 단일 메모리 내의 구획, 또는 데이터 구조 내의 단순히 분리된 엔트리일 수도 있다. 이후의 처리 단계에서 검출된 에지의 방향을 고려하는 것을 용이하게 하기 위해, 에지 픽셀은 그들이 속하는 에지의 방향에 따라서 비닝되고(binned), 상이한 빈(bin)을 위해 별개의 버퍼에 저장될 수도 있다. 예를 들면, 32개의 에지 버퍼가 사용될 수도 있고, 각각은 버퍼들이 총괄하여 전체 360°를 커버하도록 11.25°의 에지 방향의 각도 범위에 대응한다. (이와 달리, 180°만큼 상이한 에지 방향이 결국 동일한 방법으로 처리되기 때문에, 각각 11.25°를 커버하는 16개의 버퍼만이 사용될 수도 있다.) 이하의 논의의 명확함을 위해, 에지 방향은 이하 도 2에 예시되는 바와 같이, (에지에 접선인 원의 반경 방향에 대응하는) 에지에 국부적으로 직교하는 라인과 수평 축(즉, 축) 사이에서 스팬되는 각도
Figure 112013108945870-pat00001
를 특징으로 한다. 각 빈은 빈에 의해 커버되는 각도의 범위로부터 선택된 이산값
Figure 112013108945870-pat00002
예컨대, 그 범위의 중심 각도로 표현된다.
에지 버퍼는 1차원적일 수도 있고 모든 에지 픽셀에 대한 좌표 쌍(x,y)의 리스트를 간단히 저장할 수도 있다. 이와 달리, 좌표 정보는 상이한 포맷으로 저장될 수도 있다. 여기에 따르는 방법의 여러 가지 처리 단계에 있어서, 2개의 버퍼에 에지 픽셀 좌표를 저장하는 것이 유리하다.
Figure 112013108945870-pat00003
(여기에서
Figure 112013108945870-pat00004
는 에지 방향을 나타낸다)로 표기되는 제1 버퍼는 예를 들면, 이미지의 제1 행 내의 에지 픽셀의 좌표에서 시작하여 좌측에서 우측으로 이동한 후에 이미지의 제2 행으로 이동하는 (그리고, 다시 좌측에서 우측으로 이동하는) 등의, 일련의 모든 에지 픽셀의 x 좌표만 리스트한다.
Figure 112013108945870-pat00005
으로 표기된 제2 버퍼는 각 행 n에 대해 행 n을 포함하여 행 n까지의 모든 행에서 누적 검출되는 에지 픽셀의 수를 저장한다. 에지 위치를 저장하는 이 기술은 관련 메모리 요구를 약 1/2만큼 감소시킨다. 버퍼
Figure 112013108945870-pat00006
Figure 112013108945870-pat00007
로부터, 전체 좌표 정보(x,y)가 간단히 복원될 수 있고; (y 좌표를 결정하는) 특정 라인 n 내의 픽셀의 x 좌표가
Figure 112013108945870-pat00008
로 주어지는 시작 인덱스와
Figure 112013108945870-pat00009
으로 주어지는 종료 인덱스 사이의
Figure 112013108945870-pat00010
에서 발견될 수 있다.
저장된 에지 픽셀 좌표 정보는 허프 공간용의 누산기 어레이에서 투표하기 위한 후속 단계에서 사용된다. 개념적으로는, 허프 공간은 크기 M×N×R의 3차원 어레이 [xc,yc,r]을 특징으로 할 수 있으며, 여기에서 M 및 N은 각각 이미지 내에서의 열 및 행의 수이고, R은 관심있는 범위 내의 이산 반경의 수이다. 그러나, 여러 가지 실시예는 2 단계의 접근법을 채택하며, 단계 Ⅰ(단계 106, 108)에서, 모든 원들의 중심 좌표 (xc,yc)는 관심있는 범위 내의 모든 반경 r에 대한 에지 픽셀로부터의 투표를 누산함으로써 결정되고, 단계 Ⅱ에서, 반경 r의 히스토그램(histogram)이 대응하는 원의 반경을 추정하기 위해 단계 Ⅰ에서 식별된 각 중심에 대해 생성된다(단계 110). 또한, 단계 Ⅰ에서, 중심 좌표 (xc,yc)의 완전한 M×N 어레이 [xc,yc]에서 생성 및 투표하는 것보다는, 여러 가지 실시예는 이미지 내의 각 라인 n에 대해 그 라인이 하나 이상의 원의 중심을 포함할지를 결정하고, (도 2 및 도 3에 대해 더욱 상세히 후술되는 바와 같이) 그 답이 부정인 경우에 그들 라인을 삭제하는 필터링 단계(106)를 삽입한다.
필터링 단계(106)에서 살아남은 라인들이 투표 단계(108)에서 파싱되며, 여기에서 퍼텐셜 중심 좌표가 식별된다. 이 프로세스는 한 라인씩 즉, yc의 고정 값에 대해 연속적으로 실행되고, 각 라인 lc에 대해, 크기 M의 1차원 누산기 어레이에서 투표하는 것(도 4a 및 4b에 대해 더욱 상세히 후술되는, 단계 112)을 수반한다. 1차원 어레이는 일반적으로 예컨대, 캐시 메모리 내에 국부적으로 저장될만큼 충분히 작으므로, 투표 프로세스 동안 외부 메모리 액세스에 대한 요구를 제거한다. 특정 라인에 대한 투표 프로세스가 완료될 때, 1차원 어레이가 외부 메모리로 전송될 수 있고 후속 단계(예컨대, 국부 최대값의 결정) 동안 저장될 수 있으며(단계 114); 이 액세스는 근본적으로 비랜덤이고, 따라서 DMA를 통해 효과적으로 달성된다. 이와 달리, 누산기 어레이의 국부 최대값은 바로 식별될 수 있고(단계 116) 별개의 데이터 구조(예컨대, 식별된 중심의 좌표를 리스트하는 중심 후보 버퍼)에 저장될 수 있으며(단계 118), 누산기 어레이는 이후 폐기될 수 있다. 어느 방법에서도, 1차원 누산기 어레이를 저장하는 국부 버퍼가 후속 라인에 대해 계속적으로 재사용될 수 있다.
누산기 어레이의 국부 최대값에 의거하여 중심 좌표를 결정하는 것은 미리 정해진 임계값에 대해 각각의 그러한 최대값에 대한 투표의 수를 비교하는 것과, 임계값이 초과된 경우 중심 후보로서 그들 좌표만을 보유하는 것을 수반할 수도 있다. 중심 후보와 관련된 투표의 수는 간단히 각각의 픽셀에서의 투표의 수일 수 있고; 이와 달리, 몇몇 실시예에서는, 예컨대, 중심에 대한 서브픽셀 정확성을 달성하기 위해 그 픽셀을 둘러싸는 작은 서브어레이(예를 들면, 그들의 각각의 중심에서 중심 후보 픽셀을 갖는 3×3 어레이)에서 합산된다. 후자의 경우에는, 누산기 버퍼의 다수의(예컨대, 3개의) 라인이 중심 후보를 결정하기 위해 유지된다. 임계화(thresholding)에 의해 중심을 식별하는 것에 덧붙여, 몇몇 실시예는 이미지 내에서 검출될 원의 최대 수를 선험적으로 특정한다(이하 T로 표기됨). 그러한 경우에, 최고 T 중심(즉, 투표의 최대 수를 갖는 것)만이 보유된다. 특정 라인에 대해 식별된 중심 후보는 미리 처리된 라인의 모든 중심 후보를 저장하는 데이터 구조에 대해 비교되며, 총 수가 T를 초과하는 경우, 최대 T 내에 없는 후보가 폐기되거나 최고 T 후보 중 하나로 오버라이트(overwrite)된다.
여러 가지 실시예에 따르는 허프 변환 알고리즘의 심장부에 이하 더욱 상세히 설명될 필터링 단계(106) 및 투표 단계(108)가 있다. 양 단계는, 에지 픽셀을 통해 한번에 하나의 픽셀을 파싱하는 것보다는 한번에 중심 후보의 하나의 라인에 대한 모든 관련 에지 픽셀로부터의 투표를 누산하고, 각 픽셀이 투표하는 누산기 어레이 내의 구성요소를 계산함으로써 랜덤 누산기 액세스를 회피한다. 더욱이, 양 단계(106, 108)는 에지 각도
Figure 112013108945870-pat00011
에 의거하여 에지 픽셀의 그룹핑(grouping)의 이점을 얻는다.
도 2를 참조하여, 라인 lc에서의 원의 중심 C0을 고려한다. rmin과 rmax 사이에서 변하는 원의 반경에 있어서, 중심 C0에서 투표하는 에지 각도
Figure 112013108945870-pat00012
를 갖는 모든 에지 픽셀은 라인 lp0과 lp1 사이의 라인 단편 P0P1 위에 놓이며, 중심 C0에서 투표하는 에지 각도
Figure 112013108945870-pat00013
+180°를 갖는 모든 에지 픽셀은 라인 lq0과 lq1 사이의 라인 단편 Q0Q1 위에 놓인다. 라인 수는 아래와 같이, rmin, rmax
Figure 112013108945870-pat00014
로부터 각 빈에 대해 계산될 수 있다:
Figure 112013108945870-pat00015
Figure 112013108945870-pat00016
Figure 112013108945870-pat00017
Figure 112013108945870-pat00018
(이 계산에서,
Figure 112013108945870-pat00019
는 일반적으로 특정 빈을 대표하는 에지 각도이다. 그러나, 개별 빈에 의해 커버되는 각도 범위가 큰 경우에는, 모든 관련 에지 픽셀 라인이 식별되는 것을 보증하기 위해 이들 범위의 경계 각도를 사용하는 것이 유리할 수도 있다. 구체적으로는, lp0과 lq0을 연산하기 위해, sin
Figure 112013108945870-pat00020
의 더 작은 값을 결과로 생성하는 경계 각도가 사용될 수도 있고, lp1과 lq1을 연산하기 위해, sin
Figure 112013108945870-pat00021
의 더 큰 값을 결과로 생성하는 경계 각도가 사용될 수도 있으므로, 라인 경계가 확대된다.) 역으로, 라인 lc가 하나 이상의 중심을 포함하는 경우에는, lp0으로부터 lp1까지의 및 lq0으로부터 lq1까지의 라인이 에지 픽셀을 (이론적으로는 각 이산
Figure 112013108945870-pat00022
에 대해 중심 포인트당 2개이지만, 실제로는
Figure 112013108945870-pat00023
의 각 값이 에지 방향의 범위를 나타내기 때문에, 또한 에지가 다수의 픽셀을 스패닝하는 두께를 가질 수도 있기 때문에, 일반적으로 그 이상) 포함해야 한다. 원이 모든 각도를 갖는 픽셀을 포함하므로, 이것은 원이 부분적으로 폐쇄되지 않는 한 대부분의 각도
Figure 112013108945870-pat00024
에 대해 참이다.
이들 의견은 도 3에 예시된 바와 같이 누산기 어레이 (xc,yc)로부터 라인을 소거하는 데 사용될 수 있다. 필터링 단계(106)는 일반적으로 에지 각도
Figure 112013108945870-pat00025
를 선택하는 것(단계 300)과, 그 각도 lp0, lp1, lq0 및 lq1에 대해 라인 lc 내에서의 중심에 관련된 - 즉, 그 중심에서 투표할 수 있는 에지 픽셀을 포함하는 - 라인의 범위를 확인하기 위해 계산하는 것(단계 302)으로부터 시작한다. 이어서, 라인의 이들 범위 내의 에지 픽셀의 총 수가 결정된다(단계 304). 에지 픽셀 좌표가 상술한 바와 같이, 버퍼
Figure 112013108945870-pat00026
Figure 112013108945870-pat00027
에 저장되는 경우에는, 이 결정은 간단한 계산에 의해 이루어질 수 있다: 라인 n 내지 n+k에서의 에지 픽셀의 총 수는 간단히
Figure 112013108945870-pat00028
이다. 단계 306에서, 에지 픽셀의 계산된 총 수는 특정된 임계값에 대해 비교되고, 임계값이 초과되지 않는 경우에는, 라인 lc는 어떠한 중심도 갖지 않는 것으로 간주된다. 임계값이 일반적으로 더 높게 될 것이고, 에지 방향의 빈이 더 크게 되고, 임계값이 예컨대, (예를 들면, 픽셀의 수에서의 에지의 두께에 영향을 줄 수 있는) 이미지 해상도 및 콘트라스트와 같은 다른 파라미터 및 원 검출 시의 가짜 양성(false positive)과 가짜 음성 사이의 원하는 트레이드 오프(trade-off)에 의존할 수도 있다. 특정 실시예에서, 임계값은 실험적으로 예컨대, 알려진(예컨대, 수동으로 확인된) 원을 갖는 이미지 상에 여러 가지 임계값 설정을 위한 원 검출 알고리즘을 테스트함으로써 설정되거나 조정된다. 그 알고리즘이 완전한 원들만 검출하도록 의도되는 경우에는, 라인 lc는 관련 라인 내의 픽셀의 수가 단 하나의 각도
Figure 112013108945870-pat00029
에 대한 임계값 미만일지라도 폐기될 수 있다(단계 308). 반면에, 가변하는 각도의 부분적인 폐쇄를 가능하게 하기 위해, 라인 lc의 소거가 임계값 미만의 2 이상의 각도 빈에서 조절될 수도 있다.
도 4a는 중심 후보가 필터링 단계(106) 동안 소거되지 않은 라인 lc에 대해 원리적으로 어떻게 결정될 수 있는지를 예시한다. 필터링 단계(106)와 유사하게, 이 프로세스는 에지 각도
Figure 112013108945870-pat00030
의 선택(단계 400)에 따라, 누산기의 특정 라인 lc에서 투표하는 각 에지 방향에 대한 에지 픽셀의 라인을 식별하는 것(단계 402)으로부터 시작한다. (물론, 라인의 이들 범위가 재계산될 필요는 없지만, lp0, lp1, lq0 및 lq1이 필터링(단계 302) 동안 그들의 결정에 따라 저장된 후에 투표하는 단계 108에서 검색될 수 있다. 더욱이, 주의할 것은 (rmin·sin
Figure 112013108945870-pat00031
) 및 (rmax·sin
Figure 112013108945870-pat00032
)의 값들은
Figure 112013108945870-pat00033
의 모든 값들에 대한 초기화 단계 동안에만 계산될 수 있고, 그 후 와 lp0, lp1, lq0 및 lq1이 간단한 덧셈 연산으로 각 lc에 대해 계산될 수도 있다는 것이다.)
단계 404에서, 라인 lp0 내지 lp1 및 lq0 내지 lq1이 파싱되고, 여기에서 각 픽셀은 그 x 좌표 및 라인 수에 의거하여 라인 lc에 대해 1차원 누산기 어레이에서 투표한다. 에지 픽셀 좌표가 버퍼
Figure 112013108945870-pat00034
Figure 112013108945870-pat00035
에 저장되면, 에지 라인을 파싱하는 것은 먼저
Figure 112013108945870-pat00036
에 저장된 정보에 의거하여
Figure 112013108945870-pat00037
내의 이들 라인에 대한 인덱스들을 연산한 후, 이들 인덱스 사이에서
Figure 112013108945870-pat00038
를 파싱하는 것을 수반한다. 각 에지 픽셀에 있어서, 픽셀이 lc에 대한 누산기에서 투표하는 x 좌표 xc가 연산되고(단계 406), 누산기의 대응하는 구성요소(xc) 내의 투표 카운터가 증분된다(단계 408). x 좌표 xp를 갖는 lp0 내지 lp1 사이의 라인 lp 내의 에지 픽셀은 아래로 주어지는 x 좌표 xc를 갖는 lc 내의 픽셀에 대해 투표한다:
Figure 112013108945870-pat00039
유사하게, x 좌표 xq를 갖는 lq0 내지 lq1 사이의 라인 lq 내의 에지 픽셀은 아래로 주어지는 x 좌표 xc를 갖는 lc 내의 픽셀에 대해 투표한다:
Figure 112013108945870-pat00040
모든 라인이 특정 각도 빈
Figure 112013108945870-pat00041
에 대해 파싱된 후에, 프로세스는 후속 각도 빈에 대해 반복된다(단계 410). 완전한 원이 실질적으로 동일한 수를 갖는 모든 각도 빈의 에지 픽셀을 포함하기 때문에, 몇몇 실시예에서는, 투표가 후속 각도 빈으로 이동하기 전의 임계값에 대해 비교되고(단계 412), 투표가 임계값 미만인 lc 내의 좌표 xc가 (예컨대, 후속 각도 빈이 처리될 때 그들 좌표가 고려 대상에서 제외되도록 그들 좌표를 마킹함으로써) 중심 후보의 세트로부터 소거된다. 다른 실시예에서는, 임계값을 체크하는 데 너무 많은 시간을 소비하는 것을 방지하기 위해 및/또는 부분적으로 폐쇄된 원의 검출을 가능하게 하기 위해, 임계값은 빈의 상당한 단편이 처리된 후에만 체크될 수 있다. 예를 들면, 몇몇 실시예에서는, 누산된 투표가 적절한 임계값에 대해 체크되기 전에 투표는 대부분의 다른 각도 빈에 대해 완료된다. 마지막으로, 모든 각도 빈에 대한 투표가 완료된 후에, 최고의 T 중심 좌표의 투표가 다른 라인으로부터 미리 저장된 중심 후보의 것들에 대해 비교될 수도 있고, 결합된 세트의 최고의 T 중심이 보유될 수도 있다(단계 414).
도 4b는 중심 좌표를 식별하기 위한 대안의 방법을 예시한다. 이 변형된 방법은 실제로는, 식 (1) 및/또는 (2)에 따라 r을 계산하는 것이 관심 범위 내의 (즉, rmin와 rmax 사이의) r의 다수의 값이 (라인의 이산성 및 고유 라운딩 효과(inherent rounding effect)로 인해) 동일한 에지 픽셀 라인 상에 맵핑할 수 있기 때문에 작은
Figure 112013108945870-pat00042
에 대한 부정확성을 야기할 수 있다는 사실을 고려한다. (극단적인 경우에는,
Figure 112013108945870-pat00043
=0, 모든 반경이 동일한 라인 상에 맵핑한다.) 이 문제점을 극복하기 위한 하나의 접근 방법은 각 에지 픽셀에 대해 rmin와 rmax 사이의 r의 모든 값들에 걸쳐 고리 모양으로 만들고 (에지의 y 좌표 및 중심에 대응하는 lp 및 lc에 의거하여 r을 계산하는 것이 아니라) 그에 의거하여 중심의 y 좌표를 계산하며, y 좌표가 현재의 중심 라인에 있는 r의 값을 선택하는 것이다.
그러나, 도 4b의 방법은 더욱 효율적이다. 그 방법은 각 중심 라인 lc 및 각 에지 각도
Figure 112013108945870-pat00044
에 대해, R회 반복 시에 반경까지 고리 모양으로 만드는 것, (초기화 단계 450에서) 예컨대, r=rmin에서 시작하는 것 및 각 단계에서 r을 Δr만큼 증분시키는 것을 수반하며, 여기에서 Δr=(rmax-rmin)/R이다. 매 반복 시에, 단편의 정확성을 갖는 에지 픽셀 라인 수 lp *가 (유사하게 lq *에 대해서도) lp *=lc-r·sin
Figure 112013108945870-pat00045
에 따라서 r의 중심값 및
Figure 112013108945870-pat00046
로부터 계산된다(단계 452). 이 수는 파싱될 에지 픽셀 라인 lp(또는 lq)를 결정하도록 라운드된다(단계 454). 중심 픽셀의 중심 좌표 xc는 이제 (r의 현재 루프 값을 사용하여) δx=r·cos
Figure 112013108945870-pat00047
인 xc=xp-δx(또는 xc=xq+δx)로부터 lp(또는 lq) 내의 각 에지 픽셀에 대해 계산될 수 있다(단계 456). 매 반복 후에, 단편의 라인 위치 lp *
Figure 112013108945870-pat00048
의 현재의 단편의 수 및 값에 의존하여 후속 에지 픽셀 라인으로 지시할 수도 있거나 없을 수도 있는 Δr·sin
Figure 112013108945870-pat00049
만큼 증분된다(단계 458). 또한, δx는 Δr·cos
Figure 112013108945870-pat00050
에 의해 갱신된다(단계 460). r(및, 선택적으로
Figure 112013108945870-pat00051
의 다수의 또는 모든 값)까지의 고리 모양의 완료 후에, 중심은 도 4b에 도시된 실시예에서와 동일한 방식으로 임계화(단계 412) 및/또는 최고의 T를 보유하기 위해 이전에 저장된 중심에 대해 비교함으로써(단계 414) 결정된다. 몇몇 실시예에서는, 부가적인 유효화 단계(도시 생략)가 서로에 대해 너무 근접한 2개의 중심이 존재하지 않게 보증한다.
모든(또는 원하는 수의) 원의 중심 좌표가 식별된 후에, 각 원의 반경은 에지 검출 방법(100)의 단계 Ⅱ에서 추정된다(단계 110). 이 단계 110은 모든 에지 각도
Figure 112013108945870-pat00052
에 걸쳐(단계 500) 및 각
Figure 112013108945870-pat00053
에 대해 모든 반경 r에 걸쳐(단계 502) 고리 모양으로 만듦으로써 라인 lc 내의 좌표 xc를 갖는 각 중심에 대한 (rmin 과 rmax 사이의) 반경의 히스토그램을 생성하는 것; r의 현재 값에 대응하는 에지 픽셀 라인 lp (또는 lq)를 결정하는 것(단계 504); xc에 대응하는 에지 픽셀 라인 lp 내의 포인트 P의 x 좌표 xp를 연산하는 것(즉, xp=xc+r·cos
Figure 112013108945870-pat00054
)(단계 506); 및 xp 의 계산된 값 근방의 특정된 범위 내에 있는 라인 lp 내의 에지 픽셀로부터의 투표를 누산하는 것(단계 508)을 수반한다. 모든 r 및
Figure 112013108945870-pat00055
에 대한 투표가 수집되었다면, 원에 대한 반경 r이 히스토그램의 최대값을 발견함으로써 식별된다(단계 510).
여기에서 기술된 원 검출 방법은 일반적으로 하드웨어, 소프트웨어, 또는 양자의 조합으로 실현될 수도 있다. 예를 들면, 몇몇 실시예에서는, 그들 방법은 도 6a에 예시된 바와 같이, 범용 컴퓨터에 의해 실행되고 소프트웨어로 실현된다. 컴퓨터(600)는 일반적으로 중앙 처리 장치(CPU)(602) 및 관련 시스템 메모리(604), 하나 이상의 비휘발성 대용량 기억 장치 및 관련 드라이버(606), 사용자 인터랙션(interaction)(예컨대, 키보드, 마우스 등)을 가능하게 하는 입/출력 장치(608), 선택적으로 (예를 들면, 인터넷 또는 구내 네트워크로의 액세스를 위한) 네트워크 연결(610), 및 다른 부품들이 서로 간에 통신하게 하는 양방향 시스템 버스(612)를 포함한다. 분석될 이미지를 캡처하는 카메라(614) 또는 다른 장치가 이미지 데이터를 직접 연결을 통해 컴퓨터(600)에 전송할 수도 있다. 이와 달리, 이미지는 예컨대, 디스크, CD, DVD, USB 키, 또는 다른 저장 장치 또는 원격의 위치에 있는 서버에 저장될 수도 있고, 적용 가능한 경우, 적절한 장치 드라이버(예컨대, 디스크 드라이브)(606)를 통해 판독되거나 네트워크 연결(610)을 통해 다운로드될 수도 있다.
시스템 메모리(604)는 CPU(602)의 동작 및 다른 하드웨어 부품과의 그의 인터랙션을 제어하는 모듈의 그룹으로서 개념적으로 예시된 명령을 포함한다. 운영 시스템(616)은 메모리 할당, 파일 관리 및 대용량 기억 장치(606)의 동작과 같은 저레벨의 기본 시스템 기능의 실행을 지시한다. 더 높은 레벨에서, 하나 이상의 서비스 응용이 원 및/또는 원호의 검출을 위한 연산 기능을 제공한다. 이들 응용은 예를 들면, 필터링, 조절, 또는 이미지 프레임 사전 처리를 위한 일반적인 이미지 프로세싱 응용(618); 에지 픽셀 정보를 추출하여 그 정보를 에지 픽셀 버퍼(622)에 저장하기 위한 통상의 에지 검출 모듈(620); 누산기 버퍼(626)를 사용하여 필터링 및 투표 단계(108, 110)를 실현하고 원 중심의 리스트(627)를 출력하는 중심 식별 모듈(624); 및 도 1∼도 5에 예시된 방법에 따라서 각 중심에 대한 반경을 결정하는 반경 추정 모듈(628)을 포함할 수도 있다. 물론, 이들 모듈은 결합되거나, 더욱 분할되거나, 상이하게 조직될 수도 있고; 당업자가 이해하는 바와 같이, 명령은 일반적으로 다수의 상이한 방법으로 그룹화 및 조직될 수 있다. 명령은 제한 없이 C, C++, 베이직(Basic), 파스칼(Pascal), 포트란(Fortran), 또는 어셈블리 언어를 포함하는 다양한 적절한 프로그래밍 언어 중 어느 하나로 프로그래밍 될 수도 있다.
도 6b는 여기에서 설명된 방법을 실행하기 위한 다른 예시적인 시스템으로서 DSP 실현을 예시한다. DSP(650)는 프로세서(652)와, 명령 메모리(656) 및 데이터 메모리(658)를 포함할 수도 있는 관련 국부 메모리(654), 뿐만 아니라 예컨대, (DDR, DDR2, DDR3, LPDDR 또는 LPDDR2와 같은) DRAM 또는 SDRAM일 수도 있는 외부(예컨대, 오프 칩) 메모리(662)로의 액세스를 가능하게 하는 DMA 제어기(660)를 포함한다. 외부 메모리(662)는 처리될 이미지용의 프레임 버퍼(672), 에지 픽셀 좌표 정보용의 버퍼(674)(예를 들면, 버퍼들
Figure 112013108945870-pat00056
Figure 112013108945870-pat00057
), 및 몇몇 실시예에서는, 2 또는 3차원 누산기 버퍼(676)를 포함할 수도 있다. 국부 데이터 메모리(658)는 중심 라인 lc 용의 1차원 누산기 버퍼(678), 중심 좌표 버퍼(680), 및 반경 히스토그램 버퍼(682)를 포함할 수도 있다. 몇몇 실시예에서는, 버퍼(674)에 저장된 에지 픽셀 좌표 정보는 국부 메모리(658)로 로딩되고, 이미지 내의 원의 결정은 외부 메모리(662)와의 어떠한 데이터 교환 없이 완전히 국부적으로 달성된다. 다른 실시예에서, 에지 픽셀 정보는 필요한 경우 외부 메모리(662)로부터 획득되고/되거나 특정 중심 라인에서의 투표가 완료될 때마다 1차원 국부 누산기 버퍼(678)로부터의 데이터가 외부 2차 또는 3차 누산기 버퍼(674)에 기록되며; 그러한 액세스는 근본적으로 비랜덤이고, 따라서 DMA를 통해서는 매우 효율적이다.
도 6a 및 6b에 도시된 시스템 실시예는 물론 단지 예들이다. 일반적으로, 여기에 기재된 허프 변환 방법은 예컨대, 특수 목적 컴퓨터, 마이크로컨트롤러, 응용 주문형 집적 회로(ASIC), 필드 프로그램 가능한 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 또는 프로그램 가능한 게이트 어레이(PGA)를 포함하는 임의의 범용 또는 특수 목적 연산 장치에서 실현될 수 있다. 여기에 따르는 시스템은 가상적으로 임의의 타입의 연산 장치(컴퓨터, 태블릿, "스마트 폰", 개인 디지털 휴대 정보 단말기(personal digital assistant), 특수 어플라이언스(specialized appliance) 등) 내의 하드웨어 유닛 또는 소프트웨어 모듈로서 배치될 수도 있고, 고 레벨 응용(예컨대, 홍채 인식 시스템과 같은 기계 시각 응용(machine-vision application))에 의해 활성화 또는 작동될 수도 있다.
여기에서 이용된 용어 및 표현은 제한하는 것이 아닌 기술의 용어 및 표현으로서 사용되고, 그러한 용어 및 표현의 사용 시에 도시된 및 기재된 특징 또는 그 부분들의 임의의 등가물을 제외할 의도는 아니다. 또한, 발명의 특정 실시예를 설명하였지만, 당업자에게는 여기에 개시된 개념을 포함하는 다른 실시예들이 발명의 사상 및 범위로부터 벗어남 없이 사용될 수도 있음이 명백해진다. 예를 들면, 여기에 따르는 원 검출 방법은 여기에 설명된 유리한 특징 및 단계들의 모두를 반드시 포함할 필요는 없지만, 그 서브세트에 의거하여 성능 향상을 달성할 수도 있다. 따라서, 설명된 실시예는 모든 점에서 단지 예시적이지 제한적이 아닌 것으로 고려되어야 한다.

Claims (22)

  1. 디지털 이미지 내의 원을 검출하는 방법으로서,
    (a) 이미지 내의 에지 픽셀을 컴퓨터로 검출하고, 복수의 에지 버퍼 내에 검출된 에지 픽셀의 좌표 정보를 상기 픽셀과 관련된 에지 각도에 의거하여 저장하는 단계; 및
    (b) (ⅰ) 각 에지 각도에 대해, 선택된 라인으로부터의 거리가 반경의 특정 범위 내에 있는 에지 픽셀의 라인을 식별하고, (ⅱ) 에지 픽셀의 식별된 라인을 파싱하며, 상기 에지 각도 및 검출된 에지 픽셀의 좌표 정보에 적어도 부분적으로 의거하여, 상기 선택된 라인에서 상기 에지 픽셀로부터 투표(vote)를 누산하고, 또한 (ⅲ) 누산된 투표에 적어도 부분적으로 의거하여 상기 선택된 라인 내의 중심을 식별함으로써, 특정 범위 내의 반경을 갖는 원의 중심을 상기 이미지의 적어도 하나의 선택된 라인의 각각에서 연속적으로 컴퓨터로 식별하는 단계를 포함하는, 디지털 이미지 내의 원을 검출하는 방법.
  2. 제1항에 있어서, 상기 복수의 에지 버퍼의 각각은, 그 에지 방향이 그 버퍼와 관련된 에지 방향의 빈(bin) 내에 있는 에지 픽셀의 좌표 정보만을 저장하는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  3. 제2항에 있어서, 상기 복수의 에지 버퍼는 총괄하여 모든 가능한 에지 방향을 위한 빈을 제공하는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  4. 제1항에 있어서, 상기 좌표 정보는 각각의 에지 각도용의 2개의 1차원 에지 버퍼에 저장되고, 제1 에지 버퍼는 상기 에지 픽셀의 수평 위치를 저장하며, 제2 버퍼는 상기 이미지의 각 라인과 관련된 에지 픽셀의 누산한 총 수를 저장하는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  5. 제1항에 있어서, 단계 (b) 전에, 상기 이미지의 라인으로부터의 거리가 반경의 상기 특정 범위 내에 있는 에지 픽셀의 각각의 라인 내의 에지 픽셀의 누산한 수가 에지 방향의 특정된 양의 수(positive number)에 대한 특정된 임계값 미만인 상기 이미지의 상기 라인을 소거하는 단계를 더 포함하되, 소거되지 않은 라인은 단계 (b)의 선택된 라인을 구성하는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  6. 제5항에 있어서, 상기 에지 방향의 특정된 양의 수는 1인 것인, 디지털 이미지 내의 원을 검출하는 방법
  7. 제5항에 있어서, 상기 에지 방향의 특정된 양의 수는 적어도 2인 것인, 디지털 이미지 내의 원을 검출하는 방법.
  8. 제1항에 있어서, 상기 선택된 라인에서 상기 에지 픽셀로부터의 투표는 1차원 누산기 버퍼 내에 누산되는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  9. 제8항에 있어서, 상기 1차원 누산기 버퍼는 적어도 하나의 선택된 라인의 각각에 대해 연속적으로 재사용되는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  10. 제1항에 있어서, 에지 픽셀의 상기 식별된 라인을 파싱하는 것은 상기 특정된 범위 내의 상기 반경까지 반복하는 것, 및 매 반복 시마다, 에지 픽셀의 관련 라인을 결정하는 것을 포함하고, 에지 픽셀의 상기 식별된 라인을 파싱하는 것은 각 픽셀과 관련된 중심 좌표를 연산하고 상기 중심 좌표에 대한 카운터를 증분함으로써 상기 이미지의 선택된 라인에서 투표를 누산하기 위한 것인, 디지털 이미지 내의 원을 검출하는 방법.
  11. 제1항에 있어서, 상기 선택된 라인 내의 중심은 또한 원의 중심의 특정된 총 수 또는 투표 임계값 중 적어도 하나에 의거하여 식별되는 것인, 디지털 이미지 내의 원을 검출하는 방법.
  12. 제1항에 있어서, 상기 식별된 원의 중심의 각각에 대해, 상기 특정 범위 내의 상기 반경에 대한 모든 에지 각도에 대해 에지 픽셀로부터의 투표를 누산하고 누산된 투표의 최대값을 식별함으로써 관련된 반경을 결정하는 단계를 더 포함하는, 디지털 이미지 내의 원을 검출하는 방법.
  13. 픽셀의 저장된 어레이를 포함하는 디지털 이미지 내의 원을 검출하는 시스템으로서,
    상기 픽셀과 관련된 에지 각도에 의거하여 복수의 에지 버퍼 내에 상기 이미지 내의 에지 픽셀의 좌표 정보를 저장하는 메모리; 및
    (ⅰ) 각 에지 각도에 대해, 선택된 라인으로부터의 거리가 반경의 특정 범위 내에 있는 에지 픽셀의 라인을 식별하고, (ⅱ) 에지 픽셀의 식별된 라인을 파싱하며, 상기 에지 각도 및 상기 에지 픽셀의 좌표 정보에 적어도 부분적으로 의거하여, 상기 선택된 라인에서 상기 에지 픽셀로부터 투표를 누산하고, 또한 (ⅲ) 누산된 투표에 적어도 부분적으로 의거하여 상기 선택된 라인 내의 중심을 식별함으로써, 특정 범위 내의 반경을 갖는 원의 중심을 상기 이미지의 적어도 하나의 선택된 라인의 각각에서 연속적으로 식별하도록 구성된 프로세서를 포함하는, 디지털 이미지 내의 원을 검출하는 시스템.
  14. 제13항에 있어서, 상기 복수의 에지 버퍼의 각각은, 그 에지 방향이 그 버퍼와 관련된 에지 방향의 빈 내에 있는 에지 픽셀의 좌표 정보만을 저장하는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  15. 제13항에 있어서, 상기 복수의 에지 버퍼는 총괄하여 모든 가능한 에지 방향을 위한 빈을 제공하는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  16. 제13항에 있어서, 상기 좌표 정보는 각각의 에지 각도용의 2개의 1차원 에지 버퍼에 저장되고, 제1 에지 버퍼는 상기 에지 픽셀의 수평 위치를 저장하며, 제2 버퍼는 상기 이미지의 각 라인과 관련된 에지 픽셀의 누산한 총 수를 저장하는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  17. 제13항에 있어서, 상기 프로세서는 또한, 상기 이미지의 라인으로부터의 거리가 반경의 상기 특정 범위 내에 있는 에지 픽셀의 각각의 라인 내의 에지 픽셀의 누산한 수가 에지 방향의 특정된 양의 수에 대한 특정된 임계값 미만인 상기 이미지의 상기 라인을 소거하도록 구성되고, 소거되지 않은 라인은 상기 선택된 라인을 구성하는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  18. 제13항에 있어서, 상기 프로세서는 또한, 상기 선택된 라인에서 상기 에지 픽셀로부터의 투표를 1차원 누산기 버퍼 내에 누산하도록 구성되는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  19. 제18항에 있어서, 상기 1차원 누산기 버퍼는 적어도 하나의 선택된 라인의 각각에 대해 연속적으로 재사용 가능한 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  20. 제13항에 있어서, 상기 프로세서는 또한, 상기 특정된 범위 내의 상기 반경까지 반복하며, 또한 매 반복 시마다, 에지 픽셀의 관련 라인을 결정함으로써 에지 픽셀의 상기 식별된 라인을 파싱하도록 구성되고, 에지 픽셀의 상기 식별된 라인을 파싱하는 것은 각 픽셀과 관련된 중심 좌표를 연산하고 상기 중심 좌표에 대한 카운터를 증분함으로써 상기 이미지의 선택된 라인에서 투표를 누산하기 위한 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  21. 제13항에 있어서, 상기 프로세서는 또한, 원의 중심의 특정된 총 수 또는 투표 임계값 중 적어도 하나에 또한 의거하여 상기 선택된 라인 내의 중심을 식별하도록 구성되는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
  22. 제13항에 있어서, 상기 프로세서는 또한, 상기 식별된 원의 중심의 각각에 대해, 상기 특정 범위 내의 상기 반경에 대한 모든 에지 각도에 대해 에지 픽셀로부터의 투표를 누산하고 누산된 투표의 최대값을 식별함으로써 관련된 반경을 결정하도록 구성되는 것인, 디지털 이미지 내의 원을 검출하는 시스템.
KR1020130146325A 2012-12-03 2013-11-28 원을 위한 허프 변환 KR101546590B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/692,539 US9053389B2 (en) 2012-12-03 2012-12-03 Hough transform for circles
US13/692,539 2012-12-03

Publications (2)

Publication Number Publication Date
KR20140071242A KR20140071242A (ko) 2014-06-11
KR101546590B1 true KR101546590B1 (ko) 2015-08-21

Family

ID=49724468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130146325A KR101546590B1 (ko) 2012-12-03 2013-11-28 원을 위한 허프 변환

Country Status (4)

Country Link
US (1) US9053389B2 (ko)
EP (1) EP2738711B1 (ko)
KR (1) KR101546590B1 (ko)
CN (1) CN103854279B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714981B1 (ko) 2016-08-03 2017-03-09 연세대학교 산학협력단 간소화된 허프 변환을 이용하여 템플릿을 검사하기 위한 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2752817A4 (en) 2011-08-30 2016-11-09 Megachips Corp DEVICE FOR DETECTION OF CABLE SEGMENTS AND BELLS
EP3011744A4 (en) * 2013-07-15 2017-03-01 HFI Innovation Inc. Method of sample adaptive offset processing for video coding
WO2015011799A1 (ja) * 2013-07-24 2015-01-29 日本電気株式会社 画像認識装置および記憶媒体
CN104282027B (zh) * 2014-10-29 2017-05-10 福州大学 一种基于Hough变换的圆检测方法
EP3259341B1 (en) * 2015-02-18 2021-01-27 Siemens Healthcare Diagnostics Inc. Image-based tube slot circle detection for a vision system
DE102015205505A1 (de) * 2015-03-26 2016-09-29 Mando Corporation Verfahren und Vorrichtung zum Detektieren elliptischer Strukturen in einem Bild
DE102015205502A1 (de) * 2015-03-26 2016-09-29 Mando Corporation Bildverarbeitungsverfahren und Bildverarbeitungssystem zum Extrahieren verzerrter kreisförmiger Bildelemente
CN106204542B (zh) * 2016-06-29 2019-04-19 上海晨兴希姆通电子科技有限公司 视觉识别方法及***
CN106557759B (zh) * 2016-11-25 2020-03-17 北京小米移动软件有限公司 一种标志牌信息获取方法及装置
DE102017218430A1 (de) * 2017-10-16 2019-04-18 Zf Friedrichshafen Ag Verfahren zur Erkennung von parametrisierbaren geometrischen Kurven
WO2020258184A1 (zh) * 2019-06-27 2020-12-30 京东方科技集团股份有限公司 图像检测方法、图像检测装置、图像检测设备及介质
US11767752B2 (en) 2020-10-02 2023-09-26 Saudi Arabian Oil Company Methodology for automated verification and qualification of sidewall core recovery depth using borehole image logs
CN113516123B (zh) * 2021-05-14 2023-11-24 南京工程学院 一种针对轮胎压印字符的检测识别方法
CN113487589B (zh) * 2021-07-22 2024-04-19 上海嘉奥信息科技发展有限公司 一种亚像素圆心检测方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050105827A1 (en) 2003-09-09 2005-05-19 Fuji Photo Film Co., Ltd. Method and apparatus for detecting positions of center points of circular patterns
US20070274594A1 (en) 2006-05-26 2007-11-29 Sony Corporation Outline definition apparatus and outline definition method, and image processing apparatus
JP2010128616A (ja) 2008-11-25 2010-06-10 Panasonic Electric Works Co Ltd 円検出装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826311B2 (en) 2001-01-04 2004-11-30 Microsoft Corporation Hough transform supporting methods and arrangements
EP1229486A1 (en) 2001-01-31 2002-08-07 GRETAG IMAGING Trading AG Automatic image pattern detection
US7406212B2 (en) 2005-06-02 2008-07-29 Motorola, Inc. Method and system for parallel processing of Hough transform computations
WO2009022984A1 (en) * 2007-08-14 2009-02-19 Nanyang Polytechnic Method and system for real time hough transform
JP4623172B2 (ja) 2008-09-03 2011-02-02 株式会社デンソー 瞳孔検出装置、瞳孔検出装置用プログラム及び瞳孔検出方法
US9189670B2 (en) * 2009-02-11 2015-11-17 Cognex Corporation System and method for capturing and detecting symbology features and parameters
WO2012076036A1 (en) 2010-12-11 2012-06-14 Valeo Schalter Und Sensoren Gmbh Method of circle detection in images for round traffic sign identification and vehicle driving assistance device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050105827A1 (en) 2003-09-09 2005-05-19 Fuji Photo Film Co., Ltd. Method and apparatus for detecting positions of center points of circular patterns
US20070274594A1 (en) 2006-05-26 2007-11-29 Sony Corporation Outline definition apparatus and outline definition method, and image processing apparatus
JP2010128616A (ja) 2008-11-25 2010-06-10 Panasonic Electric Works Co Ltd 円検出装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문:한국정보과학회

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101714981B1 (ko) 2016-08-03 2017-03-09 연세대학교 산학협력단 간소화된 허프 변환을 이용하여 템플릿을 검사하기 위한 장치 및 방법

Also Published As

Publication number Publication date
EP2738711B1 (en) 2023-12-27
EP2738711A3 (en) 2015-12-02
US20140153834A1 (en) 2014-06-05
US9053389B2 (en) 2015-06-09
CN103854279B (zh) 2017-11-07
KR20140071242A (ko) 2014-06-11
CN103854279A (zh) 2014-06-11
EP2738711A2 (en) 2014-06-04

Similar Documents

Publication Publication Date Title
KR101546590B1 (ko) 원을 위한 허프 변환
EP3620981B1 (en) Object detection method, device, apparatus and computer-readable storage medium
US11574481B2 (en) Camera blockage detection for autonomous driving systems
CN108875493B (zh) 人脸识别中相似度阈值的确定方法以及确定装置
CN104809452A (zh) 一种指纹识别方法
CN107609555B (zh) 车牌检测方法、应用其的车型识别方法及相关装置
CN106650648B (zh) 擦除笔迹的识别方法和***
Marie et al. The delta medial axis: a fast and robust algorithm for filtered skeleton extraction
US20150109290A1 (en) Device and method for removing noise points in point clouds
CN104809464A (zh) 一种指纹信息处理方法
US9582711B2 (en) Robot cleaner, apparatus and method for recognizing gesture
CN104809453A (zh) 一种基于指纹的认证方法
US20220375234A1 (en) Lane line recognition method, device and storage medium
CN112329505A (zh) 用于检测对象的方法和装置
KR20100098641A (ko) 불변적인 시각적 장면 및 객체 인식
CN109308465A (zh) 表格线检测方法、装置、设备及计算机可读介质
GB2507857A (en) A method and system for tracking a vehicle
CN104298947A (zh) 一种对二维条码精确定位的方法及装置
JP5138764B2 (ja) 画像における曲線からなる対象物を検出する、特徴が改造されたビームレット変換装置および関連する方法
US20210216766A1 (en) Method and device for identifying number of bills and multiple bill areas in image
CN111488808A (zh) 基于交通违法图像数据的车道线检测方法
CN110796130A (zh) 用于文字识别的方法、装置及计算机存储介质
CN109101874B (zh) 一种基于深度图像的图书馆机器人障碍识别方法
CN105389575A (zh) 生物数据的处理方法和装置
CN108960246B (zh) 一种用于图像识别的二值化处理装置及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant