KR20170132134A - 클러스터 기반의 포토 네비게이션 - Google Patents

클러스터 기반의 포토 네비게이션 Download PDF

Info

Publication number
KR20170132134A
KR20170132134A KR1020177023248A KR20177023248A KR20170132134A KR 20170132134 A KR20170132134 A KR 20170132134A KR 1020177023248 A KR1020177023248 A KR 1020177023248A KR 20177023248 A KR20177023248 A KR 20177023248A KR 20170132134 A KR20170132134 A KR 20170132134A
Authority
KR
South Korea
Prior art keywords
images
captured
image
neighboring
pattern
Prior art date
Application number
KR1020177023248A
Other languages
English (en)
Other versions
KR102056417B1 (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 KR20170132134A publication Critical patent/KR20170132134A/ko
Application granted granted Critical
Publication of KR102056417B1 publication Critical patent/KR102056417B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3647Guidance involving output of stored or live camera images or video streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/30Scenes; Scene-specific elements in albums, collections or shared content, e.g. social network photos or video
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3664Details of the user input interface, e.g. buttons, knobs or sliders, including those provided on a touch screen; remote controllers; input using gestures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/763Non-hierarchical techniques, e.g. based on statistics of modelling distributions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Image Analysis (AREA)
  • Navigation (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)

Abstract

이 기술은 이미지가 캡쳐될 때 보여지는 공통적 패턴들에 기초하여 클러스터들로 조직화되는 이미지를 네비게이션하는 것에 관한 것이다. 예를 들어, 미리 결정된 패턴을 만족시키는 캡쳐된 이미지들의 세트가 결정될 수 있다. 캡쳐된 이미지들의 세트 내의 이미지들은 상기 미리 결정된 패턴에 따라 하나 이상의 클러스터들로 그룹화될 수 있다. 상기 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청이 수신될 수 있고, 이에 응답하여, 상기 요청된 제1 클러스터로부터 제1 캡쳐된 이미지가 선택될 수 있다. 그 다음, 선택된 제1 캡쳐된 이미지가 디스플레이될 수 있다.

Description

클러스터 기반의 포토 네비게이션
복수의 사용자들에 의해 캡쳐된 다양한 장면들(scenes)의 이미지들(images) 조직화(organizing)하고 네비게이션하는 많은 방법들이 사용되어 왔다. 일부 예들에서, 복수의 사용자들에 의해 캡쳐된 동일한 장면들의 이미지들은 그룹으로 결합될 수 있다. 그러한 그룹들은 캡쳐된 장면들과 관련하여 많은 각도들 및 거리들로부터 얻어진 다양한 수의 캡쳐된 이미지들을 포함할 수 있다. 그 다음, 사용자들은 이미지들이 캡쳐된 곳에 관계없이 단일 그룹 내에서 이미지들을 볼 수 있다. 따라서, 이미지들을 조직화하고 네비게이션하는 현재의 방법들은 결과적으로, 예측불가능한 이미지들의 디스플레이를 초래하는 바, 이는 비직관적(unintuitive)이고 사용자에게 거슬릴(jarring) 수 있다.
본 발명의 실시예들은 일반적으로, 이미지들을 표시하는 것에 관한 것이다. 하나의 양상은 디바이스 상에서 이미지 클러스터들을 조직화하고 네비게이션하는 방법을 포함한다. 캡쳐된 이미지들의 세트는 하나 이상의 프로세싱 디바이스들에 의해 액세스될 수 있다. 그 다음, 상기 하나 이상의 프로세싱 디바이스들은 상기 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족하는지의 여부를 검출하고, 상기 캡쳐된 이미지들의 세트 내의 이미지들을 상기 검출된 미리 결정된 패턴에 따라 하나 이상의 클러스터들로 그룹화하고, 상기 캡쳐된 이미지들의 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하고, 상기 요청에 응답하여 디스플레이하기 위해 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 선택할 수 있다. 상기 제1 클러스터로부터의 제1 캡쳐된 이미지는 디스플레이를 위해 제공될 수 있다.
일 실시예는 이미지 클러스터들을 조직화하고 네비게이팅하는 시스템을 제공한다. 상기 시스템은 하나 이상의 컴퓨팅 디바이스들과 그리고 상기 하나 이상의 컴퓨팅 디바이스들에 의해 실행 가능한 명령어들을 저장한 메모리를 포함한다. 상기 명령어들은 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지들의 세트에 액세스하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족하는지의 여부를 검출하는 것과, 그리고 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들을 상기 검출된 미리 결정된 패턴에 따라 하나 이상의 클러스터들로 그룹화하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 상기 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 요청에 응답하여 디스플레이하기 위해 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 선택하는 것과, 그리고 디스플레이를 위해 상기 제1 클러스터로부터의 상기 제1 캡쳐된 이미지를 제공하는 것을 포함한다.
일 실시예는 이미지 클러스터들을 조직화하고 네비게이팅하는 시스템을 제공한다. 상기 시스템은 하나 이상의 컴퓨팅 디바이스들과 그리고 상기 하나 이상의 컴퓨팅 디바이스들에 의해 실행 가능한 명령어들을 저장한 메모리를 포함한다. 상기 명령어들은 하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지들의 세트에 액세스하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지가 미리 결정된 패턴을 만족하는지의 여부를 검출하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들을 상기 검출된 미리 결정된 패턴에 따라 하나 이상의 클러스터들로 그룹화하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 상기 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 요청에 응답하여 디스플레이하기 위해 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 선택하는 것과, 디스플레이를 위해 상기 제1 클러스터로부터의 상기 제1 캡쳐된 이미지를 제공하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 제1 클러스터 내의 이미지들로부터, 상기 제1 캡쳐된 이미지에 미리 결정된 근접도(proximity) 내에 있는 이웃하는 캡쳐된 이미지들의 세트를 결정하는 것과, 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 것과, 그리고 상기 하나 이상의 컴퓨팅 디바이스들에 의해, 클릭 또는 드래그 이벤트에 응답하여 하나 이상의 이웃하는 이미지들을 제공하는 것을 포함한다.
도 1은 본 발명의 양상들에 따른 예시적인 시스템의 기능도이다.
도 2는 도 1의 예시적인 시스템의 도해이다.
도 3은 본 발명의 양상들에 따른 파노라마 패턴(panoramic pattern)으로 이미지들을 캡쳐하는 컴퓨팅 디바이스의 예이다.
도 4는 본 발명의 양상들에 따른 트랜슬레이션 패턴(translation pattern)으로 이미지들을 캡쳐하는 컴퓨팅 디바이스의 예이다.
도 5는 본 발명의 양상들에 따른 궤도 패턴(orbit pattern)으로 이미지들을 캡쳐하는 컴퓨팅 디바이스의 예이다.
도 6a는 본 발명의 양상들에 따른 파노라마 패턴 클러스터들의 세트의 예이다.
도 6b는 본 발명의 양상들에 따른 시야각 임계들(view angle thresholds)의 예이다.
도 7a는 본 발명의 양상들에 따른 캡쳐된 트랜슬레이션 이미지들의 초기 후보 세트의 예이다.
도 7b는 본 발명의 양상들에 따른 각도 임계들의 예이다.
도 8은 본 발명의 양상들에 따른 궤도 패턴 클러스터의 예이다.
도 9는 본 발명의 양상들에 따른 클러스터 내에서 네비게이션하는 컴퓨팅 디바이스의 예이다.
도 10은 본 발명의 양상들에 따른 시야각들의 예이다.
도 11은 본 발명의 양상들에 따른 클러스터들 간에 네비게이션하는 컴퓨팅 디바이스의 예이다.
도 12는 본 발명의 양상들에 따른 순서도이다.
이 기술은 이미지(imagery)가 캡쳐될 때 보여지는 공통적 패턴들(common patterns)에 기초하여 클러스터들로 조직화되는 이미지를 네비게이션하는 것에 관한 것이다. 예를 들어, 복수의 사용자들에 의해 캡쳐된 다양한 장면들의 이미지들은, 동일한 장면에 대응하고 결합될 때 적어도 하나의 공통적 패턴을 만족시키는 캡쳐된 이미지들을 클러스터들로 조직화하기 위해 하나 이상의 컴퓨팅 디바이스들에 의해 분석될 수 있다. 그 다음, 사용자는 클러스터를 선택할 수 있으며, 이에 응답하여, 선택된 클러스터 내의 캡쳐된 이미지가 하나 이상의 컴퓨팅 디바이스들 중 하나에 디스플레이될 수 있다. 사용자가 클러스터 내에서 캡쳐된 이미지들을 통해 패닝(pan)함에 따라, 디스플레이는 클러스터 내의 이미지들에 할당된 공통 패턴에 따라 다른 캡쳐된 이미지로 스위칭될 수 있다. 추가적으로, 사용자는 서로 다른 클러스터들을 보는 것 간을 스위칭할 수 있다. 따라서, 사용자는 복수의 사용자들이 전형적으로 디스플레이되는 장면을 캡쳐하는 방식을 모방(mimic)할 수 있는 매끄러운(smooth) 네비게이션 경험을 제공받는다.
하나 이상의 사용자들로부터 캡쳐된 이미지들은 또한, 패턴들로 결합될 수 있다. 예를 들어, 소정 장면의 캡쳐된 이미지들은 하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지가 결합될 때 만족하는 패턴의 타입에 기초하여 클러스터로 그룹화될 수 있다. 이에 관하여, 하나 이상의 사용자들로부터의 캡쳐된 이미지들의 그룹은 파노라마 패턴 클러스터, 트랜슬레이션 패턴 클러스터 및 궤도 패턴 클러스터 중 하나 이상에 배치될 수 있다.
파노라마 패턴 클러스터들을 결정하기 위해, 카메라가 제1 캡쳐된 이미지를 캡쳐한 위치로부터의 좌표들을 나타내는 파노라마 센터들이 결정될 수 있다. 업데이트된 파노라마 센터들은 제1 파노라마 서클 내에서 각각의 추가적인 캡쳐된 이미지로 제1 파노라마 센터의 좌표들을 반복적으로 평균화(averaging)함으로써 발견될 수 있다. 그 다음, 최종 파노라마 서클이 상기 제1 파노라마 서클 내에 있던 캡쳐된 이미지들을 가능한 많이 포함하도록 계산될 수 있다. 추가적인 최종 파노라마 서클들이 결정된 최종 파노라마 서클에 속하지 않는 캡쳐된 이미지들에 대해 상기 프로세스를 반복적으로 수행함으로써 발견될 수 있다.
트랜슬레이션 패턴 클러스터를 결정하기 위해, 임계각 내에서 가장 가까운 이웃하는 이미지들의 감소된 후보 세트가 각각의 캡쳐된 이미지에 대해 계산되고 상기 각각의 캡쳐된 이미지와 관련될 수 있다. 감소된 후보 세트들은 관련된 캡쳐된 이미지의 각도 임계 값 내에 있는 캡쳐된 이미지들의 잠재적인 트랜슬레이션 패턴 클러스터들을 생성하도록 확장될 수 있다. 트랜슬레이션 패턴 클러스터들은 임계 기준을 만족하는 잠재적인 트랜슬레이션 패턴 클러스터들을 유지함으로써 결정될 수 있다. 이에 관하여, 임계 수의 캡쳐된 이미지들보다 적게 포함하는 잠재적인 트랜슬레이션 패턴 클러스터는 무시될 수 있다. 적어도 임계 수의 캡쳐된 이미지들을 포함하는 잠재적인 변환 패턴 클러스터들이 변환 패턴 클러스터들이 될 수 있다.
궤도 패턴 클러스터들을 결정하기 위해, 하나 이상의 궤도 객체 센터들을 향하여 지향되고 상기 궤도 객체 센터들을 중심으로 매끄러운 트랜슬레이션을 제공하는 캡쳐된 이미지들이 발견되거나 식별될 수 있다. 예를 들어, 캡쳐된 이미지들은 중첩 이미지 데이터를 갖는 캡쳐된 이미지들의 그룹들을 결정하기 위해 비교될 수 있다. 중첩 이미지 데이터를 포함하는 캡쳐된 이미지들의 그룹들은 이웃하는 이미지들로 고려된다. 궤도 객체 센터들은 각각의 캡쳐되는 이미지를 그 이미지가 캡쳐된 위치로부터 그리고 캡쳐되는 이미지가 캡쳐될 때 카메라 센터가 포인팅된 방향으로 발산되는 광선(ray)으로서 고려함으로써 결정된다. 그 다음, 이웃하는 이미지들의 광선들 간의 교차포인트들이 발견될 수 있다. 그 다음, 클러스터링 알고리즘은 충분한 레벨의 교차 포인트들을 가진 영역들을 결정함으로써 궤도 객체 센터들을 발견할 수 있다.
각각의 궤도 객체 센터에 대해, 궤도 객체 센터에 위치된 장면의 일부와 관련된 이미지 데이터를 포함하는 캡쳐된 이미지들은 그 궤도 객체 센터와 관련될 수 있다. 적어도 임계 수의 캡쳐된 이미지들을 포함하는 캡쳐된 이미지들의 그룹들은 각 이미지들의 그룹 내의 캡쳐된 이미지들에 의해 커버되는 시야각이 임계 각도 값보다 큰 시야각을 포함하는지를 결정하기 위해 분석될 수 있다. 이 임계들을 만족하는 모든 이미지들의 그룹들은 궤도 패턴 클러스터로 고려될 수 있다.
결정된 클러스터들 내의 하나 이상의 캡쳐된 이미지들은 컴퓨팅 디바이스의 디스플레이 상에 보여질 수 있다. 이에 관하여, 사용자는 서로 다른 클러스터들 간에 또는 단일 클러스터 내에서 네비게이션할 수 있다. 예를 들어, 현재 보여지지 않는 클러스터를 나타내는 클릭 타겟들이 사용자가 클러스터들 간에 스위칭할 수 있도록 디스플레이에 제공될 수 있다. 추가적으로, 현재 보여지는 클러스터 내의 이웃하는 이미지들을 나타내는 드래그 타겟들이 사용자가 현재 보여지는 클러스터 내에서 네비게이션할 수 있도록 사용자에게 제공될 수 있다.
클릭 타겟들은 현재 선택된 클러스터에 기초하여 결정될 수 있다. 예를 들어, 사용자는 보기 위한 초기 클러스터를 선택할 수 있다. 초기 클러스터 내의 캡쳐된 이미지는 컴퓨팅 디바이스 상에 디스플레이될 수 있다. 초기 클러스터의 외부에서 현재 디스플레이되는 캡쳐된 이미지에 대한 하나 이상의 이웃하는 캡쳐된 이미지들이 하나 이상의 클릭 타겟들로서 할당될 수 있다.
드래그 타겟을 사용하여 파노라마 패턴 클러스터 내에서 네비게이션을 제공하기 위해, 드래그 타겟 비용은 현재 클러스터 내에서 현재 디스플레이되는 캡쳐된 이미지에 가장 가까운 각각의 캡쳐된 이미지에 대해 컴퓨팅될 수 있다. 각각의 드래그 벡터 방향에 대해, 최저 드래그 타겟 비용을 갖는 이미지는 그 드래그 벡터 방향을 따라 드래그 타겟이 될 수 있다. 따라서, 사용자가 드래그 벡터 방향을 따라 디스플레이를 패닝할 때, 최저 드래그 타겟 비용을 갖는 드래그 타겟이 컴퓨팅 디바이스 상에 디스플레이될 수 있다.
궤도 및 트랜슬레이션 패턴 클러스터들 내에서 네비게이션하기 위해, 현재 디스플레이되는 캡쳐된 이미지의 좌 그리고 우에 이웃하는 캡쳐된 이미지들이 발견되거나 식별될 수 있다. 이웃하는 이미지들의 시야각들은 상기 이미지들이 현재 디스플레이되는 이미지의 좌에 또는 우에 위치되는지를 결정하기 위해 현재 디스플레이되는 이미지의 시야각과 비교될 수 있다. 그 다음, 좌 또는 우로 타겟 드래그 거리에 가장 가까운 이웃하는 이미지들은 각각 좌 및 우 드래그 타겟들이 될 수 있다. 따라서, 사용자가 디스플레이를 좌 또는 우로 패닝할 때, 좌 또는 우 드래그 타겟이 각각 컴퓨팅 디바이스 상에 디스플레이될 수 있다.
여기에 설명된 특징들은 사용자들이 전형적으로 장면을 마치 그곳에 있는 것처럼 보는 방식을 모방하는 매끄러운 네비게이션 경험을 가능하게 할 수 있다. 그렇게 함으로써, 사용자는 장면의 자연스런 뷰를 제공하는 예측 가능한 네비게이션 경험을 할 수 있다. 추가적으로, 장면의 캡쳐된 이미지들의 큰 그리고 작은 그룹들 모두를 네비게이션할 때 네비게이션 경험이 일관성있게 될 것이다.
예시적인 시스템들
도 1 및 도 2는 전술한 특징들이 구현될 수 있는 예시적인 시스템(100)을 포함한다. 이는 본 명세서에 기술된 본 발명의 범위 또는 특징들의 유용성을 제한하는 것으로 고려되어서는 안된다. 이 예에서, 시스템(100)은 컴퓨팅 디바이스들(110, 120, 130 및 140)뿐만 아니라 저장 시스템(150)을 포함할 수 있다. 각각의 컴퓨팅 디바이스(110)는 하나 이상의 프로세서들(112), 메모리(114) 및 일반적으로 범용 컴퓨팅 디바이스에 전형적으로 존재하는 다른 컴포넌트들을 포함할 수 있다. 컴퓨팅 디바이스들(110, 120, 130 및 140) 각각의 메모리(114)는 하나 이상의 프로세서들(112)에 의해 실행될 수 있는 명령어들(116)을 포함하여 하나 이상의 프로세서들(112)에 의해 액세스가능한 정보를 저장할 수 있다.
메모리는 또한 프로세서에 의해 검색, 조작 또는 저장될 수 있는 데이터(118)를 포함할 수 있다. 메모리는 하드 드라이브, 메모리 카드, ROM, RAM, DVD, CD-ROM, 쓰기 가능(write-capable) 및 판독 전용 메모리들과 같은 프로세서에 의해 액세스가능한 정보를 저장할 수 있는 어떤 비-일시적인 타입일 수 있다.
명령어들(116)은 하나 이상의 프로세서들에 의해, 머신 코드와 같이 직접적으로 또는 스크립트들과 같이 간접적으로 실행될 명령어들의 어떤 세트일 수 있다. 이에 관하여, 용어 "명령어들", "어플리케이션", "단계들" 및 "프로그램들"은 본 명세서에서 상호 교환적으로 사용될 수 있다. 명령어들은 프로세서에 의한 직접적인 프로세싱을 위해 객체 코드 포맷으로 저장될 수 있거나, 또는 요구 시(on demand) 해석되거나 사전에 컴파일된 독립 소스 코드 모듈들의 스크립트들 또는 콜렉션들을 포함하는 어떤 다른 컴퓨팅 디바이스 언어로 저장될 수 있다. 명령어들의 기능들, 방법들 및 루틴들은 아래에서보다 상세히 설명된다.
데이터(118)가 명령어들(116)에 따라 하나 이상의 프로세서들(112)에 의해 검색, 저장 또는 수정될 수 있다. 예를 들어, 비록 본 명세서에 기술된 발명(subject matter)이 어떤 특정 데이터 구조에 의해 제한되지는 않지만, 데이터는 많은 다른 필드들 및 레코드들을 갖는 테이블 또는 XML 문서들로서 관계형 데이터베이스에서 컴퓨터 레지스터에 저장될 수 있다. 데이터는 또한, 이들로만 한정되는 것은 아니지만 바이너리 값들, ASCII 또는 유니코드와 같은 어떤 컴퓨팅 디바이스 판독가능 포맷으로 포맷될 수 있다. 더욱이, 데이터는 숫자들, 디스크립티브 텍스트, 사유 코드들, 포인터들, 다른 네트워크 위치들과 같은 다른 메모리에 저장된 데이터에 대한 참조들 또는 관련 데이터를 계산하기 위해 함수(function)에 의해 사용되는 정보와 같은 관련 정보를 식별하기에 충분한 어떤 정보를 포함할 수 있다.
하나 이상의 프로세서들(112)은 상업적으로 이용가능한 CPU와 같은 어떤 종래의 프로세서일 수 있다. 대안적으로, 프로세서들은 주문형 집적 회로("ASIC") 또는 다른 하드웨어 기반의 프로세서와 같은 전용 컴포넌트들일 수 있다. 비록 필수적이지는 않지만, 컴퓨팅 디바이스들(110) 중 하나 이상은 비디오를 디코딩하는 것, 비디오 프레임들을 이미지들과 매칭시키는 것, 비디오들을 왜곡(distorting)하는 것, 왜곡된 비디오들을 인코딩하는 것과 같은 특정 컴퓨팅 프로세스들을 보다 빠르거나 더욱 효율적으로 수행하기 위한 특수화된 하드웨어 컴포넌트들을 포함할 수 있다.
비록 도 1은 프로세서(112), 메모리(114), 및 컴퓨팅 디바이스(110)의 다른 요소들을 동일한 블록 내에 있는 것으로서 기능적으로 도시하지만, 프로세서, 컴퓨터, 컴퓨팅 디바이스 또는 메모리는 실제로, 동일한 물리적 하우징 내에 저장될 수 있거나 또는 그렇지 않을 수 있는 복수의 프로세서들, 컴퓨터들, 컴퓨팅 디바이스들 또는 메모리들을 포함할 수 있다. 예를 들어, 메모리는 컴퓨팅 디바이스들(110)의 하우징과 다른 하우징에 위치된 하드 드라이브 또는 다른 저장 매체일 수 있다. 따라서, 프로세서, 컴퓨터, 컴퓨팅 디바이스 또는 메모리에 대한 참조는 병렬로 동작하거나 동작하지 않을 수 있는 프로세서들, 컴퓨터들, 컴퓨팅 디바이스들 또는 메모리들의 콜렉션에 대한 참조들을 포함하도록 이해될 것이다. 예를 들어, 컴퓨팅 디바이스들(110)은 로드 밸런싱 서버 팜(load-balanced server farm), 분산 시스템, 등으로서 동작하는 서버 컴퓨팅 디바이스들을 포함할 수 있다. 또한, 비록, 이하에 설명되는 일부 기능들은 단일 프로세서를 갖는 단일 컴퓨팅 디바이스에서 발생하는 것으로 표시되지만, 여기에 설명된 발명의 양상들은, 예를 들어 네트워크(160)를 통해 정보를 통신하는 복수의 컴퓨팅 디바이스들에 의해 구현될 수 있다.
컴퓨팅 디바이스(110) 각각은 네트워크(160)의 서로 다른 노드들에 존재할 수 있고 네트워크(160)의 다른 노드들과 직접 및 간접적으로 통신할 수 있다. 비록 몇개의 컴퓨팅 디바이스들만이 도 1 내지 도 2에 도시되어 있지만, 전형적인 시스템은 네트워크(160)의 서로 다른 노드에 있는 각각의 서로 다른 컴퓨팅 디바이스를 갖는 다수의 연결된 컴퓨팅 디바이스들을 포함할 수 있다. 본 명세서에 기술된 네트워크(160) 및 중재 노드들은 다양한 프로토콜들 및 시스템들을 사용하여 상호 연결될 수 있어서, 네트워크는 인터넷, 월드 와이드 웹, 특정 인트라넷들, 광역 네트워크 또는 로컬 네트워크들의 일부일 수 있다. 네트워크는 이더넷, WiFi 및 HTTP와 같은 표준 통신 프로토콜들, 하나 이상의 회사들에 사유인 프로토콜들 및 전술한 것들의 다양한 조합들을 이용할 수 있다. 비록, 전술한 바와 같이 정보가 전송 또는 수신될 때 특정한 장점들이 획득되지만, 본 명세서에 기재된 발명의 다른 양상들은 정보의 특정한 전송 방식에 제한되지 않는다.
일례로서, 컴퓨팅 디바이스들(110) 각각은 네트워크를 통해 컴퓨팅 디바이스들(120, 130 및 140)뿐만 아니라 저장 시스템(150)과 통신할 수 있는 웹 서버들을 포함할 수 있다. 예를 들어, 하나 이상의 서버 컴퓨팅 디바이스들(110)은 컴퓨팅 디바이스들(120, 130 또는 140)의 디스플레이들(122, 132 또는 142)과 같은 디스플레이 상에 정보를 사용자(220, 230 또는 240)에게 전송 및 제시하기 위해 네트워크(160)를 이용할 수 있다. 이에 관하여, 컴퓨팅 디바이스들(120, 130 및 140)은 클라이언트 컴퓨팅 디바이스들로서 고려될 수 있고 여기에 기술된 특징들의 전부 또는 일부를 수행할 수 있다.
클라이언트 컴퓨팅 디바이스들(120, 130 및 140) 각각은 전술한 바와 같은 하나 이상의 프로세서들, 메모리 및 명령어들을 갖는 서버 컴퓨팅 디바이스들(110)과 유사하게 구성될 수 있다. 각각의 클라이언트 컴퓨팅 디바이스(120, 130 또는 140)는 사용자(220, 230, 240)에 의한 사용에 의도되는 개인용 컴퓨팅 디바이스일 수 있으며, 중앙 프로세싱 유닛(CPU), 데이터 및 명령어들을 저장하는 메모리(예컨대, RAM 및 내부 하드 드라이브들), 디스플레이(122, 132 또는 142)(예컨대, 스크린, 터치 스크린, 프로젝터, 텔레비전 또는 정보를 디스플레이할 수 있는 다른 디바이스), 및 사용자 입력 디바이스(124)(예컨대, 마우스, 키보드, 터치 스크린 또는 마이크로폰)와 같이 개인용 컴퓨팅 디바이스와 연계하여 일반적으로 사용되는 컴포넌트들의 전부를 가질 수 있다. 클라이언트 컴퓨팅 디바이스는 또한 비디오 스트림들을 레코딩하고 그리고/또는 이미지들을 캡쳐하는 카메라, 스피커들, 네트워크 인터페이스 디바이스 및 이들 요소들을 서로 연결하기 위해 사용되는 컴포넌트들의 모두를 포함할 수 있다.
비록 클라이언트 컴퓨팅 디바이스들(120, 130 및 140) 각각은 풀 사이즈의 개인용 컴퓨팅 디바이스를 포함할 수 있지만, 이들은 대안적으로는 인터넷과 같은 네트워크를 통해 서버와 무선으로 데이터를 교환할 수 있는 모바일 컴퓨팅 디바이스들을 포함할 수 있다. 단지 예로서, 클라이언트 컴퓨팅 디바이스(120)는 인터넷을 통해 정보를 획득할 수 있는 모바일 폰 또는 무선-인에이블(wireless-enabled) PDA, 태블릿 PC 또는 넷북과 같은 디바이스일 수 있다. 다른 예에서, 클라이언트 컴퓨팅 디바이스(130)는 헤드 장착 컴퓨팅 시스템(head-mounted computing system)일 수 있다. 사용자는 예를 들어, 서향 키보드, 키패드, 마이크로폰을 이용하여 정보를 입력하거나, 카메라로 시각 신호를 이용하거나 또는 터치 스크린에 의해 클라이언트 컴퓨팅 디바이스와 상호 작용할 수 있다.
메모리(114)와 같이, 저장 시스템(150)은 하드 드라이브, 메모리 카드, ROM, RAM, DVD, CD-ROM, 기록 가능 및 판독 전용 메모리들과 같은 서버 컴퓨팅 디바이스(110)에 의해 액세스가능한 정보를 저장할 수 있는 어떤 타입의 컴퓨터화된 저장소(storage)일 수 있다. 추가적으로, 저장 시스템(150)은 데이터가 동일 또는 서로 다른 지리적 위치들에 물리적으로 위치될 수 있는 복수의 서로 다른 저장 디바이스들 상에 저장되는 분산 저장 시스템을 포함할 수 있다. 저장 시스템(150)은도 1에 도시된 바와 같이 네트워크(160)를 통해 컴퓨팅 디바이스들에 연결될 수 있고 그리고/또는 컴퓨팅 디바이스들(110, 120, 130 및 140) 중 어느 것에 직접 연결될 수 있다(미도시).
예시적인 방법들
본 발명의 다양한 양상들에 따른 동작들이 이제 설명될 것이다. 다음의 동작들이 하기에 설명된 정확한 순서로 수행될 필요가 없음이 이해되어야 한다. 오히려, 다양한 단계들이 역순으로 또는 동시에 처리될 수 있거나 또는 전혀 처리지 않을 수 있다.
복수의 사용자들에 의해 캡쳐된 다양한 장면들의 이미지들은 동일한 장면에 대응하고 결합될 때 적어도 하나의 공통적 패턴을 만족시키는 캡쳐된 이미지들을 클러스터들로 조직화하기 위해 하나 이상의 컴퓨팅 디바이스들에 의해 분석될 수 있다. 이미지들은 세 개의 공통적 패턴들 중 하나에 따라 사용자에 의해 캡쳐될 수 있다. 사용자들은 파노라마 패턴, 트랜슬레이션 패턴 또는 궤도 패턴을 수행함으로써 카메라로 장면의 이미지를 캡쳐할 수 있다. 예를 들어, 사용자는 단일 스폿에 서서 카메라를 터닝하면서 장면의 복수의 이미지들을 캡쳐하여, 파노라마 패턴을 수행할 수 있다. 클라이언트 컴퓨팅 디바이스(120)를 사용하는 사용자(220)와 같은 사용자는 장면의 이미지들을 캡쳐할 때 컴퓨팅 디바이스를 아크형 모션(arcing motion)으로 움직일 수 있다. 도 3은 카메라가 장착된 클라이언트 컴퓨팅 디바이스(120)를 패닝(panning)함으로써 장면(302)을 캡쳐하는 사용자의 예를 도시한다. 이에 관하여, 컴퓨팅 디바이스(120)는 장면(302)을 향해 카메라가 장착된 클라이언트 컴퓨팅 디바이스(120)의 시야(field of view)를 회전시키기 위해 축(301)을 중심으로 회전될 수 있다. 컴퓨팅 디바이스(120)가 다른 시야들(311 내지 314)을 통해 회전함에 따라, 장면(302)의 다른 부분들이 캡쳐될 수 있다.
또한, 사용자들은 선형 방향으로 이동하면서 장면의 복수의 이미지들을 캡쳐하여, 트랜슬레이션 패턴을 수행할 수 있다. 도 4는 장면(402)을 캡쳐할 때, 사용자(220)와 같은 사용자가 축(401)을 따라 선형 모션으로 컴퓨팅 디바이스(120)를 어떻게 움직일 수 있는지의 예를 도시한다. 이에 관하여, 컴퓨팅 디바이스(120)는 장면(402)을 향해 카메라가 장착된 클라이언트 컴퓨팅 디바이스(120)의 시야를 스위칭하기 위해 축(401)을 따라 이동될 수 있다. 컴퓨팅 디바이스(120)가 축(401)을 따라 이동함에 따라, 다른 시야들(411 내지 414)이 캡쳐될 수 있다.
추가적으로, 사용자는 장면을 중심으로 원형 방향으로 움직이면서 장면의 복수의 이미지들을 캡쳐하여, 궤도 패턴을 수행할 수 있다. 도 5는 사용자(220)와 같은 사용자가 장면(521)을 중심으로 원형 방향으로 컴퓨팅 디바이스(120)를 어떻게 움직일 수 있는지의 예를 도시한다. 이에 관하여, 사용자(220)는 장면(521)을 중심으로 523로부터 533까지의 경로를 따라 컴퓨팅 디바이스(120)를 이동시킬 수 있다. 컴퓨팅 디바이스(120)가 경로를 따라 이동함에 따라, 다른 시야들(511 내지 521)이 캡쳐될 수 있다.
또한, 하나 이상의 사용자들로부터 캡쳐된 이미지들은 패턴들로 결합될 수 있다. 예를 들어, 소정 장면의 캡쳐된 이미지들은 하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지들이 결합될 때 만족시키는 패턴의 타입에 기초하여, 클러스터들로 그룹화될 수 있다. 이에 관하여, 하나 이상의 사용자들로부터의 캡쳐된 이미지들의 그룹은 파노라마 패턴 클러스터, 트랜슬레이션 패턴 클러스터 및/또는 궤도 패턴 클러스터에 배치될 수 있다. 캡쳐된 이미지들을 그룹화할 시, 사진들(photos)의 그룹들이 작은 범위의 높이 내에서 촬영될 가능성이 높기 때문에 높이 차원(height dimension)(고도(altitude))은 생략될 수 있다. 따라서, 캡쳐된 이미지들의 그룹화는 횡면(lateral plane) 및 종면(longitudinal plane)을 나타내는 2 차원 평면에 기초할 수 있다.
파노라마 패턴 클러스터들을 결정하기 위해, 카메라가 제1 캡쳐된 이미지를 캡쳐한 좌표들을 나타내는 제1 파노라마 센터가 결정된다. 이에 관하여, 도 6a에 도시된 바와 같이, 약 3 미터 또는 3 미터 가량(more or less)과 같은 설정된 반경으로 제1 파노라마 센터를 중심으로 원형 거리를 계산함으로써 제1 파노라마 센터를 중심으로 제1 파노라마 서클이 발견될 수 있다. 이 예에서, 제1 파노라마 센터 A는 제1 캡쳐된 이미지(611)가 캡쳐된 (X1, Y1)에서 발견될 수 있다. 갱신된 파노라마 센터들이 제1 파노라마 서클(605) 내에서 각각의 추가적인 캡쳐된 이미지(613 및 615)로 제1 파노라마 센터 A의 좌표들을 반복적으로 평균화함으로써 발견될 수 있다. 제1 파노라마 서클(605)은 (X1,Y1)에서의 캡쳐 포인트 A 및 (X2,Y2)에서의 캡쳐 포인트 C로부터 캡쳐된 이미지들을 포함한다. 반복들은 업데이트된 파노라마 센터 좌표들이 수렴(converge)할 때까지 또는 30번 또는 30번 가량(more or less)의 반복들과 같이 설정된 임계의 반복들이 수행될 때까지 수행될 수 있다.
그 다음, 최종 파노라마 서클이 제1 파노라마 서클 내에 있던 캡쳐된 이미지들을 가능한 많이 포함하도록 갱신된 센터 좌표들을 중심으로 발견될 수 있다. 도 6a에 도시된 예에서, 최종 파노라마 서클(607)은 캡쳐 포인트 A에서 캡쳐된 이미지들(611 및 615) 및 캡쳐 포인트 C에서 캡쳐된 이미지(613)를 포함하도록 결정될 수 있다. 추가적인 최종 파노라마 서클(609)이 (X3, Y3)에서의 포인트 B에서 캡쳐된 것들과 같이 결정된 최종 파노라마 서클 내에 속하지 않는 캡쳐된 이미지들에 상기 프로세스를 반복적으로 수행함으로써 발견될 수 있다. 이 프로세스는 모든 캡쳐된 이미지들이 최종 파노라마 서클들 내에 있을 때까지 수행될 수 있다. 일부 경우들에서, 최종 파노라마 서클은 단 하나의 캡쳐된 이미지를 포함할 수 있다.
파노라마 패턴 클러스터들은 특정 임계 값 기준을 만족시키는 최종 파노라마 서클들을 유지함으로써 결정될 수 있다. 이에 관하여, 8 개 또는 8개 가량과 같은 임계 수의 캡쳐된 이미지들보다 적은 수를 포함하는 최종 파노라마 서클은 무시될 수 있다. 추가적으로, 적어도 임계 수의 캡쳐된 이미지들을 포함하는 어떤 최종 파노라마 서클들은 각각의 최종 파노라마 서클 내의 캡쳐된 이미지들에 의해 커버되는 시야각, 시야의 전체 각도가 도 6b에 도시된 바와 같이 임계 각도 값보다 큰 시야각을 포함하는지를 결정하기 위해 분석될 수 있다. 도 6b의 예에서, 각각 2 개의 최종 파노라마 서클들(607 및 609) 내의 캡쳐된 이미지들 사이의 시야각들(X2 및 X3)은 이들이 임계 각도 값을 만족시키는지를 알기 위해 결정될 수 있다. 상기 기준 중 적어도 하나 또는 둘 모두를 만족시키는 모든 최종 파노라마 서클들이 파노라마 패턴 클러스터로 고려될 수 있다.
트랜슬레이션 패턴 클러스터를 결정하기 위해, 서로의 설정된 각도 임계 내에 있는 캡쳐된 이미지들이 결정될 수 있다. 예를 들어, 제1 캡쳐된 이미지에 대해, 도 7a에 도시된 바와 같이, 장면에 대해 수평축을 따라 제1 캡쳐된 이미지의 좌 및 우에 가장 근접한 이웃하는 캡쳐된 이미지들의 초기 후보 세트가 결정될 수 있다. 도 7a의 예에서, 제1 캡쳐된 이미지 A, 및 초기 후보 세트 내의 캡쳐된 이미지들, 여기서는 이미지 B 내지 E, 이미지들이 캡쳐될 때 카메라 센터가 포인팅된 방향이 결정될 수 있다. 도 7b에 도시된 바와 같이, 방향이 제1 캡쳐된 이미지로부터 예를 들어 약 36도 또는 35도 가량의 임계 각도보다 큰 각도에 있는 초기 후보 세트 내의 각각의 캡쳐된 이미지는 폐기될 수 있어서, 나머지 이미지들은 일반적으로 동일한 각도로부터 캡쳐된 이미지들이다. 이에 관하여, 제1 캡쳐된 이미지 A는 90도의 각도 X1에 있을 수 있고, 이미지 C는 45도의 각도 X2에 있을 수 있다. 따라서, 이미지 C는 차이가 설정된 각도 임계보다 크기 때문에 초기 후보 세트로부터 폐기될 수 있다. 그 다음, 초기 후보 세트는 제1 캡쳐 이미지에 가장 가까운 초기 후보 세트의 캡쳐된 이미지들 중 6 개 또는 6 개 가량과 같은 미리 결정된 수를 포함하는 감소된 후보 세트로 감소될 수 있다. 따라서, 감소된 후보 세트는 각각의 캡쳐된 이미지에 대해 계산될 수 있고 이와 관련될 수 있다.
감소된 후보 세트들은 잠재적인 트랜슬레이션 패턴 클러스터들을 생성하도록 확장될 수 있다. 예를 들어, 제1 캡쳐된 이미지로 시작하여, 제1 캡쳐된 이미지와 관련된 감소된 후보 세트 내의 각각의 캡쳐된 이미지가 분석될 수 있다. 설정된 각도 임계 값 내에 있고 장면에 대해 수평축을 따라 제1 캡쳐된 이미지의 좌측에 위치한 캡쳐된 이미지들은 잠재적인 트랜슬레이션 패턴 클러스터로 결합될 수 있다. 제1 캡쳐된 이미지와 관련된 감소된 후보 세트 내의 모든 캡쳐된 이미지들이 설정된 각도 임계 값을 만족시키거나 설정된 각도 임계 값 내에 있는 경우, 제1 캡쳐된 이미지의 바로 좌측에 캡쳐된 이미지와 관련된 이웃하는 후보 세트 내의 캡쳐된 이미지들이 또한 분석될 수 있다. 각도 임계 값을 만족하는 이웃하는 후보 세트의 각각의 캡쳐된 이미지는 잠재적인 트랜슬레이션 클러스터에 배치될 수 있다. 예를 들어, 현재 분석된 캡쳐된 이미지의 바로 좌측에 캡쳐된 이미지들과 관련된 이웃하는 후보 세트는 캡쳐된 이미지들이 현재 분석된 이미지의 각도 임계 값을 만족하는지 또는 상기 각도 임계 값 내에 있는지를 결정하기 위해 현재 분석된 이미지들에 가장 가까운 이미지들로 시작하여 반복적으로 분석될 수 있다. 이는 이웃하는 후보 세트들 내의 캡쳐된 이미지들 중 하나가 현재 분석된 이미지의 각도 임계 값을 만족시키지 않거나 상기 각도 임계 값 내에 있지 않을 때까지 계속될 수 있다. 그 다음, 현재 분석된 이미지의 각도 임계 값을 만족하는 모든 분석된 캡쳐된 이미지들은 잠재적인 트랜슬레이션 패턴 클러스터에 포함될 수 있다. 그 다음, 동일한 프로세스가 제1 캡쳐된 이미지의 우측에 있는 이미지들을 발견하기 위해 수행될 수 있다.
트랜슬레이션 패턴 클러스터들은 추가적인 임계 기준을 만족시키는 잠재적인 트랜슬레이션 패턴 클러스터들을 유지함으로써 결정될 수 있다. 이에 관하여, 8 개 또는 8 개 가량과 같은 임계 수의 캡쳐된 이미지들보다 적은 수를 포함하는 잠재적인 트랜슬레이션 패턴 클러스터들이 무시될 수 있다. 적어도 임계 수의 캡쳐된 이미지들을 포함하는 잠재적인 트랜슬레이션 패턴 클러스터들은 트랜슬레이션 패턴 클러스터들로 고려될 수 있다.
궤도 패턴 클러스터들을 결정하기 위해, 하나 이상의 궤도 객체 센터들을 향하여 지향되고 궤도 객체 센터들을 중심으로 매끄러운 트랜슬레이션을 제공하는 캡쳐된 이미지들이 발견된다. 예를 들어, 캡쳐된 이미지들은 중첩 이미지 데이터를 갖는 캡쳐된 이미지들의 그룹들을 결정하기 위해 비교될 수 있다. 중첩 이미지 데이터는 특징 검출 알고리즘들 및 SfM(Structure from Motion) 알고리즘들과 같은 컴퓨터 비전 알고리즘들을 사용하여 발견될 수 있다. 이에 관련하여, 캡쳐된 이미지들 각각에 대한 특징 포인트들이 결정될 수 있다. 각각의 캡쳐된 이미지의 특징 포인트들은 SfM 알고리즘들을 사용하여 비교되어 포인트들 중 어느 것이 공통적인지를 결정할 수 있는 바, 이는 이들이 중첩 이미지 데이터를 포함한다는 것을 의미한다. 중첩 이미지 데이터를 포함하는 캡쳐된 이미지들의 그룹들은 이웃하는 이미지들인 것으로 고려된다.
궤도 객체 센터들은 캡쳐되는 이미지들이 도 8에 도시된 바와 같이 각각의 캡쳐된 이미지를, 이미지가 캡쳐된 위치로부터 그리고 캡쳐될 때 카메라 센터가 포인팅된 방향으로 발산되는 광선으로 고려함으로써 결정될 수 있다. 이 예에서, 그 다음, 이웃하는 이미지들 A 내지 E의 광선들 사이의 교차 포인트들이 발견될 수 있다. 그 다음, 클러스터링 알고리즘은 충분한 레벨의 교차 포인트들을 갖는 영역(803)을 결정함으로써 궤도 객체 센터들을 발견하기 위해 이용될 수 있다. 일례에서, 교차 광선들로 조밀하게 채워진 영역들에 대한 센터 포인트들을 결정하는 K-평균 클러스터링 알고리즘(K-means clustering algorithm)이 궤도 객체 센터 좌표들을 결정하기 위해 사용될 수 있다.
궤도 패턴 클러스터들은 궤도 객체 센터들과 캡쳐된 이미지들을 관련시킴으로써 결정될 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 각각의 궤도 객체 센터에 대하여, 궤도 객체 센터(803)에 위치한 장면(801)의 일부와 관련된 이미지 데이터를 포함하는 캡쳐된 이미지들은 그 궤도 객체 센터와 관련될 수 있다. 그 다음, 각각의 궤도 객체 센터(803)와 관련된 캡쳐된 이미지들 A, B, C 및 D는 함께 그룹화될 수 있다. 일례에서, 각각의 궤도 객체 센터와 관련된 캡쳐된 이미지들은 매끄러운 전환(smooth transformation)을 갖는 캡쳐된 이미지들을 병합하기 위해 서로소 집합(disjoint-set) 데이터 구조를 사용함으로써 함께 그룹화될 수 있다. 매끄러운 전환은 관련된 궤도 객체 센터에 대한 두 개의 캡쳐된 이미지 중 첫 번째와 두 번째 사이의 거리를 발견함으로써 결정될 수 있다. 2 개의 캡쳐된 이미지들 사이의 거리의 차이가 궤도 센터에 가까운 캡쳐된 이미지에 대한 궤도 센터까지의 거리의 약 1/2 내지 약 3/4보다 크지 않으면, 2 개의 캡쳐된 이미지들은 매끄러운 전환을 갖는 것으로 고려될 수 있다. 이에 관하여, 캡쳐된 이미지들의 복수의 그룹들이 궤도 객체 센터들과 관련될 수 있다.
궤도 패턴 클러스터들은 특정 임계 기준을 만족시키는 캡쳐된 이미지들의 그룹들을 유지함으로써 결정될 수 있다. 이에 관하여, 8 개 또는 8 개 가량과 같은 임계 개수의 캡쳐된 이미지들보다 적은 수를 포함하는 캡쳐된 이미지들의 그룹들은 무시될 수 있다. 적어도 임계 개수의 캡쳐된 이미지들을 포함하는 캡쳐된 이미지들의 그룹들은, 각각의 이미지들의 그룹 내의 캡쳐된 이미지들에 의해 커버되는 시야각이 임계 값보다 큰 시야각을 포함하는지를 결정하기 위해 분석될 수 있다. 상기 임계 기준 중 적어도 하나 또는 둘 모두를 만족시키는 모든 이미지들의 그룹들은 궤도 패턴 클러스터로 고려될 수 있다.
결정된 클러스터들 내의 하나 이상의 캡쳐된 이미지들은 컴퓨팅 디바이스의 디스플레이 상에 보여질 수 있다. 이에 관하여, 사용자는 서로 다른 클러스터들 간에 또는 단일 클러스터 내에서 네비게이션할 수 있다. 예를 들어, 현재 보여 지지 않은 클러스터들을 나타내는 클릭 타겟들이 사용자가 클러스터들 간에 스위칭할 수 있도록 디스플레이에 제공될 수 있다. 클릭 타겟들은 마우스 포인트를 사용하여 타겟을 클릭하거나 터치 감응형 스크린을 탭핑함으로써 활성화될 수 있다. 추가적으로, 현재 보여지는 클러스터 내에서 이웃하는 이미지들을 나타내는 드래그 타겟들이 사용자에게 제공되어 사용자가 현재 보여지는 클러스터 내에서 네비게이션할 수 있게 한다. 드래그 타겟들은 마우스 포인트를 사용하여 타겟을 드래그하거나 터치 감응형 스크린을 탭핑함으로써 활성화될 수 있다.
클릭 타겟들은 현재 선택된 클러스터에 기초하여 결정될 수 있다. 예를 들어, 사용자는 보기 위한 초기 클러스터를 선택할 수 있다. 초기 클러스터 내의 캡쳐된 이미지가 컴퓨팅 디바이스 상에 디스플레이될 수 있다. 초기 클러스터 외부에서 현재 디스플레이되는 캡쳐된 이미지에 대한 하나 이상의 이웃하는 캡쳐된 이미지들은 도 11에 도시된 바와 같이 하나 이상의 클릭 타겟들로 할당될 수 있다. 이에 관하여, 하나 이상의 이웃하는 캡쳐된 이미지들은 이웃하는 이미지가 현재 디스플레이되는 캡쳐된 이미지(112)보다 장면에 가까운 위치로부터 캡쳐된 경우, 클릭 타겟(1130)으로서 할당될 수 있다. 하나 이상의 이웃하는 캡쳐된 이미지가 장면에 더 가까운 위치로부터 캡쳐된 경우, 현재 디스플레이되는 캡쳐된 이미지(1120)에 가장 가까운 하나 이상의 이웃하는 캡쳐된 이미지들 중의 캡쳐된 이미지가 클릭 타겟(1130)이 될 수 있다. 따라서, 사용자(1110)가 클릭 타겟(1130)을 선택하면, 컴퓨팅 디바이스(120)의 디스플레이(122)는 현재 디스플레이되는 캡쳐된 이미지(1120)로부터 그 클릭 타겟과 관련된 할당된 가장 가까운 캡쳐된 이미지로 스위칭한다. 새로운 클릭 타겟들은 사용자가 클러스터들 그리고/또는 디스플레이되는 캡쳐된 이미지들 간에 스위칭할 때마다 결정될 수 있다.
드래그 타겟을 사용하여 파노라마 패턴 클러스터 내에서 네비게이션을 제공하기 위해, 드래그 타겟 비용은 현재 클러스터 내에서 현재 디스플레이되는 캡쳐된 이미지에 가장 가까운 각각의 캡쳐된 이미지에 대해 컴퓨팅될 수 있다. 이에 관하여, 드래그 타겟 비용은 다양한 비용 항목(term)들을 포함할 수 있다. 이러한 비용 항목들은 현재 디스플레이되는 캡쳐된 이미지와 현재 디스플레이되는 캡쳐된 이미지에 가장 근접한 캡쳐된 이미지들 사이의 픽셀들의 트랜슬레이션 및 회전 "흐름"의 유동장(flow fields)과 관계될 수 있다. 중첩 비용과 같은 흐름에 기반하지 않는 다른 비용 항목이 또한 사용될 수 있다. 일례에서, 타겟 이미지는 가능한 많이 기준 이미지와 중첩되어야 한다. 따라서, 중첩 비용은 2 개의 비용 값들, 즉 (1) 얼마 많은 부분의 기준 이미지가 타겟 이미지와 중첩하는지 및 (2) 얼마나 많은 부분의 타겟 이미지가 기준 이미지와 중첩하는지를 포함할 수 있다. 중첩이 증가함에 따라 중첩 비용이 감소할 수 있다. 따라서 이 비용 값은 반전 값일 수 있다. 각각의 캡쳐된 이미지에 대해, 캡쳐된 이미지 각각에 대한 드래그 타겟 비용을 생성하기 위해 비용이 합성될(compounded) 수 있다.
일례에서, 도 9에 도시된 바와 같이, 각각의 드래그 벡터 방향에 대해 최저 드래그 타겟 비용을 갖는 이미지는 그 드래그 벡터 방향을 따라 드래그 타겟이 될 수 있다. 따라서, 사용자(910)가 드래그 벡터 방향(930)을 따라, 컴퓨팅 디바이스(120)의 디스플레이(122)를 패닝할 때, 현재 디스플레이되는 캡쳐된 이미지(920)는 최저 드래그 타겟 비용으로 드래그 타겟에 스위칭할 수 있다.
궤도 및 트랜슬레이션 패턴 클러스터들 내에서 네비게이션하기 위해, 현재 디스플레이되는 캡쳐된 이미지의 좌 그리고 우에 이웃하는 캡쳐된 이미지들이 발견된다. 예를 들어, 현재 디스플레이되는 클러스터에 대한 센터 포인트가 결정될 수 있다. 도 10으로 전환하여, 현재 디스플레이되는 캡쳐된 이미지 A 및 하나 이상의 이웃하는 캡쳐된 이미지들 B 및 C의 시야각 X1은 각각의 이미지로부터 센터 포인트까지의 시야각을 계산함으로써 발견될 수 있다. 현재 디스플레이되는 이미지 A의 시야각 X1으로부터, 예를 들어 약 30도 만큼 크게 벗어난 시야각을 갖는 이미지들은 폐기될 수 있다. 이웃하는 이미지들 B 및 C의 시야각들 X2 및 X3은 이미지들이 현재 디스플레이되는 이미지의 좌측 또는 우측에 위치되는지를 결정하기 위해 현재 디스플레이되는 이미지 A의 시야각 X1과 비교될 수 있다.
궤도 및 트랜슬레이션 패턴 클러스터들 내의 이웃하는 이미지들은 현재 디스플레이되는 이미지에 대해 좌 또는 우 드래그 타겟이 될 수 있다. 이에 관하여, 타겟 드래그 거리에 가장 가까운 이웃하는 이미지들은 좌 또는 우 드래그 타겟들이 될 수 있다. 타겟 드래그 거리는 약 0도 내지 30도 또는 0도 내지 30도 가량일 수 있다. 그 다음, 좌측으로든 또는 우측으로든, 각각의 이웃하는 이미지와 현재 디스플레이되는 이미지 사이의 시야각 차이로서 계산되는 타겟 드래그 거리에 가장 가까운 이웃하는 이미지는 각각 좌 및 우 드래그 타겟들이 될 수 있다. 따라서, 사용자가 디스플레이를 좌로 또는 우로 패닝할 때, 좌 또는 우 드래그 타겟은 각각 컴퓨팅 디바이스 상에 디스플레이될 수 있다.
도 12의 흐름도(1200)는 클라이언트 컴퓨팅 디바이스들(120, 130, 또는 140)과 같은 하나 이상의 컴퓨팅 디바이스들에 의해 수행될 수 있는 전술한 양상들 중 일부의 예시적인 흐름도이다. 여기서 논의되는 단계들이 단지 예시적인 것이며, 이 단계들은 다른 순서로 발생할 수 있고, 단계들이 추가될 수 있으며, 단계들은 생략될 수 있음이 이해될 것이다. 이 예에서, 블록(1202)에서, 캡쳐된 이미지들의 세트가 액세스될 수 있다. 그 다음, 하나 이상의 컴퓨팅 디바이스들은 블록(1204)에 도시된 바와 같이, 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족하는지를 검출할 수 있다. 블록(1206)에 도시된 바와 같이, 검출된 패턴에 기초하여 이미지들은 하나 이상의 클러스터들로 그룹화될 수 있다 블록(1208)에 도시된 바와 같이, 수신되는 하나 이상의 클러스터들의 제1 클러스터를 디스플레이하기 위한 요청이 디스플레이를 위해 선택될 수 있다. 블록(1210)에 도시된 바와 같이, 제1 캡쳐된 이미지가 디스플레이를 위해 선택될 수 있다. 그 다음, 블록(1212)에 도시된 바와 같이, 선택된 제1 캡쳐된 이미지가 디스플레이를 위해 제공될 수 있다.
본 명세서의 기술이 특정 실시예들을 참조하여 설명되었지만, 이들 실시예들은 단지 본 기술의 원리들 및 애플리케이션들의 예시적인 것임이 이해되어야 한다. 따라서, 예시적인 실시예들에 대해 많은 수정이 이루어질 수 있으며, 다른 구성들이 첨부된 특허 청구 범위에 의해 정의된 바와 같은 본 기술의 사상 및 범위를 벗어남이 없이 도출될 수 있음이 이해되어야 한다.

Claims (20)

  1. 이미지 클러스터들을 조직화하고 네비게이션하는 방법으로서,
    하나 이상의 프로세싱 디바이스들에 의해, 캡쳐된 이미지들의 세트에 액세스하는 단계와;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족시키는지를 검출하는 단계와;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 검출된 미리 결정된 패턴에 따라 상기 캡쳐된 이미지들의 세트 내의 이미지들을 하나 이상의 클러스터들로 그룹화하는 단계와;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하는 단계와;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 요청에 응답하여, 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 디스플레이하기 위해 선택하는 단계와; 그리고
    상기 제1 클러스터로부터의 제1 캡쳐된 이미지를 디스플레이하기 위해 제공하는 단계를 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  2. 제1항에 있어서,
    상기 미리 결정된 패턴은 파노라마 패턴(panoramic pattern), 궤도 패턴(orbit pattern),및 트랜슬레이션 패턴(translation pattern) 중 하나인 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 제1 클러스터 내의 이미지들로부터 상기 제1 캡쳐된 이미지에 미리 결정된 근접도(proximity) 내에 있는 이웃하는 캡쳐된 이미지들의 세트를 결정하는 단계와;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 단계와; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 클릭 또는 드래그 이벤트에 응답하여 상기 하나 이상의 이웃하는 이미지들을 제공하는 단계를 더 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  4. 제1항에 있어서,
    상기 미리 결정된 패턴은 파노라마 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 단계는:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트에서 각각의 가능한 파노라마 서클(panoramic circle)을 식별하는 것 - 각각의 가능한 파노라마 서클은 상기 캡쳐된 이미지들의 세트의 서브세트와 관련되고 캡쳐된 이미지들의 상기 서브세트에 대한 시야각(view angle)을 가짐 - 과; 그리고
    가능한 파노라마 서클들 중 (i) 캡쳐된 이미지들의 상기 서브세트의 수가 미리 결정된 수보다 적고, (ii) 상기 시야각이 미리 결정된 각도보다 작은 파노라마 서클을 제거하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  5. 제4항에 있어서,
    각각의 가능한 파노라마 서클을 식별하는 것은:
    캡쳐된 이미지들 중 하나에 대한 좌표를 중심으로 초기 파노라마 서클을 설정하는 것과;
    상기 초기 파노라마 서클 내의 캡쳐된 이미지들로부터의 좌표들을 평균화(averaging)함으로써 초기 파노라마 서클 센터 좌표를 수정(revising)하는 것과;
    임계 수의 수정들이 발생될 때까지 또는 상기 파노라마 서클 센터 좌표가 단일 포인트로 수렴(converge)할 때까지 수정을 반복하는 것과; 그리고
    상기 수정된 파노라마 서클 센터 좌표를 중심으로 최종 파노라마 서클을 설정하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  6. 제1항에 있어서,
    상기 미리 결정된 패턴이 궤도 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 단계는:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 각각의 이미지에 대해, 이미지가 캡쳐된 위치로부터 그리고 캡쳐되는 이미지가 촬영될 때 카메라 센터가 포인팅된 방향으로 발산되는 광선(ray)을 식별하는 것과;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 각각의 광선 간의 교차 포인트들을 계산하는 것과; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 교차 포인트들의 밀도들에 기초하여 궤도 센터들을 결정하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  7. 제6항에 있어서,
    각각의 식별된 궤도 센터에 대해:
    상기 궤도 센터를 포함하지 않는 이미지들을 필터링(filtering out)하는 단계와;
    나머지 이미지들을 그룹들로 나누는 단계(dividing) - 이 그룹들에서 나머지 이미지들은 상기 궤도 센터를 중심으로 매끄러운 트랜슬레이션(smooth translation)을 가짐 - 와;
    적어도 미리 결정된 수의 이미지들을 포함하지 않고 임계 수렴각을 만족시키지 않는 그룹들을 제거하는 단계를 더 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  8. 제1항에 있어서,
    상기 미리 결정된 패턴은 트랜슬레이션 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 단계는:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 각각의 이미지에 대해, 인접한 초기 세트의 후보 이미지들을 식별하는 것과; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 각각의 이미지에 대해, 상기 이미지에 가장 가깝게 위치되고 상기 이미지의 시야각의 각도 임계 내에 있는, 상기 초기 세트의 후보 이미지들 내의 후보 이미지들을 보존(reserving)하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  9. 제3항에 있어서,
    파노라마 패턴에 대해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 단계는 최저 드래그 타겟 비용을 갖는 하나 이상의 이웃하는 이미지들을 결정하는 것을 포함하고, 상기 드래그 타겟 비용은:
    드래그 백터 방향을 결정하고;
    사익 드래그 벡터 방향의 방향에 있는 하나 이상의 이웃하는 이미지들의 그룹을 보존하고;
    상기 하나 이상의 프로세싱 디바이스에 의해, 상기 제1 캡쳐된 이미지와 상기 하나 이상의 이웃하는 이미지들의 그룹 내의 하나 이상의 이웃하는 이미지들 각각과의 사이의 중첩량(amount of overlap)을 식별하고; 그리고
    최고 중첩량을 갖는 이웃하는 이미지들을 선택함으로써 계산되는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  10. 제3항에 있어서,
    궤도 및 트랜슬레이션 패턴에 대해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 단계는 미리 결정된 타겟 거리에 가장 가까운 타겟 거리를 갖는 하나 이상의 이웃하는 이미지들을 결정하는 것을 포함하고, 이웃하는 이미지들의 세트 내의 각각의 캡쳐된 이미지에 대한 타겟 거리는:
    상기 하나 이상의 프로세싱 디바이스에 의해, 이미지가 캡쳐된 위치로부터 그리고 카메라가 포인팅된 방향으로 발산되는 광선을 식별하고;
    상기 하나 이상의 프로세싱 디바이스에 의해, 상기 제1 캡쳐된 각도와 이웃하는 이미지들의 세트 내의 각각의 캡쳐된 이미지와의 사이의 각도 차이를 결정하고;
    상기 하나 이상의 프로세싱 디바이스에 의해, 상기 각도 차이에 기초하여 상기 제1 캡쳐된 이미지의 좌 및 우로 이웃하는 이미지들의 세트 내의 각각의 캡쳐된 이미지를 그룹화하고; 그리고
    상기 하나 이상의 프로세싱 디바이스에 의해, 타겟 거리를 결정함으로써 결정되는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 방법.
  11. 이미지 클러스터들을 조직화하고 네비게이션하는 시스템으로서,
    하나 이상의 컴퓨팅 디바이스들과; 그리고
    상기 하나 이상의 컴퓨팅 디바이스들에 의해 실행가능한 명령어들을 저장한 메모리를 포함하며, 상기 명령어들은:
    하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지들의 세트에 액세스하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족시키는지를 검출하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 검출된 미리 결정된 패턴에 따라 상기 캡쳐된 이미지들의 세트 내의 이미지들을 하나 이상의 클러스터들로 그룹화하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 요청에 응답하여, 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 디스플레이하기 위해 선택하는 것과; 그리고
    상기 제1 클러스터로부터의 제1 캡쳐된 이미지를 디스플레이하기 위해 제공하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  12. 제11항에 있어서,
    상기 미리 결정된 패턴은 파노라마 패턴, 궤도 패턴, 트랜슬레이션 패턴 중 하나인 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  13. 제11항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 제1 클러스터 내의 이미지들로부터 상기 제1 캡쳐된 이미지에 미리 결정된 근접도 내에 있는 이웃하는 캡쳐된 이미지들의 세트를 결정하는 것과;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 것과; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 클릭 또는 드래그 이벤트에 응답하여 상기 하나 이상의 이웃하는 이미지들을 제공하는 것을 더 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  14. 제11항에 있어서,
    상기 미리 결정된 패턴은 파노라마 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 것은:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트에서 각각의 가능한 파노라마 서클을 식별하는 것 - 각각의 가능한 파노라마 서클은 상기 캡쳐된 이미지들의 세트의 서브세트와 관련되고 캡쳐된 이미지들의 상기 서브세트에 대한 시야각을 가짐 - 과; 그리고
    가능한 파노라마 서클들 중 (i) 캡쳐된 이미지들의 상기 서브세트의 수가 미리 결정된 수보다 적고, (ii) 상기 시야각이 미리 결정된 각도보다 작은 파노라마 서클을 제거하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  15. 제14항에 있어서,
    각각의 가능한 파노라마 서클을 식별하는 것은:
    캡쳐된 이미지들 중 하나에 대한 좌표를 중심으로 초기 파노라마 서클을 설정하는 것과;
    상기 초기 파노라마 서클 내의 캡쳐된 이미지들로부터의 좌표들을 평균화함으로써 초기 파노라마 서클 센터 좌표를 수정하는 것과;
    임계 수의 수정들이 발생될 때까지 또는 상기 파노라마 서클 센터 좌표가 단일 포인트로 수렴할 때까지 수정을 반복하는 것과; 그리고
    상기 수정된 파노라마 서클 센터 좌표를 중심으로 최종 파노라마 서클을 설정하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  16. 제11항에 있어서,
    상기 미리 결정된 패턴이 궤도 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 단계는:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 각각의 이미지에 대해, 이미지가 캡쳐된 위치로부터 그리고 캡쳐되는 이미지가 촬영될 때 카메라 센터가 포인팅된 방향으로 발산되는 광선을 식별하는 것과;
    상기 하나 이상의 프로세싱 디바이스들에 의해, 각각의 광선 간의 교차 포인트들을 계산하는 것과; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 교차 포인트들의 밀도들에 기초하여 궤도 센터들을 결정하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  17. 제16항에 있어서,
    각각의 식별된 궤도 센터에 대해:
    상기 궤도 센터를 포함하지 않는 이미지들을 필터링하는 것과;
    나머지 이미지들을 그룹들로 나누는 것 - 이 그룹들에서 나머지 이미지들은 상기 궤도 센터를 중심으로 매끄러운 트랜슬레이션을 가짐 - 과;
    적어도 미리 결정된 수의 이미지들을 포함하지 않고 임계 수렴각을 만족시키지 않는 그룹들을 제거하는 것을 더 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  18. 제11항에 있어서,
    상기 미리 결정된 패턴은 트랜슬레이션 패턴이고, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 상기 미리 결정된 패턴을 만족시키는지를 검출하는 것은:
    상기 하나 이상의 프로세싱 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 각각의 이미지에 대해, 인접한 초기 세트의 후보 이미지들을 식별하는 것과; 그리고
    상기 하나 이상의 프로세싱 디바이스들에 의해, 각각의 이미지에 대해, 상기 이미지에 가장 가깝게 위치되고 상기 이미지의 시야각의 각도 임계 내에 있는, 상기 초기 세트의 후보 이미지들 내의 후보 이미지들을 보존하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  19. 이미지 클러스터들을 조직화하고 네비게이션하는 시스템으로서,
    하나 이상의 컴퓨팅 디바이스들과; 그리고
    상기 하나 이상의 컴퓨팅 디바이스들에 의해 실행가능한 명령어들을 저장한 메모리를 포함하며, 상기 명령어들은:
    하나 이상의 컴퓨팅 디바이스들에 의해, 캡쳐된 이미지들의 세트에 액세스하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 세트 내의 이미지들이 미리 결정된 패턴을 만족시키는지를 검출하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 검출된 미리 결정된 패턴에 따라 상기 캡쳐된 이미지들의 세트 내의 이미지들을 하나 이상의 클러스터들로 그룹화하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 캡쳐된 이미지들의 하나 이상의 클러스터들 중 제1 클러스터를 디스플레이하기 위한 요청을 수신하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 요청에 응답하여, 상기 제1 클러스터로부터 제1 캡쳐된 이미지를 디스플레이하기 위해 선택하는 것과; 그리고
    상기 제1 클러스터로부터의 제1 캡쳐된 이미지를 디스플레이하기 위해 제공하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 제1 클러스터 내의 이미지들로부터 상기 제1 캡쳐된 이미지에 미리 결정된 근접도 내에 있는 이웃하는 캡쳐된 이미지들의 세트를 결정하는 것과;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 이웃하는 캡쳐된 이미지들의 세트로부터 상기 제1 캡쳐된 이미지의 하나 이상의 이웃하는 이미지들을 할당하는 것과; 그리고
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 클릭 또는 드래그 이벤트에 응답하여 상기 하나 이상의 이웃하는 이미지들을 제공하는 것을 포함하는 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
  20. 제19항에 있어서,
    상기 미리 결정된 패턴은 파노라마 패턴,궤도 패턴,및 트랜슬레이션 패턴 중 하나인 것을 특징으로 하는 이미지 클러스터들을 조직화하고 네비게이션하는 시스템.
KR1020177023248A 2015-03-27 2015-03-27 클러스터 기반의 포토 네비게이션 KR102056417B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/075241 WO2016154808A1 (en) 2015-03-27 2015-03-27 Cluster based photo navigation

Publications (2)

Publication Number Publication Date
KR20170132134A true KR20170132134A (ko) 2017-12-01
KR102056417B1 KR102056417B1 (ko) 2020-01-22

Family

ID=56974190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177023248A KR102056417B1 (ko) 2015-03-27 2015-03-27 클러스터 기반의 포토 네비게이션

Country Status (8)

Country Link
US (2) US9740936B2 (ko)
EP (1) EP3275171A4 (ko)
JP (1) JP6505242B2 (ko)
KR (1) KR102056417B1 (ko)
CN (1) CN107251540B (ko)
DE (1) DE112015006075T5 (ko)
GB (1) GB2551667A (ko)
WO (1) WO2016154808A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112015006075T5 (de) * 2015-03-27 2017-11-30 Google Inc. Cluster-basierte fotonavigation
US10698558B2 (en) * 2015-07-15 2020-06-30 Fyusion, Inc. Automatic tagging of objects on a multi-view interactive digital media representation of a dynamic entity
US20200151453A1 (en) * 2018-11-08 2020-05-14 International Business Machines Corporation Reducing overlap among a collection of photographs
CN110083732B (zh) * 2019-03-12 2021-08-31 浙江大华技术股份有限公司 图片检索方法、装置及计算机存储介质
CN110414569B (zh) * 2019-07-03 2022-04-08 北京小米智能科技有限公司 聚类实现方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293996A (ja) * 2005-02-28 2006-10-26 Microsoft Corp 画像メタデータおよび空間情報に基づく判断基準を使用した自動デジタル画像グルーピング
JP2008276668A (ja) * 2007-05-07 2008-11-13 Sony Corp 画像管理装置、画像表示装置、撮像装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラム
JP2012048204A (ja) * 2010-07-28 2012-03-08 Canon Inc 画像を表示するための表示制御装置、表示制御方法、プログラム及び記憶媒体

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991410A (ja) * 1995-09-26 1997-04-04 Canon Inc パノラマ画像合成システム
US6078701A (en) * 1997-08-01 2000-06-20 Sarnoff Corporation Method and apparatus for performing local to global multiframe alignment to construct mosaic images
WO2005099423A2 (en) * 2004-04-16 2005-10-27 Aman James A Automatic event videoing, tracking and content generation system
US6788333B1 (en) * 2000-07-07 2004-09-07 Microsoft Corporation Panoramic video
GB2373887A (en) * 2001-03-28 2002-10-02 Hewlett Packard Co Context dependent operation, including power management, of a mobile computer
KR100627066B1 (ko) 2004-11-10 2006-09-25 삼성테크윈 주식회사 디지털 저장장치의 이미지 검색 방법
US7594177B2 (en) * 2004-12-08 2009-09-22 Microsoft Corporation System and method for video browsing using a cluster index
US7737995B2 (en) 2005-02-28 2010-06-15 Microsoft Corporation Graphical user interface system and process for navigating a set of images
US7904455B2 (en) 2005-11-03 2011-03-08 Fuji Xerox Co., Ltd. Cascading cluster collages: visualization of image search results on small displays
WO2007127814A2 (en) * 2006-04-25 2007-11-08 Google, Inc. Identifying geo-located objects
US20080118160A1 (en) 2006-11-22 2008-05-22 Nokia Corporation System and method for browsing an image database
GB0625455D0 (en) * 2006-12-20 2007-01-31 Mitsubishi Electric Inf Tech Graph-based multiple panorama extraction from unordered image sets
US8260036B2 (en) 2007-05-09 2012-09-04 Honeywell International Inc. Object detection using cooperative sensors and video triangulation
US8335384B2 (en) * 2007-09-27 2012-12-18 JVC Kenwood Corporation Apparatus for and method of processing image information to group image data pieces based on shooting intervals
WO2010061661A1 (ja) * 2008-11-25 2010-06-03 株式会社ソニー・コンピュータエンタテインメント 画像表示装置、画像表示方法及び情報記憶媒体
US20100231687A1 (en) * 2009-03-16 2010-09-16 Chase Real Estate Services Corporation System and method for capturing, combining and displaying 360-degree "panoramic" or "spherical" digital pictures, images and/or videos, along with traditional directional digital images and videos of a site, including a site audit, or a location, building complex, room, object or event
US20100250581A1 (en) * 2009-03-31 2010-09-30 Google Inc. System and method of displaying images based on environmental conditions
US8509519B2 (en) * 2009-07-29 2013-08-13 Intellectual Ventures Fund 83 Llc Adjusting perspective and disparity in stereoscopic image pairs
IL207116A (en) * 2009-08-10 2014-12-31 Stats Llc Location tracking method and method
KR20110052124A (ko) * 2009-11-12 2011-05-18 삼성전자주식회사 파노라마 이미지 생성 및 조회 방법과 이를 이용한 휴대 단말기
US8571331B2 (en) * 2009-11-30 2013-10-29 Xerox Corporation Content based image selection for automatic photo album generation
US20120154548A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Left/right image generation for 360-degree stereoscopic video
US8456467B1 (en) * 2011-11-11 2013-06-04 Google Inc. Embeddable three-dimensional (3D) image viewer
US20150029092A1 (en) * 2013-07-23 2015-01-29 Leap Motion, Inc. Systems and methods of interpreting complex gestures
US9819863B2 (en) * 2014-06-20 2017-11-14 Qualcomm Incorporated Wide field of view array camera for hemispheric and spherical imaging
CN104123339A (zh) 2014-06-24 2014-10-29 小米科技有限责任公司 图像管理方法及装置
DE112015006075T5 (de) * 2015-03-27 2017-11-30 Google Inc. Cluster-basierte fotonavigation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293996A (ja) * 2005-02-28 2006-10-26 Microsoft Corp 画像メタデータおよび空間情報に基づく判断基準を使用した自動デジタル画像グルーピング
JP2008276668A (ja) * 2007-05-07 2008-11-13 Sony Corp 画像管理装置、画像表示装置、撮像装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラム
JP2012048204A (ja) * 2010-07-28 2012-03-08 Canon Inc 画像を表示するための表示制御装置、表示制御方法、プログラム及び記憶媒体

Also Published As

Publication number Publication date
US10769441B2 (en) 2020-09-08
US20160283826A1 (en) 2016-09-29
GB201713806D0 (en) 2017-10-11
GB2551667A (en) 2017-12-27
KR102056417B1 (ko) 2020-01-22
EP3275171A1 (en) 2018-01-31
CN107251540A (zh) 2017-10-13
DE112015006075T5 (de) 2017-11-30
JP2018517312A (ja) 2018-06-28
WO2016154808A1 (en) 2016-10-06
US20180005036A1 (en) 2018-01-04
US9740936B2 (en) 2017-08-22
CN107251540B (zh) 2020-04-10
JP6505242B2 (ja) 2019-04-24
EP3275171A4 (en) 2018-11-21

Similar Documents

Publication Publication Date Title
US11481977B1 (en) Automatically generating panorama tours
US10769441B2 (en) Cluster based photo navigation
CN111081199B (zh) 选择用于显示的时间分布的全景图像
US9689703B2 (en) Presenting hierarchies of map data at different zoom levels
US8773424B2 (en) User interfaces for interacting with top-down maps of reconstructed 3-D scences
EP3058451B1 (en) Techniques for navigation among multiple images
CN110400337B (zh) 图像处理方法、装置、电子设备及存储介质
KR101965878B1 (ko) 시각적 피처들을 이용한 이미지들의 자동 연결
CN111709973A (zh) 目标跟踪方法、装置、设备及存储介质
CN113362441A (zh) 三维重建方法、装置、计算机设备和存储介质
US20150109328A1 (en) Techniques for navigation among multiple images
US10742947B2 (en) Display control system, display control device, display control method, and program
CN111652831B (zh) 对象融合方法、装置、计算机可读存储介质及电子设备
US9165339B2 (en) Blending map data with additional imagery
US10469745B1 (en) Dynamic 3D panoramas
CN114519786A (zh) 全景图像跳转位置确定方法、装置及计算机可读存储介质

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