KR101626538B1 - 이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체 - Google Patents

이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체 Download PDF

Info

Publication number
KR101626538B1
KR101626538B1 KR1020140092649A KR20140092649A KR101626538B1 KR 101626538 B1 KR101626538 B1 KR 101626538B1 KR 1020140092649 A KR1020140092649 A KR 1020140092649A KR 20140092649 A KR20140092649 A KR 20140092649A KR 101626538 B1 KR101626538 B1 KR 101626538B1
Authority
KR
South Korea
Prior art keywords
run
neighbors
ruled
row
neighbor
Prior art date
Application number
KR1020140092649A
Other languages
English (en)
Other versions
KR20150013040A (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 KR20150013040A publication Critical patent/KR20150013040A/ko
Application granted granted Critical
Publication of KR101626538B1 publication Critical patent/KR101626538B1/ko

Links

Images

Classifications

    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/457Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/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/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Abstract

방법은 픽셀 맵의 행에서 비제로 런의 위치 및 길이를 결정하는 단계를 포함한다. 방법은 또한 위치 및 길이에 적어도 부분적으로 기초하여, 이전 행에서 비제로 런에 대한 이웃들의 수를 결정하는 단계를 포함한다. 게다가, 방법은 비제로 런이 이전 행에서 적어도 2개의 이웃을 갖는다는 결정에 대응하여, 비제로 런의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 비제로 런의 대응 맵 및 비제로 런의 제 1 이웃의 대응 맵을 갱신하는 단계를 포함한다.

Description

이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체{SYSTEM, METHOD, AND MEDIUM FOR IMAGE OBJECT AND CONTOUR FEATURE EXTRACTION}
본 개시는 일반적으로 이미지 처리의 분야에 관한 것으로, 특히 이미지로부터 객체들 또는 윤곽 특징들을 추출하는 것에 관한 것이다.
임계화는 다수의 이미지 처리 응용들에서 기본적인 저레벨 동작이다. 이것의 가장 단순한 형태에서, 임계화는 객체를 추출하기 위해 더 처리될 수 있는 전경 및 배경 픽셀들을 포함하는 이진 이미지를 얻기 위해 입력 이미지상에 수행된다.
히스테리시스 임계화는 잡음의 존재 시에 더 효과적인 임계화 기술이다. 히스테리시스를 갖는 임계화는 2개의 임계값을 이용한다: 낮은 임계값(Tlo) 및 높은 임계값(Thi). 높은 임계값(Thi)보다 더 큰 크기를 갖는 픽셀들은 강한 전경 픽셀들로 표시되고, 임계값(Tlo)보다 더 낮은 크기를 갖는 픽셀들은 배경 픽셀들로 표시된다. 높은 임계값(Thi)보다는 낮지만 낮은 임계값(Tlo)보다 높은 크기를 갖는 픽셀들은 초기에 약한 전경 픽셀들로 식별된다. 이러한 약한 전경 픽셀들은 그들이 강한 전경 픽셀(예를 들어, 높은 임계값(Thi)보다 큰 크기를 갖는 픽셀)에 연결되는 경우에만 강한 전경 픽셀들로 나중에 간주된다.
게다가, 다수의 검출 응용들에서, 배경 모델이 정의된다. 그러한 응용들에서, 픽셀 강도를 높은 임계값 및 낮은 임계값과 비교하는 대신에, 배경 모델에 대한 차이는 전경 및 배경 픽셀들을 결정하기 위해 높은 임계값 및 낮은 임계값과 비교된다.
두 타입의 임계화(즉, 배경에 대한 절대 크기 및 상대 크기)는 픽셀 크기보다는 오히려, 경사의 크기에 적용될 수도 있다. 그 다음, 임계화는 완성 전경 객체 자체를 제공하기보다는 오히려 전경 객체의 에지 정보를 제공한다.
이진 이미지들에 대해, 종래의 알고리즘들은 속성을 추출하기 위해 연결 구성요소 분석 또는 윤곽 추적을 사용한다. 그러한 알고리즘들에서, 연결 구성요소 라벨링이 우선 수행되고, 그 다음에 속성들이 각각의 라벨링된 객체로부터 추출된다. 히스테리시스 임계화 이미지들에 대해, 약한 전경 픽셀들은 이들을 배경 또는 강한 전경 픽셀들로 표시하기 위해 추적된다. 따라서, 에지/픽셀 추적은 약한 전경 픽셀들을 강한 전경 또는 배경 픽셀들로 분류하기 위해 수행된다.
객체/윤곽 특징 추출에 대한 종래의 알고리즘들은 많은 단계들에서 동작하거나 임계화 이미지를 제외시킨다. 이미지가 히스테리시스 임계화되면, 약한 전경/에지 픽셀들을 전경/배경 픽셀들로 분류하는 2개 이상의 패스가 요구된다. 이는 또한 다수의 패스들이 각각의 객체를 라벨링하는 것을 필요로 하는 연결 구성요소 분석을 따른다. 각각의 검출된 객체에 대해, 속성이 추출되거나 윤곽 검출 알고리즘이 윤곽 및 그 속성들을 추출하기 위해 요구된다.
가장 종종, 이러한 기술들은 시간 소비적이고 윤곽 추출, 특히 오목 경계를 갖는 객체에 대해 다수의 패스들을 필요로 한다. 그러한 윤곽 추출은 또한 그것의 반복 특성으로 인해 대량의 메모리 자원들을 필요로 한다. 게다가, 메모리에 대한 액세스들은 전형적으로 임의적이며, 이는 전형적인 내장 프로세서들에 대해 캐시 및 DMA(Direct Memory Access)를 사용하는 것을 어렵게 한다.
도 1은 2개의 객체를 포함하는 이미지에서 객체/윤곽 특징 추출의 다양한 단계들의 일 예를 도시한다. 특히, 도 1(a)는 배경 픽셀들을 백색으로 도시하고, 약한 전경 픽셀들을 밝은 회색으로 도시하고 강한 전경 픽셀들을 어두운 회색으로 도시한다. 도 1(b)는 픽셀 추적 후의 이진화된 이미지를 도시한다. 약한 전경 픽셀들은 폐기되거나 강한 전경 픽셀들로 카테고리화된다. 도 1(c)는 구성요소 라벨링 후의 라벨링된 객체들을 도시한다. 게다가, 특징 추출은 객체 1에 대해 4의 크기 및 객체 2에 대해 3의 크기를 산출한다. 예시된 단계들 각각에 대해 많은 기술들이 제안된다. 이러한 기술들은 이미지를 통해 많은 패스들을 필요로 하는 단계들을 포함하므로, 이러한 기술들은 너무 많은 실행 시간을 소비한다.
하나의 알고리즘은 단일 패스에서 이진 이미지로부터 객체 특징들을 추출하려고 시도한다. 그러나, 이는 특징들을 추출하기 위해 복잡한 변환 테이블들 및 합병 테이블들을 사용한다. 알고리즘은 히스테리시스 임계화 이미지들을 처리하지 않고 윤곽 특성을 고려하지 않는다.
게다가, 수정된 알고리즘은 히스테리시스 임계화 이미지들을 처리한다. 그러나, 이러한 수정된 알고리즘은 동일한 변환 테이블을 이용하고 윤곽 속성들을 추출하려고 시도하지 않는다.
본 개시 및 그 특징들 및 장점들의 더 완전한 이해를 제공하기 위해, 동일한 참조 번호들이 동일한 부분들을 나타내는 첨부 도면들과 함께 해석되는 이하의 설명이 참조된다.
도 1a 내지 도 1c는 히스테리시스 임계화 이미지에서 객체 특징 추출에 대한 종래의 예를 예시한다.
도 2a 및 도 2b는 본 개시의 일 실시예와 연관된 잠재적 동작들을 예시하는 간략한 흐름도이다.
도 3은 예시적 입력 픽셀 맵을 예시한다.
도 4는 도 3의 픽셀 맵에 대한 런 길이 코드들 및 라벨들을 예시한다.
도 5는 종래의 이웃 발견의 일 예를 예시한다.
도 6은 도 5에서 2개의 행을 오어링(ORing)한 후의 픽셀 맵을 예시한다.
도 7은 도 3에서 입력 에지 맵의 마지막 행을 처리하기 전의 종래의 알고리즘에 대한 라벨 트리들 및 균등 맵의 일 예를 예시한다.
도 8은 일 실시예에 따른 도 3에서 에지 맵의 마지막 행을 처리하기 전의 알고리즘에 대한 라벨 트리들 및 균등 맵의 일 예를 예시한다.
도 9는 일 실시예에 따른 도 3에서 에지 맵의 알고리즘에 대한 제 1 패스 후의 라벨 트리들 및 균등 맵의 일 예를 예시한다.
도 10은 예시적 입력 이미지를 예시한다.
도 11은 예시적 히스테리시스 임계화 에지 이미지를 예시한다.
도 12는 예시적 출력 이미지를 예시한다.
도 13은 본 개시의 일 실시예에 따른 컴퓨터의 구성요소들을 예시한다.
개요
이미지를 통해 단일 패스로 객체 특징들을 추출하는 알고리즘이 일 예에 제공된다. 알고리즘은 이웃들을 빠르게 식별하고 임의의 지점에서 활성인 라벨들의 수를 제한하는 라벨링 방식을 사용한다. 라벨링 방식은 또한 최소 메모리 또는 프로세서 자원들로 완성 객체들을 식별하는데 도움이 된다. 알고리즘은 또한 객체의 폐쇄 에지들이 전형적으로 객체의 윤곽들이라는 속성을 이용함으로써 근사 윤곽 속성들을 추출하려고 시도한다. 게다가, 알고리즘은 메모리에 대한 랜덤 액세스들을 회피한다.
방법이 일 예에 제공되고 방법은 픽셀 맵의 행에서 비제로(non-zero) 런의 위치 및 길이를 결정하는 단계; 위치 및 길이에 적어도 부분적으로 기초하여, 이전 행에서 비제로 런에 대한 이웃들의 수를 결정하는 단계; 및 비제로 런이 이전 행에서 적어도 2개의 이웃을 갖는다는 결정에 대응하여, 비제로 런의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 비제로 런의 대응 맵 및 비제로 런의 제 1 이웃의 대응 맵을 갱신하는 단계를 포함한다.
방법은 비제로 런에 이웃들의 최소 루트들을 할당하는 단계를 포함할 수 있다.
방법은 결정에 대응하여, 비제로 런, 제 1 이웃, 및 제 2 이웃을 포함하는 객체의 사이즈를 갱신하는 단계를 포함할 수 있다. 방법은 비제로 런의 길이에 적어도 부분적으로 기초하여 객체의 사이즈를 갱신하는 단계를 포함할 수도 있다.
방법은 비제로 런이 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하는 단계를 포함할 수 있다. 일 실시예에서, 이웃들의 수를 결정하는 단계는 행을 이전 행과 오어링하는(ORing) 단계를 포함한다. 방법은 비제로 런에서의 픽셀의 강도 및 미리 결정된 임계값에 적어도 부분적으로 기초하여, 객체를 폐기하는 단계를 포함할 수 있다.
다른 예에서, 실행을 위한 코드를 포함하는 적어도 하나의 유형 매체에 인코딩되는 로직이 제공된다. 로직은 프로세서에 의해 실행될 때, 픽셀 맵의 행에서 비제로 런의 위치 및 길이를 결정하는 단계; 위치 및 길이에 적어도 부분적으로 기초하여, 이전 행에서 비제로 런에 대한 이웃들의 수를 결정하는 단계; 및 비제로 런이 이전 행에서 적어도 2개의 이웃을 갖는다는 결정에 대응하여, 비제로 런의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 비제로 런의 대응 맵 및 비제로 런의 제 1 이웃의 대응 맵을 갱신하는 단계를 포함하는 동작들을 수행하도록 동작가능하다.
동작들은 비제로 런에 이웃들의 최소 루트들을 할당하는 단계를 포함할 수 있다.
동작들은 결정에 대응하여, 비제로 런, 제 1 이웃, 및 제 2 이웃을 포함하는 객체의 사이즈를 갱신하는 단계를 포함할 수 있다. 동작들은 비제로 런의 길이에 적어도 부분적으로 기초하여 객체의 사이즈를 갱싱하는 단계를 포함할 수도 있다.
동작들은 비제로 런이 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하는 단계를 포함할 수 있다. 일 실시예에서, 이웃들의 수를 결정하는 단계는 행을 이전 행과 오어링하는 단계를 포함한다. 동작들은 비제로 런에서의 픽셀의 강도 및 미리 결정된 임계값에 적어도 부분적으로 기초하여, 객체를 폐기하는 단계를 포함할 수 있다.
다른 구현에서, 장치가 제공되고 장치는 픽셀 맵의 행에서 비제로 런의 위치 및 길이를 결정하는 프로세서를 포함하며, 프로세서는 위치 및 길이에 적어도 부분적으로 기초하여, 이전 행에서 비제로 런에 대한 이웃들의 수를 결정하고, 비제로 런이 이전 행에서 적어도 2개의 이웃을 갖는다는 결정에 대응하여, 비제로 런의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 비제로 런의 대응 맵 및 비제로 런의 제 1 이웃의 대응 맵을 갱신하도록 구성된다.
일 구현에서, 프로세서는 비제로 런에 이웃들의 최소 루트들을 할당한다.
다른 구현에서, 프로세서는 결정에 대응하여, 비제로 런, 제 1 이웃, 및 제 2 이웃을 포함하는 객체의 사이즈를 갱신한다. 프로세서는 비제로 런의 길이에 적어도 부분적으로 기초하여, 객체의 사이즈를 갱신할 수 있다.
일 예에서, 프로세서는 비제로 런이 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하도록 구성된다.
특정 예에서, 처리 유닛은 행을 이전 행과 오어링함으로써 이웃들의 수를 결정한다.
예시적 실시예들
도 2는 일 실시예와 연관된 잠재적 동작들을 예시하는 간략한 흐름도이다. 동작들은 S200에서 시작하고 선택적으로 S202로 진행한다. S202에서, 타입들은 각각의 픽셀을 위해 할당된다. S203에서, 런 길이 인코딩이 수행된다. S204에서, 현재 행에서 임의의 비제로 런들이 있는지가 판단된다. 비제로 런들이 있지 않다면, 알고리즘은 S224로 진행한다. 비제로 런들이 있다면, 알고리즘이 S206으로 진행한다.
S206에서, 각각의 비제로 런의 위치 및 길이가 결정된다. S208에서, 각각의 행에 대해, 이전 행에서 러닝되는 것에 대한 이웃들의 수가 결정된다. 이웃들의 수가 0이면, 이때 새로운 라벨이 S210에서 생성되고, 알고리즘은 S222로 진행한다. 이웃들의 수가 1이면, 이때 런은 S212에서 그 이웃들의 라벨을 할당받고, 알고리즘은 S218로 진행한다.
이웃들의 수가 1보다 더 크면, 이 때 이웃들 중에서 최소 라벨이 S214에서 결정된다. S216에서, 비최소 라벨들의 대응 맵들이 갱신된다. S218에서, 최소 라벨을 갖는 객체는 그러한 비최소 라벨들 중 어느 것이 강하면, 강함으로 표시된다. S220에서, 객체의 속성들이 갱신된다.
S222에서, 라벨은 런이 강하면(예를 들어, 런이 강한 픽셀을 포함하면), 강함으로 표시된다. S224에서, 임의의 완성 객체들이 있는지가 판단된다. 일 실시예에서, 이러한 판단은 객체들 중 어느 것이 현재 행에서 임의의 이웃들을 갖지 않는지에 기초한다. S224에서 완성 객체들이 없으면, 이때 알고리즘은 S230으로 진행한다.
완성 객체가 있으면, 이때, S226에서, 완성 객체는 그것이 강하면 선택되고, 객체는 그것이 약하면 폐기된다. 게다가, 객체는 선택적으로 객체의 속성에 기초하여 S228에서 선택되거나 폐기된다. 일 실시예에서, 이러한 속성은 미리 결정된 폭보다 더 큰 폭을 갖고 있다. 물론, 사이즈와 같은 다른 속성들이 사용될 수 있다. 그 다음, 알고리즘은 S230으로 진행한다.
S230에서, 알고리즘이 이미지의 끝, 예를 들어 이미지의 마지막 라인에 도달했는지가 판단된다. 이미지가 래스터 주사 순서로 주사되는 일 실시예에서, 이미지의 마지막 라인은 이미지의 마지막 행이다. 알고리즘이 이미지의 끝에 도달했는지가 결정되면, 알고리즘은 S232에서 종료된다. 알고리즘이 이미지의 끝에 도달하지 않았다면, 알고리즘은 S234에서 다음 라인으로 진행하고 선택적 S202로 복귀한다.
알고리즘이 이제 더 상세히 설명될 것이다. 알고리즘의 일 실시예에서, S202에서, 타입들은 적어도 하나의 미리 결정된 임계값에 기초하여 각각의 픽셀을 위해 할당된다. 객체 특징들이 추출되는 일 실시예에서, 픽셀 강도는 적어도 하나의 임계값과 비교된다. 윤곽 속성들이 추출되는 일 실시예에서, 이미지 경사들은 소벨(Sobel) 필터와 같은 필터를 사용하여 계산되고, 경사 크기는 적어도 하나의 임계값과 비교된다.
3개의 픽셀 카테고리가 있다: 강한 전경, 배경, 및 약한 전경. 낮은 임계값(Tlo) 미만의 강도 또는 경사 크기를 갖는 모든 픽셀들은 그 픽셀을 배경 픽셀로 나타내기 위해 '0'을 할당받는다. 낮은 임계값(Tlo) 이상이지만 높은 임계값(Thi) 미만의 강도 또는 경사 크기를 갖는 픽셀들은 그 픽셀을 약한 전경 픽셀로 나타내기 위해 '1'로 표시된다. 모든 다른 픽셀들은 그러한 픽셀들을 강한 전경 픽셀들로 나타내기 위해 '2'로 표시된다.
이진 임계화는 낮은 임계값(Tlo)이 높은 임계값(Thi)과 동등한 히스테리시스 임계화의 특수 경우로서 간주될 수 있다. 이와 같이, 나머지 부분들은 히스테리시스 임계화 이미지들에 집중하지만, 동일한 기술이 이진 임계화 이미지들에 대해 양호하게 작업한다.
모든 폐쇄 에지들은 윤곽들로 간주될 수 있고, 그들의 속성들이 추출될 수 있다. 임계화를 알고리즘과 조합하는 것은 복잡하지 않고, 개별 통과는 이러한 조합을 위해 요구되지 않는다. 적어도 하나의 실시예에서, 이러한 임계화는 이미 행해졌고, 3개의 레벨(예를 들어, 도 3에 도시된 바와 같이, 0, 1, 2)을 갖는 이미지는 알고리즘에 대한 입력이다. 그러한 실시예들에서, S202의 할당은 선택적이다.
게다가, 일 실시예에서, 픽셀 또는 경사 강도를 임계값과 비교하는 대신에, 배경 모델링(예컨대 MoG(Mixture of Gaussians) 모델) 프로세스가 임계화 프로세스를 앞서고, 픽셀 강도 또는 경사 강도는 배경 모델과 비교된다. 게다가, 에지 추출의 일부 경우들에서, 비극대 억제와 같은 에지 시닝(thinning) 알고리즘들은 임계화에 선행할 수 있다. 본 개시의 교시들을 모호하게 하지 않도록, 배경 모델링 및 에지 시닝 알고리즘들의 추가 상세들은 여기에 더 고려되지 않는다.
S203에서, 알고리즘은 래스터 주사 순서로 에지 맵을 주사하고 런 길이 인코딩을 수행함으로써 시작한다. S204에서, 현재 행에서 임의의 비제로 런들이 있는지가 판단된다. S206에서, 각각의 비제로 런에 대해, 각각의 비제로 런의 위치 및 길이가 결정되고 기록된다. 일 구현에서, 어레이(x, 길이, 라벨)가 기록되며, 여기서 'x'는 런의 시작의 x-좌표를 나타내고, '길이'는 런에서 픽셀들의 수를 나타내고, '라벨'은 런의 라벨을 나타낸다. 라벨은 예를 들어 런이 속하는 객체를 나타낸다. 게다가, 런이 강한 에지 또는 강한 전경 픽셀을 포함한다면, 런은 '강함'으로 표시된다. 각각의 런에 대한 라벨은 S222에서 이후에 할당된다.
일 예로서, 도 3에 도시된 입력 에지 또는 픽셀 맵에 대한 런 길이 코드들은 도 4에 도시된다. 도 3에 나타낸 전체 이미지의 런 길이 코드들은 설명의 목적들을 위해 도 4에 도시되지만, 전체 이미지에 대해 이러한 정보를 저장할 필요가 없다. 오히려, 현재 행 및 이전 행의 정보만을 저장하는데 충분하다.
연결성은 연속 행들에서의 2개의 런이 연결되지 않을 때 분명하므로 RLE(run-length encoding) 도메인에서 용이하게 검증될 수 있다. 예를 들어, 2개의 연속 행에서의 2개의 런((X1, Count1) 및 (X2, Count2))은 X1 + Count1 < X2 또는 X2 + Count2 < X1이면, 연결되지 않는다. 모든 다른 경우들에서, 연속 행들에서의 2개의 런이 연결된다.
때때로, 구성요소들은 대응 맵을 사용하여 동일한 그룹으로서 연결되고 표시된다. 라벨들은 연결된 구성요소의 일부인 모든 라벨들이 동일한 세트로 나뉘고, 모든 다른 라벨들이 디스조인트(disjoint) 세트들로 나뉘도록 세트들로 그룹화된다. 대응 맵들 또는 균등 맵들은 2개의 라벨의 균등에 관한 정보를 저장한다. 초기에, 생성된 라벨들은 연결되지 않고, 균등하지 않고, 디스조인트 세트들에 있다. 2개 이상의 라벨을 연결하는 런이 직면될 때마다, 균등 맵은 라벨들이 속하는 세트들을 찾도록 검색된다. 라벨들이 디스조인트 세트들에 속하는 경우에, 이때 이러한 세트들은 그들이 단일 연결 구성요소의 일부인 것을 나타내도록 조합된다. 특정 라벨이 어느 세트에 있는지가 판단되고 2개의 세트가 단일 세트로 합쳐질 수 있으므로, 유니온 파인드(union-find) 데이터 구조들은 균등 또는 대응 맵들을 저장하는데 적절하다.
상이한 유니온 파인드 구조들 중에서, 디스조인트 세트 포레스트(forest)는 포괄적 데이터 세트에 대한 발견 동작을 위해 점근적으로 선택적이다. 디스조인트 세트 포레스트들은 각각의 노드가 그것의 페어런트 노드에 대해 기준을 유지하는 트리 데이터 구조에 의해 각각의 세트가 표현되는 데이터 구조들이다. 이것은 예를 들어 아래 첨자들이 가능한 라벨들의 세트이고 값들이 페어런트 노드들의 라벨들인 벡터 어레이로 달성된다. 제로 값은 노드가 페어런트들을 갖지 않고 트리의 루트 노드인 것을 의미한다. 도 7은 도 3의 마지막 행을 처리하기 전의 종래의 알고리즘에 대한 2개의 라벨 트리 세트 및 상응하는 균등 맵을 도시한다.
연결성 식을 사용함으로써 이웃들을 식별하는 것은 단일 연결 구성요소에 대한 불필요한 라벨들을 생성하는 것을 야기할 수 있다. 이러한 생성된 라벨들은 병합되어야 하며, 이는 증가된 실행 시간을 야기한다. 예를 들어, 도 5에서, 2개의 연결된 구성요소만이 있다. 그러나, 이전 행에서 이웃을 식별하는 종래의 접근법이 이어지면, 개별 라벨들은 그것의 이전 행 이웃들을 단지 조사함으로써 각각의 픽셀에 대해 주어진다. 그 다음, 그러한 라벨들 각각은 대응 맵 트리의 깊이를 증가시키는 다른 것의 페어런트/차일드로 표시된다. 이것은 차례로 루트들을 식별하는데 너무 많은 시간을 소비하는 것을 야기한다.
이러한 문제를 극복하기 위해, 새로운 픽셀 맵은 일 실시예에서 2개의 연속 행을 오어림함으로써 생성된다. 예를 들어, 도 6은 도 5에서의 2개의 행의 오어링을 도시한다. RLE는 이때 단지 현재 행 대신에 새로운 픽셀 맵 상에 수행된다. 각각의 그러한 RLE는 연결된 구성요소 세트를 형성하고, 단일 라벨은 그것들에 대해 충분하다. 따라서, 모든 이전 런들의 이웃들은 현재 런의 이웃들로 식별된다.
S208에서, 새로운 런이 직면될 때마다, 이전 행에서의 이웃들의 수가 체크된다. 하나 이상의 이웃들이 있다면, 기존 라벨은 후술되는 바와 같이 현재 런에 보급된다.
이웃들이 없으면, 새로운 라벨이 S210에서 생성된다. 최소 라벨(예를 들어, 1)은 제1 직면된 런에 할당된다. 부가 라벨들을 생성하는 하나의 방법은 런이 이전 행에서의 이웃들 없이 직면될 때마다 라벨 카운터를 증분하는 것이다. 그러나, 이것은 동일한 사이즈를 갖는 대응 맵을 전체 이미지에 대한 최대 수의 라벨들로 생성할 것이다.
임의의 주어진 행에 대해, 최대 수의 라벨들은 M/2이며, 여기서 M은 이미지의 폭이다. 하나의 접근법은 이전 행에서 현재 행으로 라벨들을 변환하는 변환 테이블을 사용한다. 이러한 변환 테이블을 유지하고 사용하는 것은 효율적이지 않고 객체 특징 추출에 대해 시간 소비적이다.
다른 접근법은 또한 메모리를 M/2과 동일한 것으로 유지하는 라벨들을 생성하는 더 단순한 방식을 사용한다. 이러한 접근법에서, 사이즈 M/2의 대응 맵이 유지된다. 그러나, 라벨들은 단조롭게 증분하도록 허용된다. 라벨은 단순한 모듈로 연산에 의해 대응 맵 지수로 변환된다. 대응 맵에서의 각각의 위치는 라벨이 활성인지의 여부를 말해주는 플래그와 연관된다. 라벨 수는 비활성 위치가 대응 맵에서 발견될 때까지 증분된다. 2의 거듭제곱(예를 들어, 512, 1024, 2048 등)인 사이즈를 갖는 대응 맵에 대해, 모듈로 연산은 가장 기본적 DSP들/마이크로 컨트롤러들에서도 단일 명령어로 이용가능한 단순한 'AND' 연산이 된다.
이전 행에서 하나의 이웃만이 있다면, 그 이웃의 라벨은 S212에서 현재 런에 보급된다.
게다가, 하나보다 많은 이웃이 있는 것이 S208에서 판단된다면, 종래의 알고리즘은 이웃들의 최소 라벨을 현재 라벨로 할당한다. 그러나, 이것은 대응 맵의 트리 깊이의 증가를 초래할 것이고 대응 맵 업데이트들의 실행 시간을 증가시킬 것이다. 따라서, 일부 구현들에서, 알고리즘은 S214에서 이전 행에서의 이웃들의 루트들의 최소 라벨을 결정하고 그 라벨을 현재 런에 할당한다. 이것은 루트 라벨들만의 보급을 원조하고, 모든 비활성 라벨들은 자동적으로 비활성이 된다.
새로운 연결이 2개의 라벨 사이에서 발생할 때마다, 그러한 라벨들의 등가가 S216에서 갱신된다. 전형적인 연결된 구성요소 알고리즘은 알고리즘이 각각의 라벨이 속하는 각각의 트리들의 루트를 찾을 때까지, 대응 또는 균등 맵을 반복적으로 추적한다. 2개의 라벨이 상이한 트리들에 속한다면, 라벨이 더 높은 루트 노드는 다른 것의 차일드가 된다. 종래의 기술이 작은 사이즈들에 대해 효율적으로 작업하더라도, 라벨들의 수 및 트리 깊이가 증가함에 따라, 종래의 기술은 각각의 연결에 대한 루트 노드를 찾는데 많은 시간을 소비한다. 이러한 수행은 각각의 대응 맵 갱신 후에 트리를 평탄화함으로써 개선될 수 있다. 그러나, 라벨들의 수가 증가함에 따라, 알고리즘은 트리를 평탄화하는데 너무 많은 시간을 소비한다.
본 알고리즘은 각각의 행에 대한 트리의 활성 부분만을 평탄화함으로써 이러한 문제점을 극복한다. 도 2에 설명된 이웃들을 식별하고 라벨들을 보급하는 방식은 트리의 활성 부분을 암시적으로 평탄화한다. 따라서, 개별 평탄화 단계가 요구되지 않는다. 그러므로, 활성 라벨들의 수가 매우 작고 폭 M의 이미지에 대해 M/2 이하이도록 항상 보장되므로, 루트들을 찾고 대응 맵을 갱신하는데 소비되는 시간은 최소이다. 도 8 및 도 9는 본 알고리즘에 대한 트리 구조 및 균등 맵을 도시한다. 구체적으로, 도 8은 도 3에서의 맵의 마지막 행을 처리하기 전의 본 알고리즘에 대한 라벨 트리들 및 균등 맵의 일 예를 도시한다. 도 9는 도 3에서의 맵의 본 알고리즘에 대한 제 1 패스 후의 라벨 트리들 및 균등 맵의 일 예를 예시한다.
S218에서, 최소 라벨을 갖는 객체는 그러한 비최소 라벨들 중 어느 것이 강하다면, 강함으로 표시된다.
특징들(속성들)은 라벨이 런에 할당됨에 따라 그리고 할당될 때, S220에서 수집된다. 생성된 각각의 라벨은 객체 특징 정보와 연관된다. 새로운 라벨이 생성되면, 객체 특징 정보는 특징 정보가 새로운 객체를 나타내는 것을 표시하도록 초기화된다. 라벨이 새로운 런에 보급될 때마다, 예를 들어 S212 또는 S214에서, 라벨과 연관된 객체 특징 정보는 새로운 런의 특징들로 갱신된다. 예를 들어, 객체에서의 전체 수의 픽셀들에 관한 일 실시예에서, 객체 특징 정보는 새로운 런의 길이를 객체의 기존 사이즈에 추가함으로써 갱신된다. 라벨이 상이한 라벨의 차일드인 것으로 발견될 때마다, 페어런트 객체 특징 정보(즉, 상이한 라벨의)는 차일드 객체 특징 정보로 갱신된다. 루트 노드만이 보급되므로, 모든 칠드런 라벨들은 모든 행 후에 폐기될 수 있다.
단계(S222)에서, 라벨은 런(run)이 강하면(예를 들어, 런이 강한 픽셀을 포함하면) 강함으로 표시된다.
알고리즘은 객체가 단계 S224 후에 완성됨에 따라 그리고 완성될 때 객체 특징들을 응용에 송신한다. 도 2에 대해 설명된 바와 같이 라벨들을 생성하고 대응 맵을 갱신하는 방법은 완성 객체들을 용이하게 검색하는데 도움이 된다. 예를 들어, 라벨이 이전 라인으로부터 현재 라인으로 보급될 때마다, 이는 완성되지 않은 것으로 표시된다. 루트 라벨들만이 보급되기 때문에, 보급되지 않는 루트 라벨에 상응하는 객체는 단계(S224)에서 완성 객체로 간주된다. 따라서, 단계(S222)에서 각각의 행을 라벨링한 후에, 일 실시예에서의 알고리즘은 단계(S224)에서 이전 행에 존재하고 현재 행에 존재하지 않는 루트 라벨들을 체크한다. 단계(S226)에서, 완성 객체는 그것이 강하면 선택되고, 그것이 약하면 폐기된다.
폭이 미리 결정된 폭(Wmin) 보다 큰 객체들을 식별하는 응용을 고려한다. 여기서, 폭은 객체의 속성/특징이다. 알고리즘은 단계 S228에서 미리 결정된 폭보다 큰 폭을 갖는 객체들만을 저장한다. 종래의 방법에서, 모든 객체들이 우선 식별되고 저장될 수 있다. 그 다음, 특징들/속성들은 객체들이 기준과 일치하는지를 판단하기 위해 제 2 패스에서 계산될 것이다. 이는 기준과 일치하지 않는 객체들을 저장하기 위해 메모리 오버헤드를 불필요하게 추가시킨다.
근사 윤곽 특징들은 픽셀 크기 대신에 강도 기울기가 임계화되면 추출될 수 있다. 윤곽 특징들은 객체 특징들에 대해 유사하게 추출될 수 있다. 알고리즘 은 하나의 윤곽 또는 객체가 다른 윤곽에 의해 둘러싸여 있는지를 체크할 수도 있다.
게다가, 알고리즘은 병렬 처리될 수 있으므로, 이는 다수의 코어들/프로세서들에 의한 실행에 적합하다. 이미지의 각각의 슬라이스는 각각의 코어 또는 프로세서에 공급될 수 있다. 다중 슬라이스들에 걸치는 객체들의 특징들은 하나의 슬라이스의 제 1 행 및 이전 슬라이스의 마지막 행의 이웃들 및 라벨들을 조사함으로써 조합될 수 있다. 코어 또는 프로세서는 하나의 슬라이스의 제 1 행 및 이전 슬라이스의 마지막 행을 조사할 수 있다. 대안적으로 또는 부가적으로, 제 3 코어 또는 프로세서는 슬라이스들의 제 1행 및 마지막 행을 조사할 수 있다.
알고리즘은 파이프라인 비전 프로세서를 갖고, 500MHz에서 구동되는 듀얼 코어, 고정 포인트 DSP(digital signal processor) 상에 구현된다. 이는 길이, 영역, 이미지 모멘트들(moments), Hu 모멘트들 등과 같은 객체 및 윤곽 속성들에 대해 테스트되었다. 알고리즘 및 종래의 기술은 도 10에 도시된 주사위 세트의 이미지에 대한 최상의 결과를 얻기 위해 어셈블리 언어로 구현되었다. DMA는 외부 메모리로부터 내부 메모리로 데이터를 가져오기 위해 사용되었다.
알고리즘은 메모리 사용 및 처리 시간에 관하여 종래의 기술을 능가하는 것으로 발견되었다. 이미지 상에 표시된 바운딩 박스를 갖는 출력이 도 12에 도시된다. 표 1은 알고리즘에 대한 픽셀 당 평균 사이클 및 메모리 요구의 비교 및 도 11에 도시된 이미지에 대한 바운딩 박스 및 도트들의 길이를 추출하는 종래의 기술을 제공한다. 핍들(pips)은 객체의 사이즈 및 바운딩 박스의 사이즈를 조사함으로써 식별된다. 사용된 종래의 기술은 Analog Devices Inc.에 의한 프로세서들의 론칭 동안 동일한 예의 증명인 BDTI(Berkeley Design Technology Inc.)에서 사용된 에지 추적 및 윤곽 추적의 조합이다. 표 1로부터 알 수 있는 바와 같이, 제안된 알고리즘은 종래의 기술보다 6배 더 좋게 수행한다. 또한, 메모리 요구는 종래의 기술과 비교하여 5배 저감된다
전형적인 사용 경우에 대한 픽셀 당 평균 주기 및 메모리 요구에 대한 비교
제안 종래
평균 사이클들/픽셀 6.44 44.14
메모리(바이트) 33228 186020
게다가, 종래의 기술에 대해, 윤곽 추적을 위한 MIPS 요구는 객체들의 수가 증가함에 따라 잡음의 존재 시에 급격히 증가할 것이다. 객체들의 수를 갖는 본 개시의 알고리즘의 사이클들의 증가는 상당히 더 적은 것으로 발견된다.
따라서, 본 개시의 알고리즘은 종래의 기술들과 비교하여 상당히 더 적은 계산 및 메모리 자원들을 소비한다.
도 13은 본 개시의 일 실시예를 실행하도록 프로그램될 수 있는 예시적 컴퓨터 시스템(1300)과 연관된 전자 장치들을 예시하는 간략한 블록도이다. 시스템(1300)은 터치 입력 장치(1314), 터치 컨트롤러(1302), 하나 이상의 프로세서들(1304), 프로세서(들)(1304) 중 적어도 하나에 결합된 시스템 제어 로직(1306), 시스템 제어 로직(1306)에 결합된 시스템 메모리(1308), 시스템 제어 로직(1306)에 결합된 비휘발성 메모리 및/또는 저장 장치(들)(1310), 시스템 제어 로직(1306)에 결합된 디스플레이 컨트롤러(1312), 디스플레이에 결합된 디스플레이 컨트롤러(1312), 시스템 제어 로직(1306)에 결합된 전력 관리 컨트롤러(1318), 및 시스템 제어 로직(1306)에 결합된 통신 인터페이스(들)(1320)를 포함한다.
터치 입력 장치(1314)는 터치 센서(1316)를 포함하고, 각각은 예를 들어 그리고 제한 없이, 용량성, 저항성, SAW(surface acoustic wave), 적외선, 및 광학 이미징과 같은 임의의 적절한 터치 감지 기술을 사용하여 구현될 수 있다. 터치 입력 장치(1314)는 특정 실시예에서, 임의의 적절한 단일 또는 멀티 터치 기술을 사용하여 구현된다.
시스템 제어 로직(1306)은 특정 실시예에서, 임의의 적절한 인터페이스를 적어도 하나의 프로세서(1304)에 및/또는 시스템 제어 로직(1306)과 통신하는 임의의 적절한 장치 또는 구성요소에 제공하기 위해 적절한 인터페이스 컨트롤러들을 포함한다. 시스템 제어 로직(1306)은 특정 실시예에서, 인터페이스를 시스템 메모리(1308)에 제공하기 위해 하나 이상의 메모리 컨트롤러들을 포함한다. 시스템 메모리(1308)는 예를 들어 소프트웨어(1326)와 같은 데이터 및/또는 명령어들을 로딩하고 저장하기 위해 사용될 수 있다. 시스템 메모리(1308)는 특정 실시예에서, 예를 들어 적절한 DRAM(dynamic random access memory) 또는 SDRAM 또는 ROM과 같은 임의의 적절한 메모리를 포함한다. 시스템 제어 로직(1306)은 특정 실시예에서, 인터페이스를 디스플레이 장치(1332), 터치 컨트롤러(1302), 및 비휘발성 메모리 및/또는 저장 장치(들)(1310)에 제공하기 위해 하나 이상의 I/O(input/output) 컨트롤러들을 포함한다.
비휘발성 메모리 및/또는 저장 장치(들)(1310)는 예를 들어 소프트웨어(1328) 내에 데이터 및/또는 명령어들을 저장한다. 비휘발성 메모리 및/또는 저장 장치(들)(1310)는 예를 들어 플래시 메모리와 같은 임의의 적절한 비휘발성 메모리, 및/또는 예를 들어 하나 이상의 HDD들(hard disc drives), 하나 이상의 CD(compact disc) 드라이브들, 및/또는 하나 이상의 DVD(digital versatile disc) 드라이브들과 같은 임의의 적절한 비휘발성 저장 장치(들)를 포함할 수 있다.
전력 관리 컨트롤러(1318)는 컴퓨터(1300)의 개방 구성 또는 폐쇄 구성 및/또는 물리적 배향 또는 비사용 상태에 기초하여 컴퓨터(1300)의 다양한 전력 관리 및/또는 절전 기능들을 제어하도록 구성된 전력 관리 로직(1330) 을 포함한다. 일 실시예에서, 전력 관리 컨트롤러(1318)는 감소된 전력에서 동작될 수 있는 시스템(1300)의 구성요소들 또는 장치들의 전력 소모를 감소시키도록 구성된다. 예를 들어, 특정 실시예에서 컴퓨터(1300)가 최근에 사용되지 않았을 때, 전력 관리 컨트롤러(1318)는 이하 중 하나 이상을 수행한다: 디스플레이 및/또는 그것과 연관된 임의의 백라이트의 비사용 부분을 파워 다운하는 것; 더 적은 컴퓨팅 전력이 적절하면 프로세서(들)(1304) 중 하나 이상이 저전력 상태로 가는 것을 허용하는 것; 및 사용되지 않는 키보드와 같은 임의의 장치들 및/또는 구성요소들을 셧다운하는 것.
통신 인터페이스(들)(1320)는 하나 이상의 네트워크들을 통해 통신하고/하거나 임의의 다른 적적한 장치와 통신하기 위해 시스템(1300)에 인터페이스를 제공할 수 있다. 통신 인터페이스(들)(1320)는 임의의 적절한 하드웨어 및/또는 펌웨어를 포함할 수 있다. 통신 인터페이스(들)(1320)는 특정 실시예에서, 예를 들어 네트워크 어댑터, 무선 네트워크 어댑터, 전화 모뎀, 및/또는 무선 모뎀을 포함한다.
시스템 제어 로직(1306)은 특정 실시예에서, 인터페이스를 예를 들어 마이크로폰, 스피커, 카메라, 캠코더, 프린터, 및/또는 스캐너와 같은 임의의 적절한 입력/출력 장치(들)에 제공하기 위해 하나 이상의 I/O(input/output) 컨트롤러들을 포함한다.
일 실시예에서, 적어도 하나의 프로세서(1304)는 SiP(System in Package)를 형성하기 위해 시스템 제어 로직(1306)의 하나 이상의 컨트롤러들에 대한 로직과 함께 패키지화된다. 일 실시예에서, 적어도 하나의 프로세서(1304)는 시스템 제어 로직(1306)의 하나 이상의 컨트롤러들에 대한 로직과 동일한 다이 상에 통합된다. 특정 실시예에 대해, 적어도 하나의 프로세서(1304)는 SoC(System on Chip)를 형성하기 위해 시스템 제어 로직(1306)의 하나 이상의 컨트롤러들에 대한 로직과 동일한 다이 상에 통합된다.
터치 제어에 대해, 터치 컨트롤러(1302)는 터치 센서 인터페이스 회로(1322) 및 터치 제어 로직(1324)을 포함할 수 있다. 터치 센서 인터페이스 회로(1322)는 디스플레이(예를 들어, 디스플레이 장치(1332))의 제 1 터치 표면 층 및 제 2 터치 표면 층을 통해 터치 입력을 검출할 수 있다. 터치 센서 인터페이스 회로(1322)는 예를 들어 터치 입력 장치(1314)에 사용되는 터치 감지 기술에 적어도 부분적으로 의존할 수 있는 임의의 적절한 회로를 포함할 수 있다. 터치 센서 인터페이스 회로(1322)는 일 실시예에서, 임의의 적절한 단일 또는 멀티 터치 기술을 지원할 수 있다. 터치 센서 인터페이스 회로(1322)는 일 실시예에서, 제 1 터치 표면 층 및 제 2 터치 표면 층에 상응하는 아날로그 신호들을 디지털 터치 입력 데이터로 변환하기 위해 임의의 적절한 회로를 포함한다. 일 실시예에 대한 디지털 터치 입력 데이터는 예를 들어 터치 위치 또는 좌표 데이터를 포함한다.
터치 제어 로직(1324)은 제 1 터치 표면 층 및 제 2 터치 표면 층을 통해 터치 입력을 검출하기 위해 터치 센서 인터페이스 회로(1322)를 제어하는데 도움이 된다. 일 실시예에 대한 터치 제어 로직(1324)은 터치 센서 인터페이스 회로(1322)에 의해 검출되는 터치 입력에 상응하는 디지털 터치 입력 데이터를 출력할 수 있다. 터치 제어 로직(1324)은 터치 센서 인터페이스 회로(1322)에 사용되는 회로에 적어도 부분적으로 의존할 수 있는, 하드웨어, 펌웨어, 및/또는 소프트웨어 로직(예를 들어, 비일시적 유형 매체)을 포함하는 임의의 적절한 로직을 사용하여 구현될 수 있다. 터치 제어 로직(1324)은 임의의 적절한 단일 또는 멀티 터치 기술을 지원한다.
터치 제어 로직(1324)은 처리를 위해 디지털 터치 입력 데이터를 시스템 제어 로직(1306) 및/또는 적어도 하나의 프로세서(1304)에 출력하도록 결합될 수 있다. 일 실시예에 대한 적어도 하나의 프로세서(1304)는 터치 제어 로직(1324)으로부터 출력되는 디지털 터치 입력 데이터를 처리하기 위해 소프트웨어를 실행할 수 있다. 적절한 소프트웨어는 예를 들어 드라이버 소프트웨어 및/또는 응용 소프트웨어를 포함할 수 있다. 도 13에 예시된 바와 같이, 시스템 메모리(1308)는 적절한 소프트웨어(1326)를 저장할 수 있고 비휘발성 메모리 및/또는 저장 장치(들)로 구현될 수 있다.
수정들
이전 설명에서, 알고리즘은 래스터 주사 순서로 픽셀들에 적용되었다. 그러나, 다른 순서들이 사용될 수 있다. 예를 들어, 픽셀들을 행마다 고려하는 것보다는 오히려, 픽셀들은 열마다 고려될 수 있다. 대안적으로, 알고리즘은 역 래스터 주사 순서 또는 다른 순서들로 구현될 수 있다.
설명은 일반적으로 프로세서의 동작들을 언급한다. 그러한 프로세서는 도 2에 진술된 알고리즘의 동작들을 수행하는 처리 수단의 일 예이다.
일 실시예에서, 프로세서는 알고리즘을 수행하기 위해 매체로부터 명령어들을 판독한다. 이러한 매체는 일시적 또는 비일시적일 수 있다. 예시적인 일시적 매체는 진행파 또는 신호, 및 컴퓨터 명령어들 그 자체를 포함한다. 예시적인 비일시적 매체는 자기 디스크, 광 디스크, 자기 광 디스크, 또는 a 플래시 메모리를 포함한다. 다른 비일시적 매체는 RAM 및 ROM을 포함한다.
도면들을 참조하여 상기 논의된 활동들은 이미지 처리를 수반하는 임의의 집적 회로, 특히 특수화된 소프트웨어 프로그램들, 또는 알고리즘들을 실행할 수 있는 것들에 적용가능하며, 그 일부는 디지털화된 실시간 데이터를 처리하는 것과 연관될 수 있다. 어떤 실시예들은 멀티 DSP 신호 처리, 부동 소수점 처리, 신호/제어 처리, 고정 기능 처리, 마이크로컨트롤러 응용들 등과 관련될 수 있다.
본 명세서에서 논의된 특징들은 일반적으로 컴퓨터 비전에 적용될 수 있다. 예를 들어, 특징들이 적용될 수 있는 하나의 맥락은 자동화된 어셈블리 라인들 내의 컨베이어 라인들에서의 결함 검출이다. 그러한 응용에서, 관심 객체는 나사, 병 등일 수 있다. 응용은 결함 객체를 식별하고 그것을 적절히 플래그한다.
특징들은 자동차 번호판 인식, 감시 등과 같은 인쇄 문자 인식에 적용될 수도 있다. 본 개시의 교시들은 속도 제한 표지에서 속도 제한들 및 연관된 문자들(필요하다면) 식별하는 속도 제한 인식과 같은 자동차 응용들에 적용될 수 있다. 그러한 응용들에서, 직사각형의 속성들과 일치하는 윤곽들이 추출된다. 따라서, 문자들/번호들에 상응하는 객체들이 추출되고, 문자들/번호들은 그들의 속성들에 기초하여 분류된다.
다른 맥락들에서, 특징들은 과학적 기구, 레이더, 산업 처리 컨트롤, 비디오 장비, 및 다른 디지털 처리 기반 시스템들에 적용될 수 있다. 게다가, 어떤 실시예들은 의료 이미징 시스템들, 의료 기구, 환자 모니터링, 및 가정 헬스케어를 위한 디지털 신호 처리 기술들에 제공될 수 있다. 이것은 폐(pulmonary) 모니터들, 가속도계들, 심장 박동 모니터들, 페이스메이커들 등을 포함할 수 있었다. 다른 응용들은 안전 시스템들(예를 들어, 운전자 보조 시스템 및 인포테인먼트(infotainment))를 위한 자동차 기술들을 수반할 수 있다.
또 다른 예시적 시나리오들에서, 본 개시의 교시들은 생산성, 에너지 효율, 및 신뢰성을 추진하는데 도움이 되는 공정 제어 시스템들을 포함하는 산업 시장에 적용될 수 있다. 소비자 응용들에서, 상기 논의된 신호 처리의 교시들은 이미지 처리, 자동 초점, 및 이미지 안정화(예를 들어, 디지털 스틸 카메라들, 캠코더들 등)에 사용될 수 있다. 다른 소비자 응용들은 홈 시어터 시스템들, DVD 레코더들, 및 고선명 텔레비전들을 위한 비디오 프로세서들을 포함할 수 있다. 또 다른 소비자 응용들은 고급 터치 스크린 컨트롤러들(예를 들어, 임의 타입의 휴대용 미디어 장치를 위한)을 수반할 수 있다. 따라서, 그러한 기술들은 용이하게 스마트폰들, 태블릿들, 보안 시스템들, PC들, 게임 기술들, 가상 현실, 시뮬레이션 트레이닝 등의 일부일 수 있었다.
도 1-도 13의 배열들은 단순히 논의 목적들을 위한 것이며, 그러한 배열들에 대한 다양한 대안들 및 수정들은 본 개시의 범위 내에 있다. 유사한 라인들을 따라, 도 1-도 13의 처리 및 메모리 할당들은 다른 구성요소들에 의해 공유되거나, 상이한 장치들에 걸쳐 통합되거나, 다른 방식으로 분배될 수 있다. 그러한 수정들은 특정 이미지 처리 요구들, 특정 환경들 등에 기초할 수 있다.
어떤 구현들에서, 본 명세서에 개설된 추출 기능들은 하나 이상의 유형 매체에서 인코딩되는 로직(예를 들어, ASIC[application specific integrated circuit], DSP[digital signal processor] 명령어들, 프로세서 또는 임의의 다른 유사한 기계에 의해 실행될 소프트웨어[목적 코드 및 소스 코드를 잠재적으로 포함함] 등에 제공되는 내장 로직)에 의해 구현된다. 이러한 경우들의 일부에서, 메모리 요소는 본 명세서에 설명된 추출 동작들을 위한 데이터를 저장한다. 메모리 요소는 본 개시에 설명된 활동들을 수행하기 위해 실행되는 소프트웨어, 로직, 코드, 또는 프로세서 명령어들을 저장할 수 있다. 프로세서는 본 개시에 열거된 동작들을 달성하기 위해 임의 타입의 명령어들을 실행할 수 있다. 일 예에서, 프로세서는 요소 또는 물품(예를 들어, 데이터)을 한 상태 또는 상황으로부터 다른 상태 또는 상황으로 변환한다. 다른 예에서, 본 명세서에 개설된 추출 활동들은 고정 로직 또는 프로그램 가능 로직(예를 들어, 프로세서에 의해 실행되는 소프트웨어/컴퓨터 명령어들), 예컨대 프로그램 가능 프로세서, 디지털 로직, 소프트웨어, 코드, 또는 전자 명령어들을 포함하는 프로그램 가능 디지털 로직(예를 들어, FPGA(field-programmable gate array), EPROM(erasable programmable read only memory), EEPROM(electronically erasable programmable read only memory), 또는 ASIC)으로 구현된다.
일반적 의미에서, 이전 도면들에 도시된 배열들은 그들의 표현들에서 더 논리적일 수 있는 반면, 물리적 아키텍처는 다양한 순열들, 조합들, 또는 이러한 요소들의 혼합들을 포함할 수 있다. 일 실시예에서, 본 개시의 특징들은 상술한 요소들(예를 들어, 서버에 포함됨) 중 어느 것의 외부에 제공되거나 개시된 기능성들을 달성하는 다른 장치에 포함된다. 다른 실시예들에서, 도면들의 장치들 중 어느 것은 부가 알고리즘들, 하드웨어, 소프트웨어, 구성요소들, 모듈들, 인터페이스들, 또는 이러한 추출 동작들을 용이하게 하는 객체들을 포함할 수 있다.
상술한 장치들 모두는 적절한 곳에서 그리고 특정 요구들에 기초하여 정보를 임의의 적절한 메모리 요소, 소프트웨어, 하드웨어에, 또는 임의의 다른 적절한 구성요소, 장치, 요소, 또는 객체에 유지할 수 있다. 본 개시에 설명된 잠재적 처리 요소들, 모듈들, 및 기계들 중 어느 것은 광범위한 용어 '프로세서' 내에 포함되는 것으로 해석되어야 한다.
본 명세서에 제공된 예들의 경우, 상호작용은 2개. 3개, 4개, 또는 그 이상의 요소들에 관하여 설명되었다. 그러나, 이것은 명확성 및 예만의 목적들을 위해 행해졌다. 어떤 경우들에서, 제한된 수의 요소들만을 참조함으로써 주어진 플로우 세트의 기능성들 중 하나 이상을 설명하는 것이 더 용이할 수 있다. 시스템(1300)(및 교시들)은 용이하게 확장가능하고 다수의 구성요소들 뿐만 아니라, 더 복잡한/정교한 배열들 및 구성들을 수용할 수 있다. 따라서, 제공된 예들은 무수한 아키텍처들에 잠재적으로 적용되는 바와 같이 시스템(1300)의 범위를 제한하거나 광범위한 교시들을 저해하지 않아야 한다.
이전 흐름도들은 시스템(1300)에 의해 또는 내에 실행될 수 있는 시나리오들 및 패턴들의 일부만을 예시한다. 일부 동작들은 본 개시의 범위로부터 상당히 벗어나지 않고 삭제, 제거, 수정, 또는 변화될 수 있다. 게다가, 이러한 동작들의 다수는 하나 이상의 부가 동작들과 동시에 또는 이 동작들과 병렬로 실행되는 것으로 설명되었다. 그러나, 이러한 동작들의 타이밍은 상당히 변경될 수 있다. 이전 동작 흐름들은 예 및 논의의 목적들을 위해 제공되었다. 실질적인 유연성은 임의의 적절한 배열들, 연대순, 구성들, 및 타이밍 메커니즘들이 본 개시의 교시들로부터 벗어나지 않고 제공될 수 있다는 점에서 시스템(1300)에 의해 제공된다.
본 개시가 특정 배열들 구성들을 참조하여 상세히 설명되었지만, 이러한 예시적 구성들 및 배열들은 본 개시의 범위를 벗어나지 않고 상당히 변경될 수 있다.
게다가, 시스템(1300)이 추출 프로세스를 용이하게 하는 특정 요소들 및 동작들을 참조하여 설명되었지만, 이러한 요소들 및 동작들은 시스템(1300)의 의도된 기능성을 달성하는 임의의 적절한 아키텍처 또는 프로세스로 대체될 수 있다.
부가적으로, 이전 논의들이 컴퓨터들에 초점이 맞추어졌지만, 비디오 응용들을 이용하는 핸드헬드 장치들은 본 개시의 교시들을 손쉬게 채택할 수 있었다. 예를 들어, 아이폰들, 아이패드들, 구글 안드로이드 동작 장치들, 개인용 컴퓨팅 응용들(예를 들어, 데스크톱 비디오 solutions) 등은 상기 열거된 교시들을 사용할 수 있다. 비디오 데이터를 처리하고/하거나 수신하는 임의의 통신 시스템 또는 장치는 또한 본 명세서에서 논의된 교시들에 따를 것이다.
다수의 다른 변화들, 치환들, 변형들, 변경들, 및 수정들은 당업자에게 확인될 수 있고 본 개시는 첨부된 특허청구범위 내에 있는 바와 같은 모든 그러한 변화들, 치환들, 변형들, 변경들, 및 수정들을 포함하도록 의도된다. 본 명세서에 첨부된 특허청구범위를 해석하는데 있어서 미국 특허상표청(USPTO) 및 부가적으로 본 출원에 이슈된 임의 특허의 임의 독자들을 돕기 위해, 본 출원인들은 (a) 단어들 "하는 수단" 또는 "하는 단계"가 특정 청구항들에 구체적으로 사용되지 않으면 본 명세서의 출원일에 존재하는 첨부된 청구항들 중 어느 것에 35 U.S.C. 제112(f)조 적용하려는 의도는 없고; (b) 본 명세서 내의 임의의 진술에 의해, 첨부된 청구항들에 달리 반영되지 않은 임의의 방식으로 본 개시를 제한하려는 의도는 없다는 점에 주목하기를 본 출원인들은 희망한다.

Claims (20)

  1. 픽셀 맵의 행에서 비제로(non-zero) 런의 위치 및 길이를 결정하는 단계;
    상기 위치 및 상기 길이에 적어도 부분적으로 기초하여, 상기 픽셀 맵의 이전 행에서 상기 비제로 런이 적어도 2개의 이웃들을 갖는지를 결정하는 단계;
    상기 비제로 런의 상기 적어도 2개의 이웃들의 최소 루트들을 결정하는 단계; 및
    상기 비제로 런의 상기 적어도 2개의 이웃들의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 상기 비제로 런의 대응 맵 및 상기 비제로 런의 상기 적어도 2개의 이웃들의 제 1 이웃의 대응 맵을 갱신하는 단계
    를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 비제로 런에 상기 이웃들의 최소 루트들을 할당하는 단계를 추가로 포함하는, 방법.
  3. 청구항 1에 있어서,
    상기 결정에 대응하여, 상기 비제로 런, 상기 제 1 이웃, 및 상기 제 2 이웃을 포함하는 객체의 사이즈를 갱신하는 단계를 추가로 포함하는, 방법.
  4. 청구항 3에 있어서,
    상기 비제로 런의 길이에 적어도 부분적으로 기초하여 상기 객체의 사이즈를 갱신하는 단계를 추가로 포함하는, 방법.
  5. 청구항 1에 있어서,
    상기 비제로 런이 상기 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하는 단계를 추가로 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 이웃들의 수를 결정하는 단계는 상기 행을 상기 이전 행과 오어링(ORing)하는 단계를 포함하는, 방법.
  7. 청구항 1에 있어서,
    상기 비제로 런에서의 픽셀의 강도 및 미리 결정된 임계값에 적어도 부분적으로 기초하여, 객체를 폐기하는 단계를 추가로 포함하는, 방법.
  8. 명령어들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은, 실행될 때 프로세서로 하여금,
    픽셀 맵의 행에서 비제로 런의 위치 및 길이를 결정하게 하고,
    상기 위치 및 상기 길이에 적어도 부분적으로 기초하여, 상기 픽셀 맵의 이전 행에서 상기 비제로 런이 적어도 2개의 이웃들을 갖는지를 결정하게 하고,
    상기 비제로 런의 상기 적어도 2개의 이웃들의 최소 루트들을 결정하게 하며,
    상기 비제로 런의 상기 적어도 2개의 이웃들의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 상기 비제로 런의 대응 맵 및 상기 비제로 런의 상기 적어도 2개의 이웃들의 제 1 이웃의 대응 맵을 갱신하게 하는 동작들을 수행하도록 동작 가능한, 컴퓨터 판독가능 저장 매체.
  9. 청구항 8에 있어서, 상기 동작들은,
    상기 비제로 런에 상기 이웃들의 최소 루트들을 할당하는 단계를 추가로 포함하는, 컴퓨터 판독가능 저장 매체.
  10. 청구항 8에 있어서, 상기 동작들은,
    상기 결정에 대응하여, 상기 비제로 런, 상기 제 1 이웃, 및 상기 제 2 이웃을 포함하는 객체의 사이즈를 갱신하는 단계를 추가로 포함하는, 컴퓨터 판독가능 저장 매체.
  11. 청구항 10에 있어서, 상기 동작들은,
    상기 비제로 런의 길이에 적어도 부분적으로 기초하여 상기 객체의 사이즈를 갱신하는 단계를 추가로 포함하는, 컴퓨터 판독가능 저장 매체.
  12. 청구항 8에 있어서, 상기 동작들은,
    상기 비제로 런이 상기 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하는 단계를 추가로 포함하는, 컴퓨터 판독가능 저장 매체.
  13. 청구항 8에 있어서, 상기 이웃들의 수를 결정하는 단계는 상기 행을 상기 이전 행과 오어링하는 단계를 포함하는, 컴퓨터 판독가능 저장 매체.
  14. 청구항 8에 있어서, 상기 동작들은,
    상기 비제로 런에서의 픽셀의 강도 및 미리 결정된 임계값에 적어도 부분적으로 기초하여, 객체를 폐기하는 단계를 추가로 포함하는, 컴퓨터 판독가능 저장 매체.
  15. 픽셀 맵의 행에서 비제로 런의 위치 및 길이를 결정하는 프로세서로서, 상기 위치 및 상기 길이에 적어도 부분적으로 기초하여, 상기 픽셀 맵의 이전 행에서 상기 비제로 런이 적어도 2개의 이웃들을 갖는지를 결정하고, 상기 비제로 런의 상기 적어도 2개의 이웃들의 최소 루트들을 결정하며, 상기 비제로 런의 상기 적어도 2개의 이웃들의 제 2 이웃의 대응 맵에 적어도 부분적으로 기초하여, 상기 비제로 런의 대응 맵 및 상기 비제로 런의 상기 적어도 2개의 이웃들의 제 1 이웃의 대응 맵을 갱신하도록 구성된 상기 프로세서를 포함하는, 장치.
  16. 청구항 15에 있어서, 상기 프로세서는 상기 비제로 런에 상기 이웃들의 최소 루트들을 할당하는, 장치.
  17. 청구항 15에 있어서, 상기 프로세서는 상기 결정에 대응하여, 상기 비제로 런, 상기 제 1 이웃, 및 상기 제 2 이웃을 포함하는 객체의 사이즈를 갱신하는, 장치.
  18. 청구항 17에 있어서, 상기 프로세서는 상기 비제로 런의 길이에 적어도 부분적으로 기초하여 상기 객체의 사이즈를 갱신하는, 장치.
  19. 청구항 15에 있어서, 상기 프로세서는 상기 비제로 런이 상기 이전 행에서 이웃들을 갖지 않는다는 결정에 대응하여, 객체가 완성된 것을 결정하도록 구성되는, 장치.
  20. 청구항 15에 있어서, 상기 프로세서는 상기 행을 상기 이전 행과 오어링함으로써 상기 이웃들의 수를 결정하는, 장치.
KR1020140092649A 2013-07-25 2014-07-22 이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체 KR101626538B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/951,193 US9292763B2 (en) 2013-07-25 2013-07-25 System, method, and medium for image object and contour feature extraction
US13/951,193 2013-07-25

Publications (2)

Publication Number Publication Date
KR20150013040A KR20150013040A (ko) 2015-02-04
KR101626538B1 true KR101626538B1 (ko) 2016-06-01

Family

ID=52274148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140092649A KR101626538B1 (ko) 2013-07-25 2014-07-22 이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체

Country Status (3)

Country Link
US (1) US9292763B2 (ko)
KR (1) KR101626538B1 (ko)
DE (1) DE102014109525A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292763B2 (en) 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction
US10742961B2 (en) * 2015-09-02 2020-08-11 Industrial Technology Research Institute Depth sensing apparatus with self-calibration and self-calibration method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186124A (ja) * 2007-01-29 2008-08-14 Seiko Epson Corp 画像データ処理方法、画像データ処理プログラム及び画像データ処理装置
KR101225196B1 (ko) 2011-04-25 2013-01-22 전자부품연구원 이미지 프로세싱에서 블롭 라벨링 방법 및 장치

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718090A (en) 1986-04-14 1988-01-05 Cooper Jr James E Method and apparatus for high-speed processing of video images
US5841903A (en) 1992-01-17 1998-11-24 Yamaha Corporation Method and device for extracting a connected component of image data
US6937765B2 (en) * 2003-03-14 2005-08-30 The Regents Of The University Of California Method for contour extraction for object representation
US7386166B2 (en) 2004-02-12 2008-06-10 Xerox Corporation Systems and methods for connecting regions image data having similar characteristics
US7689038B2 (en) * 2005-01-10 2010-03-30 Cytyc Corporation Method for improved image segmentation
CN100501762C (zh) 2007-04-17 2009-06-17 华东师范大学 图像连通元快速标记的方法
US8155450B2 (en) 2007-07-25 2012-04-10 The United States Of America As Represented By The Secretary Of The Navy Apparatus for single pass blob image analysis
KR101030430B1 (ko) 2007-09-12 2011-04-20 주식회사 코아로직 영상 처리 장치와 방법 및 그 기록매체
US8300945B2 (en) 2008-07-28 2012-10-30 Sharp Laboratories Of America, Inc. Methods and systems for connected-component labeling
US8320674B2 (en) * 2008-09-03 2012-11-27 Sony Corporation Text localization for image and video OCR
US8965132B2 (en) * 2011-11-18 2015-02-24 Analog Devices Technology Edge tracing with hysteresis thresholding
US9275467B2 (en) * 2012-03-29 2016-03-01 Analog Devices, Inc. Incremental contour-extraction scheme for binary image segments
US9292763B2 (en) 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186124A (ja) * 2007-01-29 2008-08-14 Seiko Epson Corp 画像データ処理方法、画像データ処理プログラム及び画像データ処理装置
KR101225196B1 (ko) 2011-04-25 2013-01-22 전자부품연구원 이미지 프로세싱에서 블롭 라벨링 방법 및 장치

Also Published As

Publication number Publication date
US20150030250A1 (en) 2015-01-29
US9292763B2 (en) 2016-03-22
KR20150013040A (ko) 2015-02-04
DE102014109525A1 (de) 2015-01-29

Similar Documents

Publication Publication Date Title
US10860837B2 (en) Deep multi-task learning framework for face detection, landmark localization, pose estimation, and gender recognition
CN109117848B (zh) 一种文本行字符识别方法、装置、介质和电子设备
US11037305B2 (en) Method and apparatus for processing point cloud data
US20160358337A1 (en) Image semantic segmentation
KR101581112B1 (ko) 계층적 패턴 구조에 기반한 기술자 생성 방법 및 이를 이용한 객체 인식 방법과 장치
JP2017531865A (ja) イベントベースのコンピュータビジョン計算
KR102043341B1 (ko) 잡음에 강인한 소리 기반의 호흡기 질병 탐지 방법 및 그 시스템
US9384419B2 (en) Image matching method, extracting features from model images applied different variation, image matching device, model template generation method, and model template generation device
US20230385417A1 (en) Coordinate-system-based data protection techniques
US8442327B2 (en) Application of classifiers to sub-sampled integral images for detecting faces in images
JP2015079505A (ja) 視差深度画像のノイズ識別方法及びノイズ識別装置
WO2023284609A1 (zh) 图形码识别方法、装置、计算机设备和存储介质
Siddiqui et al. A robust framework for deep learning approaches to facial emotion recognition and evaluation
KR101626538B1 (ko) 이미지 객체 및 윤곽 특징 추출을 위한 시스템, 방법, 및 매체
SM et al. Hardware realization of canny edge detection algorithm for underwater image segmentation using field programmable gate arrays
US10977527B2 (en) Method and apparatus for detecting door image by using machine learning algorithm
JP2020525963A (ja) メディア特徴の比較方法及び装置
KR102452511B1 (ko) 도면의 요소 이미지 검출 방법 및 장치
CN114298992A (zh) 一种视频帧去重方法、装置、电子设备及存储介质
US8942485B2 (en) Electronic device and method for recognizing features of objects
CN108388859B (zh) 物体检测方法、网络训练方法、装置和计算机存储介质
Du et al. Exploiting multiple contexts for saliency detection
US20140320514A1 (en) Text Extraction From Graphical User Interface Content
CN105654113B (zh) 文章指纹特征生成方法和装置
CN113763456A (zh) 图像检测装置以及图像检测方法

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 4