KR20230008810A - 모바일 카메라로 파노라마 생성 - Google Patents

모바일 카메라로 파노라마 생성 Download PDF

Info

Publication number
KR20230008810A
KR20230008810A KR1020227042960A KR20227042960A KR20230008810A KR 20230008810 A KR20230008810 A KR 20230008810A KR 1020227042960 A KR1020227042960 A KR 1020227042960A KR 20227042960 A KR20227042960 A KR 20227042960A KR 20230008810 A KR20230008810 A KR 20230008810A
Authority
KR
South Korea
Prior art keywords
image
frames
image frames
interest
frame
Prior art date
Application number
KR1020227042960A
Other languages
English (en)
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 KR20230008810A publication Critical patent/KR20230008810A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/265Mixing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • 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/20212Image combination
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • 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/30168Image quality inspection
    • 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/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

이미지 프레임을 선택하고 스티칭하는 디바이스 및 방법이 제공된다. 방법은 복수의 이미지 프레임을 획득하는 단계를 포함한다. 방법은 또한 복수의 이미지 프레임에서 하나 이상의 이미지 프레임 내에서 하나 이상의 관심 영역을 식별하는 단계를 포함한다. 방법은 복수의 이미지 프레임의 각각의 이미지 프레임과 연관된 각각의 품질 척도에 기초하여 베이스 프레임 세트를 선택하는 단계를 더 포함하며, 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다. 상기 방법은 합성 이미지를 생성하기 위해 선택한 베이스 프레임 세트를 함께 스티칭하는 단계를 또한 포함한다.

Description

모바일 카메라로 파노라마 생성
본 발명은 이미지 프레임들을 선택하고 스티칭하는 디바이스들 및 방법들에 관한 발명이다.
이미지 프로세싱에서 "이미지 스티칭"은 몇 개의 개별 이미지 프레임을 합성 이미지, 예를 들어 파노라마 이미지로 결합하는 것과 관련된 프로세스이다. 많은 접근법들이 존재하지만, 대부분의 스티칭 알고리즘은 적어도 일부 중첩되는 영역을 포함하는 개별 이미지 프레임에 의존한다. 이러한 스티칭 알고리즘은 일반적으로 중첩되는 영역에서 고유한 특징들을 식별한 다음 개별 이미지 프레임들 간의 대응 관계를 설정하기 위해 특징들을 매칭시킨다. 그 후, 스티칭 알고리즘은 일반적으로 중첩 영역에서 해당 이미지 프레임을 함께 블렌딩하여 최종 합성 이미지를 생성한다.
예시적인 실시예는 이미지 스티칭을 수행하는 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스는 복수의 이미지 프레임들로부터 하나 이상의 베이스 프레임들을 선택하도록 동작가능한 베이스 프레임 선택 모듈을 포함할 수 있다. 컴퓨팅 디바이스는 또한 하나 이상의 선택된 베이스 프레임을 함께 스티칭하도록 동작가능한 스티칭 모듈을 포함할 수 있다. 이러한 두 모듈을 사용하여 컴퓨팅 디바이스는 파노라마 이미지와 같은 합성 이미지를 생성한 다음 이러한 합성 이미지를 사용자에게 표시할 수 있다.
제 1 측면에서, 컴퓨터로 구현되는 방법이 제공된다. 상기 방법은 컴퓨팅 디바이스에 의해 복수의 이미지 프레임들을 획득하는 단계를 포함할 수 있다. 상기 방법은 또한, 컴퓨팅 디바이스에 의해, 상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 단계를 포함할 수 있다. 상기 방법은 또한, 컴퓨팅 디바이스에 의해 그리고 상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 단계를 포함할 수 있으며, 여기서 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다. 상기 방법은 또한, 컴퓨팅 디바이스에 의해, 합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 단계를 포함할 수 있다.
제 2 측면에서, 컴퓨팅 디바이스가 제공된다. 컴퓨팅 디바이스는 하나 이상의 프로세서들을 포함할 수 있다. 컴퓨팅 디바이스는 또한, 적어도 컴퓨터 판독가능한 명령들을 저장하는 비일시적 데이터 저장소를 포함하고, 상기 컴퓨터 판독가능한 명령들은 상기 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금 동작들을 수행하게 한다. 상기 동작들은 상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 동작을 포함할 수 있다. 상기 동작들은 또한 상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 동작을 포함할 수 있으며, 여기서 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다. 상기 동작들은 합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 동작을 포함할 수 있다.
제 3 측면에서, 제조 물품이 제공된다. 제조 물품은 적어도 컴퓨터 판독가능한 명령들을 저장하는 비일시적 데이터 저장소를 포함할 수 있으며, 상기 컴퓨터 판독가능한 명령들은 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금 동작들을 수행하게 한다. 상기 동작들은 상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 동작을 포함할 수 있다. 상기 동작들은 또한, 상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 동작을 포함할 수 있으며, 여기서 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다. 상기 동작들은 또한, 합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 동작을 포함할 수 있다.
제 4 측면에서, 시스템이 제공된다. 시스템은 복수의 이미지 프레임들을 획득하기 위한 수단을 포함할 수 있다. 시스템은 또한 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 수단을 포함할 수 있다. 시스템은 또한 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 수단을 포함할 수 있으며, 여기서 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다. 시스템은 또한 합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 수단을 포함할 수 있다.
다른 양상들, 실시예들 및 구현예들은 적절한 경우 첨부된 도면을 참조하여 다음의 상세한 설명을 읽음으로써 당업자에게 명백해질 것이다.
도 1은 예시적인 실시예에 따른 컴퓨팅 디바이스를 도시한다.
도 2는 예시적인 실시예에 따른 베이스 프레임 선택 모듈 및 스티칭 모듈의 동작의 개요를 도시한다.
도 3은 예시적인 실시예에 따른 베이스 프레임 선택 모듈의 동작을 도시한다.
도 4는 예시적인 실시예에 따른 예시적인 이미지 프레임 서브세트를 도시한다.
도 5는 예시적인 실시예에 따른 스티칭 모듈의 동작을 도시한다.
도 6은 예시적인 실시예에 따른 예시적인 이미지 프레임 프로젝션을 도시한다.
도 7은 예시적인 실시예에 따른 예시적인 심들을 도시한다.
도 8은 예시적인 실시예에 따른 방법을 도시한다.
예시적인 방법, 디바이스 및 시스템이 본 명세서에서 설명된다. "예시" 및 "예시적인"이라는 단어는 본원에서 "일례, 사례, 또는 예시로서 제공되는 것"을 의미하는 것으로 이해되어야 한다. 본 명세서에서 "예시" 또는 "예시적인" 것으로 기술된 임의의 실시예 또는 특징은 그렇게 표현되지 않는 한 다른 실시예 또는 특징보다 바람직하거나 유리한 것으로 해석되어서는 안 된다. 본 명세서에 제시된 주제의 범위를 벗어나지 않고 다른 실시예가 이용될 수 있고, 다른 변경이 이루어질 수 있다.
따라서, 본 명세서에 기술된 예시적인 실시예는 제한하려는 것이 아니다. 본 명세서에 일반적으로 기술되고 도면에 예시된 바와 같은 본 발명의 양상들은 매우 다양한 상이한 구성들로 구성, 대체, 조합, 분리 및 설계될 수 있음을 쉽게 이해할 것이다.
본 명세서 전반에 걸쳐, 관사 "a" 또는 "an"은 예시적인 실시예의 요소들을 소개하기 위해 사용된다. "a" 또는 "an"에 대한 모든 언급은 "적어도 하나"를 의미하고 "the"에 대한 모든 언급은 달리 명시되지 않는한 또는 문맥에서 달리 명확하게 지시하지 않는 한 "적어도 하나"를 의미한다. 두 개 이상의 용어로 구성된 설명 목록 내에서 접속사 "또는"을 사용하는 의도는 나열된 용어 또는 나열된 용어의 조합을 나타내기 위한 것이다.
"제1", "제2", "제3" 등과 같은 서수를 사용하는 것은 각 요소들의 특정한 순서를 나타내기보다는 각 요소들을 구별하기 위한 것이다.설명을 목적으로, 용어 "다수의" 및 "복수의"는 "2 이상" 또는 "하나 이상"을 의미한다.
또한, 문맥이 달리 제시하지 않는 한, 각 도면에 예시된 피처들은 서로 조합하여 사용될 수 있다. 따라서, 모든 예시된 피처들이 각각의 실시예에 필요한 것은 아니라는 이해와 함께, 도면은 일반적으로 하나 이상의 전체 실시예의 컴포넌트 측면으로 보아야 한다. 도면에서 유사한 기호는 일반적으로 문맥에서 달리 지시하지 않는 한 유사한 컴포넌트를 나타낸다. 또한 별도의 언급이 없는 한 도면들은 축척대로 그려진 것이 아니며 설명 목적으로만 사용된 것이다. 또한 도면은 예시일 뿐이며 모든 컴포넌트가 표시되지는 않는다. 예를 들어, 추가적인 구조적 또는 구속적 컴포넌트는 표시되지 않을 수도 있다.
또한 , 본 명세서 또는 청구범위의 요소들, 블록들 또는 단계들의 열거는 명확성을 위한 것이다. 따라서, 이러한 열거는 이러한 요소들, 블록들 또는 단계들이 특정 배열을 고수하거나 특정 순서대로 수행되는 것을 요구하거나 이를 암시하는 것으로 해석되어서는 안된다.
I. 개요
일부 예시적인 이미지 스티칭 프로세스는 4개의 단계들, 베이스 프레임 선택, 피처 검출, 정렬 및 블렌딩의 4개의 단계를 포함한다. 베이스 프레임 선택 단계에는 후보 베이스 프레임 세트에서 하나 이상의 베이스 프레임을 선택하는 단계를 포함한다. 피처 검출 단계는 하나 이상의 선택된 베이스 프레임에서 해당 피처를 식별하는 것을 포함한다. 정렬 단계는 식별된 피처들을 정렬하기 위해 하나 이상의 선택된 베이스 프레임들 중 적어도 일부를 변환하는 것을 포함한다. 블렌딩 단계는 정렬된 프레임들을 하나의 합성 이미지로 병합하는 것을 포함한다.
많은 이미지 스티칭 프로세스는 관심 객체와 배경 객체를 구별하려고 시도하지 않는 베이스 프레임 선택 단계를 포함한다. 그 결과, 그러한 이미지 스티칭 프로세스는 종종 관심 객체에 대한 낮은 품질 표현을 포함하는 베이스 프레임을 선택한다. 즉, 관심 객체들은 흐릿하거나 노출이 부족하거나 어떤 식으로든 왜곡된다. 이러한 문제는 이미지 충실도 측면에서 매우 불리할 수 있으며 그리고 이러한 이미지 스티칭 과정에서 생성된 합성 이미지의 전반적인 품질을 저하시킬 수 있다. 특히, 관심 객체에 대한 왜곡이 상대적으로 미미하더라도, 이러한 왜곡은 합성 이미지에서 특히 두드러질 수 있으며 이미지 품질의 의미있는 저하를 나타낼 수 있다.
많은 이미지 스티칭 프로세스는 관심 객체와 배경 객체를 구별하려고 하지 않는 블렌딩 단계를 또한 포함한다. 그 결과, 2개의 이미지 프레임들을 블렌딩할 때 이러한 이미지 스티칭 프로세스는 종종 관심 객체 바로 위에 이음매(seam)를 배치하며, 따라서 아티팩트 및/또는 기타 왜곡이 이들 관심 객체에 나타나게 한다. 이러한 문제는 이미지 충실도 측면에서도 불리할 수 있으며 이러한 이미지 스티칭 프로세스에서 생성된 합성 이미지의 전반적인 품질을 저하시킬 수도 있다.
본 발명은 이러한 문제를 해결하는데 도움이 될 수 있는 이미지 스티칭 프로세스를 제공한다. 더 구체적으로, 예시적인 이미지 스티칭 프로세스는 후보 베이스 프레임 세트 내에 있는 관심 객체들의 품질을 고려함으로써 베이스 프레임들을 지능적으로 선택한다. 예시적인 이미지 스티칭 프로세스는 또한 블렌딩 단계 동안 관심 대상들에 배치되는 이음매에 페널티를 부과할 수 있다. 유리하게는, 개시된 이미지 스티칭 프로세스는 고품질의 관심 객체를 포함하는 합성 이미지가 생성될 수 있게 한다.
개시된 프로세스는 모바일 디바이스, 서버 디바이스 또는 다른 유형의 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스에 의해 구현될 수 있다. 컴퓨팅 디바이스는 복수의 이미지 프레임을 수신하고 이에 응답하여 상기 복수의 이미지 프레임 내의 관심 영역을 식별하도록 동작가능한 베이스 프레임 선택 모듈을 포함할 수 있다. 관심 영역은 여러 다른 가능성들 중에서 사람 얼굴, 건물, 차량 또는 동물과 같은 관심 객체를 포함하는 영역에 해당할 수 있다. 관심 영역을 식별한 후, 베이스 프레임 선택 모듈은 복수의 이미지 프레임들로부터 베이스 프레임 세트를 선택할 수 있다. 특히, 선택된 베이스 프레임 세트의 적어도 하나의 베이스 프레임 내에 식별된 각각의 관심 영역이 완전히 포함되도록 선택이 이루어질 수 있다.
컴퓨팅 디바이스는 또한 베이스 프레임 선택 모듈에 의해 선택된 베이스 프레임 세트를 수신하고 베이스 프레임 세트를 함께 스티칭하여 합성 이미지를 생성하도록 동작가능한 스티칭 모듈을 포함할 수 있다. 스티칭을 수행하는 동안, 스티칭 모듈은 베이스 프레임 세트 내의 관심 영역들 상에 배치된 이음매에 계산적 바이어스(computational bias)를 추가하는 이음매 찾기 프로세스를 구현할 수 있다. 일부 실시예에서, 이러한 계산적 바이어스는 관심 영역의 픽셀을 포함하는 임의의 이음매에 페널티 텀(term)을 추가하는 것을 포함한다.
일부 예에서, 개시된 프로세스는 하나 이상의 이미지 프레임을 캡처한 동일한 디바이스에 의해 구현된다. 예를 들어, 베이스 프레임 선택 모듈과 스티칭 모듈은 컴퓨팅 디바이스에 설치될 수 있다. 그런 다음 컴퓨팅 디바이스가 하나 이상의 이미지 프레임을 캡처한 이후 베이스 프레임 선택 모듈이 호출되어 하나 이상의 이미지 프레임에서 베이스 프레임 세트를 선택할 수 있다. 그런 다음 스티칭 모듈을 호출하여 베이스 프레임 세트로부터 합성 이미지를 생성할 수 있다. 합성 이미지는 디스플레이되거나, 통신되거나, 저장되거나 및/또는 다른 방식으로 활용될 수 있다(예를 들어, 종이에 인쇄될 수 있다). 다른 예에서, 베이스 프레임 선택 및/또는 스티칭 프로세스는 소정 디바이스에 의해 구현될 수 있으며, 이러한 소정 디바이스는 하나 이상의 이미지 프레임을 캡처한 디바이스와는 별개이지만 이에 통신가능하게 결합될 수 있다.
일부 실시예에서, 프레임들은 연속적인 이미지 스트림(예를 들어, 비디오 스트림)으로부터 함께 스티칭될 수 있다. 이미지 스트림은 컴퓨팅 디바이스의 전면 카메라(예를 들어, 사용자를 향함), 컴퓨팅 디바이스의 후면 카메라(예를 들어, 사용자가 향하지 않음), 또는 컴퓨팅 디바이스의 다른 카메라에 의해 캡처될 수 있다. 일부 경우에, 연속적인 이미지 스트림은 컴퓨팅 디바이스의 다수의 카메라들, 예를 들어 전면 카메라 및 후면 카메라를 사용하여 캡처될 수 있다.
일부 실시예에서, 합성 이미지는 최소한의 사용자 입력 또는 사용자 입력 없이 생성될 수 있다. 예를 들어, 합성 이미지는 사용자가 관심 영역, 관심 객체 또는 이미지 프레임의 다른 양상을 식별하도록 요청하지 않고도 생성될 수 있다. 또한, 합성 이미지는 사용자가 특정 제스처(예를 들어, 컴퓨팅 디바이스로 장면을 수평으로 스캐닝하는 것)를 사용하여 하나 이상의 이미지 프레임을 캡처하도록 요청하지 않고 생성될 수 있다. 자동 이미지 스티칭 어플리케이션은 이러한 사용자 입력을 요구하지 않음으로써 이점을 얻을 수 있다. 그러나, 하나 이상의 유형의 사용자 입력을 갖는 본 명세서에 설명된 프로세스의 변형들이 또한 고려된다.
일부 예에서, 컴퓨팅 디바이스는 컴퓨팅 디바이스에 의한 베이스 프레임 선택 결정에 기초하여 트레이닝되는 머신 러닝 모델을 사용하여 베이스 프레임을 선택할 수 있다. 예를 들어, 컴퓨팅 디바이스가 본 명세서에 기술된 베이스 프레임 선택 모듈을 사용하여 몇 개의(예를 들어, 4 내지 10개) 베이스 프레임 선택 결정을 내린 후에, 컴퓨팅 디바이스는 베이스 프레임 선택 결정을 사용하여 머신 러닝 모델을 트레이닝시킬 수 있다. 트레이닝이 완료된 후, 컴퓨팅 디바이스는 베이스 프레임을 지능적으로 선택하기 위해, 설명된 베이스 프레임 선택 모듈과 함께 트레이닝된 머신 러닝 모델을 사용할 수 있다. 베이스 프레임을 선택하는 다른 방법도 또한 가능하다.
머신 러닝 모델을 사용하여 베이스 프레임을 선택하는 것, 서버 디바이스들과 컴퓨팅 디바이스에 의한 상호작용, 또는 다른 컴퓨팅 디바이스와 베이스 프레임 또는 합성 이미지를 공유하는 것을 포함하는 실시예와 관련하여, 사용자는 여기에 설명된 시스템, 프로그램, 디바이스 또는 피처가 사용자 정보(예컨대, 사용자의 소셜 네트워크, 소셜 행동 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 관한 정보)를 수집할 수 있는지 또는 사용자가 서버로부터 콘텐츠 또는 통신을 수신할 수 있는지를 사용자가 선택할 수 있게하는 콘트롤을 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용하기 전에 개인 식별 정보가 제거되도록 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대해 어떠한 개인 식별 정보도 결정할 수 없도록 처리될 수 있으며, 또는 사용자의 지리적 위치는 사용자의 특정 위치를 확인할 수 없도록 위치 정보가 획득되는 곳에 대하여 예를 들어, 도시 레벨로, 우편번호 레벨로 또는 주 레벨로 일반화될 수 있다. 따라서, 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법 및 사용자에게 제공되는 정보를 제어할 수 있다.
이들 뿐만 아니라 다른 측면, 장점 및 대안은 적절한 경우 첨부된 도면을 참조하여 다음 설명을 읽는 사람들에게 명백해질 것이다. 또한, 본 개요 및 본 명세서의 다른 곳에서의 논의는 단지 일례로서 제공되며 다양한 변형이 가능하다는 것을 이해해야 한다.
II. 컴퓨팅 디바이스의 예
도 1은 예시적인 실시예에 따른 컴퓨팅 디바이스(100)를 도시한다 . 컴퓨팅 디바이스(100)는 복수의 이미지 프레임들로부터 베이스 프레임을 선택한 다음, 선택된 베이스 프레임들을 함께 스티칭하여 합성 이미지를 생성할 수 있는 예시적인 컴퓨팅 디바이스일 수 있다. 컴퓨팅 디바이스(100)는 서버 디바이스, 모바일 디바이스, 카메라 디바이스, 또는 어떤 다른 형태의 디바이스와 같은 다양한 형태를 취할 수 있다.
도 1에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 카메라(110)를 포함할 수 있다. 카메라(110)는 빛을 캡처하고 캡처된 빛을 하나 이상의 이미지 프레임에 기록하도록 장착된 스틸 및/또는 비디오 카메라와 같은 하나 이상의 이미지 캡처 디바이스를 포함할 수 있다. 즉, 카메라(110)는 캡처된 빛의 이미지 프레임(들)을 생성할 수 있다. 하나 이상의 이미지 프레임은 하나 이상의 스틸 이미지 프레임 및/또는 비디오 이미징에서 사용되는 하나 이상의 이미지 프레임(예를 들어, 이미지 프레임의 연속 스트림)일 수 있다. 카메라(110)는 가시광, 적외선, 자외선, 및/또는 하나 이상의 다른 주파수의 빛으로 방출된 빛 및/또는 전자기 방사를 캡처할 수 있다.
카메라(110)는 컴퓨팅 디바이스(100)의 전면을 향하는 카메라(예를 들어, 사용자를 향함) 및/또는 후면을 향하는 카메라(예를 들어, 사용자를 향하지 않음)로서 구성될 수 있다. 일부 구현예에서, 카메라(110)는 사전-설정된 프레임 속도에서 이미지 프레임을 캡처할 수 있다. 즉, X초 마다 카메라(110)는 이미지 프레임을 캡처할 수 있다. 예시적인 프레임 속도는 초당 24프레임(FPS), 30 FPS 또는 50 FPS 등일 수 있다.
일부 예에서, 카메라(110)는 특정 회전 각도로 배향될 수 있고 그 회전 각도에서 이미지 프레임을 캡처할 수 있다. 일부 구현에서 회전 각도는 수평 각도이다. 즉, 회전 각도는 카메라(110)의 초기 포인팅 방향으로부터의 수평 회전일 수 있다. 다른 구현에서, 회전 각도는 수직 각도이다. 즉, 회전 각도는 초기 포인팅 방향으로부터 카메라(110)의 수직 회전일 수 있다. 예시적인 실시예에서, 초기 포인팅 방향은 카메라(110)가 이미지 프레임들의 스트림에서 제 1 이미지 프레임을 캡처할 때 카메라(110)의 포인팅 방향에 대응할 수 있다.
예시적인 실시예에서, 카메라(110)에 의해 캡처된 각각의 이미지 프레임은 품질 척도와 연관될 수 있다. 이러한 품질 척도는 여러 가능성들 중에서, 캡처된 이미지 프레임의 모션 블러, 캡처된 이미지 프레임의 전체 초점 및/또는 캡처된 이미지 프레임의 노출에 기초하여 계산되는 정량적 메트릭일 수 있다. 일부 구현에서, 캡처된 이미지 프레임에 대한 품질 척도는 캡처된 이미지 프레임 내에 배치된 관심 영역들 내에 위치한 픽셀들에 더 큰 가중치를 부여하기 위해 계산적으로 바이어싱될 수 있다. 예를 들어, 관심 영역이 노출 부족이지만 배경 객체가 적절하게 노출된 이미지 프레임에 대한 품질 척도는, 관심 영역이 적절하게 노출되었지만 배경 객체가 노출 부족인 이미지 프레임에 대한 품질 척도 보다 낮을 수 있다.
디스플레이 컴포넌트(112)는 하나 이상의 스크린(터치 스크린 포함), 음극선관(CRT), 액정 디스플레이(LCD), 발광 다이오드(LED), 디지털 광 프로세싱(Digital Light Processing: DLP) 기술을 이용하는 디스플레이, 및/또는 기타 유사한 기술을 통해 사용자에게 출력 신호를 제공하도록 구성될 수 있다. 디스플레이 컴포넌트(112)는 또한 스피커, 스피커 잭, 오디오 출력 포트, 오디오 출력 디바이스, 이어폰 및/또는 다른 유사한 디바이스와 같은 가청 출력을 생성하도록 구성될 수 있다. 디스플레이 컴포넌트(112)는 또한 진동 및/또는 컴퓨팅 디바이스(100)와의 터치 및/또는 물리적 접촉에 의해 검출가능한 다른 출력과 같은 햅틱 출력을 생성할 수 있는 하나 이상의 햅틱 컴포넌트를 구비하도록 구성될 수 있다.
네트워크 인터페이스(114)는 컴퓨팅 디바이스(100)와 다른 컴퓨팅 디바이스들 사이의 인터페이스 역할을 할 수 있다. 네트워크 인터페이스(114)는 네트워크를 통해 통신하도록 구성가능한 하나 이상의 무선 인터페이스 및/또는 유선 인터페이스를 포함할 수 있다. 무선 인터페이스는 블루투스(Bluetooth™) 트랜시버, 지그비(Zigbee®) 트랜시버, Wi-Fi™ 트랜시버, WiMAX™ 트랜시버 및/또는 무선 네트워크를 통해 통신하도록 구성되는 기타 유사한 유형의 무선 트랜시버와 같은 하나 이상의 무선 송신기, 수신기 및/또는 트랜시버를 포함할 수 있다. 유선 인터페이스는 이더넷 트랜시버, USB(Universal Serial Bus) 트랜시버 또는 연선(twisted pair wire), 동축 케이블, 광섬유 링크, 유선 네트워크에 대한 유사한 물리적 연결을 통해 통신하도록 구성가능한 유사한 트랜시버와 같은 하나 이상의 유선 송신기, 수신기 및/또는 트랜시버를 포함할 수 있다.
일부 실시예에서, 네트워크 인터페이스(114)는 신뢰할 수 있고, 보안되고 및/또는 인증된 통신을 제공하도록 구성될 수 있다. 여기에 설명된 각각의 통신에 대해, 신뢰되는 통신을 용이하게 하기 위한 정보(예를 들어, 메시지 전달을 보장함)는 아마도 메시지 헤더 및/또는 푸터(예를 들어, 패킷/메시지 시퀀싱 정보, 캡슐화 헤더 및/또는 푸터, 크기 /시간 정보 및 CRC(Cyclic Redundancy Check) 및/또는 패리티 검사 값과 같은 전송 검증 정보)의 일부로서 제공될 수 있다. 통신들은 하나 이상의 암호 프로토콜 및/또는 알고리즘을 이용하여 보안되거나 및/또는 암호해독/디코딩될 수 있다. 이러한 암호 프로토콜 및/또는 알고리즘은 데이터 암호 표준(DES: Data Encryption Standard), 고급 암호 표준(AES: Advanced Encryption Standard), 리베스트-샤미르-아델만(Rivest-Shamir-Adelman: RSA) 알고리즘, 디피-헬만(Diffie-Hellman) 알고리즘, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)와 같은 보안 소켓 프로토콜 및/또는 디지털 서명 알고리즘(DSA: Digital Signature Algorithm)을 포함할 수 있지만, 이에 한정되는 것은 아니다. 통신을 보호하기 위해(그리고 암호 해독/디코딩하기 위해), 다른 암호화 프로토콜 및/또는 알고리즘이 본 명세서에 나열된 것에 추가로 사용될 수 있다.
파워 소스(들)(116)은 컴퓨팅 디바이스(100)의 다양한 컴포넌트에 전력을 공급하도록 구성될 수 있다. 파워 소스(들)(116)은 유압 시스템, 전기 시스템, 배터리, 또는 다른 유형의 파워 소스를 포함할 수 있다. 컴퓨팅 디바이스(100)의 일부 컴포넌트는 각각 다른 파워 소스에 연결될 수 있고, 동일한 파워 소스에 의해 전력이 공급되거나, 다수의 파워 소스에 의해 전력이 공급될 수 있다. 파워 소스(들)(116)은 외부 전원에 대한 유선 연결, 무선 충전, 연소 또는 다른 예와 같은 다양한 유형의 충전 기술을 사용하여 충전할 수 있다.
센서(들)(118)는 컴퓨팅 디바이스(100)의 환경에서 상태들을 측정하고 그 환경에 대한 데이터를 제공하도록 구성될 수 있다. 예를 들어, 센서(들)(118)는 다음 중 하나 이상을 포함할 수 있다: (i) RFID(Radio Frequency Identification) 판독기, 근접 센서, 1차원 바코드 판독기, 2차원 바코드(예: QR(Quick Response) 코드) 판독기 및 레이저 추적기, 적어도 식별 정보를 판독 및 제공하도록 구성된 기타 디바이스 및/또는 물체 등을 포함하지만 이에 한정되지 않는 다른 객체들 및/또는 디바이스들을 식별하는 식별 센서(여기서, 식별 센서는 RFID 태그, 바코드, QR 코드 등과 같은 식별자를 판독하도록 구성될 수 있음); (ii) 기울기 센서, 자이로스코프, 가속도계, 도플러 센서, GPS(Global Positioning System) 디바이스, 소나 센서, 레이더 디바이스, 레이저 변위 센서 및 나침반 등을 포함하지만 이에 한정되지 않는 컴퓨팅 디바이스(100)의 위치 및/또는 움직임을 측정하기 위한 센서; (iii) 적외선 센서, 광학 센서, 빛 센서, 바이오 센서, 정전식 센서, 터치 센서, 온도 센서, 무선 센서, 라디오 센서, 움직임 센서, 마이크, 사운드 센서, 초음파 센서 및/또는 연기 센서 등을 포함하지만 이에 한정되지 않는 컴퓨팅 디바이스(100)의 환경을 나타내는 정보를 획득하는 환경 센서; 및 (iv) 가령, 하나 이상의 차원에서의 힘, 토크, 그라운드 포스(ground force), 마찰력을 측정하는 하나 이상의 센서들 및/또는 ZMP 및/또는 ZMP의 위치를 식별하는 제로 모멘트 포인트(ZMP) 센서를 포함하지만 이에 한정되지 않는 컴퓨팅 디바이스(100)에 작용하는 하나 이상의 힘(예를 들어, 관성력 및/또는 G-포스)을 측정하는 힘 센서. 다른 많은 다양한 센서들도 또한 이용될 수 있다.
베이스 프레임 선택 모듈 (120)은 하나 이상의 이미지 프레임을 수신하고 이에 응답하여 하나 이상의 이미지 프레임으로부터 베이스 프레임을 선택하도록 동작할 수 있는 컴퓨팅 디바이스(100) 내의 소프트웨어 어플리케이션 또는 서브시스템일 수 있다. 일부 구현에서, 베이스 프레임 선택 모듈(120)은 카메라(110)로부터 하나 이상의 이미지 프레임을 수신할 수 있다. 다른 구현에서, 베이스 프레임 선택 모듈(120)은 네트워크 인터페이스(114)를 통해 다른 컴퓨팅 디바이스로부터 하나 이상의 이미지 프레임을 수신할 수 있다. 베이스 프레임을 선택한 이후, 베이스 프레임 선택 모듈(120)은 선택된 베이스 프레임을 스티칭 모듈(130)로 전송할 수 있다.
스티칭 모듈(130)은 베이스 프레임 선택 모듈(120)에 의해 선택된 베이스 프레임들을 수신하고 그리고 베이스 프레임들을 함께 스티칭하여 파노라마 이미지와 같은 단일 합성 이미지를 생성하도록 동작가능한 컴퓨팅 디바이스(100) 내의 소프트웨어 어플리케이션 또는 서브시스템일 수 있다. 스티칭 모듈(130)에 의해 생성된 합성 이미지는 디스플레이(112)를 통해 사용자에게 표시될 수 있거나 네트워크 인터페이스(114)를 통해 별도의 컴퓨팅 디바이스로 통신될 수 있다.
베이스 프레임 선택 모듈(120) 및 스티칭 모듈(130)의 예시적인 동작을 개념적으로 설명하기 위해, 도 2가 제공된다. 특히, 도 2는 베이스 프레임 선택 모듈(120)이 어떻게 카메라(110)로부터 후보 이미지 프레임(200)을 수신하고 그리고 후보 이미지 프레임(200)으로부터 베이스 프레임(230)을 선택할 수 있는지를 보여준다. 선택 후, 베이스 프레임 선택 모듈(120)은 베이스 프레임(230)을 스티칭 모듈(130)에 제공하며, 스티칭 모듈(130)은 합성 이미지(240)를 생성하기 위해 베이스 프레임(230)을 함께 스티칭할 수 있다.
도시된 바와 같이, 후보 이미지 프레임(200)은 이미지 프레임(210), 이미지 프레임(212), 이미지 프레임(214), 이미지 프레임(216) 및 이미지 프레임(218)과 같은 5개의 개별 이미지 프레임을 포함한다. 이들 5개의 개별 이미지 프레임은 관심 영역(220), 관심 영역(222), 및 관심 영역(224)의 3개의 관심 영역들을 포함한다. 이들 3개의 관심 영역들 각각은 (i) 이미지 프레임에 완전히 포함되거나, (ii) 이미지 프레임에 부분적으로 포함되거나, (iii) 이미지 프레임에 포함되지 않을 수 있다. 예를 들어, 관심 영역(220)은 이미지 프레임(212)에 완전히 포함되고, 이미지 프레임(210, 214)에 부분적으로 포함되며, 이미지 프레임(216, 218)에는 포함되지 않는다. 마찬가지로, 관심 영역(222)은 이미지 프레임(214)에 완전히 포함되고, 이미지 프레임(212 및 216)에는 부분적으로 포함되고, 이미지 프레임(210 및 218)에는 포함되지 않는다. 또한, 관심 영역(224)은 2개의 이미지 프레임(216, 218)에 완전히 포함되고, 이미지 프레임(214)에는 부분적으로 포함되고, 이미지 프레임(210 및 212)에는 포함되지 않는다.
상기 논의에 따라, 베이스 프레임 선택 모듈(120)은 후보 이미지 프레임들(200) 내의 각각의 식별된 관심 영역이 베이스 프레임들(230)의 적어도 하나의 베이스 프레임 내에 완전히 포함되도록, 후보 이미지 프레임들(200)로부터 베이스 프레임들을 선택할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 관심 영역(220, 222, 224)은 베이스 프레임들(230) 중 적어도 하나에 완전히 포함된다. 구체적으로, 관심 영역(220)은 이미지 프레임(212)에 완전히 포함되고, 관심 영역(222)은 이미지 프레임(214)에 완전히 포함되고, 관심 영역(224)은 이미지 프레임(218)에 완전히 포함된다.
도 2에 제시된 이미지 프레임은 예시의 목적으로 사용되며 본 명세서의 실시예에 대해 제한하려는 의도가 아니다. 실제로, 후보 이미지 프레임(200) 및 베이스 프레임(230)은 수백 또는 수천 개의 프레임을 포함하여 더 적은 수의 프레임 또는 더 많은 수의 프레임을 포함할 수 있다.
도 1로 돌아가서, 컴퓨팅 디바이스(100)는 또한 제어기(140)를 포함한다. 제어기(140)는 필드-프로그램가능한 게이트 어레이(FPGA: field-programmable gate array) 또는 주문형 반도체(ASIC: application-specific integrated circuit) 중 적어도 하나를 포함할 수 있다. 추가적으로 또는 대안적으로, 제어기(140)는 하나 이상의 프로세서(142) 및 메모리(144)를 포함할 수 있다. 프로세서(들)(142)는 범용 프로세서 또는 특수 목적 프로세서(예를 들어, 디지털 신호 프로세서 등)를 포함할 수 있다. 프로세서(들)(142)는 메모리(144)에 저장된 컴퓨터 판독가능 프로그램 명령을 실행하도록 구성될 수 있다.
메모리(144)는 프로세서(들)(142)에 의해 판독 또는 액세스될 수 있는 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하거나 그 형태를 취할 수 있다. 하나 이상의 컴퓨터 판독가능 저장 매체는 하나 이상의 프로세서(142) 중 적어도 하나와 전체적으로 또는 부분적으로 통합될 수 있는 광학, 자기, 유기 또는 기타 메모리 또는 디스크 스토리지와 같은 휘발성 및/또는 비휘발성 저장 컴포넌트를 포함할 수 있다. 일부 실시예에서, 메모리(144)는 하나의 물리적 디바이스(예를 들어, 하나의 광학, 자기, 유기 또는 다른 메모리 또는 디스크 저장 유닛)를 이용하여 구현될 수 있는 반면, 다른 실시예에서 메모리(144)는 2 이상의 물리적 디바이스를 사용하여 구현될 수 있다.
언급된 바와 같이, 메모리(144)는 컴퓨팅 디바이스(100)의 동작과 관련된 컴퓨터 판독가능 프로그램 명령을 포함할 수 있다. 이와 같이, 메모리(144)는 여기에 설명된 기능의 일부 또는 전부를 수행하거나 용이하게 하는 프로그램 명령을 포함할 수 있다. 메모리(144)는 베이스 프레임 선택 모듈(120) 및/또는 스티칭 모듈(130)을 저장할 수 있다. 일부 실시예에서, 제어기140)는 메모리(144)에 저장된 명령을 실행하는 프로세서(들)(142)를 통해 다양한 동작을 수행할 수 있다.
예를 들어, 제어기(140)는 하나 이상의 이미지 캡처 특성에 따라 하나 이상의 이미지 프레임을 캡처하도록 카메라(110)에 지시할 수 있다. 이미지 캡처 속성은 다른 가능성 중에서 원하는 조리개, 원하는 노출 시간 및/또는 원하는 이미지 센서 광 감도(예: ISO 감도)를 포함할 수 있다. 다른 예로서, 제어기(140)는 하나 이상의 설정 속성에 따라 그 초점 거리를 조정하도록 카메라(110)에게 지시할 수 있다. 설정 속성은 다른 가능성 중에서 원하는 초점 거리, 원하는 배율 및/또는 원하는 화각을 포함할 수 있다.
제어기(140)는 다른 동작을 수행하도록 구성될 수 있다. 예를 들어, 제어기(140)는 카메라(110)에 의해 캡처된 이미지 프레임들로부터 합성 이미지를 생성하기 위해 베이스 프레임 선택 모듈(120) 및 스티칭 모듈(130)의 동작을 실행할 수 있다. 제어기(140)는 다른 가능성들 중에서, 디스플레이(112)가 합성 이미지를 표시하게 하거나 또는 네트워크 인터페이스(114)로 하여금 합성 이미지를 원격 컴퓨팅 디바이스로 전송하게 할 수 있다.
III. 예시적인 방법
도 3은 예시적인 실시예에 따른 방법(300)을 도시한다. 방법(300)은 복수의 이미지 프레임으로부터 하나 이상의 베이스 프레임을 선택하도록 구현될 수 있다. 선택된 베이스 프레임은 스티칭 모듈(130)에 제공되거나 또는 다른 목적으로 사용될 수 있다. 방법(300)은 컴퓨팅 디바이스(100)의 다양한 컴포넌트들, 예를 들어 베이스 프레임 선택 모듈(120) 및/또는 다른 컴포넌트에 의해 수행될 수 있다. 단순화를 위해, 방법(300)의 예시적인 구현이 베이스 프레임 선택 모듈(120)을 사용하여 이제 설명될 것이다. 그러나, 개시된 원리는 다른 컴포넌트를 갖는 다른 시나리오에도 적용될 수 있음을 이해해야 한다.
방법(300)은 베이스 프레임 선택 모듈(120)이 N개의 이미지 프레임을 수신하는 블록(310)에서 시작할 수 있다. 상기 논의에 따라, N개의 이미지 프레임은 카메라(110)에 의해 캡처된 이미지 프레임일 수 있다. 대안적으로 및/또는 부가적으로, N개의 이미지 프레임은 가령, 원격 네트워크에서 작동하는 서버 디바이스와 같은 원격 컴퓨팅 디바이스로부터 컴퓨팅 디바이스(100)로 전달된 이미지 프레임일 수 있다.
N개의 이미지 프레임을 수신하면, 베이스 프레임 선택 모듈(120)은 N개의 이미지 프레임들 내에서 하나 이상의 관심 영역을 식별할 수 있다. 일부 경우에, 이것은 베이스 프레임 선택 모듈(120)이 하나 이상의 관심 영역 각각에 대한 고유 식별자를 결정하는 것을 포함할 수 있다. 예를 들어, 블록(310)에서 N개의 이미지 프레임을 수신하면, 베이스 프레임 선택 모듈(120)은 N개의 이미지 프레임 내에서 관심 객체를 검출하기 위해 객체 검출 모듈을 호출할 수 있다. 다음으로, 베이스 프레임 선택 모듈(120)은 검출된 물체에 고유 식별자를 할당할 수 있고 고유 식별자를 N개의 이미지 프레임과 함께 메타데이터로 저장할 수 있다. 대안적으로, 베이스 프레임 선택 모듈(120)은 다른 시점에서 고유 식별자를 결정할 수 있다. 예를 들어, 블록(340)을 실행하는 동안(아래에 더 설명됨), 베이스 프레임 선택 모듈(120)은 이미지 프레임 Nk 및 이미지 프레임 Nx 내의 관심 객체들을 검출하기 위해 객체 검출 모듈을 호출할 수 있다. 다음으로, 베이스 프레임 선택 모듈(120)은 고유 식별자를 이미지 프레임 Nx 및 이미지 프레임 Nk 에 할당할 수 있다.
추가적으로, 블록(310)에서, 베이스 프레임 선택 모듈(120)은 회전 각도에 의해 N 이미지 프레임을 정렬할 수 있고, 이에 따라 N 이미지 프레임의 정렬된 세트를 생성할 수 있다. 이를 위해, 베이스 프레임 선택 모듈(120)은 각각의 이미지 프레임과 연관된 메타데이터를 평가할 수 있고, 그런 다음 메타데이터에 기초하여, 이미지 프레임을 캡처할 때 이미지 프레임을 캡처한 카메라의 회전 각도를 결정할 수 있다. 일부 구현에서, 베이스 프레임 선택 모듈(120)은 N개의 이미지 프레임을 오름차순(increasing order)으로 정렬할 수 있다. 즉, 정렬 순서의 임의의 주어진 이미지 프레임에 대해, 정렬 순서의 다음 이미지 프레임은 상기 주어진 이미지 프레임의 회전 각도의 크기 보다 크거나 같은 회전 각도를 가질 것이다. 다른 구현에서, 베이스 프레임 선택 모듈(120)은 N개의 이미지 프레임을 내림차순으로 정렬할 수 있다.
N개의 이미지 프레임을 회전 각도별로 정렬한 후(또는 회전 각도별로 N개의 이미지 프레임을 정렬하는 동안), 베이스 프레임 선택 모듈(120)은 변수 K의 값을 1로 설정할 수 있다.
블록(320)에서, 베이스 프레임 선택 모듈(120)은 변수 X의 값을 1로 설정할 수 있다. 그런 다음, 베이스 프레임 선택 모듈(120)은 선택된 베이스 프레임 세트에 이미지 프레임 Nx를 추가할 수 있으며, 여기서 이미지 프레임 Nx 는 N개의 이미지 프레임들의 정렬된 세트에서 X 번째 이미지 프레임에 해당한다.
블록(330)에서, 베이스 프레임 선택 모듈(120)은 K의 값을 1만큼 증가시킬 수 있다. 즉, 베이스 프레임 선택 모듈(120)은 변수 K = K + 1이 되게 할 수 있다. 그런 다음 블록(340)에서, 베이스 프레임 선택 모듈(120)은 이미지 프레임 Nx가 이미지 프레임 Nk와 다른 고유 식별자를 포함하는지 여부를 결정할 수 있으며, 여기서 이미지 프레임 Nk는 N개의 이미지 프레임들의 정렬된 세트의 K번째 이미지 프레임에 해당한다. 상기 논의에 따라, 베이스 프레임 선택 모듈(120)은 저장된 메타데이터를 사용하여 이미지 프레임 Nx 가 이미지 프레임 Nk 와 다른 고유 식별자를 포함하는지 여부를 결정할 수 있다. 다른 예에서, 베이스 프레임 선택 모듈(120)은 객체 검출 모듈을 호출하여, 이미지 프레임 Nx 가 이미지 프레임 Nk 와 다른 고유 식별자를 포함하는지 여부를 결정할 수 있다. 어느 경우든, 이미지 프레임 Nx 가 이미지 프레임 Nk 와 다른 고유 식별자를 포함한다고 베이스 프레임 선택 모듈(120)이 결정하면, 방법(300)은 블록(350)으로 진행할 수 있다. 그렇지 않고, 이미지 프레임 Nx 가 이미지 프레임 Nk 와 다른 고유 식별자를 포함하지 않는다라고 베이스 프레임 선택 모듈(120)이 결정하는 경우, 방법(300)은 블록(330)으로 다시 진행할 수 있다.
블록(330 및 340)과 관련된 예시적인 일례로서, 도 4는 이미지 프레임(412), 이미지 프레임(414), 이미지 프레임(416) 및 이미지 프레임(422)을 포함하는 예시적인 시나리오(400)를 도시한다. 시나리오(400)에서, 각각의 이미지 프레임(412, 414, 416 및 422)은 N개의 이미지 프레임들의 정렬된 세트에서 인덱스를 갖는다. 즉, 이미지 프레임(412)은 위치 1, 이미지 프레임(414)은 위치 2, 이미지 프레임(416)은 위치 3, 이미지 프레임(422)은 위치 4를 갖는다. 또한, 이미지 프레임들(412, 414, 416 및 422) 각각은 적어도 하나의 고유 식별자를 포함하는 것으로 도시된다. 즉, 이미지 프레임(412, 414, 416)은 고유 식별자(402)를 포함하고, 이미지 프레임(422)은 고유 식별자(402, 404)를 포함한다.
시나리오(400) 동안, 베이스 프레임 선택 모듈(120)은 이미지 프레임(412)을 시작 이미지 프레임으로 지정할 수 있다. 다음으로, 베이스 프레임 선택 모듈(120)은 이미지 프레임(414)을 평가하고 그리고 이미지 프레임(414)이 이미지 프레임(412)과 동일한 고유 식별자를 갖는지를 결정할 수 있다. 이러한 결정을 내리면, 베이스 프레임 선택 모듈(120)은 이미지 프레임(414)을 반복하고 이미지 프레임(416)을 평가할 수 있다. 유사하게, 베이스 프레임 선택 모듈(120)은 이미지 프레임(416)이 이미지 프레임(414)과 동일한 고유 식별자를 갖는다고 결정할 수 있다. 이러한 결정을 내리면, 베이스 프레임 선택 모듈(120)은 이미지 프레임(416)을 반복한 다음 이미지 프레임(422)을 평가할 수 있다. 이 시점에서, 베이스 프레임 선택 모듈(120)은 이미지 프레임(422)이 이미지 프레임(416)과 다른 고유 식별자를 포함한다고 결정할 수 있으며 따라서 이러한 반복을 중지할 수 있다. 시나리오(400) 동안 반복된 이미지 프레임들(예를 들어, 이미지 프레임 412, 414, 416)은 본 명세서에서 이미지 프레임(410)의 서브세트로 간주될 수 있다.
도 3을 다시 참조하면, 블록(350)에서, 베이스 프레임 선택 모듈(120)은 (정렬 순서에 따라) 이미지 프레임 Nx 및 이미지 프레임 Nk-1 사이의 각 이미지 프레임과 관련된 품질 척도를 평가할 수 있으며, 여기서, 이미지 프레임 Nk-1 은 N개 이미지 프레임들의 정렬된 세트에서 K-1 번째 이미지 프레임에 해당한다. 평가를 수행한 후, 베이스 프레임 선택 모듈(120)은 이미지 프레임 Nx 와 이미지 프레임 Nk-1 사이에서, 최고의 품질 척도평가와 관련된 이미지 프레임을 선택할 수 있다. 대안적으로, 베이스 프레임 선택 모듈(120)은 이미지 프레임 Nx 와 이미지 Nk-1 사이에서 임계 고품질 척도를 갖는(예컨대, X 보다 큰 관련 품질 척도를 가짐) 모든 이미지 프레임을 선택할 수 있다. 어느 시나리오에서든, 베이스 프레임 선택 모듈(120)은 선택된 이미지 프레임(들)을 선택된 베이스 프레임 세트에 추가할 수 있다.
블록(350)과 관련된 일례가 도 4의 시나리오(400)에 도시되어 있다. 특히, 각각의 이미지 프레임(412, 414, 416, 422)은 관련된 품질 척도를 갖는 것으로 도시되어 있다. 즉, 이미지 프레임(412)은 관련된 품질 척도 7을 갖고, 이미지 프레임(414)은 관련된 품질 척도 8을 갖고, 이미지 프레임(416)은 관련된 품질 척도 5를 갖고, 이미지 프레임(422)은 관련된 품질 척도 5를 갖는다. 시나리오(400) 동안, 베이스 프레임 선택 모듈(120)은 베이스 프레임 선택 모듈(120)이 반복한 각 이미지 프레임과 관련된 품질 척도를 평가할 수 있다. 달리 말하면, 베이스 프레임 선택 모듈(120)은 이미지 프레임 서브세트(410)의 각 이미지 프레임에 대한 품질 척도를 평가할 수 있다. 따라서, 이미지 프레임(414)이 이미지 프레임 서브세트(410)의 프레임들 중에서 가장 높은 품질 척도를 갖기 때문에, 베이스 프레임 선택 모듈(120)은 베이스 프레임으로 사용하기 위해 이미지 프레임(414)을 선택할 수 있고 그리고 베이스 프레임으로 사용하기 위해 이미지 프레임(412 및 416)을 선택하지 않을 것이다.
도 3을 다시 참조하면, 블록(360)에서 베이스 프레임 선택 모듈(120)은 변수 X의 값을 변수 K의 값과 동일하게 설정할 수 있다.
블록(370)에서, 베이스 프레임 선택 모듈(120)은 변수 K에 대한 값이 N(즉, 블록 310에서 수신된 이미지 프레임들의 수)보다 작은지 여부를 결정할 수 있다. 변수 K에 대한 값이 N보다 작다고 베이스 프레임 선택 모듈(120)이 결정하면, 방법(300)은 블록(330)으로 다시 진행할 수 있다. 그렇지 않고, 변수 K에 대한 값이 N보다 작지 않다라고 베이스 프레임 선택 모듈(120)이 결정하면, 방법(300)은 블록(380)으로 진행할 수 있다.
블록(380)에서, 베이스 프레임 선택 모듈(120)은 블록들(310 내지 370)에서 결정되었던 선택된 베이스 프레임들의 세트를 제공할 수 있다. 몇몇 경우에, 베이스 프레임 선택 모듈(120)은 선택된 베이스 프레임 세트를 스티칭 모듈(130)에 제공할 수 있다. 다른 경우에, 베이스 프레임 선택 모듈(120)은 선택된 베이스 프레임 세트를 원격 컴퓨팅 디바이스에 제공할 수 있다.
도 3에 도시된 블록들은 예시의 목적으로 사용되며 본 명세서의 실시예를 제한하려는 의도가 아니다. 베이스 프레임 선택 모듈(120)의 동작은 고도로 구성 가능할 수 있고, 방법(300)에 묘사된 것보다 더 많은 블록, 더 적은 블록 또는 다른 블록을 포함할 수 있다. 일부 경우, 하나 이상의 블록들은 맞춤화될 수 있으며, 또는 전술한 일례로부터 달리 벗어날 수도 있다.
도 5는 예시적인 실시예에 따른 방법(500)을 도시한다. 방법(500)은 단일 합성 이미지를 생성하기 위해 하나 이상의 베이스 프레임을 함께 스티칭하도록 구현될 수 있다. 방법(500)은 예를 들어, 스티칭 모듈(130) 및/또는 다른 컴포넌트와 같은 컴퓨팅 디바이스(100)의 다양한 컴포넌트에 의해 수행될 수 있다. 단순화를 위해, 이제 스티칭 모듈(130)을 사용하여 방법(500)의 예시적인 구현이 설명될 것이다. 그러나, 개시된 원리는 다른 컴포넌트를 갖는 다른 시나리오에도 적용될 수 있음을 이해해야 한다.
방법(500)은 스티칭 모듈(130)이 N개의 베이스 프레임을 수신하는 블록(510)에서 시작할 수 있다. 상기 논의에 따라, N개의 베이스 프레임은 베이스 프레임 선택 모듈(120)에 의해 선택된 베이스 프레임일 수 있다. 대안적으로 및/또는 부가적으로, N 베이스 프레임은 원격 네트워크에서 작동하는 서버 디바이스와 같은 원격 컴퓨팅 디바이스로부터 컴퓨팅 디바이스(100)로 전달되는 베이스 프레임일 수 있다.
N개의 베이스 프레임을 수신한 후, 스티칭 모듈(130)은 N개의 베이스 프레임 각각에 대해 피처 및 키 포인트 검출을 수행할 수 있다. 보다 구체적으로, 각각의 베이스 프레임에 대해, 스티칭 모듈(130)은 베이스 프레임에서 관심 포인트(예를 들어, 키 포인트)을 설명하는 로컬 피처들의 집합을 검출할 수 있다. 키 포인트를 효율적으로 검출하기 위해, 스케일 불변 피처 변환(SIFT: scale-invariant feature transformation), 증속된 로부스트 피처(SURF: speeded up robust features), KAZE, 지향 FAST 및 회전된 BRIEF(ORB) 등을 포함하는 다양한 접근법들이 이용될 수 있다. 키 포인트들 및 그들의 관련 설명들이 획득되면, 스티칭 모듈(130)은 서로 다른 베이스 프레임들로부터 키 포인트들을 매칭시킴으로써, 중첩되는 베이스 프레임들(예를 들어, 적어도 일부 중첩되는 영역들을 포함하는 베이스 프레임들)의 쌍들을 결정할 수 있다. 케스케이드 해싱(cascade hashing), K 개의 최근접 이웃 기반 접근법(k-Nearest Neighbors based approaches) 브루트 포스 매처(brute force matchers), 기타 등등을 포함하는 다양한 접근법들이 키 포인트들을 효율적으로 매칭하기 위해 이용될 수 있다.
블록(520)에서, 스티칭 모듈(130)은 블록(510)에서 결정된 중첩되는 베이스 프레임들의 쌍들 중에서 초기 베이스 프레임 쌍을 선택할 수 있다. 일부 구현에서, 스티칭 모듈(130)은 가장 많은 키 포인트 매치들을 갖는 한 쌍의 베이스 프레임을 초기 쌍으로 선택할 수 있다. 다른 구현에서, 스티칭 모듈(130)은 결합된 최고 품질 척도를 갖는 한 쌍의 베이스 프레임을 초기 쌍으로 선택할 수 있다. 다른 구현예도 가능하다. 베이스 프레임의 초기 쌍을 선택한 후, 스티칭 모듈(130)은 베이스 프레임들의 초기 쌍의 키 포인트들에 대한 3차원(3-D) 좌표들을 결정하기 위해 삼각 측량(triangulation)을 적용할 수 있다. 삼각 측량을 구현하기 위해 직접 선형 삼각 측량 방식, 중간점 삼각 측량 방식, 비선형 삼각 측량 방식 등을 포함하는 다양한 접근법이 이용될 수 있다.
블록(530)에서, 스티칭 모듈(130)은 블록(520)의 초기 3-D 좌표에 베이스 프레임들을 증분식으로 추가할 수 있다. 보다 구체적으로, 각각의 새롭게 추가된 베이스 프레임에 대해, 스티칭 모듈(130)은 새로운 베이스 프레임과 이전에 추가된 베이스 프레임들의 키 포인트들 사이의 대응관계(correspondences)를 평가할 수 있으며 그리고 삼각 측량을 적용하여 새로운 키 포인트들에 대한 3D 좌표를 결정할 수 있다. 또한, 새롭게 추가된 각각의 베이스 프레임에 대해, 스티칭 모듈(130)은 번들 조정(bundle adjustments)을 적용하여 부정확성을 감소시키고 3D 좌표에 대한 최적 값을 생성할 수 있다. 블록(530)의 동작은 모든 N개의 베이스 프레임들이 평가될 때까지 반복될 수 있다.
블록(530)과 관련된 일례로서, 도 6은 베이스 프레임(610), 베이스 프레임(612) 및 베이스 프레임(614)을 포함하는 예시적인 시나리오(600)를 도시한다. 도 6은 베이스 프레임(610, 612)이 3D 좌표(630)를 공유하는 방법, 베이스 프레임(610, 612, 614)이 3D 좌표(632)를 공유하는 방법, 및 베이스 프레임(612, 614)이 3D 좌표(634)를 공유하는 방법을 도시한다. 또한, 도 6은 베이스 프레임(610)이 임의의 다른 베이스 프레임과 공유되지 않는 3-D 좌표(620)를 갖는 방법 및 베이스 프레임(614)이 임의의 다른 베이스 프레임과 공유되지 않는 3-D 좌표(622)를 갖는 방법을 도시한다. 또한, 도 6은 3-D 좌표(620, 622, 630, 632, 634)가 합성 이미지(640)를 형성하기 위해 어떻게 모두 투영될 수 있는지를 도시한다.
도 5를 다시 참조하면, 블록(540)에서, 스티칭 모듈(130)은 블록(530)에서 계산된 3D 좌표를 파노라마 좌표계에 투영할 수 있다. 파노라마 좌표계는 N개의 베이스 프레임 중 하나에 대하여 선택될 수 있다. 3-D 좌표들이 파노라마 좌표계에 맵핑되면, 스티칭 모듈(130)은 N개의 베이스 이미지로부터의 픽셀들을 파노라마 좌표계에 블렌딩할 수 있다. 일부 구현예에서, 블렌딩은 한 베이스 프레임에서 다른 베이스 프레임으로의 전이가 스무스하고 잘 보이지 않도록 베이스 프레임 쌍들 사이의 중첩되는 영역들에 이음매를 배치하는 이음매 찾기 프로세스(seam finding process)를 포함할 수 있다. 일부 실시예에서, 이러한 이음매 찾기 프로세스는 하나 이상의 식별된 관심 영역들로부터의 픽셀들을 포함하는 이음매에 계산적 바이어스를 추가하는 것을 포함한다. 예를 들어, 계산적 바이어스는 하나 이상의 식별된 관심 영역들의 픽셀들을 포함하는 임의의 이음매에 페널티 텀(term)을 추가하는 것을 포함할 수 있다.
블록(540)과 관련된 일례로서, 도 7은 합성 이미지(710) 및 합성 이미지(720)의 2개의 예시적인 합성 이미지를 도시한다. 합성 이미지(710 및 720) 둘다는 관심 영역(712) 및 관심 영역(714)을 포함한다. 합성 이미지(710)에서, 이음매(716)의 일부는 관심 영역(712)에 위치하고 이음매(718)의 일부는 관심 영역(714)에 위치한다. 앞서 설명한 바와 같이, 이음매들(716 및 718)의 이러한 위치는, 관심 영역(712 및 714)이 바람직하지 않은 아티팩트를 디스플레이하게 할 수 있다. 대조적으로, 합성 이미지(720)를 살펴보면, 이음매(726)는 관심 영역(712)에 위치하지 않으며 이음매(728)는 관심 영역(714)에 위치하지 않는다. 이것은 위에서 설명한 페널티 텀의 결과일 수 있으며 더 높은 품질의 관심 영역이 있는 합성 이미지를 생성할 수 있다.
도 5를 다시 참조하면, 블록(550)에서, 스티칭 모듈(130)은 블록(540)으로부터의 파노라마 투영에서 모든 중첩 영역들을 찾은 다음 이들 중첩 영역들 각각에 대한 옵티컬 플로우 필드(optical flow field)를 계산할 수 있다. 일부 실시예에서, 옵티컬 플로우 필드는 각각의 중첩 영역을 비중첩 셀들의 그리드로 분할하고 그리고 그것을 포함하는 셀의 4개 모서리에서의 플로우의 쌍선형 조합(bilinear combination)으로서 셀 내 픽셀의 플로우를 표현함으로써 계산된다.
옵티컬 플로우 필드를 계산한 후, 스티칭 모듈(130)은 블록(530)의 중첩 영역들로부터 모든 대응하는 3-D 좌표들을 동시에 정렬하기 위해, 옵티컬 플로우 필드를 적용할 수 있다. 그런 다음, 스티칭 모듈(130)은 파노라마 좌표계 상에 3D-좌표들을 재-투영하여 최종 합성 이미지를 생성할 수 있다.
블록(560)에서, 스티칭 모듈(130)은 블록(550)에서 결정된 합성 이미지를 제공할 수 있다. 일부 경우에, 스티칭 모듈(130)은 합성 이미지를 디스플레이(112)에 제공할 수 있고, 디스플레이는 합성 이미지를 사용자에게 디스플레이할 수 있다. 다른 경우, 스티칭 모듈(130)은 합성 이미지를 네트워크 인터페이스(114)를 통해 원격 컴퓨팅 디바이스에 제공할 수 있다.
IV. 예시적인 동작들
도 8은 예시적인 실시예에 따른 방법(800)을 도시한다 . 방법(800)은 다양한 블록들 또는 단계들을 포함할 수 있다. 블록들 또는 단계들은 개별적으로 또는 조합되어 수행될 수 있다. 블록들 또는 단계들은 임의의 순서로 및/또는 직렬 또는 병렬로 수행될 수 있다. 또한, 블록들 또는 단계들은 생략되거나 방법(800)에 추가될 수 있다. 방법(800)의 블록들은 도 1을 참조하여 예시 및 설명된 바와 같이 컴퓨팅 디바이스(100)의 다양한 요소에 의해 수행될 수 있다.
블록(810)은 복수의 이미지 프레임을 획득하는 것을 포함할 수 있다. 일부 실시예에서, 복수의 이미지 프레임은 하나의 연속적인 스트림으로 카메라 디바이스에 의해 캡처된다. 또한, 일부 실시예에서, 복수의 이미지 프레임은 카메라 디바이스의 전면 카메라를 사용하여 캡처된다.
블록(820)은 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임 내에 있는 하나 이상의 관심 영역을 식별하는 것을 포함할 수 있다. 일부 실시예에서, 하나 이상의 관심 영역 각각은 얼굴을 포함하는 영역에 대응한다.
블록(830)은 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도에 기초하여 베이스 프레임 세트를 선택하는 것을 포함할 수 있으며, 여기서 하나 이상의 식별된 관심 영역들 각각은 선택된 베이스 프레임 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함된다.
블록(840)은 합성 이미지를 생성하기 위해 선택된 베이스 프레임 세트를 함께 스티칭하는 것을 포함할 수 있다.
일부 실시예에서, 복수의 이미지 프레임의 각각의 이미지 프레임과 연관된 각각의 품질 척도는 이미지 프레임의 모션 블러, 이미지 프레임의 초점, 또는 이미지 프레임의 노출 중 적어도 하나에 기초한 메트릭이다. 또한, 일부 실시예에서, 각각의 품질 척도는 하나 이상의 식별된 관심 영역 내에 위치하는 픽셀에 더 큰 가중치를 부여하기 위해 계산적으로 바이어싱된다.
일부 실시예에서, 베이스 프레임 세트를 선택하는 것은 복수의 이미지 프레임들 중에서, 이미지 프레임들의 복수의 서브세트들을 결정하는 것을 포함하고, 각 서브세트는 동일한 하나 이상의 관심 영역을 포함하는 이미지 프레임을 포함하며; 및 각각의 서브세트로부터 그리고 서브세트의 각각의 이미지 프레임과 연관된 각각의 품질 척도에 기초하여 베이스 프레임을 선택하는 단계를 포함한다.
일부 실시예에서, 각각의 서브세트로부터 베이스 프레임을 선택하는 단계는 서브세트의 이미지 프레임들 중에서 최고 품질 척도를 갖는 이미지 프레임을 선택하는 단계를 포함한다.
일부 실시예에서, 하나 이상의 관심 영역들을 식별하는 단계는 하나 이상의 관심 영역들 각각에 대한 고유 식별자들을 결정하는 단계를 포함하고, 각각의 서브세트는 동일한 고유 식별자들을 갖는 하나 이상의 이미지 프레임들을 포함한다.
일부 실시예에서, 상기 복수의 이미지 프레임들의 각각의 이미지 프레임은 각각의 회전 각도에서 카메라 디바이스에 의해 캡처되었다.이러한 실시예에서, 이미지 프레임들의 서브세트를 결정하는 단계는, 회전 각도에 기초하여 복수의 이미지 프레임들을 정렬하는 단계; 상기 복수의 이미지 프레임들 중에서 시작 이미지 프레임을 지정하는 단계; 및 시작 이미지 프레임에서 시작하여, 반복될 다음 이미지 프레임이 상기 시작 이미지 프레임과는 적어도 하나의 다른 고유 식별자를 갖는 이미지 프레임이 될 때까지 정렬 순서에 따라 복수의 이미지 프레임들을 통해 반복하는 단계를 포함한다. 이러한 실시예에서, 이미지 프레임들의 서브세트는 반복되었던 이미지 프레임들을 포함한다.
일부 실시예에서, 상기 회전 각도는 상기 카메라 디바이스의 수평 각도에 기초한 척도를 포함한다.
일부 실시예에서, 시작 이미지 프레임을 지정하는 단계는 상기 정렬 순서에서 제 1 이미지 프레임을 지정하는 단계를 포함한다.
일부 실시예에서, 상기 이미지 프레임들의 서브세트는 이미지 프레임들의 제 1 서브세트이다. 이러한 실시예에서, 이미지 프레임들의 제 2 서브세트를 결정하는 단계는, 복수의 이미지 프레임들 중에서 제 2 시작 이미지 프레임을 지정하는 단계; 및 제 2 시작 이미지 프레임에서 시작하여, 반복될 다음 이미지 프레임이 상기 제 2 시작 이미지 프레임과는 적어도 하나의 다른 고유 식별자를 갖는 이미지 프레임이 될 때까지 정렬 순서에 따라 복수의 이미지 프레임들을 통해 반복하는 단계를 포함한다. 이러한 실시예에서 이미지 프레임들의 제 2 서브세트는 상기 제 2 시작 이미지 프레임에서 시작하여 반복되었던 이미지 프레임들을 포함한다.
일부 실시예에서, 상기 제 2 시작 이미지 프레임을 지정하는 단계는, 상기 시작 이미지 프레임과 다른 적어도 하나의 다른 고유한 얼굴 식별자를 갖는 이미지 프레임을 지정하는 단계를 포함한다.
일부 실시예에서, 상기 스티칭하는 단계는 상기 복수의 이미지 프레임들로부터의 각각의 이미지 프레임이 적어도 한번 반복된 이후에 수행된다.
일부 실시예에서, 상기 스티칭하는 단계는, 하나 이상의 식별된 관심 영역들로부터의 픽셀들을 포함하는 이음매들(seams)에 계산적 바이어스(computational bias)를 추가하는 것을 수반하는 이음매 찾기 프로세스를 포함한다. 이러한 실시예에서, 상기 계산적 바이어스는 하나 이상의 식별된 관심 영역들로부터의 픽셀들을 포함하는 임의의 이음매에 페널티 텀(penalty term)을 추가하는 것을 포함한다.
일부 실시예에서, 상기 방법은 옵티컬 플로우 이음매 수리 단계(optical flow seam repair step)를 더 포함하며, 상기 옵티컬 플로우 이음매 수리 단계는, 상기 선택된 베이스 프레임들의 세트에 대한 중첩 영역들을 결정하는 단계; 중첩 영역들 각각에 대한 각각의 옵티컬 플로우 필드를 계산하는 단계; 및 중첩 영역들을 정렬하도록 계산된 옵티컬 플로우 필드를 적용하는 단계를 포함한다.
도면에 도시된 특정한 구성들은 제한적인 것으로 간주되어서는 안 된다. 다른 실시예들은 소정 도면에 도시된 각각의 요소들을 더 많거나 적게 포함할 수 있음을 이해해야 한다. 또한, 도시된 컴포넌트들 중 일부는 결합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면에 예시되지 않은 요소를 포함할 수 있다.
정보에 대한 프로세싱을 나타내는 단계들 또는 블록들은 본 명세서에 기술된 방법 또는 기술의 특정한 논리적 기능을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 추가적으로, 정보에 대한 프로세싱을 나타내는 단계들 또는 블록들은 모듈, 세그먼트 또는 프로그램 코드의 일부(관련 데이터 포함)에 해당할 수 있다. 프로그램 코드는 방법 또는 기술에서 특정 논리적 기능 또는 동작을 구현하기 위해 프로세서에 의해 실행가능한 하나 이상의 명령을 포함할 수 있다. 프로그램 코드 및/또는 관련 데이터는 디스크, 하드 드라이브 또는 기타 저장 매체를 포함하는 저장 디바이스와 같은 임의 유형의 컴퓨터 판독가능 매체에 저장될 수 있다.
컴퓨터 판독 가능 매체는 또한 레지스터 메모리, 프로세서 캐시 및 랜덤 액세스 메모리(RAM)와 같이 짧은 기간 동안 데이터를 저장하는 컴퓨터 판독가능 매체와 같은 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한 장기간 동안 프로그램 코드 및/또는 데이터를 저장하는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 따라서, 컴퓨터 판독가능 매체는 예를 들어, 판독 전용 메모리(ROM), 광학 또는 자기 디스크, CD-ROM(compact-disc read only memory)과 같은 보조적 또는 영구적인 장기 저장 디바이스를 포함할 수 있다. 컴퓨터 판독 가능 매체는 다른 휘발성 또는 비휘발성 저장 시스템일 수도 있다. 컴퓨터 판독 가능 매체는 예를 들어, 컴퓨터 판독 가능 저장 매체 또는 유형의 저장 디바이스로 간주될 수 있다.
다양한 일례 및 실시예가 개시되었지만, 다른 일례 및 실시예가 당업자에게 명백할 것이다. 다양한 개시된 일례 및 실시예는 예시를 위한 것이며 제한하려는 의도가 아니며, 진정한 범위는 다음 청구범위에 의해 표시된다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 디바이스에 의해 복수의 이미지 프레임들을 획득하는 단계;
    컴퓨팅 디바이스에 의해, 상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 단계;
    컴퓨팅 디바이스에 의해 그리고 상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 단계, 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함되고; 및
    컴퓨팅 디바이스에 의해, 합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 관심 영역들 각각은 얼굴을 포함하는 영역에 대응하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 관련된 각각의 품질 척도는, 이미지 프레임의 모션 블러, 이미지 프레임의 초점, 또는 이미지 프레임의 노출 중 적어도 하나에 기초하는 메트릭을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    각각의 품질 척도는 하나 이상의 식별된 관심 영역들 내에 위치한 픽셀들에 더 큰 가중치를 부여하기 위해 계산적으로 바이어싱되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    베이스 프레임들의 세트를 선택하는 단계는,
    상기 복수의 이미지 프레임들로부터, 이미지 프레임들의 복수의 서브세트를 선택하는 단계, 상기 서브세트 각각은 동일한 하나 이상의 관심 영역들을 포함하는 이미지 프레임들을 포함하며; 및
    각각의 서브세트로부터 그리고 서브세트 내의 각각의 이미지 프레임과 연관된 각각의 품질 척도에 기초하여, 베이스 프레임을 선택하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 제5항에 있어서,
    각각의 서브세트로부터 베이스 프레임을 선택하는 단계는 서브세트의 이미지 프레임들 중에서 최고 품질 척도를 갖는 이미지 프레임을 선택하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 제5항에 있어서,
    하나 이상의 관심 영역들을 식별하는 단계는 하나 이상의 관심 영역들 각각에 대한 고유 식별자들을 결정하는 단계를 포함하고, 각각의 서브세트는 동일한 고유 식별자들을 갖는 하나 이상의 이미지 프레임들을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 제7항에 있어서,
    상기 복수의 이미지 프레임들의 각각의 이미지 프레임은 각각의 회전 각도에서 카메라 디바이스에 의해 캡처되었으며, 이미지 프레임들의 서브세트를 결정하는 단계는,
    회전 각도에 기초하여 복수의 이미지 프레임들을 정렬하는 단계;
    상기 복수의 이미지 프레임들 중에서 시작 이미지 프레임을 지정하는 단계; 및
    시작 이미지 프레임에서 시작하여, 반복될 다음 이미지 프레임이 상기 시작 이미지 프레임과는 적어도 하나의 다른 고유 식별자를 갖는 이미지 프레임이 될 때까지 정렬 순서에 따라 복수의 이미지 프레임들을 통해 반복하는 단계
    를 포함하며,
    이미지 프레임들의 서브세트는 반복되었던 이미지 프레임들을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 제8항에 있어서,
    상기 회전 각도는 상기 카메라 디바이스의 수평 각도에 기초한 척도를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 제8항에 있어서,
    시작 이미지 프레임을 지정하는 단계는 상기 정렬 순서에서 제 1 이미지 프레임을 지정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 제8항에 있어서,
    상기 이미지 프레임들의 서브세트는 이미지 프레임들의 제 1 서브세트이고, 이미지 프레임들의 제 2 서브세트를 결정하는 단계는,
    복수의 이미지 프레임들 중에서 제 2 시작 이미지 프레임을 지정하는 단계; 및
    제 2 시작 이미지 프레임에서 시작하여, 반복될 다음 이미지 프레임이 상기 제 2 시작 이미지 프레임과는 적어도 하나의 다른 고유 식별자를 갖는 이미지 프레임이 될 때까지 정렬 순서에 따라 복수의 이미지 프레임들을 통해 반복하는 단계
    를 포함하고,
    이미지 프레임들의 제 2 서브세트는 상기 제 2 시작 이미지 프레임에서 시작하여 반복되었던 이미지 프레임들을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 제11항에 있어서,
    상기 제 2 시작 이미지 프레임을 지정하는 단계는, 상기 시작 이미지 프레임과 다른 적어도 하나의 다른 고유한 얼굴 식별자를 갖는 이미지 프레임을 지정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  13. 제8항에 있어서,
    상기 스티칭하는 단계는 상기 복수의 이미지 프레임들로부터의 각각의 이미지 프레임이 적어도 한번 반복된 이후에 수행되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  14. 제1항에 있어서,
    상기 스티칭하는 단계는, 하나 이상의 식별된 관심 영역들로부터의 픽셀들을 포함하는 이음매들(seams)에 계산적 바이어스(computational bias)를 추가하는 것을 수반하는 이음매 찾기 프로세스를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  15. 제14항에 있어서,
    상기 계산적 바이어스는 하나 이상의 식별된 관심 영역들로부터의 픽셀들을 포함하는 임의의 이음매에 페널티 텀(penalty term)을 추가하는 것을 포함하는 컴퓨터로 구현되는 방법.
  16. 제1항에 있어서,
    옵티컬 플로우 이음매 수리 단계(optical flow seam repair step)를 더 포함하며, 상기 옵티컬 플로우 이음매 수리 단계는,
    상기 선택된 베이스 프레임들의 세트에 대한 중첩 영역들을 결정하는 단계;
    중첩 영역들 각각에 대한 각각의 옵티컬 플로우 필드를 계산하는 단계; 및
    중첩 영역들을 정렬하도록 계산된 옵티컬 플로우 필드를 적용하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  17. 제1항에 있어서,
    상기 복수의 이미지 프레임들은 하나의 연속적인 스트림에서 카메라 디바이스에 의해 캡처되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  18. 제1항에 있어서,
    상기 복수의 이미지 프레임들은 카메라 디바이스의 전면 카메라를 사용하여 캡처되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  19. 컴퓨팅 디바이스로서,
    하나 이상의 프로세서들; 및
    적어도 컴퓨터 판독가능한 명령들을 저장하는 비일시적 데이터 저장소를 포함하고,
    상기 컴퓨터 판독가능한 명령들은 상기 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금,
    상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 동작;
    상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 동작, 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함되고; 및
    합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 동작
    을 포함하는 동작들을 수행하게 하는 컴퓨팅 디바이스.
  20. 적어도 컴퓨터 판독가능한 명령들을 저장하는 비일시적 데이터 저장소를 포함하는 제조 물품으로서,
    상기 컴퓨터 판독가능한 명령들은 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금,
    상기 복수의 이미지 프레임들에서 하나 이상의 이미지 프레임들 내의 하나 이상의 관심 영역들을 식별하는 동작;
    상기 복수의 이미지 프레임들의 각각의 이미지 프레임과 연관된 각각의 품질 척도(qualty measure)에 기초하여, 베이스 프레임들의 세트를 선택하는 동작, 하나 이상의 식별된 관심 영역들의 각각의 식별된 관심 영역은 선택된 베이스 프레임들의 세트의 적어도 하나의 베이스 프레임 내에 완전히 포함되고; 및
    합성 이미지를 생성하기 위해 상기 선택된 베이스 프레임들의 세트를 함께 스티칭하는 동작
    을 포함하는 동작들을 수행하게 하는 제조 물품.
KR1020227042960A 2020-06-02 2020-06-02 모바일 카메라로 파노라마 생성 KR20230008810A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/035692 WO2021247006A1 (en) 2020-06-02 2020-06-02 Panorama generation with mobile camera

Publications (1)

Publication Number Publication Date
KR20230008810A true KR20230008810A (ko) 2023-01-16

Family

ID=71842764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042960A KR20230008810A (ko) 2020-06-02 2020-06-02 모바일 카메라로 파노라마 생성

Country Status (7)

Country Link
US (1) US20230142865A1 (ko)
EP (1) EP4158585A1 (ko)
JP (1) JP2023527679A (ko)
KR (1) KR20230008810A (ko)
CN (1) CN115699075A (ko)
DE (1) DE112020006943T5 (ko)
WO (1) WO2021247006A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230131601A (ko) * 2022-03-07 2023-09-14 한화비전 주식회사 파노라마 감시 영상의 생성

Also Published As

Publication number Publication date
DE112020006943T5 (de) 2023-04-20
US20230142865A1 (en) 2023-05-11
EP4158585A1 (en) 2023-04-05
CN115699075A (zh) 2023-02-03
WO2021247006A1 (en) 2021-12-09
JP2023527679A (ja) 2023-06-30

Similar Documents

Publication Publication Date Title
US11599747B2 (en) Depth prediction from dual pixel images
JP6154075B2 (ja) オブジェクト検出及び分割の方法,装置,コンピュータプログラム製品
JP5996013B2 (ja) 立体画像の視差マップ推定のための方法,装置及びコンピュータプログラム製品
KR101773885B1 (ko) 이미지 인증을 이용한 증강현실 객체 제공 방법 및 제공 서버
US10237528B2 (en) System and method for real time 2D to 3D conversion of a video in a digital camera
CN104732210A (zh) 目标人脸跟踪方法及电子设备
US10452953B2 (en) Image processing device, image processing method, program, and information recording medium
US9756260B1 (en) Synthetic camera lenses
EP2659400A1 (en) Method, apparatus, and computer program product for image clustering
CN104246793A (zh) 移动设备的三维脸部识别
CN103329518A (zh) 拍摄***及其使用的摄像机控制装置、拍摄方法及摄像机控制方法、以及计算机程序
CN110111241B (zh) 用于生成动态图像的方法和装置
KR102367648B1 (ko) 전 방향 시차 영상 합성 방법, 장치 및 저장 매체
CN104735348A (zh) 双摄像头拍照方法和***
KR102337209B1 (ko) 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체
KR101176743B1 (ko) 객체 인식 장치 및 방법과 이를 이용한 정보 컨텐츠 제공 장치 및 정보 컨텐츠 관리 서버
CN108430032A (zh) 一种实现vr/ar设备位置共享的方法及设备
US20220198605A1 (en) 360 Degree Wide-Angle Camera With Baseball Stitch
KR20230008810A (ko) 모바일 카메라로 파노라마 생성
CN107733874B (zh) 信息处理方法、装置、计算机设备和存储介质
CN105631850B (zh) 对齐多视图扫描
CN113742430B (zh) 确定图数据中结点构成三角形结构个数的方法及***
JP2013065247A (ja) ステレオマッチング処理装置、ステレオマッチング処理方法、及び、プログラム
CN114007056A (zh) 一种立体全景图像的生成方法和装置
US20160239518A1 (en) Method, a system, an apparatus and a computer program product for image-based retrieval

Legal Events

Date Code Title Description
E902 Notification of reason for refusal