KR20180054808A - 이미지들 내의 움직임 검출 - Google Patents

이미지들 내의 움직임 검출 Download PDF

Info

Publication number
KR20180054808A
KR20180054808A KR1020187011276A KR20187011276A KR20180054808A KR 20180054808 A KR20180054808 A KR 20180054808A KR 1020187011276 A KR1020187011276 A KR 1020187011276A KR 20187011276 A KR20187011276 A KR 20187011276A KR 20180054808 A KR20180054808 A KR 20180054808A
Authority
KR
South Korea
Prior art keywords
image
computing system
images
camera
regions
Prior art date
Application number
KR1020187011276A
Other languages
English (en)
Other versions
KR102068719B1 (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 KR20180054808A publication Critical patent/KR20180054808A/ko
Application granted granted Critical
Publication of KR102068719B1 publication Critical patent/KR102068719B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/262Analysis of motion using transform domain methods, e.g. Fourier domain methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/337Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

컴퓨팅 시스템이 카메라에 의해 캡처된 제 1 이미지 및 제 2 이미지를 수신한다. 컴퓨팅 시스템은, 이미지들을 사용하여, 제 1 이미지로부터 제 2 이미지로의 카메라의 이동을 표시하는 수학적 변환을 발생시킨다(110). 컴퓨팅 시스템은 제 1 이미지 및 수학적 변환을 사용하여, 제 2 이미지가 캡처된 때의 카메라의 위치로부터 제 1 이미지에 의해 캡처된 장면을 제시하는 제 1 이미지의 수정된 형태를 발생시킨다(120, 115). 컴퓨팅 시스템은, 제 1 이미지의 수정된 형태를 제 2 이미지와 비교함으로써, 장면 내의 객체의 위치가 이동한 제 1 이미지 혹은 제 2 이미지의 일부분을 결정한다(130).

Description

이미지들 내의 움직임 검출
본 문서는 일반적으로 이미지(image)들 내의 움직임(motion)을 검출하는 것에 관한 것이다.
사람들이 내장형 카메라(built-in camera)들을 포함하는 모바일 컴퓨팅 디바이스(mobile computing device)들, 예컨대 스마트폰들 혹은 태블릿 컴퓨팅 디바이스들과 같은 것을 가지고 다니는 것이 점점 더 보편화되고 있다. 이러한 디바이스들의 프로세싱 속도 및 저장 용량이 증가함에 따라, 사람들은 (예를 들어, 짧은 시간에 걸쳐 다수의 픽처(picture)들을 캡처(capture)하기 위해 셔터 버튼(shutter button)을 누른 상태를 유지함으로써 캡처되는) 다양한 일련의 픽처들 혹은 비디오(video)들을 캡처하기 위해 더 보편적으로 이러한 디바이스들을 사용할 수 있다. 이러한 비디오들 및 일련의 픽처들은 장면(scene)을 캡처할 수 있고, 이러한 장면 내에서 객체(object)들 혹은 사람들은 이미지에서 이미지로 장면에 걸쳐 이동한다.
본 문서는 이미지들 내의 움직임을 검출하기 위한 기법들, 방법들, 시스템들, 및 다른 메커니즘(mechanism)들을 설명한다. 움직임-검출 메커니즘은, 이미지들에 의해 보여지는 장면 내에서 어떤 객체들이 이동했는지를 식별하기 위해 최근에-수신된 이미지와 이전에-수신된 이미지를 비교할 수 있다. 카메라가 이동하고 있었을 수 있기 때문에(이것은 배경(background)에 있는 정지된 객체들이 이미지들 각각 내에서 상이한 위치들에서 출현하도록 하게 함), 움직임-검출 메커니즘은 카메라가 얼마만큼 이동했는지를 식별하기 위해 이미지들을 분석할 수 있다. 그 다음에 움직임-검출 메커니즘은 이러한 분석을 이용해 이전에-수신된 이미지를 수정하여 최근에-수신된 이미지가 캡처된 때의 카메라의 추정된 배향(orientation)으로부터 해당 콘텐츠(content)를 보여주도록 할 수 있다. 이러한 방식으로, 수정된 이전에-수신된 이미지와 현재-수신된 이미지 간에 배경은 실질적으로 동일한 상태 및 정지된 상태로 유지되도록 보일 수 있다. 이것은 시스템으로 하여금 이동하고 있는 객체들을 배경과는 독립적으로 식별하도록 두 개의 이미지들을 분석할 수 있게 한다.
아래에서 설명되는 실시예들에 대한 추가적인 설명으로서, 본 개시내용은 다음과 같은 실시예들을 설명한다.
실시예 1은 이미지들 내의 움직임을 검출하기 위해 컴퓨터로-구현되는 방법(computer-implemented method)이다. 본 방법은, 컴퓨팅 시스템(computing system)에 의해, 카메라에 의해 캡처된 제 1 이미지를 수신하는 것을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해, 카메라에 의해 캡처된 제 2 이미지를 수신하는 것을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해 그리고 제 1 이미지 및 제 2 이미지를 사용하여, 제 1 이미지 및 제 2 이미지에서 반영되는 장면에 관해 제 1 이미지로부터 제 2 이미지로의 카메라의 이동(movement)을 표시하는 수학적 변환(mathematical transformation)을 발생시키는 것을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해 그리고 제 1 이미지 및 수학적 변환을 사용하여, 제 2 이미지가 캡처된 때의 카메라의 위치로부터 제 1 이미지에 의해 캡처된 장면을 제시(present)하는 제 1 이미지의 수정된 형태(modified version)를 발생시키는 것을 포함하고, 여기서 제 1 이미지가 캡처된 때의 카메라의 위치는 제 2 이미지가 캡처된 때의 카메라의 위치와는 다르다. 본 방법은, 컴퓨팅 시스템에 의해, 제 1 이미지의 수정된 형태를 제 2 이미지와 비교함으로써, 장면 내의 객체의 위치가 이동한 제 1 이미지 혹은 제 2 이미지의 일부분(portion)을 결정하는 것을 포함한다.
실시예 2는 실시예 1의 컴퓨터로-구현되는 방법으로서, 여기서 제 2 이미지는 카메라가 일련의 이미지들에서 제 1 이미지를 캡처한 이후 카메라가 일련의 이미지들에서 캡처한 이미지이다.
실시예 3은 실시예 1의 컴퓨터로-구현되는 방법으로서, 여기서 제 1 이미지의 수정된 형태를 제 2 이미지와 비교하는 것은, 제 1 이미지의 수정된 형태와 제 2 이미지 간의 픽셀 차이(pixel difference)를 식별하는 것을 포함한다.
실시예 4는 실시예 1의 컴퓨터로-구현되는 방법으로서, 여기서 제 1 이미지의 수정된 형태를 제 2 이미지와 비교하는 것은: 컴퓨팅 시스템에 의해, 객체의 가장자리(edge)가 존재하는 제 1 이미지 혹은 제 2 이미지의 일부분을 식별하기 위해 제 1 이미지 혹은 제 2 이미지의 공간 변화도(spatial gradient)를 계산하는 것; 컴퓨팅 시스템에 의해, 제 1 이미지의 수정된 형태와 제 2 이미지 간의 픽셀 차이를 식별하는 것; 그리고 컴퓨팅 시스템에 의해, 객체의 이동하는 가장자리가 존재하는 제 1 이미지 혹은 제 2 이미지의 일부분을 결정하는 것을 포함하고, 여기서 객체의 이동하는 가장자리가 존재하는 제 1 이미지 혹은 제 2 이미지의 일부분을 결정하는 것은, (ⅰ) 계산된 공간 변화도가 제 1 이미지 혹은 제 2 이미지의 일부분 내에 객체의 가장자리가 존재한다고 표시하는 것의 결과로서, 아울러 (ⅱ) 제 1 이미지의 일부분에서 제 1 이미지의 수정된 형태와 제 2 이미지 간의 식별된 픽셀 차이가 존재하는 것의 결과로서 일어난다.
실시예 5는 실시예 1의 컴퓨터로-구현되는 방법이다. 본 방법은 또한, 컴퓨팅 시스템에 의해, 제 1 이미지 혹은 제 2 이미지의 복수의 영역들의 격자(grid)를 이러한 복수의 영역들의 격자에서의 이동에 대한 분석을 위해 식별하는 것(여기서, 복수의 영역들의 격자는 복수의 행(row)들을 포함하고, 각각의 행은 복수의 영역들 중 복수 개의 영역들을 포함함); 그리고 컴퓨팅 시스템에 의해 그리고 복수의 영역들 중 하나보다 많은 영역에 대해, 각각의 영역의 계산된 움직임을 식별시키는 값을 결정하는 것을 포함한다. 장면 내의 객체에서의 위치가 이동한 제 1 이미지 혹은 제 2 이미지의 일부분을 결정하는 것은 복수의 영역들 중 특정 영역에 대한 계산된 움직임을 식별시키는 값을 결정하는 것을 포함한다.
실시예 6은 실시예 5의 컴퓨터로-구현되는 방법으로서, 여기서 복수의 영역들의 격자 내의 모든 영역들은 크기 및 형상이 동일하다.
실시예 7은 실시예 5의 컴퓨터로-구현되는 방법이다. 본 방법은 또한, 컴퓨팅 시스템에 의해, 제 1 이미지와 제 2 이미지 간의 이동의 일반 수준(general level)을 식별시키는 값을 발생시키는 것을 포함하고, 이러한 제 1 이미지와 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 것은, 각각의 영역들에 대한 계산된 움직임을 식별시킨 값들 중 적어도 일부를 결합함으로써, 수행된다.
실시예 8은 실시예 1의 컴퓨터로-구현되는 방법이다. 본 방법은 또한, 컴퓨팅 시스템에 의해, 복수의 다른 이미지들에 추가하여 적어도 제 1 이미지 및 제 2 이미지를 포함하는 이미지들의 시퀀스(sequence)를 수신하는 것; 컴퓨팅 시스템에 의해, 제 1 이미지의 수정된 형태와 제 2 이미지의 비교에 근거하여 제 1 이미지 혹은 제 2 이미지에 의해 반영된 이동의 수준을 결정하는 것; 그리고 컴퓨팅 시스템에 의해 그리고 제 1 이미지 혹은 제 2 이미지에 의해 반영된 이동의 결정된 수준에 근거하여, (ⅰ) 적어도 사용자 입력이 제 1 이미지 혹은 제 2 이미지를 컴퓨터 저장소(computer storage)로부터 제거할 때까지 제 1 이미지 혹은 제 2 이미지를 컴퓨터 저장소 내에 유지시킬 것, 그리고 (ⅱ) 복수의 다른 이미지들 중 적어도 하나가 저장소로부터 제거돼야 함을 특정하는 사용자 입력을 수신함이 없이 복수의 다른 이미지들 중 적어도 하나를 저장소로부터 제거할 것을 결정하는 것을 포함한다.
실시예 9는 실시예 1의 컴퓨터로-구현되는 방법으로서, 여기서 카메라의 이동을 표시하는 수학적 변환은 호모그래피 변환 행렬(homography transform matrix)을 포함한다.
또 하나의 다른 실시예에서, 컴퓨터로-구현되는 방법은 이미지들 내의 움직임을 검출하기 위한 방법이다. 본 방법은, 컴퓨팅 시스템에 의해, 카메라에 의해 캡처된 제 1 이미지를 수신하는 것을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해, 카메라에 의해 캡처된 제 2 이미지를 수신하는 것을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해, 제 2 이미지의 복수의 영역들의 격자를 이러한 복수의 영역들의 격자에서의 이동에 대한 분석을 위해 식별하는 것을 포함하고, 여기서, 복수의 영역들의 격자는 복수의 행들을 포함하고, 각각의 행은 복수의 영역들을 포함한다. 본 방법은, 컴퓨팅 시스템에 의해 그리고 복수의 영역들 중 하나보다 많은 영역에 대해, 각각의 영역의 계산된 움직임을 식별시키는 값을 결정하는 것을 포함한다.
특정 구현예들은 특정 사례들에서 다음과 같은 이점들 중 하나 혹은 그 이상의 이점을 실현한다. 본 개시내용에서 설명되는 기술은 디바이스로 하여금 카메라 자체가 이동하고 있는 경우에도 카메라에 의해 캡처되고 있는 장면 내의 객체가 언제 이동하는 지를 결정할 수 있게 한다. 이처럼, 본 디바이스는 카메라 이동에 의해 초래되는 장면의 배경의 외견상 이동(apparent movement)과 장면 내의 객체의 이동을 구분할 수 있다(예를 들어, 청구항 제1항, 제3항, 제4항, 제10항, 제12항, 제13항, 제19항, 제21항, 및 제22항에서, 제 1 이미지의 수정된 형태를 발생시키는 것 그리고 제 1 이미지의 수정된 형태를 제 2 이미지와 비교하는 것에 관한 논의 참조). 본 디바이스는 카메라의 이동을 이동에 관한 8 자유도 모두에서 보상함으로써 배경 이동과 전경(foreground)을 구분할 수 있다(예를 들어, 앞서 언급된 동일한 청구항들 참조). 본 디바이스는 이동이 일어나는 이미지의 영역을 결정할 수 있을 뿐만 아니라 움직임 현저성(motion saliency)의 일반적인 표시(general indication)를 발생시킬 수 있는데, 예를 들어, 장면 내의 이동의 중요성(significance)의 표시를 발생시킬 수 있다(예를 들어, 청구항 제7항, 제16항, 및 제25항에서, 이동의 일반 수준을 식별시키는 값을 발생시키는 것에 관한 논의 참조). 더욱이, 본 명세서에서 설명되는 프로세스들은 상당량의 프로세싱 파워를 요구하지 않을 수 있고, 그리고 카메라 움직임의 8 자유도(eight degrees-of-freedom)를 완전하게-보상(fully-compensate)할 수 있으며, 따라서 모바일 컴퓨팅 디바이스들 상에서의 실-시간 계산(real-time computation)에 적합할 수 있다.
하나 이상의 구현예들에 관한 세부설명은 아래의 설명 및 첨부 도면에서 제시된다. 다른 특징들, 목적들, 및 이점들은 본 명세서의 설명 및 도면으로부터, 아울러 청구항들로부터 명백하게 될 것이다.
도 1은 이미지들 내의 움직임을 검출하기 위한 프로세스의 도식적 예시를 보여준다.
도 2는 두 개의 이미지들을 비교하기 위한 프로세스의 도식적 예시를 보여준다.
도 3a 및 도 3b는 이미지들 내의 움직임을 검출하기 위한 프로세스의 흐름도 예시를 보여준다.
도 4는 본 문서에서 설명되는 시스템들 및 방법들을 클라이언트로서 또는 서버 혹은 복수의 서버들로서 구현하기 위해 사용될 수 있는 컴퓨팅 디바이스들의 블록도이다.
다양한 도면들에서의 유사한 참조 기호들은 유사한 요소들을 표시한다.
본 문서는 일반적으로 이미지들 내의 움직임을 검출하는 것을 설명한다. 컴퓨팅 시스템은 두 개의 이미지들을 비교하여 이미지의 어떤 부분들이 현실에서 이동하고 있는 객체들을 보여주는지를 식별함과 아울러 이러한 이동에 대한 중요성의 수준을 식별시키는 값을 발생시킴으로써 움직임-검출 프로세스를 수행할 수 있다(예를 들어, 공중으로 뛰어오르는 사람은 바람에 표류하는 다수의 작은 나뭇잎들보다 더 중요할 수 있음). 컴퓨팅 시스템은 카메라의 이동을 보상할 수 있고, 이러한 보상은 컴퓨팅 시스템이 카메라의 이동으로 인해 하나의 이미지로부터 다음 이미지로 이동하고 있는 것처럼 보이는 정지된 객체들을 이러한 정지된 객체들에 대해 현실에서 실제 이동하고 있는 그러한 객체들과 구분하는 것을 도울 수 있다.
이미지의 어떤 부분들이 이동하고 있는지의 식별, 그리고 그러한 이동의 중요성의 수준은 컴퓨팅 시스템 혹은 다른 컴퓨팅 시스템들에 의해 다양한 방식으로 사용될 수 있다. 하나의 예시적 사용은 컴퓨팅 시스템으로 하여금 컴퓨팅 시스템에 의해 캡처되는 일련의 이미지들 중 어떤 이미지들을 저장할 것인지 그리고 어떤 이미지들을 삭제할 것인지를 결정하는 것을 돕는 것이다. 예시로서, 사용자가 일련의 이미지들을 캡처하기 위해 셔터 버튼을 누르고 있다면, 이러한 이미지들 중 다수의 이미지들은 거의 동일할 수 있고, 이러한 거의-동일한 이미지들을 모두 영구히 저장하는 것, 혹은 이들을 사용자에게 디스플레이를 위해 제공하는 것은 도움이 되지 않을 수 있다. 이처럼, 컴퓨팅 시스템은 어떤 이미지들이 다른 이미지들에 대해 이동의 중요한 수준을 나타내는지를 결정할 수 있고, 그리고 이동의 이러한 중요한 수준을 보여주는 그러한 이미지들만을 저장할 수 있다. 이러한 프로세스가 도 1에 관하여 도식적으로 예시되고 설명된다.
도 1은 이지미들 내의 움직임을 검출하기 위한 프로세스의 도식적 예시를 보여준다. 이러한 예시에서, 모바일 컴퓨팅 디바이스(본 예에서는 전화기, 하지만 이것은 또한 예를 들어, 랩탑(laptop) 혹은 독립형 카메라(stand-alone camera)일 수 있음)의 사용자는 제자리에서 웅크린 다음 공중으로 뛰어오르는 친구의 일련의 이미지들(A-D)을 캡처했다. 사용자는 자신의 전화기 카메라의 카메라 렌즈를 친구를 향하도록 배향시켰을 수 있고, 그리고 사용자는 전화기로 하여금 뛰어오르는 친구의 일련의 이미지들을 캡처하도록 친구가 뛰어오르기 직전에 셔터 버튼을 누르고 누른 상태로 있었을 수 있다. 일련의 이미지들은 뛰어오를 준비를 하는 친구의 두 개의 이미지들(이미지 A 및 이미지 B), 공중에 뛰어오른 친구의 이미지(이미지 C), 그리고 다시 지면(ground)으로 돌아온 친구의 이미지(이미지 D)를 포함할 수 있다.
이러한 예시는 용이한 예시적 설명을 위해 전화기가 4개의 이미지들을 캡처하는 것을 보여주고 있지만, 전화기가 동일한 기간에 걸쳐 수십 개의 이미지들을 캡처하는 것이 가능하다. 이러한 이미지들을 모두 영구히 정하는 것은 의미 없는 일일 수 있는데, 왜냐하면 이미지들은 잠재적으로-귀중한 컴퓨터 메모리를 점유하기 때이며, 그리고 이미지들 중 일부는 거의 동일할 수 있기 때문이다. 이처럼, 전화기는 사용자가 이미지들 중 어떤 이미지를 볼 때 가장 관심을 가질 수 있는지를 추정하도록 프로그래밍될 수 있고, 그리고 나머지 이미지들을 삭제할 수 있는데, 심지어 그 삭제되는 이미지들을 사용자의 검토(review) 혹은 디스플레이(display)를 위해 제공함이 없이 나머지 이미지들을 삭제할 수 있다. 예로서, 전화기는 캡처된 이미지들을 버퍼(buffer) 내에 저장할 수 있으며, 하지만 버퍼들이 가득 채워지면, 컴퓨팅 시스템은 낮은 점수가 부여된 이미지들을 삭제할 수 있어 수신되고 있는 더-높게 점수가 부여된 이미지들을 버퍼가 저장할 수 있도록 할 수 있다. 컴퓨팅 시스템은 컴퓨팅 시스템이 다음 이미지를 캡처하기 전에 각각의 새롭게-수신되는 이미지로 점수부여 프로세스(scoring process)를 수행할 수 있거나 혹은 적어도 시작할 수 있다.
이미지들 내의 움직임을 식별하기 위한 제 1 단계는 비교를 위해 두 개의 이미지들을 식별하는 것일 수 있다. 두 개의 이미지들은 시간적으로 서로 인접하여 캡처된 이미지들일 수 있다. 예를 들어, 이미지들은 비디오 내의 인접하는 프레임(frame)들일 수 있다.
다음으로, 컴퓨팅 시스템은 전화기의 이동을 보상할 수 있다. 전화기는 모바일 디바이스이기 때문에, 사용자가 일련의 픽처들을 캡처하고 있음에 따라 사용자는 (예를 들어, 전화기를 병진(translating)시킴으로써 혹은 전화기를 선회(twisting)시킴으로써) 전화기를 이동시킬 수 있다. 전화기의 이동으로 인해, 두 개의 이미지들을 서로 직접적으로 비교하는 것은 어려울 수 있는데, 왜냐하면 이미지들에 의해 캡처된 장면 내의 정지된 아이템(item)들의 위치가 카메라 이동으로 인해 이미지들의 상이한 위치들에서 출현할 수 있기 때문이다.
컴퓨팅 시스템은, 제 1 이미지 및 제 2 이미지를 사용하여, 제 1 이미지 및 제 2 이미지에서 반영되는 장면에 관해 제 1 이미지로부터 제 2 이미지로의 카메라의 이동을 표시하는 수학적 변환을 발생시킴으로써 카메라의 이동을 보상할 수 있다(박스(110)). 수학적 변환(아이템(115))은 하나의 이미지로부터 다음 이미지까지의 장면에 대한 카메라의 이동을 표시하거나 표시하는데 사용될 수 있는, 수학적 숫자, 일련의 숫자들, 행렬(matrix), 혹은 알고리즘일 수 있다. 이러한 변환은 이미지들 각각 내의 동일한 특징(feature)들의 위치들을 식별하고 그 특징들이 하나의 이미지로부터 다음 이미지까지 어떻게 이동했는지를 식별함으로써 발생될 수 있다. 아래에서 설명되는 바와 같이, 수학적 변환(115)은 이미지들 중 하나의 이미지의 픽셀들을 수정하는데 사용될 수 있는데, 이러한 수정은 상이한 위치(예를 들어, 두 개의 이미지들 중 다른 이미지가 캡처된 위치)로부터 동일한 시간에 일어난 동일한 장면의 캡처를 추정하기 위한 것이다
그 다음에, 컴퓨팅 시스템은, 제 1 이미지 및 수학적 변환을 사용하여, 제 1 이미지의 수정된 형태를 발생시킬 수 있다. 제 1 이미지의 수정된 형태는 제 2 이미지가 캡처된 때의 카메라의 위치로부터 제 1 이미지에 의해 캡처된 장면을 제시할 수 있다(박스(120)). 달리 말하면, 컴퓨팅 시스템은 제 1 이미지를 취하여 제 1 이미지가 수학적 프로세스를 거치게 할 수 있는데, 여기서 수학적 프로세스는 또한 입력으로서 수학적 변환(115)을 사용한다. 수학적 프로세스의 효과는 수학적 변환에 의해 특정된 혹은 표시된 방식으로 제 1 이미지 내의 픽셀들 중 적어도 일부를 새로운 위치들로 이동시키는 것일 수 있다. 이러한 재정렬은 새로운 이미지를 발생시킬 수 있는데, 이러한 새로운 이미지는 본래의 이미지의 "변형된(warped)" 형태이고 상이한 카메라 관점으로부터 본래의 이미지를 보여주는 것으로 나타난다. 수정된 제 1 이미지가 도 1에서 이미지 B'(아이템(125))로서 예시되어 있다. 제 1 이미지가 캡처된 때의 카메라의 위치(position)(예를 들어, 배치한 곳 및/또는 배향)는 제 2 이미지가 캡처된 때의 카메라의 위치와는 다를 수 있다.
그 다음에, 컴퓨팅 시스템은 제 1 이미지의 수정된 형태를 제 2 이미지와 비교할 수 있다(박스(130)). 이러한 비교의 계산 출력(computational output)은 (예를 들어, 정지된 배경에 대해) 객체가 이동한 제 2 이미지의 일부분의 표시를 포함할 수 있다. 이러한 비교의 하나 이상의 출력들은 도 1에서 움직임 데이터(motion data)(135)로서 예시되어 있다. 비교 프로세스들은 도 2에 관한 추가 상세설명에서 기술된다. 하지만 일반적으로, 비교 프로세스들은 (카메라 이동을 보상한 이후에) 이미지들의 어떤 부부들이 변경되었는지를 식별한다. 비교 프로세스들은 추가적으로 이미지들의 어떤 부분들이 객체들의 가장자리들을 나타내는지를 식별할 수 있고, 그리고 계산들은 덜-눈에 띄는 가장자리(less-prominent edge)들을 갖는 특징들에 대한 변경들보다 더 눈에 띄는 가장자리들의 위치들에서의 변경들을 강조할 수 있다.
일부 구현예들에서, 전화기는 이미지를 저장(save)할지 아니면 이미지를 폐기(discard)할지를 선택하기 위해 움직임 데이터를 사용한다(박스(140)). 예를 들어, 앞에서 설명된 바와 같이, 디바이스는 저장할 필요가 있는 것보다 혹은 사용자에게 보여줄 필요가 있는 것보다 더 많은 이미지들을 캡처할 수 있다. 따라서, 디바이스는 사용자가 이미지들을 볼 기회를 제공받기 전에 그 캡처된 이미지들 중 일부를 메모리로부터 제거할 수 있다(예를 들어, 이미지들은 사용자 입력 없이 제거됨). 대안적으로, 디바이스는 (예를 들어, 이미지들을 보기 위해 추가적인 사용자 입력을 요구함으로써, 혹은 이미지들을 서로 다르게 라벨링(labelling)함으로써) 점수가 낮은 이미지들을 덜-강조(de-emphasize)할 수 있다. 컴퓨팅 시스템에 의한 이러한 제거 동작 혹은 덜-강조화 동작은, 컴퓨팅 시스템에서 임의의 주어진 캡처된 이미지들의 시퀀스에 대해 저장하도록 되어 있는 이미지들의 수가 고정되어 있는 것의 결과로서(예를 들어, 버퍼 크기가 고정되어 있는 것의 결과로서) 수행될 수 있거나, 또는 이미지가 임의의 주어진 임계치 아래에 있는 이미지 점수를 가질 때마다 수행될 수 있다(예를 들어, 심지어 버퍼가 가득 차 있지 않을지라도 관심없는 이미지들이 제거될 수 있음).
어떤 이미지들이 관심을 끄는지 혹은 관심을 끌지 않는지를 결정하기 위한 예시적 입력(예를 들어, 앞서-설명된 이미지 점수를 계산하기 위해 사용되는 입력)은, 이미지 내의 움직임에 대한 현저성(saliency) 혹은 중요도(importance)를 특정하는 입력이고, 이것은 앞서의 설명에 근거하여 결정될 수 있다. 이러한 움직임-식별 입력은 이미지에 대한 전체 점수를 발생시키기 위해 다른 입력들(예를 들어, 이미지 내의 사람들이 양쪽 눈을 개방하고 있는지 여부를 특정하는 점수, 그리고 이미지가 흐릿하지 않은지 여부를 특정하는 점수)과 함께 사용될 수 있다. 이러한 전체 점수는 이미지를 제거할지 아니면 제거하지 않을지를 결정하는 데 사용될 수 있거나, 또는 사용자에게 이후에 제시하기 위해 이미지를 유지시킬지 아니면 유지시키지 않을지를 결정하는데 사용될 수 있다. 당연한 것으로, 본 명세서에서 설명되는 움직임-검출 기법들은 다른 결과들을 달성하기 위해 사용될 수 있는데, 예를 들어, 객체의 위치를 추적하기 위해 사용될 수 있다.
도 2는 두 개의 이미지들을 비교하기 위한 프로세스의 도식적 예시를 보여준다. 도 2에서 보여지는 프로세스들은 박스(130)(도 1)에서 이전에 설명된 비교 동작에 관한 추가적인 세부사항을 나타낼 수 있다.
이러한 비교는 디바이스가 초기에, 제 2 이미지 및 수정된 제 1 이미지에 대한 어떤 통계 정보를 계산하는 것을 포함할 수 있다. 예를 들어, 디바이스는 시간 변화도(temporal gradient)(215)를 식별하기 위해 이미지들을 비교할 수 있다(박스(210)). 시간 변화도 데이터(215)는 이미지들 간의 픽셀 차이를 나타낼 수 있다. 수정된 제 1 이미지는 카메라가 제 2 이미지를 캡처한 때의 카메라의 위치로부터 획득된 이미지를 나타내기 때문에, 정지된 특징들을 나타내는 이미지들의 일부분들은 유사한 픽셀 값들을 가질 수 있다. 이와 같이, 이러한 이미지 위치들에서의 픽셀 차이는 제로(zero)이거나 혹은 거의 제로일 수 있다. 반면, 객체가 이동한 이미지들 내의 위치들에서는 주목할 만한 픽셀 차이가 존재할 수 있다(예를 들어, 객체가 과거에는 있었으나 현재는 더 이상 존재하지 않은 위치, 또는 객체가 과거에는 없었으나 현재는 존재하는 위치). 시간 변화도는 하나의 이미지로부터 다음 이미지로의 시간적 차이 혹은 시간 차이를 나타낼 수 있고, 그리고 복수의 픽셀들(예를 들어, 이미지 내의 각각의 픽셀)에 대해 계산될 수 있다.
디바이스는 또한 제 2 이미지로부터 공간 변화도(spatial gradient)를 계산할 수 있고 식별할 수 있다(박스(220)). 이러한 계산은 공간 변화도 데이터(225)를 발생시킬 수 있고, 이러한 공간 변화도 데이터(225)는 이미지 내의 특정 방향에서 하나의 픽셀로부터 다음 픽셀까지 이미지가 어떻게 다른지를 표시할 수 있다. 예를 들어, 수평 변화도는, 이미지 내의 임의의 주어진 픽셀에 대해, 그 주어진 픽셀의 좌측에 있는 픽셀에 대한 그레이스케일 값(grayscale value)이 그 주어진 픽셀의 우측에 있는 픽셀에 대한 그레이스케일 값과 어떻게 다른지를 식별시킬 수 있다. 또 하나의 다른 예로서, 수직 변화도는, 임의의 주어진 픽셀에 대해, 상부에 있는픽셀에 대한 그레이스케일 값이 하부에 있는 픽셀에 대한 그레이스케일 값과 어떻게 다른 지를 식별시킬 수 있다. 중요한 공간 변화도 값들은 이미지 내의 가장자리들의 존재를 표시할 수 있다.
컴퓨팅 디바이스는 움직임이 일어난 이미지의 위치들을 식별하기 위해 이러한 통계 값들을 사용할 수 있다. 이러한 분석은 이미지의 패치(patch)들 혹은 영역(region)들에 관해 수행될 수 있다. 이처럼, 컴퓨팅 시스템은 패치들의 격자 혹은 복수의 영역들의 격자를 발생시킬 수 있다(박스(230)). 다음의 상세한 설명에서는, 패치들의 격자라는 용어가 사용된다. 패치들의 격자를 발생시키는 것은 이미지들 중 하나의 이미지를 나타내는 임의의 영역(area) 상에 균등하게-이격된 점(point)들의 격자를 발생시키는 것과, 그리고 균등하게-이격된 점들 각각 상에 중심을 둔 패치(예를 들어, 가로 10-픽셀 세로 10-픽셀의 정사각형)를 발생시키는 것을 포함할 수 있다. 패치들의 격자(235) 내의 패치들은 중첩될 수 있거나 중첩되지 않을 수 있으며, 또는 서로 인접해 있을 수 있다(도 2에서 보여지는 패치들에서는, 각각의 패치 사이에 공간이 존재하고, 이에 따라 패치들은 중첩되지 않음 혹은 서로 인접하여 있음).
그 다음에, 디바이스는, 시간 변화도 데이터(215) 및 공간 변화도 데이터(225)를 사용하여, 각각의 패치에 대한 움직임 점수를 계산할 수 있다(박스(240)). 각각의 패치에 대한 움직임 점수의 계산은 도 3a 및 도 3b에 관한 추가 세부설명에서 기술되며, 반면 이러한 계산은 점수 맵(score map)(245)을 발생시킬 수 있다. 점수 맵(245)은 각각의 패치에 대해 하나의 값을 포함할 수 있는데, 이러한 값은 해당 패치 내의 움직임의 현저성을 표시한다. 이미지의 어떤 영역들에서 움직임이 일어나고 있는지를 표시하기 위해 디바이스에 의해 사용될 수 있는 것이 이러한 점수 맵(245)(또는 이러한 점수 맵(245)의 감소된 형태)이다. 도 2에서, 점수 맵(245) 내의 가장 높은 값은 친구가 움직인 이미지 B' 및 이미지 C의 영역에서 보여진다. 점수 맵(245) 내의 값들은 0 내지 5의 범위에 있는 것으로서 예시되고 있지만, 이러한 값들은 다른 범위를 가질 수 있는데, 예컨대 0과 1의 범위를 가질 수 있다.
그 다음에, 디바이스는 전체 움직임 점수 값을 계산할 수 있다(박스(250)). 특히, 디바이스는 전체 움직임 점수 값 데이터(255)를 발생시키기 위해 점수 맵(245) 내의 값들을 사용할 수 있다. 다양한 예들에서, 전체 움직임 점수 값 데이터(255)를 계산하는 것은 점수 맵(245) 내의 값들을 평균화하는 것을 포함할 수 있다. 일부 예들에서, 전체 움직임 점수 값 데이터(255)는 비선형 맵핑 함수(nonlinear mapping function)를 사용하여 계산되며, 이러한 비선형 맵핑 함수는 도 3a 및 도 3b에 관한 추가 상세설명에서 기술되는 바와 같이, 값들을 표준 범위(예를 들어, 0과 1 사이)로 정규화(normalize)시킨다.
도 3a 및 도 3b는 이미지들 내의 움직임을 검출하기 위한 프로세스의 흐름도 예시를 보여준다. 도 3a 및 도 3b에 관해 설명되는 프로세스는 도 1 및 도 2에 관해 설명된 프로세스의 적어도 일부 실시형태들에 관한 추가 설명을 제공한다.
박스(302)에서, 컴퓨팅 시스템은 이미지를 수신한다. 수신된 이미지는 컴퓨팅 디바이스의 카메라(예를 들어, 이미지 센서)에 의해 가장 최근에 캡처된 이미지일 수 있다. 컴퓨팅 시스템은 본 명세서에서 설명되는 움직임-검출 프로세스들을 수행하기 위해 필요한 프로세싱의 수준을 감소시키기 위해 이미지를 다운샘플링(downsample)할 수 있다(박스(302)). 예를 들어, 수신된 이미지는 1920x1080 픽셀들의 해상도를 가질 수 있고, 다운샘플링 프로세스는 수신된 이미지를 320x180 픽셀들의 더 작은 해상도로 전환(convert)시킬 수 있다. 일부 구현예들에서, 컴퓨팅 시스템은 또한 수신된 이미지를 컬러에서 그레이스케일로 전환한다(이것은 예를 들어, 임의의 다운샘플링과는 독립적으로, 다운샘플링 이전에 혹은 이후에 일어남). 컴퓨팅 시스템은 수신된 이미지(및/또는 수신된 이미지의 다운샘플링 및 컬러-전환된 형태)를 이미지 버퍼(306) 내에 저장할 수 있고, 이에 따라 시스템은 이전에-캡처된 이미지들에 액세스(access)하게 된다. 프로세싱이 수행되는 이미지들은, 본래의 이미지이건 혹은 본래의 이미지의 다운샘플링 및 컬러-전환된 형태이건 상관없이, I(x,y)로서 지정된다.
이미지의 어떤 부분들이, 이동하고 있는 객체를 나타내는지를 결정하는 것은 수신된 이미지를 이전에-수신된 이미지와 비교하는 것을 수반할 수 있다. 그러나, 만약 카메라가 이동하고 있다면, 수신된 이미지 및 이전에-수신된 이미지 모두 혹은 대부분은 카메라가 상이한 시점에 상이한 위치에 있게 되기 때문에 달라질 수 있다. 따라서, 이전에-수신된 이미지를 "변형(warp)"시켜, 수신된 이미지의 조준 지점(vantage point)으로부터 보여지도록 하는 것이 도움을 줄 수 있다. 이렇게 하는 것은, 카메라가 어떻게 이동했는지를 식별하기 위해 양쪽 이미지들을 분석하는 것, 그리고 카메라의 움직임을 표시하는 혹은 식별시키는 변환을 발생시키는 것을 수반할 수 있는바, 이것은 아래의 추가적인 상세설명에서 기술되는 바와 같다.
박스(308)에서, 컴퓨팅 시스템은 카메라 움직임을 추정하고 카메라의 움직임을 표시하는 변환을 발생시킨다. 발생된 변환은 적어도 두 개의 이미지들(예를 들어, 이미지 버퍼로부터의 I 및 I_previous)을 입력으로서 사용하여 생성되는 행렬일 수 있다. 변환은 "H_interframe"으로 지정될 수 있다. 이러한 프레임-대-프레임 움직임 행렬(frame-to-frame motion matrix)은 호모그래피 변환 행렬일 수 있다. 호모그래피 변환 행렬은 하나의 이미지로부터 다음 이미지까지(예를 들어, I_previous로부터 I까지) 장면의 이동을 나타낼 수 있는 행렬 혹은 장면을 캡처하고 있는 카메라의 이동을 나타낼 수 있는 행렬일 수 있다.
예시로서, 제 1 이미지가 정사각형 전방 바로 앞에서 획득된 정사각형의 픽처를 나타내며, 이에 따라 정사각형이 이미지에서 90-도의 각도를 갖는 동일한-길이의 변(side)들을 갖게 된다고(달리 말하면, 정사각형으로 보이는 것으로) 가정한다. 이제 카메라가 측면으로 이동했고(혹은 정사각형 자체가 이동했고) 이에 따라 다음 이미지가 정사각형을 비틀어진 것으로 디스플레이하게 되어 일부 변들은 다른 변들에 비해 더 길어지고 각도는 90도를 이루지 않는다고 가정한다. 카메라 혹은 장면이 하나의 이미지로부터 다음 이미지까지 어떻게 이동했는지를 식별하기 위해, 제 1 이미지에서의 정사각형의 4개의 모서리 지점(corner point)들의 위치는 제 2 이미지에서의 4개의 모서리 지점들의 위치로 맵핑(mapping)될 수 있다.
이미지들 내의 이러한 모서리 지점들을 서로 맵핑시킨 것이 식별되면, 이러한 식별된 맵핑은 호모그래피 변환 행렬을 발생시키는데 사용될 수 있는데, 여기서 호모그래피 변환 행렬은 카메라가 캡처하고 있는 장면에 대한 카메라 시점(camera viewpoint)의 움직임을 나타낸다. 이러한 호모그래피 변환 행렬이 주어지면, 시스템은 제 1 이미지를 발생된 호모그래피 변환 행렬과 결합하여 제 2 프레임을 재생성(recreate)할 수 있는데, 예를 들어, 제 1 프레임 내의 픽셀들을 알려진 호모그래피 변환 방법들에 따라 상이한 위치들로 이동시킴으로써 제 2 프레임을 재생성할 수 있다.
앞에서 설명된 호모그래피 변환 행렬은 카메라의 병진 이동(translational movement)을 나타낼 수 있을 뿐만 아니라 회전(rotation), 확대축소(zooming), 및 비-강성 롤링 셔터 왜곡(non-rigid rolling shutter distortion)도 나타낼 수 있다. 이러한 방식으로, 호모그래피 변환 행렬은 8 자유도에서 카메라의 이동을 나타낼 수 있다. 비교를 위해, 일부 이미지 비교 기법들은 병진 이동(즉, 상/하 및 좌/우 이동)만을 고려한다.
앞에서-설명된 호모그래피 변환 행렬은 3x3 호모그래피 변환 행렬일 수 있는데, 하지만 호모그래피 행렬들의 다른 타입들이 사용될 수 있다(그리고 심지어 호모그래피 행렬이 아닐지라고 혹은 심지어 행렬이 아닐지라고, 하나의 이미지로부터 또 하나의 다른 이미지로의 이동의 다른 수학적 표현들이 사용될 수 있음). 시스템은 다음과 같은 방식으로 3x3 행렬(H_interframe)을 결정할 수 있다. 먼저, 컴퓨팅 시스템은 현재 이미지 내의 특징 지점들(feature points)(때로는 모서리 지점들)의 세트를 식별할 수 있고, 여기서 이러한 지점들은 [x'_i, y'_i]로 표시될 수 있으며, i = 1 .... N이다(N은 특징 지점들의 수). 그 다음에, 컴퓨팅 시스템은 이전의 프레임 내의 대응하는 특징 지점들을 식별할 수 있고, 여기서 대응하는 특징 지점들은 [x_i, y_i]로 표시될 수 있다. 이러한 지점들은 GL 좌표계에 있는 것으로 설명됨에 유의해야 한다(즉, x 및 y는 -1로부터 1까지의 범위를 가지며 프레임 중심을 원점(origin)으로서 가짐). 만약 x가 0으로부터 이미지 폭까지의 범위를 갖고 y가 0으로부터 이미지 높이까지의 범위를 갖는 이미지 픽셀 좌표계에 지점들이 있다면, 이러한 지점들은 GL 좌표계로 변환될 수 있고, 또는 결과적인 행렬은 보상을 위해 변환될 수 있다.
앞에서-설명된 H_interfame 행렬은 다음과 같이 9개의 요소들을 포함하는 3x3 행렬일 수 있다:
Figure pct00001
H_interfame은 아래에서 설명되는 바와 같이 [x_i, y_i]를 [x'_i, y'_i]로 변환한다.
Figure pct00002
z_i' * [x'_i, y'_i, 1]' = H_interframe * [x_i, y_i, 1]'.
Figure pct00003
[x'_i, y'_i, 1]'는 [x'_i, y'_i, 1] 벡터(vector)를 전치(transpose)시킨 3x1 벡터이다.
Figure pct00004
[x_i, y_i, 1]'는 [x_i, y_i, 1] 벡터를 전치시킨 3x1 벡터이다.
Figure pct00005
z_i'는 스칼라 인자(scale factor)이다.
대응하는 특징 지점들의 세트가 주어지는 경우, 행렬을 추정하기 위한 예시적 알고리즘은 다음과 같은 컴퓨터 비젼 서적(computer vision book)에서 설명된다: "Hartley, R., Zisserman, A.: Multiple View Geometry in Computer Vision. Cambridge University Press (2000)"의 알고리즘 4.1(페이지 91)에서 그리고 알고리즘 4.6(페이지 123)에서 설명되며, 이것은 ftp://vista.eng.tau.ac.il/dropbox/SimonKolotov-Thesis/Articles/[Richard_Hartley_Andrew_Zisserman]_Multiple_View_G(BookFi.org).pdf 그리고 http://cvrs.whu.edu.cn/downloads/ebooks/Multiple%20View%20Geometry%20in%20Computer%20Vision%20(Second%20Edition).pdf에서 입수가능하다.
앞에서-설명된 서적의 페이지 91에 있는 알고리즘 4.1 부분은 다음과 같다:
Figure pct00006
앞에서-설명된 서적의 페이지 123에 있는 알고리즘 4.6 부분은 다음과 같다:
Figure pct00007
앞에서-설명된 서적의 페이지 121에 있는 알고리즘 4.5 부분은 다음과 같다:
Figure pct00008
박스(310)에서, 컴퓨팅 시스템은 현재 이미지를 매끄럽게 한다(smooth). 예를 들어, 컴퓨팅 시스템은 가우시안 필터(Gaussian filter)로 입력 이미지를 매끄럽게 하여 매끄럽게 된 입력 이미지(I_smoothed)를 발생시킬 수 있다. 입력 이미지를 매끄럽게 하는 것은 프로세스의 강인성(robustness)을 증가시킬 수 있는데, 왜냐하면 이미지를 다운샘플링하고 변환하는 것은 아티팩트(artifact)들 혹은 다른 노이즈(noise)를 생성할 수 있고, 이러한 아티팩트들 혹은 다른 노이즈는 입력 이미지를 매끄럽게 하는 것에 의해 제거 혹은 감소될 수 있다. 컴퓨팅 시스템은 매끄럽게 된 이미지를 매끄럽게 된 이미지 버퍼(smoothed image buffer)(312) 내에 저장할 수 있고, 매끄럽게 된 이미지 버퍼(312)는 이전에-수신된 이미지들에 관한 이러한 프로세스의 이전의 반복들로부터의 매끄럽게 된 이미지들을 저장한다. 본 개시내용에서, 이미지에 관해 수행되는 동작들의 설명은 이미지에 관해 수행되거나 이미지의 매끄럽게 된 형태에 관해 수행되는 동작들을 포함한다.
박스(316)에서, 컴퓨팅 시스템은 이전에-매끄럽게 된 이미지를 새로운 이미지로 변형시키기 위해 변환 행렬을 사용한다(이러한 변형은 예를 들어, I_smoothed_previous를 I_smoothed_previous_warped로 변형시킴으로써 이루어짐). 이렇게 하는 것은 이전의 이미지가 획득된 때로부터의 카메라의 위치를 현재 이미지가 획득된 때로부터의 카메라의 위치와 매칭(matching)되도록 효과적으로 이동(shift)시킨다. 이에 따라, 변형 이후, 배경과 I_smoothed_previous_warped 및 I_smoothed의 정적인 부분들은 서로 대략적으로(roughly) 매칭될 수 있다. 이것은 컴퓨팅 시스템으로 하여금 이미지의 어떤 부분들이, 이동하고 있는 비-배경 부분들인지를 식별하기 위해 이미지들을 비교할 수 있게 한다. 컴퓨팅 시스템은 다음과 같이 H_interframe을 사용하여 I_smoothed_previous의 좌표들로부터 I_smoothed_previous_warped에 대한 좌표들을 결정할 수 있다:
Figure pct00009
z' * [x', y', 1]' = H_interframe * [x, y, 1]'.
Figure pct00010
[x, y, 1]'는 I_smoothed_previous에서의 좌표를 나타내는 3x1 벡터이다.
Figure pct00011
[x', y', 1]'는 I_smoothed_previous_warped에서의 좌표를 나타내는 3x1 벡터이다.
Figure pct00012
z'는 스칼라 인자이다.
I_smoothed_previous에서의 각각의 픽셀 [x, y]에 대해, 컴퓨팅 시스템은 앞에서의 변환을 사용하여 I_smoothed_previous_warped에서의 위치 [x', y']를 결정할 수 있고, 그리고 컴퓨팅 시스템은 I_smoothed_previous에서의 [x, y]로부터의 픽셀 값을 I_smoothed_previous_warped에서의 [x', y']로 복사(copy)할 수 있다.
박스(318)에서, 컴퓨팅 시스템은 현재 이미지와 이전의 이미지의 변형된 형태 간의 시간 변화도(예를 들어, 픽셀들 간의 차이)를 계산한다. 컴퓨팅 시스템은 다음과 같이 각각의 픽셀에 대해 이러한 계산을 할 수 있다:
Figure pct00013
I_t (x, y) = I_smoothed (x, y) - I_smoothed_prevous_warped (x, y)
시간 변화도 값들은 하나의 이미지로부터 다음 이미지로의 위치에서의 변화가 더 크게 일어나면 날수록 제로로부터 더 멀어질 수 있다. 이에 따라, (적어도 절대값이 취해지는 경우) 더 큰 수치들은 이동이 일어난 이미지의 일부분들을 식별시킬 수 있다.
박스(318)에서, 컴퓨팅 시스템은 추가적으로 혹은 대안적으로 이미지를 가로지르는 하나 이상의 방향들에서의 변화율(rate of variation)(예를 들어, 공간 변화도)을 계산한다. 컴퓨팅 시스템 다음과 같이 x 방향에서 이러한 계산을 할 수 있다:
Figure pct00014
I_x(x, y) = (I_smoothed(x+1,y) - I_smoothed(x-1,y)) / 2.
컴퓨팅 시스템 다음과 같이 y 방향에서 이러한 계산을 할 수 있다:
Figure pct00015
I_y(x, y) = (I_smoothed(x,y+1) - I_smoothed(x,y-1)) / 2.
만약 픽셀이 가장자리 혹은 경계를 따라 있다면 변화율을 더 크다(예를 들어, 그 이유는, 픽셀이 큰 변화 없이 이미지의 일부분 내에 위치한 경우보다 픽셀이 가장자리 혹은 경계를 따라 있는 경우 좌측에서의 픽셀과 우측에서의 픽셀 간의 픽셀 강도는 더 크게 변할 수 있기 때문임). 이에 따라, 더 큰 수치들은 가장자리들을 식별시킬 수 있다.
박스(330)에서, 컴퓨팅 시스템은 점들의 격자를 계산하고, 이러한 점들의 격자로부터 패치들의 격자가 발생될 수 있다. 컴퓨팅 시스템은 격자 p(i,j)를 계산할 수 있고, 여기서 i=1 → 격자폭(gridWidth) 그리고 j=1 → 격자높이(gridHeight)이다. 격자의 계산은 이미지의 가장자리들에서 임의의 여백(margin)을 배제할 수 있는데, 예를 들어, 가장자리들에서 이미지의 3%를 배제할 수 있다. 격자 점들은 균등하게 이격될 수 있는데, 예를 들어, x 방향을 따라 4개의 픽셀들만큼 떨어져 있을 수 있고 y 방향을 따라 4개의 픽셀들만큼 떨어져 있을 수 있다. 예시로서, 만약 프레임 크기가 320x180이라면, 컴퓨팅 시스템은 좌측 및 우측 상에 있는 10개의 픽셀들을 배제할 수 있고(320*3%=10개의 픽셀들), 그리고 상부 및 하부 상에 있는 6개의 픽셀들을 배제할 수 있다(240*3%=6개의 픽셀들). 이것은 격자폭=75 및 격자높이=42를 갖는 격자를 제공한다.
격자 내의 각각의 지점 p(i,j)에 대해, 컴퓨팅 시스템은 해당 지점의 위치에 기반을 둔 I_smoothed로부터의 패치를 식별할 수 있다(예를 들어, 패치는 해당 지점에 중심을 둘 수 있음)(박스(332)). 예시로서, 패치의 패치폭은 7이고 패치의 패치높이는 7이다. 패치들은 중첩될 수 있거나, 서로로부터 떨어져 있을 수 있거나, 또는 서로 인접해 있거나 서로 경계를 접하고 있을 수 있다(예를 들어, 바둑판(checkerboard)처럼).
박스(334)에서, 컴퓨팅 시스템은 각각의 패치에 대해 하나 이상의 통계치들을 계산한다. 이러한 통계치들은 이전에-계산된 시간 변화도 및 공간 변화도를 사용할 수 있다.
컴퓨팅 시스템이 계산할 수 있는 제 1 통계치는 예를 들어, 다음과 같이 패치 내의 수평 변화율들의 평균이다:
Figure pct00016
Ixx는 패치 내의 모든 픽셀들에 대한 I_x(x,y) * I_x(x,y)의 평균이다.
이러한 계산은 매끄러운 변화들에 걸쳐 수직 가장자리들의 존재를 강조하기 위해 수평 공간 변화도 값들을 증배(multiply)시킬 수 있다.
컴퓨팅 시스템이 계산할 수 있는 제 2 통계치는 예를 들어, 다음과 같이 패치 내의 수직 변화율들의 평균이다:
Figure pct00017
Iyy는 패치 내의 모든 픽셀들에 대한 I_y(x,y) * I_y(x,y)의 평균이다.
이러한 계산은 매끄러운 변화들에 걸쳐 수평 가장자리들의 존재를 강조하기 위해 수직 공간 변화도 값들을 증배시킬 수 있다.
컴퓨팅 시스템이 계산할 수 있는 제 3 통계치는 예를 들어, 다음과 같이 패치 내의 대각선 변화율들의 평균이다:
Figure pct00018
Ixy는 패치 내의 모든 픽셀들에 대한 I_x(x,y) * I_y(x,y)의 평균이다.
컴퓨팅 시스템이 계산할 수 있는 제 4 통계치는 예를 들어, 다음과 같이 임의의 주어진 지점에서 수직 가장자리가 이동했는지를 식별시키는 값을 발생시키기 위해 해당 위치에서의 수평 공간 변화도를 해당 위치에서의 시간 변화도와 결합함으로써 이미지 내에서 이동하고 있는 수직 가장자리들을 식별시키는 값이다:
Figure pct00019
Ixt는 패치 내의 모든 픽셀들에 대한 I_x(x,y) * I_t(x,y)의 평균이다.
컴퓨팅 시스템이 계산할 수 있는 제 5 통계치는 예를 들어, 다음과 같이 임의의 주어진 지점에서 수평 가장자리가 이동했는지를 식별시키는 값을 발생시키기 위해 해당 위치에서의 수직 공간 변화도를 해당 위치에서의 시간 변화도와 결합함으로써 이미지 내에서 이동하고 있는 수평 가장자리들을 식별시키는 값이다:
Figure pct00020
Iyt는 패치 내의 모든 픽셀들에 대한 I_y(x,y) * I_t(x,y)의 평균이다.
통계치들의 계산은 통합 이미지(integral image)들을 사용함으로써 최적화될 수 있다.
박스(338)에서, 컴퓨팅 시스템은 질감(texture)을 갖는 그러한 패치들을 선택한다(예를 들어, 이것은 질감을 갖지 않을 수 있는 그러한 패치들을 무시하고 아울러 단지 빈 벽(blank wall)을 나타내는 이미지의 일부분일 수 있는 그러한 패치들을 무시함으로써 수행될 수 있음). 달리 말하면, 컴퓨팅 시스템은 각각의 패치가 충분한 질감을 갖는 지를 결정할 수 있고, 충분한 질감을 갖지 않는 패치들에 대해, 움직임 점수 "0"을 해당 패치에 설정할 수 있다(박스(340)). 질감을 갖는 패치들을 선택하기 위한 프로세스는 다음과 같이 해당 패치의 헤시안 2x2 행렬(Hessian 2x2 matrix)을 식별하는 것을 포함할 수 있다:
Figure pct00021
컴퓨팅 시스템은 행렬의 행렬식(determinant)(det)을 결정할 수 있다. 더 큰 고유값(eigenvalue)은 max_eigenvalue로 표시될 수 있고, 더 작은 고유값은 min_eigenvalue로 표시될 수 있다. 컴퓨팅 시스템은 패치가 다음과 같은 조건들을 만족시킨다면 질감을 갖는 것으로서 선택할 수 있다:
Figure pct00022
(조건 1) det > 0.
이미지 내의 가장자리들이 이들에 대한 최소한의 적절한 x 및 y 성분들을 갖는 경우 행렬식은 제로보다 더 클 수 있다(예를 들어, 순수하게 수평이 아니거나 순수하게 수직이 아닌 가장자리들의 경우에 수평 방향 혹은 수직 방향 각각에서 움직임을 식별하는 것은 어려울 수 있음).
Figure pct00023
(조건 2) min_eigenvalue > EigenvalueThreshold * frameWidth * frameHeight.
이러한 조건은 임의의 주어진 방향에서 적어도 일부 가장자리들이 존재함을 보장할 수 있다. EigenvalueThreshold는 수동으로 조정(tune)되고, 예시적 값은 0.0025일 수 있다.
Figure pct00024
(조건 3) max_eigenvalue < EigenvalueRatioThreshold * min_eigenvalue.
이러한 조건은 지배적인 방향(dominant direction)에서의 가장자리들이 또 하나의 다른 방향에서의 가장자리들을 압도(overwhelm)하지 않도록 보장할 수 있다. EigenvalueRatioThreshold는 또한 수동으로 조정되고, 예시적 값은 5일 수 있다. 만약 임의의 패치가 앞서의 조건 점검에 실패한다면, 컴퓨팅 시스템은 해당 패치에 대한 움직임 벡터를 motion_x = motion_y = 0이 되도록 설정할 수 있다.
박스(344)에서, 충분한 질감을 갖는 것으로서 식별된 각각의 패치에 대해, 컴퓨팅 시스템은 패치(예컨대, 패치 내의 픽셀들에 의해 묘사되는 객체)의 움직임을 추정하는데, 이러한 추정은 예를 들어 다음과 같이 해당 패치에 대한 움직임 벡터를 계산함으로써 이루어진다:
Figure pct00025
motion_x = (-Ixt * Iyy + Iyt * Ixy) / det.
Figure pct00026
motion_y = (Ixt * Ixy - Iyt * Ixx) / det.
일부 예들에서, 컴퓨팅 시스템은 광학 흐름 추정(optical flow estimation)을 위해 루카스-카나데 미분법(Lucas-Kanade differential method)을 적용한다.
박스(346)에서, 컴퓨팅 시스템은 각각의 패치에 대한 움직임 점수(motion score)를 계산한다. 움직임 점수들은 움직임 점수 맵(motion score map)(352)을 발생시키기 위해 결합될 수 있다. 움직임 점수들의 맵은 다음과 같이 계산될 수 있다:
Figure pct00027
score(i,j) = 1 - exp(-(motion_x(i,j) * motion_x(i,j) + motion_y(i,j) * motion_y(i,j)) / motionParam).
이러한 방정식에서, motionParam은 사용자에 의해 수동으로 설정될 수 있고 10의 값을 가질 수 있다. 일부 예들에서, 컴퓨팅 시스템은 점수들의 집합체(collection)(예를 들어, 각각의 패치에 대해 하나의 점수가 존재하고, 일부는 0의 값을 가짐)를 더 작은 움직임 점수 맵 score_small(k,l)로 다운샘플링할 수 있으며, 여기서 k=1 → 점수폭(scoreWidth), l=1 → 점수높이(scoreHeight)이다(박스(348)). 점수 맵을 다운샘플링하기 위한 예시적인 보간법(interpolation method)은 하나의 값을 얻기 위해 복수의 지점들의 윈도우(window)를 평균화하는 것이다. 예를 들어, 3만큼 다운샘플링하기 위해서 매 3x3 윈도우마다 평균화를 수행하여 하나의 픽셀을 얻는다. 이에 따라, 컴퓨팅 시스템은 점수들의 50x50 격자가 아닌 점수들의 10x10 격자를 처리하게 될 수 있다. 움직임 점수 맵에 관한 본 개시내용에서의 설명은 움직임 점수 맵 혹은 움직임 점수 맵의 다운샘플링된 형태와 관련될 수 있다.
박스(354)에서, 컴퓨팅 시스템은 다음과 같이 점수 맵의 엔트로피 값(entropy value)을 계산한다:
Figure pct00028
모든 k 및 l에 대해 total_score = sum(score_small(k,l) + Epsilon).
Figure pct00029
p(k,l) = (score_small(k,l) + Epsilon) / total_score).
Figure pct00030
entropy = - sum(Log(p(k,l)*P(k,l)).
엡실론(epsilon)은 0에 의해 초래되는 문제들을 피하기 위해 작은 수일 수 있다. 엔트로피 값은 이미지 내의 무질서(disorder)를 식별시킬 수 있고, 여기서 무질서는 이미지 전체에 걸쳐 일어나는 이동에서의 차이를 나타낼 수 있다. 예를 들어, 만약 (예컨대, 움직이기 시작하고 있는 대형 트럭의 측면에 카메라가 초점을 맞추고 있기 때문에) 이미지의 모든 것 혹은 대부분이 이동하고 있다면, 많은 무질서는 존재하지 않는데 왜냐하면 이미지의 모든 것 혹은 대부분이 이동하고 있기 때문이다. 반면, 만약 이미지 내에서 다수의 사람들이 뛰어다니고 있다면 많은 무질서가 존재하고 아울러 높은 엔트로피가 존재하는데, 왜냐하면 이미지의 많은 부분들은 이동하고 있고 이미지의 많은 부분들은 이동하고 있지 않기 때문이다. 엔트로피는 이미지의 몇몇 부분들에서 움직임이 크게 집중되어 있다면 클 수 있다.
컴퓨팅 시스템은 발생된 엔트로피 값을 사용하여 움직임 현저성 점수(motion saliency score)를 발생시킬 수 있다. 이러한 점수는 이미지 내에서의 움직임에 대한 중요도를 식별시킬 수 있다. motion_saliency_score는 0과 1 사이의 값일 수 있고 다음과 같은 비선형 맵핑 함수(nonlinear mapping function)를 사용하여 발생될 수 있다:
Figure pct00031
motion_saliency_score = 1 - exp(entropy * saliencyParam1) * saliencyParam2.
Figure pct00032
saliencyParam1은 수동으로 조정될 수 있다.
Figure pct00033
saliencyParam2는 수동으로 조정될 수 있다.
컴퓨팅 시스템은 또 하나의 다른 프로세스 혹은 디바이스에게 이미지 내에서 움직임이 얼마나 현저하게 나타나는지를 알려주기 위해 움직임 현저성 점수(356)를 출력한다. 컴퓨팅 시스템은 또한, 또 하나의 다른 프로세스 혹은 디바이스에게 프레임 내에서 움직임이 어디서 일어나고 있는지를 알려주기 위해 움직임 점수 맵을 출력할 수 있다.
앞서의 설명에서, 이전에-수신된 이미지는 더 이후에-수신된 이미지의 카메라 위치와 매칭되도록 변형되고, 그 다음에 다양한 동작들이 더 이후에-수신된 이미지에 관한 수행되는데, 예를 들어, 공간 변화도의 계산이 수행된다. 숙련된 기술자들은 이러한 프로세스들을 두 개의 이미지들 중 다른 이미지에 적용함으로써 유사한 결과들이 달성될 수 있음을 이해할 것이다. 예를 들어, 더 이후에-수신된 이미지가 이전에-수신된 이미지의 위치에 매칭되도록 변형되는 이미지일 수 있고, 그리고 공간 변화도의 계산과 같은 후속 동작들이 이전에-수신된 이미지에 관해 수행될 수 있다. 더욱이, 이러한 동작들(예를 들어, 공간 변화도의 계산)은 변형된 이미지에 관해 수행될 수 있는데, 변형된 이미지가 이전에-수신된 이미지인지 아니면 더 이후에-수신된 이미지인지 상관없이 수행될 수 있다. 이에 따라, 본 개시내용의 여러 부분들은 움직임 추정 메커니즘들이 수행될 수 있는 다양한 방식들을 예시하기 위해 제 1 이미지 "또는" 제 2 이미지에 관해 수행되는 동작들과 관련될 수 있다.
다양한 구현예들에서, 또 하나의 다른 동작(예를 들어, 결정 혹은 식별)에 "응답하여" 혹은 또 하나의 다른 동작의 "결과로서" 수행되는 동작들은, 만약 이전의 동작이 성공적이지 않다면(예를 들어, 만약 결정이 수행되지 않았다면), 수행되지 않는다. "자동적으로" 수행되는 동작들은 사용자 개입(예를 들어, 중간에 개입되는 사용자 입력) 없이 수행되는 동작들이다. 조건부 언어(conditional language)와 함께 설명되는 본 문서에서의 특징들은 선택적인 구현예들을 설명할 수 있다. 일부 예들에서, 제 1 디바이스로부터 제 2 디바이스로 "전송하는 것(transmitting)"은 제 1 디바이스가 제 2 디바이스에 의한 수신을 위해 데이터를 네트워크 안에 놓는 것을 포함하지만, 제 2 디바이스가 데이터를 수신하는 것을 포함하지 않을 수 있다. 역으로, 제 1 디바이스로부터 "수신하는 것(receiving)"은 네트워크로부터 데이터를 수신하는 것을 포함할 수 있지만, 제 1 디바이스가 데이터를 전송하는 것을 포함하지 않을 수 있다.
컴퓨팅 시스템에 의해 "결정하는 것(determining)"은 컴퓨팅 시스템이 또 하나의 다른 디바이스로 하여금 결정을 수행하고 그 결과들을 컴퓨팅 시스템에게 제공할 것을 요청하는 것을 포함할 수 있다. 더욱이, 컴퓨팅 시스템에 의해 "디스플레이하는 것(displaying)" 혹은 "제시하는 것(presenting)"은 컴퓨팅 시스템이 또 하나의 다른 디바이스로 하여금 그 언급된 정보를 디스플레이 혹은 제시하도록 하기 위한 데이터를 전송하는 것을 포함할 수 있다.
도 4는 본 문서에서 설명되는 시스템들 및 방법들을 클라이언트로서 또는 서버 혹은 복수의 서버들로서 구현하기 위해 사용될 수 있는 컴퓨팅 디바이스들(400, 450)의 블록도이다. 컴퓨팅 디바이스(400)는 디지털 컴퓨터들의 다양한 형태들을 나타내도록 의도된 것인데, 예를 들어, 랩탑들, 데스크탑들, 워크스테이션들, 개인 디지털 보조기기들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들을 나타내도록 의도된 것이다. 컴퓨팅 디바이스(450)는 모바일 디바이스들의 다양한 형태들을 나타내도록 의도된 것인데, 예를 들어, 개인 디지털 보조기기들, 셀룰러 전화기들, 스마트폰들, 및 다른 유사한 컴퓨팅 디바이스들을 나타내도록 의도된 것이다. 여기서 제시되는 컴포넌트들, 이들의 연결들 및 관계들, 그리고 이들의 기능들은 단지 예시적 의미만을 가지며 본 문서에서 설명되고 그리고/또는 청구되는 구현예들을 제한하는 의미를 갖지 않는다.
컴퓨팅 디바이스(400)는 프로세서(402)와, 메모리(404)와, 저장 디바이스(406)와, 메모리(404) 및 고속 확장 포트들(410)에 연결된 고속 인터페이스(408)와, 그리고 저속 버스(414) 및 저장 디바이스(406)에 연결된 저속 인터페이스(412)를 포함한다. 컴포넌트들(402, 404, 406, 408, 410, 및 412) 각각은 다양한 버스들을 사용하여 상호연결되며, 공통 마더보드 상에 장착될 수 있거나 다른 방식으로 적절하게 장착될 수 있다. 프로세서(402)는 컴퓨팅 디바이스(400) 내에서의 실행을 위한 명령들을 프로세싱할 수 있으며, 이러한 명령들에는 외부 입력/출력 디바이스(예를 들어, 고속 인터페이스(408)에 결합된 디스플레이(416)) 상에 GUI용 그래픽 정보를 디스플레이하기 위해 메모리(404) 내에 저장되거나 혹은 저장 디바이스(406) 상에 저장되는 명령들이 포함된다. 다른 구현예들에서, 복수의 프로세서들 및/또는 복수의 버스들은 복수의 메모리들 및 메모리의 여러 타입들과 함께 적절하게 사용될 수 있다. 또한, 복수의 컴퓨팅 디바이스들(400)은 (예를 들어, 서버 뱅크(server bank), 블레이드 서버들의 그룹, 혹은 멀티-프로세서 시스템으로서) 연결될 수 있고, 이 경우 각각의 디바이스는 필요한 동작들의 일부분들을 제공하게 된다.
메모리(404)는 컴퓨팅 디바이스(400) 내에서의 정보를 저장한다. 일 구현예에서, 메모리(404)는 휘발성 메모리 유닛 혹은 유닛들이다. 또 하나의 다른 구현예에서, 메모리(404)는 비-휘발성 메모리 유닛 혹은 유닛들이다. 메모리(404)는 또한, 자기 디스크 혹은 광학 디스크와 같은 또 하나의 다른 형태의 컴퓨터-판독가능 매체일 수 있다.
저장 디바이스(406)는 컴퓨팅 디바이스(400)를 위한 대용량 저장소를 제공할 수 있다. 일 구현예에서, 저장 디바이스(406)는 컴퓨터-판독가능 매체일 수 있거나 혹은 컴퓨터-판독가능 매체를 포함할 수 있고, 이러한 것의 예로는 플로피 디스크 디바이스(floppy disk device), 하드 디스크 디바이스(hard disk device), 광학 디스크 디바이스(optical disk device), 또는 테이프 디바이스(tape device), 플래시 메모리(flash memory), 또는 다른 유사한 솔리드 스테이트 메모리 디바이스(solid state memory device), 또는 디바이스들의 어레이가 있는바, 여기에는 저장 영역 네트워크 혹은 다른 구성들로 된 디바이스들이 포함된다. 컴퓨터 프로그램물은 정보 캐리어(information carrier) 내에 실재적으로 구현될 수 있다. 컴퓨터 프로그램물은 또한, 그 실행시 앞서 설명된 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함할 수 있다. 정보 캐리어는, 메모리(404), 저장 디바이스(406), 또는 프로세서(402) 상의 메모리와 같은, 컴퓨터-판독가능 매체 혹은 머신-판독가능 매체이다.
고속 제어기(408)는 컴퓨팅 디바이스(400)에 대한 대역폭-집약형 동작(bandwidth-intensive operation)들을 관리하고, 반면 저속 제어기(412)는 보다 낮은 대역폭-집약형 동작들을 관리한다. 기능(function)들의 이러한 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(408)는 메모리(404), 디스플레이(416)에 (예를 들어, 그래픽 프로세서 혹은 가속기를 통해) 결합되며, 그리고 다양한 확장 카드들(미도시)을 수용할 수 있는 고속 확장 포트들(410)에 결합된다. 이러한 구현예에서, 저속 제어기(412)는 저장 디바이스(406) 및 저속 확장 포트(414)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스(Bluetooth), 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는, 하나 이상의 입력/출력 디바이스들(예를 들어, 키보드, 포인팅 디바이스(pointing device), 스캐너, 또는 네트워킹 디바이스(networking device)(예컨대, 스위치 혹은 라우터))에 예를 들어, 네트워크 어댑터(network adapter)를 통해 결합될 수 있다.
컴퓨팅 디바이스(400)는 도면에서 제시되는 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(400)는 표준 서버(420)로서 구현될 수 있거나, 또는 이러한 서버들의 그룹 내에서 여러 번 구현될 수 있다. 컴퓨팅 디바이스(400)는 또한 랙 서버 시스템(rack server system)(424)의 일부로서 구현될 수 있다. 추가적으로, 컴퓨팅 디바이스(400)는 랩탑 컴퓨터(422)와 같은 개인용 컴퓨터로 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(400)로부터의 컴포넌트들은 디바이스(450)와 같은 모바일 디바이스(미도시) 내의 다른 컴포넌트들과 결합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(400, 550) 중 하나 이상을 포함할 수 있고, 그리고 전체 시스템은 서로 통신하는 복수의 컴퓨팅 디바이스들(400, 550)로 구성될 수 있다.
컴퓨팅 디바이스(450)는, 다른 컴포넌트들 중에서도, 프로세서(452)와, 메모리(464)와, 디스플레이(454)와 같은 입력/출력 디바이스와, 통신 인터페이스(466)와, 그리고 송수신기(468)를 포함한다. 디바이스(450)에는 또한, 추가적인 저장소를 제공하기 위해 마이크로드라이브(microdrive) 혹은 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(450, 452, 464, 454, 466, 및 468) 각각은 다양한 버스들을 사용하여 상호연결되며, 이러한 컴포넌트들 중 수 개의 컴포넌트들은 공통 마더보드 상에 장착될 수 있거나 혹은 다른 방식으로 적절하게 장착될 수 있다.
프로세서(452)는 컴퓨팅 디바이스(450) 내에서의 명령들을 실행할 수 있는바, 이러한 명령들에는 메모리(464) 내에 저장되는 명령들이 포함된다. 프로세서는 분리된 그리고 복수의 아날로그 및 디지털 프로세서들을 포함하는 칩(chip)들의 칩셋(chipset)으로서 구현될 수 있다. 추가적으로, 프로세서는 다수의 아키텍처들 중 임의의 아키텍처를 사용하여 구현될 수 있다. 예를 들어, 프로세서는 CISC(Complex Instruction Set Computers; 복합 명령 집합 컴퓨터) 프로세서, RISC(Reduced Instruction Set Computer; 축소 명령 집합 컴퓨터) 프로세서, 또는 MISC(Minimal Instruction Set Computer; 최소 명령 집합 컴퓨터) 프로세서일 수 있다. 프로세서는 예를 들어, 디바이스(450)의 다른 컴포넌트들의 조정(예컨대, 사용자 인터페이스들의 제어, 디바이스(450)에 의해 실행되는 애플리케이션들의 제어, 그리고 디바이스(450)에 의한 무선 통신의 제어)을 제공할 수 있다.
프로세서(452)는 디스플레이(454)에 결합된 제어 인터페이스(458) 및 디스플레이 인터페이스(456)를 통해 사용자와 통신할 수 있다. 디스플레이(454)는, 예를 들어, TFT LCD(Thin-Film-Transistor Liquid Crystal Display; 박막 트랜지스터 액정 디스플레이) 디스플레이 또는 OLED(Organic Light Emitting Diode; 유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(456)는 사용자에게 그래픽 정보 및 다른 정보를 제시하기 위해 디스플레이(454)를 구동시키기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(458)는 사용자로부터 커맨드(command)들을 수신할 수 있고, 프로세서(452)에 제출하기 위해 이들을 변환할 수 있다. 추가적으로, 프로세서(452)와 통신하는 외부 인터페이스(462)가 제공될 수 있고, 이에 따라 디바이스(450)는 다른 디바이스들과 근거리 영역 통신을 할 수 있게 된다. 예를 들어, 외부 인터페이스(462)는 일부 구현예들에서 유선 통신을 제공할 수 있고, 혹은 다른 구현예들에서는 무선 통신을 제공할 수 있으며, 복수의 인터페이스들이 또한 사용될 수 있다.
메모리(464)는 컴퓨팅 디바이스(450) 내에서의 정보를 저장한다. 메모리(464)는 컴퓨터-판독가능 매체 혹은 매체들, 휘발성 메모리 유닛 혹은 유닛들 또는 비-휘발성 메모리 유닛 혹은 유닛들 중 하나 이상의 것으로서 구현될 수 있다. 확장 메모리(474)가 또한 제공될 수 있고, 확장 인터페이스(472)(이것은 예를 들어, SIMM(Single In Line Memory Module; 단일 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있음)를 통해 디바이스(450)에 연결될 수 있다. 이러한 확장 메모리(474)는 디바이스(450)를 위한 추가 저장 공간을 제공할 수 있거나, 혹은 디바이스(450)를 위한 애플리케이션들 혹은 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(474)는 앞서 설명된 프로세스들을 수행하거나 보충하기 위한 명령들을 포함할 수 있고, 그리고 또한 보안 정보(secure information)를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(474)는 디바이스(450)를 위한 보안 모듈로서 제공될 수 있고, 그리고 디바이스(450)의 보안 사용을 허용하는 명령들로 프로그래밍될 수 있다. 추가적으로, 보안 애플리케이션들은 추가적인 정보와 함께 SIMM 카드들을 통해 제공될 수 있다(예를 들어, 해킹-가능하지 않은 방식으로 SIMM 카드 상에 식별 정보를 배치하는 것).
메모리는 예를 들어, 아래에서 논의되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램물은 정보 캐리어 내에 실재적으로 구현된다. 컴퓨터 프로그램물은 실행시 앞서 설명된 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(464), 확장 메모리(474) 또는 프로세서(452) 상의 메모리와 같은 컴퓨터-판독가능 매체 혹은 머신-판독가능 매체이며, 예를 들어, 송수신기(468) 혹은 외부 인터페이스(462)를 통해 수신될 수 있다.
디바이스(450)는 통신 인터페이스(466)를 통해 무선으로 통신할 수 있는바, 이러한 통신 인터페이스는 필요한 곳에 디지털 신호 프로세싱 회로를 포함할 수 있다. 통신 인터페이스(466)는 다양한 모드들 혹은 프로토콜들(예를 들어, 다른 것들 중에서도, GSM 보이스 콜(GSM voice call)들, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS) 하에서의 통신들을 제공할 수 있다. 이러한 통신은, 예를 들어, 무선-주파수 송수신기(468)를 통해 일어날 수 있다. 추가적으로, 단-거리 통신이 일어날 수 있는바, 예를 들어, 블루투스, 와이파이(WiFi), 혹은 이와 유사한 다른 송수신기(미도시)를 사용하여 일어날 수 있다. 추가적으로, GPS(Global Positioning System; 전지구 위치결정 시스템) 수신기 모듈(470)은 네비게이션-관련 무선 데이터 및 위치-관련 무선 데이터를 디바이스(450)에 제공할 수 있고, 이러한 데이터는 디바이스(450) 상에서 실행되는 애플리케이션들에 의해 적절하게 사용될 수 있다.
디바이스(450)는 또한 오디오 코덱(audio codec)(460)을 사용하여 청취가능하게 통신할 수 있는바, 여기서 오디오 코덱은 사용자로부터 음성 정보를 수신할 수 있고 이것을 사용가능한 디지털 정보로 변환할 수 있다. 오디오 코덱(460)은 예를 들어, 디바이스(450)의 핸드셋(handset) 내에 있는 예컨대 스피커를 통해 사용자에 대해 청취가능한 사운드(sound)를 동등하게 발생시킬 수 있다. 이러한 사운드는 음성 전화 통화로부터의 사운드를 포함할 수 있고, 녹음된 사운드(예를 들어, 음성 메시지들, 음악 파일들, 등)를 포함할 수 있으며, 그리고 또한 디바이스(450) 상에서 동작하는 애플리케이션들에 의해 발생된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(450)는 도면에서 보여지는 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(450)는 셀룰러 전화기(480)로서 구현될 수 있다. 이것은 또한 스마트폰(482), 개인 디지털 보조기기, 또는 이와 유사한 다른 모바일 디바이스의 일부로서 구현될 수 있다.
추가적으로, 컴퓨팅 디바이스(400 또는 450)는 범용 직렬 버스(Universal Serial Bus, USB) 플래시 드라이브들을 포함할 수 있다. USB 플래시 드라이브(USB flash drive)들은 오퍼레이팅 시스템(operating system)들 및 다른 애플리케이션(application)들을 저장할 수 있다. USB 플래시 드라이브들은 입력/출력 컴포넌트들을 포함할 수 있는데, 예컨대, 무선 송신기 혹은 (또 하나의 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수 있는) USB 커넥터(USB connector)를 포함할 수 있다.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적 회로, 특수 설계된 ASIC(Application Specific Integrated Circuit; 애플리케이션 특정 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행가능한 그리고/또는 해석가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있고, 여기서 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다.
이러한 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 머신 명령들을 포함하고, 그리고 하이-레벨 절차적 그리고/또는 객체-지향 프로그래밍 언어로 구현될 수 있고, 그리고/또는 어셈블리/머신 언어로 구현될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 "머신-판독가능 매체", "컴퓨터-판독가능 매체"는 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에게 제공하기 위해 사용되는 임의의 컴퓨터 프로그램물, 장치, 및/또는 디바이스(예를 들어, 자기 디스크들, 광학 디스크들, 메모리, 프로그래밍가능 로직 디바이스(Programmable Logic Device, PLD)들)를 나타내는바, 여기에는 머신 명령들을 머신-판독가능 신호로서 수신하는 머신-판독가능 매체가 포함된다. 용어 "머신-판독가능 신호"는 머신 명령들 및/또는 데이터를 프로그래밍가능 프로세서에게 제공하기 위해 사용되는 임의의 신호를 나타낸다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명되는 시스템들 및 기법들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(Cathode Ray Tube; 음극선관) 또는 LCD(Liquid Crystal Display; 액정 디스플레이) 모니터), 그리고 사용자로 하여금 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 구비하는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들이 또한 사용자와의 상호작용을 제공하기 위해 사용될 수 있는바, 예를 들어, 사용자에게 제공되는 피드백(feedback)은 임의 형태의 감각적 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고, 그리고 사용자로부터의 입력은 음향적, 음성적 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에 설명되는 시스템들 및 기법들은 컴퓨팅 시스템에서 구현될 수 있는바, 여기서 컴퓨팅 시스템은 백 엔드 컴포넌트(back end component)(예를 들어, 데이터 서버)를 포함하거나, 또는 미들웨어 컴포넌트(middleware component)(예를 들어, 애플리케이션 서버)를 포함하거나, 또는 프런트 엔드 컴포넌트(front end component)(예를 들어, 사용자가 본 명세서에 설명되는 시스템들 및 기법들의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 구비하는 클라이언트 컴퓨터)를 포함하며, 또는 이러한 백 엔드 컴포넌트, 미들웨어 컴포넌트 혹은 프런트 엔드 컴포넌트의 임의의 조합을 포함한다. 이러한 시스템의 컴포넌트들은 디지털 데이터 통신의 임의 형태 또는 매체(예를 들어, 통신 네트워크)에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은 로컬 영역 네트워크(Local Area Network)("LAN") 및 와이드 영역 네트워크(Wide Area Network)("WAN"), (애드-혹(ad-hoc) 혹은 정적 멤버(member)들을 갖는) 피어-투-피어 네트워크(peer-to-peer network)들, 그리드 컴퓨팅 인프러스트럭처(grid computing infrastructures)들, 그리고 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있고 전형적으로는 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터들 상에서 실행됨과 아울러 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들을 통해 발생한다.
몇 개의 구현예들이 앞에서 상세히 설명되었지만, 다른 수정예들이 가능하다. 더욱이, 본 문서에서 설명되는 시스템들 및 방법들을 수행하기 위한 다른 메커니즘들이 사용될 수 있다. 추가적으로, 도면들에서 묘사되는 로직 흐름들은 원하는 결과들을 달성하기 위해 그 제시된 특정 순서 혹은 순차적 순서를 요구하지 않는다. 다른 단계들이 제공될 수 있고, 또는 일부 단계들은 본 명세서에서 설명되는 흐름들로부터 제거될 수 있으며, 그리고 다른 컴포넌트들이 본 명세서에서 설명되는 시스템들에 추가될 수 있고, 또는 해당 시스템들로부터 제거될 수 있다. 따라서, 이러한 다른 구현예들은 다음의 청구항들의 범위 내에 있다.

Claims (27)

  1. 이미지(image)들 내의 움직임(motion)을 검출하기 위해 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 시스템(computing system)에 의해, 카메라(camera)에 의해 캡처(capture)된 제 1 이미지를 수신하는 단계와;
    상기 컴퓨팅 시스템에 의해, 상기 카메라에 의해 캡처된 제 2 이미지를 수신하는 단계와;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 제 2 이미지를 사용하여, 상기 제 1 이미지 및 상기 제 2 이미지에서 반영되는 장면(scene)에 관해 상기 제 1 이미지로부터 상기 제 2 이미지로의 상기 카메라의 이동(movement)을 표시하는 수학적 변환(mathematical transformation)을 발생시키는 단계와;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 수학적 변환을 사용하여, 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치로부터 상기 제 1 이미지에 의해 캡처된 상기 장면을 제시(present)하는 상기 제 1 이미지의 수정된 형태(modified version)를 발생시키는 단계와, 여기서 상기 제 1 이미지가 캡처된 때의 상기 카메라의 위치는 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치와는 다르며; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교함으로써, 상기 장면 내의 객체(object)의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분(portion)을 결정하는 단계를 포함하는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 제 2 이미지는 상기 카메라가 일련의 이미지들에서 상기 제 1 이미지를 캡처한 이후 상기 카메라가 상기 일련의 이미지들에서 캡처한 이미지인 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이(pixel difference)를 식별하는 것을 포함하는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은,
    상기 컴퓨팅 시스템에 의해, 객체의 가장자리(edge)가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 식별하기 위해 상기 제 1 이미지 혹은 상기 제 2 이미지의 공간 변화도(spatial gradient)를 계산하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이를 식별하는 것과; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것을 포함하고,
    상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것은,
    (ⅰ) 상기 계산된 공간 변화도가 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분 내에 상기 객체의 가장자리가 존재한다고 표시하는 것의 결과로서, 아울러
    (ⅱ) 상기 제 1 이미지의 일부분에서 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 식별된 픽셀 차이가 존재하는 것의 결과로서
    일어나는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  5. 제1항 내지 제4항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지 혹은 상기 제 2 이미지의 복수의 영역들의 격자(grid)를 상기 복수의 영역들의 격자에서의 이동에 대한 분석을 위해 식별하는 단계와, 여기서 상기 복수의 영역들의 격자는 복수의 행(row)들을 포함하고, 각각의 행은 상기 복수의 영역들 중 복수 개의 영역들을 포함하고; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 복수의 영역들 중 하나보다 많은 영역에 대해, 각각의 영역의 계산된 움직임을 식별시키는 값을 결정하는 단계를 더 포함하고,
    상기 장면 내의 상기 객체에서의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 단계는 상기 복수의 영역들 중 특정 영역에 대한 계산된 움직임을 식별시키는 값을 결정하는 것을 포함하는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  6. 제5항에 있어서,
    상기 복수의 영역들의 격자 내의 모든 영역들은 크기 및 형상이 동일한 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준(general level)을 식별시키는 값을 발생시키는 단계를 더 포함하고,
    상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 단계는, 각각의 영역들에 대한 계산된 움직임을 식별시킨 값들 중 적어도 일부를 결합함으로써, 수행되는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  8. 제1항 내지 제7항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 복수의 다른 이미지들에 추가하여 적어도 상기 제 1 이미지 및 상기 제 2 이미지를 포함하는 이미지들의 시퀀스(sequence)를 수신하는 단계와;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지의 비교에 근거하여 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 수준을 결정하는 단계와; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 상기 결정된 수준에 근거하여,
    (ⅰ) 적어도 사용자 입력이 상기 제 1 이미지 혹은 상기 제 2 이미지를 컴퓨터 저장소(computer storage)로부터 제거할 때까지 상기 제 1 이미지 혹은 상기 제 2 이미지를 상기 컴퓨터 저장소 내에 유지시킬 것, 그리고
    (ⅱ) 상기 복수의 다른 이미지들 중 적어도 하나가 저장소로부터 제거돼야 함을 특정하는 사용자 입력을 수신함이 없이 상기 복수의 다른 이미지들 중 적어도 하나를 저장소로부터 제거할 것을
    결정하는 단계를 더 포함하는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  9. 제1항 내지 제8항 중 어느 하나의 항에 있어서,
    상기 카메라의 이동을 표시하는 상기 수학적 변환은 호모그래피 변환 행렬(homography transform matrix)을 포함하는 것을 특징으로 하는 이미지들 내의 움직임을 검출하기 위해 컴퓨터로 구현되는 방법.
  10. 명령들을 포함하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스(non-transitory computer-readable device)들로서, 상기 명령들은 하나 이상의 프로세서(processor)들에 의해 실행될 때,
    컴퓨팅 시스템에 의해, 카메라에 의해 캡처된 제 1 이미지를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 카메라에 의해 캡처된 제 2 이미지를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 제 2 이미지를 사용하여, 상기 제 1 이미지 및 상기 제 2 이미지에서 반영되는 장면에 관해 상기 제 1 이미지로부터 상기 제 2 이미지로의 상기 카메라의 이동을 표시하는 수학적 변환을 발생시키는 것과;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 수학적 변환을 사용하여, 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치로부터 상기 제 1 이미지에 의해 캡처된 상기 장면을 제시하는 상기 제 1 이미지의 수정된 형태를 발생시키는 것과, 여기서 상기 제 1 이미지가 캡처된 때의 상기 카메라의 위치는 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치와는 다르며; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교함으로써, 상기 장면 내의 객체의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것을
    포함하는 동작들의 수행을 일으키는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  11. 제10항에 있어서,
    상기 제 2 이미지는 상기 카메라가 일련의 이미지들에서 상기 제 1 이미지를 캡처한 이후 상기 카메라가 상기 일련의 이미지들에서 캡처한 이미지인 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  12. 제10항 또는 제11항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이를 식별하는 것을 포함하는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  13. 제10항 또는 제11항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은,
    상기 컴퓨팅 시스템에 의해, 객체의 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 식별하기 위해 상기 제 1 이미지 혹은 상기 제 2 이미지의 공간 변화도를 계산하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이를 식별하는 것과; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것을 포함하고,
    상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것은,
    (ⅰ) 상기 계산된 공간 변화도가 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분 내에 상기 객체의 가장자리가 존재한다고 표시하는 것의 결과로서, 아울러
    (ⅱ) 상기 제 1 이미지의 일부분에서 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 식별된 픽셀 차이가 존재하는 것의 결과로서
    일어나는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  14. 제10항 내지 제13항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지 혹은 상기 제 2 이미지의 복수의 영역들의 격자를 상기 복수의 영역들의 격자에서의 이동에 대한 분석을 위해 식별하는 것과, 여기서 상기 복수의 영역들의 격자는 복수의 행들을 포함하고, 각각의 행은 상기 복수의 영역들 중 복수 개의 영역들을 포함하고; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 복수의 영역들 중 하나보다 많은 영역에 대해, 각각의 영역의 계산된 움직임을 식별시키는 값을 결정하는 것을 더 포함하고,
    상기 장면 내의 상기 객체에서의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것은 상기 복수의 영역들 중 특정 영역에 대한 계산된 움직임을 식별시키는 값을 결정하는 것을 포함하는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  15. 제14항에 있어서,
    상기 복수의 영역들의 격자 내의 모든 영역들은 크기 및 형상이 동일한 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  16. 제14항 또는 제15항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 것을 더 포함하고,
    상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 것은, 각각의 영역들에 대한 계산된 움직임을 식별시킨 값들 중 적어도 일부를 결합함으로써, 수행되는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  17. 제10항 내지 제16항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 복수의 다른 이미지들에 추가하여 적어도 상기 제 1 이미지 및 상기 제 2 이미지를 포함하는 이미지들의 시퀀스를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지의 비교에 근거하여 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 수준을 결정하는 것과; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 상기 결정된 수준에 근거하여,
    (ⅰ) 적어도 사용자 입력이 상기 제 1 이미지 혹은 상기 제 2 이미지를 컴퓨터 저장소로부터 제거할 때까지 상기 제 1 이미지 혹은 상기 제 2 이미지를 상기 컴퓨터 저장소 내에 유지시킬 것, 그리고
    (ⅱ) 상기 복수의 다른 이미지들 중 적어도 하나가 저장소로부터 제거돼야 함을 특정하는 사용자 입력을 수신함이 없이 상기 복수의 다른 이미지들 중 적어도 하나를 저장소로부터 제거할 것을
    결정하는 것을 더 포함하는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  18. 제10항 내지 제17항 중 어느 하나의 항에 있어서,
    상기 카메라의 이동을 표시하는 상기 수학적 변환은 호모그래피 변환 행렬을 포함하는 것을 특징으로 하는 하나 이상의 비일시적 컴퓨터 판독가능 디바이스들.
  19. 컴퓨팅 시스템으로서, 상기 컴퓨팅 시스템은,
    하나 이상의 프로세서들과, 그리고
    명령들을 포함하는 컴퓨터 프로그램을 저장하기 위한 저장 디바이스를 포함하고,
    상기 명령들은 상기 하나 이상의 프로세서들에 의해 실행될 때,
    상기 컴퓨팅 시스템에 의해, 카메라에 의해 캡처된 제 1 이미지를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 카메라에 의해 캡처된 제 2 이미지를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 제 2 이미지를 사용하여, 상기 제 1 이미지 및 상기 제 2 이미지에서 반영되는 장면에 관해 상기 제 1 이미지로부터 상기 제 2 이미지로의 상기 카메라의 이동을 표시하는 수학적 변환을 발생시키는 것과;
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 및 상기 수학적 변환을 사용하여, 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치로부터 상기 제 1 이미지에 의해 캡처된 상기 장면을 제시하는 상기 제 1 이미지의 수정된 형태를 발생시키는 것과, 여기서 상기 제 1 이미지가 캡처된 때의 상기 카메라의 위치는 상기 제 2 이미지가 캡처된 때의 상기 카메라의 위치와는 다르며; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교함으로써, 상기 장면 내의 객체의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것을
    포함하는 동작들의 수행을 일으키는 것을 특징으로 하는 컴퓨팅 시스템.
  20. 제19항에 있어서,
    상기 제 2 이미지는 상기 카메라가 일련의 이미지들에서 상기 제 1 이미지를 캡처한 이후 상기 카메라가 상기 일련의 이미지들에서 캡처한 이미지인 것을 특징으로 하는 컴퓨팅 시스템.
  21. 제19항 또는 제20항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이를 식별하는 것을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  22. 제19항 또는 제20항에 있어서,
    상기 제 1 이미지의 상기 수정된 형태를 상기 제 2 이미지와 비교하는 것은,
    상기 컴퓨팅 시스템에 의해, 객체의 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 식별하기 위해 상기 제 1 이미지 혹은 상기 제 2 이미지의 공간 변화도를 계산하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 픽셀 차이를 식별하는 것과; 그리고
    상기 컴퓨팅 시스템에 의해, 상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것을 포함하고,
    상기 객체의 이동하는 가장자리가 존재하는 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것은,
    (ⅰ) 상기 계산된 공간 변화도가 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분 내에 상기 객체의 가장자리가 존재한다고 표시하는 것의 결과로서, 아울러
    (ⅱ) 상기 제 1 이미지의 일부분에서 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지 간의 식별된 픽셀 차이가 존재하는 것의 결과로서
    일어나는 것을 특징으로 하는 컴퓨팅 시스템.
  23. 제19항 내지 제22항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지 혹은 상기 제 2 이미지의 복수의 영역들의 격자를 상기 복수의 영역들의 격자에서의 이동에 대한 분석을 위해 식별하는 것과, 여기서 상기 복수의 영역들의 격자는 복수의 행들을 포함하고, 각각의 행은 상기 복수의 영역들 중 복수 개의 영역들을 포함하고; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 복수의 영역들 중 하나보다 많은 영역에 대해, 각각의 영역의 계산된 움직임을 식별시키는 값을 결정하는 것을 더 포함하고,
    상기 장면 내의 상기 객체에서의 위치가 이동한 상기 제 1 이미지 혹은 상기 제 2 이미지의 일부분을 결정하는 것은 상기 복수의 영역들 중 특정 영역에 대한 계산된 움직임을 식별시키는 값을 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  24. 제23항에 있어서,
    상기 복수의 영역들의 격자 내의 모든 영역들은 크기 및 형상이 동일한 것을 특징으로 하는 컴퓨팅 시스템.
  25. 제23항 또는 제24항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 것을 더 포함하고,
    상기 제 1 이미지와 상기 제 2 이미지 간의 이동의 일반 수준을 식별시키는 값을 발생시키는 것은, 각각의 영역들에 대한 계산된 움직임을 식별시킨 값들 중 적어도 일부를 결합함으로써, 수행되는 것을 특징으로 하는 컴퓨팅 시스템.
  26. 제19항 내지 제25항 중 어느 하나의 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 복수의 다른 이미지들에 추가하여 적어도 상기 제 1 이미지 및 상기 제 2 이미지를 포함하는 이미지들의 시퀀스를 수신하는 것과;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 이미지의 상기 수정된 형태와 상기 제 2 이미지의 비교에 근거하여 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 수준을 결정하는 것과; 그리고
    상기 컴퓨팅 시스템에 의해 그리고 상기 제 1 이미지 혹은 상기 제 2 이미지에 의해 반영된 이동의 상기 결정된 수준에 근거하여,
    (ⅰ) 적어도 사용자 입력이 상기 제 1 이미지 혹은 상기 제 2 이미지를 컴퓨터 저장소로부터 제거할 때까지 상기 제 1 이미지 혹은 상기 제 2 이미지를 상기 컴퓨터 저장소 내에 유지시킬 것, 그리고
    (ⅱ) 상기 복수의 다른 이미지들 중 적어도 하나가 저장소로부터 제거돼야 함을 특정하는 사용자 입력을 수신함이 없이 상기 복수의 다른 이미지들 중 적어도 하나를 저장소로부터 제거할 것을
    결정하는 것을 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  27. 제19항 내지 제26항 중 어느 하나의 항에 있어서,
    상기 카메라의 이동을 표시하는 상기 수학적 변환은 호모그래피 변환 행렬을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020187011276A 2016-01-29 2016-11-30 이미지들 내의 움직임 검출 KR102068719B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/010,239 US10002435B2 (en) 2016-01-29 2016-01-29 Detecting motion in images
US15/010,239 2016-01-29
PCT/US2016/064193 WO2017131855A1 (en) 2016-01-29 2016-11-30 Detecting motion in images

Publications (2)

Publication Number Publication Date
KR20180054808A true KR20180054808A (ko) 2018-05-24
KR102068719B1 KR102068719B1 (ko) 2020-01-21

Family

ID=57750549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187011276A KR102068719B1 (ko) 2016-01-29 2016-11-30 이미지들 내의 움직임 검출

Country Status (6)

Country Link
US (3) US10002435B2 (ko)
EP (1) EP3408830A1 (ko)
JP (1) JP6799593B2 (ko)
KR (1) KR102068719B1 (ko)
CN (1) CN108112271B (ko)
WO (1) WO2017131855A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002435B2 (en) * 2016-01-29 2018-06-19 Google Llc Detecting motion in images
JP6744747B2 (ja) * 2016-04-01 2020-08-19 キヤノン株式会社 情報処理装置およびその制御方法
JP7019128B2 (ja) 2018-01-22 2022-02-15 株式会社トーメーコーポレーション 光断層画像撮影装置
JP2020053774A (ja) * 2018-09-25 2020-04-02 株式会社リコー 撮像装置および画像記録方法
US10775977B2 (en) * 2019-01-25 2020-09-15 Google Llc Image display with selective depiction of motion
CN110097576B (zh) * 2019-04-29 2022-11-18 腾讯科技(深圳)有限公司 图像特征点的运动信息确定方法、任务执行方法和设备
IT201900007815A1 (it) * 2019-06-03 2020-12-03 The Edge Company S R L Metodo per il rilevamento di oggetti in movimento
DE102019116381A1 (de) * 2019-06-17 2020-12-17 Schölly Fiberoptic GmbH Verfahren zur Bestimmung der Bildposition eines Markierungspunktes in einem Bild einer Bildsequenz
CN110351520B (zh) * 2019-07-11 2021-06-22 深圳市华方信息产业有限公司 一种运动体图像跟踪获取方法及其系统
US11935295B2 (en) * 2020-06-01 2024-03-19 The Regents Of The University Of Michigan Scene caching for video capture data reduction
WO2022066810A1 (en) * 2020-09-23 2022-03-31 Wayne State University Systems and methods for predicting and preventing bleeding and other adverse events
KR20230030996A (ko) * 2021-08-26 2023-03-07 현대자동차주식회사 객체 추적 장치 및 방법
CN114612510B (zh) * 2022-03-01 2024-03-29 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及计算机程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053876A (en) * 1988-07-01 1991-10-01 Roke Manor Research Limited Image stabilization
US20070230742A1 (en) * 2006-04-03 2007-10-04 Burns John B Method and apparatus for autonomous object tracking

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4637571A (en) 1985-09-03 1987-01-20 The United States Of America As Represented By The Secretary Of The Army Electronic image stabilization
USRE38420E1 (en) * 1992-08-12 2004-02-10 British Broadcasting Corporation Derivation of studio camera position and motion from the camera image
JP3612227B2 (ja) * 1998-01-07 2005-01-19 株式会社東芝 物体抽出装置
US6072631A (en) 1998-07-09 2000-06-06 3M Innovative Properties Company Diffractive homogenizer with compensation for spatial coherence
US6609015B2 (en) 2001-01-18 2003-08-19 Koninklijke Philips Electronics N.V. Analysis of a composition
GB2378338A (en) * 2001-07-31 2003-02-05 Hewlett Packard Co Automatic identification of features of interest within a video signal
US20030038927A1 (en) 2001-08-27 2003-02-27 Alden Ray M. Image projector with integrated image stabilization for handheld devices and portable hardware
KR100443678B1 (ko) 2001-09-29 2004-08-09 엘지전자 주식회사 영상내의 오브젝트 영역 추출방법
DE10211141A1 (de) 2002-03-14 2003-09-25 Alstom Switzerland Ltd Verfahren zum Zünden der Brennkammer einer Gasturbinenanlage sowie Zündvorrichtung zur Durchführung des Verfahrens
US7409092B2 (en) * 2002-06-20 2008-08-05 Hrl Laboratories, Llc Method and apparatus for the surveillance of objects in images
US6961481B2 (en) * 2002-07-05 2005-11-01 Lockheed Martin Corporation Method and apparatus for image processing using sub-pixel differencing
GB2394851A (en) * 2002-10-30 2004-05-05 Hewlett Packard Co A camera having a user operable control for producing a saliency signal representative of a user's interest in a scene being imaged
GB2404298B (en) * 2003-07-24 2007-08-22 Hewlett Packard Development Co Editing of Recorded Media
JP2005136596A (ja) * 2003-10-29 2005-05-26 Ricoh Co Ltd 動画像処理システム、動画像処理方法、プログラム及び情報記録媒体
JP2005309559A (ja) * 2004-04-19 2005-11-04 Fuji Photo Film Co Ltd 画像処理方法および装置並びにプログラム
US20050244077A1 (en) * 2004-04-22 2005-11-03 Fuji Photo Film Co., Ltd. Method, apparatus and program for image processing
US20050271300A1 (en) * 2004-06-02 2005-12-08 Pina Robert K Image registration system and method
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
US7315631B1 (en) 2006-08-11 2008-01-01 Fotonation Vision Limited Real-time face tracking in a digital image acquisition device
JP4196302B2 (ja) * 2006-06-19 2008-12-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20080044170A1 (en) 2006-08-16 2008-02-21 Choon Hwee Yap Image Capturing System And Method Of Operating The Same
EP1931147B1 (en) * 2006-12-04 2019-07-10 Harman Becker Automotive Systems GmbH Apparatus and method for processing an image of a surrounding of a vehicle
US20110025830A1 (en) * 2009-07-31 2011-02-03 3Dmedia Corporation Methods, systems, and computer-readable storage media for generating stereoscopic content via depth map creation
US8570319B2 (en) * 2010-01-19 2013-10-29 Disney Enterprises, Inc. Perceptually-based compensation of unintended light pollution of images for projection display systems
EP2678824B1 (en) * 2011-02-25 2019-08-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Determining model parameters based on transforming a model of an object
US9300946B2 (en) * 2011-07-08 2016-03-29 Personify, Inc. System and method for generating a depth map and fusing images from a camera array
TWI469062B (zh) 2011-11-11 2015-01-11 Ind Tech Res Inst 影像穩定方法及影像穩定裝置
KR101905648B1 (ko) * 2012-02-27 2018-10-11 삼성전자 주식회사 카메라 장치의 동영상 촬영방법 및 장치
US9019350B2 (en) * 2012-04-12 2015-04-28 Raytheon Company Stereo rectification method
US9317764B2 (en) * 2012-12-13 2016-04-19 Qualcomm Incorporated Text image quality based feedback for improving OCR
CN103973963B (zh) * 2013-02-06 2017-11-21 聚晶半导体股份有限公司 图像获取装置及其图像处理方法
US9286664B2 (en) * 2013-03-12 2016-03-15 Drs Network & Imaging Systems, Llc System and method for blind image deconvolution
US8977007B1 (en) * 2013-04-23 2015-03-10 Google Inc. Detecting a vehicle signal through image differencing and filtering
JP6170395B2 (ja) * 2013-09-26 2017-07-26 キヤノン株式会社 撮像装置およびその制御方法
US9208573B2 (en) 2013-10-29 2015-12-08 Google Inc. Systems and methods for determining motion saliency
AU2013263760A1 (en) * 2013-11-28 2015-06-11 Canon Kabushiki Kaisha Method, system and apparatus for determining a depth value of a pixel
US9854168B2 (en) * 2014-03-07 2017-12-26 Futurewei Technologies, Inc. One-pass video stabilization
JP5867790B2 (ja) * 2014-04-23 2016-02-24 富士ゼロックス株式会社 画像処理装置
JP6223899B2 (ja) * 2014-04-24 2017-11-01 株式会社東芝 動きベクトル検出装置、距離検出装置および動きベクトル検出方法
US10664687B2 (en) * 2014-06-12 2020-05-26 Microsoft Technology Licensing, Llc Rule-based video importance analysis
CN104063867B (zh) * 2014-06-27 2017-02-08 浙江宇视科技有限公司 一种多摄像机视频同步方法和装置
US9955056B2 (en) * 2015-03-16 2018-04-24 Qualcomm Incorporated Real time calibration for multi-camera wireless device
US10002435B2 (en) * 2016-01-29 2018-06-19 Google Llc Detecting motion in images
US20180350086A1 (en) * 2017-05-31 2018-12-06 Qualcomm Incorporated System And Method Of Dynamically Filtering Depth Estimates To Generate A Volumetric Map Of A Three-Dimensional Environment Having An Adjustable Maximum Depth
US11308657B1 (en) * 2021-08-11 2022-04-19 Neon Evolution Inc. Methods and systems for image processing using a learning engine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053876A (en) * 1988-07-01 1991-10-01 Roke Manor Research Limited Image stabilization
US20070230742A1 (en) * 2006-04-03 2007-10-04 Burns John B Method and apparatus for autonomous object tracking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jung & Sukhatme. Real time motion tracking from a mobile robot. International Journal of Social Robotics, 2010년, pp. 63-78. 1부.* *
Kim and Kim. Spatiotemporal Saliency Detection Using Textural Contrast and Its Applications. IEEE Trans. CSVT, 2014, pp. 646-659. 1부.* *

Also Published As

Publication number Publication date
US10002435B2 (en) 2018-06-19
JP6799593B2 (ja) 2020-12-16
US20170221217A1 (en) 2017-08-03
US10957054B2 (en) 2021-03-23
WO2017131855A1 (en) 2017-08-03
US20180293741A1 (en) 2018-10-11
CN108112271B (zh) 2022-06-24
JP2019505868A (ja) 2019-02-28
US11625840B2 (en) 2023-04-11
EP3408830A1 (en) 2018-12-05
KR102068719B1 (ko) 2020-01-21
CN108112271A (zh) 2018-06-01
US20210183077A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
KR102068719B1 (ko) 이미지들 내의 움직임 검출
TWI750498B (zh) 視訊流的處理方法和裝置
US9041834B2 (en) Systems and methods for reducing noise in video streams
US9710698B2 (en) Method, apparatus and computer program product for human-face features extraction
US9262811B2 (en) System and method for spatio temporal video image enhancement
KR101071352B1 (ko) 좌표맵을 이용한 팬틸트줌 카메라 기반의 객체 추적 장치 및 방법
US9773192B2 (en) Fast template-based tracking
JP6688277B2 (ja) プログラム、学習処理方法、学習モデル、データ構造、学習装置、および物体認識装置
US9674441B2 (en) Image processing apparatus, image processing method, and storage medium
US9307148B1 (en) Video enhancement techniques
CN109767453B (zh) 信息处理装置、背景图像更新方法和非暂态计算机可读存储介质
US9838604B2 (en) Method and system for stabilizing video frames
US20180295273A1 (en) Device and method for detecting regions in an image
JP2012068948A (ja) 顔属性推定装置およびその方法
JP6289027B2 (ja) 人物検出装置及びプログラム
CN109493349B (zh) 一种图像特征处理模块、增强现实设备和角点检测方法
Gurrala et al. Enhancing Safety and Security: Face Tracking and Detection in Dehazed Video Frames Using KLT and Viola-Jones Algorithms.
JP2014053859A (ja) 移動体観測装置
JP2009042909A (ja) 特徴点検出装置、およびそれを搭載した動画像処理装置

Legal Events

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