KR101548928B1 - 불변적인 시각적 장면 및 객체 인식 - Google Patents

불변적인 시각적 장면 및 객체 인식 Download PDF

Info

Publication number
KR101548928B1
KR101548928B1 KR1020107013366A KR20107013366A KR101548928B1 KR 101548928 B1 KR101548928 B1 KR 101548928B1 KR 1020107013366 A KR1020107013366 A KR 1020107013366A KR 20107013366 A KR20107013366 A KR 20107013366A KR 101548928 B1 KR101548928 B1 KR 101548928B1
Authority
KR
South Korea
Prior art keywords
image
cluster
pixels
feature
statistical
Prior art date
Application number
KR1020107013366A
Other languages
English (en)
Other versions
KR20100098641A (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 KR20100098641A publication Critical patent/KR20100098641A/ko
Application granted granted Critical
Publication of KR101548928B1 publication Critical patent/KR101548928B1/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/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/758Involving statistics of pixels or of feature values, e.g. histogram matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

이미지 인식을 수행하는 방법이 개시되어 있다. 이 방법은 한 집단의 픽셀들(collection of pixels)을 획득하는 단계 및 기울기 크기(gradient magnitude)에 기초하여 상기 픽셀들 중 적어도 일부를 한 세트의 클러스터 특징들(set of cluster features)로 그룹화하는 단계를 포함한다. 한 세트의 클러스터 특징 중의 각각의 클러스터 특징에 대해, 통계 변수들(statistical variables)이 생성된다. 이 통계 변수들은 클러스터 특징 내의 픽셀들의 집단적 속성(collective property)을 나타낸다. 이 통계 변수들은 한 집단의 픽셀들을 다른 집단의 픽셀들과 비교하기 위한 기초로서 이용된다.

Description

불변적인 시각적 장면 및 객체 인식{INVARIANT VISUAL SCENE AND OBJECT RECOGNITION}
컴퓨터 비전(computer vision)은 캡처된 이미지로부터 정보를 획득하는 인공 시스템(artificial system)에 관한 과학 기술 분야이다. 이미지 데이터는 하나 이상의 카메라로부터의 비디오 시퀀스(video sequence) 또는 뷰(view)를 비롯한 많은 형태를 취할 수 있지만, 이들로 제한되지 않는다.
컴퓨터 비전(computer vision)이라는 포괄적 카테고리는 각종의 서로 다른 서브필드들을 포함한다. 객체 인식(object recognition)은 이미지 데이터로부터 객체를 인식하는 것, 예를 들어, 복수의 이미지 중 어느 것이 타겟 이미지(target image) 내에 포함된 객체와 가장 유사한 객체를 포함하는지를 판정하는 것을 수반하는 컴퓨터 비전의 서브필드이다. 다른 서브필드는 이미지 데이터로부터 장면을 인식하는 것, 예를 들어, 복수의 이미지 중 어느 것이 타겟 이미지 내에 포함된 객체와 가장 유사한 장면을 포함하는지를 판정하는 것을 수반하는 장면 인식(scene recognition)이다. 컴퓨터 비전은 종종 자율 로봇 항법 및 무감독 보안 기능(autonomous robot navigation and unsupervised security function)(이들로 제한되지 않음)을 비롯한 각종의 실제 응용들을 자동화하기 위한 기초로서 이용된다. 예를 들어, 로봇 및 보안 시스템은 특정의 객체 또는 장면이 자동으로 검출 및 식별될 때 특정의 반응을 개시하도록 구성되어 있을 수 있다.
현재, 자동화된 장면 및 객체 인식을 비롯한 광범위한 인식-지향(recognition-oriented) 컴퓨터 비전 작업들을 지원하는 시스템들이 있다. 이 시스템들 중 일부가 타당한 정도의 정확도로 인식 작업을 수행할 수 있지만, 성능이 항상 효율적인 시도는 아니며, 요구되는 컴퓨터 처리 및/또는 메모리 자원의 점에서 특히 그렇다. 게다가, 많은 기존의 시스템들이 불변적인 이미지 인식(invariant image recognition)을 제공한다는 점에서 효과적이지 않다.
이상의 설명은 일반적인 배경 정보를 위해 제공된 것에 불과하며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것이 아니다.
<요약>
이미지 인식을 수행하는 방법의 실시예들이 개시되어 있다. 일 실시예에서, 방법은 픽셀들의 집단(collection of pixels)을 획득하는 단계, 및 기울기 크기(gradient magnitude)에 기초하여 상기 픽셀들 중 적어도 일부를 클러스터 특징들의 세트(set of cluster features)로 그룹화하는 단계를 포함한다. 클러스터 특징들의 세트 중의 각각의 클러스터 특징에 대해, 통계 변수들(statistical variables)이 생성된다. 이 통계 변수들은 클러스터 특징 내의 픽셀들의 집단적 속성(collective property)을 나타낸다. 이 통계 변수들은 픽셀들의 집단을 다른 픽셀들의 집단과 비교하기 위한 기초로서 이용된다.
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 알려주기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다. 청구된 발명 대상이 배경 기술에서 언급한 단점들 중 일부 또는 그 전부를 해결하는 구현들로 제한되지 않는다.
도 1은 이미지 인식 시스템의 블록도.
도 2는 이미지 비교 프로세스의 플로우차트도.
도 3은 이미지 비교 프로세스의 플로우차트도.
도 4는 이미지 인식 시스템과 연관된 사용자 인터페이스의 일례를 나타낸 도면.
도 5는 컴퓨팅 시스템 환경의 일례를 나타낸 도면.
본 발명은 컴퓨터 비전 시스템, 특히 이미지 인식 시스템의 성능 및 신뢰성을 향상시키는 방법에 관한 것이다. 이 상세한 설명이 객체 및/또는 장면 인식 시스템과 관련하여 시스템들 및 방법들에 대해 기술할 수 있지만, 동일한 또는 유사한 개념들이 다른 유형의 컴퓨터 비전 시스템들 내에서 똑같이 쉽게 적용될 수 있다는 것을 잘 알 것이다.
도 1은 본 발명의 실시예들이 구현될 수 있는 이미지 인식 시스템(image recognition system)(10)의 블록도이다. 시스템(10)은 적당한 시스템의 일례에 불과하며, 청구된 발명 대상의 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 시스템(10)이 예시된 컴포넌트들 중 어느 하나 또는 예시된 컴포넌트들의 임의의 조합에 관한 어떤 의존성 또는 요구조건을 갖는 것으로 해석되어서도 안된다.
물론 간략화하여 나타낸 것인 이미지 인식 시스템(10)은 이미지 캡처 장치(image capture device)(12), 이미지 분석기/처리기(image analyzer/processor)(14), 데이터베이스(16), 및 출력(15)을 포함한다. 이미지 캡처 장치(12)는 이미지를 캡처하여 대응하는 데이터를 이미지 분석기/처리기(14) 등의 이미지 분석기로 전송할 수 있는 임의의 카메라 또는 기타 시스템 컴포넌트일 수 있다. 캡처된 이미지는 따로 따로 분리된 이미지들(isolated images)을 포함할 수 있거나, 비디오 이미지의 성질을 더 가지고 있을 수 있다. 게다가, 본 발명의 범위를 벗어나지 않고, 장치(12)는 아마도 다수의 장치들, 예를 들어, 동일한 장면 또는 객체의 다수의 투시 이미지들(image perspectives)을 캡처하는 다수의 장치들을 포함할 수 있다.
일 실시예에서, 장치(12)는 촬영될 장면 또는 객체의 시각적 표현(visual representation)을 광학계를 통해 수신하는 촬영기(imager)를 포함한다. 이 촬영기는 수신된 시각적 표현을 나타내는 아날로그 이미지 신호를 생성한다. 이 아날로그 신호는 아날로그/디지털 변환기로 전달되고, 이 아날로그/디지털 변환기는 아날로그 신호의 디지털 표현을 생성한다. 이 디지털 신호는 저장 및 조작될 수 있는 디지털화된 이미지로 재포맷팅(reformatting)된다. 예시로서, 이 디지털화된 이미지가 이미지 분석기/처리기(14)로 전달된다.
본 발명의 일 실시예에서, 이하에서 더 상세히 기술하는 바와 같이, 이미지 분석기/처리기(14)는 이미지 캡처 장치(12)로부터 수신된 이미지들의 특징들 및 특성들을 나타내는 데이터를 생성한다. 일 실시예에서, 이 데이터는 수신된 이미지를 데이터베이스(16) 내에 표현되어 있는 하나 이상의 다른, 이전에 획득된 이미지들과 효율적으로 비교하기 위한 기초로서 이용된다. 출력(15)은 예시로서 비교 프로세스의 결과 또는 성과이다. 출력(15)의 정확한 성질은 시스템(10)이 적용되는 특정의 상황에 따라 달라지게 된다. 예를 들어, 출력(15)은 플러스 또는 마이너스 비교 결과의 표시일 수 있다. 다른 대안으로서, 출력(15)은 가장 유사하거나 또는 일치 문턱값(match threshold)을 초과할 정도로 충분히 유사한 데이터베이스(16) 내의 특정의 이미지 또는 이미지들을 식별해줄 수 있다. 이들은 출력(15)의 많은 가능한 형태들 중의 일례들에 불과하다.
이 시점에서, 불변성(invariance)의 개념에 대해서도 언급할 필요가 있다. 이미지의 캡처마다, 예를 들어, 투시, 배향, 조명, 기타의 점에서 불일치가 있는 것은 당연하다. 시스템(10)이, 일치가 선언되게 하기 위해, 이전의 이미지가 캡처된 환경을 그대로 또는 거의 그대로 재현해야 있는 경우, 시스템(10)은 그다지 안정적이지 않으며 실용성이 거의 또는 전혀 없을지도 모른다. 이하에서 더 상세히 기술할 것인 바와 같이, 본 명세서에 기술된 매칭(matching) 프로세스 및 알고리즘이 비교적 효율적이지만 비교적 불변적인 이미지 인식을 지원할 수 있는 점에서 효과적이기도 하다.
시스템(10)에 의해 제공되는 것과 같은 이미지 인식 기능으로부터 이득을 보는 각종의 실제 응용들이 있다. 많은 일례들 중 하나에서, 시스템(10)은 이동 로봇(mobile robot)의 현재 환경이 이전에 경험한 환경의 이미지들의 데이터베이스에 대해 익숙한 것인지 여부를 인식하기 위해 이동 로봇이 컴퓨터 비전을 이용할 수 있게 해주도록 구현될 수 있다. 로봇이 여기저기 이동할 때, 로봇은 예시로서 그의 환경의 사진들을 찍은 다음에 그 사진들에 식별자를 붙이고, 이 식별자는 컴퓨터-생성 문자열일 수 있지만, 다른 대안으로서 보다 사람에 친숙한 식별 도구(identification aid)로서 역할하는 단어 또는 구문일 수 있다. 이와 같이, 로봇은 어느 정도의 인공 지능을 지원하기 위해, 예를 들어, 위치를 국한시키기 위해(예를 들어, 이 위치가 부엌, 기타임) 또는 장면으로부터 객체를 식별하기 위해(예를 들어, 그 객체가 의자, 기타임) 비교 출력을 이용할 수 있다. 이러한 비전-기반 방법은 GPS(Global Positioning System) 기술 등의 다른 기술들이 이용가능하지 않은 환경들에서 특히 유익하다. 게다가, 비전-기반 방법을 이용하는 것이 위치 식별을 가능하게 해주는 대부분의 다른 기술들과 비교하여 비교적 저렴하다. 당업자라면 이동 로봇 응용이 적용가능한 실제 응용의 많은 일례들 중 하나에 불과하다는 것을 잘 알 것이다.
도 2는 이미지 비교 프로세스(200)의 간략화된 설명을 제공하는 플로우차트도이다. 프로세스(200)는 예시로서 컴퓨터-구현된다. 일 실시예에서, 프로세스(200)는 컴퓨터-구현 이미지 분석기/처리기(예를 들어, 도 1의 14)에 의해 수행된다. 블록(202)에 따르면, 프로세스(200)는 단지 제1 이미지를 획득하는 것으로 시작한다. 이 이미지가 동시적으로 캡처된 것일 필요는 없다. 또한 이 이미지가 이미지 캡처 장치로부터 직접 획득된 것일 필요도 없다. 이 이미지가 카메라, 데스크톱, 인터넷(또는 웹), 디스크, 또는 스캐너(이들로 제한되지 않음) 등의 임의의 소스로부터 온 것일 수 있다.
일 실시예에서, 획득된 이미지의 파라미터들에 부과되는 제한조건들이 거의 없거나 전혀 없다. 예를 들어, 예시로서, 요구된 해상도(예를 들어, 320 x 240, 640 x 480, 기타)가 없다. 예시로서, 요구된 색상 심도(color depth)가 없다. 이 이미지가 예시로서 흑백일 수 있다. 유의할 점은, 이 이미지가 실제 장면을 나타낼 필요는 없다는 것이다. 이 이미지는, 예를 들어, 시각화 도구(visualization aid), 시뮬레이트된 환경 또는 심지어 그래프일 수 있다. 명백할 것인 바와 같이, 프로세스(200)는 본질적으로 임의의 픽셀들의 집단을 다른 픽셀들의 집단과 비교하는 데 이용될 수 있다.
단계(204)에 따르면, 엣지 검출(edge detection) 프로세스가 획득된 이미지에 적용된다. 당업자라면 엣지 검출에 이용될 수 있는 각종의 서로 다른 방법들이 있다는 것을 잘 알 것이다. 본 발명은 특히 어느 한 방법으로 제한되지 않는다. 일 실시예에서, 엣지 검출은 각각의 지점(예를 들어, 각각의 픽셀)에서의 이미지 강도(image intensity)의 기울기를 계산하기 위해 Sobel 계수(Sobel coefficient)를 적용하는 것을 이용하여 달성된다.
다른 실시예에서, 엣지 검출은 X 및 Y에 대한 간단한 1D 기울기 벡터(-1,0,1)를 적용하는 것을 이용하여 달성된다. 이 경우에, 기울기를 증대시키는 이미지의 표현을 생성하기 위해 이미지 내의 각각의 픽셀에 대해 한번의 컨볼루션(convolution)이 적용된다. 이 프로세스는 예시로서 컨볼루션 커널(convolution kernel)에 대해 모수적(parametric)이다.
이러한 후자의 엣지 검출 프로세스를 개념화하는 한가지 방식은 픽셀들의 어레이(즉, 이미지) 상부를 지나가는 슬라이딩 창(sliding window)을 생각하는 것이다. 이 창은 일례로서 3 픽셀 x 3 픽셀이지만, 이 컨벌루션이 아마도 다른 크기, 예를 들어, 5x5 픽셀일 수 있다. 이미지 내의 임의의 점에서 시작하여, 이미지의 3x3 섹션(예를 들어, 좌측 상부)이 취해지고 컨벌루션이 적용된다. 예를 들어, 3x3 픽셀이 예시로서 수평 방향에서 -1, 0 및 1과 곱해진다. 이와 동시에, 3x3 픽셀이 수직 방향에서 -1, 0 및 1과 곱해진다. 이에 따라, 이 프로세스는 기본적으로 3x3 매트릭스로 시작하고, 기술된 처리 이후에, 대응하는 3x3 매트릭스가 생성된다. 그 결과는 기본적으로 기울기 추출(gradient extraction)이다. 원래의 이미지와 동일한 크기이지만 이제 강조된 엣지(emphasized edge)를 갖는 새로운 이미지가 생성된다. 다시 말하지만, 본 발명의 범위가 특히 어느 한 엣지 검출 방법으로 제한되지 않는다. 당업자라면 다수의 공지된 대안들이 있다는 것을 잘 알 것이다.
당업자라면 또한 대부분의 이미지들이 기본적으로 서로 겹쳐 있는 3개의 이미지(적색 픽셀 매트릭스, 청색 픽셀 매트릭스 및 녹색 픽셀 매트릭스)라는 것을 잘 알 것이다. 일 실시예에서, 기울기 알고리즘이 각각의 컬러 채널에 대해 실행된다(예를 들어, 기울기 알고리즘이 적색 채널에서 실행되고, 이어서 청색 채널에서 실행되며, 이어서 녹색 채널에서 실행된다). 개개의 기울기 이미지들 각각이 기본적으로 개별적인 단색 이미지(monochrome image)(예를 들어, 적색 기울기, 청색 기울기 및 녹색 기울기)로 생각될 수 있다. 그 결과 얻어진 3개의 기울기 이미지가 예시로서 서로 겹쳐져, 결합된 하나의 기울기 이미지를 형성한다. "기울기 이미지(gradient image)"라는 용어가 본 설명 내에서 이용되는 한, 이것이 서로 다른 컬러 채널들과 집단적으로 연관되어 있는 데이터를 포함할 수 있다는 것을 잘 알 것이다.
본 발명의 실시예들이 RGB(적색, 녹색, 청색)와 다른 컬러 공간들에서의 이미지들에 똑같이 쉽게 적용될 수 있다는 것을 언급할 필요가 있다. 예를 들어, 실시예들이 컬러 이미지의 다른 3채널 인코딩인 YcbCr 컬러 공간에서의 이미지들에 적용될 수 있다. YcbCr 컬러 공간에서, 기울기는 통상적으로 Y 채널에서 가장 강하고, RGB에 대해, 컬러 및 조명 컬러 불변성이 향상된다. 이것은 본 발명의 실시예들이 적용될 수 있는 다른 컬러 공간의 한 일례에 불과하다. 본 발명의 범위가 본 명세서에 제공된 일례들로 제한되지 않으며, 3채널 인코딩 방식으로 제한되지 않는다.
기울기 이미지 내에서, 엣지들이 명확히 구별될 수 있다. 예를 들어, 벽의 수직 코너의 이미지는, 대응하는 기울기 이미지에서, 코너의 엣지(즉, 비교적 굵은 선)를 따라서 크기가 큰 픽셀들(high magnitude pixels)을 생성할 가능성이 있다. 물론, 크기가 큰 픽셀들은 기울기 이미지 내에서 서로 다른 컬러 채널들 중 일부 또는 그 전부에 나타날 수 있다.
일 실시예에서, 기울기 이미지에서 발견되는 이산적인 기울기 크기값(discrete gradient magnitude value)마다 엔트리를 생성하기 위해 사전(dictionary)[예를 들어, 해쉬 테이블(hash table)]이 이용된다. 일 실시예에서, 효율성을 위해, 기울기 크기가 [원래의 배정도(double precision)로부터] 가장 가까운 정수값으로 양자화된다. 일 실시예에서, 미리 정해진 값을 넘는 크기값을 갖는 픽셀들만이 사전에 추가되도록 문턱값이 선택적으로 적용된다. 이 문턱값은 예시로서 조정가능한 시스템 파라미터이다.
블록(206)에 따르면, 동일한(또는 시스템 허용오차에 따라 거의 유사한) 특성들을 나타내는 픽셀들이 기본적으로 클러스터링(clustering)된다. 사전 내의 각각의 엔트리가 새로운 "버킷(bucket)"을 생성하고, 각각의 버킷은 고유한(또는 시스템 허용오차에 따라 거의 고유한) 크기값을 갖는다. 일 실시예에서, 기울기 이미지 내의 모든 픽셀들(또는 미리 정해진 문턱값을 넘는 크기를 갖는 모든 픽셀들)이 버킷들 중 하나로 분류된다.
기울기 이미지 전체가 처리된 후에, 장면 내에서 이산적인 기울기 크기마다 총 몇개의 픽셀이 발견되었는지를 나타내는 N개의 버킷이 있게 된다. 블록(208)에 따르면, 제1 이미지와 연관된 클러스터들 또는 버킷들이 (예를 들어, 텍스트 태그를 사용하여 저장된 이미지 데이터에 이름을 붙여줌) 저장된다.
블록(210)에 따르면, 단계(202) 내지 단계(208)가 제2 이미지에 대해 반복된다. 마지막으로, 블록(212)에 따르면, 제1 이미지와 연관된 클러스터들/버킷들의 특성들을 제2 이미지와 연관된 클러스터들/버킷들의 특성들에 대해 평가하는 것에 기초하여 제1 이미지의 제2 이미지에 대한 유사성이 평가된다.
일 실시예에서, 다수의 이미지들 중 어느 것이 제1 이미지와 가장 유사한지를 판정하기 위해, 제1 이미지와 연관된 클러스터들/버킷들의 특성들이 다수의 다른 이미지들과 연관된 클러스터들/버킷들의 특성들에 대해 평가된다. 일 실시예에서, 복수의 저장된 이미지들 중 어느 것(예를 들어, 어느 장면, 객체, 기타)이 (클러스터/버킷 특성들에 전체적으로 또는 부분적으로 기초하여) 제1 이미지에 대해(예를 들어, 동시적으로 캡처된 이미지에 대해) 가장 잘 일치하는 것인지를 나타내는 히스토그램이 생성된다. 일 실시예에서, 다수의 저장된 장면들이 (클러스터/버킷 특성들에 전체적으로 또는 부분적으로 기초하여) 동시적으로 캡처된 장면과 병렬로 비교되도록 동시 비교 알고리즘(concurrent comparison algorithm)이 이용된다.
유의할 점은, 프로세스(200)가 제1 이미지와 제2 이미지의 있는 그대로의 직접적인 비교를 포함하지 않는다는 것이다. 이것은, 2개의 이미지 간에 상당한 불일치가 있더라도, 적어도 이미지들이 비교되어 일치하는 것으로 간주될 수 있다는 점에서 유리하다. 이것을 개념화하는 다른 방식은 프로세스(200)가 불변적인 이미지 인식(invariant image recognition)을 사실상 지원하는 것이다. 이렇지 않은 경우, 제1 이미지와 제2 이미지가 동일한 카메라로 찍은 것이더라도, 카메라가 촬영들 사이에 약간만이라도 움직였다면 이 이미지들이 일치하는 것으로 판정되지 않을 가능성이 있다. 또는, 제1 이미지와 제2 이미지가 반대쪽에서 본 동일한 객체를 갖는 경우, 이 이미지들이 일치하는 것으로 판정되지 않을 가능성이 있다.
또한, 강조해 둘 점은, 제1 이미지 또는 제2 이미지 중 어느 하나가 동시적으로 캡처되어야 한다는 요구조건이 없다는 것이다. 이 2개의 이미지가 카메라, 데스크톱, 인터넷(또는 웹), 디스크, 또는 스캐너(이들로 제한되지 않음) 등의 임의의 소스로부터 온 것일 수 있다. 물론, 이 이미지들이 동일한 소스로부터 온 것일 필요는 없다. 이 이미지들이 해상도, 컬러, 조명, 기타의 점에서 동일한 파라미터들 또는 특성들을 가질 필요도 없다. 프로세스(200)는 기본적으로 임의의 제1 픽셀 세트와 임의의 제2 픽셀 세트 간의 비교를 지원한다.
일반적으로 말하면, 이미지 비교 프로세스(200)의 기반을 이루는 이론은 비교될 이미지 내의 개별 픽셀들의 특정의 위치에 중점을 두고 있지 않다. 그 대신에, 거의 유사한 기울기를 갖는 픽셀들이 클러스터링되고, 본질적으로 개별적인 특징처럼 집단적으로 취급된다. 통상적인 이미지는 어떤 강한 엣지(strong edge), 어떤 약한 엣지(weak edge), 및 그 사이의 어떤 엣지를 가질 수 있다. 이러한 세기의 차이는 대응하는 기울기 이미지에서의 기울기들의 분산(dispersion)에 반영되게 된다. 강한 엣지와 연관된 픽셀들은 약한 엣지와 연관된 픽셀들과 다른 그룹에 배정되게 된다. 이미지 내의 모든 픽셀들이 동일한 기울기를 갖는 경우(예를 들어, 편평한 테이블 표면의 이미지와 같이 엣지가 없는 이미지의 경우에 그러함), 어떤 특징도 식별되지 않게 된다(이는 그 자체로 하나의 이미지를 다른 이미지와 비교할 때 유용한 정보일 수 있음).
일례로서, 백색 배경 상에 일련의 4개의 동일한, 수직으로 배향된 흑색 라인들만을 포함하는 이미지를 생각해볼 수 있다. 일반적으로, 이미지 비교 프로세스(200)는 흑색 라인 픽셀들이 위치하는 곳에만 중점을 두지는 않는다. 그 대신에, 엣지들 그리고 동일한 강한 기울기 크기를 갖는 많은 수의 픽셀들이 있다는 사실에 중점을 두게 된다. 이 픽셀들이 서로 클러스터링되고 이미지 비교 프로세스 동안에 집단적으로 고려된다.
일 실시예에서, 기울기 크기에 기초하여 픽셀들을 클러스터/버킷 특징들에 배정하는 프로세스는, 어느 정도, 픽셀 위치를 고려하도록 구성되어 있다. 예를 들어, 어떤 상황들에서, 동일한 또는 유사한 기울기에 대해 다수의 클러스터/버킷 특징들을 생성하기 위해 규칙이 부과될 수 있다. 예를 들어, 동일한 기울기를 갖지만 x(단, x는 조정가능한 시스템 파라미터임)보다 큰 거리만큼 떨어져 있는 2개의 픽셀을 2개의 개별적인 클러스터/버킷 특징들에 배정하는 것이 바람직할 수 있다. 이것은 비교를 위한 더 많은 특징들을 생성하는 선택적인 방식이다. 물론, 이미지 비교 단계[예를 들어, 프로세스(200)에서의 단계(212)]는 예시로서, 이러한 시나리오가 존재하는 경우, 동일한 또는 유사한 기울기 특성들을 갖는 다수의 클러스터/버킷을 고려하고 또 유익하게 이용하도록 구성되어 있다.
이미지 비교가 단지 비교될 이미지들과 연관된 클러스터/버킷 특징들의 기울기 크기 속성들에만 기초하여 행해지는 것이 생각될 수 있지만, 이러한 비교의 정확도가 모든 이미지들에 대해 양호한 것은 아닐 수 있다. 예를 들어, 백색 배경 상에 4개의 흑색 수직 라인들을 갖는 이미지가 백색 배경 상에 4개의 유사한 흑색 수평 라인들을 갖는 이미지와 일치하는 것으로 판정될 가능성이 있다. 비교 프로세스가 이것들과 같은 상황에서 보다 융통성있는 것이 바람직하다. 본 설명은 이제부터 비교 프로세스를 보다 융통성있고 안정적인 것으로 만드는 방법들의 일례에 대해 기술한다.
일 실시예에서, 각각의 클러스터/버킷에 대해, 실제의 개별적인 물리적 픽셀 위치의 기록을 유지하기 보다는, 클러스터 내의 픽셀들 전부에 대해 보다 광의의 집단적인 세트의 기울기 특성들이 추적된다. 당업자라면 어느 특성들이 추적되는지의 정확한 성질이 애플리케이션마다 다를 수 있다는 것을 잘 알 것이다. 한 클러스터/버킷 특징을 다른 클러스터/버킷 특징과 비교하는 것을 지원하는 어떤 특성이라도 본 발명의 범위 내에 속하는 것으로 보아야 한다. 유의할 점은, 클러스터/버킷 특징 특성들이 기울기 이미지 및/또는 대응하는 원래의 이미지로부터 도출된 값들에 기초할 수 있다는 것이다. 게다가, 이 특성들이 주어진 클러스터/버킷 특징에 표현된 픽셀들에 걸쳐 계산된 평균값일 수 있다.
일 실시예에서, 각각의 클러스터/버킷 특징에 대해 특징 벡터(feature vector)가 생성된다. 각각의 특징 벡터는 대응하는 클러스터/버킷에 포함된 픽셀들의 집단적인 또는 평균적인 특징들을 나타낸다. 일 실시예에서, 특징 벡터는 클러스터/버킷 내의 픽셀들에 기초하여 평균된 몇개의 변수들을 포함한다. 일 실시예에서, 이 변수들은 평균 면적(예를 들어, 특징에 포함된 픽셀들의 수), 평균 위치[예를 들어, 도심(centroid)], 평균 기울기 각도, 평균 기울기 크기, 스큐(예를 들어, 도심 상에서의 스큐), 표준 편차(예를 들어, 도심 상에서의 표준 편차), 및 첨도(Kurtosis)(예를 들어, 변수의 확률 분포가 정규 분포에 대해 뾰족한지 편평한지의 척도) 중 일부 또는 그 전부를 포함한다. 이 특징 벡터는 예시로서 이미지 비교 프로세스를 지원하기 위해 생성된다.
클러스터/버킷 특징들이 크기가 유사한 픽셀들을 포함하고 있지만, 이 특징들이 원래의 이미지 내의 서로 다른 위치들로부터 온 것일 수 있다. 이에 따라, 하나의 이미지를 다른 이미지와 비교하는 것이 요망될 때, 한 이미지로부터의 클러스터/버킷 특징들이 비교를 위해(예를 들어, 특징 벡터들에 표현된 변수들을 비교하기 위해) 다른 이미지로부터의 클러스터/버킷 특징들과 어떻게 정렬되어야 하는지는 즉각 명확하지 않다.
전술한 정렬 딜레마에 대한 해결책의 일례로서, 도 3은 제1 이미지(이후부터, "타겟 이미지"라고 함)를 복수의 다른 이미지들(이후부터, 데이터베이스에 저장된 이미지들에서와 같이 "저장된 이미지들"이라고 함)과 비교하는 프로세스(300)를 나타낸 플로우차트도이다. 일 실시예에서, 프로세스(300)는 컴퓨터-구현 이미지 분석기/처리기(예를 들어, 도 1의 14)에 의해 수행된다. 예시로서, 타겟 이미지 및 저장된 이미지에 대해 클러스터/버킷 특징들이 생성(및 저장)되어 있는 것으로 가정한다. 또한, 예시로서, 클러스터/버킷 특징들에 대해 비교 변수들이 생성(및 저장)되어 있는 것으로 가정한다.
블록(302)에 따르면, 각각의 저장된 이미지에 대해, 타겟 이미지로부터의 각각의 클러스터/버킷 특징이, 예를 들어, 특징 벡터들에서의 변수들을 비교함으로써, 저장된 이미지에서의 가장 가까운 특징에 매칭된다. 일 실시예에서, 이것은 타겟 이미지 내의 모든 특징과 저장된 이미지 내의 모든 특징 간의 유클리드 거리(Euclidean distance)를 측정하고 이어서 최소 거리를 갖는 것을 선택함으로써 행해진다. 옵션으로서, 이 동작은 모든 변수들이 똑같은 것으로 간주되지는 않도록 가중 방식을 부과하도록 구성될 수 있다.
블록(304)에 따르면, 타겟 이미지로부터의 정렬된 특징들이 저장된 이미지로부터의 벡터와 일치하는 순서로 하나의 큰 벡터에 기입된다. 블록(306)에 따르면, 각각의 저장된 이미지 벡터와 그의 대응하는 타겟 이미지 벡터 간의 차이가 계산된다. 블록(308)에 따르면, 최소 거리를 갖는 저장된 이미지가 가장 가깝게 일치하는 이미지로서 선택된다.
그에 따라, 각각의 저장된 이미지와 비교하는 것을 지원하기 위해 타겟 이미지에 대해 "다른" 특징 벡터가 계산된다(특징들의 순서가 다름). 이것에 의해 모든 저장된 이미지들에 대해 하나의 가중치 행렬(weight matrix)이 이용될 수 있다. 예시로서, 타겟 이미지가 변할 때(즉, 서로 다른 정렬로 인해) 이 순서가 변한다. 이것은 각각의 저장된 이미지에 대해 서로 다른 가중치 벡터를 생성하는 것을 의미한다. 이미지들의 세트에 대해 훈련하면 가장 높은 검출 확률을 제공한다.
당업자라면 본 발명의 범위를 벗어나지 않고 기타 비교 알고리즘들이 이용될 수 있다는 것을 잘 알 것이다. 예를 들어, 전술한 평탄 벡터(flat vector) 방식보다는, 가장 가깝게 일치하는 것이 가장 많은 일치하는 변수들을 가짐으로써 가장 많은 점수를 얻은 저장된 이미지인 "포인트" 시스템("point" system)이 구현될 수 있다. 이것은 본 발명의 범위 내에서 고려되어야 하는 많은 다른 가능한 비교 방식들 중 하나에 불과하다.
이 시점에서, 클러스터/버킷 특징 비교 프로세스에서 고려될 수 있는 변수들 중 일부에 대해 자세히 설명할 필요가 있을 수 있다. 상기한 변수들 중 하나가 평균 기울기 각도이었다. 일 실시예에서, 기울기 각도는, 예를 들어, 수학식 1과 같이 표현될 수도 있는 수직 기울기 크기를 수평 기울기 크기로 나눈 것의 역탄젠트(inverse tangent)를 사용하여, 픽셀마다 계산된다.
<수학식 1>
Atan (gradMagY[i]/gradMagX[i])
고려될 수 있는 다른 변수는 평균 색상 강도(color intensity)이다. 전술한 바와 같이, 픽셀들을 클러스터/버킷 특징들에 배정하는 것이 예시로서 각각의 컬러 채널에 대해 수행된다. 가운데에 녹색 공이 있는 테이블의 이미지 및 가운데에 청색 공이 있는 동일한 테이블의 다른 이미지를 생각해볼 수 있다. 2개의 이미지가 아주 유사하지만, 공의 색상이 서로 다르다. 처리 동안에, 적색 채널에서는, 공에 대응하는 기울기가 없다. 청색 채널에서는 청색 공에 대한 기울기가 있을 것이고, 녹색 채널에서는 녹색 공에 대한 기울기가 있을 것이다. 프로세스(300)는 서로 다른 컬러 채널 내에서 처리가 일어나기 때문에 색상의 차이를 검출한다. 일 실시예에서, 각각의 클러스터/버킷에 대해, 각각의 컬러 채널에 대한 평균 색상 강도(예를 들어, 평균 녹색 강도, 평균 청색 강도, 및 평균 적색 강도)가 추적된다. 일 실시예에서, 평균 색상 강도는 (기울기 이미지와 달리) 원래의 이미지 내의 개별적인 픽셀들의 색상에 기초한다.
클러스터/버킷 특징의 표준 편차는 예시로서 그 특징 내에 포함된 픽셀들의 분산의 표시이다. 예를 들어, 표준 편차는 특정의 특징이 이미지 전체로부터의 픽셀들을 포함한다는 것을 나타낼 수 있다(즉, 비교적 높은 표준 편차). 환언하면, 그 특징이 비교적 멀리 떨어져 흩어져 있는 픽셀들을 포함한다. 표준 편차가 작은 경우, 이는 그 픽셀들이 실제로 이미지 내에서 서로 그룹화되어 있다는 것을 의미한다(예를 들어, 테이블 가운데에 있는 공을 형성하는 밝은 적색 픽셀들).
일 실시예에서, 이미지들을 비교하는 데 사용되는 부가의 측정치는 특징 벡터 자체의 크기이다. 예를 들어, 이미지 A가 모든 컬러 채널들에 걸쳐 10개의 클러스터/버킷 특징들(즉, 10개의 서로 다른 기울기 크기 값들)을 갖는 것을 생각해볼 수 있다. 각각의 클러스터는 예시로서 9개의 변수들(기울기, 평균 각도, 클러스터 내의 픽셀들의 수, 평균 색상, 평균 색상 표준 편차, 도심 X, 도심 Y, 표준 편차 x, 표준 편차 y)을 포함하고 있다. 그러면, 이미지 A를 기술하는 총 특징 벡터(total feature vector)는 크기가 90이다(예를 들어, 9*10 = 90). 이제부터, 이미지 B가 모든 컬러 채널들에 걸쳐 30개의 클러스터/버킷 특징들을 갖는 것을 생각해볼 수 있다. 그러면, 그의 특징 벡터는 훨씬 더 큰 300이다. 이러한 벡터 크기의 차이에도 불구하고, 매칭 알고리즘은 예시로서 여전히 이미지 A로부터의 특징들을 이미지 B로부터의 특징들과 매칭시키려고 시도한다(유의할 점은, B에서의 동일한 특징이 A 상에서의 동일한 특징에 여러번 매칭될 수 있다는 것이다). 그렇지만, 일 실시예에서, 부가의 특징 크기값(feature size value)이 계산되고 매칭 프로세스에서 고려된다. 일 실시예에서, 특징 크기값은 수학식 2와 같이 계산된다.
<수학식 2>
FestureSize = fvlA-fvlB/max (fvlA, fvlC)
여기서, fvlA는 특징 벡터 A의 길이이고, fvlB는 특징 벡터 B의 길이이며, fvlC는 특징 벡터 C의 길이이다. 이 특징 크기는 예시로서 유클리드 거리에 부가되고 장면들 사이에서 계산된다. 그에 따라, 총 특징 벡터 크기의 차이가 클수록, 이미지들이 더 "멀리" 있다. 실제는, 이것은 상대 이미지 복잡도의 양호한 지표이다(예를 들어, 기울기를 갖지 않는 이미지는 아주 적은 수의 클러스터/버킷 특징들을 가지며, 그에 따라 그 이미지가 많은 기울기 및 클러스터/버킷 특징들을 갖는 이미지와 잘 일치하지 않을 것으로 신속하게 판정될 수 있다).
주어진 이미지가 임의의 수의 픽셀들(어쩌면 심지어 300,000개 또는 그 이상)을 포함할 수 있다. 본 발명은 이미지 비교를 위해 많은 수의 개별적인 픽셀 특성들을 분석해야만 하는 처리 부담을 회피한다. 그 대신에, 클러스터/버킷 특징들의 비교적 적은 수의 특성들이 비교 프로세스를 지원한다. 많은 픽셀들을 포함하는 이미지가 적은 수의 클러스터/버킷 특징들로, 예를 들어, 컬러 채널당 10개의 특징들로 축소된다. 이어서, 각각의 특징에 대해 적은 수의 추적되는 변수들이 도출된다. 이에 따라, 이것으로 인해 정확하고 효율적인 이미지 비교 처리를 지원하는 비교적 적은 수의 데이터 점들이 얻어진다.
도 4는 예시적인 사용자 인터페이스(400)이다. 인터페이스(400)는 이미지 비교 프로세스(200 및 300)를 적용하는 시스템의 일부분이 사용자의 관점에서 볼 때 어떻게 생겼을 수 있는지를 나타낸 것이다. 단지 예시를 위해, 이 시스템이 동시적으로 획득된 타겟 이미지를 저장된 이미지들의 데이터베이스와 비교하기 위해 적용되는 것으로 가정한다.
타겟 이미지를 3개의 서로 다른 저장된 이미지(예를 들어, 데이터베이스 내의 3개의 가장 가깝게 일치하는 것)와 비교한 결과와 연관된 데이터가 도 4에 포함되어 있다. 박스들(402, 404 및 406) 각각은 3개의 이미지 중 하나와 연관된 기울기 이미지의 표현을 포함하고 있다(저장된 이미지당 하나의 기울기 이미지). 박스들(408, 410 및 412) 각각은 3개의 이미지를 타겟 이미지와 비교하는 프로세스 동안에 도출되는 통계의 그래픽 표현을 포함하고 있다(저장된 이미지당 하나의 세트의 통계).
박스들(408, 410 및 412) 각각은 10개의 서로 다른 막대를 갖는 차트를 포함하고 있다. 처음 9개의 막대 각각은 서로 다른 특징 변수의 이름이 표시되어 있고, 각각의 특징 변수가 클러스터/버킷 특징의 특성이다. 상세하게는, 9개의 특성은 면적(예를 들어, 특징에 포함된 픽셀들의 수), 각도(예를 들어, 특징 내의 픽셀들에 걸친 평균 기울기 각도), 크기(예를 들어, 특징 내의 픽셀들의 평균 크기), 색상(예를 들어, 특징 내의 픽셀들의 평균 색상), 색상 표준 편차, X축에 대한 표준 편차, Y축에 대한 표준 편차, X축에 대한 스큐, 및 Y축에 대한 스큐를 포함한다.
박스들(408, 410 및 412) 각각 내에서, 9개의 특성 각각에 대해, 그 값의 막대 표현과 함께 오차값(error value)이 제공되어 있다. 이 오차값은 예시로서, 그 특성에 대해, 연관된 저장된 이미지가 타겟 이미지와 비교될 때(예를 들어, 도 3과 관련하여 전술한 프로세스와 같이 클러스터/버킷 특징들의 정렬을 최적화하는 알고리즘에 따라 비교됨) 발생되는 오차를 나타낸다. 막대가 높을수록(즉, 오차값이 클수록), 타겟 이미지에 비해 저장된 이미지에 대한 오차가 많았다.
그에 따라, 타겟 장면과 가장 가깝게 일치하는 이미지가 가장 작은 막대(즉, 가장 작은 오차)를 갖는 이미지이다. 도 4에 도시된 일례의 경우에, 타겟 장면은 박스(408)와 연관된 저장된 이미지(즉, "WallWithMouse"라는 이름이 붙여진 장면)에 가장 가깝다. 유의할 점은, 박스들(408, 410 및 412) 각각에 포함된 10번째 값/막대가 현재의 장면과 저장된 장면 각각 사이의 클러스터/버킷 특징들의 수의 차이를 나타낸다는 것이다.
사용자 인터페이스(400)는 일련의 컨트롤들을 포함하는 영역(420)을 포함한다. 이 컨트롤들에 의해 예시로서 사용자는 비교 처리에서 반드시 똑같은 가중치를 부여받지는 않도록 특징 특성들/변수들[예를 들어, 박스들(408, 410 및 412)에서 살펴본 10개의 변수]을 조작할 수 있다. 사용자 인터페이스(400)는 또한 사용자가 크기 문턱값(예를 들어, 클러스터/버킷 특징들을 형성하는 프로세스에 부과될 최소 기울기 문턱값)을 선택적으로 부과할 수 있는 영역(422)도 포함한다. 영역(422)에 의해 또한 사용자는 특징 반경(feature radius)에 관한 요구조건을 부과할 수 있다. 물론, 당업자라면 인터페이스(400)가 컨트롤 및 데이터 표현이 사용자에게 어떻게 제시될 수 있는지의 많은 일례들 중 하나에 불과하다는 것을 잘 알 것이다. 다른 컨트롤 및/또는 데이터 표현 배열들이 본 발명의 범위 내에 속한다.
도 5는 실시예들이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(500)의 일례를 나타낸 것이다. 컴퓨팅 시스템 환경(500)은 적당한 컴퓨팅 환경의 일례에 불과하며 청구된 발명 대상의 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 컴퓨팅 환경(500)이 예시적인 운영 환경(500)에 예시된 컴포넌트들 중 어느 하나 또는 이들 컴포넌트의 임의의 조합에 관한 어떤 의존성 또는 요구조건을 갖는 것으로 해석되어서도 안된다.
실시예들은 많은 다른 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작한다. 다양한 실시예들에서 사용하기에 적합할 수 있는 공지의 컴퓨팅 시스템, 환경 및/또는 구성의 일례로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상기 시스템들 또는 장치들 중 어느 것이라도 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만, 이들로 제한되지 않는다.
실시예들이 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈 등의 컴퓨터-실행가능 명령어들과 관련하여 본 명세서에 기술되어 있다. 일반적으로, 프로그램 모듈들은 특정의 태스크들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 실시예들은 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈들이 메모리 저장 장치들을 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다(또는 그 중 어느 하나)에 위치할 수 있다.
도 5를 참조하면, 어떤 실시예들을 구현하는 예시적인 시스템은 컴퓨터(510) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(510)의 컴포넌트들로는 처리 장치(520), 시스템 메모리(530), 및 시스템 메모리를 비롯한 다양한 시스템 컴포넌트들을 처리 장치(520)에 결합시키는 시스템 버스(521)가 있을 수 있지만, 이들로 제한되지 않는다.
컴퓨터(510)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함하고 있다. 컴퓨터 판독가능 매체는 컴퓨터(510)에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이라도 될 수 있고, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 둘다를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨터(510)에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이들로 제한되지 않는다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 기타 전송 메카니즘 등의 피변조 데이터 신호(modulated data signal)에 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection) 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다. 상기한 것들의 임의의 것의 조합도 역시 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(530)는 판독 전용 메모리(ROM)(531) 및 랜덤 액세스 메모리(RAM)(532) 등의 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(510) 내의 구성요소들 간의 정보 전송을 돕는 기본 루틴들이 들어 있는 기본 입/출력 시스템(533)(BIOS)은 통상적으로 ROM(531)에 저장되어 있다. RAM(532)에는 통상적으로 처리 장치(520)에 의해 즉각 액세스될 수 있고 및/또는 현재 처리되고 있는 데이터 및/또는 프로그램 모듈이 들어 있다. 제한이 아닌 예로서, 도 5는 운영 체제(534), 애플리케이션 프로그램(535), 기타 프로그램 모듈(536), 및 프로그램 데이터(537)를 나타내고 있다. 애플리케이션(535)은 프로세스(200 및 300)와 동일하거나 유사한 기능을 구현하는 분석기/처리기일 수 있는 이미지 분석기/처리기를 포함하는 것으로 도시되어 있다. 이것은 컴퓨팅 시스템과 관련하여 본 발명의 실시예들의 가능한 구현의 일례에 불과하다.
컴퓨터(510)는 또한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 5는 비이동식, 비휘발성 자기 매체로부터 판독을 하거나 그에 기록을 하는 하드 디스크 드라이브(541), 이동식, 비휘발성 자기 디스크(552)로부터 판독을 하거나 그에 기록을 하는 자기 디스크 드라이브(551), 그리고 CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(556)로부터 판독을 하거나 그에 기록을 하는 광 디스크 드라이브(555)를 나타내고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타의 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(digital versatile disk), 디지털 비디오 테이프, 고상 RAM, 고상 ROM, 기타 등등이 있지만, 이들로 제한되지 않는다. 하드 디스크 드라이브(541)는 통상적으로 인터페이스(540) 등의 비이동식 메모리 인터페이스를 통해 시스템 버스(521)에 연결되고, 자기 디스크 드라이브(551) 및 광 디스크 드라이브(555)는 통상적으로 인터페이스(550) 등의 이동식 메모리 인터페이스에 의해 시스템 버스(521)에 연결된다.
이상에서 설명되고 도 5에 도시되어 있는 드라이브들 및 이들과 연관된 컴퓨터 저장 매체는 컴퓨터(510)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 5에서, 예를 들어, 하드 디스크 드라이브(541)는 운영 체제(544), 애플리케이션 프로그램(545), 기타 프로그램 모듈(546), 및 프로그램 데이터(547)를 저장하는 것으로 도시되어 있다. 유의할 점은 이들 컴포넌트가 운영 체제(534), 애플리케이션 프로그램(535), 기타 프로그램 모듈(536), 및 프로그램 데이터(537)와 동일하거나 다를 수 있다는 것이다. 운영 체제(544), 애플리케이션 프로그램(545), 기타 프로그램 모듈(546), 및 프로그램 데이터(547)에 다른 참조 번호가 부여되어 있는 것은 적어도 이들이 다른 사본임을 나타내기 위한 것이다. 애플리케이션(545)은 프로세스(200 및 300)와 동일하거나 유사한 기능을 구현하는 분석기/처리기일 수 있는 이미지 분석기/처리기를 포함하는 것으로 도시되어 있다. 이것은 컴퓨팅 시스템과 관련하여 본 발명의 실시예들의 가능한 구현의 일례에 불과하다.
사용자는 키보드(562) 및 포인팅 장치(561)(마우스, 트랙볼 또는 터치 패드 등) 등의 입력 장치를 통해 컴퓨터(510)에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도시 생략)로는 조이스틱, 게임 패드, 마이크, 위성 안테나, 스캐너, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 연결된 사용자 입력 인터페이스(560)를 통해 처리 장치(520)에 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수도 있다. 모니터(591) 또는 기타 유형의 디스플레이 장치도 비디오 인터페이스(590) 등의 인터페이스를 통해 시스템 버스(521)에 연결되어 있다. 모니터 이외에, 컴퓨터는 또한 출력 주변장치 인터페이스(595)를 통해 연결될 수 있는 스피커(597) 및 프린터(596) 등의 다른 주변 출력 장치도 포함할 수 있다.
컴퓨터(510)는 원격 컴퓨터(580) 등의 하나 이상의 원격 컴퓨터와의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 도 5에 도시된 논리적 연결은 원거리 통신망(WAN)(573)이지만, 그에 부가하여 또는 다른 대안으로서 다른 네트워크들을 포함할 수 있다. 컴퓨터(510)는 인터넷 등의 WAN(573)을 통해 통신을 설정하는 모뎀(572) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(572)은 사용자 입력 인터페이스(560) 또는 다른 적절한 메카니즘을 통해 시스템 버스(521)에 연결될 수 있다. 원격 컴퓨터(580)는 원격 애플리케이션(585)을 동작시키는 것으로 도시되어 있다. 애플리케이션(585)은 프로세스(200 및 300)와 동일하거나 유사한 기능을 구현하는 분석기/처리기일 수 있는 이미지 분석기/처리기를 포함하는 것으로 도시되어 있다. 이것은 컴퓨팅 시스템과 관련하여 본 발명의 실시예들의 가능한 구현의 일례에 불과하다.
발명 대상이 구조적 특징들 및/또는 방법적 동작들과 관련하여 기술되어 있지만, 첨부된 청구항들에 정의된 발명 대상이 이상에서 기술한 특정의 특징들 또는 동작들로 반드시 제한되는 것은 아니라는 것을 잘 알 것이다. 오히려, 이상에서 기술한 특정의 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (20)

  1. 컴퓨터-구현 이미지 처리 방법으로서,
    제1 이미지와 연관된 기울기 데이터의 집단(a collection of gradient data)을 생성하는 단계,
    상기 기울기 데이터의 집단에 반영되어 있는 기울기 크기(gradient magnitude)에 기초하여 상기 제1 이미지 내의 픽셀들을 제1 클러스터 특징들의 세트(a set of cluster features)에 배정하는 단계,
    상기 제1 클러스터 특징들의 세트를 저장하는 단계,
    상기 제1 클러스터 특징들의 세트 중 각각의 클러스터 특징에 대해 해당 클러스터 특징 내의 픽셀에 기초하여 하나 이상의 변수를 포함하는 특징 벡터를 생성하는 단계, 및
    상기 제1 이미지에 대한 총 특징 벡터의 크기를 결정하는 단계
    를 포함하는 이미지 처리 방법.
  2. 제1항에 있어서,
    상기 배정하는 단계는 주어진 제1 클러스터 특징 내의 픽셀들이 일치 문턱값을 초과하는 동일한 기울기 크기를 갖도록 픽셀들을 배정하는 단계를 포함하는
    이미지 처리 방법.
  3. 제1항에 있어서,
    제2 이미지와 연관된 제2 기울기 데이터의 집단을 생성하는 단계,
    상기 제2 기울기 데이터의 집단에 반영되어 있는 기울기 크기에 기초하여 상기 제2 이미지 내의 픽셀들을 제2 클러스터 특징들의 세트에 배정하는 단계,
    상기 제2 클러스터 특징들의 세트를 저장하는 단계,
    상기 제2 클러스터 특징들의 세트 중 각각의 클러스터 특징에 대해 해당 클러스터 특징 내의 픽셀에 기초하여 하나 이상의 변수를 포함하는 특징 벡터를 생성하는 단계,
    상기 제2 이미지에 대한 총 특징 벡터의 크기를 결정하는 단계, 및
    상기 제1 이미지에 대한 상기 총 특징 벡터의 크기와 상기 제2 이미지에 대한 상기 총 특징 벡터의 크기를 비교함으로써 상기 제1 이미지와 상기 제2 이미지를 비교하는 단계
    를 더 포함하는 이미지 처리 방법.
  4. 제3항에 있어서,
    상기 제1 클러스터 특징들의 세트를 상기 제2 클러스터 특징들의 세트에 대해 평가함으로써 상기 제1 이미지를 상기 제2 이미지와 비교하는 단계
    를 더 포함하는 이미지 처리 방법.
  5. 제4항에 있어서,
    상기 제1 클러스터 특징들의 세트를 상기 제2 클러스터 특징들의 세트에 대해 평가함으로써 상기 제1 이미지를 상기 제2 이미지와 비교하는 단계는 제1 통계 변수를 제2 통계 변수에 대해 평가하는 단계를 포함하고,
    상기 제1 통계 변수는 상기 제1 클러스터 특징들의 세트의 일부인 제1 클러스터 특징 내에 포함된 픽셀들의 속성을 나타내며,
    상기 제2 통계 변수는 상기 제2 클러스터 특징들의 세트의 일부인 제2 클러스터 특징 내에 포함된 픽셀들의 속성을 나타내는
    이미지 처리 방법.
  6. 제5항에 있어서,
    상기 제1 통계 변수는 상기 제1 클러스터 특징 내의 모든 픽셀들에 걸쳐 평균을 구함으로써 계산되는 속성을 나타내는
    이미지 처리 방법.
  7. 제4항에 있어서,
    상기 제1 이미지를 상기 제2 이미지와 비교하는 단계는, 상기 클러스터 특징들의 유사성에 기초하여, 상기 제1 클러스터 특징들의 세트 내의 클러스터 특징들을 상기 제2 클러스터 특징들의 세트 내의 클러스터 특징들과 정렬시키는 단계를 포함하는
    이미지 처리 방법.
  8. 제1항에 있어서,
    상기 세트 내의 각각의 클러스터 특징에 대해, 상기 클러스터 특징 내에 포함된 픽셀들의 속성들을 나타내는 통계 변수들의 세트를 계산하여 저장하는 단계
    를 더 포함하는 이미지 처리 방법.
  9. 제8항에 있어서,
    상기 통계 변수들의 세트는 상기 클러스터 특징 내의 픽셀들의 수를 나타내는 면적 변수(area variable)를 포함하는
    이미지 처리 방법.
  10. 제8항에 있어서,
    상기 통계 변수들의 세트는 상기 클러스터 특징 내의 픽셀들의 상대 위치를 나타내는 변수를 포함하는
    이미지 처리 방법.
  11. 제8항에 있어서,
    상기 통계 변수들의 세트는 상기 클러스터 특징 내의 픽셀들을 집단적으로 나타내는 평균 기울기 각도 변수(average gradient angle variable)를 포함하는
    이미지 처리 방법.
  12. 제8항에 있어서,
    상기 통계 변수들의 세트는 스큐 변수(skew variable)를 포함하는
    이미지 처리 방법.
  13. 제8항에 있어서,
    상기 통계 변수들의 세트는 표준 편차 변수(standard deviation variable)를 포함하는
    이미지 처리 방법.
  14. 이미지 인식을 수행하는 컴퓨터-구현 방법으로서,
    픽셀들의 집단을 획득하는 단계,
    기울기 크기(gradient magnitude)에 기초하여 상기 집단 내의 픽셀들의 적어도 일부를 클러스터 특징들의 세트로 그룹화하는 단계,
    상기 세트 내의 각각의 클러스터 특징에 대해, 상기 클러스터 특징 내의 상기 픽셀들의 집단적 속성(collective property)을 나타내는 통계 변수들을 생성하는 단계,
    상기 세트 내의 각각의 클러스터 특징에 대해, 상기 통계 변수들을 포함하는 특징 벡터를 생성하는 단계,
    상기 픽셀들의 집단에 대한 총 특징 벡터의 크기를 결정하는 단계, 및
    상기 픽셀들의 집단을 다른 픽셀들의 집단과 비교하기 위한 기초로서 상기 총 특징 벡터의 크기를 이용하는 단계
    를 포함하는 이미지 인식 방법.
  15. 제14항에 있어서,
    상기 픽셀들의 집단을 픽셀들의 다른 집단과 비교하기 위한 기초로서 상기 통계 변수들을 이용하는 단계를 더 포함하는
    이미지 인식 방법.
  16. 제15항에 있어서,
    상기 통계 변수들을 이용하는 단계는 상기 세트 내의 클러스터 특징들을 상기 픽셀들의 다른 집단과 연관된 다른 세트 내의 클러스터 특징들과 비교하는 단계를 포함하는
    이미지 인식 방법.
  17. 제14항에 있어서,
    상기 통계 변수들을 생성하는 단계는 상기 클러스터 특징 내에 포함된 픽셀들의 평균 색상(average color)을 생성하는 단계를 포함하는
    이미지 인식 방법.
  18. 제14항에 있어서,
    상기 통계 변수들을 생성하는 단계는 상기 클러스터 특징 내에 포함된 픽셀들의 평균 위치를 생성하는 단계를 포함하는
    이미지 인식 방법.
  19. 제14항에 있어서,
    상기 통계 변수들을 생성하는 단계는 상기 클러스터 특징 내에 포함된 픽셀들의 수를 생성하는 단계를 포함하는
    이미지 인식 방법.
  20. 삭제
KR1020107013366A 2007-12-24 2008-12-20 불변적인 시각적 장면 및 객체 인식 KR101548928B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/963,858 US8036468B2 (en) 2007-12-24 2007-12-24 Invariant visual scene and object recognition
US11/963,858 2007-12-24

Publications (2)

Publication Number Publication Date
KR20100098641A KR20100098641A (ko) 2010-09-08
KR101548928B1 true KR101548928B1 (ko) 2015-09-02

Family

ID=40788718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107013366A KR101548928B1 (ko) 2007-12-24 2008-12-20 불변적인 시각적 장면 및 객체 인식

Country Status (6)

Country Link
US (2) US8036468B2 (ko)
EP (1) EP2235680A4 (ko)
JP (1) JP5261501B2 (ko)
KR (1) KR101548928B1 (ko)
CN (1) CN101911116B (ko)
WO (1) WO2009082719A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246688A1 (en) * 2009-03-26 2010-09-30 Apple Inc. Blind noise analysis for video compression
JP5272890B2 (ja) * 2009-05-21 2013-08-28 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
US9164131B2 (en) * 2010-05-13 2015-10-20 Tektronix, Inc. Signal recognition and triggering using computer vision techniques
US8942917B2 (en) 2011-02-14 2015-01-27 Microsoft Corporation Change invariant scene recognition by an agent
SE536299C2 (sv) * 2011-06-08 2013-08-13 Imtt Svenska Ab Förfarande för att jämföra och identifiera likhetsgrad mellan bilder
KR101951414B1 (ko) * 2011-06-22 2019-02-22 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR101366860B1 (ko) * 2011-09-20 2014-02-21 엘지전자 주식회사 이동 로봇 및 이의 제어 방법
US8655029B2 (en) * 2012-04-10 2014-02-18 Seiko Epson Corporation Hash-based face recognition system
US20140089423A1 (en) * 2012-09-27 2014-03-27 United Video Properties, Inc. Systems and methods for identifying objects displayed in a media asset
JP6322593B2 (ja) * 2015-02-24 2018-05-09 日本電信電話株式会社 画像照合装置、及び方法
US9704025B2 (en) 2015-07-31 2017-07-11 King Abdulaziz City For Science And Technology Identifying non-occluded faces by learning from partially occluded faces
US10416877B2 (en) * 2015-08-25 2019-09-17 Myscript System and method of guiding handwriting input
US10169684B1 (en) 2015-10-01 2019-01-01 Intellivision Technologies Corp. Methods and systems for recognizing objects based on one or more stored training images
CN112163121B (zh) * 2020-11-03 2021-03-23 万得信息技术股份有限公司 一种基于大数据的视频内容信息智能分析处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002170122A (ja) * 2000-09-20 2002-06-14 Hitachi Software Eng Co Ltd テクスチャ解析方法およびプログラム
JP2004318879A (ja) * 2003-04-11 2004-11-11 Ricoh Co Ltd 画像内容を比較する自動化技術
JP2007156626A (ja) * 2005-12-01 2007-06-21 Nissan Motor Co Ltd 物体種別判定装置及び物体種別判定方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093869A (en) * 1990-12-26 1992-03-03 Hughes Aircraft Company Pattern recognition apparatus utilizing area linking and region growth techniques
EP0532052B1 (en) * 1991-09-12 2008-02-13 FUJIFILM Corporation Method for extracting object images and method for detecting movements thereof
US5604822A (en) * 1993-11-12 1997-02-18 Martin Marietta Corporation Methods and apparatus for centroid based object segmentation in object recognition-type image processing system
US5640468A (en) * 1994-04-28 1997-06-17 Hsu; Shin-Yi Method for identifying objects and features in an image
JPH07299053A (ja) * 1994-04-29 1995-11-14 Arch Dev Corp コンピュータ診断支援方法
KR0174454B1 (ko) * 1995-06-30 1999-03-20 배순훈 특징점 기반 움직임 보상에서의 에지 검출, 세선화 방법 및 장치
US5845007A (en) 1996-01-02 1998-12-01 Cognex Corporation Machine vision method and apparatus for edge-based image histogram analysis
EP0901105A1 (en) * 1997-08-05 1999-03-10 Canon Kabushiki Kaisha Image processing apparatus
US6094508A (en) * 1997-12-08 2000-07-25 Intel Corporation Perceptual thresholding for gradient-based local edge detection
EP0996091B1 (en) * 1998-04-07 2015-12-30 Omron Corporation Image processing device and method, medium on which program for image processing is stored, and inspecting device
US6711293B1 (en) * 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image
US6647131B1 (en) * 1999-08-27 2003-11-11 Intel Corporation Motion detection using normal optical flow
US6576099B2 (en) 2000-03-23 2003-06-10 Cabot Corporation Oxygen reduced niobium oxides
US6694049B1 (en) * 2000-08-17 2004-02-17 The United States Of America As Represented By The Secretary Of The Navy Multimode invariant processor
US20020168091A1 (en) * 2001-05-11 2002-11-14 Miroslav Trajkovic Motion detection via image alignment
WO2005038700A1 (en) 2003-10-09 2005-04-28 University Of York Image recognition
EP1530156B1 (en) * 2003-11-07 2012-03-14 Mitsubishi Electric Information Technology Centre Europe B.V. Visual object detection
JP4121026B2 (ja) * 2004-01-21 2008-07-16 富士フイルム株式会社 撮像装置および方法並びにプログラム
US7376246B2 (en) * 2005-06-27 2008-05-20 Mitsubishi Electric Research Laboratories, Inc. Subspace projection based non-rigid object tracking with particle filters
US20070070365A1 (en) * 2005-09-26 2007-03-29 Honeywell International Inc. Content-based image retrieval based on color difference and gradient information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002170122A (ja) * 2000-09-20 2002-06-14 Hitachi Software Eng Co Ltd テクスチャ解析方法およびプログラム
JP2004318879A (ja) * 2003-04-11 2004-11-11 Ricoh Co Ltd 画像内容を比較する自動化技術
JP2007156626A (ja) * 2005-12-01 2007-06-21 Nissan Motor Co Ltd 物体種別判定装置及び物体種別判定方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
키워드에 대응하는 화상검색 알고리즘의 자동생성법(일본어)*

Also Published As

Publication number Publication date
KR20100098641A (ko) 2010-09-08
JP2011508323A (ja) 2011-03-10
US20110299787A1 (en) 2011-12-08
US8036468B2 (en) 2011-10-11
CN101911116A (zh) 2010-12-08
US20090161968A1 (en) 2009-06-25
WO2009082719A1 (en) 2009-07-02
EP2235680A1 (en) 2010-10-06
US8406535B2 (en) 2013-03-26
EP2235680A4 (en) 2018-03-21
JP5261501B2 (ja) 2013-08-14
CN101911116B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
KR101548928B1 (ko) 불변적인 시각적 장면 및 객체 인식
US10964060B2 (en) Neural network-based camera calibration
KR101117837B1 (ko) 멀티 스케일 지향 패치를 이용한 멀티 이미지 특징 매칭
US6807286B1 (en) Object recognition using binary image quantization and hough kernels
US8538164B2 (en) Image patch descriptors
Zhang et al. Detecting and extracting the photo composites using planar homography and graph cut
US20070041638A1 (en) Systems and methods for real-time object recognition
JP6393230B2 (ja) オブジェクト検出方法及び画像検索システム
JP2004178592A (ja) 画像の幾何学的に変換されたコピーを検出する方法及びシステム
JP2008102611A (ja) 画像処理装置
JP5656768B2 (ja) 画像特徴量抽出装置およびそのプログラム
JP2009064434A (ja) 判定方法、判定システムおよびコンピュータ読み取り可能な媒体
Lecca et al. Comprehensive evaluation of image enhancement for unsupervised image description and matching
CN107368832A (zh) 基于图像的目标检测及分类方法
US7440636B2 (en) Method and apparatus for image processing
US20140376822A1 (en) Method for Computing the Similarity of Image Sequences
JP2006031114A (ja) 画像分割処理システム
CN105074729A (zh) 光度边缘描述
Yang et al. Image copy–move forgery detection based on sped-up robust features descriptor and adaptive minimal–maximal suppression
Li et al. Image splicing localization using superpixel segmentation and noise level estimation
JP4953211B2 (ja) 特徴抽出装置および特徴抽出方法
Frisky Single Image Depth Prediction on one perspective cultural heritage artefact
Venkatesan et al. Supervised and unsupervised learning approaches for tracking moving vehicles
Gupta Urban Land Chang Detection on Remote Sensing Images Based on Local Similarity Siamese Network
May Data Analytics and Methods for Improved Feature Selection and Matching

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 5