KR101926563B1 - 카메라 추적을 위한 방법 및 장치 - Google Patents

카메라 추적을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101926563B1
KR101926563B1 KR1020120005745A KR20120005745A KR101926563B1 KR 101926563 B1 KR101926563 B1 KR 101926563B1 KR 1020120005745 A KR1020120005745 A KR 1020120005745A KR 20120005745 A KR20120005745 A KR 20120005745A KR 101926563 B1 KR101926563 B1 KR 101926563B1
Authority
KR
South Korea
Prior art keywords
features
frames
frame
cameras
tracking
Prior art date
Application number
KR1020120005745A
Other languages
English (en)
Other versions
KR20130084849A (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 삼성전자주식회사
Priority to KR1020120005745A priority Critical patent/KR101926563B1/ko
Priority to US13/447,661 priority patent/US8873802B2/en
Priority to CN201210286784.XA priority patent/CN103218799B/zh
Publication of KR20130084849A publication Critical patent/KR20130084849A/ko
Application granted granted Critical
Publication of KR101926563B1 publication Critical patent/KR101926563B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • 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/20088Trinocular vision calculations; trifocal tensor
    • 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)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)

Abstract

카메라의 위치를 추적하기 위한 방법 및 장치가 제공된다. 카메라 위치 추적 장치는 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 카메라들의 위치를 추적한다. 카메라 위치 추적 장치는 다중-프레임들 내에서 하나 이상의 제1 특징들을 추출 및 추적하고, 추적된 제1 특징들에 기반하여 다중-프레임들 각각 내에서의 카메라들 각각의 위치를 추적한다. 다중-프레임들 내에서 제1 특징들이 추적되면, 카메라 위치 추적 장치는 하나 이상의 단일-프레임들 각각의 제2 특징들에 기반하여 하나 이상의 단일-프레임들 각각 내에서의 카메라들 각각의 위치를 추적한다. 여기서, 하나 이상의 단일-프레임들은 다중-프레임들에 연이은 프레임들 중 제1 특징들 중 하나에 대응하는 제2 특징들이 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임들이다.

Description

카메라 추적을 위한 방법 및 장치{METHOD AND APPARATUS FOR CAMERA TRACKING}
아래의 실시예들은 카메라의 위치를 추적하기 위한 방법 및 장치에 관한 것이다.
적어도 3 개의 카메라들에 의해 촬영된 프레임들에 기반하여 카메라들 각각의 위치를 추적하는 방법 및 장치가 개시된다.
카메라 추적(tracking)은 컴퓨터 비젼에 있어서 기본적인 문제이다. 카메라 추적의 목적은 비디오(video) 시퀀스(sequence)로부터 자동으로 카메라의 움직임을 복원하는 것일 수 있다. 카메라 추적의 기본적인 아이디어는 프레임들의 시퀀스 내에서 출현하는 씬 포인트(point)들을 선택하고, 2D 특성(feature) 포인트들의 대응(correspondence)들의 집합(set)에 기반하여 선택된 씬 포인트들의 3차원(Dimension; D) 위치 및 카메라 움직임을 동시에 추정하는 것이다.
깊이 복원(depth recovery), 3D 재구성(reconstruction), 위치 인식(location recognition) 및 자동 로봇 네비게이션(autonomous robot navigation) 등과 같은, 카메라 추적에 대한 다수의 응용(application)들이 존재한다.
특히, 디지털 카메라들이 널리 보급됨에 따라, 단안(monocular) 카메라들이 이미 쉽게 접근할 수 있게 되었고, 단안 카메라들의 가격은 점점 더 낮아지고 있다. 따라서, 단안 카메라를 추적하는 방법들이 광범위하게 사용되고 있다.
그러나, 단안 카메라에 의해 촬영된 이미지로부터는 동적인 객체(dynamic object)의 3차원 정보가 복원될 수 없다. 또한, 축적 오류(accumulation error) 때문에, 단안 카메라에 의해 촬영된 이미지를 사용하여 광범위한(large-scale) 씬(scene)들에 대한 카메라 움직임(motion)을 정확하게 복원하는 것은 어렵다.
스테레오(stereo) 카메라들을 사용하여 카메라 움직임 및 이미지의 깊이 맵들을 복원하는 몇몇 방법들이 제안되었다. 그러나, 스테레오 카메라에 의해 이미지들이 촬영된 경우, 이미지 내의 폐색을 다루는 것이 어려울 수 있다.
일 실시예는 적어도 3 개의 카메라에 의해 촬영된 프레임들에 기반하여 상기의 프레임들 내에서 특징들을 추출하고, 추출된 특징들에 기반하여 카메라들 각각의 위치를 추정하는 방법 및 장치를 제공할 수 있다.
일 실시예는 다중-프레임들 내에서 제1 특징들을 추적하고, 추적된 제1 특징들에 기반하여 단일-프레임 내에서 상기의 제1 특징에 대응하는 제2 특징들을 추적하는 방법 및 장치를 제공할 수 있다.
일 측에 따르면, 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 상기 카메라들의 위치를 추적하는 방법에 있어서, 다중-프레임들 내에서 하나 이상의 제1 특징들을 추출 및 추적하고, 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계 및 하나 이상의 단일-프레임들 각각의 제2 특징들에 기반하여 상기 하나 이상의 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계를 포함하고, 상기 하나 이상의 단일-프레임들은 상기 다중-프레임들에 연이은 프레임들 중 상기 제1 특징들 중 하나에 대응하는 제2 특징들이 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임들인, 카메라 위치 추적 방법이 제공된다.
상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는, 상기 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 제3 특징들을 추출하는 단계, 상기 제3 특징들을 상기 다중-프레임들 중 마지막 프레임까지 추적하는 단계, 상기 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 상기 제1 특징들을 결정하는 단계 및 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추정하는 단계를 포함할 수 있다.
상기 제3 특징들을 추출하는 단계는, 상기 첫 번째 프레임의 적어도 3 개의 이미지들로부터 포인트들을 추출하고, 스케일 불변 특징 변형 설명자(Scale Invariant Feature Transform; SIFT)들을 생성하는 단계, 상기 추출된 포인트들을 상기 생성된 SIFT들 간의 설명자 비교를 사용하여 서로 간에 매치시키며, 상기 포인트들 중 매치된 포인트들을 특징으로서 연결시킴으로써 상기 제3 특징들을 생성하는 단계를 포함할 수 있다.
상기 제3 특징들을 추출하는 단계는, 기하 제약을 사용하여 상기 제3 특징들 중 아웃라이어들을 제거하는 단계를 더 포함할 수 있다.
상기 기하 제약은 에피폴라 제약, 재-투영 제약 및 깊이 범위 제약 중 하나 이상일 수 있다.
상기 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는, 상기 다중-프레임들의 다음 프레임을 현재 프레임으로 설정하는 단계, 상기 현재 프레임 내에서 상기 제1 특징들 중 하나의 특징에 대응하는 상기 제2 특징들을 추출하는 단계, 상기 제2 특징들의 개수가 문턱치 이상인 경우 현재 프레임 내에서의 상기 카메라들 각각의 위치를 추정하는 단계 및 상기 제2 특징들의 개수가 문턱치 이상인 경우 상기 현재 프레임의 다음 프레임을 상기 현재 프레임으로 설정하고 상기 제2 특징들을 추출하는 단계를 반복하는 단계를 포함할 수 있다.
상기 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는, 상기 제2 특징들의 개수가 문턱치보다 적은 경우 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계를 다시 수행하는 단계를 더 포함할 수 있다.
다른 일 측에 따르면, 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 상기 카메라들의 위치를 추적하는 카메라 위치 추적 장치에 있어서, 다중-프레임들 내에서 하나 이상의 제1 특징들을 추출 및 추적하고, 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 다중-프레임들 처리부 및 하나 이상의 단일-프레임들 각각의 제2 특징들에 기반하여 상기 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단일-프레임 처리부를 포함하고, 상기 하나 이상의 단일-프레임들은 상기 다중-프레임들에 연이은 프레임들 중 상기 제1 특징들 중 하나에 대응하는 제2 특징들이 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임들인, 카메라 위치 추적 장치가 제공된다.
상기 다중-프레임들 처리부는, 상기 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 제3 특징들을 추출하는 특징 추출부, 상기 제3 특징들을 상기 다중-프레임들 중 마지막 프레임까지 추적하는 특징 추적부, 상기 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 상기 제1 특징들을 결정하는 동적 포인트 검출부 및 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추정하는 카메라 위치 추정부를 포함할 수 있다.
상기 동적 포인트 검출부는 상기 제3 특징들 각각의 4차원 궤적 부공간을 계산하고, 상기 4차원 궤적 부공간에 기반하여 상기 제3 특징들 각각이 동적 궤적을 갖는지 여부를 판단할 수 있다.
상기 첫 번째 프레임의 적어도 3 개의 이미지들로부터 포인트들을 추출하고, 스케일 불변 특징 변형 설명자(Scale Invariant Feature Transform; SIFT)들을 생성고, 상기 추출된 포인트들을 상기 생성된 SIFT들 간의 설명자 비교를 사용하여 서로 간에 매치시키며, 상기 포인트들 중 매치된 포인트들을 특징으로서 연결시킴으로써 상기 제3 특징들을 생성할 수 있다.
상기 특징 추출부는 기하 제약을 사용하여 상기 제3 특징들 중 아웃라이어들을 제거함으로써 상기 제1 특징들을 결정할 수 있다.
상기 단일-프레임 처리부는, 상기 다중-프레임들의 다음 프레임을 현재 프레임으로 설정하는 현재 프레임 설정부, 상기 현재 프레임 내에서 상기 제1 특징들 중 하나의 특징에 대응하는 상기 제2 특징들을 추출하는 현재 프레임 특징 추정부 및 상기 제2 특징들의 개수가 문턱치 이상인 경우 현재 프레임 내에서의 상기 카메라들 각각의 위치를 추정하는 문턱치 비교부를 포함할 수 있다.
상기 제2 특징들의 개수가 문턱치 이상인 경우 상기 현재 프레임 설정부는 상기 현재 프레임의 다음 프레임을 상기 현재 프레임으로 새롭게 설정할 수 있고, 상기 현재 프레임 특징 추정부는 상기 새롭게 설정된 현재 프레임으로부터 상기 제1 특징들 중 하나의 특징에 대응하는 상기 제2 특징들을 추출할 수 있다.
상기 제2 특징들의 개수가 문턱치보다 적은 경우 상기 다중-프레임들 처리부는 재실행될 수 있다.
다중-프레임들 내에서 제1 특징들을 추적하고, 추적된 제1 특징들에 기반하여 단일-프레임 내에서 상기의 제1 특징에 대응하는 제2 특징들을 추적하는 방법 및 장치가 제공된다.
적어도 3 개의 카메라에 의해 촬영된 프레임들에 기반하여 상기의 프레임들 내에서 특징들을 추출하고, 추출된 특징들에 기반하여 카메라들 각각의 위치를 추정하는 방법 및 장치가 제공된다.
도 1은 일 실시예에 따른 카메라 추적 장치의 동작을 설명한다.
도 2는 일 실시예에 따른 카메라 위치 추적 장치의 구조도이다.
도 3 은 일 실시예에 따른 카메라 위치 추적 방법의 흐름도이다.
도 4는 일 예에 따른 다중-프레임들 처리 단계의 흐름도이다.
도 5는 일 예에 따른 특징 추출 단계를 설명한다.
도 6은 일 예에 따른 특징 추적 단계의 흐름도이다.
도 7은 일 예에 따른 동적 포인트 검출 단계의 흐름도이다.
도 8은 일 예에 따른 카메라 위치 추정의 흐름도이다.
도 9는 일 예에 따른 단일-프레임 처리 단계의 흐름도이다.
이하에서, 실시예들을, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
3안 카메라는 3 개의 동기화된 카메라들을 포함할 수 있다. 3 개의 카메라들은 동일 선상으로(collinear) 구성될 수 있다.
하기에서, 시퀀스는 씬을 연속적으로 캡춰함으로써 생성된 일련의 이미지들을 의미할 수 있다. 3안의 시퀀스들은 3안 카메라 내의 3 개의 카메라들이 각각 씬을 연속적으로 캡취함으로써 생성한 3 개의 시퀀스들을 의미할 수 있다.
씬 포인트의 3차원 위치 M은 [X, Y, Z] T 로 나타낼 수 있다. 여기서, X, YZ는 각각 씬 포인트의 X 좌표, Y 좌표 및 Z 좌표를 나타낼 수 있다. 씬 포인트의 2차원 이미지 위치 m은 [u, v, ] T 로 나타낼 수 있다.
카메라 변환(transformation)은
Figure 112012004777260-pat00001
로 모델링될 수 있다. 여기서, K는 고유 행렬(intrinsic matrix)일 수 있다,
Figure 112012004777260-pat00002
는 투영 행렬(projective matrix)일 수 있다.
고유 행렬은 카메라의 고유의 속성(property) 에 의존할 수 있다. 상기의 카메라의 고유의 속성은 1) 이미지의 x 축 및 y 축을 따르는 픽셀 단위의 초점 길이들(focal length), 2) x 축 및 y 축 간의 경사비 및 3) 주점(principal point)을 포함(encompass)할 수 있다. 여기서, 주점은 이미지 평면으로의 카메라 중심의 투영을 의미할 수 있다.
외적 행렬은 회전 R 및 변환 t를 포함하는 카메라 움직임을 모델(model)할 수 있다. 따라서, 투영 프로시듀어(procedure)는
Figure 112012004777260-pat00003
로서 표현될 수 있다. 여기서,
Figure 112012004777260-pat00004
는 스케일 팩터(scale factor)일 수 있다. 운동으로부터 구조의 출현(Structure-from-Motion)은 이미지 측정치들인 m'들로부터 모든 M들 및
Figure 112012004777260-pat00005
을 추정하는 것을 의미할 수 있다.
만약, 선택된 씬 포인트들이 모두 정적인 것이라면, 상기의 추정은 매우 신뢰성 있다. 그러나, 씬이 몇몇 움직이는 객체들을 포함할 때, 몇몇 포인트들은 캡춰 동안 단지 1 개의 3D 위치만을 갖지는 않으므로 상기의 추정은 심각하게 혼동(confuse)될 수 있다. 포인트가 정적인지 여부를 결정하기 위해서, 일반적으로 포인트에 대응하는 2D 이미지 위치들의 모든 쌍들이 에피폴라 기하를 만족시키는지 여부가 검사(check)될 수 있다.
스테레오 리그(stereo rig)가 가용한(available) 경우, 매치된 포인트들의 3D 위치들은 삼각 측량(triangulation)을 통해 더 신뢰성있게 계산될 수 있다. 동일한 프레임에 속하는 2 개의 이미지들 및 좌측 뷰 및 우측 뷰 사이의 상대적인 위치는 스테레오 리그로부터 직접적으로 유도될 수 있다.
3D 위치에 대한 정보는 특성의 추적에도 유용할 수 있다. 특성의 추적은 동일한 씬 포인트에 대응하는 이미지의 포인트들을 연결하는 것일 수 있다.
도 1은 일 실시예에 따른 카메라 추적 장치의 동작을 설명한다.
좌측 이미지, 중간 이미지 및 우측 이미지를 촬영할 수 있는 3안(triocular) 카메라가 사용될 경우, 중간 이미지 내의 특정한 픽셀이 좌측 이미지 및 우측 이미지 양자 내에서 폐색되는 것은 드물게 발생한다.
또한, 3안 카메라가 사용될 경우, 각 타임스템프(timestamp)에서, 3 개의 이미지들이 획득될 수 있다. 따라서, 3 개의 이미지들에 기반하여, 추적된(tracked) 특징(feature)들의 3D 위치를 계산하고, 아웃라이어(outlier)들을 제거하기 위해, 에피폴라(epipolar) 기하(geometry)에 비해 더 강력한(stronger) 기하 제약(constraint)이 사용될 수 있다.
3안 카메라의 구성(configuration)에 있어서, 3안 카메라 내의 3 개의 카메라들 각각의 상대적인 위치들은 고정된 것으로 간주될 수 있다. 또한, 이미지를 캡춰(capture)하는 동안 상기의 3 개의 카메라들의 고유(intrinsic) 파라미터(parameter)들은 변하지 않는 것으로 가정될 수 있다. 따라서, 카메라 위치 추적 장치(100)로의 입력 값들은, 3안의 시퀀스들뿐만 아니라, 3 개의 카메라들에 대한 고유 행렬들 및 상대적인 카메라 위치를 포함할 수 있다. 또한, 카메라 위치 추적 장치(100)의 출력 값들은 각 이미지에 대한 외적 행렬(extrinsic matrix)일 수 있다. 여기서, 외적 행렬은 회전(rotation) 행렬 및 변환(translation) 벡터(vector)를 포함할 수 있다.
3 개의 카메라들의 고유 파라미터들 및 위치들은, 예컨대 매츠랩을 위한 카메라 교정 툴(Camera Calibration Toolbox for Matlab)과 같은, 툴(tool)에 의해 교정(calibrate)될 수 있다. 2 개의 카메라들 각각이 외적 카메라 파라미터(extrinsic camera parameter)들이
Figure 112012004777260-pat00006
Figure 112012004777260-pat00007
라면, 상기의 2 개의 카메라들 간의 상대적 위치
Figure 112012004777260-pat00008
는 하기의 수학식 1에 기반하여 계산될 수 있다.
Figure 112012004777260-pat00009
3안 시퀀스가 카메라 위치 추적 장치(100)로 입력될 수 있다. 또한, 3안 카메라의 3 개의 카메라들 각각의 고유 행렬 K left, K middleK right가 카메라 위치 추적 장치(100)의 입력 파라미터로서 사용될 수 있다. 또한, 3 개의 카메라들 중, 좌측 카메라로부터 중간 카메라로의 투영 행렬
Figure 112012004777260-pat00010
및 좌측 카메라로부터 우측 카메라로의 투영 행렬
Figure 112012004777260-pat00011
이 카메라 위치 추적 장치(100)의 입력 파라미터로서 사용될 수 있다.
일단, 3 개의 카메라들의 고유 파라미터들 및 상대적 위치들이 계산되면, 카메라 위치 추적 장치(100)는 삼각 측량(triangulation)을 통해 3 개의 카메라들에 의해 캡취된 이미지들 간의 매치된(matched) 특징 포인트(feature point)들의 3D 포인트들을 추정(estimate)할 수 있다.
또한, 추적된 특징들의 3D 포인트들이 계산되면, 카메라 위치 추적 장치(100)는 이러한 3D 및 2D 간의 대응(correspondence)에 기반하여 신뢰성있고(reliably) 신속하게(rapidly) 카메라의 위치들을 계산할 수 있다.
3안 시퀀스가 F 개의 프레임들을 포함할 때, 카메라 위치 추적 장치(100)는 각 프레임 별로 3 개의 카메라들 각각의 위치를 출력할 수 있다. 예컨대,
Figure 112012004777260-pat00012
는 첫 번째 프레임 내에서의 좌측 카메라의 위치를 나타낼 수 있다.
Figure 112012004777260-pat00013
는 마지막 프레임인 F 번째 프레임 내에서의 우측 카메라의 위치를 나타낼 수 있다.
도 2는 일 실시예에 따른 카메라 위치 추적 장치의 구조도이다.
카메라 위치 추적 장치(100)는 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 상기 카메라들의 위치를 추적한다.
카메라 위치 추적 장치(100)는 다중-프레임들 처리부(210) 및 단일-프레임 처리부(220)를 포함할 수 있다.
다중-프레임들 처리부(210)는 다중-프레임들 내에서 하나 이상의 제1 특징들을 추출 및 추적할 수 있고, 제1 특징들에 기반하여 다중-프레임들 각각 내에서의 카메라들 각각의 위치를 추적할 수 있다. 다중-프레임들 처리부(210)는 단일-프레임 처리부(220)에게 제1 특징들에 대한 정보를 제공할 수 있다.
단일-프레임 처리부(220)는 하나 이상의 단일-프레임들 각각의 제2 특징들에 기반하여 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적할 수 있다. 여기서, 하나 이상의 단일-프레임들은 다중-프레임들에 연이은 프레임들 중 상기 제1 특징들 중 하나에 대응하는 제2 특징들이 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임들일 수 있다.
즉, 다중-프레임들 처리부(210)가 다중-프레임들 내에서 제1 특징들을 추출 및 추적하면, 단일-프레임들 처리부(220)는 다중-프레임들 처리부(210)가 처리한 프레임들의 이후의 프레임들을 한 개씩 처리할 수 있다. 여기서, 프레임의 처리란 프레임 내에서 특징들을 추적하고, 추적된 특징들에 기반하여 프레임 내에서의 카메라들 각각의 위치를 추적하는 것을 의미할 수 있다. 즉, 다중-프레임들 처리부(210)로부터 단일-프레임 처리부(220)로 제1 특징들이 제공되면, 단일-프레임 처리부(220) 다중-프레임들 처리부(210)가 처리한 프레임들의 이후의 프레임에서 제2 특징들을 추적할 수 있다. 여기서, 제2 특징들 각각은 상기의 제1 특징들 중 하나의 특징에 대응하는 특징이다. 또는, 단일-프레임 처리부(220)가 처리하는 현재 프레임 내에서 추적된 제2 특징들 각각은 단일-프레임 처리부(220)가 현재 프레임의 이전에 처리한 이전 프레임 내에서 추적된 제2 특징들 중 하나의 특징에 대응하는 특징일 수 있다.
단일-프레임 처리부(220)에 의해 추적된 제2 특징들의 개수는 제1 특징들의 개수보다 적을 수 있다. 예컨대, 프레임들의 시퀀스 내에서 제1 특징들 중 하나의 특징에 대응하는 씬 포인트가 사라진 경우, 특정한 제1 특징에 대응하는 제2 특징이 추적되지 못할 수 있다. 단일-프레임 처리부(220)가 다중-프레임들 처리부(210)가 처리한 프레임들의 이후의 프레임들을 한 개씩 처리함에 따라 추적된 제2 특징들의 개수가 문턱치 이하로 내려가면, 단일-프레임 처리부(220)에 의해 카메라들 각각의 위치를 추적하는 것이 부적합할 수 있다. 따라서, 다중-프레임들에 연이은 프레임들 중 제2 특징들이 문턱치보다 적게 추적된 프레임이 발견되면, 상기의 발견된 프레임을 포함하는 다중-프레임들이 다시 다중-프레임들 처리부(210)에 의해 처리될 수 있다.
즉, 다중-프레임들 처리부(210) 및 단일-프레임 처리부(220)는 서로 간에 교대하여 프레임들의 시퀀스를 처리할 수 있다. 다중-프레임들 처리부(210) 및 단일-프레임 처리부(220)는 서로 간에 상대방에게 처리해야 할 프레임을 식별할 수 있는 정보(예컨대, 프레임의 번호)를 제공할 수 있다.
다중-프레임들 처리부(210)는 다중-프레임들을 사용하여 상기의 다중-프레임들 내에서 공통되는 제1 특징들을 추출하기 때문에, 제1 특징들을 정확하게 추출할 수 있다. 단일-프레임 처리부(220)는 하나의 프레임 내에서 제1 특징들에 대응하는 제2 특징들을 추출하기 때문에, 제2 특징들을 빠르게 추출할 수 있다. 즉, 다중-프레임들 처리부(210) 및 단일-프레임 처리부(220)가 교대하여 실행됨으로써, 카메라 위치 추적 장치(100)는 카메라의 위치를 추적함에 있어서 정확도 및 속도 간의 균형을 맞출 수 있다.
다중-프레임들 처리부(210)는 특징 추출부(211), 특징 추적부(212), 동적 포인트 검출부(213) 및 카메라 위치 추정부(214)를 포함할 수 있다.
단일-프레임 처리부(220)는 현재 프레임 설정부(221), 현재 프레임 특징 추정부(222), 현재 프레임 문턱치 비교부(223) 및 현재 프레임 카메라 위치 추정부(224)를 포함할 수 있다.
각 구성요소들의 구체적인 기능 및 동작 원리에 대해서 하기에서 도 3 내지 도 9를 참조하여 상세히 설명된다.
도 3 은 일 실시예에 따른 카메라 위치 추적 방법의 흐름도이다.
하기의 단계들(310 및 320)에서, 카메라 위치 추적 장치(200)는 적어도 3 개의 카메라들에 의해 촬영된 프레임들의 부분열(subsequence)을 사용하여, 각 프레임 내에서의 카메라들 각각의 위치를 추적할 수 있다. 적어도 3 개의 카메라들은 각각 좌측 카메라, 중간 카메라 및 우측 카메라일 수 있다. 각 프레임은 좌측 카메라에 의해 캡춰된 좌측 이미지, 중간 카메라에 의해 캡춰된 중간 이미지 및 우측 카메라에 의해 캡춰된 우측 이미지를 포함할 수 있다.
다중-프레임들 처리 단계(310)에서, 다중-프레임들 처리부(210)는 다중 프레임들 내에서 하나 이상의 제1 특징들을 추출 및 추적할 수 있다. 여기서, 다중-프레임들은 2 개 이상의 연이은(consecutive) 프레임들일 수 있다. 다중-프레임들 처리부(210)는 추적된 제1 특징들에 기반하여 다중-프레임들 각각 내에서의 카메라들의 위치를 추적할 수 있다. 여기서, 다중-프레임들의 개수는 미리 정의된 것일 수 있다. 이하, 다중-프레임들의 개수를 N f 로 표시한다. 즉, 다중-프레임들 처리부(210)는 N f 개 프레임들로 구성된 다중-프레임들에 공통된 특징들을 추출, 삼각 측량 및 추적할 수 있다. 다중-프레임들 처리부(210)는 추출된 특징들 중 동적인 씬 포인트들에 대응하는 특징들을 감지 및 제거할 수 있다. 즉, 제1 특징들은 다중-프레임들 처리부(210)에 의해 추출된 특징들 중 다중-프레임의 N f 번째 프레임까지 성공적으로 추적되는 N p 개의 정적인 제1 포인트들에 대응할 수 있다.. 다중-프레임들 처리부(210)는 제1 특징들을 사용하여 N f 개의 프레임들 내에서의 3N f 개의 카메라 위치들 및 3N p 개의 제1 포인트들의 위치들을 동시에 추정할 수 있다.
단일-프레임 추적 단계(320)에서, 단일-프레임 처리부(220)는 하나 이상의 단일-프레임들 각각의 제2 특징들에 기반하여 단일-프레임들 각각 내에서의 카메라들 각각의 위치를 추적할 수 있다. 여기서, 하나 이상의 단일-프레임들은 다중프레임들에 연이은 프레임들 중 제1 특징들 중 하나에 대응하는 제2 특징들이 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임들일 수 있다.
단일-프레임 처리부(220)는 다중-프레임들의 다음 프레임인 N f +1 번째 프레임 내에서 전술된 N p 개의 제1 특징들에 대해 매치되는 제2 특징들을 검색할 수 있다. 여기서, 검색된 매치되는 제2 특징들의 개수는 N' p 이다. 단일-프레임 처리부(220)는 제2 특징들의 3D 위치들을 획득할 수 있다. 다음으로, 단일-프레임 처리부(220)는 2D 및 3D 간의 대응에 기반하여 N f +1 번째 프레임 내에서의 카메라들 각각의 위치를 추정할 수 있다. 다음으로, 단일-프레임 처리부(220)는 N f +2 번째 프레임 내에서 N' p 개의 제2 특징들에 대해 매치되는 제3 특징들을 검색할 수 있다. 제2 특징들 각각은 제1 특징들 중 하나에 매치될 수 있다. 따라서, 제3 특징들 각각은 제1 특징들 중 하나에 매치될 수 있다. 이러한 절차는, 단일-프레임 처리부(220)에 의해 N'+n 번째 프레임 내에서 검색한 제1 특징에 매치되는 특징들의 개수들이 문턱치 아래로 내러갈 때까지 반복될 수 있다.
단일-프레임 처리 단계(320)는 다중-프레임들 처리 단계(310)에 비해 훨씬 빠르게 수행될 수 있다. 단일-프레임 처리 단계(320)에서, 더 많은 프레임들이 처리될 수 있게 하기 위해서, 단일-프레임 처리부(220)는 제1 특징들 중 단일-프레임 내에서 매치되지 않은 특징들을 다중 프레임들 중 N f 번 째 프레임으로 투영할 수 있다. 단일-프레임 처리부(320)는 투영에 의해 생성된 포인트 및 윈래의 특징 간의 지역적 기색(appearance)을 비교할 수 있다.
단일-프레임 처리 단계(320) 이후, 다중-프레임들 처리 단계(310)가 다시 재시작될 수 있다. 재시작된 다중-프레임들 추정 단계(310)에서, 다중-프레임들 처리부(210)는 N' f 개의 프레임들의 새로운 제1 특징들을 재-추출할 수 있다. 단일-프레임 처리 단계(320)에서, 단일-프레임 처리부(220)는 연이은 프레임들 내에서 제1 특징들에 매치되는 새로운 제2 특징들을 찾을 수 있다.
이러한 2 단계로 구성된 절차(procedure)는 모든 프레임들이 처리될 때까지 반복될 수 있다.
전술된 2 단계의 절차에 의해, 프레임들의 부분열 내에서, 특징들이 추출 및 추적될 수 있다. 다중-프레임들 처리부(210) 및 단일-프레임 처리부(220)는 각각 동적 포인트들을 나타내는 특징들을 자동으로 제거할 수 있으며, 제거 이후 남은(remaining) 특징들을 각 프레임 내에서의 카메라들 각각의 위치를 추정하기 위해 사용할 수 있다.
전술된 2 단계의 절차에 의해 입력 3안 시퀀스의 카메라 움직임이 견고하고(robustly), 효율적으로 복구될 수 있으며, 추적의 정확성을 감소시키지 않은 채 추적 효율이 향상될 수 있다.
다중-프레임들 처리 단계(310) 및 단일-프레임 처리 단계(320)를 포함하는 2 단계의 절차에 대해서 하기에서 도 4 내지 도 9를 참조하여 상세히 설명된다.
도 4는 일 예에 따른 다중-프레임들 처리 단계의 흐름도이다.
다중-프레임들 처리 단계(310)는 하기의 단계들(410 내지 440)을 포함할 수 있다.
특징 추출 단계(410)에서, 특징 추출부(211)는 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 제3 특징들을 추출할 수 있다. 특징 추출 단계(410)의 구체적인 동작은 하기에서 도 5를 참조하여 상세히 설명된다.
특징 추적 단계(420)에서, 특징 추적부(212)는 추출된 제3 특징들을 다중-프레임들 중 마지막 프레임까지 추적한다.
전통적인 특징 추적 방법은 첫 번째 프레임 내의 특징 포인트들을 추출하고, 추출된 특징 포인트들을 프레임 단위로(frame by frame)로 추적한다. 만약, 3안 카메라 구성(configuration)에서, 각 특징들이 이전 프레임으로부터 현재 프레임으로 추적된다면, 특징 손실(missing) 문제를 줄이기 위해 더 많은 후보들이 요구된다. 따라서, 특징 추적부(212)는 단지 1 회의 추적만을 수행하면서, 다중의 후보들을 유지하지 않는 3D 추적 알고리즘을 사용할 수 있다.
특징 추적 단계(420)의 구체적인 동작이 하기에서 도 6을 참조하여 상세히 설명된다.
동적 포인트 검출 단계(430)에서, 동적 포인트 검출부(213)는 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 제1 특징들을 결정할 수 있다. 즉, 제3 특징들 중 상기의 제거 이후 남은 특징들이 제1 특징들이 될 수 있다. 동적 포인트 검출 단계(430)의 구체적인 동작이 하기에서 도 7를 참조하여 상세히 설명된다.
카메라 위치 추정 단계(440)에서, 카메라 위치 추정부(214)는 제1 특징들에 기반하여 다중-프레임들 각각 내에서의 카메라들 각각의 위치를 추정할 수 있다. 카메라 위치 추정 단계(440)의 구체적인 동작이 하기에서 도 8을 참조하여 상세히 설명된다.
도 5는 일 예에 따른 특징 추출 단계를 설명한다.
포인트 및 스케일 불변 특징 변형(Scale Invariant Feature Transform; SIFT) 설명자 생성 단계(510)에서, 특징 추출부(211)는 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 포인트들을 추출할 수 있다. 여기서, 포인트는 코너(corner) 및 에지(edge) 감지기(detector)에 의해 감지된 해리스 코너 포인트(Harris corner point)일 수 있다.
또한, 특징 추출부(211)는 다중-프레임들 중 첫 번째 프레임의 3 개의 이미지들로부터 상수 스케일(constant scale)을 갖는 스케일 불변 특징 변형(Scale Invariant Feature Transform; SIFT) 설명자(descriptor)들을 생성할 수 있다. 일반적으로, 3 개의 이미지들 간의 스케일 편차(variation)는 작다.
특징 생성 단계(520)에서, 특징 추출부(211)는 추출된 포인트들을 생성된 SIFT 설명자들 간의 설명자 비교를 사용하여 서로 간에 매치시킬 수 있으며, 매치된 포인트들을 특징으로 연결시킴으로써 제3 특징들을 생성할 수 있다. 여기서, 가속을 위해, 특징 추출부(211)는 설명자 비교를 위해 k-d 트리를 사용할 수 있다.
상기의 매치에 의해 생성된 특징들 중 아웃라이어가 있을 수 있다. 이하, 매치에 의해 생성된 제3 특징을 후보 특징 x로 표시한다.
아웃라이어 제거 단계(530)에서, 특징 추출부(211)는 3 개의 기하 제약 중 하나 이상을 사용하여 생성된 제3 특징들 중에서 아웃라이어들을 제거할 수 있다. 여기서, 3 개의 기하 제약은 에피폴라 제약, 재-투영(re-projection) 제약 및 깊이 범위(range) 제약일 수 있다.
특징 추출부(211)는, 하기의 수학식 2에 기반하여, 펀더멘털(fundamental) 행렬
Figure 112012004777260-pat00014
를 뷰 i 및 뷰 j의 상대적 위치들로부터 유도할 수 있다.
Figure 112012004777260-pat00015
는 뷰 i 및 뷰 j 각각의 펀더멘털 행렬일 수 있으며, 뷰 i로부터 뷰 j로의 펀더멘털 행렬일 수 있다. 여기서, 뷰 i는 3 개의 카메라들 중 i 번째 카메라의 뷰일 수 있다.
Figure 112012004777260-pat00016
여기서, K는 고유 파라미터를 나타낼 수 있다.
Figure 112012004777260-pat00017
는 3 개의 카메라들 중 제1 카메라로부터 제2 카메라로의 변환 벡터를 나타낼 수 있다.
Figure 112012004777260-pat00018
은 제1 카메라로부터 제2 카메라로의 회전 벡터를 나타낼 수 있다. [t]x는 벡터 t의 반대칭행렬(skew symmetric matrix)일 수 있다.
[ t ]x는 하기의 수학식 3에서와 같이 정의될 수 있다.
Figure 112012004777260-pat00019
따라서, 모든 x에 대해 하기의 수학식 4가 성립할 수 있다. 특징 추출부(211)는 하기의 수학식 4가 성립되지 않는 후보 특징 x를 아웃라이어로 간주할 수 있다.
Figure 112012004777260-pat00020
재-투영 확인(validation)이 두 번째 기하 테스트로서 가해질 수 있다.
예컨대, 특징 추출부(211)는 좌측 카메라를 참조 카메라로 세트할 수 있다. 좌측 카메라가 참조 카메라로 세트되면 좌측 카메라의 투영 행렬들
Figure 112012004777260-pat00021
에 대해 하기의 수학식 5가 성립할 수 있다.
Figure 112012004777260-pat00022
상기의 세트에 의해 특징 추출부(211)는, 하기의 수학식 6 및 수학식 7에 기반하여, 중간 카메라의 투영 행렬들
Figure 112012004777260-pat00023
및 우측 카메라의 투영 행렬들
Figure 112012004777260-pat00024
을 계산할 수 있다.
Figure 112012004777260-pat00025
Figure 112012004777260-pat00026
다음으로, 특징 추출부(211)는, 카메라들의 위치들을 사용하여, 후보 특징 x들 각각의 3D 위치 M을 삼각 측량할 수 있다.
2-뷰 삼각 측량은 3-뷰 삼각 측량에 비해 더 안정적이고 효율적일 수 있다. 따라서, 특징 추출부(211)는 좌측 카메라(즉, 우측 이미지) 내의 매치된 특징 포인트들 m left 및 우측 카메라(또는, 우측 이미지) 내의 매치된 특징 포인트들 m right를 가지고, 예컨대 샘슨 차선 삼각 측량(Sampson suboptimal triangulation) 알고리즘을 사용하여, M을 초기화할 수 있다. 여기서, 특징 포인트는 특징에 대응하는 이미지 내의 포인트를 의미할 수 있다.
M의 초기화 후, 특징 추출부(211)는 중간 카메라 내의 특징 포인트 m middle를 추가하여, m left, m middlem right를 사용하여 하기의 수학식 8의 에너지 함수를 최소화함으로써 M을 개선할 수 있다.
Figure 112012004777260-pat00027
여기서, 투영 함수
Figure 112012004777260-pat00028
는 하기의 수학식 9에서와 같이 정의될 수 있다.
Figure 112012004777260-pat00029
에너지 함수의 최소화된 값은 후보 특징 x의 재-투영 오류일 수 있다.
특징 추출부(211)는 후보 특징 x에 대한 에너지 함수의 최소화된 값을 재-투영 확인의 기준(criterion)으로서 사용할 수 있다.
특징 추출부(211)는 상기의 2 가지의 기하학적 제약들 중 하나를 충족시키지 못하는 후보 특징들을 아웃라이어로 인식(recognize)할 수 있다.
후보 특징이 전술된 2 개의 기하학적 제약들 양자를 충족시키더라도, 여전히 후보 특징은 아웃라이어일 수 있다. 이러한 경우, 일반적으로 후보 특징의 삼각 측량된 깊이는 비정상이다. 여기서, 비정상인 깊이는 매우 작거나 매우 큰 깊이를 의미할 수 있다. 따라서, 특징 추출부(211)는 아웃라이어들을 제거하기 위해 깊이 범위 제약을 사용할 수 있다. 특징 추출부(211)는, 후보 특징들 중 깊이 값이 명시된(specified) 깊이 범위
Figure 112012004777260-pat00030
를 벗어나는 특징들을 아웃라이어로 간주할 수 있고, 아웃라이어로 간주된 후보 특징들 제거할 수 있다.
특징 추출부(211)는 각 뷰 i에 대해 깊이 범위
Figure 112012004777260-pat00031
를 자동으로 계산하기 위해 2 단계의 적응적인 문턱치 선택 방법을 사용할 수 있다.
첫 번째 단계에서, 특징 추출부(211)는 각 뷰 i에 대해 뷰 i 내에서 나타나는 모든 특징들의 깊이 값들을 계산할 수 있다. 특징 추출부(211)는 계산된 깊이 값들 중 가장 작은 80%의 깊이 값들을 선택할 수 있다. 특징 추출부(211)는 선택된 깊이 값들을 사용하여 뷰 i에 대한 평균 깊이 값
Figure 112012004777260-pat00032
및 분산
Figure 112012004777260-pat00033
를 계산할 수 있다.
특징 추출부(211)는, 하기의 수학식 10 및 수학식 11에 기반하여 계산된 평균 깊이 값
Figure 112012004777260-pat00034
및 분산
Figure 112012004777260-pat00035
를 사용하여 깊이 범위의 최소 값
Figure 112012004777260-pat00036
및 최대 값
Figure 112012004777260-pat00037
를 계산할 수 있다.
Figure 112012004777260-pat00038
Figure 112012004777260-pat00039
여기서, 파라미터
Figure 112012004777260-pat00040
의 값은 5로 세트될 수 있다.
그러나, 일반적으로 계산된
Figure 112012004777260-pat00041
의 값은 0에 매우 가까워서, 무익한 것일 수 있다.
두 번째 단계에서, 특징 추출부(211)는 더 정확한
Figure 112012004777260-pat00042
를 계산할 수 있다.
주어진 삼각 측정 뷰들에 의해 3 개의 뷰 쌍(pair)들이 획득될 수 있다. 3 개의 뷰 쌍들은 하기의 수학식 12에서와 같이 표현될 수 있다.
Figure 112012004777260-pat00043
3안 카메라들은 거의 동일한 지향(orientation)을 갖기 때문에, 사소한(trifling) 회전 컴포넌트(component)는 무시(neglect)될 수 있다. 따라서, (X i , Y i , Z i ) T i번째 카메라에 대한 특징 포인트의 3D 위치이면, 특징 추출부(211)는, 하기의 수학식 13 및 하기의 수학식 14에 기반하여, x j x j 를 계산할 수 있다. x j i 번째 뷰의 초점의(focal) 이미지 평면(plane) 상의 x-좌표(coordinate)일 수 있고, x j j 번째 뷰의 초점의 이미지 평면 상의 x-좌표일 수 있다.
Figure 112012004777260-pat00044
Figure 112012004777260-pat00045
따라서, 특징 추출부(211)는, 하기의 수학식 15에 기반하여, i 번째 뷰 내에서의 특징 포인트의 깊이 Z i 를 계산할 수 있다.
Figure 112012004777260-pat00046
여기서, 특징 추출부(211)는, 하기의 수학식 16에 기반하여, dx ij 를 계산할 수 있다.
Figure 112012004777260-pat00047
상술된 것과 같이, 최소 깊이 값
Figure 112012004777260-pat00048
을 선택하는 것은 dx ij 의 최대 값을 선택하는 것과 동일할 수 있다.
특징 추출부(211)는 후보 특성들 중 i 번째 뷰 및 j 번째 뷰 양자 내에서 나타나는 후보 특성들 각각의 dx ij 를 계산할 수 있다. 특징 추출부(211)는 계산된 모든 dx ij 값들을 수집(collect)할 수 있고, 수집된 모든 dx ij 들을 {d x 1, d x 2, … }와 같이 내림차순으로 정렬할 수 있다.
특징 추출부(211)는 내림차순으로 정렬된 dx ij 들 중 상위에서 80%의 값을 갖는 dx ij 를 기준 값
Figure 112012004777260-pat00049
로 선택할 수 있다.
특징 추출부(211)는, 하기의 수학식 17에 기반하여, i 번째 뷰의 최소 깊이 값을 계산할 수 있다.
Figure 112012004777260-pat00050
도 6은 일 예에 따른 특징 추적 단계의 흐름도이다.
특징 추적 단계(420)에는, 2 개의 프레임들 내에서의 제3 특징들의 이동이 추적된다. 하기의 흐름도는 이전 프레임 내의 특징의 위치 및 위치 이동에 기반하여 현재 프레임 내의 특징의 위치를 계산하는 방법을 설명한다.
추출된 특징의 3D 위치는 연이은 프레임 좌표계(coordinate system)들 사이에서는 많이 변경되지 않을 것이라고 합리적으로 가정될 수 있다. 특징의 3D 위치 이동(movement) V는 하기의 수학식 18에서와 같이 공식화될 수 있다.
Figure 112012004777260-pat00051
여기서, M은 특징의 이전 프레임 내에서의 3D 위치를 나타낼 수 있다. M'은 상기의 특징의 현재 프레임 내에서의 3D 위치를 나타낼 수 있다.
위치 이동을 계산하기 위한 가장 기본적인 측정치는, 이전 프레임 내의 이미지 패치 및 현재 프레임 내의 이미지 패치간의 유사도(similarity)일 수 있다..
특징 추적부(212)는, 하기의 수학식 19에 기반한 에너지 함수 f(v)를 최소화시킬 수 있다. 여기서, 에너지 함수 f(v)는 이전 프레임 내의 이미지 패치 및 현재 프레임 내의 이미지 패치간의 유사도(similarity)를 나타낼 수 있다.
Figure 112012004777260-pat00052
여기서,
Figure 112012004777260-pat00053
는 이전 프레임 내의 i 번째 이미지일 수 있다.
Figure 112012004777260-pat00054
는 현재 프레임 내의 i 번째 이미지일 수 있다. Loc(M, i, j)는 i 번째 이미지 평면 내의, M의 투영이 중심에 위치한 지역 윈도우의 j 번째 픽셀의 위치일 수 있다.
특징 추적부(212)는, 하기의 수학식 20에, 기반하여 Loc(M, i, j)를 계산할 수 있다.
Figure 112012004777260-pat00055
여기서, v j j 번째 픽셀의 상기의 지역 윈도우의 중심으로부터의 옵셋을 나타낼 수 있다.
하기에서,
Figure 112012004777260-pat00056
를 단순화하여,
Figure 112012004777260-pat00057
로 표시한다. 여기서,
Figure 112012004777260-pat00058
일 수 있다. 따라서, 수학식 19는 하기의 수학식 21과 같이 단순화될 수 있다.
Figure 112012004777260-pat00059
수학식 21은 하기의 수학식 22와 같이 변형될 수 있다.
Figure 112012004777260-pat00060
또한, 수학식 18은 수학식 23과 같이 변형될 수 있으며, M'는 하기의 수학식 23에서와 같이 정의될 수 있다.
Figure 112012004777260-pat00061
3차원 움직임 V가 작을 때, 항
Figure 112012004777260-pat00062
Figure 112012004777260-pat00063
는 하기의 수학식 24에서와 같이 근사화될 수 있다.
Figure 112012004777260-pat00064
여기서,
Figure 112012004777260-pat00065
일 수 있다.
특징 추적부(212)는 하기의 수학식 25과 같은 체인(chain) 규칙에 기반하여
Figure 112012004777260-pat00066
를 분해적으로(analytically) 계산할 수 있다.
Figure 112012004777260-pat00067
여기서, M c 는 카메라 좌표계 내에서의 3D 위치일 수 있다. m i 는 이미지 평면 내에서의 2D 위치일 수 있다. M c m i 에 중심이 위치하는 지역 윈도우 내의 j 번째 픽셀의 2D 위치일 수 있다.
하기의 수학식 26, 수학식 27 및 수학식 28이 성립함에 따라 하기의 수학식 29가 성립한다. 특징 추적부(212)는 하기의 수학식 29에 기반하여
Figure 112012004777260-pat00068
를 계산할 수 있다.
Figure 112012004777260-pat00069
Figure 112012004777260-pat00070
Figure 112012004777260-pat00071
Figure 112012004777260-pat00072
여기서,
Figure 112012004777260-pat00073
는 이미지 경사도(gradient)일 수 있다.
Figure 112012004777260-pat00074
Figure 112012004777260-pat00075
의 야코비안(jacobian) 행렬일 수 있으며, 하기의 수학식 30에서와 같이 정의될 수 있다.
Figure 112012004777260-pat00076
수학식 22, 수학식 24 및 수학식 29를 결합함으로써, f(V)는 하기의 수학식 31에서와 같이 근사될 수 있다.
Figure 112012004777260-pat00077
여기서, g i , j , T i d i , j 는 각각 하기의 수학식 32, 수학식 33 및 수학식 34에서와 같이 정의될 수 있다.
Figure 112012004777260-pat00078
Figure 112012004777260-pat00079
Figure 112012004777260-pat00080
여기서, 아래첨자(subscript)는 의존 관계(dependency)를 가리킬 수 있다. 예컨대, HR i HR i 이 단지 뷰의 인덱스(index)에만 의존하고, 이미지 패치들에는 무관하다는(irrelevant) 것을 가리킬 수 있다. 수학식 31에서의 f(V)의 최소화는 하기의 수학식 35의 3 x 3 선형 시스템을 푸는(solve) 것과 동일할(equal) 수 있다.
Figure 112012004777260-pat00081
특징 추적부(212)는 3D 위치 이동 V의 해답을 구하기 위해 반복적인(iterative) 스킴을 사용할 수 있다.
반복 횟수 초기화 단계(610)에서, 특징 추적부(212)는 반복 횟수 k의 값을 0으로 초기화할 수 있다.
에너지 함수 초기화 단계(620)에서, 특징 추적부(212)는, 상기의 수학식 35에 기반하여 에너지 함수의 초기값 V (0)을 계산할 수 있다.
위치 초기화 단계(630)에서, 특징 추적부(212)는 하기의 수학식 36에 따라 특징의 초기 위치 M'(0)을 계산할 수 있다.
Figure 112012004777260-pat00082
반복 횟수 증가 단계(640)에서, 특징 추적부(212)는 반복 횟수 k의 값을 1만큼 증가시킬 수 있다.
에너지 함수 계산 단계(650)에서, 특징 추적부(210)는, 반복 횟수 값 k를 사용하는 하기의 수학식 37에 기반하여, k 번째 반복에서의 에너지 함수 f(V ( k ))을 계산할 수 있다.
Figure 112012004777260-pat00083
위치 계산 단계(660)에서, 특징 추적부(210)는, 반복 횟수 값 k를 사용하는 하기의 수학식 38에 기반하여, k 번째 반복에서의 특징의 위치 M'( k )를 구할 수 있다.
Figure 112012004777260-pat00084
반복 횟수 검사 단계(670)에서, 특징 추적부(210) 반복 횟수 값 k가 지정된 문턱치 이하이면 단계(640)를 다시 수행할 수 있다. 특징 추적부(210)는 반복 횟수 값 k가 지정된 문턱치에 도달하면 f(V ( k )) 및 M'( k )의 반복적인 계산을 종료할 수 있다.
특징 추적 단계(680)에서, 특징 추적부(210)는 계산된 위치에 기반하여 현재 프레임 내에서 특징들 각각을 추적할 수 있다. 즉, 특징 추적부(210)는 연이은 프레임들 내의 특징들 간의 대응 및 프레임들의 3D 위치를 동시에 추정할 수 있다.
특징 추적부(210)는 다중-프레임의 연이은 프레임들에 대해 순차적으로 단계들(610 내지 680)을 적용함으로써 제3 특징들 각각을 다중-프레임들 중 마지막 프레임까지 추적할 수 있다.
도 7은 일 예에 따른 동적 포인트 검출 단계의 흐름도이다.
본 예에서, 포인트는 단계(410) 및 단계(420)에서 추출 및 추적된 제3 특징을 의미할 수 있다.
동적 포인트들을 검출하기 위해서, 예컨대 Yaser Sheikh에 의해 제안된, 자유 이동 카메라들에 대한 2D 배경 추출(subtraction) 알고리즘이 3D 궤적(trajectory) 공간에 적용할 수 있도록 일반화될 수 있다. 3 개의 카메라들이 정적(static)이라는 점을 고려하면, 정적 포인트들은 3안 리그의 실제(actual) 움직임의 반대 방향에 맞춰(accordingly) 강체 운동(rigid motion)을 하는 것으로 간주된다. 따라서, 정적 포인트들의 궤적들은 저 차원의 부공간 내에 놓일 수 있다.
포인트의 궤적은 연이은 프레임들 내에서의 3D 좌표들의 연쇄(catenation)로서 정의될 수 있다.
단계(410) 및 단계(420)에서, N f 개의 다중-프레임들 내에서 N p 개의 포인트들이 추출 및 추적되었을 때, 동적 포인트 검출부(213)는, 하기의 수학식 39에 기반하여 i 번째 포인트의 궤적 w i 를 계산할 수 있다.
Figure 112012004777260-pat00085
여기서, M i , j j 번째 프레임 내에서의 지역 좌표를 나타낼 수 있다.
동적 포인트 검출부(213)는, 하기의 수학식 40에서와 같이, 모든 N p 개의 포인트들을
Figure 112012004777260-pat00086
행렬 W 내에 배열할 수 있다.
Figure 112012004777260-pat00087
모든 포인트들이 각각 정적일 경우, 모든
Figure 112012004777260-pat00088
에 대해서, M i , j
Figure 112012004777260-pat00089
와 동일할 수 있다. 여기서,
Figure 112012004777260-pat00090
는 4D 전역(world) 동질(homogeneous) 좌표일 수 있다.
Figure 112012004777260-pat00091
j 번째 프레임에 관한 강체 운동의 3 x 4 행렬일 수 있다.
따라서, W는 하기의 수학식 41에서와 같이 인수 분해(factor)될 수 있다.
Figure 112012004777260-pat00092
수학식 41에 따른 인수 분해는 W의 랭크가 최대 4라는 것을 가리킨다. 따라서, 정적 포인트의 궤적들은 4 개의 기본(basic) 궤적들로부터 스팬(span)된 부공간 내에 있다.
동적 포인트 검출부(213)는, 부공간 내에 놓인 궤적들을 식별하면서, 4-차원 궤적 부공간의 최선의 추정을 견고하게 계산하기 위해 임의 표본 컨센셔스(RANdom SAmple Consensus; RANSAC) 알고리즘을 사용할 수 있다. 각각의 반복(iteration)에서, w 1, w 2, w 3w 4로 표시되는 4 개의 궤적들이 부공간을 생성하기 위해 임의로 선택되고, 행렬 W 4(W 4 T W 4)-1 W 4 T는 다른 궤적들을 부공간으로 투영하기 위해 사용된다. 여기서, W 4 = [w 1w 4] 이다. 동적 포인트 검출부(213)는 주어진 궤적이 주어진 부공간에 속할 공산(likelihood)을 평가(evaluate)하기 위해, 원본 궤적 및 투영된 궤적 간의 유클리드 거리를 직접적으로 측정할 수 있다.
실제로, 궤적이 부공간 내에 놓이는지 여부를 결정하기 위해 3N f 공간 내에서 정의된 유클리드 거리를 위한 문턱치를 조율(tune)하는 것은 어렵다. 대신, w i 를 평가하기 위해, 동적 포인트 검출부(213)는 투영된 궤적 W 4(W 4 T W 4)-1 W 4 T w iN f 개의 포인트들
Figure 112012004777260-pat00093
로 분할(split)할 수 있다. 또한, 동적 포인트 검출부(213)는, 하기의 수학식 42에 기반하여, 투영 오류 f(w i )를 계산할 수 있다.
Figure 112012004777260-pat00094
여기서, m i , j , k j 번째 프레임 내의 k 번째 이미지 상의 i 번째 포인트의 위치를 나타낼 수 있다.
궤적 선택 단계(710)에서, 동적 포인트 검출부(213)는 부공간을 생성하기 위한 4 개의 궤적들 w 1, w 2, w 3w 4를 선택한다.
컨센셔스 검출 단계(720)에서, 동적 포인트 검출부(210)는 RANSAC 알고리즘에 기반하여 선택된 4 개의 궤적들 w 1, w 2, w 3w 4 내에서 컨센셔스(consensus)를 검출한다.
컨센셔스 비교 단계(730)에서, 선택된 궤적들을 지원하는 데이터 내에 충분한 컨센셔스가 있다면, 동적 포인트 검출부(213)는 루틴을 종료할 수 있다. 그렇지 않다면, 단계(710)가 반복된다. 동적 포인트 검출부(213)는 최대 컨센셔스 집합(set)이 발견될 때까지 다른 4 개의 궤적들을 선택할 수 있다.
동적 포인트 결정 단계(740)에서, 동적 포인트 검출부(213)는 최대 컨센셔스 집합에 속하지 않는 궤적들을 동적 포인트들로 간주할 수 있다.
상술된 것과 같이, 동적 포인트 검출부(210)는 제3 특징들 각각의 4 차원 궤적 부공간을 계산할 수 있고, 계산된 4 차원 궤적 부공간에 기반하여 제3 특징들 각각이 동적 궤적을 갖는지 여부를 판단할 수 있다.
동적 포인트 검출부(213)는 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 제1 특징들을 결정할 수 있다. 즉, 제1 특징들은 첫 번째 프레임 내에서 추출된 제3 특징들 중 마지막 프레임까지 추적되고, 동적 궤적을 갖지 않는 특징들일 수 있다.
도 8은 일 예에 따른 카메라 위치 추정의 흐름도이다.
다중-프레임들 처리 단계(210)에서, 제1 특징들이 추출되고, 추출된 제1 특징들이 N f 개의 프레임들 내에서 추적되고, 동적 포인트들이 제거되면, 카메라 위치 추정부(214)는 Structure-from-Motion 기법(technique)을 통해 N p 개의 포인트들의 전역(world) 좌표 및 카메라들의 3N f 개의 움직임들을 동시에 추정할 수 있다. N p 개의 포인트들 각각의 전역 좌표를 M i 로 표시한다. 여기서, i = 1, …, N f 이다.
실제로는, 카메라 위치 추정부(214)는, 카메라들의 3N f 개의 움직임들을 추정하는 것 대신, 현재의 추적된 부분열(subsequence)에 대한 N f- 1 개의 프레임 리그(rig)들만을 추정할 수 있다. 3 개의 카메라들 간의 상대적인 위치들은 고정되었고 알려져 있다. 또한, 이러한 부분열의 첫 번째 프레임 리그는 전체 부분열의 첫 번째 프레임에 대해
Figure 112012004777260-pat00095
으로 세트되었거나, 이전의 추적된 부분열 내에서 추정될 수 있다. 따라서, 카메라 위치 추정부(214)는 현재의 추정된 잇따른 연쇄에 대한 N f- 1 개의 프레임 리그들만을 추정할 수 있다.
카메라 위치 추정부(214)는 프레임 리그를 좌측 카메라에 세트할 수 있다. 카메라 위치 추정부(214)는, 하기의 수학식 43에 기반하여, 프레임 리그로부터 3N f 개의 카메라 위치들을 유도(derive)할 수 있다.
Figure 112012004777260-pat00096
여기서,
Figure 112012004777260-pat00097
는 3N f 개의 카메라 위치들 중 하나의 위치를 나타낼 수 있다. j = 1 … N f 일 수 있고,
Figure 112012004777260-pat00098
일 수 있다.
Figure 112012004777260-pat00099
는 프레임 리그를 나타낼 수 있다. j = 1 … N f 일 수 있다.
제1 프레임 리그 초기화 단계(810)에서, 현재의 부분열의 첫 번째 프레임 내에서 N p 개의 포인트들이 삼각 측량되었기 때문에, 카메라 위치 추정부(214)는 알려진 프레임 리그에 의한 역 변환(inverse transformation)을 통해 첫 번째 프레임 내에서의 N p 개의 포인트들의 전역(world) 좌표들을 초기화할 수 있다.
나머지 프레임 리그 초기화 단계(820)에서, 카메라 위치 추정부(214)는 르벤버그-마쿼트(Levenberg-Marquardt) 알고리즘을 통한 비-선형(non-linear) 최적화 및 (예컨대 롱 콴(Long Quan) 등에 의해 제안된) 카메라 위치 추정 방법을 사용하여 나머지(rest) 프레임 리그들을 초기화할 수 있다.
구체적으로, 카메라 위치 추정부(214)는 j 번째 프레임에 대해 하기의 수학식 44에 기반하여 초기화를 수행할 수 있다.
Figure 112012004777260-pat00100
여기서, m i , j , k j 번째 프레임의 k 번째 이미지 내의 i 번째 포인트의 2D 측정치일 수 있다.
Figure 112012004777260-pat00101
j 번째 프레임의 k 번째 이미지로의 i 번째 포인트의 재-투영일 수 있다. N j j 번째 프레임 내에서의 가시의(visible) 포인트들의 개수일 수 있다.
초기화 후, 재-투영 오류 최소화 단계(830)에서, 카메라 위치 추정부(214)는, 하기의 수학식 45에 기반하여, 모든 3D 포인트들 및 카메라 파라미터들에 대하여 재-투영 오류를 최소화할 수 있다.
Figure 112012004777260-pat00102
수학식 44과는 달리, 정규 방정식(normal equation)인 수학식 45는 상이한 3D 포인트들 및 카메라들에 대한 파라미터들 간의 상호작용(interaction)의 결핍(lack)에 기인하는 희박(sparse) 블록 구조를 갖는다.
르벤버그-마쿼트 알고리즘의 희박 분산(sparse variant)은 "0" 요소들에 대한 저장(storing) 및 동작(operating)을 회피(avoid)함으로써 정규 방정식의 0 패턴으로부터 이익을 획득할 수 있다. 희박 블록 구조는 르벤버그-마쿼트 알고리즘의 희박 분산을 채용(employ) 함으로써 상당한(tremendous) 계산적인 이익(benefits)을 획득하기 위해 활용(exploit)될 수 있다. 이러한 활용은 번들 조절(bundle adjustment)로 명명될 수 있으며, 거의 모든 특징에 기반한 Structure-from-Motion 시스템의 표준적인 최종 단계로서 사용될 수 있다.
특히, 수학식 44 및 수학식 45에 대해, 카메라 위치 추정부(214)는, 예컨대 하기의 수학식 46에 나타난 노아 스내블리 등에 의해 제안된 방법에 기반하여,
Figure 112012004777260-pat00103
에 대한 3 개의 파라미터, 증대하는(incremental) 회전 행렬
Figure 112012004777260-pat00104
의 파라미터화 및 카메라 중심 c에 대한 3 개의 파라미터들을 사용하여
Figure 112012004777260-pat00105
를 파라미터로 나타낼(parameterize) 수 있다.
Figure 112012004777260-pat00106
여기서,
Figure 112012004777260-pat00107
는 수학식 3에서 정의된 것과 같은 반대칭행렬일 수 있다. R init는 초기의 회전 행렬일 수 있다. 카메라 위치 추정부(214)는, 하기의 수학식 47의 함수들에 기반하여, M i j 번째 프레임 내의 3 개의 뷰들로 투영할 수 있다.
Figure 112012004777260-pat00108
카메라 위치 추정부(214)는, 수학식 44 및 수학식 45 양자에서의 f(v)에 대해서, 체인 규칙에 기반하여 야코비안 행렬을 분해적으로 계산할 수 있다.
카메라 위치 추정부(214)는, 하기의 수학식 48에 기반하여, 미들 뷰 M middle를 계산할 수 있다.
Figure 112012004777260-pat00109
여기서, M의 좌표는 중간 카메라에 대하여 표현된(represent) 것일 수 있다.
카메라 위치 추정부(214)는, 하기의 수학식 49, 수학식 50 및 수학식 51에 각각 기반하여
Figure 112012004777260-pat00110
,
Figure 112012004777260-pat00111
Figure 112012004777260-pat00112
를 계산할 수 있다.
Figure 112012004777260-pat00113
Figure 112012004777260-pat00114
Figure 112012004777260-pat00115
여기서,
Figure 112012004777260-pat00116
는 상술된 수학식 30에서 정의된 것과 동일할 수 있다.
Figure 112012004777260-pat00117
및 항
Figure 112012004777260-pat00118
은 모든 포인트들에 대해 동일하다. 카메라 위치 추정부(214)는 항
Figure 112012004777260-pat00119
및 항
Figure 112012004777260-pat00120
을 프레임 리그가 갱신될 때 단 1회 선-계산(pre-compute)할 수 있다.
Figure 112012004777260-pat00121
Figure 112012004777260-pat00122
는 서로 부호(sign)에 있어서만 상이하며, 2 번 계산될 필요가 없다. 카메라 위치 추정부(214)는 우측 뷰에 대한 야코비안 행렬을 전술된 것과 유사한 방식으로 유도할 수 있다.
카메라 위치 유도 단계(840)에서, 카메라 위치 추정부(214)는, 전술된 수학식 43에 기반하여, 프레임 리그들로부터 3N f 개의 카메라 위치들을 유도(derive)할 수 있다.
도 9는 일 예에 따른 단일-프레임 처리 단계의 흐름도이다.
단일-프레임 처리 단계(320)는 하기의 단계들(910 내지 950)을 포함할 수 있다.
단일-프레임 처리 단계(320)에서, 현재 프레임 내에서의 카메라들 각각의 위치가 추정될 수 있다. 현재 프레임은 선형 N-포인트 카메라 위치 결정(Linear N-Point Camera Pose Determination) 방법에 의해 초기화될 수 있다. 또한, 단일-프레임 처리 단계(320)의 동작은 수학식 43 및 수학식 44에 기반하여 최적화될 수 있다. 다중-프레임들 처리 단계(310) 및 단일-프레임 처리 단계(320) 간의 차이 중 하나는, 단일-프레임 처리 단계(320)에서는 번들 조절이 매우 지역적이게 될 수 있다는 것이다. 즉, 단일-프레임 처리 단계(320)에서 조절될 수 있는 포인트는 현재 프레임 및 현재 프레임 리그 내에서 출현하는 포인트들만으로 제한될 수 있다. 지역적인 최적화를 방지하기 위해, 단일-프레임 처리부(220)는 이전 프레임들 내에서의 포인트들의 투영 또한 측정될 수 있다. 따라서, 관여된(involved) 이전의 프레임들의 카메라 파라미터들 또한 수학식 45에서의 상수로서 사용될 수 있다.
단일-프레임 처리 단계(320)는 다중-프레임들 처리 단계(310)에서 제1 특징들이 추출 및 추적된 후에 수행될 수 있다.
현재 프레임 설정 단계(910)에서, 현재 프레임 설정부(221)는 다중-프레임의 다음 프레임을 현재 프레임으로 설정할 수 있다..
현재 프레임 특징 추적 단계(920)에서, 현재 프레임 특징 추정부(222)는 현재 프레임 내에서 제2 특징들을 추출 및 추적할 수 있다. 제2 특징들은 각각 다중-프레임들 처리 단계(310)에서 추출 및 추적된 제1 특징들 중 하나의 특징에 대응하는 특징일 수 있다. 즉, 제2 특징들은 다중-프레임들 내에서 추출된 제1 특징들이 현재 프레임 내에서 연속적으로 나타난 것일 수 있다.
문턱치 비교부(930)에서, 현재 프레임 문턱치 비교부(223)는 현재 프레임 내에서 추출된 제2 특징들의 개수가 문턱치 이상인지 여부를 검사할 수 있다.. 만약, 추출된 제2 특징들의 개수가 문턱치 이상인 경우, 단계(940)가 수행될 수 있다.
만약, 추출된 제2 특징들의 개수가 문턱치보다 적은 경우, 단일-프레임 처리 단계((320)가 종료할 수 있다. 단일-프레임 처리 단계(320)가 종료한 후, 예컨대 처리해야할 프레임이 남은 경우, 다중-프레임들 처리 단계(310)가 재수행됨으로써 다중-프레임들 처리부(210)가 재실행될 수 있다. 이때, 다중-프레임들 처리 단계(310)의 다중-프레임은 현재 프레임에서 시작하는 2 개 이상의 연이은 프레임들일 수 있다.
현재 프레임 위치 추정 단계(940)에서, 현재 프레임 카메라 위치 추정부(224)는 현재 프레임 내에서의 카메라들 각각의 위치를 추정할 수 있다.
현재 프레임 갱신 단계(950)에서, 현재 프레임 설정부(221)는 현재 프레임의 다음 프레임을 현재 프레임으로 새롭게 설정할 수 있다. 이후, 현재 프레임 특징 추적 단계(920)가 반복해서 수행될 수 있다. 즉, 현재 프레임 특징 추정부는 새롭게 설정된 현재 프레임 내에서 제2 특징들을 추출할 수 있다.
앞서 도 1 내지 도 8을 참조하여 설명된 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 카메라 위치 추적 장치
210: 다중-프레임들 처리부
220: 단일-프레임 처리부

Claims (16)

  1. 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 상기 카메라들의 위치를 추적하는 방법에 있어서,
    다중-프레임들 내에서 제1 특징들을 추출 및 추적하고, 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계; 및
    하나 이상의 단일-프레임 각각의 제2 특징들에 기반하여 상기 하나 이상의 단일-프레임 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계
    를 포함하고, 상기 하나 이상의 단일-프레임은 상기 다중-프레임들에 연이은 프레임들 중 상기 제1 특징들에 대응하는 제2 특징의 개수가 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임인, 카메라 위치 추적 방법.
  2. 제1항에 있어서,
    상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는,
    상기 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 제3 특징들을 추출하는 단계;
    상기 제3 특징들을 상기 다중-프레임들 중 마지막 프레임까지 추적하는 단계;
    상기 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 상기 제1 특징들을 결정하는 단계; 및
    상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추정하는 단계
    를 포함하는, 카메라 위치 추적 방법.
  3. 제2항에 있어서,
    상기 제3 특징들을 추출하는 단계는,
    상기 첫 번째 프레임의 적어도 3 개의 이미지들로부터 포인트들을 추출하고, 스케일 불변 특징 변형 설명자(Scale Invariant Feature Transform; SIFT)들을 생성하는 단계; 및
    상기 추출된 포인트들을 상기 생성된 SIFT들 간의 설명자 비교를 사용하여 서로 간에 매치시키며, 상기 포인트들 중 매치된 포인트들을 특징으로서 연결시킴으로써 상기 제3 특징들을 생성하는 단계
    를 포함하는, 카메라 위치 추적 방법.
  4. 제3항에 있어서,
    상기 제3 특징들을 추출하는 단계는,
    기하 제약을 사용하여 상기 제3 특징들 중 아웃라이어들을 제거하는 단계
    를 더 포함하는, 카메라 위치 추적 방법.
  5. 제4항에 있어서,
    상기 기하 제약은 에피폴라 제약, 재-투영 제약 및 깊이 범위 제약 중 하나 이상인, 카메라 위치 추적 방법.
  6. 제1항에 있어서,
    상기 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는,
    상기 다중-프레임들의 다음 프레임을 현재 프레임으로 설정하는 단계;
    상기 현재 프레임 내에서 상기 제1 특징들 각각에 대응하는 특징을 상기 제2 특징으로 추출하는 단계;
    상기 제2 특징의 개수가 문턱치 이상인 경우 현재 프레임 내에서의 상기 카메라들 각각의 위치를 추정하는 단계; 및
    상기 제2 특징의 개수가 문턱치 이상인 경우 상기 현재 프레임의 다음 프레임을 상기 현재 프레임으로 설정하고 상기 제2 특징을 추출하는 단계를 반복하는 단계
    를 포함하는, 카메라 위치 추적 방법.
  7. 제6항에 있어서
    상기 단일-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계는,
    상기 제2 특징의 개수가 문턱치보다 적은 경우 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단계를 다시 수행하는 단계
    를 더 포함하는, 카메라 위치 추적 방법.
  8. 제1항 내지 7항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  9. 적어도 3 개의 카메라들에 의해 촬영된 프레임들을 사용하여 상기 카메라들의 위치를 추적하는 카메라 위치 추적 장치에 있어서,
    다중-프레임들 내에서 제1 특징들을 추출 및 추적하고, 상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 다중-프레임들 처리부; 및
    하나 이상의 단일-프레임 각각의 제2 특징에 기반하여 상기 하나 이상의 단일-프레임 각각 내에서의 상기 카메라들 각각의 위치를 추적하는 단일-프레임 처리부
    를 포함하고, 상기 하나 이상의 단일-프레임은 상기 다중-프레임들에 연이은 프레임들 중 상기 제1 특징들에 대응하는 제2 특징의 개수가 문턱치보다 적게 추적된 최초의 프레임의 이전의 프레임인, 카메라 위치 추적 장치.
  10. 제9항에 있어서,
    상기 다중-프레임들 처리부는,
    상기 다중-프레임들 중 첫 번째 프레임의 적어도 3 개의 이미지들로부터 제3 특징들을 추출하는 특징 추출부;
    상기 제3 특징들을 상기 다중-프레임들 중 마지막 프레임까지 추적하는 특징 추적부;
    상기 마지막 프레임까지 추적된 제3 특징들 중 동적 궤적을 갖는 특징들을 제거함으로써 상기 제1 특징들을 결정하는 동적 포인트 검출부; 및
    상기 제1 특징들에 기반하여 상기 다중-프레임들 각각 내에서의 상기 카메라들 각각의 위치를 추정하는 카메라 위치 추정부
    를 포함하는, 카메라 위치 추적 장치.
  11. 제10항에 있어서,
    상기 동적 포인트 검출부는 상기 제3 특징들 각각의 4차원 궤적 부공간을 계산하고, 상기 4차원 궤적 부공간에 기반하여 상기 제3 특징들 각각이 동적 궤적을 갖는지 여부를 판단하는, 카메라 위치 추적 장치.
  12. 제10항에 있어서,
    상기 특징 추출부는,
    상기 첫 번째 프레임의 적어도 3 개의 이미지들로부터 포인트들을 추출하고, 스케일 불변 특징 변형 설명자(Scale Invariant Feature Transform; SIFT)들을 생성하고, 상기 추출된 포인트들을 상기 생성된 SIFT들 간의 설명자 비교를 사용하여 서로 간에 매치시키며, 상기 포인트들 중 매치된 포인트들을 특징으로서 연결시킴으로써 상기 제3 특징들을 생성하는, 카메라 위치 추적 장치.
  13. 제12항에 있어서,
    상기 특징 추출부는 기하 제약을 사용하여 상기 제3 특징들 중 아웃라이어들을 제거함으로써 상기 제1 특징들을 결정하는, 카메라 위치 추적 장치.
  14. 제13항에 있어서,
    상기 기하 제약은 에피폴라 제약, 재-투영 제약 및 깊이 범위 제약 중 하나 이상인, 카메라 위치 추적 장치.
  15. 제9항에 있어서,
    상기 단일-프레임 처리부는,
    상기 다중-프레임들의 다음 프레임을 현재 프레임으로 설정하는 현재 프레임 설정부;
    상기 현재 프레임 내에서 상기 제1 특징들 각각에 대응하는 특징을 상기 제2 특징으로 추출하는 현재 프레임 특징 추정부; 및
    상기 제2 특징의 개수가 문턱치 이상인 경우 현재 프레임 내에서의 상기 카메라들 각각의 위치를 추정하는 문턱치 비교부;
    를 포함하고,
    상기 제2 특징의 개수가 문턱치 이상인 경우 상기 현재 프레임 설정부는 상기 현재 프레임의 다음 프레임을 상기 현재 프레임으로 새롭게 설정하고, 상기 현재 프레임 특징 추정부는 상기 새롭게 설정된 현재 프레임으로부터 상기 제1 특징들에 대응하는 상기 제2 특징을 추출하는, 카메라 위치 추적 장치.
  16. 제15항에 있어서,
    상기 제2 특징의 개수가 문턱치보다 적은 경우 상기 다중-프레임들 처리부는 재실행되는, 카메라 위치 추적 장치.
KR1020120005745A 2012-01-18 2012-01-18 카메라 추적을 위한 방법 및 장치 KR101926563B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120005745A KR101926563B1 (ko) 2012-01-18 2012-01-18 카메라 추적을 위한 방법 및 장치
US13/447,661 US8873802B2 (en) 2012-01-18 2012-04-16 Method and apparatus for camera tracking
CN201210286784.XA CN103218799B (zh) 2012-01-18 2012-08-13 用于相机跟踪的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120005745A KR101926563B1 (ko) 2012-01-18 2012-01-18 카메라 추적을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130084849A KR20130084849A (ko) 2013-07-26
KR101926563B1 true KR101926563B1 (ko) 2018-12-07

Family

ID=48779991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120005745A KR101926563B1 (ko) 2012-01-18 2012-01-18 카메라 추적을 위한 방법 및 장치

Country Status (3)

Country Link
US (1) US8873802B2 (ko)
KR (1) KR101926563B1 (ko)
CN (1) CN103218799B (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9373040B2 (en) * 2011-11-01 2016-06-21 Google Inc. Image matching using motion manifolds
WO2015049717A1 (ja) * 2013-10-01 2015-04-09 株式会社日立製作所 移動***置推定装置および移動***置推定方法
US10546385B2 (en) * 2016-02-25 2020-01-28 Technion Research & Development Foundation Limited System and method for image capture device pose estimation
US10318834B2 (en) * 2017-05-01 2019-06-11 Intel Corporation Optimized image feature extraction
US11080890B2 (en) * 2017-07-28 2021-08-03 Qualcomm Incorporated Image sensor initialization in a robotic vehicle
US10839547B2 (en) * 2017-09-28 2020-11-17 Samsung Electronics Co., Ltd. Camera pose determination and tracking
CN109813251B (zh) * 2017-11-21 2021-10-01 蒋晶 用于三维测量的方法、装置以及***
CN108062776B (zh) * 2018-01-03 2019-05-24 百度在线网络技术(北京)有限公司 相机姿态跟踪方法和装置
CN108615248B (zh) * 2018-04-27 2022-04-05 腾讯科技(深圳)有限公司 相机姿态追踪过程的重定位方法、装置、设备及存储介质
KR102367361B1 (ko) * 2018-06-07 2022-02-23 우이시 테크놀로지스 (베이징) 리미티드. 위치 측정 및 동시 지도화 방법 및 장치
CN111210476B (zh) * 2018-11-22 2023-06-23 驭势科技(北京)有限公司 一种同时定位与建图的方法及装置
CN109785367B (zh) * 2019-01-21 2019-12-20 视辰信息科技(上海)有限公司 三维模型追踪中外点滤除方法和装置
CN110335308B (zh) * 2019-06-28 2021-07-30 中国科学院自动化研究所 基于视差约束与双向环形检验的双目视觉里程计计算方法
CN110349250B (zh) * 2019-06-28 2020-12-22 浙江大学 一种基于rgbd相机的室内动态场景的三维重建方法
CN111950370B (zh) * 2020-07-10 2022-08-26 重庆邮电大学 动态环境下线拓展视觉里程计方法
CN112037261A (zh) * 2020-09-03 2020-12-04 北京华捷艾米科技有限公司 一种图像动态特征去除方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040257452A1 (en) 2003-03-31 2004-12-23 Spatial Integrated Systems, Inc. Recursive least squares approach to calculate motion parameters for a moving camera
US20080031543A1 (en) 2004-07-07 2008-02-07 Noboru Nakajima Wide-Field Image Input Method And Device
JP2011035642A (ja) 2009-07-31 2011-02-17 Fujifilm Corp 多眼撮影装置およびその調整方法並びにプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6693666B1 (en) 1996-12-11 2004-02-17 Interval Research Corporation Moving imager camera for track and range capture
US6571024B1 (en) * 1999-06-18 2003-05-27 Sarnoff Corporation Method and apparatus for multi-view three dimensional estimation
JP2003141527A (ja) 2001-11-07 2003-05-16 Japan Science & Technology Corp 多視点画像処理システムのキャリブレーション装置及びキャリブレーション方法
JP2003279310A (ja) 2002-03-22 2003-10-02 Canon Inc 位置姿勢補正装置、及び位置姿勢補正方法
GB2411532B (en) * 2004-02-11 2010-04-28 British Broadcasting Corp Position determination
JP2007255955A (ja) 2006-03-22 2007-10-04 Mitsubishi Electric Corp 姿勢角検出装置、カメラ
US20070248330A1 (en) 2006-04-06 2007-10-25 Pillman Bruce H Varying camera self-determination based on subject motion
JP4886560B2 (ja) * 2007-03-15 2012-02-29 キヤノン株式会社 情報処理装置、情報処理方法
US8102427B2 (en) 2008-02-14 2012-01-24 Sri International Camera egomotion estimation from an infra-red image sequence for night vision
US8269842B2 (en) * 2008-06-11 2012-09-18 Nokia Corporation Camera gestures for user interface control
US8339459B2 (en) * 2009-09-16 2012-12-25 Microsoft Corporation Multi-camera head pose tracking
CN102163331A (zh) * 2010-02-12 2011-08-24 王炳立 采用标定方法的图像辅助***
CN102221884B (zh) * 2011-06-15 2013-04-24 山东大学 一种基于摄像机实时定标的可视遥在装置及其工作方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040257452A1 (en) 2003-03-31 2004-12-23 Spatial Integrated Systems, Inc. Recursive least squares approach to calculate motion parameters for a moving camera
US20080031543A1 (en) 2004-07-07 2008-02-07 Noboru Nakajima Wide-Field Image Input Method And Device
JP2011035642A (ja) 2009-07-31 2011-02-17 Fujifilm Corp 多眼撮影装置およびその調整方法並びにプログラム

Also Published As

Publication number Publication date
CN103218799B (zh) 2017-09-29
KR20130084849A (ko) 2013-07-26
US8873802B2 (en) 2014-10-28
US20130182894A1 (en) 2013-07-18
CN103218799A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
KR101926563B1 (ko) 카메라 추적을 위한 방법 및 장치
US10109104B2 (en) Generation of 3D models of an environment
JP4985516B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
WO2014022036A1 (en) Fast 3-d point cloud generation on mobile devices
US20130080111A1 (en) Systems and methods for evaluating plane similarity
US11651581B2 (en) System and method for correspondence map determination
Belter et al. Improving accuracy of feature-based RGB-D SLAM by modeling spatial uncertainty of point features
JP2006252275A (ja) カメラ運動及び物体形状の復元システム
CN109255801B (zh) 视频中三维物体边缘追踪的方法、装置、设备及存储介质
JPWO2018235219A1 (ja) 自己位置推定方法、自己位置推定装置および自己位置推定プログラム
TW201719572A (zh) 三維模型分析及搜尋方法
Ventura Structure from motion on a sphere
Moreno et al. ERODE: An efficient and robust outlier detector and its application to stereovisual odometry
JP4836065B2 (ja) エッジトラッキング方法及びそのコンピュータプログラム
US11210846B2 (en) Three-dimensional model processing method and three-dimensional model processing apparatus
Mittal et al. Generalized projection based m-estimator: Theory and applications
KR100792172B1 (ko) 강건한 대응점을 이용한 기본행렬 추정 장치 및 그 방법
Plakas et al. Uncalibrated vision for 3-D underwater applications
Ji et al. Spatio-temporally consistent correspondence for dense dynamic scene modeling
WO2009104965A2 (en) A method of estimating a motion of a multiple camera system, a multiple camera system and a computer program product
Liu et al. CyberLoc: Towards Accurate Long-term Visual Localization
WO2013173383A1 (en) Methods and apparatus for processing image streams
JP2004132933A (ja) アクティブセンサの位置・姿勢推定方法及びその装置、並びにアクティブセンサの位置・姿勢推定プログラム
KR101373982B1 (ko) 스테레오 비전에서 탐색 영역 예측을 통한 빠른 스테레오 정합 방법 및 장치와 이를 이용한 스테레오 비전 시스템
Xu Stereo Visual Odometry with Windowed Bundle Adjustment

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