KR102185963B1 - 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출 - Google Patents

비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출 Download PDF

Info

Publication number
KR102185963B1
KR102185963B1 KR1020157029569A KR20157029569A KR102185963B1 KR 102185963 B1 KR102185963 B1 KR 102185963B1 KR 1020157029569 A KR1020157029569 A KR 1020157029569A KR 20157029569 A KR20157029569 A KR 20157029569A KR 102185963 B1 KR102185963 B1 KR 102185963B1
Authority
KR
South Korea
Prior art keywords
motion
homographic
video
frame
motion model
Prior art date
Application number
KR1020157029569A
Other languages
English (en)
Other versions
KR20150132846A (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 KR20150132846A publication Critical patent/KR20150132846A/ko
Application granted granted Critical
Publication of KR102185963B1 publication Critical patent/KR102185963B1/ko

Links

Images

Classifications

    • H04N5/2329
    • 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/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • 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/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • 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/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • 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/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/689Motion occurring during a rolling shutter mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

사용하기 쉬운 온라인 비디오 안정화 시스템 및 컴퓨터 구현 비디오 안정화 방법들이 설명된다. 비디오들이 캡처 후에 안정화되며, 따라서 안정화는 레거시 비디오 및 최근에 캡처된 비디오 양자를 포함하는 모든 형태의 비디오 장면에 대해 작용한다. 일 구현에서, 비디오 안정화 시스템은 완전히 자동적이어서, 비디오 자체 외의 다른 사용자에 의한 어떠한 입력 또는 파라미터 설정을 요구하지 않는다. 비디오 안정화 시스템은 캐스케이드 모션 모델(cascaded motion model)을 이용하여, 비디오의 상이한 프레임들에 적용되는 보정을 선택한다. 다양한 구현들에서, 비디오 안정화 시스템은 고주파 지터 아티팩트, 저주파 흔들림 아티팩트, 롤링 셔터 아티팩트, 큰 전경 모션, 열악한 조명, 장면 컷 및 길고 짧은 비디오들 양자를 검출 및 보정할 수 있다.

Description

비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출{CASCADED CAMERA MOTION ESTIMATION, ROLLING SHUTTER DETECTION, AND CAMERA SHAKE DETECTION FOR VIDEO STABILIZATION}
본 개시 내용은 일반적으로 비디오 콘텐츠의 조작에 관한 것으로서, 구체적으로는 비디오 콘텐츠 내의 카메라 모션의 안정화에 관한 것이다.
웹사이트들 상에서의 비디오 콘텐츠의 공유는 다수의 웹사이트에 의해 지원되는 세계적인 현상으로 발전하였다. 수천 개의 비디오가 매일 게시되며, 이러한 숫자는 비디오를 캡처하기 위한 도구들 및 기회들이 더 사용하기 쉽고 더 널리 보급됨에 따라 늘어나고 있다. 수백만 명의 사람이 게시된 비디오들을 시청한다.
종종, 게시된 비디오들을 처리하여, 이미지 및 오디오 품질을 개선할 필요가 있다. 이러한 처리는 비디오를 캡처하는 데 사용되는 물리적 카메라의 바람직하지 않은 모션으로 인해 비디오 내에 나타나는 흔들림을 줄이기 위해 비디오들을 보정하는 것을 포함할 수 있다. 예를 들어, 이동 전화 카메라들의 증가와 더불어, 자신들의 이동 장치들을 이용하여 자신들의 매일의 경험들을 캡처하는 일상적인 사용자들에 의한 비디오들의 업로드 및 공유가 크게 증가하였다. 이러한 비디오들의 상당한 부분은 흔들림에 취약한데, 그 이유는 특히 이동 피사체를 캡처할 때 또는 이동하면서 녹화하는 경우에는 핸드헬드 카메라를 안정적으로 유지하기가 어렵기 때문이다.
많은 현대의 카메라들은 일반적으로 정지 이미지들을 위한 이미지 안정화기들을 구비하지만, 그들에 의해 제공되는 안정화는 통상적으로 사용자가 캡처 동안 걷거나 뛸 때 유발되는 흔들림과 같은 심한 카메라 흔들림 또는 저주파 모션의 존재시에는 불충분하다. 큰 흔들림을 갖는 일상적인 비디오들의 양은 스포츠 및 다른 활동들에 특히 인기있는 착용식 및 1인칭 시점 카메라들의 성장과 더불어 단지 증가할 것으로 예측된다. 대부분의 통상적인 사용자들은 전문적인 안정화 장비(예를 들어, 삼각대, 이동식 촬영대, 스테디-캠)를 구비하지 않거나 사용하지 않는 경향을 가질 수 있다. 더구나, 구식 카메라들로 촬영되거나 필름으로부터 디지털화된 레거시 비디오들도 안정화로부터 이익을 얻을 수 있다.
게다가, 대부분의 통상의 사용자들은 전문적인 안정화 소프트웨어도 갖지 않는다. 또한, 전술한 전문적인 안정화 소프트웨어가 일반적으로 존재하지만, 이러한 소프트웨어 프로그램들은 다양한 품질 등급으로 비디오를 보정한다. 게다가, 이러한 소프트웨어 프로그램들 중 다수는 물리 카메라로부터 입수 가능한 메타데이터 없이는 또는 안정화가 어떻게 수행되어야 하는지에 관한 사용자로부터의 입력 없이는 기능하지 못할 수 있다.
발명의 요약
사용하기 쉬운 온라인 비디오 안정화 시스템 및 컴퓨터 구현 비디오 안정화 방법들이 설명된다. 비디오들이 캡처 후에 안정화되며, 따라서 안정화는 레거시 비디오 및 최근에 캡처된 비디오 양자를 포함하는 모든 형태의 비디오 장면에 대해 작용한다. 일 구현에서, 비디오 안정화 시스템은 완전히 자동적이어서, 비디오 자체 외의 다른 사용자에 의한 어떠한 입력 또는 파라미터 설정을 요구하지 않는다. 비디오 안정화 시스템은 캐스케이드 모션 모델(cascaded motion model)을 이용하여, 비디오의 상이한 프레임들에 적용되는 보정을 선택한다. 다양한 구현들에서, 비디오 안정화 시스템은 고주파 지터 아티팩트, 저주파 흔들림 아티팩트, 롤링 셔터 아티팩트, 큰 전경 모션, 열악한 조명, 장면 컷 및 길고 짧은 비디오들 양자를 검출 및 보정할 수 있다.
일 실시예에서, 비디오에 액세스하고, 비디오의 적어도 2개의 인접 프레임 각각에 대한 복수의 추적 특징(tracked feature)을 생성함으로써 적어도 부분적으로 카메라 경로가 생성되며, 인접 프레임들의 추적 특징들은 카메라의 프레임간 모션을 나타낸다. 복수의 모션 모델을 추적 특징들의 프레임간 모션에 적용하여, 적용된 모션 모델들 각각에 대한 복수의 특성을 추정하며, 모션 모델들 각각은 상이한 수의 자유도(DOF)를 포함하는 상이한 타입의 카메라 모션을 나타낸다. 모션 모델들 중 하나 이상은 모션 모델들의 특성들을 대응하는 임계치들과 비교함으로써 유효한 것으로 결정된다. 카메라 경로는 유효한 모션 모델들에 기초하여 인접 프레임들 사이에서 생성된다.
일 실시예에서, 비디오에 액세스하고, 비디오의 적어도 2개의 인접 프레임 각각에 대한 복수의 추적 특징을 생성함으로써 적어도 부분적으로 롤링 셔터가 보정되며, 인접 프레임들의 추적 특징들은 카메라의 프레임간 모션을 나타낸다. 호모그래픽 모델을 프레임간 모션에 적용하여, 호모그래픽 모델과 매칭되는 인라이어들(inliers)인 다수의 추적 특징을 결정한다. 호모그래픽 혼합 모델을 프레임간 모션에 적용하여, 호모그래픽 혼합 모델과 매칭되는 인라이어들인 다수의 추적 특징을 결정한다. 호모그래픽 혼합 인라이어들의 수가 호모그래픽 인라이어들의 수를 임계치만큼 초과하는 경우, 호모그래픽 혼합 모델을 비디오의 인접 프레임들에 적용함으로써 안정화된 비디오가 제작된다.
다른 실시예에서, 비디오에 액세스하고, 비디오의 적어도 2개의 인접 프레임 각각에 대한 복수의 추적 특징을 생성함으로써 적어도 부분적으로 롤링 셔터가 보정되며, 인접 프레임들의 추적 특징들은 카메라의 프레임간 모션을 나타낸다. 호모그래픽 모델을 프레임간 모션에 적용하여, 호모그래픽 모델과 매칭되는 인라이어들인 다수의 추적 특징을 결정한다. 다수의 호모그래픽 혼합 모델을 추적 특징들에 적용하여, 호모그래픽 혼합 모델들 각각에 대해, 각각의 호모그래픽 혼합 모델과 매칭되는 인라이어들인 다수의 추적 특징들을 결정하며, 호모그래픽 혼합 모델들은 상이한 강성들(rigidities)을 갖는다. 호모그래픽 혼합 인라이어들의 수가 호모그래픽 인라이어들의 수를 해당 호모그래픽 혼합 모델에 고유한 임계치만큼 초과하는 경우에 최소 강성 호모그래픽 혼합 모델이 결정된다. 최소 강성 호모그래픽 혼합 모델을 비디오의 인접 프레임들에 적용함으로써 안정화된 비디오가 생성된다.
일 실시예에서, 비디오에 액세스하고, 비디오의 복수의 프레임에 대해, 유사성 모션 모델의 복수의 자유도(DOF)의 값들을 추정함으로써 적어도 부분적으로 비디오가 안정화로부터 이익을 얻을 수 있는 것으로서 분류되며, 각각의 자유도는 비디오를 캠처하는 데 사용되는 오리지널 카메라의 상이한 카메라 모션을 나타내고, DOF들의 값들은 상이한 카메라 모션들의 크기들을 나타낸다. DOF들 각각에 대해 스펙트로그램이 생성되며, 각각의 스펙트로그램은 비디오의 복수의 인접 프레임을 포함하는 타임 윈도에 걸친 DOF들의 값들에 기초한다. 스펙트로그램들에 기초하여 복수의 흔들림 특징이 생성된다. 비디오는 흔들림 특징들에 기초하여 분류된다. 이어서, 비디오는 분류에 기초하여 안정화된다.
도 1은 일 실시예에 따른, 비디오 안정화 시스템을 포함하는 컴퓨팅 환경의 고레벨 블록도이다.
도 2는 비디오 안정화 시스템, 비디오 서버 및/또는 클라이언트로서 사용하기 위한 컴퓨터의 일례를 나타내는 고레벨 블록도이다.
도 3은 일 실시예에 따른, 비디오 안정화 시스템 내의 모듈들을 나타내는 고레벨 블록도이다.
도 4는 일 실시예에 따른, 비디오의 카메라 경로를 결정하기 위한 프로세스를 나타내는 흐름도이다.
도 5는 일 실시예에 따른, 비디오에서 롤링 셔터를 검출 및 보정하기 위한 프로세스를 나타내는 흐름도이다.
도 6은 일 실시예에 따른, 예시적인 추적 특징들의 모션 및 프레임 내의 그들의 모션을 나타낸다.
도 7은 일 실시예에 따른, 상이한 수의 자유도를 각자 갖는 다수의 모션 모델을 나타낸다.
도 8은 일 실시예에 따른, 비디오에서 카메라 흔들림을 검출하기 위한 프로세스를 나타내는 흐름도이다.
도 9a 및 9b는 일 실시예에 따른, 다수의 타임 윈도에 대한 그리고 유사성 모델의 상이한 자유도들에 대한 다수의 스펙트로그램을 나타내며, 도 9a는 제1의 짧은 길이 비디오 12 윈도의 스펙트로그램들을 나타내고, 도 9b는 제2의 더 긴 길이 비디오 40 윈도의 스펙트로그램들을 나타낸다.
도면들은 본 발명의 실시예를 단지 예시적인 목적으로 도시한다. 이 분야의 기술자는 아래의 설명으로부터 본 명세서에서 설명되는 본 발명의 원리들로부터 벗어나지 않고서 본 명세서에서 설명되는 구조들 및 방법들의 대안 실시예들이 이용될 수 있다는 것을 쉽게 인식할 것이다.
I. 개요
도 1은 일 실시예에 따른, 비디오 안정화 시스템을 포함하는 컴퓨팅 환경의 고레벨 블록도이다. 도 1은 네트워크(116)에 의해 접속된 비디오 서버(110), 비디오 안정화 시스템(112)("안정화 시스템") 및 클라이언트(114)를 도시한다. 설명의 간소화 및 명료화를 위해 하나의 클라이언트(114)만이 도 1에 도시된다. 컴퓨팅 환경(100)의 실시예들은 수천 또는 수백만 개의 클라이언트(114)는 물론, 다수의 비디오 서버(110) 및 안정화 시스템(112)을 가질 수 있다.
비디오 서버(110)는 (본 명세서에서 "비디오들"로서 지칭되는) 비디오 콘텐츠를 네트워크(116)를 통해 클라이언트들(114)로 서빙한다. 일 실시예에서, 비디오 서버(110)는 유튜브(상표)에 의해 제공되는 웹사이트에 위치하지만, 비디오 서버는 다른 엔티티에 의해서도 제공될 수 있다. 비디오 서버(110)는 다수의 비디오를 저장하는 데이터베이스 및 클라이언트들(114)과 상호작용하기 위한 웹 서버를 포함한다. 비디오 서버(110)는 데이터베이스 내의 비디오들에 대한 요청들을 클라이언트들(114)의 사용자들로부터 수신하고, 그에 응답하여 비디오들을 서빙한다. 게다가, 비디오 서버(110)는 클라이언트들(114)의 사용자들에 의해 그리고 다른 엔티티들에 의해 게시되는 비디오들을 수신, 저장, 처리(예로서, 안정화) 및 서빙할 수 있다.
클라이언트(114)는 비디오들을 업로드하고, 안정화 시스템(112)을 이용하여 비디오들의 안정화를 개시하고, 비디오 서버(110)로부터 수신되는 비디오들 및 다른 콘텐츠를 시청하는 것을 포함하는 활동들을 수행하기 위해 하나 이상의 사용자에 의해 사용되는 컴퓨터 또는 다른 전자 장치이다. 클라이언트(114)는 예를 들어 사용자가 비디오 서버 웹사이트에서 이용 가능한 비디오들을 브라우징 및 검색하는 것을 가능하게 하는 웹 브라우저(118)를 실행하는 개인용 컴퓨터일 수 있다. 다른 실시예들에서, 클라이언트(114)는 컴퓨터 외의 다른 네트워크 가능 장치, 예로서 개인 휴대 단말기(PDA), 이동 전화, 페이저, 텔레비전 "셋톱 박스" 등이다.
네트워크(116)는 그에 접속된 엔티티들 간의 통신을 가능하게 한다. 일 실시예에서, 네트워크(116)는 인터넷이며, 표준 통신 기술들 및/또는 프로토콜들을 사용한다. 따라서, 네트워크(116)는 이더넷, 802.11, WiMAX(worldwide interoperability for microwave access), 3G, DSL(digital subscriber line), ATM(asynchronous transfer mode), 인피니밴드(InfiniBand), PCI 익스프레스 어드밴스트 스위치(PCI Express Advanced Switching) 등과 같은 기술들을 이용하는 링크들을 포함할 수 있다. 유사하게, 네트워크(116) 상에서 사용되는 네트워킹 프로토콜들은 MPLS(multiprotocol label switching), TCP/IP(transmission control protocol/Internet protocol), UDP(User Datagram Protocol), HTTP(hypertext transport protocol), SMTP(simple mail transfer protocol), FTP(file transfer protocol) 등을 포함할 수 있다. 네트워크(116)를 통해 교환되는 데이터는 HTML(hypertext markup language), XML(extensible markup language) 등을 포함하는 기술들 및/또는 포맷들을 이용하여 표현될 수 있다. 게다가, 링크들의 전부 또는 일부는 SSL(secure sockets layer), TLS(transport layer security), VPN(virtual private network), IPsec)(Internet Protocol security) 등과 같은 전통적인 암호화 기술들을 이용하여 암호화될 수 있다. 다른 실시예에서, 엔티티들은 전술한 것들 대신에 또는 그들에 더하여 맞춤형 및/또는 전용 데이터 통신 기술들을 이용한다.
안정화 시스템(112)은 입력 비디오를 수신하고, 비디오의 프레임들의 픽셀 콘텐츠를 변경함으로써 비디오를 안정하도록 구성된다. 안정화 시스템(112)은 안정화된 비디오를 출력한다. 안정화 프로세스의 일부로서, 안정화 시스템(112)은 비디오를 녹화하기 위해 처음에 사용된 카메라의 이차원(2D) 모션을 설명하는 카메라 경로를 결정한다. 안정화 시스템(112)은 이 카메라 경로를 단지 비디오의 안정화에 사용하는 것만이 아니라 출력할 수도 있다. 비디오를 안정화하기 위해, 카메라 경로는 카메라의 모션으로 인한 비디오의 프레임들 내의 픽셀들의 모션을 가능한 정도까지 무효화하는 데 사용된다. 일 실시예에서, 출력된 안정화된 비디오는 결정된 카메라 경로에 따라 프레임들 간의 모션을 상쇄시키도록 각각의 프레임의 픽셀들의 위치들을 조정한 오리지널 비디오의 사본이다.
도 2는 비디오 서버(110), 안정화 시스템(112) 및/또는 클라이언트(114)로서 사용하기 위한 컴퓨터(200)의 일례를 나타내는 고레벨 블록도이다. 칩셋(204)에 결합된 적어도 하나의 프로세서(202)가 도시된다. 칩셋(204)은 메모리 제어기 허브(220) 및 입출력(I/O) 제어기 허브(222)를 포함한다. 메모리(206) 및 그래픽 어댑터(212)가 메모리 제어기 허브(220)에 결합되고, 디스플레이 장치(218)가 그래픽 어댑터(212)에 결합된다. 저장 장치(208), 키보드(210), 포인팅 장치(214) 및 네트워크 어댑터(216)가 I/O 제어기 허브(222)에 결합된다. 컴퓨터(200)의 다른 실시예들은 상이한 아키텍처들을 갖는다. 예를 들어, 메모리(206)는 일부 실시예들에서 프로세서(202)에 직접 결합된다.
저장 장치(208)는 하드 드라이브, 컴팩트 디스크 판독 전용 메모리(CD-ROM), DVD 또는 반도체 메모리 장치와 같은 비일시적 컴퓨터 판독 가능 저장 매체이다. 메모리(206)는 프로세서(202)에 의해 사용되는 명령어들 및 데이터를 유지한다. 포인팅 장치(214)는 마우스, 트랙볼 또는 다른 타입의 포인팅 장치이며, 키보드(210)와 연계하여 컴퓨터 시스템(200)에 데이터를 입력하는 데 사용된다. 그래픽 어댑터(212)는 디스플레이 장치(218) 상에 이미지들 및 다른 정보를 표시한다. 네트워크 어댑터(216)는 컴퓨터 시스템(200)을 네트워크(116)에 결합한다. 컴퓨터(200)의 일부 실시예들은 도 2에 도시된 것들 외의 그리고/또는 상이한 컴포넌트들을 갖는다.
컴퓨터(200)는 본 명세서에서 설명되는 기능을 제공하기 위한 컴퓨터 프로그램 모듈들을 실행하도록 적응된다. 본 명세서에서 사용될 때, 용어 "모듈"은 지정된 기능을 제공하는 데 사용되는 컴퓨터 프로그램 명령어들 및 다른 논리를 지칭한다. 따라서, 모듈은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 일 실시예에서, 실행 가능 컴퓨터 프로그램 명령어들로 형성되는 프로그램 모듈들은 저장 장치(208) 상에 저장되고, 메모리(206) 내로 로딩되고, 프로세서(202)에 의해 실행된다.
도 1의 엔티티들에 의해 사용되는 컴퓨터들(200)의 타입들은 실시예 및 엔티티에 의해 사용되는 처리 능력에 따라 다를 수 있다. 예를 들어, 이동 전화인 클라이언트(114)는 통상적으로 제한된 처리 능력, 작은 디스플레이(218)를 가지며, 포인팅 장치(214)를 갖지 않을 수 있다. 이와 달리, 안정화 시스템(112)은 본 명세서에서 설명되는 기능을 제공하도록 함께 동작하는 다수의 서버를 포함할 수 있다. 아래의 설명으로부터 명백하듯이, 비디오를 안정화하기 위한 안정화 시스템(112)의 동작들은 컴퓨터에 의한 그들의 구현을 요구할 만큼 충분히 복잡하며, 따라서 사람의 마음에 의해 정신적으로 완전히 수행되지는 못한다.
II. 비디오 안정화
도 3은 일 실시예에 따른, 비디오 안정화 시스템(112) 내의 모듈들을 나타내는 고레벨 블록도이다. 전술한 바와 같이, 안정화 시스템(112)은 입력 비디오(302)를 수신하고, 비디오를 안정화하고, 안정화된 비디오(304) 및/또는 카메라 경로(306)를 출력하도록 구성된다.
일 실시예에서, 안정화 시스템(112)은 모션 추정 시스템 모듈(310), 카메라 경로 분석 모듈(320), 카메라 경로 안정화 모듈(330), 안정화된 비디오 생성 모듈(340), 데이터 저장 모듈(350) 및 흔들림 검출 모듈(360)을 포함한다. 안정화 시스템(112)의 일부 실시예들은 여기서 설명되는 것들과 다른 그리고/또는 추가적인 모듈들을 갖는다. 유사하게, 기능들은 여기서 설명되는 것과 다른 방식으로 모듈들 사이에 분산될 수 있다. 소정의 모듈들 및 기능들이 안정화 시스템(112)의 다른 모듈들 및/또는 비디오 서버(110) 및 클라이언트(114)를 포함하는 네트워크(116) 상의 다른 엔티티들 내에 포함될 수 있다.
데이터 저장 모듈(350)은 안정화 시스템(112)의 다양한 모듈들에 의해 사용되는 데이터를 저장한다. 저장되는 데이터는 예를 들어 실행되고 있는 비디오들의 프레임들 및/또는 다른 부분들, 추적 특징들, 추정된 모션 모델들, 안정화 프로세스와 관련된 특성들 및 임계치들, 카메라 경로들, 및 안정화 프로세스 동안 생성된 데이터의 다른 중간 아이템들을 포함한다. 이러한 리스트는 포괄적이 아니라 예시적인 것을 의도한다.
II.A. 모션 추정
모션 추정 모듈(310)은 입력 비디오(302)의 프레임들을 분석하여, 입력 비디오(302)를 캡처하는 데 사용된 카메라의 오리지널 2D 카메라 모션을 특성화하고, 특성화된 출력을 카메라 경로로서 제공하며, 이러한 기능을 수행하기 위한 하나의 수단이다. 비디오 내의 시간들(t, t+1)을 나타내는 한 쌍의 인접 프레임(It, It+1) 각각에 대해, 모션 추정 모듈(310)은 한 세트의 추적 특징(Tt, Tt + 1)의 프레임(It) 내의 그들의 초기 위치들로부터 프레임(It+1) 내의 그들의 최종 위치들로의 이동에 기초하여 카메라 경로를 특성화한다. 한 세트의 추적 특징(T)은 각각의 프레임의 기본 픽셀들로부터 생성되며, 인접 프레임들 간의 그들의 이동은 한 세트의 프레임간 모션(Mt)으로서 표현된다. 프레임간 모션들(Mt)을 이용하여, 모션 추정 모듈(310)은 프레임(It)에 대한 한 세트의 모션 모델(Ft)을 추정하며, 프레임(It)의 픽셀들에 대한 추정된 모션 모델들(Ft)의 적용은 프레임 It와 It+1 간의 픽셀들의 모션을 설명한다.
그러나, 추정된 모션 모델들 모두가 픽셀들의 프레임간 모션을 유효하게 특성화하지는 않을 것이며, 따라서 모션 추정 모듈(310)은 어느 추정 모션 모델들이 프레임들(It, It+1) 사이의 카메라 경로에서 사용하기에 유효한지를 결정하도록 더 구성된다. 각각의 프레임 쌍에 대한 유효 모션 모델들만이 카메라 경로에서 사용된다. 일 실시예에서, 카메라 경로를 결정하기 위해, 모션 추정 모듈(310)은 추적 모듈(312) 및 캐스케이드 모션 모듈(314)을 포함한다. 모션 추정이 프레임 쌍들의 레벨에서 수행됨에 따라, 모션 추정은 비디오의 상이한 부분들(또는 클립들)에 대해 병렬로 실행되는 모션 추정을 여러 컴퓨터에 걸쳐 분산시킴으로써 병렬화될 수 있다.
II.A.i. 추적
추적 모듈(312)은 입력 비디오(312)의 각각의 프레임(It)에 대한 한 세트의 추적 특징(Tt)을 생성하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 추적 특징들은 비디오 프레임 내에 나타내는 물체들에 대한 마커들로서 작용한다. 추적 모듈(312)은 프레임 쌍들 간의 개별적인 추적 특징들의 모션을 추적하여, 비디오 내의 물체들이 어떻게 프레임들 사이에서 이동하는지를 추적한다. 전반적으로, 한 쌍의 인접 프레임 사이의 추적 특징들의 모션(Mt)을 분석하여, 프레임 내의 물체 모션을 캡처링 카메라의 모션으로부터 분리할 수 있다.
추적 모듈(312)은 프레임의 픽셀들에 코너 측정(예로서, 해리스(Harris) 코너 측정)을 적용함으로써 프레임에 대한 추적 특징들(Tt)을 생성한다. 코너 측정은 "코너"가 나타나는, 즉 큰 픽셀 컬러 그래디언트(gradient)의 수직 및 수평 라인들이 만나는 프레임 내의 각각의 픽셀에서 추적 특징을 생성한다. 더 구체적으로, 추적 특징들은 프레임의 그래디언트의 자동 상관 행렬의 최소 고유값이 비극대 억제(non-maxima suppression) 후에 임계치 이상인 픽셀들에 위치한다. 추적 특징들은 한 세트의 이차원(2D) 포인트들로서 저장될 수 있으며, 각각의 추적 특징은 비디오의 프레임의 데카르트 좌표계 내에서 x 및 y축 좌표를 갖는다. 따라서, 프레임의 i 번째 추적 특징(Tt,i) 및 프레임(It+1)에 대한 그의 모션(Mt,i)은 아래와 같이 표현될 수 있다.
<수학식 0>
Figure 112015099461616-pct00001
또한, 추적 특징들을 생성함에 있어서, 추적 모듈(312)은 프레임을 상이한 크기들(예로서, 4x4 또는 총 16 그리드, 8x8 그리드 및 16x16 그리드)을 갖는 그리드들의 다수의 층으로 분할할 수 있다. 추적 특징으로 간주될 수 있는 것에 대한 그래디언트 임계치는 그리드의 셀마다 생성되는 추적 특징들의 수를 정규화하기 위해 그리드별로 설정될 수 있다. 이것은 프레임의 각각의 부분으로부터 발생하는 추적 특징들의 수를 균형화하는 것을 도우며, 따라서 추적 특징들은 일부 셀들을 다른 셀들보다 과도하게 표현하지 않는다. 그와 같이, 비교적 짧은 거리에 걸쳐 많은 양의 컬러 변화를 갖는 셀들은 더 균일한 컬러를 갖는 셀들보다 반드시 많은 추적 특징을 갖지는 않을 것이다. 프레임의 균일 영역들을 처리하기 위해 절대 최소 임계화가 실행될 수 있다. 절대 최소 임계화는 특정 영역들이 추적 특징들을 갖지 않을 수 있는 것으로 결론지을 수 있다. 다른 추적 특징들에 근접하는(예로서, 5 픽셀 내에 있는) 추적 특징들은 추적 특징들이 셀 내에 그리고 프레임 전체 내에 확산되는 것을 보증하도록 집계 또는 필터링될 수 있다.
도 6은 일 실시예에 따른, 예시적인 추적 특징들의 모션 및 프레임 내의 그들의 모션(Mt)을 나타낸다. 일반적으로, 추적 특징들 중 적어도 일부는 다른 근처의 추적 특징들의 모션과 일치하지 않는 모션들을 나타낼 것이다. 추적 특징들은 이러한 아웃라이어 추적 특징들을 식별 및 필터링하도록 분석된다. 불일치 모션은 예를 들어 다른 근처의 추적 특징들과 실질적으로 다른(예로서, 반대) 방향으로 움직이는(Mt,i) 추적 특징(Tt,i)을 포함할 수 있다. 상이한 방향을 나타내는 것 및 이웃을 나타내는 것에 대한 임계치는 여러 상이한 레벨에서 여러 번 결정된다. 전술한 바와 같이 여러 레벨의 그리드들(예로서, 4x4 또는 총 16 그리드, 8x8 그리드 및 16x16 그리드)이 사용되며, 각각의 레벨의 그리드는 이웃 추적 특징을 구성하는 것 및 실질적으로 다른 방향을 구성하는 것에 대한 상이한 임계치를 갖는다.
일반적으로, 그리드의 셀 내의 추적 특징들은 인접하는 것으로 간주된다. 셀의 추적 특징들의 모션의 방향은 그 셀의 추적 특징들 각각의 모션들의 방향들의 집계(예로서, 평균)에 기초하여 결정된다. 실질적으로 다른 방향에 대한 임계 허용 한계는 더 큰 그리드들(예로서, 16x16)에 대해 추적 특징들 간에 더 높게(예로서, 고도의 균일성을 요구함) 설정될 수 있고, 더 작은 그리드들(예로서, 4x4)에 대해 추적 특징들 간에 더 낮게(예로서, 더 적은 균일성을 요구함) 설정될 수 있다. 하나 이상의 레벨에서 방향성 임계치를 충족시키지 못하는 추적 특징들은 폐기된다. 일 실시예에서, 추적 특징들은 RANSAC(random sample consensus) 알고리즘을 이용하여 필터링된다.
예를 들어, 예시적인 그리드 내의 하나를 제외한 모든 추적 특징이 좌측 병진 이동을 나타낼 수 있는 반면, 나머지 추적 특징은 우측 병진 이동을 나타낸다. 결과적으로, 우측으로 이동하는 추적 특징은 필터링되고, 추가적인 처리에서 고려되지 않을 수 있다.
II.A.ii. 캐스케이드 모션 추정
캐스케이드 모션 모듈(314)은 인접 프레임들의 쌍들 간의 추적 특징들(Tt)의 세트의 프레임간 모션들(Mt)의 세트를 이용하여 오리지널 카메라 경로를 결정하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 이를 행하기 위해, 캐스케이드 모션 모듈(314)은 프레임간 모션들(Mt)의 세트를 선형 모션 모델들(Ft)의 세트에 피팅한다. 모션 모델들 각각은 상이한 수의 자유도(DOF)를 갖는 상이한 타입의 모션을 나타낸다. 캐스케이드 모션 모듈(314)의 출력 카메라 경로는 프레임들의 각각의 쌍에 대해 프레임간 모션들의 유효 표현들인 것으로 결정되는 추정된 모션 모델들이다.
편의를 위해, 한 쌍의 인접 프레임(It, It+1)에 대해 유효한 것으로 결정되는 모션 모델들의 세트는 쌍 내의 제2 프레임(It+1)에 할당된다. 일반적으로, 한 세트의 유효 모션 모델이 제1 프레임을 제외한 비디오 내의 각각의 프레임에 대해 할당되는 것으로 결정되는데, 이는 비디오의 제1 프레임 내에는 분석될 모션이 존재하지 않기 때문이다. 비디오의 제1 프레임에 대해, 항등 모션 모델이 초기화를 위해 사용된다. 후술하는 바와 같이, 프레임(It)의 유효 모션 모델들을 적용하는 것은 오리지널 카메라 모션에 대해 안정화된 프레임(It+1)인 안정화된 비디오 프레임(Jt + 1)을 생성하는 데 사용되는 프로세스의 적어도 일부이다. 대안 실시예에서, 유효 모션 모델들의 세트는 쌍 내의 제1 프레임에 대신 할당될 수 있다.
II.A.ii.a 모션 모델들의 추정
도 7은 일 실시예에 따른, 상이한 수의 자유도를 각자 갖는 다수의 모션 모델을 나타낸다. 일 실시예에서, 적어도 4개의 모션 모델(Ft (k))이 고려된다. 제1 모션 모델(Ft (0))은 프레임의 x축 및 y축을 따른 모션을 검출하기 위한 2개의 자유도를 갖는 병진 이동 모델이다. 제2 모션 모델(Ft (1))은 회전들 및 균일한 스케일링(예로서, 프레임의 크기)을 검출하는 것은 물론, 병진 이동을 검출하기 위한 4개의 자유도를 갖는 유사성 모델이다. 제3 모션 모델(Ft (2))은 원근 효과, 왜곡, 불균일 스케일을 검출하는 것은 물론, 유사성 및 병진 이동을 검출하기 위한 8개의 자유도를 갖는 호모그래픽 모델이다. 제4 모션 모델(Ft (3))은 8 x n개의 자유도를 갖는 호모그래픽 혼합 모델이며, 여기서 n은 호모그래픽 혼합 모델 내의 혼합물들의 수이다. 일 실시예에서, n = 10이다. 호모그래픽 혼합 모델은 호모그래피, 유사성 및 병진 이동을 검출하는 것에 더하여 롤링 셔터 왜곡(예로서, 동요)을 검출한다. 따라서, 모션 모델의 DOF들의 수가 증가함에 따라, 각각의 모션 모델은 새로운 타입의 카메라를 나타내는 새로운 자유도들을 포함하며, 더 낮은 DOF의 모션 모델들에 의해 표현되는 모션들에 대한 DOF들도 포함한다. 예시적인 모션 모델들이 아래에서 더 설명된다.
모션 모델들 각각은 그들 자신의 파라미터들을 갖도록 구성될 수 있으며, 각각의 파라미터는 모션 모델의 하나의 DOF를 나타낸다. 따라서, 2개의 상이한 프레임 쌍 간의 2개의 상이한 병진 이동은 2개의 상이한 병진 이동 모델(F(0))에 피팅될 것이며, 그들 각각은 그들 자신의 파라미터(또는 DOF) 구성들을 갖는다. 캐스케이드 모션 모듈(314)은 모션 모델들의 파라미터들을 추정하여, 프레임간 모션들(Mt)에 가장 잘 피팅되는 각각의 모션 모델의 구성을 결정한다. 모션 모델들에 대한 파라미터들이 결정되면, 추정된 모션 모델들은 그들이 적용될 "올바른" 모델들인지의 여부를 결정하도록 평가될 수 있다. 즉, 그들은 그들이 프레임들 간의 추적 특징들의 모션(Mt)을 나타내는지의 여부를 결정하기 위해 유효성에 대해 평가된다. 이것은 아래의 다음 섹션에서 더 설명된다.
프레임간 모션(Mt)에 대해 각각의 모션 모델의 파라미터들을 추정하기 위해, 주어진 모션 모델의 파라미터들은 다음을 최소화하도록 결정된다.
<수학식 1>
Figure 112015099461616-pct00002
여기서, 각각의 i는 프레임 쌍의 2개의 대응하는 추적 특징 사이의 프레임간 모션을 나타내고, p는 정규화 팩터의 차수이다(예로서, 유클리드 놈에 대해 p = 2이다). 더 구체적으로, 일 실시예에서, 모션 모델들은 아래의 반복 재가중 최소 제곱 함수를 이용하여 프레임간 모션에 피팅된다.
<수학식 2>
Figure 112015099461616-pct00003
여기서
Figure 112015099461616-pct00004
.
여기서, wi는 역 피팅 에러 가중치들이다. wi의 값이 더 클수록, 더 잘 피팅된다. 모델에 피팅되는 인라이어 추적 특징들은 1보다 훨씬 큰 값을 가지며, 아웃라이어들은 1에 가깝거나 1보다 작은 값들을 갖는 작은 가중치들을 갖는다. 각각의 모션 모델(Ft)의 파라미터들은 식 2의 합을 최소화함으로써 추정된다.
각각의 모션 모델의 파라미터들(DOF)은 아래와 같다. 병진 이동 모션 모델(Ft (0))은 가중치들(wi)을 갖는 추적 특징들의 가중 평균 병진 이동으로서 추정되며, 따라서 다음과 같다.
<수학식 3>
Figure 112015099461616-pct00005
여기서, tx 및 ty는 각각 x축 및 y축을 따른 카메라의 병진 이동의 크기를 나타낸다. 병진 이동의 크기는 픽셀 단위로 또는 크로핑 전의 프레임 폭/높이의 퍼센트로서 표현될 수 있다. 위에서와 같이, tx 및 ty의 값들도 해당 프레임에 대한 병진 이동 모델의 DOF들의 값들을 나타낸다고 할 수 있다.
유사성 모션 모델(Ft (1))은 다음과 같도록 추정된다.
<수학식 4>
Figure 112015099461616-pct00006
여기서, a는 프레임-상수 스케일 파라미터이고, b는 회전을 나타내며, t는 x 및 y에서의 병진 이동들이다.
호모그래픽 모델(Ft (2))은 3x3 행렬을 이용하여 추정되며, 여기서 h33이 1이 되도록 행렬 요소들을 정규화함으로써 업-투-스케일 모호성(up-to-scale ambiguity)이 해결된다. 호모그래픽 모델의 행렬 요소들은 QR 분해를 통해 해결되는 불균일 직접 선형 변환(DLT) 알고리즘의 가중 버전을 이용하여 추정된다.
<수학식 5>
Figure 112015099461616-pct00007
여기서, 작은 프레임간 회전 및 스케일을 가정하면, wT = (w1, w2)T는 프레임-상수 원근 부분이고, a 및 d는 프레임-상수 스케일 파라미터들이고, t는 x 및 y에서의 병진 이동들이고, c 및 b는 각각 회전 및 왜곡이다.
호모그래픽 혼합 모델(Ft (3))은 다수(예로서, 10)의 상이한 호모그래픽 모델의 혼합은 물론, 상이한 구현들 사이에서 값이 변할 수 있는 조정자(regularizer)를 이용하여 추정된다. 호모그래픽 혼합 모델은 상이한 호모그래픽 모델을 프레임의 각각의 부분에 적용한다. 더 구체적으로, 블록은 프레임 내의 연속 스캔 라인들의 세트이고, 프레임 내의 스캔 라인들의 전체 수는 스캔 라인들의 10개 블록으로 분할된다. 따라서, 상이한 호모그래픽 모델이 각각의 블록에 적용된다. 조정자는 호모그래픽 혼합 모델의 강성에 영향을 준다. 예를 들어, 충분히 높은 값(예로서, 1)의 조정자 값은 호모그래픽 혼합 모델을 강하게 하여, 호모그래픽 모델(Ft (2))과 동일해지게 한다. 더 작은 조정자 값(예로서, 0과 1 사이의 값)은 다른 혼합물들/블록들의 기여를 증가시켜, 호모그래픽 혼합 모델이 프레임간 모션 내의 롤링 셔터 동요를 더 양호하게 모델링하게 한다.
호모그래픽 혼합 모델(Ft (3))은 다음 식에 의해 표현된다.
<수학식 6>
Figure 112015099461616-pct00008
여기서, wT = (w1, w2)T는 프레임-상수 원근 부분이고, a 및 d는 프레임-상수 스케일 파라미터들이고, tk는 x 및 y에서의 블록 가변 병진 이동들이고, ck 및 bk는 블록 가변 회전 및 왜곡이다. 10개의 블록(k)에 대해, Ft (3)은 4x10+4 = 44개의 자유도를 갖는다.
프레임간 모션들(Mt)에 기여하는 추적 특징들(Tt)은 호모그래픽(Ft (2)) 및 호모그래픽 혼합 모델(Ft (3)) 파라미터들의 추정 전에 필터링된다. 이러한 필터링을 수행하기 위해, 유사성 모델(Ft (1))에 대한 파라미터들이 먼저 추정된다. 추정된 유사성 모델과 매칭되지 않는 하나 이상의 추적 특징의 세트가 결정된다. 이러한 매칭되지 않는 추적 특징들은 식 2의 적어도 제1 반복에 대해 호모그래픽 및 호모그래픽 혼합 모델 파라미터들의 추정에 있어서의 사용으로부터 필터링된다. 이것은 예를 들어 그들의 가중치들(wi)을 0으로 설정함으로써 달성될 수 있다. 이것은 호모그래픽 및 호모그래픽 혼합 모델들의 파라미터들을 큰 전경 모션들(예로서, 카메라에 매우 가까운 모션들)로부터 격리하는 것을 돕는다.
모델들의 파라미터들을 결정함에 있어서, 추적 특징들의 가중치들은 대안 실시예에서 프레임의 에지에 가까운 추적 특징들에 더 큰 가중치를 부여하고, 프레임의 중심에 가까운 추적 특징들에 더 작은 가중치를 부여하도록 바이어스될 수 있다. 이것은 예를 들어 프레임의 x 및 y 좌표 축들을 따른 역 가우스 함수를 이용하여 달성될 수 있다. 이것은 카메라 프레임에 가까운 얼굴들 및 다른 물체들이 프레임의 중심에 배치되는 경향이 있다는 예측에 기초한다.
II.A.ii.b 유효 추정 모션 모델들의 결정
임의의 주어진 쌍의 프레임들 간의 추적 특징들(Tt)의 프레임간 모션들(Mt)은 추정된 모션 모델들 중 임의의 모션 모델, 일부 모션 모델 또는 모든 모션 모델과 같이 보일 수 있거나, 어느 것과도 같지 않게 보일 수 있다. 예를 들어, 장면이 (예로서, 상이한 깊이 층들 또는 큰 전경 모션들로 인해) 엄격히 평면이 아닌 경우, 병진 이동 모션 모델은 (다른 모션 모델들에 비해 최소 수의 안정화 아티팩트를 생성하는 병진 이동 모델을 이용하여) 모션을 설명하는 데에 충분하지 못할 것이다. 프레임간 모션에 대한 모션 모델들의 올바른(또는 유효한) 세트의 적용은 그러한 프레임들을 안정화하고, 잔여 흔들림을 유발하는 적어도 일부 역안정화를 제거할 것이다. 올바르지 않은 모델들의 적용은 처음에는 존재하지 않은 왜곡들을 카메라 경로 및 안정화된 비디오 양자 내에 유발한다.
더 구체적으로, 병진 이동 모델이 유효한 경우, 그의 적용의 결과는 흔들림의 감소일 것이다. 병진 이동 모델이 무효한 경우, 그의 적용의 결과는 추가적인 흔들림 왜곡일 것이다. 유사성 모델이 유효한 경우, 그의 적용의 결과는 (사실상 주로 원근법에서) 고주파 강성 동요 잔여 흔들림의 유발일 것이다. 유사성 모델이 무효한 경우, 그의 적용의 결과는 추가적인 흔들림 왜곡일 것이다. 호모그래픽 모델이 유효한 경우, 그의 적용의 결과는 롤링 셔터가 존재하지 않는 경우에는 0에 가까운 자연 흔들림일 것이고, 롤링 셔터가 존재할 경우에는 동요 잔여 흔들림일 것이다. 호모그래픽 모델이 무효한 경우, 그의 적용의 결과는 원근 뒤틀림 에러들일 것이다. 호모그래픽 혼합 모델이 유효한 경우, 그의 적용의 결과는 0에 가까운 잔여 흔들림일 것이다. 호모그래픽 혼합 모델이 무효한 경우, 그의 적용의 결과는 비강성 파형 뒤틀림 왜곡들일 것이다.
캐스케이드 모션 모듈(314)이 모션 모델들(Ft)의 세트에 대한 파라미터들을 계산하면, 모션 모델들은 어느 모션 모델들(Ft)이 프레임간 모션과 유효하게 매칭되는지를 결정하기 위해 추적 특징들(Tt, Tt +1) 및 프레임간 모션들(Mt)의 세트에 피팅된다. 일반적으로, 모션 모델에 의해 표현되는 모션의 타입이 드러난 프레임간 모션과 하나 이상의 특성에 대해 매칭되는 경우에 모션 모델은 프레임간 모션에 대해 유효한 것으로 간주된다. 이러한 특성들은 모션 모델과 프레임간 모션들 사이의 피팅의 정도를 나타낸다. 특성들은 모션 모델들 사이에서 다르다.
표 1은 일 실시예에 따른, 유효성 평가를 위한 특성들의 예시적인 세트를 나타낸다. 표 1은 모션 모델들, 각각의 모션 모델과 관련된 특성들, 및 임계치를 포함한다. 일부 특성들은 프레임간 모션들에 대해 추정된 모션 모델들의 파라미터들일 뿐이다. 다른 특성들은 추적 특징들(Tt, Tt +1) 및 프레임간 모션들(Mt)에 대한 추정 모션 모델의 피팅으로부터 도출될 수 있다. 모델과 매칭되는 추적 특징들은 인라이어들로서 지칭될 수 있으며, 모델과 매칭되지 않는 추적 특징들은 아웃라이어들로서 지칭될 수 있다. 추적 특징이 임계 허용 한계 내에서 추정 모션 모델에 피팅되는 경우에 추적 특징은 인라이어이다. 예를 들어, 모션 모델이 1.5 픽셀의 정확도 내에서 추적 특징(Tt,i)의 모션(Mt,i)을 예측한 경우, 추적 특징은 인라이어로서 간주될 수 있다.
일 실시예에서, 단일 특성이 그의 대응하는 임계치를 충족시키지 못하는 경우, 모션 모델은 무효이다. 다른 실시예들에서는, 모션 모델이 유효한지의 여부를 결정하기 위해 다른 특성들, 임계치들 및 요구들이 정의될 수 있다.
Figure 112015099461616-pct00009
병진 이동 특성들과 관련하여, 추적 특징들의 수는 추적 특징 인라이어들의 전체 수이다. 병진 이동 크기는 병진 이동 모델에 의해 추정되는 프레임간 모션의 양이다. 이것은 예를 들어 모션 모델의 병진 이동 크기 파라미터로부터 결정될 수 있다. 병진 이동의 표준 편차는 프레임들 간의 추적 특징들의 개별 병진 이동들에 기초하여 결정될 수 있다. 가속도는 하나 이상의 이전 프레임 쌍(예로서, 5개의 이전 프레임 쌍)으로부터의 평균 픽셀 시프트의 중앙 값에 대한 한 쌍의 프레임 간의 추적 특징들의 평균 픽셀 시프트에 기초하여 결정될 수 있다.
유사성 특성들과 관련하여, 추적 특징들의 수는 병진 이동 모델에 대한 것과 동일하다. 프레임 면적의 백분율로서의 특징 커버리지는 고정된 크기를 갖는 박스를 각각의 특징 주위에 배치함으로써 그리고 모든 박스들의 합집합을 취함으로써 결정된다. 박스들의 합집합 내의 면적을 전체 프레임 면적과 비교하여, 특징 커버리지를 결정한다. 스케일 변화 및 회전 특성들은 유사성 모델의 스케일 변화 및 회전 파라미터들 각각에 기초하여 결정될 수 있다.
호모그래픽 특성들과 관련하여, 스케일 변화 및 회전 변화 특성들은 유사성 모델에서와 동일하다. 호모그래픽 특성들은 호모그래픽 모델로부터의 원근 파라미터의 변화에 기초하여 결정될 수 있는 원근 특성도 포함할 수 있다. 원근 특성에 대한 임계치는 정규화 단위이거나, 단위가 없거나, 예를 들어 4x10-4의 값을 가질 수 있다. 그리드 커버리지 특성은 인라이어 추적 특징들에 의해 커버되는 프레임의 양의 계산을 나타낸다. 그리드 커버리지 특성은 프레임 쌍의 추적 특징들 위에 그리드(예로서, 10x10)를 오버레이함으로써 결정된다. 그리드의 각각의 셀(또는 빈(bin))에 대해, 빈이 인라이어 또는 아웃라이어 빈인지에 관계없이 스코어가 결정된다. 빈 스코어는 빈 내의 추적 특징들이 호모그래픽 모델에 관해 인라이어들인지 또는 아웃라이어들인지에 기초하며, 빈 내의 추적 특징들의 가중치들(wi)에 기초하는데, 특히 빈 내의 추적 특징들의 특징 가중치들의 중앙 값(bj)에 기초한다. 일 실시예에서, 빈 j의 스코어는 아래 식에 기초하여 결정된다.
<수학식 7>
Figure 112015099461616-pct00010
여기서, a 및 bj는 로지스틱 회귀 스코어링 함수들에 대한 스케일링 팩터들이다. 그리드 커버리지(Gt)는 모든 빈 스코어들에 대한 평균이며, 따라서 다음과 같다.
<수학식 8>
Figure 112015099461616-pct00011
Gt가 너무 낮은 경우, 그리드 커버리지 특성이 너무 낮으며(예로서, 빈들의 30% 이하), 따라서 호모그래픽 모델은 무효한 것으로 간주될 수 있다.
호모그래픽 혼합 특성들과 관련하여, 블록 커버리지 특성은 전술한 그리드 커버리지 특성과 유사하다. 여기서, 단일의 프레임별 그리드 커버리지 스코어 대신, 혼합물의 각각의 블록이 그 자신의 블록 커버리지 스코어를 할당받는다. 구체적으로, 1x10 그리드가 추적 특징들 상에 오버레이되는 경우, 각각의 빈(총 10개 빈)은 블록들 중 하나에 대응한다. 따라서, 각각의 블록은 프레임내의 다수의 스캔 라인을 커버한다. 각각의 빈/블록에 대해, 추적 특징들의 가중치들 및 그들이 인라이어들인지의 여부에 기초하여 스코어가 결정된다. 블록의 스코어가 임계치, 예로서 40% 아래인 경우에 블록은 아웃라이어인 것으로 간주된다. 인접 아웃라이어 블록 특성들은 아웃라이어들인 인접 블록들의 수를 지시한다. 아웃라이어들이 너무 많은 경우, 특성은 무효하다. 빈 블록 특성은 추적 특징을 거의(예로서, 임계치 이하) 또는 전혀 갖지 않는 블록들의 수를 지시한다. 너무 많은 블록이 너무 적은 추적 특징을 갖는 경우, 호모그래픽 혼합을 충분히 검증하기에 불충분한 데이터가 이용 가능하며, 결과적으로 호모그래픽 혼합 모델은 무효한 것으로 간주된다.
모션 모델들의 추정을 간소화하기 위해, 모션 모델들이 추정되고, 병진 이동 모델로부터 시작해서 그로부터 DOF의 수를 증가시키면서 순차적으로 프레임간 모션에 관해 유효성에 대해 평가된다. 병진 이동 모델이 유효한 것으로 결정되는 경우, 유사성 모델이 고려된다. 유사성 모델이 유효한 것으로 결정되는 경우, 호모그래픽 모델이 고려되며, 기타 등등이다. 임의의 시점에, 모델이 무효한 것으로 결정되는 경우, 프로세스가 중지되며, 유효한 것으로 간주된 이전 모델/모델들이 해당 프레임에 대한 카메라 경로의 일부로 사용된다. 어떠한 모션 모델도 유효하지 않은 경우, 카메라 경로가 이동하지 않은 것으로 가정하는 항등 모션 모델이 사용되었다(예로서, 어떠한 안정화도 수행되지 않는다). 이러한 간소화가 효율적인 이유는 종종 더 낮은 DOF 모션 모델이 무효한 경우에 더 높은 DOF 모션 모델도 무효할 것이기 때문이다.
II.B. 카메라 경로 분석
카메라 경로 분석 모듈(320)은 모션 추정 모듈(310)로부터 추적 특징들 및 유효 추정 모션 모델들을 수신한다. 일반적으로 카메라 경로 분석 모듈(320)은 이러한 입력들을 이용하여, 프레임간 기간에 검출될 수 있는 것보다 긴 기간에 걸쳐 발생하는 안정화 문제들, 예컨대 수백 밀리초 내지 수 초의 비디오에 걸쳐 발생하는 안정화 문제들을 해결한다. 카메라 경로 분석 모듈(320)은 유효한 것으로 간주되는 추정 모션 모델들을 프레임별로 변경함으로써 그리고 특정 특성들을 나타내는 프레임들에 플래그를 첨부함으로써 보정을 수행한다. 일 실시예에서, 카메라 경로 분석 모듈(320)은 무효 전파 모듈(322), 롤링 셔터 보정 모듈(324) 및 오버레이 및 블러 보정 모듈(326)을 포함한다.
II.B.i. 무효 전파
무효 전파 모듈(322)은 시간 안정성을 위해 프레임들의 더 긴 스트레치들에 걸쳐 카메라 경로를 평탄화하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 이것은 불안정이 일반적으로 2개의 프레임 사이가 아니라 다수의 프레임 쌍에 걸쳐 발생한다는 가정에 기초한다. 예를 들어, t-1에서 최고 DOF 유효 모션 모델이 호모그래픽 혼합 모델이고, t에서는 유사성 모델이고, t+1에서는 호모그래픽 혼합 모델인 경우, t에서의 더 높은 DOF 모델들의 불안정의 원인이 시간 t에서의 프레임과 시간 t+1에서의 프레임 사이의 2 프레임 기간 내에만 발생했을 가능성은 없다.
카메라 경로를 평탄화하기 위해, 주어진 프레임 쌍에서의 최고 DOF 유효 모델의 DOF의 수가 다수의 이웃 프레임 쌍으로 전파된다. 위의 예를 이용하면, 시간 t에서의 최고 DOF 유효 모델은 유사성 모델일 수 있다. 다수(예로서, 3개)의 전후 프레임 쌍(예로서, t±1, t±2 및 t±3)에 대해, 무효 전파 모듈(322)은 이전 또는 후속 시간에서의 최고 DOF 유효 모델의 DOF의 수를 시간 t에서의 최고 DOF 유효 모델의 DOF의 수와 비교한다. 시간 t에서의 DOF의 수가 더 낮은 경우, 이전 또는 후속 시간에서의 최고 DOF 유효 모델은 시간 t에서의 DOF의 수와 매칭되도록 (DOF와 관련하여) 다운그레이드된다. 전술한 예를 계속 설명하면, 무효 전파를 이용할 경우, 시간 t-1 및 t+1에서의 최고 DOF 유효 모델은 호모그래픽 혼합 모델로부터 유사성 모델로 다운그레이드될 것이다.
이러한 전파를 수행함에 있어서, DOF의 수만이 이전 프레임들로 전파되며, 이러한 전후 시간들에서 사용되는 실제 모션 모델은 그러한 DOF들의 수를 갖는 그러한 프레임에 대해 이전에 추정된 모션 모델이다. 그 이유는 각각의 프레임 쌍 간의 모션이 종종 크게 다를 것으로 예상되며, 따라서 하나의 시점에서 계산된 모션 모델의 파라미터들이 일반적으로 다른 프레임 쌍에 적용되지 않을 것이기 때문이다. 또한, 무효 전파는 일반적으로 여러 번 수행되지 않으며, 그렇지 않을 경우에 모든 프레임들은 여전히 유효한 최저 수의 DOF를 갖는 프레임의 모션 모델로 끝날 것이다.
무효 전파 모듈(322)의 출력은 모션 추정 모듈(310)로부터 수신된 유효 모션 모델들의 세트와 다른 유효 추정 모션 모델들의 세트이다.
II.B.ii. 롤링 셔터 보정
롤링 셔터 보정 모듈(324)은 추적 특징들(Tt, Tt +1) 및 프레임간 모션들(Mt)을 분석하여 롤링 셔터 왜곡들을 검출 및 보정하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 롤링 셔터 보정 모듈(324)은 비디오가 어떻게 캡처되었는지 또는 카메라가 캡처 동안 어떻게 이동했는지에 관한 오리지널 캡처링 카메라로부터의 어떠한 정보도 필요로 하지 않는다. 롤링 셔터는 비디오를 캡처하는 카메라에 의해 프레임의 모든 부분들이 동시에 기록되지 못할 때 발생한다. 이것은 단일 이미지 캡처 이용 사례들에서는 의도적으로 생성되는 효과일 수 있지만, 일반적으로는 비디오들에 바람직하지 않다. 롤링 셔터는 동요, 왜곡, 얼룩 및 부분 노출을 포함하는 여러 상이한 효과를 유발할 수 있다. 일반적으로, 롤링 셔터 효과들은 프레임 캡처 동안 프레임 내에서 물체가 빠르게 이동한 결과로서 발생하며, 따라서 물체는 동요로 보이고, 왜곡되어 보이고, 기타 등등이다.
II.B.ii.a 롤링 셔터 검출
프레임 쌍 사이의 롤링 셔터 효과들을 검출하기 위해, 롤링 셔터 보정 모듈(324)은 해당 프레임 쌍에 대해 추정된 호모그래픽 모델(Ft (2))을 해당 프레임 쌍의 추적 특징들에 적용하도록 구성된다. 호모그래픽 인라이어들의 수가 결정되며, 호모그래픽 인라이어는 대응하는 모션(Mt,i)이 픽셀들의 임계 수 내에서 해당 프레임 쌍에 대해 호모그래픽 모델에 의해 추정된 모션과 매칭되는 추적 특징(i)이다. 예를 들어, 임계치가 1.5 픽셀 내인 경우, 쌍 내의 2개의 프레임 사이에서 추적 특징이 1.5 픽셀의 정확도 내에서 추정 호모그래픽 모델에 의해 예상되는 바와 같이 x 및 y에서 이동(Mt,i)한 경우에, 그 추적 특징(i)은 인라이어이다. 이 예에서, 특징의 가중치(wi)는 1/1.5 = 0.66667일 것이다. 호모그래픽 혼합 모델(Ft (3))이 호모그래픽 모델(Ft (2)) 대신 사용된다는 점 외에는 호모그래픽 혼합 인라이어들의 수도 동일 방식으로 결정된다.
호모그래픽 인라이어들 및 호모그래픽 혼합 인라이어들 양자에 대한 개별 그리드 커버리지들을 결정하기 위해 추적 특징 인라이어들이 그리드들로 그룹화된다. 그리드 커버리지의 결정은 전술한 것과 유사하지만, 명료화를 위해 아래에서 반복된다. 그리드(예로서, 10x10)가 프레임 위에 오버레이된다. 각각의 추적 특징은 프레임 내의 그의 좌표 위치 및 개별 빈들의 경계들에 기초하여 하나의 빈 내에서 위치가 결정되는데, 이는 빈들이 오버랩되지 않기 때문이다. 그리드의 각각의 셀(또는 빈)에 대해, 2개의 스코어, 즉 호모그래픽 빈 스코어 및 호모그래픽 혼합 빈 스코어가 결정된다. 호모그래픽 빈 스코어는 빈이 호모그래픽 인라이어 또는 아웃라이어인지를 결정한다. 유사하게, 호모그래픽 혼합 빈 스코어는 빈이 호모그래픽 혼합 인라이어 또는 아웃라이어인지를 결정한다. 각각의 스코어는 호모그래픽 모델 또는 호모그래픽 혼합에 관해 인라이어들 또는 아웃라이어들인 빈 내의 추적 특징들의 수에 기초한다. 스코어들은 또한 빈 내의 추적 특징들의 가중치들(wi)에 기초하여, 구체적으로는 빈 내의 추적 특징들의 특징 가중치들의 중앙값(bj)에 기초하여 가중된다. 일 실시예에서, 어느 경우든 빈 j의 스코어는 아래 식에 기초하여 결정된다.
<수학식 9>
Figure 112015099461616-pct00012
여기서, a 및 bj는 로지스틱 회귀 스코어링 함수들에 대한 스케일링 팩터들이다. 그리드 커버리지(Gt)는 모든 빈 스코어들에 대한 평균이며, 따라서 다음과 같다.
<수학식 10>
Figure 112015099461616-pct00013
2개의 그리드 커버리지, 즉 호모그래픽 그리드 커버리지(Gt (2)) 및 호모그래픽 혼합 그리드 커버리지(Gt (3))가 결정되며, 이들 각각은 이들 각각의 빈 스코어들에 기초한다.
일반적으로, 호모그래픽 혼합 모델은 호모그래픽 모델보다 양호하게 롤링 셔터를 모델링한다. 따라서, 일반적으로 호모그래픽 혼합은 롤링 셔터 효과가 존재할 때 호모그래픽 모델의 그리드 커버리지(Gt (2))보다 큰 그리드 커버리지(Gt (3))를 갖는다. 일 실시예에서, 롤링 셔터 보정 모듈은 롤링 셔터 부스트 추정치(rset)를 이용하여, 롤링 셔터 효과를 검출하며, 여기서 부스트(rset)는 아래의 비율이다.
<수학식 11>
Figure 112015099461616-pct00014
1보다 큰 부스트(rset)는 일반적으로 호모그래픽 혼합 모델이 호모그래픽 모델이 캡처하지 않는 소정의 모션(예로서, 롤링 셔터)을 검출하고 있다는 것을 의미한다. 따라서, 호모그래픽 혼합 모델은 호모그래픽 모델의 응답을 "부스트"하는 것으로 간주된다. 일 실시예에서, 롤링 셔터 보정 모듈(324)은 부스트(rset)가 부스트 임계치(예로서, 1.1, 1.3, 1.4, 1.9 등) 이상인 것에 응답하여 시간 t에서 롤링 셔터가 존재하는 것으로 결정하도록 구성된다.
일반적으로, 롤링 셔터 효과들은 다수의 프레임에 걸쳐(예로서, 수백 밀리초 내지 수 초 정도에 걸쳐) 발생한다. 롤링 셔터 보정 모듈(324)은 다수의 시간/프레임(t)에 대해(예로서, 6초 클립들의 프레임들의 10%에 걸쳐, 수백 밀리초에 걸쳐 또는 소정의 다른 기간에 걸쳐) 부스트(rset)를 결정한다. 프레임들의 임계 백분율(예로서, 30-100%)이 지정된 임계치 이상의 부스트를 나타내는 경우, 롤링 셔터 검출 모듈(324)은 프레임들의 세트에 대해 롤링 셔터 효과가 존재하는 것으로 결론짓는다. 프레임들의 임계 백분율이 충족되지 않는 경우, 롤링 셔터 검출 모듈(324)은 프레임들의 세트에 대해 롤링 셔터 효과가 존재하지 않는 것으로 결론짓는다.
다른 구현에서, 롤링 셔터 검출 모듈(324)은 다수의 상이한 호모그래픽 혼합 모델(
Figure 112015099461616-pct00015
)을 이용하여 롤링 셔터 효과들을 검출하며, 호모그래픽 혼합 모델들 각각은 조정자(λ)에 관해 다르다. 전술한 바와 같이, 충분히 높은 조정자는 호모그래픽 혼합 모델이 강성이 되어 호모그래픽 모델과 동일하게 한다. 비교적 낮은 조정자 값들(예로서, 3x10-5)은 고속 진동 카메라 중심들(예로서, 헬리콥터 또는 모터바이크 상의 카메라 장착)로부터 생성되는 큰 왜곡들을 더 양호하게 모델링한다. 비교적 높은 조정자 값들(예로서, 4.7x10- 4)은 비교적 더 느린 이동 왜곡들(예로서, 카메라를 갖고서 걷는 사람, 보트로부터의 비디오 샷)을 모델링한다.
이러한 구현에 따르면, 프레임 쌍에 대한 롤링 셔터 효과들을 검출하기 위해, 모션 추정 모듈(310)은 프레임 쌍에 대한 다수(예로서, 4개)의 호모그래픽 혼합 모델을 추정하며, 각각의 호모그래픽 혼합 모델은 상이한 조정자를 갖는다. 롤링 셔터 검출 모듈(324)은 추정된 호모그래픽 모델(Ft (2))에 관해 호모그래픽 혼합 모델들 각각에 대한 그리드 커버리지(
Figure 112015099461616-pct00016
) 및 부스트(
Figure 112015099461616-pct00017
)를 결정한다. 조정자의 차이로 인해, 각각의 호모그래픽 혼합 모델(Ft (λ))은 상이한 부스트(
Figure 112015099461616-pct00018
)를 갖는다.
상이한 호모그래픽 혼합 모델들은 상이한 타입의 롤링 셔터 효과들의 더 정확한 모델링을 가능하게 한다. 프레임에 대해 롤링 셔터 효과가 존재하는지를 결정하기 위해 그리고 어느 호모그래픽 혼합 모델을 적용할지를 결정하기 위해, 각각의 호모그래픽 혼합 모델의 부스트가 상이한 부스트 임계치와 비교된다. 더 강한 호모그래픽 혼합들은 그들의 부스트들(
Figure 112015099461616-pct00019
)을 비교적 더 낮은 부스트 임계치들(예로서, 부스트 임계치 1.1-1.3)과 비교한다. 덜 강한 호모그래픽 혼합들은 그들의
Figure 112015099461616-pct00020
를 더 높은 부스트 임계치들(예로서, 1.5-1.9)과 비교한다. 일 실시예에서, 부스트 임계치를 충족시키는 최소 강성 조정자를 갖는 호모그래픽 혼합(또는 달리 말하면 최고 부스트 임계치를 충족시키는 호모그래픽 혼합)은 해당 프레임에 대해 사용되는 호모그래픽 혼합이다. 일 실시예에서, 더 낮은 조정자 부스트 임계치가 충족되는 경우에 모든 더 높은 조정자 임계치들의 임계치들도 충족되도록 다양한 부스트 임계치들이 구성된다.
프레임들의 세트에 걸쳐 롤링 셔터 효과가 존재하는지를 결정하기 위해, 다양한 부스트 임계치들을 충족시키는 호모그래픽 혼합 모델들이 비교된다. 일 실시예에서, 세트의 프레임들의 백분율(예로서, 5-15%, 또는 그 이상)이 부스트 임계치들 중 하나를 충족시키는 경우, 롤링 셔터 효과가 존재하는 것으로 결정된다.
II.B.ii.b 롤링 셔터 보정
롤링 셔터 효과들을 보정하기 위해, 롤링 셔터 보정 모듈(324)은 모션 추정 모듈(310)로부터 수신된 유효 추정 모션 모델들의 세트를 변경하도록 구성된다. 일 실시예에서, 롤링 셔터 효과가 프레임들의 세트에 걸쳐 존재하는 것으로 결정되는 경우, 그 프레임들의 세트에 대한 유효 모션 모델들은 그러한 프레임들에 대해 이전에 결정된 유효 추정 호모그래픽 혼합 모델들(Ft (3))을 포함하는 것이 허용된다. 롤링 셔터 효과가 프레임들의 세트에 걸쳐 존재하지 않는 것으로 결정되는 경우, 그 프레임들의 세트에 대한 유효 추정 모션 모델들은 8개 이하의 DOF를 갖는 모션 모델들(예로서, 호모그래픽 모델들(Ft (2)))로 제한된다. 다른 실시예에서, 롤링 셔터 효과가 프레임들의 세트에 걸쳐 존재하는 것으로 결정되는 경우, 그 프레임들의 세트에 대한 유효 모션 모델들은 호모그래픽 혼합 모델들(Ft (3))이 세트 내의 모든 프레임들에 대해 유효한 것으로 간주되도록 업그레이드된다.
다수의 호모그래픽 혼합 모델이 결정되는 일 구현에서 롤링 셔터 효과들을 보정하기 위해, 롤링 셔터 보정 모듈(324)은 먼저 롤링 셔터 효과가 존재하는지의 여부를 결정하고, 롤링 셔터 효과가 존재하는 경우에 호모그래픽 혼합 모델들 중 어느 것을 프레임들의 세트에 대해 사용할지를 결정한다. 전술한 바와 같이, 롤링 셔터 효과가 프레임들의 세트에 걸쳐 존재하지 않는 것으로 결정되는 경우, 그 프레임들의 세트에 대한 유효 추정 모션 모델들은 8개 이하의 DOF를 갖는 모션 모델들(예로서, 호모그래픽 모델들(Ft (2)))로 제한된다. 롤링 셔터 효과가 존재하는 것으로 결정되는 경우, 사용되는 호모그래픽 혼합 모델(Ft ( 2,λ ))은 세트 내의 프레임들의 지정된 백분율에 대해 부스트 임계치를 충족시키는 호모그래픽 혼합 모델이다. 둘 이상의 호모그래픽 혼합 모델이 이러한 조건을 충족시키는 경우, 롤링 셔터 보정 모듈(324)은 세트 내의 프레임들에 대해 가장 약한 조정자를 갖는 호모그래픽 혼합 모델을 이용한다. 전술한 바와 같이, 구현에 따라, 이러한 호모그래픽 혼합 모델은 세트 내의 모든 프레임들에 대해 또는 해당 프레임에 대한 추정 호모그래픽 혼합 모델이 유효한 것으로 결정된 프레임들에 대해서만 이용될 수 있다.
II.B.iii. 오버레이 및 블러 보정
오버레이 및 블러 보정 모듈(326)은 많은 양의 블러 또는 상당한 정적 오버레이를 보이는 프레임들(또는 프레임 쌍들)에 플래그를 첨부하며, 이러한 기능을 수행하기 위한 하나의 수단이다. 플래그들은 카메라 경로 그 자체 및/또는 안정화된 비디오를 생성함에 있어서의 그의 사용에 대한 제한들을 부과하는 데 사용된다.
0에 가까운(예로서, 0.2 픽셀보다 작은) 모션(Mt,i)은 물론, 주된 카메라 병진 이동에 대한 상당히 작은(예로서, <20%) 상대 모션을 보이는 추적 특징들(Tt,i)을 식별함으로써 프레임 내에서 정적 오버레이가 식별된다. 이러한 추적 특징들은 정적인 것으로 지시된다. 오버레이 및 블러 보정 모듈(326)은 개별 추적 특징들이 정적이라는 결정들을 집계하여, 프레임 전체가 정적 오버레이를 갖는지를 결정한다. 이를 행하기 위해, 프레임은 전술한 바와 같이 그리드를 이용하여 셀들로 분할된다. 셀의 추적 특징들 중 30% 이상이 정적인 것으로 지시되는 경우, 셀은 정적인 것으로 결정된다. 주어진 시간 t에서 셀이 오버레이를 갖는 것으로 지시되는 경우, 그러한 지시는 다수(예로서, 30개)의 이웃 프레임으로 전파되는데, 이는 정적 오버레이들이 통상적으로 1초의 분수 이상 동안 존재하기 때문이다. 그리드의 충분한 수의 셀이 오버레이를 갖는 것으로 지시되는 경우, 전체 프레임에는 오버레이를 포함하는 것으로서 플래그가 첨부된다. 이러한 프로세스는 유사하게 플래그가 첨부될 수 있는 다른 이웃 프레임들에 대해 반복된다. 이러한 플래그들은 정적 오버레이의 존재를 지시하며, 이는 아래에서 더 설명되는 안정화된 비디오의 생성시에 고려될 수 있다.
모션 블러 또는 간단하게 블러는 검출에서 사용되는 픽셀들의 코너 측정에 기초하여 검출된다. 여기서 코너 측정은 위에서 추적에서 사용된 코너 측정과 유사하다. 그러나, 블러를 검출하기 위해, 코너 측정은 추적에 사용되는 것과 다른 파라미터들 및 임계치들을 이용하여 수행될 수 있다. 코너 측정을 이용하여 각각의 프레임에 대해 블러 스코어가 결정된다.
오버레이 및 블러 보정 모듈(324)은 프레임의 블러 스코어에 기초하여 개별 프레임에 블러링된 것으로서 플래그를 첨부하도록 구성된다. 프레임에 블러링된 것으로서 플래그를 첨부하기 위해, 프레임의 블러 스코어를 다수의 이웃 프레임(예로서, 50개의 이웃 프레임) 각각의 블러 스코어와 비교하여, 해당 프레임의 블러 스코어와 각각의 이웃 프레임의 블러 스코어 간의 비율을 결정한다. 이 비율은 그러한 이웃 프레임들 각각에 대해 개별적으로 결정된다. 비율들은 예를 들어 비율의 기초가 되는 해당 프레임과 이웃 프레임 간의 시간(프레임 카운트) 차이, 및 해당 프레임과 이웃 프레임 간의 프레임 영역 오버랩/교차를 포함하는 다수의 팩터에 기초하여 가중화될 수 있다. 비율들 중 하나 이상이 임계치(예로서, 2.5)를 초과하는 경우, 해당 프레임에는 블러링된 것으로서 플래그가 첨부된다.
II.C. 카메라 경로 안정화
카메라 경로 안정화 모듈(330)은 평탄화된 카메라 경로 및 크롭 변환(crop transform)(또는 간단하게 크롭)을 생성하며, 이러한 기능을 수행하기 위한 하나의 수단이다. 카메라 경로 안정화 모듈(330)은 모션 추정(310)에 의해 생성된 추적 특징들(T) 및 모션들(M), 모션 추정 모듈(310)에 의해 생성된 바와 같은 그리고 카메라 경로 분석 모듈(320)에 의해 정밀화된 바와 같은 유효 추정 모션 모델들(F)의 세트, 및 카메라 경로 분석 모듈(320)에 의해 생성된 임의의 플래그들을 입력으로서 수신한다.
전술한 바와 같이, 카메라 경로(306)는 개별적으로 출력될 수 있다. 이러한 출력된 카메라 경로(306)는 추정된 모션 모델들 및/또는 평탄화된 경로 및 카메라 경로 안정화 모듈(330)에 의해 생성된 크롭을 포함할 수 있다. 안정화 비디오 모듈(340)은 평탄화된 카메라 경로 및 크롭을 또한 입력으로서 이용하여, 안정화된 비디오(304)를 생성할 수 있다. 카메라 경로 안정화 모듈(330)은 카메라 경로 평탄화 모듈(332) 및 크로핑 모듈(334)을 포함한다.
II.C.i. 카메라 경로 평탄화
카메라 경로 평탄화 모듈(332)은 유사성(4 DOF)으로 인한 흔들림, 및 더 낮은 DOF 카메라 모션들을 제거하는 평탄화된 경로(P)를 생성함으로써 카메라 경로를 평탄화한다. 평탄화된 경로(P)는 더 높은 DOF(예로서, 4 초과) 모션을 고려하거나 보정하지 못한다. 카메라 경로 평탄화 모듈(332)은 L1 경로 안정화 및 추정 유효 병진 이동(Ft (0)), 유사성(Ft (1)) 및 항등 모션 모델들을 이용하여 시간에서 프레임의 평탄화된 경로(Pt)를 생성하며, 이러한 기능을 수행하기 위한 하나의 수단이다. 시간 t에서의 카메라 경로(Pt)는 아래의 식들을 이용하여 계산된다.
<수학식 12>
Figure 112015099461616-pct00021
<수학식 13>
Figure 112015099461616-pct00022
Pt는 일련의 세그먼트들을 포함하며, 각각의 세그먼트는 일정, 선형 및/또는 포물선 모션 중 하나이다. 이러한 세그먼트화를 달성하기 위해, Pt는 아래의 제한된 L1 최적화를 이용하여 추정된다.
<수학식 14>
Figure 112015099461616-pct00023
여기서, D는 미분 연산자이다. 카메라 경로 평탄화의 결과는 O(P)를 최소화하는 이차원(예로서, x축 및 y축을 따르는) 함수(Pt)이다. 전술한 바와 같이, Pt가 유사성 모델(Ft (1))에만 기초하므로, Pt는 카메라 경로를 완전히 나타내지는 않는다. 일반적으로, 평탄화된 카메라 경로(Pt)는 더 높은 DOF 모션 모델들(병진 이동, 호모그래픽, 호모그래픽 혼합)과 연계하여 카메라 경로(306) 전체를 나타낸다.
Bt는 카메라 경로를 이용하여 생성되는 안정화된 비디오(304)가 평탄화된 경로(Pt)를 따라 캡처되는 경우에 나타나게 하여 비디오를 안정화하기 위해 시간 t에서 프레임에 적용될 크롭 변환을 나타낸다. 일 실시예에서, CLP(Computational Infrastructure for Operations Research (COIN-OR) Linear Programming) 심플렉스 솔버(simplex solver)가 Bt를 결정하는 데 사용된다. 크롭 결정은 아래에서 크로핑 모듈(334)과 관련하여 더 설명된다.
따라서, 카메라 경로 평탄화 모듈(332)은 크로핑 모듈(334)로부터의 크롭(Bt)에 기초하여 그리고 각각의 프레임 쌍으로부터의 추정된 유사성 모션 모델에 기초하여 평탄화된 카메라 경로(Pt)를 출력하도록 구성된다. 주어진 프레임에 대한 유사성 모델이 유효하지 않은 경우, 평탄화된 경로 및 크롭을 결정함에 있어서 유사성 모델 대신에 병진 이동 및 항등 모델이 사용될 수 있다.
II.C.ii. 크로핑
크로핑 모듈(334)은 각각의 프레임의 크롭(Bt)을 결정하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 크롭은 프레임의 크기를 좌우한다. 완전히 자동적인 비디오 안정화를 위해, 크롭(Bt)은 비디오 내에 존재하는 카메라 모션들에 의해 결정된다. 일반적으로, 크로핑 모듈(334)은 각각의 프레임의 어떤 부분이 표시될지를 조정함으로써 원하지 않는 모션을 보상하기 위해 프레임의 나머지 부분이 자유를 갖도록 각각의 프레임의 콘텐츠를 크로핑하는 크롭(Bt)을 찾도록 구성된다. 더 큰 크롭들이 이것을 더 쉽게 하지만, 매우 큰 크롭들은 추가적인 안정화 이익의 제공 없이 프레임 콘텐츠를 제거하는 효과를 갖는다.
크로핑 모듈은 식 14를 이용하여 그리고 여러 개의 상이한 크롭 윈도 크기를 테스트하여 식 14의 Oi(Pt)를 적어도 대략 최소화하는 크롭(Bt)을 결정함으로써 크롭(Bt)를 결정하며, 여기서 i는 i 번째 크롭 테스트를 나타낸다. 일 실시예에서, 테스트되는 크롭들은 95% 크롭, 90% 크롭, 85% 크롭 등으로부터 아래로 70% 크롭과 같은 더 낮은 임계치까지를 포함한다. 일 실시예에서, 최적 크롭(copt)은 절대 임계치(as) 및 상대 임계치(rs)에 기초한다. 예시적인 값들은 as = 0.002 및 rs = 0.8을 포함한다.
<수학식 15>
Figure 112015099461616-pct00024
여기서,
Figure 112015099461616-pct00025
Figure 112015099461616-pct00026
또는
Figure 112015099461616-pct00027
인 경우이고,
Figure 112015099461616-pct00028
은 그 외의 경우이다.
최적 크롭 크기(copt)는 프레임 직사각형의 백분율이다. 전술한 바와 같이, 크롭 변환(Bt)은 크롭 크기와 무관하다. 각각의 프레임에 대해, O(P)를 최소화하는 정확한 크롭을 정확하게 결정하는 것이 가능하지만, 정확한 이상적인 크롭을 찾는 것은 처리 관점에서 비효율적이다. 소수의 크롭만을 테스트하는 것도 전술한 바와 같이 계산 집약적일 수 있다. 일 실시예에서, 각각의 프레임에 대한 최적 크롭(copt)의 결정의 효율을 개선하기 위해, k개의 프레임마다 시간 서브샘플링을 수행하여(예를 들어, k = 3인 경우, 3개의 프레임마다 시간 서브샘플링을 수행하여) 최적 크롭(copt)을 결정한다. 이것은 최적 크롭(copt)이 완전히 결정되는 것이 필요한 횟수를 줄이며, 따라서 카메라 경로를 결정하는 데 필요한 전체 처리를 줄인다. 일 실시예에서, 시간상 서브샘플링된 프레임에 대한 최적 크롭(copt)의 결정은 식 14에 기초하는 것이 아니라 아래 식에 대신 기초한다.
<수학식 16>
Figure 112015099461616-pct00029
크롭 변환(Bt)의 결정은 다수의 제약을 포함한다. 첫째, 크롭 윈도의 4개의 코너(ck)는 프레임 크기보다 작은 사전 결정된 크기를 갖는다. 코너들의 크기는 변환 후에 프레임 내에 남도록, 예를 들어 모든 4개의 코너에 대해 항상 [0,0]≤Btck<[폭, 높이]가 되도록 결정된다. ck의 값들은 크롭 변환 및 copt에 의해 결정되는 바와 같은 크롭의 크기에 기초한다. 이것은 크롭(Bt)을 적용한 후의 정의되지 않은 경계 밖 영역들을 방지하여, 비용이 많이 드는 모션 인-페인팅(in-painting)에 대한 필요성을 완화한다. 둘째, 크롭에 의해 허용되는 회전 각도들(예로서, 15도) 및 크롭에 의해 허용되는 스케일 변화(예로서, 90%)에 대해 한계가 부과된다. 이것은 카메라 경로(Pt)로부터의 절대 편차를 제한한다. 셋째, 프레임에 충분히 큰 오버레이를 갖는 것으로서 플래그가 첨부되는 경우, 크롭(Bt)은 항등 변환으로 제한된다. 넷째, 프레임에 모션 블러링된 것으로서 플래그가 첨부되는 경우, 불균등 제약이 부과되며, 따라서 Pt는 오리지널 카메라 모션의 일부(예로서, 60%)를 유지하고, 따라서 더 많은 흔들림의 대가로서 결과물 내의 인식되는 블러를 억제한다. 이것은 하나의 프레임으로 격리되거나, 여러 개의 인접 프레임에 걸쳐 확산될 수 있다. 다섯째, 크롭의 copt의 스케일이 작은 음의 가중치와 함께 식 14에서 설명된 바와 같은 객체에 추가되어, 크롭 윈도 상에 역 스프링 힘을 인가하여 결과물을 더 적은 크로핑을 향해 바이어스한다.
일 실시예에서, 크롭 변환(Bt)은 한 번에 비디오의 클립들(또는 부분들)에 대해(예로서, 한 번에 6초에 대해) 결정된다. 미래의 클립들에 반드시 적용될 수 있지는 않은 추가 제약들이 개별 클립들에 부과될 수 있다. 첫째, 크롭 윈도는 클립의 제1 프레임에 대해 축 정렬되고 프레임 중심을 두도록(예로서, 0의 병진 이동, 1의 스케일 및 0의 회전을 갖도록) 바이어스된다. 이것은 클립의 크롭에 대한 초기 배향을 제한한다. 둘째, 클립의 제1 프레임의 병진 이동 모델이 무효한 것으로 간주된 경우, 항등 모델이 유사성 모델 내에 삽입되고, 크롭 변환은 클립의 제1 프레임에 중심을 둔다. 셋째, 클립의 제1 프레임의 유사성 모델이 무효한 것으로 간주된 경우, 항등 모델이 유사성 내에 삽입되고, 그 클립의 프레임들에 걸친 크롭의 회전 및 스케일의 변화가 0으로 설정된다(예로서, 병진 이동 DOF들만이 허용된다).
II.D. 안정화된 비디오 생성
안정화 비디오 모듈(340)은 유효 모션 모델들(Ft (k))의 세트 및 각각의 프레임 쌍으로부터의 크롭 변환(Bt)을 이용하여 안정화된 비디오(304)를 생성하도록 구성되며, 이러한 기능을 수행하기 위한 하나의 수단이다. 일 실시예에서, 안정화된 비디오(304)를 생성하기 위해, 안정화 비디오 모듈(340)은 오리지널 입력 비디오(302)로부터의 각각의 입력 프레임(It)에 대한 안정화된 프레임(Jt)을 생성한다. 일 실시예에서, 안정화 비디오 모듈(340)은 크롭(Bt)에 따라 오리지널 프레임들(It)을 리샘플링함으로써 그리고 다음 식에 따라 임의의 잔여 모션을 설명하도록 리샘플링을 보정함으로써 각각의 안정화된 비디오 프레임(Jt)을 생성한다.
<수학식 17>
Figure 112015099461616-pct00030
여기서, x는 프레임의 픽셀들의 데카르트 좌표 축들이고, Rt는 다음과 같이 잔여 모션을 나타내고,
<수학식 18>
Figure 112015099461616-pct00031
여기서,
Figure 112015099461616-pct00032
이고, k*는 2 또는 3과 동일하고, 어느 쪽이든 그 프레임에 대한 최고 DOF 유효 추정 모션 모델이다.
Bt에 따라 It를 리샘플링하는 것은 유사성(예로서, DOF = 4) 또는 더 낮은(예로서, 병진 이동) DOF를 갖는 카메라 모션들을 보정한다. 그러나, 이러한 리샘플링은 호모그래픽 및 호모그래픽 혼합 모델들에 의해 캡처된 것들과 같은 더 높은 DOF 카메라 모션들을 고려하지 않는다. 추가 보정이 수행되지 않을 경우, 그러한 더 높은 DOF 모션들은 결과적인 안정화된 프레임들 내에 고주파 잔여 동요 왜곡들로서 나타날 것이다. 추가적인 항들(Ht, Rt)은 그러한 더 높은 DOF 모션들을 프레임별로 설명한다. 그들은 그 프레임에 대해 유효한 것으로 결정된 호모그래픽 및/또는 호모그래픽 혼합 모델이 존재하는 출력 프레임들(Jt)에 영향을 준다.
실제로, 잔여 Rt를 포함하는 식 17을 풀기 위해, 식 17은 소정의 더 이른 시간/프레임(p)까지 다음과 같이 반복적으로 전개된다.
<수학식 19>
Figure 112015099461616-pct00033
시간 t = p 및 t = n에서의 2개의 키 프레임은 고정된다. 간단한 리샘플링이 사용되며, 즉 Jt(x) = It(Btx)이고, 따라서 t∈{p,n}이다. 중간 프레임 t: p<t<n에 대해, 식 19는 p에서 t까지 리샘플링 위치(yt (p))를 그리고 n에서 t까지의 역방향 체인을 이용하여 yt (n)을 반복 계산하는 데 사용된다. 이어서, 2개의 리샘플링 위치를 선형으로 혼합(또는 보간)하여 다음 식과 같도록 Jt(x)의 최종 값을 결정한다.
<수학식 19>
Figure 112015099461616-pct00034
더 일반적으로, 안정화 비디오 모듈(340)은 각각의 프레임(It)의 픽셀들에 크롭(Bt) 및 추정된 유효 모션 모델들(Ft)를 직접 적용함으로써 프레임들(Jt)을 생성한다. 추정된 모션 모델들은 적어도 크롭에 의해 지시되는 바와 같이 각각의 프레임으로부터의 각각의 픽셀이 안정화 후에 나타나는 위치를 지시한다. 이러한 프로세스는 안정화된 비디오(304)를 생성하기 위해 모든 이용 가능한 프레임들에 대해 완료될 수 있다.
II.E. 카메라 흔들림 검출
II.E.i 개요
흔들림 검출 모듈(360)은 모든 비디오들이 안정화로부터 이익을 얻지는 않으므로 비디오들을 분석하여 비디오(302)가 안정화로부터 이익을 얻는지의 여부를 결정하도록 구성된다. 비디오가 안정화로부터 이익을 얻는지를 결정하는 프로세스는 카메라 흔들림 검출 또는 간단하게 흔들림 검출로 지칭된다. 흔들림 검출 모듈(360)은 다수의 흔들림 특징을 생성함으로써 비디오 내의 흔들림의 양을 양자화하도록 구성된다. 흔들림 특징들은 비디오(302)를 안정화할지의 여부를 결정하는 데 사용된다.
흔들림 검출은 자동으로 또는 수신된 요청에 따라 수행될 수 있다. 흔들림 검출을 수행하는 것에 응답하여, 비디오가 안정화할만한 가치가 있기에 충분한, 임계치에 관한 흔들림을 갖는지에 관한 결론에 도달할 수 있다. 안정화는 임계치에 도달할 때 자동으로 수행될 수 있거나, 대안으로서 비디오(302)를 입력하는 사용자는 흔들림 검출 모듈(360)의 결론에 기초하여 안정화를 수행하는 옵션에 의해 유도될 수 있다.
비디오가 안정화로부터 이익을 얻는 것으로 결정하기 위한 임계치는 구현들 간에 다를 수 있다. 매우 적은 카메라 모션(또는 흔들림)을 갖는 비디오들에 대해, 안정화는 안정화가 수행되지 않는 경우보다 사실상 비디오를 악화시킬 수 있다(시청자의 시청을 더 어렵게 할 수 있다). 임계치는 안정화가 비디오를 개선하는 경우에만 안정화가 수행되도록 설정될 수 있다. 안정화의 수행과 관련된 처리 비용들도 팩터일 수 있다. 임계치는 또한 안정화가 처리 비용을 정당화할 만큼 충분히 비디오를 개선하는 경우에만 안정화가 수행되도록 설정될 수 있다. 따라서, 안정화를 적용할지를 결정하기 위한 임계치는 구현들 간에 다를 수 있다.
II.E.ii 흔들림 특징들의 생성
전술한 바와 같이, 비디오에 안정화를 적용할지를 결정하기 위해, 흔들림 검출 모듈(360)은 다수의 흔들림 특징을 생성함으로써 비디오 내에 존재하는 흔들림을 양자화하도록 구성된다. 흔들림 특징들을 생성하기 위해, 흔들림 검출 모듈(360)은 비디오의 프레임들에 대한 추정된 유사성 모델들(Ct)에 기초하여 비디오(302)에 대한 다수의 스펙트로그램(S)을 생성한다(식 12 참조).
각각의 스펙트로그램(S)은 다수의 인접 프레임에 걸친 유사성 모델의 단일 DOF의 값의 주파수(또는 에너지) 성분들을 설명한다. 따라서, 각각의 스펙트로그램은 x 좌표 축을 따른 병진 이동(tx)의 DOF, y 좌표 축을 따른 병진 이동(ty)의 DOF, 스케일 변화의 DOF 또는 회전 변화의 DOF를 나타낸다. 전술한 바와 같이, 프레임에 대한 각각의 DOF의 값은 모션 모델 내의 파라미터에 의해 표현되며, 따라서 각각의 유사성 DOF의 값은 그 프레임에 대한 추정된 유사성 모션 모델(Ft (1)) 내의 대응하는 파라미터의 값이다.
각각의 스펙트로그램(S)은 또한 프레임들의 제한된 타임 윈도(예로서, 128 프레임 또는 약 5초의 비디오)를 커버한다. 스펙트로그램들은 시간상 서로 부분적으로 오버랩되며, 따라서 2개의 스펙트로그램은 프레임들을 공유할 수 있다. 예를 들어, 제1 스펙트로그램은 프레임 0-128에 기초할 수 있고, 제2 스펙트로그램은 프레임 64-196에 기초할 수 있고, 제3 스펙트로그램은 프레임 128-256에 기초할 수 있다.
스펙트로그램(S)은 주파수 좌표계 내에서 생성되며, 각각의 프레임 k에 대한 스펙트로그램(Sk)의 부분은 스펙트로그램당 128 프레임을 이용하는 구현에 대해 윈도의 프레임들에 걸친 DOF 값들을 이용하여 그리고 이산 코사인 변환(DCT)-II 알고리즘과 같은 푸리에 변환을 이용하여 아래와 같이 생성되며,
<수학식 19>
Figure 112015099461616-pct00035
여기서, dn은 윈도의 프레임들의 DOF 값들에 대한 특정 주파수/에너지의 기여의 양을 나타낸다. 스펙트로그램(Sk)의 개별 부분이 128개의 빈을 포함하는 히스토그램으로서 데이터 저장소(350) 내에 저장될 수 있으며, 각각의 빈은 특정 주파수/에너지 범위를 나타낸다. 각각의 빈은 윈도의 프레임들의 DOF 값들에 대한 그 빈의 기여를 나타내는 dn의 높이를 갖는다. 따라서, Sk에서, 비교적 높은 빈은 그 빈의 주파수/에너지 범위가 다른 비교적 더 낮은 빈에 비해 윈도 내의 DOF의 값들에 더 크게 기여한다는 것을 지시한다. 일반적으로, 더 높은 주파수들/에너지들에서의 더 높은 스펙트로그램 빈들은 카메라의 빠른 흔들림과 같은 더 격렬한 카메라 모션들을 나타낸다. 이와 달리, 더 낮은 주파수들/에너지들에서의 더 높은 스펙트로그램 빈들은 더 느린 카메라 모션들을 나타낸다. 스펙트로그램(S)은 타임 윈도의 프레임들에 대한 DOF 값들을 다수의 빈을 갖는 히스토그램 내로 집계하며, 여기서 각각의 빈은 윈도 내의 프레임들의 DOF 값에 대한 상이한 주파수(또는 에너지) 범위의 기여를 나타낸다.
스펙트로그램들은 메모리 공간의 절약을 돕도록 압축될 수 있다. 일 실시예에서, 대부분의 비디오(302) 스펙트로그램들 내의 대부분의 에너지는 더 낮은 에너지들에서 발견되므로, 스케일 2 압축이 사용된다. 2의 스케일은 간격 [2n, 2n+1] 내의 모든 주파수들을 집계하여, 전술한 예로부터의 128개 빈이 아니라 스펙트로그램에 대한 총 8개 빈을 생성한다(28 = 128). 따라서, 압축을 수행함에 있어서, 유사한 에너지 범위들의 기여들(dn)이 함께 집계된다. 위의 예를 이용하면, 압축 후에, 그들의 128 dn 값들이 아니라, 스펙트로그램(Sk)의 각각의 부분은 에너지 빈마다 하나씩, 8 dn 값들을 대신 갖는다.
도 9는 일 실시예에 따른, 다수의 타임 윈도에 대한 그리고 유사성 모델의 상이한 자유도들에 대한 다수의 스펙트로그램의 도면이다. 도 9a는 제1의 짧은 길이 비디오 12 윈도의 스펙트로그램들을 나타내고, 도 9b는 제2의 더 긴 길이 비디오 40 윈도의 스펙트로그램들을 나타낸다. 각각의 비디오에 대한 유사성 모델의 각각의 DOF에 대해 개별 그래프가 도시된다. 도 9의 예시적인 그래프들은 스펙트로그램당 128 프레임, 스케일 2 압축, 따라서 스펙트로그램당 8개 에너지 빈, 및 각각의 스펙트로그램의 프레임들에서의 약 50% 윈도 오버랩을 가정한다. 각각의 그래프의 y축은 8개 에너지 빈을 나타내고, 빈 번호는 에너지에 대해 증가한다. 각각의 그래프의 x축은 윈도에 의한 비디오의 스펙트로그램들을 나타낸다. 그래프의 각각의 픽셀의 컬러는 프레임들의 각각의 윈도 내의 특정 주파수 범위 내의 에너지(즉, 모션)의 양을 나타낸다.
도 9a 및 도 9b의 스펙트로그램들을 비교하면, 더 짧은 비디오는 더 높은 에너지들에서 DOF들의 매우 적은 흔들림을 갖는 반면, 더 긴 비디오는 더 높은 에너지들에 많은 양의 흔들림을 갖는다. 따라서, 더 긴 비디오는 더 짧은 비디오에 비해 안정화로부터 더 큰 이익을 얻을 것으로 결론지을 수 있다.
흔들림 특징들은 예를 들어 모든 윈도들에 걸친 스펙트로그램 히스토그램 빈 높이의 평균값, 중앙값 및/또는 최대값에 기초하는 것 및 백분위에 따라 스펙트로그램의 에너지를 그룹화하는 개별 히스토그램에 기초하는 것을 포함하는 여러 상이한 방법 중 어느 하나를 이용하여 스펙트로그램들로부터 생성될 수 있다. 이제, 이러한 방법들 각각이 차례로 설명된다.
비디오의 윈도들에 걸친 각각의 빈의 평균, 최대 및 중앙 스펙트로그램 높이 중 하나 이상을 취함으로써 스펙트로그램들로부터 흔들림 특징들의 하나 이상의 세트가 생성될 수 있다. 전술한 바와 같이, 스펙트로그램의 빈의 높이는 윈도별로 윈도들의 DOF 값들에 대한 특정 범위의 에너지들/주파수들의 기여를 나타낸다. 따라서, 모든 윈도들에 걸친 평균값은 비디오의 윈도들에 걸친 윈도에 의한 비디오 전체에 대한 해당 빈의 주파수들/에너지들의 평균 기여를 나타낸다. 유사하게, 모든 윈도들에 걸친 최대값은 비디오의 윈도들에 걸친 윈도에 의한 비디오 전체에 대한 해당 빈의 주파수들/에너지들의 최대 기여를 나타내고, 모든 윈도들에 걸친 중앙값은 비디오의 윈도들에 걸친 윈도에 의한 비디오 전체에 대한 해당 빈의 주파수들/에너지들의 중앙 기여를 나타낸다. 위의 예시적인 조건들을 이용하면, DOF당 8개의 에너지 빈이 존재하는 경우 그리고 유사성 모델 내에 4개의 DOF가 존재하는 경우, 결과적으로 흔들림 검출 모듈(360)은 비디오에 대한 32개의 평균 흔들림 특징, 32개의 최대 흔들림 특징 및 32개의 중앙 흔들림 특징을 생성한다. 생성되는 흔들림 특징들의 수는 비디오의 길이(예로서, 윈도들의 수)와 무관하다는 점에 유의한다.
각각의 DOF에 대한 각각의 에너지 빈에 대한 하나씩의 도메인 히스토그램인 스펙트로그램 도메인의 히스토그램들의 개별 세트를 생성하고, 따라서 전술한 예시적인 조건들을 이용하여 총 32개의 도메인 히스토그램(4개 DOF의 8배의 에너지 빈)을 생성함으로써, 스펙트로그램들로부터 흔들림 특징들의 다른 세트가 생성될 수 있다. 각각의 도메인 히스토그램은 (기본 히스토그램들의 에너지 빈들과의 혼란을 피하기 위해 도메인 빈들로 지칭되는) 다수의 빈을 갖는다. 각각의 도메인 빈은 그 자신의 흔들림 특징을 갖는다. 위의 예를 계속 설명하면, 각각의 도메인 히스토그램이 10개의 도메인 빈을 갖는 경우, 이 기술에 의해 생성되는 흔들림 특징들은 총 320개이다.
도메인 히스토그램은 스펙트로그램의 단일 에너지 빈(예로서, 0-7 중 하나)의 개별 윈도들의 높이들/기여들(dn)을 모든 윈도들에 걸친 스펙트로그램의 모든 에너지 빈들에 대한 기여의 백분위 범위들로 그룹화한다. 도메인 히스토그램은 예를 들어 [0,1]의 스케일로 정규화되며, 여기서 0은 0의 기여 값(dn) 또는 대안으로서 스펙트로그램 내의 기여의 최저 양(dn , min)을 나타내고, 1은 스펙트로그램 내의 기여의 최고 양(dn , max)을 나타낸다.
각각의 도메인 빈은 기여 값들의 정의된 백분위 범위를 커버한다. 각각의 도메인 빈의 높이는 해당 백분위 범위 내의 해당 기여 값들(dn)을 갖는 에너지 빈 내의 윈도들의 수이다. 예를 들어, 10개의 도메인 빈 각각이 10% 범위를 커버하는 경우, 제1 도메인 빈의 높이는 스펙트로그램 내의 임의의 빈의 최대 기여의 0-10% 기여 사이의 기여 값들(dn)을 갖는 에너지 빈(예로서, 빈 0-7 중 스펙트로그램 빈 0)의 윈도들의 수를 나타낸다. 제2 도메인 빈의 높이는 스펙트로그램 내의 임의의 빈의 최대 기여의 11-20% 기여 사이의 기여 값들(dn)을 갖는 동일 에너지 빈(예로서, 다시 스펙트로그램 빈 0)의 윈도들의 수를 나타낸다.
도메인 빈들의 높이들은 비디오 내의 윈도들의 전체 수에 의해 정규화될 수 있으며, 따라서 도메인 빈들은 비디오의 길이에 관해 불변일 수 있다. 이것은 상이한 수의 윈도를 가짐에도 불구하고 다양한 길이의 비디오들로부터의 도메인 빈 흔들림 특징들이 비교되는 것을 가능하게 한다.
II.E.iii 비디오를 안정화할지에 대한 결정
흔들림 특징들을 분석하여, 비디오에 안정화를 적용할지를 결정한다. 일 구현에서, 흔들림 검출 모듈(360)은 기계 학습 알고리즘들을 이용하여, 안정화를 적용할지를 결정하도록 흔들림 분류기를 훈련시킨다. 흔들림 분류기를 훈련시키기 위해, 흔들림 검출 모듈(360)은 공지된 비디오들로부터의 흔들림 특징들 및 이러한 공지된 비디오들이 안정화될지에 대한 결정들(예로서, 예, 아니오)을 훈련 입력들로서 이용한다. 이러한 공지된 비디오들이 안정화될지의 여부에 대한 결정들을 이용하여 분류기를 훈련시킴으로써, 흔들림 분류기는 나중에 수신되는 비디오들(302)이 안정화되어야 하는지의 여부를 학습하도록 훈련된다.
흔들림 분류기를 훈련시키는 데 사용되는 흔들림 특징들은 구현들 간에 다를 수 있다. 일 실시예에서, 32개의 평균 흔들림 특징, 32개의 최대 흔들림 특징 및 320개의 도메인 흔들림 특징이 분류기를 훈련시키는 데 사용된다. 다른 실시예들에서는, 평균, 최대, 중앙 및 도메인 흔들림 특징들의 임의의 조합도 분류기를 훈련시키는 데 사용될 수 있다. 다른 실시예들에서, 비디오의 추가적인 특징들도 분류기를 훈련시키는 데 사용될 수 있다. 이러한 특징들은 예를 들어 비디오 내에 존재하는 블러로부터 추정된 특징들은 물론, 비디오의 장면 콘텐츠 및 비디오의 오디오와 같은 흔들림 아닌 특징들을 포함할 수 있다.
흔들림 분류기가 훈련되면, 비디오(302)를 분석하여 비디오를 안정화할지의 여부를 결정할 수 있다. 흔들림 검출 모듈(360)은 전술한 바와 같이 비디오를 처리하여 흔들림 특징들을 생성한다. 흔들림 특징들(및 임의의 다른 특징들)은 흔들림 분류기에 입력된다. 이어서, 흔들림 분류기는 비디오가 안정화되어야 하는지에 대한 결정을 출력한다. 이어서, 안정화가 자동으로 수행되거나, 사용자 입력에 응답하여 수행될 수 있다.
III. 예시적인 방법들
도 4는 일 실시예에 따른, 비디오의 카메라 경로를 결정하기 위한 프로세스를 나타내는 흐름도이다. 안정화 서버(112)는 비디오에 액세스하고(402), 수신된 비디오의 적어도 2개의 인접 프레임에 대한 이차원 추적 특징들을 생성한다(404). 인접 프레임들의 추적 특징들은 카메라의 프레임간 모션을 나타낸다. 다수의 상이한 모션 모델 각각을 프레임의 추적 특징들에 개별적으로 적용하여(406), 모션 모델들의 특성들을 결정한다. 각각의 모션 모델은 상이한 수의 DOF를 갖는다. 특성들에 기초하여, 모션 모델들 중 어느 것이 유효한지에 관한 결정이 행해진다(408). 비디오를 캡처하는 데 사용된 카메라의 모션을 설명하는 카메라 경로가 인접 프레임들 간의 프레임간 모션에 대해 유효한 모션 모델들에 기초하여 생성된다(410).
도 5는 일 실시예에 따른, 비디오에서 롤링 셔터를 검출 및 보정하기 위한 프로세스를 나타내는 흐름도이다. 안정화 서버는 비디오에 액세스하고(502), 수신된 비디오의 적어도 2개의 인접 프레임에 대한 이차원 추적 특징들을 생성한다(504). 인접 프레임들의 추적 특징들은 카메라의 프레임간 모션을 지시한다. 호모그래픽 모델을 프레임간 모션에 적용하여(506), 호모그래픽 모델과 매칭되는 인라이어들인 다수의 추적 특징을 결정한다. 호모그래픽 혼합 모델을 프레임간 모션에 적용하여(508), 호모그래픽 혼합 모델과 매칭되는 인라이어들인 다수의 추적 특징을 결정한다. 호모그래픽 혼합 인라이어들의 수가 호모그래픽 인라이어들의 수를 임계치만큼 초과한다는 결정(510)에 응답하여, 비디오가 롤링 셔터 효과를 갖는다는 결정이 행해질 수 있다. 호모그래픽 혼합 모델을 비디오의 인접 모델들에 적용하여, 안정화된 비디오를 생성한다.
도 8은 일 실시예에 따른, 비디오에서 카메라 흔들림을 검출하기 위한 프로세스를 나타내는 흐름도이다. 안정화 시스템(112)은 비디오에 액세스하고(802), 비디오의 다수의 프레임에 대해, 전술한 바와 같은 유사성 모션 모델의 DOF들의 값들(또는 파라미터들)을 추정한다(804). 안정화 시스템(112)은 각각의 DOF 및 타임 윈도에 대한 스펙트로그램을 생성하며(806), 따라서 각각의 스펙트로그램은 비디오의 복수의 인접 프레임을 포함하는 타임 윈도에 걸친 DOF들의 값들에 기초한다. 스펙트로그램들을 이용하여, 안정화 시스템(112)은 스펙트로그램들에 기초하여 흔들림 특징들을 생성한다(808). 안정화 시스템(112)은 흔들림 특징들 및 이전에 훈련된 흔들림 분류기에 기초하여 비디오를 분류한다(810). 흔들림 분류기는 비디오를 2개의 카테고리, 즉 안정화되어야 하는 비디오들 및 안정화되지 않아야 하는 비디오들 중 하나로 분류한다(810). 분류에 기초하여, 안정화 시스템은 분류에 기초하여 비디오를 자동으로 또는 사용자 입력에 응답하여 안정화한다(812).
IV. 추가적인 고려 사항들
위의 설명은 실시예들의 동작을 설명하기 위해 포함되며, 본 발명의 범위를 한정하는 것을 의도하지 않는다. 본 발명의 범위는 아래의 청구항들에 의해서만 한정되어야 한다. 위의 설명으로부터, 본 발명의 사상 및 범위에 여전히 포함되는 많은 변경이 관련 분야의 기술자에게 명백할 것이다.

Claims (27)

  1. 비디오에 액세스하는 단계;
    상기 비디오의 적어도 2개의 인접 프레임들 각각에 대한 복수의 추적 특징들을 생성하는 단계 - 상기 인접 프레임들의 상기 추적 특징들은 카메라의 프레임간 모션을 나타냄 -;
    상기 추적 특징들의 상기 프레임간 모션에 2개의 자유도(DOF; degrees of freedom)를 포함하는 병진 이동 모션 모델을 적용하여 상기 병진 이동 모션 모델에 대한 복수의 병진 이동 특성들을 추정하는 단계;
    상기 병진 이동 특성들을 대응하는 병진 이동 특성 임계값들과 비교함으로써 상기 병진 이동 모션 모델이 유효한지를 결정하는 단계;
    상기 병진 이동 모션 모델이 유효한 것으로 결정한 것에 응답하여:
    상기 추적 특징들의 상기 프레임간 모션에 4개의 DOF를 포함하는 유사성 모션 모델을 적용하여 상기 유사성 모션 모델에 대한 복수의 유사성 특성들을 추정하는 단계;
    상기 유사성 특성들을 대응하는 유사성 특성 임계값들과 비교함으로써 상기 유사성 모션 모델이 유효한지를 결정하는 단계; 및
    상기 유사성 모션 모델이 유효한 것으로 결정한 것에 응답하여:
    상기 추적 특징들의 상기 프레임간 모션에 8개의 DOF를 포함하는 호모그래픽 모션 모델을 적용하여 상기 호모그래픽 모션 모델에 대한 복수의 호모그래픽 특성들을 추정하는 단계; 및
    상기 호모그래픽 특성들을 대응하는 호모그래픽 특성 임계치들과 비교함으로써 상기 호모그래픽 모션 모델이 유효한지를 결정하는 단계;

    상기 결정된 유효 모션 모델들 중 가장 큰 수의 DOF를 갖는 최고(highest) DOF 모션 모델에 기초하여 상기 인접 프레임들 간의 카메라 경로를 생성하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 비디오의 상기 인접 프레임들에 상기 카메라 경로를 적용함으로써 안정화된 비디오를 생성하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 카메라 경로는 상기 비디오를 캡처하는 데 사용된 오리지널 카메라의 모션을 설명하는 데이터와 무관하게 생성되는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 프레임들 중 하나의 프레임에 대한 상기 복수의 추적 특징을 생성하는 단계는 상기 프레임에 코너 측정을 적용하여, 상기 프레임의 양 좌표축을 따라 높은 컬러 그래디언트(color gradient)를 갖는 복수의 위치에서 상기 추적 특징들을 생성하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 병진 이동 모션 모델에 대한 상기 병진 이동 특성들은 임계 허용 한계 내의 추적 특징들의 수, 병진 이동 크기 및 상기 병진 이동 크기의 표준 편차로 구성되는 그룹으로부터의 적어도 하나를 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 유사성 모션 모델에 대한 상기 유사성 특성들은 임계 허용 한계 내의 추적 특징들의 수, 프레임 면적과 관련된 특징 커버리지, 스케일 변화 및 프레임 회전의 양으로 구성되는 그룹으로부터의 적어도 하나를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 호모그래픽 모션 모델에 대한 상기 호모그래픽 특성들은 스케일 변화, 프레임 회전의 양, 원근 변화의 양 및 그리드 커버리지의 양으로 구성되는 그룹으로부터의 적어도 하나를 포함하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 호모그래픽 모션 모델이 유효한 것으로 결정한 것에 응답하여:
    호모그래픽 혼합 모션 모델을 적용하여 호모그래픽 혼합 모션 모델에 대한 복수의 호모그래픽 혼합 특성을 추정하는 단계
    를 더 포함하고,
    상기 호모그래픽 혼합 모션 모델은 8개보다 많은 DOF를 포함하고, 상기 호모그래픽 혼합 모션 모델은 복수의 상이한 호모그래픽 모션 모델의 혼합을 포함하고, 각각의 호모그래픽 모션 모델은 프레임의 블록과 연관되고,
    상기 호모그래픽 혼합 모션 모델에 대한 상기 호모그래픽 혼합 특성들은 인라이어 블록 커버리지, 인접하는 아웃라이어 블록들의 수 및 인라이어 추적 특징들을 갖지 않는 블록들의 수로 구성되는 그룹으로부터의 적어도 하나를 포함하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 프레임들 중 적어도 하나의 프레임에 대해, 최고 DOF 유효 모션 모델을 상기 프레임에 시간상 이웃하는 복수의 프레임으로 전파하여, 상기 최고 DOF 유효 모션 모델보다 많은 DOF를 갖는 이웃 프레임들의 임의의 모션 모델들을 무효화하는 단계를 더 포함하는 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 비디오가 롤링 셔터 효과를 보이는 것으로 결정하는 단계; 및
    상기 비디오가 상기 롤링 셔터 효과를 보인다는 결정에 응답하여, 상기 인접 프레임들에 대한 호모그래픽 혼합 모션 모델을 유효화하고, 상기 호모그래픽 혼합 모션 모델에 기초하여 상기 인접 프레임들 간의 안정화된 카메라 경로를 생성하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  11. 제8항에 있어서,
    상기 비디오가 롤링 셔터 효과를 보이지 않는 것으로 결정하는 단계; 및
    상기 비디오가 상기 롤링 셔터 효과를 보이지 않는다는 결정에 응답하여, 상기 인접 프레임들에 대한 호모그래픽 혼합 모션 모델을 무효화하고, 상기 호모그래픽 혼합 모션 모델 없이 상기 인접 프레임들 간의 안정화된 카메라 경로를 생성하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  12. 제2항에 있어서,
    상기 인접 프레임들의 쌍들 사이에서 크롭 변환을 생성하는 단계를 더 포함하고,
    상기 안정화된 비디오를 생성하는 단계는 상기 크롭 변환을 적용하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  13. 인접 프레임들 사이의 카메라 경로를 생성하는 시스템으로서,
    프로세서 판독가능 명령어들을 저장하는 메모리; 및
    상기 메모리에 저장된 명령어들을 판독하고 실행하도록 구성된 프로세서
    를 포함하고,
    상기 프로세서 판독가능 명령어들은 상기 시스템으로 하여금 제1항 내지 제12항 중 어느 한 항에 따른 방법을 수행하게 하도록 구성된 명령어들을 포함하는, 시스템.
  14. 컴퓨터 판독가능 저장 매체로서,
    컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 내지 제12항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
KR1020157029569A 2013-03-15 2014-03-11 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출 KR102185963B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361799985P 2013-03-15 2013-03-15
US61/799,985 2013-03-15
US13/854,819 US9374532B2 (en) 2013-03-15 2013-04-01 Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
US13/854,819 2013-04-01
PCT/US2014/023211 WO2014150421A1 (en) 2013-03-15 2014-03-11 Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207034211A Division KR102225410B1 (ko) 2013-03-15 2014-03-11 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출

Publications (2)

Publication Number Publication Date
KR20150132846A KR20150132846A (ko) 2015-11-26
KR102185963B1 true KR102185963B1 (ko) 2020-12-03

Family

ID=51525713

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157029569A KR102185963B1 (ko) 2013-03-15 2014-03-11 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출
KR1020207034211A KR102225410B1 (ko) 2013-03-15 2014-03-11 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207034211A KR102225410B1 (ko) 2013-03-15 2014-03-11 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출

Country Status (5)

Country Link
US (3) US9374532B2 (ko)
EP (2) EP3800878B1 (ko)
KR (2) KR102185963B1 (ko)
CN (1) CN105052129B (ko)
WO (1) WO2014150421A1 (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization
US9374532B2 (en) 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
US9336460B2 (en) * 2013-05-31 2016-05-10 Intel Corporation Adaptive motion instability detection in video
US9277129B2 (en) * 2013-06-07 2016-03-01 Apple Inc. Robust image feature based video stabilization and smoothing
US9210327B2 (en) * 2013-12-02 2015-12-08 Yahoo! Inc. Blur aware photo feedback
US9939253B2 (en) * 2014-05-22 2018-04-10 Brain Corporation Apparatus and methods for distance estimation using multiple image sensors
WO2016095073A1 (zh) 2014-12-14 2016-06-23 深圳市大疆创新科技有限公司 一种视频处理方法、装置及图像系统
US9418396B2 (en) 2015-01-15 2016-08-16 Gopro, Inc. Watermarking digital images to increase bit depth
US9877036B2 (en) 2015-01-15 2018-01-23 Gopro, Inc. Inter frame watermark in a digital video
GB2523253B (en) 2015-01-23 2017-04-12 Visidon Oy Image processing method
US9525821B2 (en) 2015-03-09 2016-12-20 Microsoft Technology Licensing, Llc Video stabilization
US10708571B2 (en) 2015-06-29 2020-07-07 Microsoft Technology Licensing, Llc Video frame processing
US20170006219A1 (en) 2015-06-30 2017-01-05 Gopro, Inc. Image stitching in a multi-camera array
CN105163046B (zh) * 2015-08-17 2018-11-06 成都泛视微星科技有限公司 一种基于网格吸点非参数化运动模型的视频防抖方法
US10506235B2 (en) 2015-09-11 2019-12-10 Facebook, Inc. Distributed control of video encoding speeds
US10063872B2 (en) 2015-09-11 2018-08-28 Facebook, Inc. Segment based encoding of video
US10375156B2 (en) 2015-09-11 2019-08-06 Facebook, Inc. Using worker nodes in a distributed video encoding system
US10602157B2 (en) 2015-09-11 2020-03-24 Facebook, Inc. Variable bitrate control for distributed video encoding
US10341561B2 (en) * 2015-09-11 2019-07-02 Facebook, Inc. Distributed image stabilization
US10499070B2 (en) 2015-09-11 2019-12-03 Facebook, Inc. Key frame placement for distributed video encoding
US10602153B2 (en) 2015-09-11 2020-03-24 Facebook, Inc. Ultra-high video compression
US9930271B2 (en) 2015-09-28 2018-03-27 Gopro, Inc. Automatic composition of video with dynamic background and composite frames selected based on frame criteria
GB2549074B (en) * 2016-03-24 2019-07-17 Imagination Tech Ltd Learned feature motion detection
US10045120B2 (en) 2016-06-20 2018-08-07 Gopro, Inc. Associating audio with three-dimensional objects in videos
US9749738B1 (en) 2016-06-20 2017-08-29 Gopro, Inc. Synthesizing audio corresponding to a virtual microphone location
US9922398B1 (en) 2016-06-30 2018-03-20 Gopro, Inc. Systems and methods for generating stabilized visual content using spherical visual content
US10134114B2 (en) 2016-09-20 2018-11-20 Gopro, Inc. Apparatus and methods for video image post-processing for segmentation-based interpolation
US10313686B2 (en) 2016-09-20 2019-06-04 Gopro, Inc. Apparatus and methods for compressing video content using adaptive projection selection
US10003768B2 (en) 2016-09-28 2018-06-19 Gopro, Inc. Apparatus and methods for frame interpolation based on spatial considerations
US10591731B2 (en) * 2016-12-06 2020-03-17 Google Llc Ocular video stabilization
US10489897B2 (en) 2017-05-01 2019-11-26 Gopro, Inc. Apparatus and methods for artifact detection and removal using frame interpolation techniques
KR102330264B1 (ko) * 2017-08-04 2021-11-23 삼성전자주식회사 움직임 정보에 기반하여 동영상을 재생하기 위한 장치 및 그의 동작 방법
AU2017245322A1 (en) * 2017-10-10 2019-05-02 Canon Kabushiki Kaisha Method, system and apparatus for selecting frames of a video sequence
US10740620B2 (en) 2017-10-12 2020-08-11 Google Llc Generating a video segment of an action from a video
US10740431B2 (en) 2017-11-13 2020-08-11 Samsung Electronics Co., Ltd Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion
US10587807B2 (en) 2018-05-18 2020-03-10 Gopro, Inc. Systems and methods for stabilizing videos
US10432864B1 (en) 2018-09-19 2019-10-01 Gopro, Inc. Systems and methods for stabilizing videos
KR102573302B1 (ko) * 2018-10-10 2023-08-31 삼성전자 주식회사 영상의 안정화를 위한 카메라 모듈, 그것을 포함하는 전자 장치 및 전자 장치의 영상 안정화 방법
CN109348125B (zh) * 2018-10-31 2020-02-04 Oppo广东移动通信有限公司 视频校正方法、装置、电子设备和计算机可读存储介质
US10482584B1 (en) * 2019-01-31 2019-11-19 StradVision, Inc. Learning method and learning device for removing jittering on video acquired through shaking camera by using a plurality of neural networks for fault tolerance and fluctuation robustness in extreme situations, and testing method and testing device using the same
US11089220B2 (en) 2019-05-02 2021-08-10 Samsung Electronics Co., Ltd. Electronic test device, method and computer-readable medium
US11659279B2 (en) * 2019-06-21 2023-05-23 Gopro, Inc. Systems and methods for stabilizing videos
KR102176273B1 (ko) * 2019-07-04 2020-11-09 재단법인대구경북과학기술원 동영상 수평 조정 시스템, 방법 및 컴퓨터 프로그램
CN110401796B (zh) * 2019-07-05 2020-09-29 浙江大华技术股份有限公司 一种图像采集装置的抖动补偿方法和装置
US11599974B2 (en) * 2019-11-22 2023-03-07 Nec Corporation Joint rolling shutter correction and image deblurring
US11694311B2 (en) * 2020-03-04 2023-07-04 Nec Corporation Joint rolling shutter image stitching and rectification
CN111709979B (zh) * 2020-05-15 2023-08-25 北京百度网讯科技有限公司 图像对齐的方法、装置、电子设备和存储介质
CN114095659B (zh) * 2021-11-29 2024-01-23 厦门美图之家科技有限公司 一种视频防抖方法、装置、设备及存储介质
CN115439501B (zh) * 2022-11-09 2023-04-07 慧视云创(北京)科技有限公司 一种视频流动态背景构造方法、装置及检测运动目标方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100053347A1 (en) 2008-08-28 2010-03-04 Agarwala Aseem O Content-Aware Video Stabilization
US20110176043A1 (en) 2010-01-21 2011-07-21 Microsoft Corporation Reducing Motion-Related Artifacts in Rolling Shutter Video Information
US20110193978A1 (en) * 2010-02-11 2011-08-11 Microsoft Corporation Generic platform video image stabilization

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
JP3626218B2 (ja) * 1993-08-23 2005-03-02 ソニー株式会社 動き量検出装置及び動き量検出方法
CN1194047A (zh) * 1995-03-22 1998-09-23 德国Idt国际数字技术有限公司 在多帧幅上协调确定移动的方法和设备
US20020008758A1 (en) * 2000-03-10 2002-01-24 Broemmelsiek Raymond M. Method and apparatus for video surveillance with defined zones
US6965645B2 (en) * 2001-09-25 2005-11-15 Microsoft Corporation Content-based characterization of video frame sequences
US7433497B2 (en) 2004-01-23 2008-10-07 Hewlett-Packard Development Company, L.P. Stabilizing a sequence of image frames
KR101036787B1 (ko) * 2005-01-14 2011-05-25 가부시키가이샤 모르포 움직임 벡터 연산 방법과 이 방법을 이용한 손 떨림 보정장치, 촬상 장치, 및 동영상 생성 장치
US20060215036A1 (en) * 2005-03-25 2006-09-28 Multivision Intelligent Surveillance (Hk) Ltd. Method and apparatus for video stabilization
US7558405B2 (en) * 2005-06-30 2009-07-07 Nokia Corporation Motion filtering for video stabilization
US8666661B2 (en) * 2006-03-31 2014-03-04 The Boeing Company Video navigation
JP4961850B2 (ja) * 2006-06-15 2012-06-27 ソニー株式会社 動き検出方法、動き検出方法のプログラム、動き検出方法のプログラムを記録した記録媒体及び動き検出装置
US8073196B2 (en) * 2006-10-16 2011-12-06 University Of Southern California Detection and tracking of moving objects from a moving platform in presence of strong parallax
US8019180B2 (en) * 2006-10-31 2011-09-13 Hewlett-Packard Development Company, L.P. Constructing arbitrary-plane and multi-arbitrary-plane mosaic composite images from a multi-imager
WO2008108071A1 (ja) * 2007-03-06 2008-09-12 Panasonic Corporation 画像処理装置および方法、画像処理プログラムおよび画像処理プロセッサ
KR100866963B1 (ko) * 2007-03-12 2008-11-05 삼성전자주식회사 수평 방향의 기울어짐 왜곡과 수직 방향의 스케일링 왜곡을보정할 수 있는 디지털 영상 안정화 방법
JP4958610B2 (ja) * 2007-04-06 2012-06-20 キヤノン株式会社 画像防振装置、撮像装置及び画像防振方法
CA2722300C (en) * 2007-04-25 2016-06-28 Miovision Technologies Incorporated Method and system for analyzing multimedia content
KR101392732B1 (ko) * 2007-08-20 2014-05-08 삼성전자주식회사 손떨림에 의한 움직임 추정 장치 및 방법, 그를 이용한영상 촬상 장치
JP2009077362A (ja) * 2007-08-24 2009-04-09 Sony Corp 画像処理装置、動画再生装置、これらにおける処理方法およびプログラム
US20090066800A1 (en) * 2007-09-06 2009-03-12 Texas Instruments Incorporated Method and apparatus for image or video stabilization
TWI381719B (zh) * 2008-02-18 2013-01-01 Univ Nat Taiwan 穩定全幅式視訊之方法
US8494058B2 (en) * 2008-06-23 2013-07-23 Mediatek Inc. Video/image processing apparatus with motion estimation sharing, and related method and machine readable medium
ATE554602T1 (de) * 2008-08-21 2012-05-15 Vestel Elekt Sanayi Ve Ticaret Verfahren und vorrichtung zur steigerung der bildrate eines videosignals
GB0818561D0 (en) * 2008-10-09 2008-11-19 Isis Innovation Visual tracking of objects in images, and segmentation of images
JP2010097056A (ja) * 2008-10-17 2010-04-30 Seiko Epson Corp 表示装置
JP5284048B2 (ja) * 2008-11-12 2013-09-11 キヤノン株式会社 画像処理装置、撮像装置及び画像処理方法
US8411966B2 (en) * 2009-03-10 2013-04-02 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Estimation of image relations from point correspondences between images
US8749662B2 (en) 2009-04-16 2014-06-10 Nvidia Corporation System and method for lens shading image correction
KR101614914B1 (ko) * 2009-07-23 2016-04-25 삼성전자주식회사 모션 적응적 고대비 영상 획득 장치 및 방법
US9626769B2 (en) * 2009-09-04 2017-04-18 Stmicroelectronics International N.V. Digital video encoder system, method, and non-transitory computer-readable medium for tracking object regions
WO2011036625A2 (en) * 2009-09-23 2011-03-31 Ramot At Tel-Aviv University Ltd. System, method and computer program product for motion detection
US8135221B2 (en) * 2009-10-07 2012-03-13 Eastman Kodak Company Video concept classification using audio-visual atoms
US9667887B2 (en) * 2009-11-21 2017-05-30 Disney Enterprises, Inc. Lens distortion method for broadcast video
US8553982B2 (en) * 2009-12-23 2013-10-08 Intel Corporation Model-based play field registration
US8179446B2 (en) * 2010-01-18 2012-05-15 Texas Instruments Incorporated Video stabilization and reduction of rolling shutter distortion
US8350922B2 (en) * 2010-04-30 2013-01-08 Ecole Polytechnique Federale De Lausanne Method to compensate the effect of the rolling shutter effect
US20120010513A1 (en) * 2010-07-08 2012-01-12 Wong Stephen T C Chemically-selective, label free, microendoscopic system based on coherent anti-stokes raman scattering and microelectromechanical fiber optic probe
US8571328B2 (en) * 2010-08-16 2013-10-29 Adobe Systems Incorporated Determining correspondence between image regions
US8872928B2 (en) * 2010-09-14 2014-10-28 Adobe Systems Incorporated Methods and apparatus for subspace video stabilization
US8810692B2 (en) * 2010-10-19 2014-08-19 Apple Inc. Rolling shutter distortion correction
US8531535B2 (en) * 2010-10-28 2013-09-10 Google Inc. Methods and systems for processing a video for stabilization and retargeting
US9538982B2 (en) * 2010-12-18 2017-01-10 Massachusetts Institute Of Technology User interface for ultrasound scanning system
US20120182442A1 (en) * 2011-01-14 2012-07-19 Graham Kirsch Hardware generation of image descriptors
US8964041B2 (en) * 2011-04-07 2015-02-24 Fr Vision Ab System and method for video stabilization of rolling shutter cameras
US8724854B2 (en) * 2011-04-08 2014-05-13 Adobe Systems Incorporated Methods and apparatus for robust video stabilization
JP5531194B2 (ja) * 2011-07-06 2014-06-25 株式会社モルフォ 画像処理装置、画像処理方法及び画像処理プログラム
US8718378B2 (en) * 2011-07-11 2014-05-06 Futurewei Technologies, Inc. Image topological coding for visual search
US8913140B2 (en) * 2011-08-15 2014-12-16 Apple Inc. Rolling shutter reduction based on motion sensors
TWI478833B (zh) * 2011-08-31 2015-04-01 Autoequips Tech Co Ltd 調校車用影像裝置之方法及其系統
JP5729237B2 (ja) * 2011-09-26 2015-06-03 カシオ計算機株式会社 画像処理装置、画像処理方法、及びプログラム
US8699852B2 (en) * 2011-10-10 2014-04-15 Intellectual Ventures Fund 83 Llc Video concept classification using video similarity scores
US8903043B2 (en) * 2011-10-24 2014-12-02 Bruker Axs, Inc. Method for correcting timing skew in X-ray data read out of an X-ray detector in a rolling shutter mode
US8457357B2 (en) * 2011-11-09 2013-06-04 Disney Enterprises, Inc. Relative pose estimation of non-overlapping cameras using the motion of subjects in the camera fields of view
TWI469062B (zh) * 2011-11-11 2015-01-11 Ind Tech Res Inst 影像穩定方法及影像穩定裝置
US8842883B2 (en) * 2011-11-21 2014-09-23 Seiko Epson Corporation Global classifier with local adaption for objection detection
US9003289B2 (en) * 2012-02-23 2015-04-07 Google Inc. Automatic detection of suggested video edits
US9232230B2 (en) * 2012-03-21 2016-01-05 Vixs Systems, Inc. Method and device to identify motion vector candidates using a scaled motion search
US20130251340A1 (en) * 2012-03-21 2013-09-26 Wei Jiang Video concept classification using temporally-correlated grouplets
US9129524B2 (en) * 2012-03-29 2015-09-08 Xerox Corporation Method of determining parking lot occupancy from digital camera images
ITVI20120087A1 (it) * 2012-04-17 2013-10-18 St Microelectronics Srl Stabilizzazione video digitale
US8948497B2 (en) * 2012-09-04 2015-02-03 Digital Signal Corporation System and method for increasing resolution of images obtained from a three-dimensional measurement system
US8860825B2 (en) * 2012-09-12 2014-10-14 Google Inc. Methods and systems for removal of rolling shutter effects
US9684941B2 (en) * 2012-10-29 2017-06-20 Digimarc Corporation Determining pose for use with digital watermarking, fingerprinting and augmented reality
EP2739044B1 (en) * 2012-11-29 2015-08-12 Alcatel Lucent A video conferencing server with camera shake detection
TWI602152B (zh) * 2013-02-06 2017-10-11 聚晶半導體股份有限公司 影像擷取裝置及其影像處理方法
US9084531B2 (en) * 2013-02-27 2015-07-21 Siemens Aktiengesellschaft Providing real-time marker detection for a stent in medical imaging
US9317781B2 (en) * 2013-03-14 2016-04-19 Microsoft Technology Licensing, Llc Multiple cluster instance learning for image classification
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
US20140313325A1 (en) * 2013-04-18 2014-10-23 Ge Aviation Systems Llc Method of generating a spatial and spectral object model
JP6209002B2 (ja) * 2013-07-16 2017-10-04 キヤノン株式会社 撮像装置およびその制御方法
US9554048B2 (en) * 2013-09-26 2017-01-24 Apple Inc. In-stream rolling shutter compensation
EP3068301A4 (en) * 2013-11-12 2017-07-12 Highland Instruments, Inc. Analysis suite
US9854168B2 (en) * 2014-03-07 2017-12-26 Futurewei Technologies, Inc. One-pass video stabilization
CN105095900B (zh) * 2014-05-04 2020-12-08 斑马智行网络(香港)有限公司 一种提取标准卡片中特定信息的方法和装置
FR3027144B1 (fr) * 2014-10-09 2016-11-04 St Microelectronics Sa Procede et dispositif de determination de mouvement entre des images video successives
US20170213576A1 (en) * 2016-01-22 2017-07-27 Artur Nugumanov Live Comics Capturing Camera

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100053347A1 (en) 2008-08-28 2010-03-04 Agarwala Aseem O Content-Aware Video Stabilization
US20110176043A1 (en) 2010-01-21 2011-07-21 Microsoft Corporation Reducing Motion-Related Artifacts in Rolling Shutter Video Information
US20110193978A1 (en) * 2010-02-11 2011-08-11 Microsoft Corporation Generic platform video image stabilization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Matthias Grundmann et al., 2012 IEEE International Conference on Computational Photography(2012.04.28. 공개). 1부.*

Also Published As

Publication number Publication date
KR102225410B1 (ko) 2021-03-08
US20140267801A1 (en) 2014-09-18
US9888180B2 (en) 2018-02-06
KR20150132846A (ko) 2015-11-26
CN105052129A (zh) 2015-11-11
KR20200137039A (ko) 2020-12-08
EP3800878B1 (en) 2024-01-31
US20160269642A1 (en) 2016-09-15
EP3800878A1 (en) 2021-04-07
WO2014150421A1 (en) 2014-09-25
US9374532B2 (en) 2016-06-21
EP2974274B1 (en) 2020-12-09
US9635261B2 (en) 2017-04-25
EP2974274A4 (en) 2016-11-09
EP2974274A1 (en) 2016-01-20
CN105052129B (zh) 2019-04-23
US20170195575A1 (en) 2017-07-06

Similar Documents

Publication Publication Date Title
KR102185963B1 (ko) 비디오 안정화를 위한 캐스케이드 카메라 모션 추정, 롤링 셔터 검출 및 카메라 흔들림 검출
US10404917B2 (en) One-pass video stabilization
Liu et al. Meshflow: Minimum latency online video stabilization
Liu et al. Bundled camera paths for video stabilization
JP5778187B2 (ja) 汎用プラットフォーム・ビデオ画像安定化
EP2164040B1 (en) System and method for high quality image and video upscaling
EP2836963B1 (en) Noise reduction for image sequences
US9286663B2 (en) Method and apparatus for filtering an image using a guidance image
JP6293374B2 (ja) 画像処理装置、画像処理方法、プログラム、これを記録した記録媒体、映像撮影装置、及び映像記録再生装置
CN106210448B (zh) 一种视频图像抖动消除处理方法
Wang et al. Video stabilization: A comprehensive survey
Bouraffa et al. Multi–feature fusion tracking algorithm based on peak–context learning
Chen et al. Pixstabnet: Fast multi-scale deep online video stabilization with pixel-based warping
He et al. Iterative transductive learning for automatic image segmentation and matting with RGB-D data
Gödrich et al. Joint tone mapping and denoising of thermal infrared images via multi-scale Retinex and multi-task learning
Zhen et al. Inertial sensor aided multi-image nonuniform motion blur removal based on motion decomposition
Zhang et al. Photometric Stabilization for Fast‐forward Videos
Ke et al. Efficient online real-time video stabilization with a novel least squares formulation and parallel AC-RANSAC
Ito et al. Deep homography-based video stabilization
CN112911262B (zh) 一种视频序列的处理方法及电子设备
Xu et al. Application of Discrete Mathematical Model in Edge Distortion Correction of Moving Image
Sreegeethi et al. Online Video Stabilization using Mesh Flow with Minimum Latency
Guilluy Video stabilization: A synopsis of current challenges, methods and performance evaluation
Pickup et al. Super-Resolution Imaging
Dai Conquering image imperfectness by priors with applications to image recovery

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right