KR101734449B1 - 한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자 - Google Patents

한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자 Download PDF

Info

Publication number
KR101734449B1
KR101734449B1 KR1020100056771A KR20100056771A KR101734449B1 KR 101734449 B1 KR101734449 B1 KR 101734449B1 KR 1020100056771 A KR1020100056771 A KR 1020100056771A KR 20100056771 A KR20100056771 A KR 20100056771A KR 101734449 B1 KR101734449 B1 KR 101734449B1
Authority
KR
South Korea
Prior art keywords
nodes
label
assigned
node
pixel value
Prior art date
Application number
KR1020100056771A
Other languages
English (en)
Other versions
KR20110049643A (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 KR20110049643A publication Critical patent/KR20110049643A/ko
Application granted granted Critical
Publication of KR101734449B1 publication Critical patent/KR101734449B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)

Abstract

다수의 노드들에 의해 표현되는 영상은 레이블들이 영상의 다른 노드로부터 하나의 노드로 전파될 수 있는지 여부를 결정함으로서 처리될 수 있다. 개념적으로, 영상은 다수의 노드들의 "정렬 격자"(예를 들어, 영상의 픽셀들의 정렬 격자)로서 표현될 수 있다. "정렬 격자"에서, 동일한 레벨의 2 이상의 노드들(예를 들어, 동일 레벨에 있는 노드들)은 레이블이 할당된 하나 이상의 이웃 노드들로부터 레이블을 전파할지 여부를 병렬적으로 결정하고, 하나 이상의 레이블들을 그에 따라 전파할 수 있다. 영상은 후속적인 레벨들의 노드들에 대한 이러한 처리를 반복주기로 반복함으로써 처리될 수 있다. 개시된 기법들은 영상을 분할하는 것을 요구하거나 분할될 영상을 병합하지 않고도 병렬화를 허용한다. 개시된 기법들은 특히 워터쉐드 알고리즘에 적합하다.

Description

한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자{Structured grids for label propagation on a finite number of layers}
본 발명은 컴퓨팅 환경 및 컴퓨팅 시스템에 대한 영상 처리에 관한 것이다.
개념적으로, 컴퓨팅 시스템(예를 들어, 컴퓨팅 디바이스, 개인용 컴퓨터, 랩탑, 스마트 폰, 이동 전화)은 정보(콘텐트 또는 데이터)를 수용하고 처리하여, 정보를 처리하는 방법을 효과적으로 기술하는 일련의 명령어(또는 컴퓨터 프로그램)에 기초하여 결과를 획득하거나 결정한다. 통상적으로, 정보는 바이너리 형태로 컴퓨터로 판독가능한 매체에 저장된다. 더 복잡한 컴퓨팅 시스템은 컴퓨터 프로그램 자체를 포함한 콘텐트를 저장할 수 있다. 컴퓨터 프로그램은 예를 들어, 마이크로프로세서 또는 컴퓨터 칩상에 제공되는 논리적 회로와 같은, 컴퓨터(또는 컴퓨팅) 디바이스로 설치되거나 불변하게 될 수 있다. 오늘날, 범용 컴퓨터는 두 종류의 프로그래밍을 가질 수 있다. 이들 컴퓨팅 디바이스는 크기, 비용, 저쟝 용량 및 프로세싱 능력면에서 넓은 범위에 있다. 오늘날 이용가능한 컴퓨팅 디바이스들은, 고가의 강력한 서버, 상대적으로 저렴한 개인용 컴퓨터 및 랩탑과, 저장 장치에 제공되는 덜 비싼 마이크로프로세서(또는 컴퓨터 칩), 자동차 및 가전 기기를 포함한다. 메모리 및 저장 장치는 오랫동안 컴퓨팅 및 컴퓨팅 디바이스의 중요한 부분이었다. 메모리 및 저장 장치 기술은 최근 들어 현저하게 개선되어 왔다. 오늘날 상대적으로 큰 용량의 콘텐트가 USB 플래시 드라이버들(또는 USB 플래시 디바이스들)과 같은 디바이스들에 액세스하기 쉽고 휴대가능한 디바이스들에 저장될 수 있다. USB 플래시 드라이버들에 저장되는 콘텐트는 쉽게 이동될 수 있고 다양한 컴퓨팅 디바이스들로 복사될 수 있다. 예를 들어, 서버 컴퓨터에 저장된 데이터는 USB 플래시 드라이버로 복사되고, 집으로 가져가서 개인용 컴퓨터로 로딩(또는 복사)될 수 있다.
그 중에서도, 컴퓨팅 시스템은 영상 처리에 이용될 수 있다. 일반적으로, 영상 처리는 입력이 영상(예를 들어, 사진, 비디오 프레임)인 신호 처리의 어떤 형태도 될 수 있다. 영상 처리의 출력 또한, 영상일 수 있으며, 또는 영상과 관련된 특징들 또는 파라미터들일 수 있다. 영상 처리 기술은 입력 영상을 2차원 신호로서 처리하고, 2차원 신호에 표준 신호 처리 기술을 적용하는 것을 포함할 수 있다. 영상 처리 기술은 3-D 영상을 처리하는데에도 이용될 수 있다. 영상을 처리하기 위하여, 영상은 "운행(traversed)"될 수 있는 그래프로서 표현될 수 있다. 그래프 운행(graph traversal) 동안, 정보는 그래프의 노드들 사이에서 전파될 수 있다.
영상 처리는 종종 디지털 영상을 처리하기 위한 컴퓨터(또는 컴퓨터 기반) 알고리즘을 이용하는 것을 이유로 디지털 영상 처리라고 한다. 디지털 영상 처리는 디지털 신호 처리의 하위 분야로서 아날로그 영상 처리에 비해 많은 이점이 있다. 디지털 영상 처리는 아날로그 영상 처리에 비해 입력에 적용될 수 있는 알고리즘이 더 넓을 뿐만 아니라, 아날로그 영상 처리와 관련된 다양한 문제들(예를 들어, 노이즈 누적(building up), 처리 동안 신호 왜곡)을 피할 수 있기 때문이다.
디지털 영상 처리는 과학 커뮤니티에 의해 널리 인식되고, 디지털 카메라, 디지털 편집 등에 익숙한 일반 대중들에 의해 이용된다. 예를 들어, 디지털 영상 처리 기술은 다양한 형태에서 그리고 매우 다양한 애플리케이션에서 이용됨으로써 증거가 되는 바와 같이 매우 유용하다. 디지털 이미징은 컴퓨팅 시스템(또는 컴퓨터)를 이용하여 실현되거나 달성될 수 있다. 예를 들어, 컴퓨터는 데이터베이스에 저장된 다양한 디지털 영상들에서 객체를 인식하기 위하여 실행가능한 컴퓨터 프로그램을 실행(또는 구동)할 수 있다.
디지털 영상 처리에서, 영상(I)는 그래프 "G = (V, E)"로 표현될 수 있다. 여기에서, "V"는 노드들의 세트를 나타내고, "E"는 그래프의 에지들을 나타낸다. 그래프 "G = (V, E)"에서, 각 정점(vertex) v는 예를 들어, 영상(I)의 픽셀을 나타내거나, 영상(I)내의 픽셀들의 세트(set)일 수 있는 노드들(V)의 서브세트(subset)이다(v ∈ V). 에지들(E)은 픽셀들 사이의 관계 또는 픽셀 그룹들 사이의 관계를 나타낼 수 있다. 예를 들어, 영상(I)은 다음의 동작을 수행함으로써 표현될 수 있다: (i) 영상(I)의 각 픽셀에 대하여, 픽셀을 나타내는 정점을 이용함, (ⅱ) 각 픽셀 정점에 대하여, 각 정점을 에지들로 그 북쪽, 남쪽, 동쪽 및 서쪽의 이웃 픽셀 정점들과 연결함. 그 결과는, 픽셀들의 이웃 관계로 영상(I)을 나타내는 연결된 그래프이다. 유사하게, 3D 영상은 3D 화소(volex) 또는 3D 화소 그룹들 사이의 관계를 나타내는 에지들(E)의 세트로 3D 화소 또는 3D 화소 그룹들을 나타내는 v ∈ V인 그래프로 표현될 수 있다. 그래프 "G = (V, E)" 및 노드들(V)의 서브 세트로서 소스 정점들(S)의 세트가 주어지면(S⊆V), "그래프 운행"은 종료 기준이 만족될 때까지(예를 들어, V내의 모든 정점들이 방문될 때까지), 소스 정점들(S)로부터 그래프의 에지들(E)을 따르는 다른 정점들로 "워킹(walking)"한다고 말할 수 있다.
BFS(Breadth First Search) 그래프 운행 알고리즘은 다음과 같이 정의될 수 있다. 그래프 "G = (V, E)"에서 2개의 정점을 u 및 v라고 할 때, u 및 v가 이웃이라는 것은 정점 u 및 정점 v를 연결하는 에지가 존재함을 의미한다. 정점 u에 대하여, "N(u)"를 u의 이웃하는 노드들의 세트라고 하자. 정점들의 세트 U에 대하여, "
Figure 112010038512464-pat00001
"라고 하자. 그래프 "G = (V, E)" 및 소스 정점들의 세트 S ⊆ V가 주어진 경우, BFS 그래프 운행 알고리즘은, 제1 반복주기(iteration) 동안에는, "N(S)"에 있는 모든 정점들이 방문되고, 제2 반복주기 동안에는 "N(N(S))"가 방문되고, 제3 반복주기 동안에는, "N(N(N(S)))"가 방문되는 등으로 그래프를 반복적으로 운행하여 수행될 수 있다. 그래프 "G = (V, E)"는 일반적으로 당해 기술 분야에 알려진 바와 같이 경계들을 검출하기 위하여 다수의 제한된 개수의 계층들상에 레이블들을 전파하는 "워터쉐드(watershed)" 알고리즘과 같은 다른 영상 처리 기법에 의해 이용될 수 있다.
디지털 영상 처리는 많은 계산을 요구한다. 예를 들어, 디지털 영상 처리는 강도높은 계산이 필요한 프로세스일 수 있다. 일반적으로 그래프 운행을 요구하는 객체 인식은 매우 강도 높은 계산이 필요할 수 있는 디지털 영상 처리의 일 예이다. 영상 분석을 위한 중요한 기술로서, 객체 인식은 무엇보다도 디지털 영상내의 객체들을 분류하는데 이용될 수 있다. 디지털 영상들은 예를 들어, 데이터베이스에 저장될 수 있다. 그러나, 당해 기술분야에 일반적으로 알려져 있는 바와 같이, 더 정확한 객체 인식 기법은 상대적으로 더욱 계산 강도가 높다.
오늘날 디지털 이미징이 수많은 애플리케이션에 널리 이용되는 상황에서, 대안적인 영상 처리 기법이 유용할 것이다.
영상을 처리하기 위하여 한정된 개수의 계층들에서 레이블들을 전파하기 위한 "정렬 격자(structured grid)"가 제공된다.
본 발명은 컴퓨팅 환경 및 컴퓨팅 시스템에 대한 영상 처리에 관한 것이고, 더욱 상세하게는, 본 발명은 영상을 처리하기 위하여 한정된 개수의 계층들에서 레이블들을 전파하기 위한 "정렬 격자(structured grid)"에 관한 것이다.
"정렬 격자"는 규칙적인 다차원 격자(일반적으로 2D 또는 3D)에서 데이터를 배열하는 메커니즘으로써 제공됨으로써 계산은 이웃 격자들로부터 획득된 정보에 따라 영상을 나타내도록 구조화된 많은 격자들을 갱신함으로써 처리될 수 있다. 일반적으로, 각 격자는 동기적으로 또는 비동기적으로 갱신될 수 있다. 격자들이 동기적으로 갱신되면, 계산은 예를 들어, 모든 격자들을 반복적으로 갱신할 수 있다. 격자들이 비동기적으로 갱신되면, 각 격자는 예를 들어 각 격자의 이웃 중 어느 것이 갱신되면 자신을 갱신할 수 있다.
광범위한 다양한 방법들이 정렬 격자 계산을 병렬적으로, 예를 들어, 멀티코어 컴퓨팅 시스템상에서 매핑(map)되도록 할 수 있다. 예를 들어, 격자들은 열로, 행으로 또는 규칙적인 청크들로 분할될 수 있다. 다른 가능성은 "멀티-격자 개선(multi-grid refinement)"을 이용하는 것이다. 멀티 격자 모델링을 위하여, 데이터를 고정 크기의 청크들로 분할하는 대신에, 격자들에 대한 여러 복사본들이 다양한 청크 단위(granulity)로 이루어질 수 있다. 큰 단위 청크(coase-grained chunks)는 더 먼 거리의 갱신을 하는데 이용될 수 있는 반면에 작은 단위 청크(fine-grained chunks)는 더 상세한 전파를 만들 수 있다.
통상적으로, 영상은 "규칙적" 데이터 배열을 가지고, 따라서 영상의 그래프 표현도 정렬 격자 계산에 적합한 규칙적 데이터 배열을 가진다. 예를 들어, 정렬 격자 계산은 무엇보다도 그래프 운행에 이용될 수 있다. 영상을 규칙적 그래프로 표현하면, 그래프의 각 정점은 격자로 모델링될 수 있고, 또는 정점들의 규칙적 청크는 격자로 모델링될 수 있다. 소스 정점들로부터 이웃 노드들로의 운행 행동은 격자 정보를 갱신함으로써 시뮬레이션될 수 있다. 그러나, 계산순서는 바뀔 수 있다. 즉, 종래의 그래프 운행에서, 각 소스 정점은 그 이웃 정점들로 직접 운행한다. 극명히 대조적으로, 정렬 격자 계산에서, 각 격자는 이웃 소스 격자에 의해 갱신될 수 있는지 확인할 수 있다.
개시된 영상 처리 기술들은 무엇보다도 종래의 기술들을 이용해서 달성될 수 있는 것보다 매우 큰 병렬성 및 확장성(scalability)을 달성할 수 있음이 인식될 것이다. 특히, 영상의 노드들 사이의 레이블들의 전파를 요구하는 영상 처리 기법들(예를 들어, 워터쉐드 알고리즘)은 개시된 영상 처리 기법에서 상당히 유용할 수 있다. 영상은 다수의 단계들로 또는 반복주기들(iterations)로 처리될 수 있다. 영상 처리의 첫 단계 동안에, 레이블이 할당된(labled) 노드(예를 들어, 소스 노드)로부터 레이블은 통상적으로 레이블이 할당되지 않은(unlabeld) 하나 이상의 다른 노드들(이하에서는, 하나 이상의 "이웃 노드들"이라 함)로 전파될 수 있다. 후속 단계에서, 레이블은 이웃 노드들에서 그 이웃 노드들로 전파될 수 있다. 단지 명확성을 위해서, 제1 노드로 전파될 수 있는 레이블을 가진(또는 레이블을 포함하는) 어떤 노드는 제1 노드의 "이웃 노드"라고 한다. 그러나, "이웃 노드"가 꼭 인접한 노드 또는 물리적으로 이웃하거나 지역적으로 인접한 노드일 필요는 없다. 영상 처리 알고리즘에 따라 다른 노드로 실질적으로 전파될 수 있는 정보를 포함하는 어떤 노드도 "이웃 노드"로 간주될 수 있다. 레이블들을 전파하는 영상 처리 기법에서, 영상의 노드들은 값들과 연관될 수 있고, 예를 들어, 각 노드는 레벨 0(zero) 및 레벨 255 사이의 레벨을 대표하는 값으로 할당될 수 있다. 할당된 값들은 레이블을 전파할 지 여부를 결정하는데 고려될 수 있으며, 이는 당업자에게 인식될 수 있다. 영상은 영상 처리를 위한 정렬 격자들에 의해 표현될 수 있다. 예를 들어, 영상은 규칙적 구조를 가진 그래프로서 표현될 수 있으며, 여기에서, 영상의 각 픽셀은 그래프에서 노드이다. 예를 들어, 그래프는 동일한 크기의 다수의 직사각형들로 분할될 수 있으며, 각 직사각형은 동일한 컬러의 픽셀들의 그룹일 수 있다.
본 발명의 일 측면에 따르면, 다수의 노드들로 표현되는 영상은 레이블이 영상의 하나의 노드에서 다른 노드로 전파될 수 있는지 여부를 결정함으로써 처리될 수 있다. 즉, 레이블이 할당된 노드들이 이웃 노드(들)로 그 레이블들을 전파할 수 있는지를 결정하는 대신에, 영상의 노드는 레이블이 할당된 하나 이상의 다른 노드들(예를 들어, 이웃 노드들)로부터 그 노드로 레이블이 전파될 수 있는지를 결정할 수 있다. 이 방법은 상당히 더 큰 병렬성 및 확장성을 허용함이 인식될 것이다. 결과적으로, 통상적으로 강도 높은 컴퓨팅 처리인 영상 처리는, 특히 오늘날 널리 퍼져있으며 넓은 범위에서 이용가능한 멀티프로세싱 또는 멀티 코어 프로세스를 이용함으로써 더 빠르고 더욱 효과적으로 수행될 수 있다.
개념적으로, 영상은 본 발명의 다른 측면에 따라 영상의 노드들 사이의 레이블들의 전파를 위해 다수의 노드들의 "정렬 격자"로서 표현될 수 있다. "정렬 격자"에서, 2 이상의 노드들이 레이블들의 전파와 관련하는 동작들을 병렬적으로(또는 실질적으로 또는 실질적으로 동시에) 수행할 수 있다. 사실, 동일한 레벨의 다수의 노드들은 레이블들의 전파와 관련하는 동작들을 병렬적으로 수행할 수 있다. 예를 들어, 영상 처리의 주어진 단계에서, 동일한 레벨에서 레이블이 할당되지 않은 다수의 노드들의 각각은 하나 이상의 이웃 노드들로부터 레이블을 전파하는지 여부를 결정할 수 있다. 이는, 그레이 스케일의 각각의 노드들이 병렬적으로 레이블들의 전파와 관련된 동작을 수행하여 더 큰 정도의 병렬성이 달성되도록 할 수 있는 것을 의미한다. 또한, "정렬 격자"는 레이블들을 전파하기 위해서 영상의 부분들을 병합하거나 영상을 분할하는 것을 요구하지 않고 병렬성을 허용함이 인식될 것이다. 영상은 당업자에게 인식될 수 있는 바와 같이, 후속하는 레벨(또는 다음 레벨)의 노드들을 반복적으로 처리함으로써 처리될 수 있다.
다수의 노드들에 의해 표현되는 영상을 처리하는 예시적인 방법으로서, 하나 이상의 노드들 사이에 레이블들을 전파함으로써, 본 발명의 일 실시예는 다음의 동작들: (a)영상의 레이블이 할당된 노드들, 저-값(low-value), 및 고-값(high-value)을 획득하는 동작, (b)적어도 하나의 레이블이 할당되지 않은 다음-값 노드(next-value node)가 있는지 결정하는 동작, (c) 레이블이 할당되지 않은 다음-값 노드 각각에 대하여, 적어도 하나의 레이블이 할당된 이웃 노드들이 있는지 결정하는 동작, (d) 레이블이 할당되지 않은 다음-값 노드 각각에 대하여, 하나 이상의 레이블이 할당된 이웃 노드들로부터 하나 이상의 레이블들을 전파하는 동작, 및 (e) 고-값이 도달될 때까지 후속하는 다음-값들에 대하여 증가시키면서 (b)동작, (c)동작 및 (d)동작을 반복하는 동작을 포함할 수 있다. 적어도 적어도 하나의 레이블이 할당된 이웃 노드들이 있는 지 결정하는 (c)동작 및/또는 하나 이상의 레이블을 전파하는 (d)동작은 본 발명의 다른 실시예에 따라, 레이블이 할당되지 않은 2이상의 다음-값 노드들에 대해 병렬적으로 수행될 수 있다. 다른 예로서, 컴퓨팅 시스템(예를 들어, 컴퓨팅 디바이스)은 전술한 영상 처리 방법을 수행하도록 동작될 수 있다. 다른 예에서, 컴퓨터 판독가능(저장) 매체는 컴퓨팅 시스템이 전술한 영상 처리 방법을 수행하도록 실행될 때 실행가능한 코드를 저장할 수 있다.
레이블이 할당된 노드들이 이웃 노드로 그 레이블들을 전파할 수 있는지를 결정하는 대신에, 영상의 노드는 레이블이 할당된 하나 이상의 이웃 노드들로부터 레이블이 전파될 수 있는지를 결정할 수 있으므로, 상당히 더 큰 병렬성 및 확장성을 얻을 수 있다. 또한, 영상을 영상의 노드들 사이의 레이블들의 전파를 위해 다수의 노드들의 "정렬 격자"로서 표현할 때, 2 이상의 노드들이 레이블들의 전파와 관련하는 동작들을 병렬적으로 또는 실질적으로 또는 실질적으로 동시에 수행할 수 있다.
본 발명은 첨부의 도면과 결합하여 다음의 상세한 설명에 희해 쉽게 이해될 것이고, 여기에서 유사한 참조 번호들은 유사한 구성 요소를 지정한다.
도 1은 본 발명의 일 실시예에 따른 영상 처리 시스템(IPS)을 나타낸다.
도 2a는 본 발명의 일 실시예에 따른 IPS에 의해 처리하기 적합한 예시적인 2차원 그래프의 일부를 나타낸다.
도 2b는 본 발명의 일 실시예에 따른 IPS에 수행될 수 있는 제1 처리 단계(또는 제1 반복주기)의 출력을 나타내는 그래프를 나타낸다.
도 2c는 본 발명의 일 실시예에 따른 IPS에 의해 수행될 수 있는 제2 처리 단계(또는 반복주기)를 나타낸다.
도 2d는 본 발명의 일 실시예에 따른 IPS에 의해 수행될 수 있는 제3 처리 단계(또는 반복주기)을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 영상의 하나 이상의 노드들 사이에 정보를 전파함으로써, 다수의 노드들에 의해 표현되는 영상 처리 방법을 나타낸다.
도 4a 및 4b는 본 발명의 일 실시예에 따른 영상의 노드들에 대해 병렬적으로 수행될 수 있는 예시적인 동작들을 나타낸다.
도 4c는 본 발명의 일 실시예에 따른 정렬 격자를 나타낸다.
도 5a는 본 발명의 일 실시예에 따른 IPS에 의해 처리될 수 있는 입력 영상을 나타낸다.
도 5b는 본 발명의 예시적인 일 실시예에 따른 레벨 1의 노드들에 대한 처리의 반복주기의 완료 후에 생성되는 그래프의 일 예를 나타낸다.
도 5c는 본 발명의 일 실시예에 따른 레벨 2의 노드들에 대해 처리의 반복주기의 완료 후에 생성되는 그래프의 일 예를 나타낸다.
도 6은 본 발명의 일 실시예에 따른 하나 이상의 노드들 사이에 다수의 레이블들을 전파함으로써, 다수의 노드들에 의해 표현되는 영상 처리 방법을 나타낸다.
도 7a는 본 발명의 일 실시예에 따른 많은 수의 동일한 레벨의 노드들이 영상 처리 방법의 다른 반복주기(또는 단계들)에서 다수의 프로세서들 및/또는 프로세싱 코어들에 의해 병렬적으로 처리되는 것을 나타낸다.
도 7b는 본 발명의 일 실시예에 따른 동일한 레벨의 다른 노드들과 병렬적으로 동일 레벨의 노드들에 대해 수행될 수 있는 예시적인 동작 세트를 나타낸다.
배경 기술 부분에서 설명한 바와 같이, 디지털 이미징은 다양한 환경 및 시스템에서 수많은 애플리케이션들에 대해 넓게 이용된다. 예를 들어, 영상 처리 기법들은 일반적으로 유용하다.
본 발명은 컴퓨팅 환경 및/또는 컴퓨팅 시스템에서 영상들을 처리하는 영상 처리 기법에 관한 것이다. 또한, 무엇보다도, 개시된 영상 처리 기법들은 종래의 기법들을 이용하여 달성될 수 있는 것보다 상당히 더 큰 병렬성 및 확장성을 달성할 수 있다. 특히, 영상의 노드들 사이의 레이블들의 전파를 요구하는 영상 처리 기법(예를 들어, 워터쉐드 또는 워터쉐드 알고리즘)은 개시된 영상 처리 기법으로부터 상당한 이점을 가질 수 있다. 당업계에 알려진 바와 같이, 영상은 많은 노드들(예를 들어, 그래프에서 노드들)에 의해 표현될 수 있다. 영상은 다수의 단계들 또는 반복주기로 처리될 수 있다. 제1 영상 처리 단계 동안, 레이블이 할당된 노드(예를 들어, 소스 노드)로부터의 레이블은 통상적으로 레이블이 할당되지 않은 하나 이상의 다른 노드들(이하에서, 하나 이상의 "이웃 노드들"이라 함)로 전파될 수 있다. 후속 단계에서, 레이블은 이웃 노드들에서 그 이웃 노드들로 전파될 수 있다. 단지 명확성을 위해서, 제1 노드로 전파될 수 있는 레이블을 가진(또는 레이블을 포함하는) 어떤 노드는 제1 노드의 "이웃 노드"라고 한다. 그러나, "이웃 노드"가 꼭 인접한 노드이거나 물리적으로 이웃하거나 지역적으로 인접한 노드일 필요는 없다. 영상 처리 알고리즘에 따라 다른 노드로 실질적으로 전파될 수 있는 정보를 포함하는 어떤 노드도 "이웃 노드"로 간주될 수 있다. 레이블들을 전파하는 영상 처리 기법에서, 영상의 노드들은 값들과 연관될 수 있고, 예를 들어, 각 노드는 레벨 0(zero) 및 레벨 255 사이를 나타내는 값으로 할당될 수 있다. 할당된 값들은 레이블을 전파할 지 여부를 결정하는데 고려될 수 있으며, 이는 당업자에게 인식될 수 있다.
본 발명의 일 측면에 따르면, 다수의 노드들로 표현되는 영상은 레이블이 영상의 하나의 노드에서 다른 노드로 전파될 수 있는지 여부를 결정함으로써 처리될 수 있다. 즉, 레이블이 할당된 노드들이 이웃 노드(들)로 그 레이블들을 전파할 수 있는지를 결정하는 대신에, 영상의 노드는 레이블이 할당된 하나 이상의 다른 노드들(예를 들어, 이웃 노드들)로부터 그 노드로 레이블이 전파될 수 있는지를 결정할 수 있다. 이 방법은 상당히 더 큰 병렬성 및 확장성을 허용함이 인식될 것이다. 결과적으로, 통상적으로 강도 높은 컴퓨팅 처리인 영상 처리는 오늘날 널리 퍼져있으며 넓은 범위에서 이용가능한 멀티프로세싱 또는 멀티 코어 프로세스를 이용함으로써 더 빠르고 더욱 효과적으로 수행될 수 있다.
개념적으로, 영상은 본 발명의 다른 측면에 따라 영상의 노드들 사이의 레이블들의 전파를 위해 다수의 노드들의 "정렬 격자"(예를 들어, 영상의 픽셀들의 정렬 격자)로서 표현될 수 있다. 당업자들은, "정렬 격자"에서, 2 이상의 노드들이 레이블들의 전파와 관련하는 동작들을 병렬적으로(또는 실질적으로 또는 효과적으로 동시에) 수행할 수 있음을 인식할 수 있을 것이다. 사실, 동일한 레벨의 다수의 노드들은 레이블들의 전파와 관련하는 동작들을 병렬적으로 수행할 수 있다. 예를 들어, 영상 처리의 주어진 단계에서, 동일한 레벨에서 레이블이 할당되지 않은 다수의 노드들의 각각은 하나 이상의 이웃 노드들로부터 레이블을 전파하는지 여부를 결정할 수 있다. 이는, 그레이 스케일의 노드들 각각이 병렬적으로 레이블들의 전파와 관련된 동작들을 수행하여 더 큰 정도의 병렬성이 달성되도록 할 수 있는 것을 의미한다. 또한, "정렬 격자"는 레이블들을 전파하기 위해서 영상을 분할하거나 영상의 부분들을 병합하는 것을 요구하지 않고 병렬성을 허용함이 인식될 것이다. 영상은 당업자에게 인식될 수 있는 바와 같이, 후속하는 레벨(또는 다음 레벨)의 노드들을 반복적으로 처리함으로써 처리될 수 있다.
영상은 영상 처리를 위한 정렬 격자로 표현될 수 있다. 예를 들어, 영상은 규직적 구조를 가지는 그래프로서 표현될 수 있으며, 여기에서 영상의 각 픽셀은 그래프에서 노드이다. 예를 들어, 그래프는 다수의 동일한 크기의 직사각형으로 분할될 수 있으며, 각 직사각형은 동일한 컬러 픽셀의 그룹일 수 있다.
본 발명의 이들 측면에 따른 실시예들은 도 1 내지 7b를 참조하여 후술된다. 그러나, 당업자는 이들 도면에 대해 제공된 상세한 설명이 설명적인 목적이며, 본 발명은 이들 실시예들을 넘어 확장될 수 있음을 쉽게 인식할 것이다.
도 1은 본 발명의 일 실시예에 따른 영상 처리 시스템(IPS; 100)을 나타낸다. IPS(100)는 예를 들어, 실행가능 컴퓨터 코드를 실행하도록 동작할 수 있는 컴퓨터 시스템(예를 들어, 컴퓨터)로서 제공될 수 있다. 예를 들어, 컴퓨터 시스템으로서, IPS(100)는 하나 이상의 프로세서 또는 프로세싱 코어("코어"), 및 휘발성 및 비휘발성 메모리를 포함하는 메모리(도시되지 않음)를 포함할 수 있음은 당업자에게 쉽게 인식될 것이다.
도 1을 참조하면, IPS(100)는 입력 데이터(또는 입력 영상)(102)를 수신할 수 있고(또는 수신하도록 동작할 수 있고) 입력 데이터를 처리하여 출력 데이터(또는 출력 영상)(104)를 제공할 수 있다. 일반적으로, 입력 데이터(102) 및 출력 데이터(104)를 포함하는 데이터는 당업계에 알려진 바와 같이 컴퓨터 판독가능 저장 매체(예를 들어, 메모리, 하드 디스크)에 저장될 수 있다. 입력 데이터(102)는 처리될 영상(또는 입력 영상(102))을 대표할 수 있고, 출력 데이터(104)는 처리된 영상(또는 출력 영상(104))을 대표할 수 있다. 처리중인 입력 영상(102)은 당업계에 알려진 바와 같이, 예를 들어, 2차원 또는 3차원 디지털 영상일 수 있다. 통상적으로, 입력 데이터(102)는 다수의 노드를 포함하는(또는 다수의 노드로 표현될 수 있는) 영상을 대표한다. 노드들은 예를 들어, 도 1에서 예시적인 입력 데이터(102a 또는 102b)에 의해 표현되는 2D 및 3D 그래프들과 같은, 2D 또는 3D 공간에서 그래프의 일 부분일 수 있다.
더욱 상세하게는, IPS(100)는 한 개 이상의 입력 영상 노드들 사이에 정보를 전파함으로써 (입력 데이터(102)로 표현되는) 입력 영상을 실질적으로 처리하도록 동작할 수 있다. 당업자에게 인식될 수 있는 바와 같이, 정보는 예를 들어, 하나 이상의 규칙들에 따라 그리고/또는 하나 이상의 조건들이 만족됨에 따라, 노드들 사이에 전파될 수 있다. 예를 들어, 규칙들 및/또는 조건 데이터(106)는 또한 입력으로서 제공되어 IPS(100)에 의해 수신될 수 있다. 즉, IPS(100)는 노드들 사이에 정보를 전파함으로써 다수의 노드들에 의해 표현되는 입력 영상(102)를 처리하도록 동작될 수 있다. 노드는 영상(102)의 노드들 사이에서 전파될 정보(또는 데이터)와 관련되거나 전파될 정보(또는 데이터)를 포함할 수 있다. 정보(예를 들어, 레이블)는 예를 들어, 하나 이상의 특성을 가지는 것과 같이 노드를 효과적으로 식별하는데 이용될 수 있다(예를 들어, 노드는 경계 노드로서 레이블에 의해 효과적으로 식별될 수 있다). 예시적인 입력 영상(102a)을 참조하면, 노드 A(102a1)는 다른 노드들로 전파될 수 있는 정보를 포함할 수 있다. IPS(100)에 의해 수행되는 영상 처리의 결과로서, 노드 A(102a1)의 정보는 출력 영상(104)으로서 도시된 바와 같이, 노드 B 및 노드 C(104b 및 104c)로 전파될 수 있다.
더 자세히 설명하기 위해서, 도 2a는 본 발명의 일 실시예에 따라 IPS(100)에 의해 처리하기에 적합한 예시적인 2차원 그래프(200)의 일부를 나타낸다. 그래프(200)는 예를 들어, 도 1에 도시된 입력 영상(102a)을 대표할 수 있다. 도 2a를 참조하면, 1에서 25까지 번호가 매겨진 25개의 노드들이 도시된다. 예시적인 2차원 그래프(200)에서, 노드 7 및 노드 19만이 정보를 가진다. 그러나, 이 정보는 그래프(200)가 처리될 때 노드 7에서 노드 1, 노드 3, 노드 4, 노드 5 및 노드 6 및 노드 13으로 실질적으로 전파될 수 있다. 유사하게, 노드 19의 정보는 노드 13, 노드 18, 노드 20, 노드 24 및 노드 25로 실질적으로 전파될 수 있다. 그래프(200)의 에지들은 예를 들어, (도 1에 도시된) 규칙들 및 조건들(106)에 기초하여 정의될 수 있다.
전술한 바와 같이, 그래프(200)는 IPS(100)(도 1에 도시됨)에 의해 처리된 입력 영상을 나타낼 수 있다. 도 2b는 본 발명의 일 실시예에 따라 IPS(100)에 의해 처리될 수 있는 영상 처리의 제1 처리 단계(또는 제1 반복주기)의 출력을 대표하는 그래프(210)를 나타낸다. 더욱 상세하게는, 도 2a에 도시된 그래프(200)를 처리할 때, IPS(100)는 그래프(200)의 각 노드(노드 1에서 노드 25)에 대해, 그 이웃 노드들로부터 정보를 전파함으로써 노드의 정보를 갱신할 지 여부를 결정할 수 있다.
도 2b를 참조하면, 개념적으로, 노드 1 내지 노드 25의 각각은, 노드들이 정보를 가진 하나 이상의 이웃 노드를 가지는지 여부를 독립적으로 결정할 수 있다. 예를 들어, 사실상, 노드들(노드 1, 노드 3, 노드 4, 노드 5, 노드 6 및 노드 13)은 이 노드들에 전파될 수 있는 정보를 가진 이웃 노드, 즉, 노드 7를 별개로 그리고 독립적으로 각각 결정할 수 있으며, 이 노드들은 노드 7로부터 그들 자신으로 그 정보를 별개로 그리고 독립적으로 전파할 수 있다. 유사하게, 노드들(노드 13, 노드 18, 노드 20, 노드 24 및 노드 25)는 노드 19의 정보를 독립적으로 그리고 개별적으로 그들 자신으로 전파할 수 있다. 종종 "소스" 노드들이라고도 하는 노드 7 및 노드 13의 관점으로부터 정보를 실질적으로 전파할 수 있는 종래 기술과 극명하게 대비되는 점은, IPS(100)가 모든 노드 각각의 관점으로부터 정보를 효과적으로 전파할 수 있다는 점이다. 결과적으로, 노드, 예를 들어, 노드 8은 이용가능한 규칙들에 따라 정보를 전파하지 못하거나 전파할 수 없더라도, 노드 8은 이웃 노드에 대해 확인할 수 있다(예를 들어, 노드 8은 그래프(210)에서 다른 노드로 "연결"되지 않으므로, 정보는 노드 8로 전파될 수 없다).
그러나, 각 노드에 대해 수행되는 동작들은 병렬적으로 또는 실질적으로 동시에 수행될 수 있음이 인식될 것이다. 즉, 그래프(210)에 대해, 25개의 별개의 동작들은, 각 노드에 대해 하나씩, 병렬적으로 수행될 수 있다. 개념적으로, 이는 그래프(210)의 그 노드가 이웃 노드를 가지는지 그리고/또는 그 노드가 이웃 노드를 가지는 것으로 결정하면 이웃 노드로 그 정보를 전파하는지 여부를, 각 노드가 그래프(210)의 다른 노드들와, 병렬적으로 결정할 수 있음을 의미한다.
정보가 이전 단계 또는 반복주기에서 적어도 하나의 노드에 의해 전파되는 한, 그래프(210)의 각 노드는 이웃 노드로부터 정보를 전파하는지 여부를 조사하는 것을 실질적으로 계속할 수 있다. 더 상세하게 설명하기 위하여, 도 2c는 본 발명의 일 실시예에 따라 IPS(100)에 의해 처리될 수 있는 처리의 제2 단계 또는 반복주기를 나타낸다. 도 2c를 참조하면, 처리의 제2 단계 또는 반복주기에서, 노드 4는 실질적으로 그 정보를 노드 3으로 전파한다. 이 정보는 도 2b에 도시된 처리의 제1 단계 또는 반복주기에서 노드 7로부터 노드 3에 의해 미리 전파되었다. 도 2b에 도시된 처리의 제1 단계 또는 반복주기에서, 노드 4는 노드 3으로부터 어떤 정보도 전파하지 않지만, 처리는 제2 단계로 계속하거나 반복한다. 제2 단계에서, 노드 4가 정보를 가지는 이웃 노드 즉, 노드 3을 가지는지를 결정하고 그 정보를 노드 3으로부터 자신에게로 전파할 수 있다. (도 1에 도시된) 규칙들 및/또는 조건들(106)은 예를 들어, 노드 1, 노드 6 및 노드 13으로부터 노드 7의 갱신을 허용하지 않는데 이용될 수 있다.
유사하게, 프로세스의 제3 단계 또는 반복주기에서, 노드 5는 노드 4가 노드 3으로부터 정보를 획득한 후에 노드 4로부터 정보를 실질적으로 전파할 수 있다. 도 2d는 본 발명의 일 실시예에 따른 IPS(100)에 의해 처리될 수 있는 처리의 제3 단계 또는 반복주기를 나타낸다. 이 처리는 이전의 단계 또는 반복주기에서, 어떤 노드도 정보를 전파하지 않은 것으로 결정될 때까지 계속할 수 있다. 예를 들어, 제4 반복주기의 처리 후에, 어떤 정보도 노드들 중 어떤 노드로 전파될 수 없으며, 처리는 완료될 수 있다. 당업자는 노드들 중 어떤 노드가 갱신되었는지 여부의 결정은, 예를 들어, 전역 변수(global variable)를 이용하여 수행될 수 있음을 쉽게 알 것이다. 또한, 프로세스의 적어도 2개의 단계 또는 반복주기(예를 들어, 현재 및 이전의 반복주기)에 대한 노드의 상태가 저장될 수 있다. 더욱이, 당업자는 IPS(100)는 개념적으로 영상을 처리하기 위해 "정렬 격자" 또는 "정렬 격자 계산"을 이용할 수 있음을 인식할 것이다. 특히, "정렬 격자"는 다양한 BFS(Breadth First Search) 그래프 운행 알고리즘을 구현하는데 매우 적합하다.
도 3은 본 발명의 일 실시예에 따른 영상의 하나 이상의 노드들 사이에 정보를 전파함으로써, 다수의 노드들로 표현되는 정보를 처리하는 방법(300)을 나타낸다. 방법(300)은, 예를 들어, 도 1에 도시된 IPS(100)에 의해 수행될 수 있다.
도 3을 참조하면, 초기에, 영상의 각 노드는 그 이웃들(또는 이웃 노드들)로부터 정보를 전파함으로써 그 자신을(또는 노드와 관련된 정보를) 갱신할 지 여부를 결정한다(302). 각 노드는 다른 노드들로부터 독립적으로 그리고 별개로 이 결정을 할 수 있다(또는 이 결정은 각 노드를 위해서 이루어질 수 있으며, 또는 이 결정은 다른 노드들을 위해서 이루어질 수 있다). 더욱이, 각 노드는 병렬적으로, 또는 다른 노드들과 실질적으로 또는 효과적으로 동기하여 또는 동시에 이 결정을 할 수 있다. 예를 들어, 다수의 결정들은 도 3에 도시된 결정(304a 및 304b)에 의해 제안된 바와 같이 별개로 그리고 독립적으로 이루어질 수 있으며, 결정(304a 및 304b)의 결과에 따라서, 각 노드는 동작들(306a 및 306b)에 도시된 바와 같이, 이웃 노드들로부터 정보를 전파함으로써, 다른 노드로부터 별개로 그리고 독립적으로 그 자신(또는 그 정보)을 갱신할 수 있다. 동작들(306a 및 306b)은 병렬적으로, 또는 다른 노드들과 실질적으로 또는 실질적으로 동시에 또는 다른 노드들과 동시에 이루어질 수 있다. 그 후에, 영상의 처리를 종료하는 것으로 결정된다(308). 일반적으로, 이 결정(308)은 예를 들어, 노드들이 동기적으로 또는 비동기적으로 갱신되는 지 여부에 따라 하나 이상의 기준에 기초하여 이루어질 수 있다. 노드들이 비동기적으로 갱신되면, 이 결정(308)은 노드들에 의해 다양한 기준에 따라 이루어질 수 있다. 노드들이 동기적으로 갱신되면, 이 결정(308)은 예를 들어, 어떤 노드가 다른 노드들과 독립적으로 그리고 별개로 각 노드에 의해 갱신되었는지 여부에 기초하여 (예를 들어, 이웃 노드들로부터 정보를 전파함으로써 노드가 그 자신을 갱신한 후 어떤 노드에 의해 설정될 수 있는 전역 변수를 확인함으로써) 이루어질 수 있다. 대안적으로, 이 결정(308)은 한 번 이루어질 수 있다. 어떤 경우에, 영상의 처리를 종료하지 않는 것으로 결정되면(308), 방법(300)은 각 노드에 대해, 하나 이상의 노드 이웃들(또는 노드의 이웃 노드들)로부터 정보를 전파함으로써 그 노드를 갱신하는지 여부를 결정하는 단계로 진행한다(302). 방법(300)은 영상 처리를 종료하도록 결정될 때까지(308), 전술한 바와 같은 유사한 방식으로 계속될 수 있다. 정보가 다수의 이웃 노드들로부터 전파될 수 있으면, 전파의 순서가 결정되고 정보는 결정된 순서에 따라 전파될 수 있다. 일반적으로, 다수의 이웃 노드들로부터의 정보는 어떤 식으로 생각된 적절한 방식으로 전파될 수 있다(예를 들어, 순서에 기초한 전파, 하나 이상의 선택된 이웃들로부터의 전파 및 하나 이상의 다른 이웃들로부터의 정보의 무시).
상술한 바와 같이, (도 3에 도시된) 방법(300)은 병렬 처리 애플리케이션들에 특히 적합하다. 더욱 상세하게는, 그 영상 처리의 각 반복주기 또는 단계에서, 영상의 각 노드에 대한 동작들은 본 발명에 따라 병렬적으로 처리될 수 있다. 더 상세하게 설명하기 위하여, 도 4a는 본 발명의 일 실시예에 따라 멀티 프로세서들 및/또는 프로세싱 코어들(400)에 의해 병렬적으로 처리되는 다수의 노드들을 나타낸다. 노드들(402)은, 예를 들어, 도 3에 도시된 방법(300)에 의해 처리되는 영상의 노드들을 나타낸다. 도 4a를 참조하면, 영상 처리 방법의 반복주기에서, 영상의 각 노드(402)와 관련된 동작들은 프로세서 또는 프로세싱 코어(400A)에 의해 병렬적으로 수행될 수 있다. 예를 들어, 영상 처리의 주어진 반복주기 또는 단계에서, 노드(402A)와 관련된 동작들은 다른 프로세서 또는 프로세싱 코어(400B)에서 실행된 다른 노드(402B)와 관련된 동작들과 병렬적으로 프로세서 또는 프로세싱 코어(400A)에서 실행될 수 있다. 이는 많은 N개의 노드들에 의해 표현되는 영상을 처리하는 주어진 반복주기 또는 단계에서, 동일한 N개의 프로세서 또는 프로세싱 코어들이 서로 병렬적으로 그래프의 모든 N개의 노드들과 관련된 동작을 효과적으로 수행하기 위해 이용될 수 있음을 의미한다.
도 4b는 본 발명의 일 실시예에 따른 영상의 노드들에 대해 병렬적으로 수행될 수 있는 예시적인 동작(450)을 나타낸다. 예를 들어, 동작 450은 도 4b에 도시된 노드들 452 중 각각에 의하여 병렬적으로 수행될 수 있다. 개념적으로, 동작 450은 노드의 관점에서 또는 노드에 의해 수행될 수 있다. 도 4b를 참조하면, 노드는 노드가 이웃 노드를 가지는지 여부를 결정할 수 있다(452). 노드가 이웃 노드를 가지지 않는 것으로 결정하면(452), 노드는 어떤 부가 동작을 수행할 필요가 없거나 또는 동작들(450)이 끝날 수 있다. 반면에, 노드가 정보를 가진 적어도 하나의 이웃 노드를 가진다고 결정하면(452), 노드는 하나 이상의 규칙들 및/또는 조건들이 하나 이상의 이웃 노드들로부터 정보의 전파를 허용하는지 여부를 결정할 수 있다(454). 노드는 그 정보를 전파하지 않도록 결정하면(454), 노드는 어떤 부가적인 동작을 수행할 필요가 없거나 동작들(450)이 끝날 수 있다. 그렇지 않으면, 노드는 정보를 가진 하나 이상의 노드들로부터 정보를 전파할 수 있다(456). 노드는 그 동작들(또는 처리)가 끝나는지 여부를 일반적으로 결정할 수 있으며(458), 동작들(450)이 끝날 수 있다. 전술한 바와 같이, 이 결정(458)은 예를 들어, 어떤 노드들에서 변화가 없음을 나타내는 전역 변수에 기초하여 이루어질 수 있다.
본 발명이 그래프 운행의 전파 동작을 시뮬레이션하기 위하여 정렬 격자들을 이용함으로써 영상들에 대한 그래프 운행을 병렬화하기 위해 이용될 수 있음이 인식될 것이다. 종래의 그래프 운행 알고리즘에서, 소스 노드들은 그들 근처의 이웃들로 정보를 적극적으로 전파한다. 이에 비해, 정렬 격자 계산(또는 계산 모델)에서, 소스 노드들은 수동적이 되고, 각 노드는 정보가 어떤 소스들에 의해 각 노드로 전파될 수 있는지 여부를 확인할 수 있다. 필수적으로, 계산은 반전된다. 도 4c를 참조하면, 격자 7 및 격자 19는 그들의 이웃 픽셀들로 정보를 전달할 소스 노드들이다. 종래의 그래프 운행 알고리즘들에서, 격자 7은 격자들 1, 2, 3, 6, 8, 11, 12 및 13으로 정보를 전송할 것이고, 격자 19는 격자들 13, 14, 15, 18, 20, 23, 24 및 25로 정보를 전송할 것이다. 격자 7 및 격자 19는 그들의 이웃들로 병렬적으로 정보를 전송할 수 있지만, 각 소스 노드에 대해 아직 8개의 직렬적 전파 계산들이 있다. 비교하면, 정렬 격자 계산에서, 모든 25개의 격자들은, 그 격자들이 그들의 이웃들에 의해 갱신될 수 있는지 여부를 보기 위하여 그들 근처의 이웃들을 확인할 수 있다. 예를 들어, 하나의 전파 계산은 모든 격자들의 상태를 갱신하기에 충분하다. 정렬 격자는 BFS 그래프 운행을 위해 이용될 수 있다.
BFS 그래프 운행의 행동을 시뮬레이션하기 위한 정렬 격자 계산은 아래의 같이 요약된다. 변수 "i"는 정렬 격자 반복주기에 대한 카운터이다. P0, P1, ..., Pi,...는 반복주기 i 후의 전파 결과들이다. 초기에, P0는 S로 설정된다. 즉, 정보는 소스 노드 세트 S에 있는 픽셀들에 저장되기만 한다. 모든 다른 픽셀들에 대한 정보는 비어 있다. 라인 3내지 라인 9에서, 정렬 격자 계산들에 의한 각 픽셀의 상태는 반복적으로 갱신될 수 있다. 변수 "changed"는 모든 프로세서들에 의해 액세스될 수 있는 전역 변수이다. 어떤 픽셀에 어떤 변화가 있으면, 젼역 변수 "changed"는 참(true)으로 설정될 것이다. 그렇지 않으면, 그것은 거짓(false)으로 남을 것이다. 어떤 특정 픽셀이 갱신되었는지를 알 필요는 없다. 어떤 픽셀이 갱신되었는지 여부를 아는 것으로 충분하다. 예를 들어, 전역 변수 "changed"를 설정하기 위하여 동기화 또는 로킹(locking)을 할 필요는 없다. 라인 6에서, 각 픽셀의 상태를 갱신하는 계산은 모든 이용가능한 프로세서들로 분배될 수 있다. 각 픽셀상의 계산은 동일하고 독립적이므로, 프로세싱 작업은 모든 이용가능한 프로세서들에 균등하게 분배될 수 있다. 어떤 픽셀에도 변화가 없으면, 정렬 격자 계산은 라인 9에서 중단될 것이며, 최신의 결과들은 라인 10으로 반환된다.
Figure 112010038512464-pat00002
위에 도시된 박스에서, I는 입력 영상이고, S는 정보가 전파될 수 있는 소스 노드들의 초기 세트를 나타낸다. R은 하나의 픽셀에서 다른 픽셀로 정보가 전파될 수 있는지 여부를 나타내는 규칙들을 나타내고, N은 픽셀의 이웃들의 정의를 나타낸다. P는 각 픽셀에 저장된 적정한 정보를 가지는 최종 영상을 나타낸다.
아래에 도시된 Check_Update 서브 루틴은, 각각의 정렬 격자 계산 동안, 각 픽셀에서 행해질 수 있는 예시적인 계산들을 제공한다. 모든 프로세서들은 각 픽셀에 대한 상태를 병렬적으로 갱신하기 위해 이 서브 루틴을 이용할 수 있다. 라인 1 내지 라인 5에서, 서브 루틴은 그 이웃들 N(p)로부터 픽셀 p로 전파될 수 있는 어떤 정보가 있는지를 검증한다. 라인 3에서, 정보의 전파가 유효하다는 것은, 이웃 픽셀 q 및 p가 그 전파 규칙 R(q, p)을 만족하고, q에서 정보는 비어 있지 않음을 의미한다. 라인 6 내지 8에서, p로 다수 개의 정보 전파가 필요한 경우, 정보 전파의 순서는 첫번째로 결정될 수 있고, 그런 다음 전파는 우리가 특정한 순서에 따라 수행될 수 있다. 우리는 전파를 하기 전에 전파 순서를 결정할 수 있으므로, 어떤 레이스 컨디션(race condition)도 여기에서 일어나지 않는다. 라인 9 및 10에서, 정보를 p로 전파할 수 있는 단 하나의 이웃이 있으면, 그것은 즉시 수행된다. 라인 11 및 12에서, 우리는 픽셀 p의 상태(status)를 확인한다. p의 상태가 변하면, 우리는 전역 변수 "changed"를 참으로 설정한다.
Figure 112010038512464-pat00003
종래의 병렬 BFS 그래프 운행 알고리즘들과 비교해서, 여러 이점들은 그래프 운행 행동을 시뮬레이션하기 위해 정렬 격자들을 적용함으로써 실현될 수 있다. 이러한 이점 중 하나는 상대적으로 더 큰 정도의 병렬화를 달성하는 점이다. 기존의 병렬 BFS 그래프 운행 알고리즘에 대해, 소스 노드들에 대한 계산은 병렬적으로 수행될 수 있다. 그러나, 정렬 격자 계산에서, 소스 노드들로 연결하는 모든 노드들은 병렬적으로 갱신될 수 있다. 일반적으로, 소스 노드들의 개수는 그들이 연결되어 있는 노드들의 개수보다 훨씬 작다. 따라서, 정렬 격자들 계산은 더 큰 병렬화를 표현할 수 있다. 도 4c를 참조하면, 예를 들어, 격자 7 및 격자 19는 병렬적으로 정보를 전파할 수 있는 경우 2-웨이 병렬화(2-way parallelism)를 달성한다. 정렬 격자들 계산을 위하여, 격자들 1, 2, 3, 6, 8, 11, 12, 13, 14, 15, 18, 20, 23, 24 및 25는 그들의 상태를 병렬적으로 갱신할 수 있다. 이는 15-웨이 병렬화이다. 이는 나이브 2-웨이 병렬화(naive 2-way parallelism) 방법보다 더 크다.
그래프 운행 행동을 시뮬레이션하기 위한 정렬 격자들을 적용하는 또 다른 이점은 더 나은 확장성 및 로드 밸런싱이다. 그래프 운행 알고리즘들에 대하여, 일반적으로 정보를 전파하기 위하여 상이한 소스 노드들 중 각각 하나에 대해 얼마나 많은 계산이 요구되는지 미리 알려지지 않는다. 따라서, 상이한 프로세서들에 대해 작업 부하들에 균형을 이루는 것은 어렵다. 종래의 분산된 그래프들은 균형있는 그래프 부분들을 정의하는데 어려움을 격는다. 태스크 큐 방법들(task queue approaches)은 더 나은 밸런싱 성능을 가질 수 있다. 그러나, 태스크 수집 및 재분배는 비용이 많이 들 수 있다. 정렬 격자들에 대하여, 모든 격자들에 대한 계산들은 모두 동일할 수 있다. 예를 들어, 작업 부하는 더 쉽게 균형이 이루어질 수 있다. 더욱이, 더 많은 프로세서들이 이용가능하면, 더 많은 격자들은 병렬적으로 갱신될 수 있다. 그래서, 확장성은 프로세서들의 개수에 선형적이다.
본 발명의 또 다른 이점은, "레이스 컨디션들"이 제거될 수 있다는 것이다. 여러 소스 노드들이 동일한 격자에 대해 정보를 전파하면, 격자의 갱신 순서는 일반적으로 비결정적이며, 레이스 컨디션들이 일어날 수 있으며, 고려되어야 한다. 그러나, 정렬 격자 계산을 위하여, 격자가 스스로 갱신하기 전에, 격자는 자신으로 정보를 전송할 수 있는 모든 이웃들을 확인하고 스스로 액세스 순서를 결정할 수 있어서, 어떤 레이스 컨디션들도 일어나지 않을 것이다. 도 4c를 다시 참조하면, 도 4에서 격자 13에 대해, 격자 7 및 격자 19 둘다 정보를 격자로 전파할 수 있으며, 그래서 양 측으로부터 정보를 처리하는 방법을 결정할 수 있다.
다음의 설명은 직렬 그래프 운행 알고리즘, 기존의 병렬 그래프 운행 알고리즘, 및 정렬 격자 방법의 계산 복잡도를 비교한다. n개의 소스 노드들이 있다는 가정하에서, 각 노스 노드로부터 정보는 각각 a1, a2, ..., an 픽셀들로 각각 전파될 것이다. 직렬 알고리즘의 계산 복잡도는
Figure 112010038512464-pat00004
이다. p개의 프로세서들을 가진 기존의 병렬 그래프 운행 알고리즘에 대하여, 작업 부하는 제어하기 힘들기 때문에, 각 프로세서는 n/p 소스 노드들을 처리하는 것으로 가정한다. 계산 복잡도는
Figure 112010038512464-pat00005
이고, 프로세서들의 상한(upper bound) 개수는 n이다. 정렬 격자들 계산을 위해서, 격자들의 개수(영상에서 픽셀들의 개수)를 m이라고 하고, 소스 노드 i가 전파할 수 있는 최대 거리는 di이고, 계산 복잡도는
Figure 112010038512464-pat00006
이고, 지금 p는 m까지 크기를 조정할 수 있다고 하자. m개의 프로세서가 있다고 가정하면, 병렬 그래프 운행에 비하여 병렬적 정렬 격자 계산을 위한 성능은
Figure 112010038512464-pat00007
대비
Figure 112010038512464-pat00008
이다. 통상
Figure 112010038512464-pat00009
이므로, 정렬 격자 방법은 병렬 그래프 운행 방법에 비하여 큰 이점을 가진다.
한정된 개수의 레이어들상에서 레이블 전파
다시 도 1을 참조하면, IPS(100)는 하나 이상의 노드들 사이에 레이블들을 전파함으로써 입력 영상(102)을 처리하도록 동작할 수 있다. 이런 타입의 프로세싱에서, 영상의 각 노드는 어떤 값(또는 레벨), 예를 들어, 그레이 레벨(예를 들어, 픽셀에 대응하는 그레이 레벨 0부터 255)과 연관될 수 있다. 이 값들은, 예를 들어, 종래 기술로 일반적으로 알려진 바와 같이, 워터쉐드 경계 검출 알고리즘들에 대해 이용될 수 있다. 또한, 이웃 노드의 레이블들은 레이블이 할당되지 않은 노드로 전파될 수 있다.
더 상세하기 설명하기 위하여, 도 5a는 본 발명의 일 실시예에 따른 IPS(100)에 의해 처리될 수 있는 입력 영상(500)을 나타낸다. 도 5a를 참조하면, 입력 영상(102)의 부분은 다수의 노드들의 다양한 값들(예를 들어, 레벨들)을 가진 그래프로 표현된다. 더 상세하게는, 도 5a에서 노드들 N1, N2, N3, N4 및 N5는 값이 1인 노드들로 도시되고, 노드들 N6, N7, N8 및 N9는 값이 2인 노드들로 도시되고, 노드 N10은 값이 3인 노드로 도시된다. 입력 영상(500)에서, 2개의 노드들이 초기에 레이블이 할당되어 있다. 즉, 노드 NA는 제1 레이블(레이블 A)을 가지거나 제1 레이블(레이블 A)로 레이블이 할당되어 있고, 노드 NB는 제2 레이블(레이블 B)을 가지거나 제2 레이블(레이블 B)로 레이블이 할당되어 있다. 예를 들어, 노드 NA 및 노드 NB는 처리를 위한 입력으로서 초기에 선택되거나 수신된 노드들을 나타낼 수 있다. 예를 들어, 노드 NA 및 노드 NB는 당해 기술 분야에 일반적으로 알려져 있는 워터쉐드 알고리즘의 "국부적 최소" 노드들일 수 있다. 노드 NA 및 노드 NB는 또한 하나의 값(예를 들어, 레벨)을 가질 수도 있다. 예를 들어, 워터쉐드 알고리즘의 "국부적 최소" 노드는 통상적으로 낮거나 국부적으로 최소인 값을 가진다. 예를 들어, 노드 NA 및 노드 NB는 다른 노드들에 레이블들을 전파하기 위한 종래의 워터쉐드 알고리즘에 의해 이용되는 레벨 0의 노드일 수 있다.
또한, 저 값 및 고 값(또는 레벨)은 프로세스에 대한 입력으로서 제공될 수 있다. 저-값("Low-Value")은 예를 들어, 경계 노드들을 검출하는 워터쉐드 알고리즘을 위해 일반적으로 이용되는 바와 같이, 노드 NA 및 노드 NB의 최소값 또는 그래프에서 노드들 중 어느 하나의 최소 값(예를 들어, 최소 그레이 레벨)에 대응할 수 있다. 유사하게, 고-값("High-value")은 예를 들어, 그래프에서 노드들의 어느 하나의 최대 값(예를 들어, 최대 그레이 레벨)을 나타낼 수 있다. 일반적으로, 한정된 범위의 값들이 고려된다.
노드 NA 및 노드 NB로부터 다른 노드들로 레이블들을 전하는 종래 기술과 달리, (도 1에 도시된) IPS(100)는 실질적으로 각 노드들이 레이블들을 그들 자신에게로 전파하도록 허용한다. 더 상세하게는, 프로세스의 각 반복주기 또는 단계에서, 동일한 값의 레이블이 할당되지 않은 노드들(예를 들어, 동일한 레벨에 있는 노드들)은 그 노드들이 이웃 노드로부터 레이블을 전파할 수 있는 지 여부를 독립적이고 별개로 결정할 수 있다. 예를 들어, 도 5a를 참조하면, 하나의 반복주기 또는 단계에서, 레이블이 할당되지 않은 값이 1인 노드들 각각은, 즉, 노드들 N1, N2, N3, N4 및 N5는 그 노드들이 이웃에 있는 레이블이 할당되어 있는 노드들을 가지는 지 여부를 독립적이며 별개로 결정할 수 있다. 결과적으로, 레이블이 할당되어 있지 않는 값 1인 노드들 N1, N2, N3 및 N5(N4는 아님)은 그 노드들이 이웃의 레이블이 할당되어 있는 노드, 즉, 노드 N4를 가지는지 여부를 결정할 수 있고, 하나 이상의 규칙들에 따라 그리고/또는 하나 이상의 조건이 충족될 때, 노드 NA로부터 레이블 A를 전파할 수 있다. 특히, 노드 N5에 의한 레이블 A 및/또는 레이블 B의 전파는 예를 들어, 다수의 레이블들이 하나의 노드에 전파될 때 다양한 워터쉐드 알고리즘들이 다수의 레이블들을 그 노드에 할당할 수 있는 것과 같이, 특정 알고리즘에 따를 수 있거나 다수의 레이블 중 하나를 무작위적으로 전파할 수 있다. 일반적으로, 노드는 2개의 상이한 레이블들이 그 노드로 전파될 수 있을 때 경계 노드로서 표시될 수 있다.
도 5b는 본 발명의 일 실시예에 따른 레벨 1의 노드들에 대해 프로세스의 단계의 완료 후에 결과로 생기는 예시적인 그래프(520)를 나타낸다. 도 5b를 참조하면, 값이 1인 모든 노드들은 그들의 이웃 노드로부터 전파된 레이블들을 가진다. 이 예시적인 실시예에서, 노드 N5는 레이블 A 및 레이블 B 둘다를 전파하고, 경계 노드로 표시될 수 있다.
어쨌든, 다음의 프로세스가 레벨 1인 노드들에 대해 수행되거나 레벨 1인 노드들에 의해 실질적으로 수행되며, IPS(100)에 의해 수행되는 절차는 일반적으로 다음 반복주기 또는 단계로 이동하여, 여기에서 다음 값을 가지는 노드들(또는 Next-Value nodes)은 이전의 반복주기 또는 단계에서 이전 값을 가지는 노드들에 의해 수행된 것과 동일한 프로세스를 수행한다. 예를 들어, 값이 1인 노드들을 처리한 후에 값이 2인 노드들이 다음 반복주기에서 처리될 수 있다. 도 5b를 참조하면, 레벨이 2인 레이블이 할당되어 있지 않는 노드들 중 각각 하나는, 즉, 노드들 N6, N7 및 N9는 레이블이 할당된 이웃 노드가 있는지 독립적이며 별개로 결정할 수 있고, 레이블을 그에 따라 전파할 수 있다. 도 5c는 본 발명의 일 실시예에 따른 레벨 2의 노드들에 대한 프로세스의 반복주기 또는 단계의 완료 후에 결과로서 생기는 예시적인 그래프(540)를 나타낸다.
IPS(100)는 고-값에 도달될 때까지 노드들을 처리하고 다음 레벨의 노드들(예를 들어, 레벨 3의 노드들)에 대해 레이블들을 반복적으로 전파한다. 즉, IPS(100)는 저-값과 고-값 사이에서 노드들을 반복적으로 처리하도록 동작될 수 있다. 다시, 저-값과 고-값은 입력으로서 수신될 수 있고, 예를 들어, 워터쉐드 알고리즘을 위해 이용되는 최소 값 및 최소 값이 될 수 있다.
더 상세하게 설명하면, 도 6은 본 발명의 일 실시예에 따른 하나 이상의 노드들 사이에 다수의 레이블들을 전파함으로써, 다수의 노드들에 의해 표현되는 영상을 처리하는 방법(600)을 나타낸다. 예를 들어, 방법(600)은 (도 1에 도시된) 입력 영상(102)을 처리하기 위해 IPS(100)에서 이용될 수 있다. 도 6을 참조하면, 데이터가 초기에 획득된다(602). 데이터는 영상의 복수의 선택된 레이블이 할당된 노드들(Selected Lableled Nodes, SLN)(예를 들어, 국부적 최소값), 저-값(예를 들어, 영상의 최소 그레이 레벨 또는 국부적 최소 노드들과 같은 최소 값) 및 고-값(예를 들어, 영상의 최대 그레이 레벨과 같은 최대 값)을 대표한다. 다음으로, 다음-값(Next-Value)은 제1 증분 값으로 저-값을 증가시킴으로써 결정된다(604). 일반적으로, 제1 증분 값은 양수(예를 들어, 양의 정수) 또는 0(zero)일 수 있다. 즉, 다음-값은 최대-값과 동일하거나 최대-값 이상으로 결정될 수 있다(604). 그러나, 통상적으로, 워터쉐드 알고리즘에 대해 증분된 값은 양의 정수(예를 들어, 정수 1)로 선택될 수 있다. 또한, 일반적으로 종래의 방법은 최소 레벨의 노드를 식별하기 위해 우선 큐(priority queue)를 이용한다. 그러나, IPS(100)는 우선 큐를 이용하지 않고, 저 값에서 고 값까지, 값들의 범위를 거쳐 동작될 수 있다.
어떤 경우에, 제1 증분 값에 기초하여 다음-값을 결정한 후, 다음-값이 고-값보다 큰지 여부가 결정된다(606). 다음-값이 고-값보다 크지 않은 것으로 결정되면(606), 방법(600)은 다음-값을 가진 어떤 레이블이 할당되지 않은 노드들(또는 다음-값 노드들)이 있는지 여부를 결정하는 단계로 진행한다(608). 그 후에, 레이블이 할당되지 않은 다음-값 노드 각각은 적어도 하나의 이웃 노드로부터 적어도 하나의 레이블을 전파하는지 여부를 결정할 수 있다(610). 결과적으로, 레이블이 할당되지 않은 다음-값 노드들 중 각각은 하나 이상의 이웃 노드들로부터 하나 이상의 레이블들을 전파할 수 있다(612). 각각의 결정(606), 결정(608) 및 전파(610)는 다음-값 노드들의 각각에 대해 독립적이며 별개로 수행될 수 있다. 또한, 다음-값 노드들 각각은 결정(606), 결정(608) 및 전파(610)의 하나 이상을 다음-값 노드들 중 다른 하나와 병렬적으로, 사실상 동시에 또는 동시에 수행할 수 있다. 예를 들어, 방법(600)은 특히 병렬 처리 애플리케이션에 적합하다.
도 6을 참조하면, 프로세스(600)의 제1 반복주기에서 다음-값 노드들을 처리한 후, 다음 값이 다음의 증분 값만큼 증분된다(614). 일반적으로, 다음 증분 값은 제1 증분 값과 다를 수 있으며 반복주기들 사이에 다양할 수 있다. 그러나, 워터쉐드 알고리즘에서는 동일한 증분 값(예를 들어, 정수 1)이 그레이 레벨 1과 255 사이에 실질적으로 반복하도록 이용될 수 있다. 예를 들어, 워터쉐드 알고리즘에 대해, 255 그레이 레벨들이 그레이 레벨 1에서 시작하여, 그레이 레벨 2로 진행한 다음 그레이 레벨 3으로 진행하는 등 마지막 그레이 레벨, 즉 그레리 레벨 255에 도달될 때까지 반복적으로 처리될 수 있다. 실제로, 방법(600)은 다음-값이 고-값을 초과하는 것으로 결정될 때까지 다음-값의 노드들을 반복적으로 처리하도록 계속된다. 예를 들어, 방법(600)은 입력 영상 처리를 완료하기 전에 저-값과 고-값 사이에 값들을 가진 노드들을 반복적으로 처리할 수 있다. 만일 다수 개의 레이블들이 전파될 수 있으면, 전파 순서가 결정될 수 있고 다수의 레이블들은 결정된 순서에 따라 전파될 수 있다.
전술한 바와 같이, 방법(600)은 병렬 처리 애플리케이션들에 특히 적합하다. 더욱 상세하게는, 동일한 레벨의 노드들(예를 들어, 동일한 그레이-레벨을 가지는 노드들)에 대해 수행되는 각 반복주기에서, 레이블들의 전파에 관련된 동작들은 다른 노드들과 병렬적으로 각 노드에 의해 효과적으로 수행될 수 있다. 좀 더 상세하게 설명하기 위하여, 도 7a는 본 발명의 일 실시예에 따른, 영상 처리 방법의 다른 반복주기(또는 단계)(702)에서 다수의 프로세스들 및/또는 프로세싱 코어들(700)에 의해 동일한 레벨의 다수의 노드들이 병렬적으로 처리되는 것을 나타낸다. 예를 들어, 처리 방법은 도 6에 도시된 방법(600)일 수 있다.
도 7a를 참조하면, 반복주기 I(702A)에서, 개념적으로, 레벨 I의 노드들의 각각(704A, 704B, 704C 및 704D)은 프로세서들 및/또는 프로세싱 코어들(700A, 700B, 700C 및 700D) 중 하나를 이용하여 각각 레이블들의 전파에 관련된 동작들을 병렬적으로 수행할 수 있다. 유사하게, 다음 반복주기(702B)(또는 반복주기 I+1)에서, 레벨 I+1의 노드들의 각각(706A, 706B, 706C, 및 706D)은, 프로세서들 및/또는 프로세싱 코어들(700A, 700B, 700C 및 700D)의 하나를 각각 이용하여 레이블들의 전파에 관련된 동작을 병렬적으로 수행할 수 있다. 예를 들어, 각 반복주기에서, 그 반복동안 처리되는 노드들(N)의 총 개수에 대해, 동일한 개수(N)의 프로세서들 및/또는 프로세싱 코어들(700)이 노드들에 대한 레이블들의 전파에 관한 계산들을 계산하도록 병렬적으로 동작할 수 있다.
도 7b는 본 발명의 일 실시예에 따라, 동일한 레벨의 다른 노드들과 병렬적으로 동일한 레벨의 노드들에 대해 수행될 수 있는 동작들(750)의 예시적인 세트를 나타낸다. 예를 들어, 동작들(750)은 도 7a에 도시된 노드들(704) 및/또는 노드들(706)에 대해 수행될 수 있다. 예시적인 동작들(750)은 영상을 대표하는 그래프에서 경계 노드를 검출하도록 설계된 워터쉐드 알고리즘에 특히 적합함이 인식될 것이다. 개념적으로, 동작들(750)은 노드에 의해 또는 노드의 관점으로부터 수행될 수 있다. 도 7b를 참조하면, 노드는, 노드가 레이블이 할당되지 않는 노드인지 여부를 결정할 수 있다(752). 노드는, 노드가 레이블이 할당된 노드(또는 레이블이 할당되었던 노드)라고 결정하면(752), 노드는 어떤 동작들도 수행하지 않을 수 있거나 동작들(750)이 종료될 수 있다. 그러나, 노드는, 노드가 레이블이 할당되어 있지 않은 노드인 것으로 결정하면(752), 노드는 해당 노드가 적어도 하나의 레이블이 할당된 이웃 노드를 가지는지 여부를 결정한다(754). 노드는, 노드가 어떤 레이블이 할당된 이웃 노드들을 가지지 않는다고 결정하면(754), 노드는 어떤 동작들을 수행하지 않을 수 있거나 동작들(750)이 종료된다. 반대로, 노드는, 노드가 적어도 하나의 레이블이 할당된 이웃 노드들을 가지는 것으로 결정하면(754), 노드는 해당 노드가 1 이상의 레이블이 할당된 이웃 노드를 가지는지 여부를 결정한다(756). 예를 들어, 노드가 단 하나의 레이블이 할당된 이웃 노드를 가지는 것으로 결정되면(756), 노드가 이웃 레이블 노드의 레이블을 전파한다(758). 그러나, 노드가 하나 이상의 레이블이 할당된 이웃 노드를 가지는 것으로 결정하면(758), 노드는 경계 노드로 표시될 수 있고 그리고/또는 노드는 다수의 이웃 노드들로부터 하나 이상의 레이블들을 전파할 수 있다(760). 당업자에게 인식될 수 있는 바와 같이, 행해진 동작들은 이용되는 특정 워터쉐드 알고리즘에 따를 수 있다. 동작들(750)은 하나의 이웃의 레이블이 할당된 노드로부터 레이블을 전파한 후(758) 또는 하나 이상의 레이블들이 다수의 이웃 노드들로부터 선택된 후에(760) 종료한다.
전술한 관점에서, 당업자는 병렬 UCM(Ultrametric Contour Map) 영역 추출 시스템이 BFS 운행 알고리즘에 대한 병렬 졍렬 격자에 기반하여 개발될 수 있음을 인식할 것이다. 영상 국부 최소값은 BFS 그래프 운행 알고리즘에 따라 추출된다. 상이한 레이블들은 각 국부 최소값으로 할당되고 전파된다. 워드쉐드 알고리즘을 위하여, 255개의 그레이 스케일들이 범람 작용(flooding behavior)을 시뮬레이션하기 위하여 스캐닝될 수 있다. 범람 작용을 하나의 그레이 스케일에서 시뮬레이션할 때, BFS 운행 알고리즘은 상이한 집수분지들(catchment basins)로부터 레이블들을 전파하기 위해 이용될 수 있다. 워터쉐드 경계들로부터 에지들을 추출하기 위하여, BFS 그래프 운행은 노드들 사이를 함께 연결하는 경로를 찾기 위해 이용될 수 있다. 에지 선형화는 또한 추출된 에지들을 따라 운행함으로써 달성될 수 있다. UCM 영역 추출을 위한 대부분의 계산은 BFS 그래프 운행이다. 예를 들어, BFS 그래프 운행 알고리즘을 위한 병렬적 정렬 격자들을 제안함으로써, UCM 영역 추출이 병렬적으로 수행될 수 있다. 정렬 격자 계산들은 예를 들어, 각 격자의 계산을 처리 유닛에 탑재하고, 격자를 분할하고, 격자의 각 부분의 계산을 처리부에 매핑하는 등의 방법으로, 병렬 플랫폼에 매핑될 수 있다. 분산 시스템에 대하여, "고스트(ghost)" 격자들, "더블 버퍼링(double buffering)", 또는 "멀티-격자(multi-grid)" 해법들이 적용될 수 있다.
전술한 본 발명의 다양한 측면들, 특징들, 실시예들 또는 구현예들은 별도로 또는 다양한 조합으로 이용될 수 있다. 본 발명의 많은 특징들 및 이점들은 기재된 설명으로부터 명백하며, 따라서, 첨부된 청구항들은 본 발명의 이러한 모든 특징들 및 이점들을 포함하도록 의도된다. 또한, 수많은 변형 및 변경이 당업자에게 쉽게 수행될 수 있으므로, 본 발명은 예시되고 기술된 바와 같은 정확한 구성 및 동작들에 제한되어서는 안된다. 따라서, 적당한 변형들 및 균등물들이 본 발명의 범위 내에 의존될 수 있다.

Claims (21)

  1. 컴퓨팅 시스템에서, 노드들 각각이 값과 연관되고 하나 이상의 레이블들로 레이블이 할당될 수 있는, 다수의 노드들에 의해 표현되는 영상을, 상기 영상의 하나 이상의 노드들 사이에서 다수의 레이블들을 전파함으로써 병렬 처리하는 컴퓨터로 구현된 방법으로서,
    (a) 상기 영상의 복수 개의 레이블이 할당된 노드들, 제 1 픽셀 값 및 제 2 픽셀 값을 획득하는 단계, 여기에서 적어도 하나의 레이블이 할당된 노드들은 적어도 다른 하나의 레이블이 할당된 노드들에 할당된 제2 레이블과 상이한 제1 레이블로 레이블이 할당됨;
    (b) 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드가 있는지 여부를 결정하는 단계, 여기에서, 상기 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드는 레이블이 할당되지 않으며 상기 제 1 픽셀 값의 후속하는 제 3 픽셀 값과 관련됨;
    (c) 상기 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 적어도 하나의 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 단계;
    (d) 상기 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 상기 (c)단계에서 적어도 하나의 레이블이 할당된 이웃 노드가 있는 것으로 결정되면, 하나 이상의 레이블이 할당된 이웃 노드들로부터 하나 이상의 레이블들을 전파하는 단계; 및
    (e) 상기 제 2 픽셀 값에 도달될 때까지 후속하는 제 3 픽셀 값들에 대하여 증분하면서 상기 (b)단계, 상기 (c)단계 및 상기 (d)단계를 반복하는 단계를 포함하고,
    상기 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 (c)단계 및 상기 하나 이상의 레이블들을 전파하는 (d)단계 중 적어도 하나는, 레이블이 할당되지 않은 2 이상의 제 3 픽셀 값 노드들에 대해 병렬적으로 수행되는 방법.
  2. 제1항에 있어서,
    상기 노드들은 정렬 격자로서 실질적으로 표현되고, 상기 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 (c)단계 및 상기 하나 이상의 레이블들을 전파하는 (d)단계 중 적어도 하나는, 레이블이 할당되지 않은 2 이상의 제 3 픽셀 값 노드들을 위하여 또는 상기 제 3 픽셀 값 노드들에 의하여 실질적으로 병렬적으로 수행되거나 상기 제 3 픽셀 값 노드들에 대해 병렬적으로 수행되는 수행되는 방법.
  3. 제1항에 있어서,
    상기 증분하면서 반복하는 (e)단계는, 상기 제 1 픽셀 값과 상기 제 2 픽셀 값 사이의 각각의 모든 값을 증분하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 제 1 픽셀 값과 상기 제 2 픽셀 값은 정수 값이고, 상기 증분하면서 반복하는 (e)단계는,
    상기 제 1 픽셀 값을 1씩 증분하여 초기 제 3 픽셀 값을 획득하는 단계, 및
    상기 제 2 픽셀 값에 도달될 때까지, 상기 초기 제 3 픽셀 값을 1씩 반복적으로 증분하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 제 1 픽셀 값은 상기 노드들에 할당된 최소 값을 대표하는 최소-값이고, 상기 제 2 픽셀 값은 상기 노드들에 할당된 최대 값을 대표하는 최대-값인 방법.
  6. 제5항에 있어서,
    상기 최소-값은 상기 레이블이 할당된 노드들의 최저 값인 방법.
  7. 제6항에 있어서,
    상기 레이블이 할당된 노드들은 상기 영상의 경계를 식별하는 워터쉐드 알고리즘과 연관된 하나 이상의 국부 최소값인 방법.
  8. 제5항에 있어서,
    상기 최소-값은 상기 노드들의 최저 값인 방법.
  9. 제1항에 있어서,
    동일한 레벨의 레이블이 할당되지 않은 2 이상의 노드들에 대하여, 상기 결정하는 (b)단계, 상기 결정하는 (c)단계 또는 상기 전파하는 (d)단계는 병렬적으로, 동시에 또는 실질적으로 동시에 수행되는 방법.
  10. 제1항에 있어서,
    제2 프로세서 또는 프로세싱 코어가 레이블이 할당되지 않은 노드들 중 제2 레이블이 할당되지 않는 노드에 대하여, 상기 결정하는 (b)단계, 상기 결정하는 (c)단계 또는 상기 전파하는 (d)단계를 수행하는 것과 병렬적으로 또는 실질적으로 동시에, 제1 프로세서 또는 프로세싱 코어는, 레이블이 할당되지 않은 노드들 중 제1 레이블이 할당되지 않는 노드에 대하여 상기 결정하는 (b)단계, 상기 결정하는 (c)단계 또는 상기 전파하는 (d)단계를 수행하는 방법.
  11. 제10항에 있어서,
    상기 제1 프로세서의 제1 프로세스 및 상기 제2 프로세서의 제2 프로세스는 제1 노드가 상기 영상의 제1 부분에 있고 제2 노드가 상기 영상의 제2 부분에 있도록 상기 영상을 분할하지 않고 병렬적으로 그리고/또는 실질적으로 동시에 수행되는 방법.
  12. 제1항에 있어서,
    상기 방법은, 상기 영상을 2 이상의 영상 부분으로 분할하는 단계를 포함하지 않는 방법.
  13. 제12항에 있어서,
    상기 방법은, 상기 2 이상의 영상 부분을 처리한 결과를 병합하는 단계를 포함하지 않는 방법.
  14. 제1항에 있어서,
    상기 노드들의 값들은 상기 노드들의 그레이 레벨들을 대표하는 방법.
  15. 제14항에 있어서,
    255개의 그레이 레벨이 있으며, 레벨 1은 그레이 레벨 0이고, 레벨 N은 그레이 레벨 255인 방법.
  16. 제1항에 있어서,
    상기 다수의 레이블들은 워터쉐드 알고리즘에 대한 레이블들인 방법.
  17. 노드들 각각이 값과 연관되고 하나 이상의 레이블들로 레이블이 할당될 수 있는, 다수의 노드들에 의해 표현되는 영상을, 상기 영상의 하나 이상의 노드들 사이에 다수의 레이블들을 전파함으로써 처리하는 컴퓨터로 구현된 방법을 수행하도록 동작하는 컴퓨팅 시스템으로서, 상기 컴퓨터 구현된 방법은,
    (a) 상기 영상의 복수 개의 레이블이 할당된 노드들, 제 1 픽셀 값 및 제 2 픽셀 값을 획득하는 단계, 여기에서 적어도 하나의 레이블이 할당된 노드들은 적어도 다른 하나의 레이블이 할당된 노드들에 할당된 제2 레이블과 상이한 제1 레이블로 레이블이 할당됨;
    (b) 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드가 있는지 여부를 결정하는 단계, 여기에서, 상기 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드는 레이블이 할당되지 않으며 상기 제 1 픽셀 값의 후속하는 제 3 픽셀 값과 관련됨;
    (c) 상기 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 적어도 하나의 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 단계;
    (d) 상기 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 상기 (c)단계에서 적어도 하나의 레이블이 할당된 이웃 노드가 있는 것으로 결정되면, 하나 이상의 레이블이 할당된 이웃 노드들로부터 하나 이상의 레이블들을 전파하는 단계; 및
    (e) 상기 제 2 픽셀 값에 도달될 때까지 후속하는 제 3 픽셀 값들에 대하여 증분하면서 상기 (b)단계, 상기 (c)단계 및 상기 (d)단계를 반복하는 단계를 포함하는 컴퓨팅 시스템.
  18. 제17항에 있어서,
    상기 컴퓨팅 시스템은 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 (c)단계 및 하나 이상의 레이블들을 전파하는 (d)단계 중 적어도 하나는 레이블이 할당되지 않은 2 이상의 제 3 픽셀 값 노드들에 대하여 병렬적으로 수행하도록 동작하는 컴퓨팅 시스템.
  19. 노드들 각각이 값과 연관되고 하나 이상의 레이블들로 레이블이 할당될 수 있는, 다수의 노드들에 의해 표현되는 영상을, 상기 영상의 하나 이상의 노드들 사이에서 다수의 레이블들을 전파함으로써, 처리하도록 컴퓨터로 구현된 방법을 컴퓨터가 실행하도록 할 때 적어도 컴퓨터 실행가능 코드를 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터로 구현된 방법은,
    (a) 상기 영상의 복수 개의 레이블이 할당된 노드들, 제 1 픽셀 값 및 제 2 픽셀 값을 획득하는 단계, 여기에서 적어도 하나의 레이블이 할당된 노드들은 적어도 다른 하나의 레이블이 할당된 노드들에 할당된 제2 레이블과 상이한 제1 레이블로 레이블이 할당됨;
    (b) 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드가 있는지 여부를 결정하는 단계, 여기에서, 상기 적어도 하나의 레이블이 할당되지 않은 제 3 픽셀 값 노드는 레이블이 할당되지 않으며 상기 제 1 픽셀 값의 후속하는 제 3 픽셀 값과 관련됨;
    (c) 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 적어도 하나의 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 단계;
    (d) 레이블이 할당되지 않은 제 3 픽셀 값 노드 각각에 대하여, 상기 (c)단계에서 적어도 하나의 레이블이 할당된 이웃 노드가 있는 것으로 결정되면, 하나 이상의 레이블이 할당된 이웃 노드들로부터 하나 이상의 레이블들을 전파하는 단계; 및
    (e) 상기 제 2 픽셀 값에 도달될 때까지 후속하는 제 3 픽셀 값들에 대하여 증분하면서 상기 (b)단계, 상기 (c)단계 및 상기 (d)단계를 반복하는 단계를 포함하는 컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 적어도 하나의 레이블이 할당된 이웃 노드가 있는지 여부를 결정하는 (c)단계 및 하나 이상의 레이블들을 전파하는 (d)단계 중 적어도 하나는 레이블이 할당되지 않은 2 이상의 제 3 픽셀 값 노드들에 대하여 병렬적으로 수행되는 컴퓨터 판독가능 저장 매체.
  21. 제1항에 있어서,
    2 이상의 레이블들의 전파 순서를 결정하는 단계; 및
    상기 결정된 순서에 따라 상기 2이상의 레이블들을 전파하는 단계를 더 포함하는 방법.
KR1020100056771A 2009-11-03 2010-06-15 한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자 KR101734449B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US25773609P 2009-11-03 2009-11-03
US61/257,736 2009-11-03
US12/686,999 US8630509B2 (en) 2009-11-03 2010-01-13 Structured grids for label propagation on a finite number of layers
US12/686,999 2010-01-13

Publications (2)

Publication Number Publication Date
KR20110049643A KR20110049643A (ko) 2011-05-12
KR101734449B1 true KR101734449B1 (ko) 2017-05-11

Family

ID=43925520

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020100056772A KR101702996B1 (ko) 2009-11-03 2010-06-15 영상 처리를 위한 정렬 격자 및 그래프 운행
KR1020100056771A KR101734449B1 (ko) 2009-11-03 2010-06-15 한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020100056772A KR101702996B1 (ko) 2009-11-03 2010-06-15 영상 처리를 위한 정렬 격자 및 그래프 운행

Country Status (2)

Country Link
US (2) US8630509B2 (ko)
KR (2) KR101702996B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630509B2 (en) * 2009-11-03 2014-01-14 Samsung Electronics Co., Ltd. Structured grids for label propagation on a finite number of layers
US9235455B2 (en) * 2011-03-16 2016-01-12 Microscan Systems, Inc. Multi-core distributed processing using shared memory and communication link
KR101885216B1 (ko) 2011-12-30 2018-08-30 삼성전자주식회사 터치 센서 시스템의 멀티 터치 구분 방법
US10281892B2 (en) * 2012-08-02 2019-05-07 Siemens Aktiengesellschaft Pipelining for cyclic control systems
CN102867171B (zh) * 2012-08-23 2014-11-19 山东师范大学 一种基于标记传播与邻域嵌入保持的人脸表情识别方法
US8990209B2 (en) * 2012-09-06 2015-03-24 International Business Machines Corporation Distributed scalable clustering and community detection
US20140307055A1 (en) 2013-04-15 2014-10-16 Microsoft Corporation Intensity-modulated light pattern for active stereo
EP3619922B1 (en) 2017-05-04 2022-06-29 Dolby International AB Rendering audio objects having apparent size
CN109993191B (zh) * 2018-01-02 2021-07-06 中国移动通信有限公司研究院 信息处理方法及装置、电子设备及存储介质
US11451561B2 (en) * 2018-09-14 2022-09-20 Cisco Technology, Inc. Automated creation of lightweight behavioral indicators of compromise (IOCS)
CN109685879B (zh) * 2018-12-13 2023-09-29 广东启慧城市信息有限公司 多视影像纹理分布的确定方法、装置、设备和存储介质
CN111079078B (zh) * 2019-11-25 2022-04-22 清华大学 面向结构网格稀疏矩阵的下三角方程并行求解方法
CN112818626B (zh) * 2021-02-26 2022-08-23 北京华大九天科技股份有限公司 一种基于多重掩膜版的版图布线方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030077001A1 (en) * 2001-07-09 2003-04-24 Syugo Yamashita Interpolation pixel value determining method
US20050213837A1 (en) * 2004-02-18 2005-09-29 Yuri Boykov System and method for GPU acceleration of push-relabel algorithm on grids
US7227893B1 (en) * 2002-08-22 2007-06-05 Xlabs Holdings, Llc Application-specific object-based segmentation and recognition system
US20070291288A1 (en) * 2006-06-15 2007-12-20 Richard John Campbell Methods and Systems for Segmenting a Digital Image into Regions

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5332968A (en) * 1992-04-21 1994-07-26 University Of South Florida Magnetic resonance imaging color composites
US5657362A (en) * 1995-02-24 1997-08-12 Arch Development Corporation Automated method and system for computerized detection of masses and parenchymal distortions in medical images
DE60037360T2 (de) * 1999-05-28 2008-12-04 Nippon Telegraph And Telephone Corp. Verfahren und Vorrichtung zur Geschwindigkeitsmessung von Fahrzeugen mit ein Bildverarbeitungssystem
US6985612B2 (en) * 2001-10-05 2006-01-10 Mevis - Centrum Fur Medizinische Diagnosesysteme Und Visualisierung Gmbh Computer system and a method for segmentation of a digital image
US7676091B2 (en) * 2004-01-07 2010-03-09 Ramot At Tel Aviv University Ltd. Method and apparatus for analysing ultrasound images
JP4396376B2 (ja) * 2004-04-22 2010-01-13 日本電気株式会社 図形読み取り方法及びその装置並びに主要色抽出方法及びその装置
US7428331B2 (en) * 2004-11-30 2008-09-23 Seiko Epson Corporation Page background estimation using color, texture and edge features
JP5008572B2 (ja) * 2004-12-21 2012-08-22 キヤノン株式会社 画像処理方法、画像処理装置およびコンピュータ可読媒体
US7689038B2 (en) * 2005-01-10 2010-03-30 Cytyc Corporation Method for improved image segmentation
US7536064B2 (en) * 2005-05-31 2009-05-19 Microsoft Corporation Image comparison by metric embeddings
US7613328B2 (en) * 2005-09-09 2009-11-03 Honeywell International Inc. Label detection
US7623683B2 (en) * 2006-04-13 2009-11-24 Hewlett-Packard Development Company, L.P. Combining multiple exposure images to increase dynamic range
US8437054B2 (en) * 2006-06-15 2013-05-07 Sharp Laboratories Of America, Inc. Methods and systems for identifying regions of substantially uniform color in a digital image
US8050498B2 (en) * 2006-07-21 2011-11-01 Adobe Systems Incorporated Live coherent image selection to differentiate foreground and background pixels
US20090022403A1 (en) * 2007-07-20 2009-01-22 Fujifilm Corporation Image processing apparatus, image processing method, and computer readable medium
JP2009082463A (ja) * 2007-09-28 2009-04-23 Fujifilm Corp 画像分析装置、画像処理装置、画像分析プログラム、画像処理プログラム、画像分析方法、および画像処理方法
US8441535B2 (en) * 2008-03-05 2013-05-14 Omnivision Technologies, Inc. System and method for independent image sensor parameter control in regions of interest
US7969884B1 (en) * 2008-05-09 2011-06-28 Nortel Networks Limited Method and system for weight and rate scheduling
US8904381B2 (en) * 2009-01-23 2014-12-02 Hewlett-Packard Development Company, L.P. User defined data partitioning (UDP)—grouping of data based on computation model
US8046373B2 (en) * 2009-01-25 2011-10-25 Hewlett-Packard Development Company, L.P. Structured parallel data intensive computing
US8948513B2 (en) * 2009-01-27 2015-02-03 Apple Inc. Blurring based content recognizer
US8630509B2 (en) 2009-11-03 2014-01-14 Samsung Electronics Co., Ltd. Structured grids for label propagation on a finite number of layers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030077001A1 (en) * 2001-07-09 2003-04-24 Syugo Yamashita Interpolation pixel value determining method
US7227893B1 (en) * 2002-08-22 2007-06-05 Xlabs Holdings, Llc Application-specific object-based segmentation and recognition system
US20050213837A1 (en) * 2004-02-18 2005-09-29 Yuri Boykov System and method for GPU acceleration of push-relabel algorithm on grids
US20070291288A1 (en) * 2006-06-15 2007-12-20 Richard John Campbell Methods and Systems for Segmenting a Digital Image into Regions

Also Published As

Publication number Publication date
US8630509B2 (en) 2014-01-14
US9047674B2 (en) 2015-06-02
KR101702996B1 (ko) 2017-02-06
US20110103711A1 (en) 2011-05-05
US20110103712A1 (en) 2011-05-05
KR20110049643A (ko) 2011-05-12
KR20110049644A (ko) 2011-05-12

Similar Documents

Publication Publication Date Title
KR101734449B1 (ko) 한정된 개수의 계층상에 레이블 전파를 위한 정렬 격자
US11010516B2 (en) Deep learning based identification of difficult to test nodes
US20200151288A1 (en) Deep Learning Testability Analysis with Graph Convolutional Networks
Michael et al. Real-time stereo vision: Optimizing semi-global matching
US20230215091A1 (en) Apparatus and method for tree structure data reduction
US10559125B2 (en) System and method of constructing bounding volume hierarchy tree
Gao et al. gHull: A GPU algorithm for 3D convex hull
Gibson et al. Stereo depth with a unified architecture GPU
KR20190035445A (ko) 전자 장치 및 그 제어 방법
Tatsumi et al. An FPGA accelerator for PatchMatch multi-view stereo using OpenCL
Mahmoudi et al. Taking advantage of heterogeneous platforms in image and video processing
US20230153604A1 (en) Performing simulations using machine learning
Ralha et al. Parallel refinement of slanted 3D reconstruction using dense stereo induced from symmetry
Schubert et al. Efficient computation of greyscale path openings
US20230104199A1 (en) Apparatus and method for ray tracing with shader call graph analysis
Ruiz de Miras Fast differential box-counting algorithm on GPU
Xu et al. Belief propagation implementation using CUDA on an NVIDIA GTX 280
Cebrian et al. Massively-parallel column-level segmentation of depth images
Wu et al. Parallel integral image generation algorithm on multi-core system
Dawwd et al. GPU acceleration of object detection on video stream using CUDA
US20230377267A1 (en) Apparatus and method for bounding volume hierarchy (bvh) construction with stochastic processing
Banz et al. Architectures for stereo vision
Fathy et al. Parallel Implementation of 3D Model Reconstruction of Monocular Video Frames in a Dynamic Environment.
US12002145B2 (en) Apparatus and method for efficient graphics processing including ray tracing
Rasmusson et al. Connected components labeling on the GPU with generalization to voronoi diagrams and signed distance fields

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
GRNT Written decision to grant